Reinicios programados de txAdmin: establece un reinicio diario con advertencias
Configura reinicios automáticos en txAdmin: el cronograma de reinicio, anuncios antes del reinicio, por qué los reinicios diarios ayudan, y cómo guardar datos del jugador cuando el servidor se apaga.
Un servidor de FiveM que se ejecuta durante días se vuelve lentamente peor: la memoria crece, los scripts dejan entidades atrás, y los hinchs se hacen más comunes. Un reinicio programado a una hora fija es el arreglo más barato. txAdmin lo tiene incorporado, con advertencias a los jugadores para que nadie sea sorprendido.
Por qué los reinicios diarios ayudan
- Memoria. Algunos recursos siguen añadiendo a tablas o entidades que nunca limpian. Un reinicio devuelve el servidor a un estado fresco.
- Estado atascado. Las entidades sobrantes, sesiones rotas y scripts en mal estado desaparecen.
- Previsibilidad. Los jugadores aprenden que el servidor se apaga a, digamos, las 05:00 y lo planifican.
- Actualizaciones. Tienes un punto regular para aplicar actualizaciones de scripts y nuevos artefactos. Mira actualizar artefactos de servidor.
Un reinicio esconde una fuga, no la arregla. Si el servidor es claramente más lento después de algunas horas, encuentra la causa con resmon.
Establece el cronograma en txAdmin
- Abre el panel web de txAdmin y ve a Settings.
- Encuentra la sección Restarter (reinicios programados).
- Añade las horas del día cuando quieres un reinicio, en el formato mostrado, por ejemplo
05:00. Puedes añadir más de uno. - Guarda.
El diseño exacto varía según la versión, así que busca la sección de cronograma de reinicio. Los tiempos siguen el reloj de la máquina que ejecuta txAdmin, así que comprueba su zona horaria si el reinicio sucede a la hora incorrecta.
Elige la hora más tranquila de tu servidor. Comprueba tu gráfico de jugadores antes de elegir.
Advertencias antes del reinicio
txAdmin anuncia a los jugadores reinicios próximos en el juego, con una cuenta atrás. No tienes que escribir un script para esto. Cuando un reinicio se programa, los jugadores obtienen mensajes en los minutos anteriores, y el mensaje final cuando comienza.
También puedes reiniciar a mano desde el panel en cualquier momento y dar una razón. El mensaje se muestra a los jugadores primero.
Consejo: dile a tus jugadores las horas de reinicio en tu Discord y en tu pantalla de carga. Pocos se molestarán por un reinicio que les dijeron.
Guarda datos del jugador al apagar
El riesgo de un reinicio es el progreso perdido. Piénsalo como tres capas:
- El framework guarda personajes periódicamente y cuando un jugador se desconecta (
playerDropped). ESX, QBCore y QBox todos lo hacen. Cuando txAdmin detiene el servidor, los jugadores se desconectan, lo que desencadena esos ahorros en condiciones normales. - Tus scripts deberían mantener sus propios datos en la base de datos mientras cambian, o en un temporizador. No mantengas el progreso solo en una tabla de Lua y lo escribas al apagar.
- Hooks de apagado son una última oportunidad, no un plan. Un servidor que es asesinado o se cuelga nunca los ejecuta.
txAdmin envía eventos a tus recursos que puedes usar, por ejemplo cuando un reinicio programado viene y cuando el servidor está apagando. Dos de ellos son txAdmin:events:scheduledRestart y txAdmin:events:serverShuttingDown. Ambos son eventos del lado del servidor.
AddEventHandler('txAdmin:events:scheduledRestart', function(eventData)
if GetInvokingResource() ~= 'monitor' then return end
-- eventData holds the time left and the announcement text
print('A restart is scheduled soon')
end)
AddEventHandler('txAdmin:events:serverShuttingDown', function(eventData)
if GetInvokingResource() ~= 'monitor' then return end
-- save anything your script still holds in memory
SaveAllMyData()
end)La comprobación de GetInvokingResource() se asegura de que el evento venga de txAdmin (su recurso se llama monitor) y no de un jugador u otro script. Comprueba la documentación de txAdmin para la lista completa de campos de datos de eventos en tu versión.
SaveAllMyData significa tu propia función que escribe el estado de tu script en la base de datos. Mantenla rápida: el servidor no espera para siempre.
Consejos prácticos
- Reinicia menos a menudo de lo que crees que necesitas, pero no nunca. Una vez al día funciona para la mayoría de servidores. Los servidores pesados lo hacen dos veces.
- Haz copia de seguridad antes del reinicio. Un dump de base de datos programado unos minutos antes significa que siempre puedes volver. Mira haciendo copia de seguridad de tu servidor.
- Mira el primer inicio después de un reinicio. Si un script falla al iniciar, quieres saberlo antes de que se unan jugadores. Comprueba la consola de txAdmin.
- Usa el orden de recurso. Los scripts que necesitan una base de datos o core deben iniciarse después. Mira orden de recurso de server.cfg.
- No reinicies durante eventos. Si ejecutas un evento programado, mueve el reinicio o hazlo a mano después.
Qué un reinicio no arregla
Si el servidor tiene hinchs o lag desde el momento en que comienza, el problema es un script, no el tiempo de actividad. Comprueba advertencias de hitch de hilo de servidor y resmon. Un cronograma solo trata la acumulación lenta.
Lista de comprobación
| Síntoma | Solución |
|---|---|
| El servidor se vuelve lento después de horas | Añade un reinicio diario, luego encuentra el script que pierde |
| Reinicio a la hora incorrecta | Comprueba la zona horaria de la máquina que ejecuta txAdmin |
| Los jugadores sorprendidos por el reinicio | Usa los anuncios de txAdmin y publica los tiempos de reinicio |
| Progreso perdido al reinicio | Guarda en la base de datos mientras los datos cambian, no solo al apagar |
| Necesito un último guardado | Maneja txAdmin:events:serverShuttingDown y comprueba GetInvokingResource() |
| El reinicio rompe scripts | Arregla el orden de inicio y lee la consola después del reinicio |
Respuestas rápidas
¿Con qué frecuencia debería reiniciarse un servidor de FiveM?
La mayoría de servidores se reinician una o dos veces al día, a la hora más tranquila. Si ves que el rendimiento cae durante el día, reinicia más a menudo y busca el script que lo causa.
¿Perderán los jugadores el progreso en un reinicio?
No si tu framework y scripts guardan correctamente. Los frameworks guardan jugadores periódicamente y cuando se desconectan, y tus propios scripts también deberían guardar en un temporizador, no solo al apagar.
¿Dónde establezco las horas de reinicio?
En la configuración del panel web de txAdmin, en la sección restarter. Añades las horas del día, y txAdmin muestra las advertencias a los jugadores antes de cada una.
Scripts que evitan este problema
Crypto MiningCompra una nave, monta rigs pieza a pieza y mina monedas en un mercado vivo.Ver script →
Arcade MachinesSiete juegos arcade jugables en máquinas reales, con clasificaciones y apuestas.Ver script →
Tebex TemplateUn tema premium para tu tienda Tebex, sin código y editable desde el panel.Ver script →