Lo que haces depende de la naturaleza del logro. A menos que todos sus logros se ajusten a un patrón simple (recoja X número de Ys), tendrá que hacer un caso especial hasta cierto punto.
Mediante un sistema de comunicación basado en mensajes, puede proporcionar enlaces que hacen que la codificación de casos especiales esté localizada. Puede hacer que ciertas acciones envíen mensajes a los oyentes que se registran. Luego, su código / secuencia de comandos de logro solo puede registrarse con los oyentes apropiados y hacer cualquier prueba que sea necesaria para disparar el logro.
Tendrías mensajes para los eventos típicos que podrías querer escuchar para los logros. Cosas como "el jugador ha adquirido el elemento X" o "la entidad Y mató a la entidad Z". De esta manera, puedes rastrear cosas como cuántas Z's ha matado el jugador.
Eso es probablemente lo mejor que puede hacer para un sistema de logros. Centraliza el código tanto como sea posible y pone la responsabilidad de los oyentes para la detección del logro real.
Además, debe tenerse en cuenta que, para los sistemas de logros centralizados (X-Box Live, logros de Steam), el progreso hacia los logros generalmente se almacena en el servidor. Entonces, para los logros de acumulación ("realizar la tarea XY varias veces"), el script de logros solo detecta cuándo se ha realizado X y aumenta el recuento del servidor. Para otros tipos de logros ("realizar la tarea X"), el logro del servidor es binario: o lo has hecho o no lo has hecho.