★ CITY HALL ★ OFFICIAL DOCUMENT ★ MOLO MODDING ★ FiveM ★
Office of Municipal Affairs

City Hall

Official technical documentation for the City Hall MLO & integrated elevator system. Issued by Molo Modding for authorized FiveM server administrators.

Los Santos
CFX Escrow
60+ FPS
Standalone
Exhibit A

Official Showcase

The following presentation has been approved for public viewing by the Office of Municipal Affairs. It provides a comprehensive tour of the City Hall premises and all its facilities.

Official Video Record — Public Exhibition
Article I — Deployment

Installation Procedure

The City Hall resource is distributed under CFX Asset Escrow protection. Server administrators must comply with the following procedure to deploy the municipal building. Server build 4752 or above is required.

I

Acquisition

Following purchase on Tebex, retrieve your asset files from Keymaster → Purchased Assets

II

File Placement

Transfer the molo-cityhall folder into your server's resources/[maps]/ directory

III

Server Configuration

Append ensure molo-cityhall to your server.cfg file

IV

Elevator System (optional)

Deploy the cityhall_lift script separately and add ensure cityhall_lift

§

Municipal Ordinance: Texture files (.ytd) are fully editable. 3D models are secured under Escrow protection. Vanilla models and custom logos remain unlocked for modification.

Article II — Jurisdiction

Map Position

The City Hall is located in central Los Santos, positioned for optimal accessibility by all citizens. The building serves as the seat of municipal government.

Official Municipal Coordinates

254.347961, -391.184265, 44.3782234
coordinates.luaPublic Record
-- City Hall main entrance
local cityhall = vector3(254.347961, -391.184265, 44.3782234)

-- Elevator endpoints
local upperFloor = vector3(205.4865, -408.65802, 54.9856148)
local groundFloor = vector3(205.4865, -408.65802, 36.53539)
Article III — Facilities

Municipal Departments

The City Hall provides a comprehensive suite of facilities designed to support all branches of municipal governance and enhance the roleplay experience.

Elevator System

Fully operational lift with network synchronization, fall protection, and smooth eased movement between floors.

Detailed Interior

Reception hall, private offices, conference rooms, and fully furnished administrative spaces.

Editable Textures

All .ytd texture files are accessible for full customization of signs, logos, and surface materials.

Performance Optimized

Adaptive tick system with distance-based polling ensures consistent 60+ FPS for all players.

Article IV — Technical Ordinance

Elevator Architecture

The elevator system operates on a client-server architecture with network synchronization through FiveM StateBags. A single controller client manages the physical movement while all other clients observe.

Citizen
Press E
City Server
Validate
Broadcast
Start All
Controller
Move Lift
Resolution
Finished
i

Conflict Prevention: All events and state keys use the unique prefix cityhall_lift: to prevent interference with other lift systems (e.g., Atlantis Bay).

Article V — Regulations

Configuration Register

All parameters are defined in config.lua through the CityhallConfig table.

SEC. I Elevator Endpoints
ParameterValueDescription
PropName'molo_cityhall_lift'YMAP prop name for the elevator platform
PointA.z54.9856Upper floor altitude (TOP)
PointB.z36.5354Ground floor altitude (BOTTOM)
AnchorX / AnchorY205.49 / -408.66Fixed X/Y during vertical travel
SEC. II Citizen Interaction
ParameterValueDescription
InteractDistance3.0Interaction radius in meters
InteractZTolerance3.5Vertical tolerance for proximity detection
Key38Activation key (E by default)
DrawMarkerfalseDisplay a visual marker at interaction zone
Use2DDistancetrue2D distance calculation (ignoring Z)
SEC. III Movement Dynamics
ParameterValueDescription
Speed3Base movement speed
SnapTolerance0.01Precision threshold for arrival snap
EaseZone0.30Deceleration zone near destination
EaseMinFactor0.25Minimum speed factor in ease zone
MaxDT0.05Max delta-time for smooth movement
SettleFrames10Stabilization frames after arrival
SEC. IV Safety Regulations
ParameterValueDescription
UseAttachDuringRidetrueAttach citizen to platform during transit
AttachXYTolerance1.0Horizontal attachment radius
AttachZTolerance2.0Vertical attachment tolerance
DetachDelayMs120Delay before detachment (ms)
AdoptSearchRadius20.0YMAP prop search radius
Locale'fr'Display language (fr / en)
Article VI — Communications

Network Events Protocol

Client-server communication is handled through prefixed events, namespaced to prevent cross-resource interference.

SEC. I Event Registry
Event NameDirectionPurpose
cityhall_lift:requestActivateClient → ServerRequest activation with target destination
cityhall_lift:startServer → AllBroadcast movement start
cityhall_lift:stopServer → AllForce stop / completion notification
cityhall_lift:busyServer → ClientElevator is occupied
cityhall_lift:finishedClient → ServerController reports completion
SEC. II StateBag Synchronization
State KeyTypePurpose
cityhall_lift_movingbooleanWhether the elevator is in transit
cityhall_lift_targetZnumberCurrent destination altitude
Article VII — Client Operations

Client Script

The client manages citizen interaction, YMAP prop adoption, physical movement, and fall protection.

SEC. I Adaptive Tick System
DistancePollingOperations
> 60m500msPassive standby
30 – 60m200msProp adoption only
< 30m (outside)100msAdoption + proximity check
< 30m (in zone)0msFull interaction + input
SEC. II Eased Movement Function

The elevator decelerates progressively near its destination. Within the deceleration zone, speed reduces to a minimum of 25% of base speed for a realistic arrival.

easing logic — client.luaMunicipal Code
local function easedStep(absRemaining, dt)
    local base = Speed * math.min(dt, 0.05)
    if absRemaining < 0.30 then
        return math.max(0.0001, base * math.max(0.25, absRemaining / 0.30))
    end
    return base
end
SEC. III Fall Protection Protocol

Citizens are attached to the platform via AttachEntityToEntity during transit. Ragdoll is disabled. A safety thread monitors every 500ms, detaching automatically if deceased or displaced beyond 8 meters.

Article VIII — Server Authority

Server Script

The server acts as central authority — managing state locks, rate limiting, watchdog timers, and destination validation.

Rate Limiting

Global 600ms cooldown between activations to prevent request flooding.

Watchdog Timer

10-minute timeout: if the controller freezes, the elevator is automatically released.

Disconnect Handling

If the controller disconnects mid-transit, the elevator is immediately stopped and unlocked.

Destination Validation

All values sanitized server-side — only Point A and Point B altitudes accepted.

server.lua — validationSecurity Protocol
-- Only trusts configured Point A and Point B altitudes
local function sanitizeDestZ(z)
    local a = CityhallConfig.PointA.z
    local b = CityhallConfig.PointB.z
    local closest = (math.abs(z - a) <= math.abs(z - b)) and a or b
    return closest
end
Appendix A — Advisory

Troubleshooting

!

Elevator not responding: Verify the prop name in config.lua matches your YMAP. Enable CityhallConfig.Debug = true and check F8 console.

!

Script conflict: This system uses cityhall_lift: prefix. Ensure other elevators use separate prefixes.

!

Citizen falling during transit: Ensure UseAttachDuringRide = true. Increase AttachZTolerance to 3.0 if needed.

Minimum Server Build: 4752 or above required. Verify with version in server console.

Appendix B — Contact

Support Office

For technical assistance regarding this municipal asset, citizens are directed to the official Molo Modding support channels.

Official Support Channels

Molo Modding Discord — 10,000+ members
Tebex Store Promo Code: MOLO20