Commands#
Theme Park registers two chat commands, both for staff. Players need no command at all: every ride and the darts booth are used with the board key.
Command | Permission | Description |
|---|---|---|
| ace | Opens the settings panel. |
| Build permission | Opens the dart target creator. |
| — | Prints every dart target to the F8 console: its number, position, size, rotation and throwing spot. |
| Build permission | Deletes the closest dart target, within 6 m. |
| Build permission | Deletes that target, wherever you are. |
The Spanish words lista and borrar are accepted as well. The build permission is the qs-themepark.build ace or the admin / superadmin group — see Permissions.
Renaming commands#
Both names change in Settings → Commands, written without the slash, and take effect after a restart of the resource.
The shipped names keep working after a rename, so old keybinds and macros never break.
Each command needs a name of its own. The panel refuses a name the other command already answers to, in any case of letters — That command name is already used by the other command. This way a rename can never hide the settings panel, which is the only place the names can be changed back.
Exports#
Theme Park has no exports. The park runs itself on the server and nothing outside it needs to start a ride or a game. To react to what happens in the park from your own scripts — a quest, an achievement, a log — listen to the events below.
Events#
Settings applied#
qs-themepark:settingsApplied fires on the server and on every client when the saved settings are first loaded and after every save or reset from the panel. It carries no arguments.
AddEventHandler('qs-themepark:settingsApplied', function()
print('Theme Park settings changed')
end)Rides and darts#
The server sends these to every client, so they are read in a client script. src is the server id of the player concerned; compare it with your own to react only to yourself.
Boarding and leaving a ride
Event | Arguments |
|---|---|
|
|
|
|
|
|
|
|
|
|
-- Count the rides of the local player
local me = GetPlayerServerId(PlayerId())
RegisterNetEvent('qs-themepark:coaster:onBoard', function(src, car, place)
if src ~= me then return end
TriggerServerEvent('my-quests:progress', 'ride_coaster')
end)A darts game ends
qs-themepark:darts:finish — (targetId, result):
Field | Meaning |
|---|---|
| The player who played. |
|
|
| The score of the game. |
| Whether a tier was reached, and which one. |
| The prize as text ( |
Only listen to these events. Triggering them yourself does nothing on the server: seats, scores and payments are decided there, never taken from a client.



