World Placement
How it works for the player
Hold the key (R by default) with a lantern in hand or stowed. The character crouches and sets it on the ground using the game's own pickup animation.
Walk away — it keeps burning. Come back, stand near it, hold the key again to pick it up. The lantern returns to their hand with its colour and brightness intact.
Server-owned, not player-owned
This is the part worth understanding.
A placed lantern belongs to the server registry, not to the player who lit it. Every client draws its own local copy from that registry.
The consequences:
- it keeps burning when the owner rides out of range
- it keeps burning when the owner dies or respawns
- it keeps burning when the owner disconnects entirely
- there is no entity ownership to migrate, which is what breaks most prop scripts the moment someone leaves
Placed lanterns are frozen and have no collision with players. That is deliberate — it is what removes the ownership problem.
Limits
Config.LanternPlacement = true -- turn placement off entirely
Config.UnlimitedPlacement = false -- one at a time, or many
Config.MaxPlacedPerPlayer = 8 -- cap per player when unlimited. 0 = none
Config.MaxPlacedGlobal = 200 -- server wide cap. 0 = noneWith UnlimitedPlacement = false (the default) each player has one placed lantern at a time — setting a new one down recalls the old one automatically. This is the original mod's behaviour.
With it true, players can place up to MaxPlacedPerPlayer, and the server stops accepting new ones at MaxPlacedGlobal regardless of who is asking.
Keep the global cap
Placed lanterns are cheap, but they are rendered by every client in range and there is no natural limit on a busy server otherwise.
Distances
Config.PlaceDistance = 1.8 -- how far in front a lantern is set down
Config.PickupDistance = 2.0 -- how close to pick one back up
Config.RenderDistance = 120.0 -- how far away a client draws placed lanternsRenderDistance is the one to adjust for performance. Lanterns beyond it are removed locally and re-created when the player comes back — the registry entry is untouched either way.
Where a lantern can go
Before placing, the resource checks:
- there is ground within reasonable reach in front of the player
- the drop is not more than 1.75m up or down, so lanterns cannot be dropped off ledges or onto roofs below
- nothing solid sits between the player and the spot, so they cannot be placed through walls
If any check fails the player is told "There is nowhere to set it down."
The player also has to be in a sensible state — not swimming, climbing, vaulting, ragdolled, reloading, in a vehicle or in mid-air.
Other players' lanterns
Config.AllowForeignPickup = truetrue — anyone can pick up any placed lantern. false — only the character who placed it can.
Ownership is tracked by character identifier, so it survives a relog. See Persistence.
The weapon
Config.RemoveWeaponOnPlace = trueWhen a lantern is on the ground the player is not carrying it, so by default the lantern weapon comes off the ped and is handed back on pickup.
Leave this on
With it off, the engine keeps its own copy of the lantern on the player's belt and they appear to have two — one on the ground and one on their hip.
Admin
/lanternclear remove every placed lantern on the server
/lanterncount how many are currently placedBoth need the rm_lantern.admin ace, or the server console:
add_ace group.admin rm_lantern.admin allowAnti-abuse
Every placement and pickup is validated server side:
- the coordinates must be near the player who claims to be placing there
- the pickup must be near the lantern
- events are rate limited per player
- all payload values are sanitised and clamped before being stored
A modified client cannot place lanterns across the map, pick up a lantern from a distance, or flood the registry.
Persistence
Placed lanterns are held in memory by default and cleared on restart. To keep them, see Persistence.