Land rights, earned cell by cell. Every cell climbs a ladder - Wilderness to Trail to Rampart to Deed - and the engine itself enforces what you may build where. Inspired by Gridlocked by _CodeGreen - reimagined from scratch with tiered land rights, a land economy, and first-class Multi-Team Support integration. WIP, may have bugs, please report.
Mods introducing new content into the game.
Version: 0.1.13
Date: 2026-08-19
Bugfixes:
- Fixed a server crash when a team surface was deleted - hit in the wild by restarting or leaving a team under Multi-Team Support, which deletes the abandoned team's surface ("attempt to index local 'object' (a number value)" in chronicle.lua). The cleanup that releases a removed surface's cell standings still walked the flat object lists that standings stopped using in 0.1.9, so on the first surface that actually had standings it tripped over a bookkeeping field instead of a render object and took the server down; a surface with no deeded cells sailed through, which is why leaving one team worked and the next did not. The cleanup now goes through the same shape-aware release every other sweep already uses. Clearing a surface (rather than deleting it) ran the same code and is fixed by the same change.
Version: 0.1.12
Date: 2026-08-19
Changes:
- Outpost Grants no longer stop. The chain gave one slot per science tier and then ended - six tiers meant six concurrent outposts for the rest of the game, a ceiling rather than a price. Its last tier is now endless, each further level costing 1000 science more than the one before, continuing the same curve the finite tiers followed. Slots already researched are unaffected on upgrade.
- The first endless level of Land Grants no longer costs twenty times the level before it. Each tier charges 50 science per level, and the final, endless tier climbs at 1000 a level so land income tapers without ever stopping - but that steeper climb was measured against the absolute level number rather than starting from where the previous tier ended, so the first endless level inherited the full weight of its own number. On a six-tier ladder that meant level 50 cost 2,500 and level 51 cost 51,000. The endless tier now begins where the tier below it finished - 3,500 for that same level - and climbs at the same 1000 a level from there, so the curve is continuous and the long taper is unchanged. Existing saves pick the new price up on load; levels already researched are unaffected, and research already in progress keeps its percentage.
Version: 0.1.11
Date: 2026-08-18
Bugfixes:
- Fixed being unable to join a multiplayer server running 0.1.10, which refused the connection after the map downloaded with "the following mod event handlers are not identical between you and the server". A once-per-load maintenance pass was registered every time a save loaded and removed itself immediately after running. A joining client loads the server's save and so runs that code; the server, already running, does not - so the client ended up holding a handler the server had long since dropped, and Factorio rejects a mismatch rather than risk a desync. The pass is now registered only when there is actually something pending, recorded in the save itself, so every player computes the same set. Servers on 0.1.10 should update; no save surgery is needed.
Version: 0.1.10
Date: 2026-08-18
Bugfixes:
- Leftover cell standings no longer linger on the map. Objects a rebuild replaced were left behind unreferenced, and the cleanup that frees them ran before the rebuild rather than after, so it always measured a tidy save and collected nothing; on a long-running server that had accumulated over fourteen thousand stale labels. Cleanup now runs after, and /ltr-repair does the same on demand. Its render objects outlived the block itself, and the per-surface catch-up only reached surfaces someone visited, so untouched surfaces kept drawing dead text. Cell standings are few enough to repair everywhere at once, so they now are - immediately, on load.
- Loading a save no longer stutters for several seconds while map visuals catch up. Deciding whether a cell was explored asked every force on the server, once per chunk, for every cell - on a 30-team save that ran into millions of queries. It now asks only the forces that hold land there or are standing on it, and the background redraw moves in smaller steps so it never crowds a frame.
- Fixed a severe, compounding performance problem on servers with many team surfaces. Every map-view update enqueued a reconcile of every chunk on every surface at once; that queue is saved with the game, so it resumed on each load and could reach hundreds of thousands of pending chunks, each running an entity query. On a 30-surface save this measured 75 ms per tick - roughly 13 UPS. Map-view updates are now deferred per surface and paid only when someone actually looks at that surface, and any oversized queue inherited from an older version is discarded on load. The same save now measures 9 ms per tick.
- /ltr-rebuild now reconciles your current surface; /ltr-rebuild all does every surface, which on a many-team server is a long, UPS-heavy sweep.
- Cell overlays no longer come and go as you zoom the map. The stripes were fine enough that once map view shrank them below the width of a single screen pixel, whether any one of them survived came down to the zoom level rather than to the artwork - so the same stretch of Wilderness could read boldly hatched at one zoom, broken up at the next, and completely unmarked at a third. The stripes are now several times wider and hold their appearance at every zoom.
- Repaired cells that had been left with no blocker at all. Such a cell was not merely missing its overlay - the land was not enforced, so anyone could build on it regardless of who held it. One long-running team surface had around four thousand of them, from chunks generated while the surface was still being prepared. They are now repaired as each surface's visuals are rebuilt. A cell that already has something standing in it is left exactly as it is, so nothing anyone has built is removed.
Features:
- Map view shows one line per cell - the record holder and its clock - alongside the cell coordinate, instead of a ranked top three. Across a developed server the three-line block buried the one fact worth reading at map scale. World view is unchanged and still shows the full standings, where only a few cells are on screen at once and the detail costs nothing.
- Map-view cell standings are now OFF by default and switched on per player with a shortcut-bar button or ALT+C. They are useful but they are a lot of ink on a developed map, so they are now something you ask for; the choice persists.
- Cell coordinates are readable at every zoom in map view, and the map's record line is set in larger type - the compact format leaves room for it.
- New per-player option "Map: contested cells only" draws standings only for cells more than one team has deeded - on a busy server, the cells nobody is racing for simply drop out.
- Hovering a cell with the survey tool now shows that cell's record holder and time, so the detail the map hides at distance is always one hover away.
Changes:
- Map-view standings use a smaller, more compact format - team name and time, without the rank number or the leader's name - so a long team name no longer overruns its cell and collides with the neighbouring one.
- Overlay stripes are twice as wide and, to pay for it, correspondingly more transparent on every state: the same amount of colour spread over a broader pattern. Broad is what survives being shrunk down in map view, where the old fine hatching fell apart.
- Rampart has its own colour at last - yellow, the rung it always occupied in the palette - and its stripes lean the opposite way to every other state's. It used to wear Wilderness's red and differ only in being fainter, and faintness is not something the eye can judge without a comparison to hand: over dark ground a Rampart cell read exactly like Wilderness. Colour separates them at a glance now, and the mirrored lean separates them where colour cannot - on dark terrain, in map view, or for colourblind players.
Version: 0.1.9
Date: 2026-08-14
Changes:
- Trail cells are much easier to see: their overlay stripes are about twice as strong, so a claimed Trail reads over any terrain instead of vanishing into dirt. Overlay weight now tracks how much a rung forbids - opaque on Wilderness, half strength on Trail, faint on Rampart, and absent on a Deed, where clear ground is the mark of full rights.
- Cell standings no longer draw when nobody is competing: in a single-team game the per-cell roster was noise rather than a scoreboard. Map view keeps the cell coordinates. Multi-team games - with or without Multi-Team Support - are unaffected, and records are still kept either way, so a game that later gains a rival has its history intact.
- Land Title Registry is now MIT licensed.
Bugfixes:
- The wilderness map overlay lines up with the terrain again. Cells straddle chunk boundaries, so the striped field could hang a full cell over unexplored black - which read as the whole pattern being offset - or, briefly, leave charted ground bare. It now always covers charted ground and extends about one cell past the frontier.
- Creating a new map no longer overrides the host's choice for the team-chat action log; the setting configured before map creation is respected.
Version: 0.1.8
Date: 2026-08-11
Features:
- Lowering gestures confirm before they act: right-drag and Shift-right-drag open a dialog showing the real cell count and refund, with a reminder that refunds return only a fraction of the invested price - an accidental right-click should not learn that the hard way. Per-player setting to turn off once the economy is second nature.
- Survey-tool actions are logged to the acting team's chat by default (reversing 0.1.6): who bought or sold, how many cells, the amount, and a map ping - the audit trail for a shared purse. The line never leaves the team; hosts can still switch it off. Outpost foundings log the same line.
- First-claim tutorials: a force's first paid Trail, Rampart, and Deed each draw a short explainer on that cell - what the rung means and what the next one adds - retiring the moment something is built inside the cell or its state changes. Shown once per force; recycled team slots see them again.
- The starter-cell hints render their rich text properly (the keybind tags showed raw) and carry the survey-tool icon.
- Outpost grants: a new research chain (one tech per science tier, 1000 science per level over that tier's cumulative packs) permits concurrent Deeds founded anywhere in the wilderness, no adjacency required. Founding asks for confirmation - slots are hard-earned - and a slot is returned once the outpost's territory grows to connect with your mainland. HUD shows used/cap once the first level is researched.
- The survey tool's right-gestures now mirror the left exactly: drag raises one rung, right-drag lowers one; Shift-drag jumps to Deed, Shift-right-drag sells everything back to Wilderness with the usual refund. Raising gestures select in green, lowering in red.
- Jump straight to Rampart: Ctrl+Shift-drag on Factorio 2.1, and on 2.0 a Rampart variant survey tool on its own rebindable hotkey (default ALT+W) whose plain drag claims or upgrades straight to Rampart.
- Every gesture's action is remappable per player in mod settings.
- Per-player border styling: line width and per-state colors including alpha, applied to your own view only.
Changes:
- Every cell description and hover line now states what the rung means and allows, consistently with the actual layer rules: Wilderness says elevated rails are welcome, Trail names signals and stops, Rampart names gates and landmines, and hovering a Deed says it outright - fully yours.
- Starter grants, settlement charters, and Discord deed milestones now work on MTS's cloned team surfaces: those are plain script surfaces with no engine planet, so every planet-keyed feature silently skipped them. Planet identity now resolves through mts-v1's get_surface_planet (team-1-nauvis represents nauvis), the same lookup the cell chronicle already used.
- The starter grant retries when a team surface becomes enabled: MTS can land the team (deferred teleport) before the surface-enabled event, and the landing-time grant then found a disabled surface and silently refused. Every starter-grant gate now logs its decision (LTR-GRANT in the log), so a missing starter Deed is diagnosable from a log paste.
- The free starter Deed is now deterministic (playtest call): on MTS team surfaces it is always cell (0,0) - every team races the same origin cell, so cross-team chronicle times compare fairly - and elsewhere it is the cell containing the force's spawn point. Previously it was whichever cell the player happened to be standing on. Later planets keep the standing-cell rule: a cargo pod lands where it lands.
- The overlay stripes are anti-aliased (they were visibly stair-stepped once the wilderness ribbons went fully opaque) and roughly half as wide, so map-view terrain stays readable beneath them; world and map share the same artwork.
- The overlays now show in map view, as stripes and never as tints: every blocker cell draws its striped artwork on the chart - opaque red on Wilderness, translucent orange/red on Trail and Rampart (visible to the owning force) - with terrain keeping its natural chart colors between the stripes and everywhere else. Deed stays clean - absence means fully yours, on the map as on the ground.
- The cell overlays changed roles: Rampart now wears the original red ribbon pattern (one rung from Deed still reads as "not fully yours"), and Wilderness escalates the same artwork with 100% opaque red stripes - a hard no at any zoom. Trail keeps its subtle orange tint.
- Landmines may now be built on Rampart cells.
- Elevated rails and rail supports may be built in Wilderness - rail viaducts fly over unowned land. Ramps stay Trail, so elevation is entered and left on claimed ground; stations and signals still need Trail.
- Land grants and Outpost grants technologies now require the unlocking technology of every science pack they consume, so a tier can no longer be researched before its own ingredients exist.
- Land grants research ignores the map's global technology-price multiplier; land income is priced by the mod's own cost multiplier alone.
Bugfixes:
- The team-chat action log actually turns on everywhere: new maps copy runtime-global settings from mod-settings.dat rather than the mod's defaults, so machines that ran builds with the old quiet default seeded fresh games silent. Fresh maps and existing saves both apply the new default once; a host switching it off afterwards is respected.
- Confirming or cancelling the lowering dialog no longer crashes: the click handler read the button's name after destroying the frame it lived in, and a destroyed GUI element throws on every access. The outpost dialog carried the same latent bug; both now read before closing.
- MTS team-surface spawn areas now show their wilderness map stripes: the spawn is charted during surface creation - before the reconcile that builds map sprites - so the reveal now recharts once that reconcile completes. Blockers cloned in by MTS's surface seeding are adopted into the mod's bookkeeping instead of being invisible to it.
- The MTS landing pen (and any script-made, planet-less, non-team surface) is gated from the start and carries no overlays; existing saves sweep it clean on migration. Planet surfaces keep the wait-for-an-occupied-team rule so plain freeplay with MTS merely installed stays playable.
- The welcome panel no longer auto-opens on join (one dialog too many on top of MTS's join flow); /ltr-welcome still shows it on demand.
- Map-view migrations now actually run everywhere: the migration was anchored on the multiplayer join event, so single-player loads never rebuilt map sprites for existing chunks. A stale map-view scheme now migrates on the first tick after any load. Wilderness map stripes are created hidden with their blocker and revealed as chunks chart (chart sprites otherwise draw even over unexplored blackness); the migration's final rechart doubles as the reveal sweep for everything already charted.
- Re-deeding a cell your previous (disbanded) team had deeded now records your new team in the cell chronicle: a released team's chronicle entries, settlement-charter history, and outpost slots are purged with its points.
- The four layer-override startup settings and the cell-size dropdown values no longer show as unknown locale keys; the locale checker now fails a release on any nameless setting.
Version: 0.1.7
Date: 2026-08-06
Changes:
- Map-view cell chronicles are twice as large and now show the full top-three standings under the cell's coordinates.
Version: 0.1.6
Date: 2026-08-06
Features:
- Cell chronicles now show in map view: the cell's coordinates and its record holder, at a scale that stays readable zoomed out.
Changes:
- Per-claim chat messages are off by default. With many teams they were the largest source of chat volume; the setting remains for hosts who want them.
- A broken record is now told only to the two teams involved - the one that took it and the one displaced - instead of the whole server.
Version: 0.1.5
Date: 2026-08-06
Features:
- Celebrations now use Multi-Team Support's own animated pop-up text when it is installed, so Land Title Registry milestones look native alongside MTS's.
- Breaking a cell's fastest Deed record is announced to every team, naming who took it from whom and both times.
Changes:
- Cell chronicle text is back to its original crisp size, with the coordinates right-aligned against the standings and the pair centred on the cell.
- Chat lines are shorter: the survey-tool mark is icon-only, and the team name no longer repeats its leader.
Version: 0.1.4
Date: 2026-08-06
Features:
- On-screen celebration banner when your team takes a cell's first Deed or seizes its fastest record, with the displaced team and their previous time. Toggle with the new per-player setting.
- Cell chronicles now show the cell's coordinates beside the standings.
Changes:
- One chat line per survey-tool action instead of two, carrying team, player, cell count, cost, and a record clause only when a record was actually set.
- Placing 2nd or 3rd is no longer announced; it appears in the standings only.
- The survey tool's mark is now the mod thumbnail, the Land grants technology icon, and the prefix of every Land Title Registry chat line.
- Chronicle standings use a smaller, lighter font.
Version: 0.1.3
Date: 2026-08-06
Changes:
- Cell chronicle standings use each team's own color with its leader in brackets, instead of rank-specific colors.
- Celebration messages name the contested cell's coordinates.
Bugfixes:
- Non-team forces (the player and spectator forces under Multi-Team Support) no longer receive starter Deeds or appear in cell chronicles; existing bogus entries are purged on load.
- Celebration flying text now appears at the contested cell, so it shows for claims made from map view.
Version: 0.1.2
Date: 2026-08-05
Bugfixes:
- MTS-enabled saves building on a non-team surface (plain nauvis) lost their grid: the team-surface gate no longer re-evaluates existing surfaces on configuration changes, and surfaces holding claims self-heal back to enabled with a rebuild.
Version: 0.1.1
Date: 2026-08-05
Features:
- Two-gesture interaction: drag raises every covered cell one rung, right-drag lowers one (Shift variants jump, unadvertised).
- Cell chronicle: per-cell speedrun leaderboard of fastest Deed times on team clocks, drawn under each cell's top edge; celebrations on contested cells.
- Free starter Deed at a force's first presence on each planet, with in-world gesture hints; welcome panel and Tips-and-tricks onboarding; /ltr-welcome.
- Configurable cell size (16/24/32, default 24); planner-style survey tool icon; per-state ground overlays and border colors from one shared palette; inset per-side borders.
Changes:
- Claim announcements, per-planet border colors, MTS team colors on survey stakes, ODB milestone events, layer-override channels.
Bugfixes:
- Crash on denied selection batches; cursor-stack writes no longer cancel in-progress drags; chronicle backfill for pre-existing Deeds.
Version: 0.1.0
Date: 2026-08-04
Features:
- Initial repository scaffold: design document, dev tooling, and release pipeline.