Lo que falla más a menudo con Theme Park, qué significa y cómo arreglarlo. El recurso se explica a sí mismo en las consolas: los problemas encontrados en el servidor se muestran en la consola del servidor, y los del juego de un jugador en su consola F8, siempre en líneas que empiezan por [qs-themepark] que nombran el recurso, la tabla o el ajuste implicado. Lee esas líneas primero.
Instalación y base de datos#
Las atracciones o el puesto de dardos son invisibles
Uno de los dos recursos de assets no está en ejecución. Unos diez segundos después del inicio, la consola del servidor lo nombra:
[qs-themepark] resource qs_amusement_park_anim_prop is not started (state: missing), so the rides it streams are invisible. Make sure it exists, has an fxmanifest.lua and its models in its stream/ folder, and starts before qs-themepark.qs_amusement_parkhace streaming del mapa del parque, del puesto de dardos, de los dardos y de los peluches;qs_amusement_park_anim_prophace streaming de los autos de choque y su taquilla, la torre de caída, el sky drop, las sillas voladoras y sus luces. Ambos deben estar en tus recursos e iniciarse antes deqs-themepark— consulta Instalación.Cada archivo debe estar directamente en su carpeta
stream/. Un.ytypmovido a una subcarpeta no se carga y su atracción se vuelve invisible.¿Renombraste uno de ellos? Pon el nuevo nombre en
config/config.lua:Config.AssetResourcepara las atracciones,Config.DartsAssetResourcepara el puesto de dardos.En el lado del jugador, la consola F8 dice
model … does not exist. Check that the resource that streams it is started.
Ninguna atracción se mueve tras iniciar el servidor
Las atracciones, los juegos y el panel esperan a los ajustes guardados, que se leen de la base de datos. Cuando no responde, la consola dice:
[qs-themepark] the saved settings could not be read from the database within 60 s: the ones saved before the last stop stay in force, and the database is read as soon as it answers (until then /themeparkconfig cannot save). Check oxmysql (set mysql_connection_string in server.cfg).Comprueba que
oxmysqlse inicia antes deqs-themeparksin errores y quemysql_connection_stringenserver.cfges correcto.Pasados 60 segundos el parque funciona con los ajustes guardados antes de la última parada y cambia a la base de datos en cuanto responde. Hasta entonces el panel se niega a guardar, y la consola dice
the config panel cannot save yet./themeparkconfigsolo existe en el juego de un jugador una vez que le han llegado los ajustes, así que no hace nada en los primeros momentos tras un inicio.
Mensajes de la base de datos y de oxmysql
Theme Park crea cualquier tabla que falte al iniciar, así que la mayoría se arreglan importando sql/database.sql y revisando oxmysql. Importarlo de nuevo es seguro: nada se duplica.
Mensaje de consola | Significado y solución |
|---|---|
| La tabla de ajustes no se puede leer. Se vuelve a leer sola; importa el archivo SQL y revisa oxmysql. |
| Un guardado del panel fue rechazado o tardó más de 15 s. No se aplicó nada: revisa la base de datos y guarda de nuevo. |
| Una fila se editó a mano. Guarda ese campo de nuevo en el panel. |
| Una lista guardada está rota. Se mantiene la que estaba en vigor antes de la última parada: guarda la lista de nuevo en el panel. |
| La tabla de puntuaciones falta o rechazó la fila. Existen las mismas líneas para las canastas. Importa el archivo SQL. |
| Los pases comprados mientras tanto se guardan en memoria y solo duran hasta el próximo reinicio. Consulta Preguntas sobre el pase de día más abajo. |
|
|
| Solo standalone: |
Panel de configuración y comandos#
"You do not have permission to change the theme park settings"
Al jugador le falta el ace command.themeparkconfig. La consola del servidor lo nombra junto con la línea que hay que añadir:
[qs-themepark] John Doe (3) tried to open the config panel without ace "command.themeparkconfig". Grant it with: add_ace <group> command.themeparkconfig allowadd_ace group.admin command.themeparkconfig allowSer administrador de ESX, QBCore o Qbox no basta: el panel solo comprueba ese ace. Asegúrate de que el jugador está en el grupo al que se lo diste — consulta Instalación.
"The settings panel could not be opened"
La página del panel no cargó en cinco segundos. Viene lista dentro de qs-themepark, así que cuando falta es que el recurso se copió de forma incompleta. Las tiendas muestran The shop could not be opened por el mismo motivo.
Descarga el recurso de nuevo desde el CFX Portal, sustituye la carpeta qs-themepark entera y reinicia. Tus ajustes están en la base de datos y se mantienen; guarda primero una copia de config/ y custom/ si los editaste.
Cambié el nombre del comando de configuración y el nuevo nombre no hace nada
El nombre del comando es el único ajuste que necesita un reinicio: el campo muestra Needs restart y el panel dice Restart the resource to apply. Reinicia qs-themepark o el servidor. /themeparkconfig sigue funcionando mientras tanto y después del cambio de nombre. Todos los demás campos se aplican al instante, para todos los jugadores.
Mensajes del panel#
Mensaje | Significa |
|---|---|
The settings could not be saved | La base de datos rechazó el cambio, no respondió en 15 s, o no se ha leído desde el inicio. No se cambió nada; la consola del servidor indica por qué. |
You do not have permission to change the settings | El ace se retiró mientras el panel estaba abierto. |
Restart the resource to apply | Guardaste el nombre del comando: surte efecto tras un reinicio. |
Fix the fields marked in red before saving | Un nivel de premios incumple una regla: una puntuación repetida, un nivel sin premios, un nombre de objeto incorrecto o un máximo por debajo del mínimo. |
Pagos, tickets y pase de día#
Nadie puede pagar una atracción, ni siquiera con dinero
No se pudo contactar con el framework, así que los pagos se bloquean a propósito: no se reparte dinero de la nada. La consola dice:
[qs-themepark] rides cost $250 but the esx framework cannot take payments right now, so nobody can board. Check the errors above, or set the ride price to 0 in /themeparkconfig.Las líneas de encima indican de qué caso se trata:
es_extended is running but qs-themepark stayed on "standalone" (it started before the framework)— mueve el framework por encima deqs-themeparken server.cfg y reinicia.could not get the es_extended object within 60 s(o el objeto de qb-core / qbx_core) — el framework no respondió; comprueba que se inicia sin errores antes de Theme Park.an ESX player operation failed (…)— ESX guarda sus cuentas en un inventario (como qs-inventory) que no está iniciado.could not load custom/esx/server.lua (…)seguido demoney stays BLOCKED— el archivo puente tiene un error. Deshaz tus cambios encustom/(consulta Integraciones).
Mientras tanto puedes poner los precios a 0 en el panel (Money, Darts, Hoops) para mantener el parque abierto.
"You need $250 to get on"
Las atracciones se pagan desde la cuenta configurada en Settings → Money → Ride payment account: efectivo (
money) obank. Un jugador cuyo dinero está solo en la otra cuenta es rechazado.Cada atracción puede tener su propio precio:
-1usa el precio del parque y0hace la atracción gratis.Un pase de día activo y los tickets de atracciones van antes que el dinero: un jugador con cualquiera de ellos no paga nada. Los dardos, las canastas y los puestos siempre cobran dinero, de la cuenta configurada en su propia sección.
Standalone: cada jugador tiene una cartera en
qs_themepark_wallets, donde el efectivo y el banco son un mismo monedero. Una cartera nueva empieza con 0 en efectivo y 500,000 en el banco (DEFAULT_MONEYyDEFAULT_BANKal principio decustom/standalone/server.lua).
Los tickets de atracciones no se usan
Cuando un jugador sube, la atracción se paga primero con un pase de día activo, luego con un ticket de atracción y luego con dinero. Un jugador con pase conserva sus tickets. Si los tickets siguen sin usarse:
Los tickets están desactivados por defecto: activa Settings → Tickets & day pass → Ride tickets.
El objeto debe existir en tu inventario con el nombre configurado en Ticket item (
themepark_ticketpor defecto); Instalación lo tiene para cada inventario. Si el inventario no lo conoce, los jugadores pagan dinero como si no tuvieran ticket, y la taquilla o bien dice que no hay espacio o bien reembolsa la compra con esta línea de consola:bash [qs-themepark] could not give 5 x themepark_ticket to John Doe: is the item registered in your inventory? The $1,250 was refunded.Un nombre con algo que no sean letras, números, _ y - desactiva los tickets:
the ride ticket item "…" (/themeparkconfig > Tickets) is not a valid item name (letters, numbers, _ and -): tickets are not used.Una atracción con precio 0 es gratis: no se usa ningún ticket.
Los tickets solo pagan atracciones, no dardos, canastas ni puestos. La taquilla vende hasta 20 a la vez, pagados desde la Day pass and ticket account.
Preguntas sobre el pase de día
"The day pass is not on sale" — está desactivado por defecto. Activa Settings → Tickets & day pass → Day pass on sale. Entonces se vende en la taquilla y en el panel de cada atracción.
¿Cuánto dura? El Day pass length (120 minutos por defecto) en tiempo real desde la compra, esté el jugador conectado o no. Comprar otro añade sus minutos al pase activo.
¿Sobrevive a un reinicio? Sí: los pases se guardan en
qs_themepark_passes, por personaje en ESX, QBCore y Qbox y por licencia en standalone. Cuando la consola dicecould not save a day pass to qs_themepark_passesooxmysql is not loaded: day passes only last until the next restart., arregla primero la base de datos.¿Qué cubre? Todas las atracciones, tantas veces como quiera el jugador. Los dardos, las canastas y los puestos no están incluidos.
"You need $2,500 for the day pass" — el pase se paga desde la Day pass and ticket account, efectivo o banco.
Dar un pase desde otro script: el export
GivePassfunciona aunque el pase no esté a la venta — consulta Comandos y eventos.
Los ingresos no llegan a la cuenta de sociedad
Los ingresos están desactivados por defecto: activa Settings → Revenue → Send revenue to a society y revisa el Society job (themepark por defecto) y la parte. Cuentan las atracciones pagadas con dinero, los pases de día, los tickets, los dardos, las canastas y los puestos. Cuando un depósito falla, la consola indica por qué, como mucho una vez por minuto:
[qs-themepark] could not deposit $250 into the society account of job "themepark" (ride coaster): the account society_themepark does not exist (register the society of job "themepark"). Check /themeparkconfig > Revenue.ESX: el dinero va a la cuenta de
esx_addonaccountsociety_<job>, queesx_societycrea para una sociedad registrada. Los motivos dicenesx_addonaccount is not startedothe account society_… does not exist.QBCore / Qbox: la cuenta del trabajo en
qb-banking,Renewed-Bankingoqb-management, el que esté iniciado. Los motivos dicenno banking resource is startedo… refused it (does the account of job "…" exist and hold enough?).Standalone: no hay cuentas de sociedad. La consola lo dice una vez y los ingresos no se depositan en ningún sitio.
Un reembolso (una partida cancelada, un premio que no se pudo entregar) saca la parte de vuelta de la cuenta; en ESX eso se rechaza antes que dejar la cuenta por debajo de cero.
Los depósitos fallidos también se publican en el registro de Discord
economy. Más sobre los recursos bancarios en Integraciones.
Atracciones#
"This ride is closed right now"
La atracción está desactivada en el panel: Settings → Ferris wheel, Roller coaster, Towers o Bumper cars. El interruptor se aplica al instante, sin reiniciar: una atracción desactivada no admite nuevos pasajeros y se detiene cuando los que van en ella se han bajado. La consola y el registro de Discord rides lo indican:
[qs-themepark] Roller coaster switched off: it takes no new riders and stops once the riders on it are off."The train already left" o "This round already started"
El embarque se cierra unos segundos antes de la salida — 8 s en la montaña rusa, 6 s en las torres, 2 s en los autos de choque — y sigue cerrado mientras la atracción funciona. Espera a la siguiente cuenta atrás, o da a la atracción un tiempo de embarque más largo en el panel. No free seats left y That seat is already taken significan que la atracción está llena o que otro jugador ocupó antes ese asiento.
"You are too far away" o "You are already on a ride"
El servidor comprueba la posición real del jugador cuando sube: colócate en el punto de embarque donde aparece el aviso — en la montaña rusa, en el asiento que quieras — y vuelve a intentarlo. Un jugador solo puede estar en una atracción a la vez.
No puedo bajarme de la noria ni de la montaña rusa
Es el comportamiento correcto. Solo se puede salir antes de los autos de choque, con F. Todas las demás atracciones dejan bajar a sus pasajeros cuando terminan: la noria tras sus vueltas, las demás de vuelta en la estación. Las teclas de las atracciones están en Uso.
Dardos y canastas#
Las dianas o la máquina de baloncesto no aparecen
Las dianas y las pistas de canastas solo vienen de sql/database.sql, que añade las 6 dianas del parque y las 3 pistas de la máquina de baloncesto. Sin él, el recurso crea las tablas vacías y la consola dice:
[qs-themepark] loaded 0 dart targets
[qs-themepark] loaded 0 hoops lane(s)Importa
sql/database.sqly reinicia. Importarlo de nuevo es seguro: nunca duplica una diana ni una pista.Revisa Settings → Darts y Settings → Hoops: si está desactivado, el juego se oculta, una partida en curso se cancela y se reembolsa, y los jugadores ven The darts booth is closed right now o The basketball machine is closed right now.
dart target #4 in qs_themepark_darts is not valid and is ignored(o lo mismo para una pista de canastas enqs_themepark_hoops): una fila se editó a mano. Bórrala e importa de nuevo el archivo SQL para recuperar la original.the dart targets could not be loaded from the database within 20 s(o las pistas de canastas): la base de datos va lenta. Los jugadores los reciben en cuanto responde.El propio puesto se carga en streaming desde
qs_amusement_park: consulta Las atracciones o el puesto de dardos son invisibles más arriba.
Nadie gana nunca un premio
No hay ningún nivel de premios válido, o el más bajo es inalcanzable:
[qs-themepark] the darts have no valid reward tier: the targets work, but nobody can win. Add tiers in /themeparkconfig > Darts.Añade niveles en Settings → Darts → Score rewards o Settings → Hoops → Prize tiers, o restaura los valores predeterminados. Si bajaste Darts per game o el Round length de las canastas, baja también los niveles.
Solo paga una partida jugada hasta el final: todos los dardos lanzados, o la ronda de canastas jugada hasta la bocina. Un jugador que sale del círculo antes no recibe premio.
Tras un inicio sin la base de datos la consola dice
the darts reward tiers saved before the last stop are not known: the darts pay no prize until the database answers.Es a propósito: los niveles predeterminados podrían pagar lo que nunca quisiste.
"The prize could not be delivered" o no hay espacio para el premio
Los premios predeterminados son dinero y siempre llegan. Un premio de objeto puede fallar cuando el inventario está lleno o no conoce el objeto. Entonces:
Si el nivel también tiene un premio en dinero, el jugador recibe uno de esos en su lugar. Cuando el inventario estaba lleno ve You have no room in your inventory for the prize (…).
Si no se puede entregar nada, se reembolsa el precio de la partida: The prize could not be delivered (…), your $150 was refunded. Una partida gratis no se puede reembolsar, así que el jugador ve … tell an admin.
En ambos casos, el tiempo de espera del premio no empieza.
La consola nombra el premio y el motivo, y un objeto desconocido una vez con el nivel del que viene:
[qs-themepark] could not hand the prize of dart target #2 to John Doe (2x Pier Plush): it does not fit in the inventory
[qs-themepark] Config.Darts.Rewards[2].prizes[1] gives the item "teddy", which does not exist in the inventoryCorrige el nombre del objeto en el nivel (los niveles de canastas se llaman hoops_rewards[…]) o añade el objeto a tu inventario. Cada entrega fallida también está en el registro de Discord: darts, o games para la máquina de baloncesto.
"You won a prize recently, try again in … s"
El tiempo de espera del premio (120 s por defecto) corre para ese jugador tras un premio; Wait a moment before playing again es el tiempo de espera entre partidas (5 s). Acórtalos, o ponlos a 0, en Settings → Darts y Settings → Hoops.
Falta una puntuación en la clasificación
Solo se registran las partidas jugadas hasta el final. Cada lista muestra diez jugadores con la mejor partida de cada uno, y Today sigue el reloj del servidor. Si la consola dice could not load the darts leaderboard o a darts score of … could not be saved, importa sql/database.sql.
Puestos y vendedores#
Un vendedor o la taquilla no aparece
Cada tipo de puesto se puede cerrar: Food stands open, Souvenirs open y Ticket booths open. Un solo puesto también se puede desactivar en la lista de puestos (Settings → Stands & booth).
La taquilla solo abre mientras Ride tickets o Day pass on sale está activado. Ambos están desactivados por defecto, así que una instalación nueva no tiene vendedor en la taquilla.
Un modelo de ped que no existe se sustituye por el de serie, y la consola F8 dice
the ped model "…" of the stand "…" does not exist: the stock one is used. Fix it in /themeparkconfig.Un puesto cuyo menú tiene todos los artículos desactivados muestra <name> is closed y no vende nada.
Colocar y mover puestos se explica en Uso.
No se pudo entregar un pedido
You have no room in your inventory for … — una fila del menú en modo Inventory item no cabe. No se cobró nada.
Part of your order could not be handed over o Your order could not be handed over — el objeto de una fila Inventory item no existe en tu inventario. Esa línea se reembolsa y la consola dice
could not give 1 x themepark_hotdog to John Doe from the Hot Dog Cart stand: is the item registered in your inventory?Registra el objeto (consulta Instalación) o vuelve a poner la fila en comer o llevar.Un jugador lleva un souvenir a la vez: un pedido con dos se rechaza, y uno nuevo sustituye al que tiene en la mano.
La comida no llena el hambre ni la sed
La comida que se come en el sitio llena el hambre y la sed mediante el framework: esx_status en ESX, los metadatos del jugador en QBCore y Qbox. En un servidor standalone no hay nada que llenar, así que solo se reproduce la animación. Cuando falla, la consola lo dice una vez, por ejemplo:
[qs-themepark] food from the stands restores no hunger or thirst: esx_status is not startedRegistros de Discord#
No llega ningún registro de Discord
Todas las URLs de config/webhooks.lua están vacías al instalar el recurso, y un registro sin URL simplemente no se envía. Pega una URL de webhook junto a default para todo, o junto a rides, darts, games (máquina de baloncesto), economy y admin (cambios hechos en /themeparkconfig) para canales separados; uno vacío usa default. Reinicia qs-themepark tras editar el archivo. Los registros se ponen en cola y se envían por lotes, así que llegan un momento después.
La consola dice cuándo Discord los rechaza:
[qs-themepark] Discord log: webhook 1234567890 refused the logs (status 404: the webhook does not exist any more). Check the URLs in config/webhooks.lua.did not answer (status …) 3 times: … log(s) were dropped significa que Discord o la red estaban caídos; cannot keep up, the oldest logs are dropped significa más registros de los que Discord acepta. Consulta Integraciones para las opciones de registro.
¿Sigues atascado? Pon
Config.Debug = trueenconfig/config.luapara obtener más salida en la consola, reinicia y abre un ticket con cada línea[qs-themepark]de la consola del servidor y de la consola F8.



