Installation
Overview
ML Terminal System is an in-world computer terminal with a desktop-like interface. Players interact with props that display an interactive on-screen UI featuring apps, minigames, door controls, action panels, psychometric quizzes, and kiosk modes.
Quick Start
- Download from CFX Portal
- Extract to your
resourcesfolder asml_terminal_system - Add to
server.cfg:
server.cfg
1ensure oxmysql
2ensure ox_lib
3ensure ml_bridge
4ensure ml_terminal_systemLoad Order
ml_terminal_system must start AFTER ml_bridge.
Database
Auto Import
All tables are created on first startup. No SQL to run manually.
Terminal Setup
- Navigate to
shared/data/terminals/ - Copy a bundled example (e.g.
example_full.lua) and rename it (e.g.my_station.lua) - Uncomment only the sections you need. Quiz questions/profiles go in `server/config_questions.lua` under the same terminal ID
- The file auto-registers into
Config.Terminalson startup
Several ready-to-use examples are included:
example_full.lua: Fully commented template covering every section and app typeexample_kiosk.lua: Kiosk examples (locked and simple)test_full.lua: Minimal working desktop terminalterminale_safe.lua: Quiz terminal (its questions live inserver/config_questions.lua)armeria_centrale.lua,armeria_porto.lua: Armory kiosks locked behind minigamespolizia_centrale.lua,sceriffato.lua: Police facility door and action panelsmerryweather.lua,sede_governo.lua: Themed facility terminalsprigione.lua,ospedale_paleto.lua: Prison and hospital terminals- Every file in
shared/data/terminals/auto-registers intoConfig.Terminalson startup. - Use
locationsinstead ofcoordsto spawn one terminal at multiple coordinates. - Delete the example files you do not need before going live.
Commands
/mltheme: Cycle the active terminal UI theme (registered only whenConfig.Debug = true)/mlterminalsetup [model]: In-world placement helper that prints coords (registered only whenConfig.Debug = true)- Command names are configurable in
Config.Commands. All terminal commands are registered only whileConfig.Debug = true; leave them off in production.
Verify
After starting, the console prints the version banner and the validation line. On success: [ml_terminal] [INFO] Config validation: All terminals OK. A misconfigured terminal prints [ml_terminal] [WARN] Config validation: Some terminals have issues plus an [ERROR] line naming the bad terminal. Read that [ERROR] line for the specific cause.
- Script not starting, ensure
ml_bridgestarts beforeml_terminal_system - Terminal doesn't spawn, check console for validation errors on the terminal config
- Props invisible: confirm the prop model exists and `spawn.distance` is large enough