Molo Townhall
Stable, RP-ready interior for elections, trials, and city meetings. Built for FiveM servers that need clean performance and tight permissions. Features (RP-focused) Reception (check-in, visitor flow) Main Hall (public gatherings) Voting Room (elections, refe
Video Preview
Click to load video from YouTube. By watching, you agree to their privacy policy.
Requirements
-
Recent FiveM artifacts
-
Streaming enabled
-
fxmanifest.luawithlua54 'yes' -
Optional:
ox_lib,ox_inventory, door/target system (ox_doorlock,ox_targetor your equivalent)
Install (step-by-step)
-
Drop in resource
resources/[maps]/gov_observatory/ -
fxmanifest.lua
fx_version 'cerulean' game 'gta5' lua54 'yes' name 'gov_observatory' description 'Galileo Observatory Government & Courthouse MLO' version '1.0.0' files { 'stream/**/*.ytyp', 'stream/**/*.ydr', 'stream/**/*.ybn', 'stream/**/*.ymap', 'audio/**' -- TODO: only if package includes custom AWC/REL data } -- Map assets data_file 'DLC_ITYP_REQUEST' 'stream/gov_props.ytyp' -- TODO: replace with actual filenames -- Audio (only if provided by the package) -- data_file 'AUDIO_WAVEPACK' 'audio/sfx' -- TODO: confirm path -- data_file 'AUDIO_GAMEDATA' 'audio/sfx_game.dat' -- TODO: confirm fileReplace
gov_props.ytypand any audio paths with the actual files in your download. -
ensure gov_observatory -
Restart the server or
refresh→ensure gov_observatory.
Framework integration (ESX / QBCore / QBOX / Standalone)
Roles & permissions (recommendation)
-
PD: holding cell, evidence door, courthouse side access
-
Judge: benches, chambers, safe room
-
Gov/Mayor: governor office, conference, safe room
-
Clerk: reception, records, voting room control
-
Public: hall, museum
Use your doorlock to gate by job/grade. Keep public routes open to avoid crowding.
ESX
-
Gate doors by
job = 'police' | 'judge' | 'government' | 'clerk'. -
Stashes with
ox_inventory: evidence (cell side), safe room (read/write by grade). -
TODO: Add your doorlock config entries (coords, door hashes) and stash IDs.
QBCore
-
Mirror with
ambulance/police/governmentor your custom jobs. -
qb-target/ox_targetzones: voting booth, witness stand, clerk desk. -
TODO: Add zone coords and labels; bind to your client/server events.
QBOX (qbx_core)
-
Use
qbx_corepermissions/groups. -
Map grades → secure doors (judge/gov).
-
TODO: Insert your exports/callbacks names as implemented in your city.
Standalone (no framework)
-
Use ACE for minimal gating:
add_ace group.judge gov.court.access allow add_ace group.gov gov.exec.access allow add_ace group.pd gov.cell.access allow add_principal identifier.fivem:XXXX group.judge -
TODO: Bind ACE checks in your door/target script if supported.
NUI & interactions (optional)
-
Voting Room: NUI ballot UI → post results via server RPC; write to DB.
-
TODO: Implement your ballot schema and anti-dupe checks.
-
-
Courtroom: Start/stop session, gavel SFX toggle, witness oath prompt.
-
TODO: Hook to your event names; do not invent endpoints.
-
-
Reception: Context menu (check-in → case routing → courtroom).
-
Use
ox_libfor simple context/NUI flows.
-
Data & stashes (ox_inventory)
-
Safe Room: restricted stash for sealed records.
-
Evidence Locker (cell): PD write, clerk read.
-
Museum: optional read-only exhibit metadata (no items).
-
TODO: Register stashes with positions, limits, and permissions per your inventory config.
Vehicles & access
-
No garage streaming included. Keep parking unrestricted outside, entrances clear for PD escort.
-
If you use a government fleet script, place spawn points by exterior stairs.
-
TODO: Add spawn coords/headings in your garage resource (ESX/QB/QBOX).
Anti-cheat & security
-
Streamed props/doors can trigger some anti-cheats. Whitelist resource name if needed.
-
Validate server-side: voting, court actions, door state changes.
-
Do not trust client-only checks. Use exports/callbacks with permission guards.
Optimization (resmon)
Target ≤ 0.05 ms idle client time for this MLO.
Checklist:
-
/resmon 1in-city; idle in Hall, Court, Voting Room. -
Walk high-prop areas (museum exhibits). Watch for spikes.
-
If spikes:
-
Disable optional clutter ymaps (if provided). TODO: toggle set names per package.
-
Reduce target zones; merge adjacent interactables.
-
Avoid heavy loops in client Lua; debounce door SFX.
-
Sync & stability
-
Door states must sync server-wide; use your doorlock’s server authority.
-
Audio occlusion verified per room; test with doors open/closed.
-
Holding cell pathing tested for escorts; confirm no collision snags on corners.
-
Voice: check pma-voice/mumble zones in courtroom so gallery can hear judges without echo. TODO: add your zone config.
Quick test script (what to verify)
-
Public spawns at Reception.
-
Judge opens Bench door (grade-gated).
-
PD escorts to Cell; evidence stash write works.
-
Clerk starts Voting; one ballot per citizen (player data check).
-
Governor locks Safe Room; non-gov denied.
-
Run
resmon; confirm target budget.





