F.A.Q
Setup
Set Config.Locale in shared/config.lua:
1Config.Locale = 'en'- Copy a bundled example, e.g.
shared/data/terminals/example_full.lua - Rename the file (e.g.
my_police_terminal.lua) - Uncomment only the sections you need
- Restart the resource, the terminal auto-registers
- Check the server console for validation errors
- Verify the
modelhash exists in GTA - Ensure
coordsusesvector4(notvector3) - Confirm the prop model exists and you are within `spawn.distance`
Verify the id values in your doors.list match the IDs in your door lock system. The script toggles doors through ml_bridge.
Themes
9 themes: Default, Wasteland, Cyberpunk, Noir, Fantasy, Fruit, Vintage Yellow, Vintage Blue, Facade98 Teal.
The theme command (/mltheme by default, set in Config.Commands.theme) cycles themes, but it is registered only while Config.Debug = true. Otherwise each terminal uses the fixed theme in its config.
Apps
6 types:
quiz: Psychometric test with profiles and rewardsfolder: File browser with text contentdoors: Door control panelactions: Button panel with cooldowns and event triggersminigame: Standalone minigamelocked_folder: Folder locked behind a minigame
Yes. The apps array accepts any combination of app types. Each app appears as a desktop icon.
A folder whose contents are only accessible after the player completes a minigame. You can also gate it behind a quiz result using requireQuiz and requiredProfile.
Minigames
4 built-in: Password (Fallout-style word guessing), Memory (match card pairs against the clock), Pipe Puzzle (rotate pipes to connect start to end), Simon Says (repeat the color sequence).
4 places:
- On terminal boot (
minigames.onBoot) - As a standalone desktop app (
type = 'minigame') - As a lock for folder apps (
type = 'locked_folder') - In kiosk locked mode (
kiosk.unlockGame)
A lockout timer starts (passwordLockoutDuration in seconds). Set lockoutType to 'global' to lock all players or 'personal' (terminal root) to lock only the one who failed.
Quiz
The terminal presents a configurable number of random questions from a server-only pool defined in server/config_questions.lua. Each answer awards points to a skill. After answering, the system checks whether any profile's points_required threshold is met and assigns the first match. Profiles can award money, items, vehicles, or jobs.
Configurable per terminal (terminal root). allowRetakeOnSuccess controls retake after receiving a profile. allowRetakeOnFailure controls retake after failing to meet any threshold.
Kiosk Mode
It turns the terminal into a single-app experience, no desktop, no boot sequence. Two modes: simple (opens the app directly) and locked (requires a minigame first, with timed access).
Webhooks
- Check
server/config_sv.luafor valid webhook URLs - Set unused webhooks to
falseto disable them - Logs are batched every 60 seconds, there may be a delay
- Do not set
Intervalbelow 60000 ms or Discord will rate-limit your webhook
Updates
- Download latest from CFX Portal
- Backup config files
- Replace all files except config
- Restart the resource
All data is in the database, survives updates.