# Installation > Setup guide for ML Terminal System Category: TERMINAL SYSTEM · Source: https://miciomods.it/docs/ml-terminal-system-installation · Last updated: 2026-07-09 ## 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 1. Download from [CFX Portal](https://portal.cfx.re) 2. Extract to your `resources` folder as `ml_terminal_system` 3. Add to `server.cfg`: **server.cfg** ```cfg ensure oxmysql ensure ox_lib ensure ml_bridge ensure ml_terminal_system ``` > **WARNING:** Load Order > > `ml_terminal_system` must start AFTER `ml_bridge`. ## Database > **INFO:** Auto Import > > All tables are created on first startup. No SQL to run manually. ## Terminal Setup 1. Navigate to `shared/data/terminals/` 2. Copy a bundled example (e.g. `example_full.lua`) and rename it (e.g. `my_station.lua`) 3. Uncomment only the sections you need. Quiz questions/profiles go in `server/config_questions.lua` under the same terminal ID 4. The file auto-registers into `Config.Terminals` on startup Several ready-to-use examples are included: - `example_full.lua`: Fully commented template covering every section and app type - `example_kiosk.lua`: Kiosk examples (locked and simple) - `test_full.lua`: Minimal working desktop terminal - `terminale_safe.lua`: Quiz terminal (its questions live in `server/config_questions.lua`) - `armeria_centrale.lua`, `armeria_porto.lua`: Armory kiosks locked behind minigames - `polizia_centrale.lua`, `sceriffato.lua`: Police facility door and action panels - `merryweather.lua`, `sede_governo.lua`: Themed facility terminals - `prigione.lua`, `ospedale_paleto.lua`: Prison and hospital terminals - Every file in `shared/data/terminals/` auto-registers into `Config.Terminals` on startup. - Use `locations` instead of `coords` to 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 when `Config.Debug = true`) - `/mlterminalsetup [model]`: In-world placement helper that prints coords (registered only when `Config.Debug = true`) - Command names are configurable in `Config.Commands`. All terminal commands are registered only while `Config.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. **Troubleshooting** - Script not starting, ensure `ml_bridge` starts before `ml_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