F.A.Q

5 min readUpdated Today

Setup

Set Config.Settings.Locale in shared/config/config.lua. See the locales/ folder.

shared/config/config.lua
1Config.Settings.Locale = 'en'

Run /campsadmin and press New Camp. Set the center with "Add my position", the in-world 3D placement, or by clicking the Map tab; add NPC groups and loot; save. The camp is written to the database immediately and goes live for every player without a restart.

Anyone passing the Config.Permissions.Creator check: a default admin recognized by ml_bridge, or any of the listed ACE permissions. Force clear, force reset and teleport in the Live tab use the separate LiveActions tier.

shared/config/camps.lua is only seeded into the database once, on first boot with an empty ml_camps table. After that the database is the source of truth and the file is no longer read, edit camps from the panel.

Camps & Respawn

A camp sits idle with no NPCs in the world. The first player to cross its radius activates it: defenders spawn with their configured loadouts and behaviors, the status flips to active, and to combat while players are inside. Everyone within Config.Settings.SyncRadius sees the same fight.

After Config.Settings.CombatGrace seconds without contact and once the camp has been up for its resetDelay, the survivors are restocked to full strength. If nobody stays within SyncRadius for UnloadDelay seconds, the camp despawns entirely and returns to idle.

A cleared camp enters cooldown for respawnDelay seconds, then returns to idle and can be raided again. Cooldowns are persisted in the ml_camp_state table and survive server restarts.

A camp with respawns turned off in the editor (respawnEnabled = false). After a clear it goes to depleted and stays empty until staff press Force Reset in the Live tab. Useful for one-time story locations or manually restocked world bosses.

Yes. Detection uses line of sight, field of view, seeing and hearing ranges. Crouching shrinks the distance NPCs see you at, sprinting makes noise, and an NPC needs to keep you in view for Config.Stealth.detectTicks cycles before engaging. When one NPC engages, nearby NPCs within alertRadius join in.

Loot & Keys

Crates spawn when the camp activates, but stay locked while any hostile is alive ("Defeat all enemies first."). Once the camp is cleared, only the raiders who took part in the fight, up to maxRaiders, ordered by who entered first, can open them.

Competitively. Each crate is claimed by the first eligible raider who searches it and then disappears for everyone. Every crate yields its own full roll of the camp loot tables, so more crates means more total loot to race for.

'direct' pays the loot roll straight into every eligible raider's inventory the moment the camp clears. 'prop' and 'both' put items into the lootable crates instead, while money is still paid directly on clear. If a camp has no crates defined, items fall back to direct delivery.

Enable Require key on a camp in the editor. One random defender carries the key; killing that NPC grants it to the nearest raider. If the camp is cleared before the carrier dies, the first credited raider gets it. One key unlocks all of that camp's crates for its holder, and with ConsumeOnOpen it is spent on the first crate.

'virtual' (default) tracks the key server-side, no inventory item to register. 'item' hands out a physical inventory item (camp_key by default) carrying metadata.camp, so it only opens the camp it was looted from. Item mode requires registering the item from _INSTALL/items.lua. The mode is switched globally from the panel settings or Config.LootKey.Mode.

The overflow is dropped on the ground at the player and a warning notification is shown. This applies to loot and to the key item in item mode.

Raid HUD

While inside a camp radius: the camp name and type, hostiles alive over total with a kill bar, the camp status, and, after a clear, the respawn countdown, a cleared badge, or nothing, depending on the reset visibility setting.

With the /raidhud command (configurable via Config.Settings.MoveHudCommand): drag to move, scroll to resize, Enter to save, Esc to cancel. The position is saved per player on their client.

Set the reset visibility to 'status' (cleared badge, no countdown) or 'hidden' (HUD disappears after the clear) in the panel settings, that is the global default, or override it per camp in the editor. Hiding the timer stops players from camping respawns by the clock.

Yes, toggle it off in the panel settings (or ship Config.HUD.Enabled = false). The change replicates to every online player immediately.

Updates

  • Download latest from CFX Portal
  • Backup shared/config/, server/config_server.lua and open/
  • Replace all files except those
  • Restart the resource

Camps, camp states and panel settings live in the database and survive updates. The console prints a notice when a newer version is available, and the admin panel shows the changelog.