Existen aún dos aspectos en la etiqueta settings que aún no hemos discutido. Primero existe un recuadro etiquetado como Persistent. Normalmente, cuando abandonas un nivel (room) y vuelves después el nivel vuelve a su configuración inicial. Esto es adecuado cuando tienes un cierto numero de niveles en tu juego, pero no lo es tanto cuando haces juegos de otro estilo como RPGs o similares. En estos casos el nivel debería permanecer de la misma forma que cuando se abandono. Activando la opción Persistent conseguirás que esto suceda. El estado del nivel será recordado y cuando vuelvas después, estará justo como cuando lo dejaste. Solo cuando reinicias el juego, el nivel volverá a su configuración inicial. Actualmente existe una excepción a esto: Si marcas algunos objetos como persistentes, las instancias de estos objetos no permanecerán en el nivel, pero se moverán al siguiente.
En Segundo lugar, tenemos el botón etiquetado como Creation code. Aquí puedes introducir un trozo de código GML que se ejecutará cuando se crea el nivel. Esto es útil cuando quieres inicializar variables para el nivel , crear determinadas instancias, etc. Esto es importante que suceda justo cuando te mueves hacia un nivel en particular.
· Primero, en el nivel actual (si lo hay) todas las instancias tienen un evento “fin de nivel”. En el siguiente nivel, todas las instancias no persistentes son borradas. (No se genera un evento destrucción!!)
· Después, para el siguiente nivel, las instancias persistentes del nivel anterior son añadidas.
· Todas las nuevas instancias son creadas y sus eventos de creación son ejecutados (si el nivel no es persistente o no ha sido visitado anteriormente).
· Cuando estamos en el primer nivel, el evento “game-start” es generado para todas las instancias.
· Ahora, es cuando se ejecuta el evento “creation code” del nivel.
· Por último, todas las instancias generan el evento “room-start”.
Así, por ejemplo, el evento “room-start” puede utilizar variables inicializadas en el código de creación (“creation code”)para el nivel, y en dicho código puedes hacer referencia a las instancias (tanto las nuevas como las persistentes) en el nivel.
Aún hay una opción que va más allá. En el menú emergente que aparece cuando pulsas con el botón derecho del ratón con la tecla <Ctrl> pulsada, puedes indicar un código de creación para una instancia en particular. Este código es ejecutado cuando comienza el nivel, justo antes del evento de creación de la instancia sea ejecutado. Esto es muy útil para, por ejemplo, iniciar ciertos parámetros que son específicos de una instancia en cuestión.