SQF · CfgExileCustomCode · CfgXM8

XCSV ADDONS

Our own content for XCSV EXILE. Written from scratch and kept deliberately separate from the third-party catalogue and from Exile itself — because the licence makes that separation load-bearing, not cosmetic.

Language SQF Exile source none included Traders speaking 16 types XM8 apps 1 shipped · 20 planned Repo private

01 — LICENSINGWhy this is clean

Exile Mod is CC BY-NC-ND 4.0. That forbids distributing modified Exile. It does not forbid writing independent addons that call Exile, which is what everything here is.

The rule, and it is not negotiable: never paste Exile source into this repository. Where Exile's behaviour needs changing, the function is overridden through CfgExileCustomCode — Exile's own PBOs ship unmodified and our replacement is our copyright. The whole third-party ecosystem has worked this way for a decade.

CfgExileCustomCode allows exactly one registration per function. If two addons want the same one, they must be merged by hand. A lost merge is why Exile_Scavenge was silently dead on this server for weeks — three addons wanted ExileClient_object_player_initialize, two made it into the merge and Scavenge did not.

02 — WHAT IS HEREShipped content

📻 xcsv_chatterserver

In-world faction radio. Three voices — WARDEN CONTROL, THE YARD, SALVAGE NET — on a weighted rotation that never repeats a channel twice in a row. Rides ExileServer_system_thread_addTask, never its own loop.

packs to @ExileServer\addons\xcsv_chatter.pbo

🗣️ fn_traderVoicemission

All 16 trader types speak when a player comes within 12 m. Four-second proximity check, 240-second per-trader cooldown so a safezone does not become a wall of noise.

client-side · costs the player's frame, not the server's

📖 fn_welcomemission

The lore briefing, once per profile, framed as a message waiting on the XM8. Version-gated through profileNamespace so a rewrite can re-reach players who already saw it.

static text · no runtime generation

🗺️ fn_censusadmin

World-object census on demand. Buckets and maps every simulated object with createMarkerLocal, so the markers exist on the admin's machine only. Written after an object-count runaway took hours to identify.

markers are not objects — no BattlEye exception needed

📍 fn_adminTeleportadmin

XM8 App14. Shift-click the map (45-second arming window), teleport to a player, or to a named place. Moves vehicle player, not the player — teleporting someone out of a moving vehicle leaves it driverless at speed.

trips setpos · exception must be written by hand

⏭️ Nextplanned

Territory browser with a days until decay column — the single most common support ticket — then a real scoreboard, which establishes the Rsc slide pattern for every app after it.

20 apps catalogued in the docs

03 — HOUSE RULESFour constraints on anything added

04 — SETTING2039

A resource war over Greece emptied the treasuries; the deflation that followed emptied everything else. NATO's Security Council exiled the overflow to this island and then largely forgot it. A private contractor holds the paperwork, runs the safe zones and takes a cut of the trade.

Corroborated by the mission's own mission.sqm, which sets year = 2039.

Not canon: the "four gangs" framing (Cartel / Mafia / Syndicate / Yakuza) that circulates online appears to come from ExileLifeMod, a fork. It is not written into anything here as though it were the original.

Tone is dry and bleak, not heroic and not fantasy. Poptabs are prison scrip, respect is standing among inmates, territory tax is protection money, and a Bambi is a new arrival who has not learned yet.

ELSEWHERE IN THE SYSTEMThe other three

Four repositories, one system. Nothing here stands alone.