Same Factorio seed, up to 20 private worlds — each team races their own copy. Independent research, separate planets, zero resource conflicts. Buddy-join with friends, ally via mutual friendship, spectate rivals with live per-player follow cams. First-to-research announcements and per-team clocks drive fair speedruns. Common terrain mods (dangOreus, VoidBlock, Alien Biomes) work out of the box.
Scenarios, maps, and puzzles.
Version: 0.4.44
Date: 2026-05-29
Features:
- Team Awards: new first/fastest awards for raw resources -- iron ore, copper ore,
uranium ore, and crude oil. Crude oil reads from the fluid production statistics and
shows with its fluid icon, and wood now appears alongside the ores too.
- mts-v1: register_milestone / report_milestone let a downstream mod define its own
first/fastest milestones, announced through the same records, broadcast, and Discord
bridge path as the built-in ones and shown in the Team Awards window.
- mts-v1: get_team_label returns the coloured team tag with its current leader, and
set_spawn_label_enabled lets a mod suppress MTS's own spawn label on a surface it
labels itself.
Changes:
- Team Awards shows consumer-reported milestones by their registered name, and renders
fluids (e.g. crude oil) with their fluid icon.
- Milestone discovery self-heals on load, so awards added to the config start tracking
after a simple reload instead of needing a new game or a mod-configuration change.
Version: 0.4.43
Date: 2026-05-28
Features:
- mts-v1: new register_welcome_tab interface lets a mod add its own tab to the
welcome screen, populated via the on_welcome_tab_built event. Registered tabs
lead the screen -- before the built-in About / Discord tabs -- so a host
scenario can introduce itself first. Mirrors the existing register_team_tab API.
Info:
- Relicensed from MIT to GPL-3.0-or-later.
Version: 0.4.42
Date: 2026-05-27
Features:
- Follow Cam: every camera now has a View / Body toggle. "View" (the default) tracks
where the player is actually looking — their remote-view camera — which is what you
want for remote-play teammates; "Body" tracks their physical character position.
- Follow Cam: a camera shows a "Spectating <team>" flag when the followed player is
actively spectating another team, since their live view is then on that team's
surface rather than their own base. The flag updates live.
Changes:
- Follow Cam: a camera's team label now always shows the player's real team, even
while they are temporarily in spectator mode (it previously read "spectator").
- Follow Cam: the map is only charted around a followed player in "Body" mode. "View"
mode never reveals fog, so a follower cannot expose the map by riding a panning
remote-view camera.
Version: 0.4.41
Date: 2026-05-27
Changes:
- Renamed the admin flag "Disable Blueprint Imports" to "Allow Blueprint Imports"
(enabled = imports allowed), removing the confusing double negative. Existing saves
keep their effective setting via an automatic migration.
- /mts-trim now trims unused chunks on all of a team's surfaces (every planet), not
just Nauvis. Space platforms are skipped, since their foundation is tiles rather
than entities. Use "/mts-trim team-N" to limit it to one team across its planets.
Version: 0.4.40
Date: 2026-05-27
Features:
- Modding API (mts-v1): a consumer mod can take over starter-item delivery via
register_starter_item_delivery. While registered, MTS routes admin-configured
starter items to that mod (through the new on_starter_items_added event and
get_starter_items query) instead of inserting them into player inventories; the
override self-clears if the mod is removed.
- Modding API (mts-v1): added the on_team_renamed event, raised by /mts-rename.
Changes:
- With a delivery override active, the spawning player's character is emptied while the
admin starter-item list still pre-populates from the map's default loadout, so a
character-free mod can route those items elsewhere.
Version: 0.4.39
Date: 2026-05-26
Features:
- Modding API (mts-v1): registered team tabs now persist in the save instead of a
session-scoped table, so the registry is identical on every peer. A mod can
register its tab once (in on_init / on_configuration_changed) and it survives
reloads and mid-game joins — no per-session re-registration on a one-shot tick,
which was not multiplayer-safe.
- Modding API (mts-v1): mods can now anchor their own widgets into the native space
platform hub GUI. register_platform_hub_widget{ name, caption, order, position }
adds a relative-GUI frame, and the on_platform_hub_gui_built event hands the mod
that frame (plus the hub entity) to fill each time a player opens a hub. Same
persisted, multiplayer-safe registry as the team tabs.
Version: 0.4.38
Date: 2026-05-25
Features:
- Modding API (mts-v1): mods can now add their own tabs to the Team Settings panel.
The panel is a tabbed pane (built-in "Team" tab plus one tab per registered mod);
register_team_tab{ name, caption, order } adds a tab, and the on_team_tab_built
event hands the mod the content element to fill each time a player's panel is built.
- Modding API (mts-v1): added disband_team(force_name) so mods can implement their
own loss conditions and tear a team back down.
Version: 0.4.37
Date: 2026-05-24
Features:
- Follow Cam: a Maximize button on the title bar fills the screen with the followed
players' cameras. They split the screen evenly — two players get half each — so
spectators (and players) get a much larger live view. Restore the panel with the
same button, close it, or press Esc to return it to its previous size and position.
- The maximized Follow Cam re-fits automatically when you resize the game window or
change the UI scale, so it always fills the screen.
Changes:
- Follow Cam panels now use thin dividers between cameras instead of the heavy framed
borders.
Version: 0.4.36
Date: 2026-05-24
Features:
- Track each team's "online time" — wall-clock time the team had at least one member
connected (it freezes while the whole team is offline, so logging off for the night
doesn't penalise a team). Shown in the research overview, and selectable as the
ranking basis in Team Awards. Server-elapsed time stays the official basis for records.
Changes:
- Team Awards: the clock basis (Server vs Online time) is now a slider switch instead of
a button, so it no longer blends in with the category tab buttons.
Version: 0.4.35
Date: 2026-05-24
Features:
- Optional integration with the Open Discord Bridge mod. When present, MTS announces
team-aware join/leave/switch events, team research completions, and other game events
to the bridge as human-readable sentences, with per-team label emoji.
Version: 0.4.34
Date: 2026-05-20
Changes:
- The logistic import_from rewrite notification is now a floating pop text
instead of a chat message. When MTS silently reroutes a space-platform
logistic request to the team's own planet variant, the old and new planet
names appear briefly above the player and fade away, leaving chat uncluttered.
Version: 0.4.33
Date: 2026-05-20
Bugfixes:
- Team variant surfaces now generate terrain based on the host's chosen map seed instead of
a fixed hash of the planet name. Previously all games produced the same terrain regardless
of the seed selected at map creation; now each game's seed is respected and all teams still
share identical terrain for each planet.
Version: 0.4.32
Date: 2026-05-20
Bugfixes:
- Gridlocked: recycled teams no longer inherit the previous occupant's chunk-point
balance. When MTS reuses a force slot, it now calls Gridlocked's reset_force API
to restore the starting point count and refresh every member's HUD label, so each
new team begins from a clean slate regardless of what the previous team researched.
Version: 0.4.31
Date: 2026-05-20
Bugfixes:
- Gridlocked no longer crashes on team surfaces. Gridlocked tracks its
per-chunk "gl-unclaimed-chunk" markers by entity unit_number, and MTS's
terrain cloning replaced each registered marker with an unregistered copy,
so charting a team chunk hit a nil render entry and crashed
(gridlocked::on_chunk_charted). MTS now detects Gridlocked and generates
team surfaces natively (no cloning), the same path used for Space Is Fake,
so Gridlocked manages its own markers per surface. As with that path, it's
mutually exclusive with Nauvis terrain mods that decorate by surface name
(VoidBlock, dangOreus) in the same run.
Version: 0.4.30
Date: 2026-05-20
Bugfixes:
- Space Age planets no longer relock after being unlocked. A team that
researched and reached a planet (Vulcanus, etc.) could find it locked and
dark again after a technology-effects reset or a mod update — both
recompute tech effects, which re-points each discovery tech's unlock at
the shared base planet, while MTS clean-slated the per-team variant locks
and nothing rebuilt the team's variant unlock. MTS now re-derives each
team's planet unlocks from the discovery techs it has actually researched
whenever locks are reset, so earned planets stay unlocked. Updating to
this version auto-repairs an already-bugged save on first load.
Version: 0.4.29
Date: 2026-05-20
Features:
- Space Is Fake compatibility. When space-is-fake is active each team's
Nauvis generates natively from its pinned per-base seed instead of being
terrain-cloned, so terrain stays identical across teams while SiF's
demolisher territories survive (clone_area destroys segmented units). A
new optional dependency makes MTS deep-copy the Nauvis prototype after
SiF's data-final-fixes so the variant carries SiF's full map (terrain,
ores, enemies, cliffs, demolishers). SiF's one-time starting area
(chest, trees, lava-ash tiles, ruin attractor) is re-placed on each
team's Nauvis after spawn. Inert without SiF; mutually exclusive with
surface-name-filtering Nauvis overhauls, and SiF's obsidiax sub-mode is
unsupported.
Bugfixes:
- Stopped the "Logistic request rewritten" chat notification from spamming
when players set logistic requests on ground chests. The cross-team
import_from rewrite now only acts on entities sitting on a space
platform, where shipping cargo from a foreign team's planet is actually
possible. A chest can still carry an import_from value copied from a hub
via blueprint, paste-settings, or a shared logistic group, but on a
planet surface that value is inert; rewriting it did nothing except
print a message (once per logistic-group member, so a single placement
could fire several identical lines).
- Fixed the first-landing celebration firing once per team instead of once
per save. surface.planet.name returns the per-team variant name
(mts-vulcanus-1), not the canonical base, so the landing gate keyed on a
distinct value for every team; all teams' copies of a planet now share
one first-landing flag.
Version: 0.4.28
Date: 2026-05-20
Changes:
- Removed the /mts-replay admin command and its internal event-replay
code. It only reached mods that had already generalized their
surface-name filters (better served by the mts-v1 lifecycle events),
and replaying setup events retroactively risked double-applying or
wrongly re-granting per-team setup. Mods added mid-save now take effect
on teams and surfaces created from that point on — the same boundary
vanilla worldgen has.
Bugfixes:
- Demolisher territories work on team surfaces again (Space Age). On
Vulcanus and other territory planets, team copies had lost their
demolishers: those surfaces were terrain-cloned from the base planet,
and the clone silently drops segmented units like demolishers (a
regression from eagerly pre-creating base planet surfaces, which
switched cloning on for the outer planets). Team copies of the outer
planets now generate natively from a shared per-planet seed instead, so
every team gets identical terrain AND working demolisher territories.
Nauvis is still cloned for terrain-mod compatibility and is unchanged.
Version: 0.4.27
Date: 2026-05-19
Bugfixes:
- Re-release of 0.4.26 — the previous mod-portal upload was rejected
because the packaged zip included link-mod.sh at the repo root, and
the portal rejects any zip containing .sh / .py / .bat / .ps1 / .exe
files. The release workflow now strips those extensions at packaging
time. No in-game behaviour changes from 0.4.26; all 0.4.26 fixes are
bundled in this release.
Version: 0.4.26
Date: 2026-05-19
Bugfixes:
- Naturally-generated structures stuck on force="player" can now be
mined by team forces on every planet. On vanilla Fulgora the
Fulgoran lightning attractors and ruined buildings, and on Nauvis
the freeplay crash-site ship + chests, used to spawn on
force="player" and were not mineable by any team because
force="player" entities ignore cease_fire + friend diplomacy. A
generic on_chunk_generated sweep now reassigns every force="player"
entity on a team surface to the surface's owning team force, so the
team naturally owns the structure (mineable, repairable, wires into
the team's electric grid, etc.). Replaces the older Nauvis-only
crash-site name allowlist (compat/krastorio2.lua) and extends the
fix to every planet variant — including future modded planets and
any future modded entity that ships on force="player". minable
and destructible are no longer overwritten, so scenarios that
intentionally mark an entity unmineable are preserved.
Version: 0.4.25
Date: 2026-05-14
Bugfixes:
- Blueprint import lock now also blocks the import_blueprint and
import_blueprints_filtered input actions. The previous Default
permission lock only covered import_blueprint_string and
open_blueprint_library_gui, leaving the toolbar import-string
button and the chat-paste path usable as cross-team blueprint
transfer routes.
Version: 0.4.24
Date: 2026-05-14
Features:
- Team Stats: the Ores, Plates, and Science tabs now auto-expand
to fit every item their respective prototype scans turn up,
capped at 48 columns. Overhaul mods that introduce dozens of
science packs / ores / plates (Krastorio 2, Periodic Madness,
etc.) no longer truncate at the old 12-slot ceiling. Curated
tabs (Intermediates, Custom) keep their 16-slot layout with
trailing empty slots for ad-hoc additions.
- Stats columns within every tab are now ordered by tech-unlock
depth — the length of the longest prerequisite chain to the
earliest tech that unlocks the item's primary recipe — instead
of raw prototype order. Items available from game start sit on
the left; deeper-tech items slide to the right. Trace
byproducts no longer yank their parent items to the front of
the sort. Items the modder has hidden (e.g. PM's vanilla
science-pack stubs) are filtered out.
- Slot buttons in the Stats GUI shrink in two tiers (40 → 32 →
26 px) once a tab exceeds 16 or 24 columns, so wide overhaul
tables stay within a reasonable horizontal footprint. The
scroll-pane width grows to match the table up to a 1500 px
ceiling. Column header tooltips now show a large item icon and
its localised name above the click hint.
Changes:
- The Team Awards top-bar button now uses a bundled legendary
starburst sprite (graphics/legendary.png) instead of probing
for the Quality DLC's icon at runtime, so the button looks
identical regardless of whether Quality is enabled.
Version: 0.4.23
Date: 2026-05-12
Bugfixes:
- Fixed crash on first spawn when Krastorio 2 is not installed.
compat/krastorio2.lua passed K2-specific entity names
(kr-spaceship-reactor, kr-spaceship-research-computer, etc.) to
find_entities_filtered every chunk; the engine raises "Unknown
entity name" rather than silently ignoring missing prototypes,
so any team Nauvis chunk-gen crashed the mod. The crash-site
entity list is now filtered against prototypes.entity once per
Lua state and shrinks to the vanilla names when K2 is absent.
Version: 0.4.22
Date: 2026-05-12
Features:
- Server-wide celebration announcements: the first rocket launched
and the first landing on each planet now broadcast to every
player and draw a long, rainbow-cycling pop-text animation on
every screen, accompanied by an achievement-unlocked sound
(falls back to research-completed when unavailable), regardless
of force. Planet detection uses
LuaSurface.planet so per-team variants (mts-vulcanus-1 etc.) and
modded planets are handled automatically. The starting planet is
marked silently on first spawn so it doesn't fanfare during a
routine team join, but a later return from a platform won't
double-trigger it either.
Version: 0.4.21
Date: 2026-05-12
Changes:
- Teams GUI is now a taller, slimmer panel: width clamped to
360-400 px (down from 480-560) and height allowed up to 900 px
(up from 600). Players reported the previous panel hogged
horizontal screen real estate; going vertical fits more team
cards on screen without spilling sideways.
- Maximum team name length reduced from 32 to 16 characters, both
in the team-settings rename field and in /mts-rename, so long
names cannot push the slimmer Teams GUI back out. The team-name
textfield now shows a "N / 16" counter that turns red at the
limit, truncates input as you type, and rejects over-limit
submissions with a clear message instead of silently truncating.
Version: 0.4.20
Date: 2026-05-12
Changes:
- Team Awards GUI now has a search field that filters the table to
rows whose internal name contains the query (case-insensitive).
A "N / M match" counter and a clear (×) button appear next to
the field while a search is active, and an empty result shows an
inline "Clear search" button so a forgotten query is never a
dead end.
- Achievement icons in Team Awards are now interactive. Hovering an
icon shows its localised name; clicking a tech opens the
technology screen and clicking an item opens Factoriopedia. Icons
were also shrunk to 32 px and row spacing tightened so each row
takes much less vertical space than before.
Version: 0.4.19
Date: 2026-05-12
Changes:
- Team Awards now always ranks all teams regardless of online status.
The "show offline" checkbox has been removed from the Awards GUI
because filtering it made the leaderboard misleading -- a team
could appear to hold first place simply because the actual leader
was offline. Records are immutable history, so they no longer
hide behind a session-state toggle.
Version: 0.4.18
Date: 2026-05-12
Changes:
- Teams GUI no longer auto-reopens after the player closes it and then
changes surface via the remote map. The panel only refreshes when it
is already open.
- The "Exit remote view" button has been split out of the Teams GUI into
its own small standalone frame. It now appears only when a compat that
keeps players permanently in remote mode is active (Platformer today)
and the player is remote-viewing another team's surface. Clicking it
returns the remote view to your own physical character without leaving
remote mode, matching what Esc does.
Version: 0.4.17
Date: 2026-05-11
Bugfixes:
- Space platform hub schedule destination list no longer shows other teams'
planet variants. Each team now sees only their own nauvis / vulcanus /
etc. variants when picking a route destination. Previously every team
saw every other team's nauvis variant (inherited the base planet's
default-unlocked status), and could in principle route a platform to a
foreign team's planet.
- Cross-team logistic-request planet selections on space-platform hubs are
now reactively rewritten to the team's own variant of the same base
planet. The "Import from" dropdown can't be filtered per-force in
Factorio 2.x, so every team still sees every variant in the picker, but
whichever entry the player selects, cargo will ship from their own team's
planet. The player gets a coloured chat notification when a rewrite
happens so the change isn't silent.
Version: 0.4.16
Date: 2026-05-11
Bugfixes:
- Fixed /mts-disband leaving Space Age planet surfaces behind. The surface
cleanup matched the legacy "team-N-<planet>" naming only; Space Age uses
"mts-<planet>-N", so variant surfaces were never deleted and the next team
to recycle the slot inherited the previous occupants' explored terrain.
Now also iterates the planet_map force→variant entries for deletion.
Version: 0.4.15
Date: 2026-05-11
Bugfixes:
- Fixed Space Age non-Nauvis planets (Vulcanus, Fulgora, Gleba, Aquilo, modded
planets) generating different terrain across teams. clone_mirror needs the
base planet's surface to exist when a team variant chunk is first generated;
Space Age creates base surfaces lazily, so a team exploring their variant
before the base existed got divergent terrain. We now eagerly create every
base planet surface at init and on_configuration_changed.
- Note: this only repairs terrain for newly generated chunks. Chunks that were
already explored on diverged saves remain diverged.
Version: 0.4.14
Date: 2026-05-10
Bugfixes:
- Fixed map-reveal exploit: a player being followed by another player's Follow Cam
could pan their camera in remote view to chart-paint fog onto the follower's
force, exposing previously unexplored chunks without anyone walking there.
The Follow Cam tick now charts around the target's physical body, not their
camera position.
Version: 0.4.13
Date: 2026-05-10
Bugfixes:
- Fixed crash when sorting the stats GUI by an item column in descending order
(operator-precedence bug produced an inconsistent comparator).
Version: 0.4.12
Date: 2026-05-08
Features:
- Disable Blueprint Imports admin flag (default ON): blocks importing external blueprints
via chat-paste strings, the blueprint library, and the Import-string button. In-game
blueprint creation (alt-shift-click, copy-paste of placed entities) still works. Toggle
from the Admin panel to allow imports without restarting.
Version: 0.4.11
Date: 2026-05-08
Features:
- Krastorio 2 / Krastorio 2 Spaced Out compatibility: crash-site entities (vanilla
wrecks plus K2 spaceship pieces and chests) on team Nauvis surfaces are now
mineable. K2's planetary teleporter "standing on" detection and tesla coil
targeting now fire correctly on team characters.
Version: 0.4.10
Date: 2026-05-06
Features:
- Animated pop-text notifications: floating text animations appear above players at key
moments — a coloured elastic pop on spawn confirm, a snap-in jiggle on team join, a
large comic bounce above all team members on production milestones and death. All
animations use the player's own chat colour. Disabled via the popup_text_enabled admin
flag.
- Tech research record popups: the first team to research a tech sees a "First!" popup
with the tech icon; a subsequent faster clear shows "New record!". Uses the same
animated pop-text system as milestones.
- /t <message> command: sends a private message to your team only. Factorio's command
system ensures the message is never broadcast by the engine — teammates see a green
[Team] label; other teams see nothing.
- Deep_Core_Operations compatibility: when DCO is active each MTS team gets its own
ship via the DCO remote interface; players spawn on the ship's interior surface with
DCO-appropriate starter items. Spawn teleports now retry each tick until the target
surface is ready rather than silently dropping.
- Admin starter-items panel: pressing Enter in the count field now submits the item,
equivalent to clicking the + button.
Changes:
- Pop-text spawn position raised and upward drift increased so notifications are less
likely to be obscured by open GUI panels.
Bugfixes:
- Fixed crash when a player died while in remote view: pop_text.rip was reading
surface.players on a space-platform surface, which Factorio does not support.
- Fixed crash when a tech was researched via the map editor: text render scale was 0 on
the first tick (ease-out starts at 0); clamped to 1e-4.
- Fixed spawn confirm popup not appearing after buddy join acceptance.
- Fixed spawn confirm popup incorrectly firing when exiting spectator mode or during
team-to-team force transitions.
- Fixed spectator permission group blocking translate_string input actions, causing mods
that call player.request_translations() (e.g. factoriolab-export) to hang waiting for
on_string_translated events that never fired.
Version: 0.4.9
Date: 2026-05-05
Features:
- Ultracube compatibility: each team gets its own starting cube on their own surface.
Cube location alerts are shown only to players on the relevant force. Force slots are
cleaned up when a team disbands so recycled slots get a fresh cube and a clean victory
condition.
Version: 0.4.8
Date: 2026-05-05
Features:
- Teams panel now shows a research queue in each team card header: up to 7 tech icons
with live progress bars that update at 10 FPS in-place. Hovering an icon shows the
tech name, queue position, and current progress percentage.
- Team cards show a colour-coded last-active indicator (green < 1 h, yellow < 24 h,
red > 24 h). Hovering it shows each member's total playtime and when they were last
online. The label refreshes in-place once per minute.
- Production Stats item tracking is now per-player — each player independently
explores which items to track; no longer a shared global list.
- Production Stats columns are now sortable. Click any column header to cycle through
unsorted → descending → ascending.
Changes:
- Max teams cap raised from 20 to 60 when Space Age is not installed (Space Age stays
at 20 due to per-team planet variant pre-creation).
- Team card header now shows only the display name; internal force name and player count
appear in a tooltip on hover, freeing space for longer team names.
- Research queue icons resized to 20 × 20 px; empty slots always reserve the progress
bar row so the card height never changes when research starts or finishes.
Bugfixes:
- Fixed crash when an admin kicked an offline player.
Version: 0.4.7
Date: 2026-05-04
Features:
- New players receive a welcome announcement on first join that includes
the Discord invite link. Returning players receive a "Welcome back"
message that includes their team name if they are on one.
- Periodic server-wide Discord reminder every 6 hours, prompting players
to join for reset notifications and game polls.
- Discord URL is configured via Settings → Map → Discord URL (defaults to
the community Discord; leave blank to disable all Discord messages).
Version: 0.4.6
Date: 2026-05-03
Changes:
- Team color now syncs from the leader's player color regardless of
source — the /color console command and Factorio's built-in GUI color
picker are both detected.
- Buddy-request events (request, cancel, accept, reject, join) are now
announced to all connected players, not just the team involved.
- Player leaving a team is now announced to all connected players.
- Solo leader leaving their team now auto-disbands it and broadcasts the
standard disband message.
- Production Stats panel now colors each team name using the leader's
current player color.
Bugfixes:
- Follow Cam frame is now closed on player disconnect; previously it
persisted on reconnect with cleared state, making all buttons no-ops.
- Follow Cam now renders immediately on open — the target area is charted
at frame creation rather than on the next poll tick.
- Clicking the Follow Cam toggle no longer rebuilds the Teams panel for
all connected players, eliminating the per-click lag spike.
Version: 0.4.5
Date: 2026-05-01
Features:
- Broadcast starter-item additions to all players. Both admin
add paths — manual single-item add and "Copy from inventory" —
print a colorized "<Admin> added Nx [item] to the starter
items list." Copy-from-inventory announces only the diff
(new or increased items); empty diffs stay silent.
Tweaks:
- Welcome / About panel refresh: list the Admin nav button
(admin only), add a Records & announcements section
explaining tech-record and milestone broadcasts plus the
per-team clock, and add a Commands section listing
/mts-teams, /mts-players, /mts-rename, /mts-leave, /mts-kick.
Version: 0.4.4
Date: 2026-04-30
Features:
- Spawn labels: every team-owned surface (planet variants,
cloned surfaces, and space platforms) now carries a persistent
"<team_tag_with_leader>'s\n<location>" label at the spawn
area. Platformer's existing hub label is rerouted through the
same code so it picks up the team-and-leader prefix too.
Live-refresh on /mts-rename, the Team Settings rename field,
and leader auto-election after a leader leaves. Backfilled on
on_configuration_changed for upgraded saves.
Tweaks:
- Landing pen: drop the "Same start. Different finish." subtitle
and render the "Spawn when ready" prompt with default-large at
scale 3 so it stays crisp instead of looking upscaled.
Version: 0.4.3
Date: 2026-04-30
Features:
- Dynamic planet enumeration. MTS now iterates data.raw.planet
at data-final-fixes (and game.planets at runtime) instead of
hardcoding the vanilla 5 base planets. Modded planets — those
registered via data:extend or via planet libraries like
PlanetsLib — get per-team variants, per-team space connections,
force locks, and discovery-tech routing automatically.
info.json declares ? PlanetsLib so its data stages run before
MTS's, ensuring modded planets are present at enumeration time.
- Generalized clone_mirror: any mts-{planet}-{N} surface mirrors
from the matching {planet} surface, not just nauvis. Mods that
decorate Vulcanus, Gleba, Fulgora, Aquilo, or any modded
planet now reach team variants automatically.
- Discovery tech detection scans every loaded technology for
unlock-space-location effects rather than matching tech names.
Works for vanilla planet-discovery-* techs and for custom
naming schemes used by planet mods.
- Teams GUI shows spectate buttons for own-team surfaces too
(previously foreign-team only). Use case: viewing your own
planet from your space platform without leaving the hub.
Friend-view path (no force change, no crafting pause) for
same-team views; full spectator path for foreign teams.
- Teams GUI rebuilds automatically on on_surface_created when
the new surface is team-owned (rocket launches a new platform,
a new modded planet variant is instantiated, etc.).
- Lignumis compat placeholder at compat/lignumis.lua: pure-comments
brief documenting the three runtime hardcoded "lignumis" filters
that break per-team variants and how to fix them upstream. No
active code; revisit when actually playing Lignumis.
Fixes:
- Spectator: pre-spectate "sitting in a space platform hub" state
is now correctly restored on exit. Uses the documented
LuaPlayer.enter_space_platform(platform) API to re-establish
the hub-pilot relationship — set_controller alone restored the
camera but not the "Drop to a planet" / platform schedule UI.
- Spectator: pressing escape in a platform-targeting spectator
session no longer leaves the user silently stuck. The camera
reverts to phys_surface (Factorio's escape behavior on
platforms doesn't fire on_player_controller_changed); a new
on_player_changed_surface check auto-exits the spectator when
the camera leaves the target team's territory.
- Spectator: viewing an own-team surface no longer forces the
player into spectator force. needs_spectator_mode now
short-circuits to false when viewer_force == target_force,
routing the click through enter_friend_view (no force swap,
no crafting pause).
- Force-utils: on_foreign_surface now recognizes Space Age
mts-{planet}-{N} variants via planet_map.get_force_by_planet.
Fixes the case where bouncing-from-foreign-surface didn't
trigger after exiting spectator on a team variant.
- Surface-utils: get_home_surface preference order corrected.
The player's stored player_surfaces entry takes priority over
any team platform; platforms are now a last-resort fallback.
Fixes the regression where "return to base" sent platform-
owning teams to the platform instead of their planet.
- vanilla / Space Age compat: pre-generate spawn-area chunks
synchronously before teleporting the player. Without this
pre-gen, clone_area runs on the chunk containing the player's
character and overwrites it, dropping them into god mode.
- Spectator: after exiting spectator via the on-screen button,
the Teams GUI rebuilds immediately so the button hides on
one click instead of the user needing a second click that
teleports them home.
- Spectator: crafting_queue_size guarded against the "No
crafting queue" engine error when called on players in
god/spectator/remote controllers.
- Diagnostic: helpers.player_state now logs character entity,
player.opened, nearby entity, and player.hub for spectator-
related debugging.
Version: 0.4.2
Date: 2026-04-29
Changes:
- docs/COMPAT.md restructured around the clone_mirror default.
The old four-layer framing gave each option equal weight; in
practice clone_mirror handles the bulk of cases automatically
and the rest are runtime gameplay rules that need narrower
fixes. Three ranked options for mod authors are now spelled
out: surface.planet.name predicate (smallest, generic), expose
runtime rules as remote.add_interface functions (closed-
source-friendly, multi-surface-mod-friendly), and mts-v1
event subscription (MTS-coupled). The "expose runtime rules
as remote functions" path is new — it wasn't called out
before and is the cleanest answer for closed-source authors
who'd rather not couple to MTS specifically.
Version: 0.4.1
Date: 2026-04-29
Features:
- Generic terrain compatibility via compat/clone_mirror.lua. Any
third-party mod that decorates the real "nauvis" surface via
on_chunk_generated and filters by hardcoded surface name is
now automatically mirrored onto every team surface. The mod's
handler runs once on nauvis; MTS clones the resulting tiles,
entities, and decoratives to each team-N-nauvis (or
mts-nauvis-N) variant. Verified with dangOreus, VoidBlock,
Alien Biomes, Periodic Madness, and the vanilla worldgen
stack. New mods that follow the same pattern work
automatically with no per-mod compat code.
Changes:
- Every team gets the same map by design. A single nauvis
source-of-truth is decorated by the mod stack, then cloned
to all team surfaces. Per-team randomization (different ore
patterns or biome layouts per team) is replaced with
consistent terrain across teams. Suits competitive race
formats; if you needed per-team variety this is a regression.
- dangOreus compat shim drops ~400 lines of re-implemented
perlin / voronoi / pie / spiral pattern code in favor of
cloning. Runtime gameplay rules (block non-miners on ore,
container spillage, floor-is-lava) are preserved as a thin
~150-line per-mod shim. dangOreus is now re-enabled on real
nauvis (it was previously toggled off) so its chunk-gen
output exists to clone from.
- VoidBlock compat shim drops the entire on_chunk_generated
body and the PLANETS / get_planet_config helpers. Surface
creation with autoplace disabled stays, since it saves
cloning over wasted vanilla worldgen.
- vanilla compat now pre-generates spawn-area chunks before
teleporting the player. Without pre-gen, clone_area would
run on the chunk containing the player's character and
overwrite it, dropping the player into god-controller mode.
Removed:
- compat/gridlocked.lua. The HUD-refresh stopgap and the
voidblock pre-claim are gone. Gridlocked still partially
works alongside MTS (its handlers don't filter by surface
name) but the stale HUD label after force change, the
voidblock + gridlocked landfill deadlock, and the
recent_claims save crash on team-slot release are
unaddressed pending upstream fixes.
Version: 0.4.0
Date: 2026-04-29
Features:
- Public mts-v1 remote interface for third-party mod
compatibility. Exposes events (on_team_created,
on_team_released, on_player_joined_team, on_player_left_team,
on_team_surface_created) and queries (get_team_list,
get_team_info, is_team_surface, get_surface_owner,
list_team_surfaces). See scripts/remote_api.lua for the full
contract and docs/COMPAT.md for integration patterns including
examples for chunk-gen mods (dangOreus-style) and stateless
surface decorators (VoidBlock-style).
- Admin command /mts-replay [--chunks] to re-fire
on_surface_created (and optionally on_chunk_generated for
every existing chunk) on team surfaces, so a newly-installed
third-party mod can apply its setup retroactively without
starting a fresh save.
- Admin commands /mts-pause, /mts-resume, /mts-trim for runtime
team management. /mts-pause sets active=false on all entities
owned by a team force; /mts-resume reverses it; /mts-trim
deletes unused chunks on team nauvis surfaces, processing one
surface per tick interval to avoid stutter.
- Gridlocked compatibility. The voidblock compat shim now pre-
claims the four chunks containing the starter island when
Gridlocked is loaded, preventing the deadlock where landfill
can't be placed on unclaimed chunks. The gl_points HUD label
is refreshed when a player changes force (stopgap until
upstream Gridlocked hooks on_player_changed_force itself).
Changes:
- Welcome screen About tab rewritten around the team-pool model.
Mentions hidden-until-friendly surfaces, lists the actual nav
buttons (Teams, Research, Production Stats, Team Awards, Team
Settings), and adds a Space Age section that only renders when
Space Age is active.
- The voidblock compat shim's leftover-entity purge in
on_chunk_generated is now restricted to vanilla worldgen types
(tree, simple-entity, resource, fish, cliff, unit-spawner,
turret, unit) instead of nuking every non-character non-cargo-
pod entity. Mod-placed entities like Gridlocked's
gl-unclaimed-chunk markers now survive the tile swap.
- team_tag_with_leader helper promoted to scripts/helpers and
adopted by /mts-pause and /mts-resume admin output for
consistent rich-text formatting.
Removed:
- Per-team offline auto-pause checkbox in Team Settings, and the
associated force_pause hooks for on_player_joined,
on_player_left, and on_force_changed. /mts-pause and
/mts-resume admin commands remain the only pause path. A
one-shot migration in on_configuration_changed resumes any
legacy paused or mid-pause forces so existing saves don't
load with stuck active=false entities.
Version: 0.3.9
Date: 2026-04-24
Features:
- Team Awards GUI (new top-bar button): leaderboard window with
Research, Science, and Resources tabs, each showing the top 3
teams per achievement ranked by elapsed time since team birth.
Gold / silver / bronze rows, team tag with current leader's name.
- Follow Cam now charts a box around the tracked player every tick
so the camera widget always has map data to render. Previously,
non-friend viewers saw a black cell until the chart data happened
to already exist for their force.
- Follow Cam / Spectate on a player who is themselves spectating
another team now shows that player's body (their physical
surface/position) instead of chain-following whatever they're
watching.
- dangOreus compat: a small deepwater patch is now carved at the
origin of every team surface during chunk generation, so
offshore pumps still have water access when the dangOreus
starting radius is shrunk far enough to bury vanilla's starter
lake in ore.
Changes:
- Milestone announcements now render the item as an icon in the
quantity text ("produce 100 [item=landfill]") instead of a
plain word. The per-tracker `label` field is no longer used.
- Spectate surface button now uses the map icon, visually
distinct from the radar icon used by Follow Cam.
- Team rename (/mts-rename or Team Settings) refreshes any open
Awards windows so the new name appears immediately.
Version: 0.3.8
Date: 2026-04-20
Features:
- Team Settings GUI (new top-bar button): team leaders can rename their
team and toggle offline auto-pause. Non-leaders see all options in a
read-only state with an "only your team leader can change these
settings" notice. Any change is broadcast to all players.
- Offline auto-pause (opt-in per team): when enabled and every team
member is offline, all entities on the team's surfaces are set to
active = false, freezing production. They resume on reconnect. Work
is amortized chunk-by-chunk across ticks (500-entity budget per
tick) so large bases don't stutter.
- Follow Cam per-camera controls: each tracked player now has its own
zoom-out / zoom-in / close buttons. Zoom levels persist across
rebuilds (default 0.5, range 0.05 - 0.5).
- Spectator announcements include surface name: "Pirion is now
spectating Avengers (Nauvis)" instead of "spectating Avengers".
Works for start, stop, and follow-cam "expand" paths (which also
include the target player's name).
- Space Age: each team's Aquilo variant now has its own connection to
the shared solar-system-edge, and the vanilla edge → shattered-planet
connection remains shared. Every team can now reach the endgame.
Bugfixes:
- Space map button no longer disappears when a space platform is
built. Root cause was on_surface_created re-running the full force-
lock reset, which clobbered planet-discovery unlocks every time.
Split into a narrow "hide-only" path for surface events vs the full
reset for init / slot recycle / force reset.
- Fix state leak between team-slot occupants on release/reclaim.
Version: 0.3.2
Date: 2026-04-16
Other:
- Release workflow: release notes now cover changes since the last
PUBLISHED release (queried via the GitHub API) instead of just the
current version's changelog entry. Handles cases where an intermediate
version was tagged but never published — its changelog gets included
in the next successful release's notes. Same notes used for both the
GitHub release body and the Discord announcement.
Version: 0.3.1
Date: 2026-04-16
Features:
- dangOreus mod compatibility: when dangOreus is active, dangOreus's
chunk-gen behavior (ore flooding, anti-building-on-ore, container
spill, floor-is-lava) is applied to each team's nauvis surface
(team-N-nauvis in base 2.0 / VoidBlock, mts-nauvis-N in Space Age).
Default nauvis is disabled for dangOreus since no team plays there.
All five dangOreus modes (pie, random, voronoi, perlin, spiral) work.
Perlin mode also fixes an upstream bug where integer coordinates
collapsed the noise output to a constant (ore variety restored via
coordinate scaling).
Bugfixes:
- Platformer mode: fix player being teleported to the landing-pen
surface after pressing Escape from a remote view. Root cause was
Factorio's god-controller cursor following the last-viewed surface
when there's no character to anchor position (Platformer players
have no character by design). Mitigated by saving the god's
physical_surface + physical_position before entering remote view
and teleporting back on exit (god_pre_remote anchor in
on_player_controller_changed).
- Fix on_player_controller_changed handlers referencing the wrong
event field. Factorio 2.0 uses event.old_type, not
event.old_controller_type; the mismatched field silently read nil,
so prior attempts at this fix never actually executed.
- Re-enable hiding the default nauvis surface from team forces in
all modes (base 2.0, VoidBlock, Platformer) now that the
god_pre_remote guard protects against the related SurfaceList
engine quirk.
Other:
- Diagnostic logging: helpers.diag() + helpers.player_state() instrument
every surface/controller event and every teleport call site with
force/surface/position/physical_surface/physical_position/controller
type, making future position-state bugs far easier to diagnose.
- helpers.set_surface_hidden() wrapper (with DISABLE_SURFACE_HIDING
kill-switch) routes all force.set_surface_hidden calls through one
place so they can be disabled globally for diagnosis.
Version: 0.3.0
Date: 2026-04-16
Features:
- Space Age support: per-team planet variants (mts-nauvis-1, mts-vulcanus-1, etc.)
with space-connection topology mirrored from vanilla. Auto-detected at runtime.
- Each team gets their own full solar system; base planets are locked and hidden
for team forces so teams never collide on shared planets.
- Researching planet-discovery techs unlocks the team's variant (not the base).
- Teams GUI: replaces "Players & Platforms" with a card-based team-centric view.
Each card shows members (★ leader, online/offline, friendship), surfaces, and
per-player Follow Cam buttons.
- Follow Cam: grid of live camera widgets tracking individual players across
planets and surfaces. Updates at ~30 FPS. Click a cell's magnifier to expand
into full spectator mode; Esc returns to the grid with state preserved.
- Tech records & announcements: tracks first + fastest per technology across
teams. Broadcasts "first to research [X]" and "new speed record" messages.
- Milestone engine: generic production-threshold tracker (science, landfill,
space platform tile). Editable via milestones/config.lua — add any category
with its own thresholds and counters.
- Team clock: each team's elapsed time starts when the first member spawns,
used for all record comparisons regardless of team creation time.
- Redesigned Landing Pen: "Start a new team" primary button + "OR join an
existing team" section with per-team Request to Join. Request flow announces
to all team members (only the leader can accept).
- Cancel request button: requesters can withdraw before a response.
- Leave/Kick confirmation dialogs explain consequences before executing.
- Admin toolbar button (only visible to admins) replaces auto-open panel.
- Commands: /mts-teams (list all teams + status), /mts-rename (leader renames).
Changes:
- Force naming reform: forces are now "team-1" through "team-N" (pre-created
at game start via mts_max_teams startup setting; default 20). Forces no
longer carry a player's name — any member can become leader without a swap.
- Team names are customizable via /mts-rename or the Teams panel.
- Force color always derived from team leader's player color.
- Simplified team-leader logic: leader leaving elects a new leader; no
complex force-swapping.
- Landing pen players stay on the spectator force until they click Spawn,
so game.forces.player stays clean as a research baseline.
- Teams GUI and all chat announcements use "Team <name>" prefix and
color-tag teams consistently.
- Default nauvis surface is hidden from team forces (Space Age or not).
- /mts-kick and /mts-leave now use confirmation dialogs (gui/confirm.lua).
- Multi-player teams (buddy join) enabled by default.
Bugfixes:
- Research on leaving a team resets to baseline (was incorrectly carrying
over the team's full research to the departing player's new force).
- Team cards stay visible while a member is spectating (uses team_pool
occupancy check, not force.players length, so spectating members don't
hide their team).
- Follow Cam tooltips update when targets are added/removed.
- Buddy join request routes to team leader (not arbitrary member).
- Admin nav button stays grouped with mod buttons after demote/promote.
Version: 0.2.20
Date: 2026-04-14
Features:
- Buddy join team size limit: admin dropdown (2-10, default 2) controls max players per team
- /mts-leave command: any player can leave their team and return to the Landing Pen
- /mts-kick command: team leader can kick members from their team
- Team leadership transfer: when owner leaves, next member is promoted and all players are notified
- Admin Starter Items tab: configure starting inventory by copying from inventory or adding items manually
- Starter items auto-populated from first player's inventory on initial spawn
- New admin-added starter items are distributed to all already-spawned players immediately
- Anti-abuse: inventory cleared when rejoining a team previously left
- Landing Pen GUI is now scrollable for large player counts
- Team spawn announcement broadcast when a player starts their team
Changes:
- Rename force prefix from "player-" to "force-"
- Rename commands from /st-* to /mts-*
- Player names in system messages are now colorized with their chat color
- Force name shown in grey brackets after every "team" mention in chat messages
- Force name shown next to owner name in the Players GUI
- Leave Team button removed from Players GUI (use /mts-leave instead)
Bugfixes:
- Fix multiplayer desync caused by storage writes in on_load
- Fix team size not decrementing when force owner leaves
- Fix Players GUI showing old owner name after team leadership transfer
- Fix "Return to my base" button appearing for players in the Landing Pen
- Fix crash from duplicate GUI element names in Starter Items tab
Version: 0.2.17
Date: 2026-04-08
Features:
- Players in the Landing Pen are now assigned the spectator permission group, preventing building or griefing in the pen area
Changes:
- Update README: remove Space Block references, add Platformer and VoidBlock links, remove installation section, fix command references
- Update info.json description
Version: 0.2.16
Date: 2026-04-08
Features:
- Spectate now focuses on the target player's live position (or their saved position if they are away spectating someone else), instead of always starting at surface origin
- Returning from spectate restores the player to their exact pre-spectate surface and position, with collision avoidance to prevent getting stuck in structures built by bots
- Character remains vulnerable (destructible) while spectating, preventing players from using spectate mode to escape enemy attacks
Changes:
- Rename gui/platforms.lua to gui/surfaces.lua (internal variable: surfaces_gui)
Bugfixes:
- Players in the Landing Pen can no longer see or use the "request friend" option for spawned players
Version: 0.2.15
Date: 2026-04-07
Changes:
- Extract shared compat utilities (planet_display_name, process_pending_teleports, setup_player_surface) into compat_utils.lua to reduce duplication between vanilla and VoidBlock modules
Bugfixes:
- Fix spectator mode not exiting when spawning from the Landing Pen
Version: 0.2.14
Date: 2026-04-06
Features:
- VoidBlock mod compatibility: each player gets their own Nauvis with void-island terrain
- Pre-generate chunks around spawn so players never see default terrain flash
Changes:
- Stats GUI: active category and time period buttons use green_button style for visibility
Version: 0.2.13
Date: 2026-04-06
Features:
- "Allow Friendship" admin flag: disabling dissolves all friendships and hides checkboxes
- Per-player "show offline" toggle in Players panel (hidden by default)
- Players in the Landing Pen are excluded from Research and Stats GUIs
Changes:
- Codebase reorganized into gui/, compat/ folders with shared helpers.lua
- All module variables renamed from M/H to descriptive names
- Extracted force_utils.lua, surface_utils.lua, gui/friendship.lua,
gui/research_diff.lua, gui/landing_pen_terrain.lua for smaller files
- Vanilla surface naming changed from "st-<index>-<planet>" to "<force>-<planet>"
- Spectator exit always teleports player home (prevents god-mode stranding)
- Stats GUI refreshes on player spawn (not just connect/disconnect)
- Widened Players panel and Stats name column to prevent layout shifts
Bugfixes:
- Fix spectator bounce failing in Platformer god mode (force lookup used
spectator force instead of effective force)
- Fix landing pen player colors: use chat_color consistently instead of
hardcoded yellow for self and grey for spawned players
Version: 0.2.12
Date: 2026-04-05
Features:
- Spectator system: view other players' surfaces via a dedicated spectator force
- Spectate button (magnifying glass) on each player's platform/surface row
- Friend-view: friends bypass spectator force and get direct remote view
- Mutual friendship: both sides must agree to activate, either side can break
- Friendship request states: request friend (blue), pending (yellow), friends (green)
- Chat prefix shows "[on X's base][spectator]" or "[on X's base][friend]" context
- Admin flag: "Spectate Notifications" to toggle spectation announcements
- Admin flag changes now broadcast to all players
- Crafting queue freezes while spectating, resumes on exit
- "Stop spectating" button shows "(crafting paused)" when crafting queue is active
- Surface visibility: other players' surfaces hidden from map sidebar unless friends
Changes:
- GPS ping buttons replaced with spectate buttons in Players GUI
- Friendship is now mutual (requires both sides) instead of one-directional
- Friend/unfriend downgrade: losing friendship while viewing switches to spectator mode
- Spectator force hidden from all player-facing GUIs (Players, Research, Stats)
- Players GUI uses effective force for all comparisons (correct during spectation)
- Vanilla surface naming changed from "st-<index>-<planet>" to "<force>-<planet>"
Bugfixes:
- Fix player color showing as white when spectating (now uses game.get_player lookup)
Version: 0.2.11
Date: 2026-04-04
Features:
- Announce friend/unfriend actions to all players with mutual status indicator
Bugfixes:
- Fix players being stranded on foreign surfaces after exiting GPS remote view
- Fix landing-pen players being moved to foreign surfaces via GPS tag clicks
Version: 0.2.9
Date: 2026-04-03
Features:
- Landing Pen visual overhaul: lab-dark-2 island, water moat, grass ring, ground text
- Add "Buddy Join" admin feature flag (off by default) to gate buddy request system
- New branding: "Solo by design. Legendary by choice."
Changes:
- Replace quality sync polling (every 30 ticks) with event-driven sync on research finished
- Landing Pen chunks now handled via on_chunk_generated (no more grass outside the void)
Bugfixes:
- Fix nav bar buttons not working after server restart / save transfer
- Fix welcome screen crash when on_player_created and on_player_joined_game both fire
Version: 0.2.8
Date: 2026-04-02
Features:
- Research GUI: collapsible player rows (1 row default, expand to see all)
- Research GUI: "You both have researched" section in diff view
- Research GUI: click any tech icon to open it in the tech tree
- Research GUI: Escape navigates back from diff to overview before closing
- Welcome window: added close button and About tab selected by default
- Welcome window: Discord tab uses full logo image
- Admin panel now visible to all admins, not just the host
- Add GitHub Actions workflow to package mod zip on version tags
Changes:
- Remove all periodic GUI polling; all updates are now purely event-driven
- Platforms and admin frames use clear() instead of destroy+recreate (fixes drag jitter)
- Nav bar buttons doubled in size (56x56)
- Landing Pen window positioned below top bar, above Players panel
- Research play time now shows elapsed since spawn, not absolute game time
- Remove em-dashes from About page and README
Bugfixes:
- Fix Players panel reappearing after closing (5-second poll was recreating it)
- Fix admin and Players windows feeling jittery while dragging
Version: 0.2.7
Date: 2026-04-01
Features:
- Add Landing Pen: new players wait in a shared pre-game lobby before spawning
- Add buddy system: pen players can request to join an active player's force
- Add vanilla surface support: each player gets their own nauvis surface
- Add admin panel with runtime feature flags (Landing Pen toggle)
- Add per-player clock tracking (time since spawn)
- Add research comparison panel with tech icon grid and 1-on-1 diff view
- Show Platforms GUI to players in the Landing Pen
Changes:
- Rename Platforms GUI to Players GUI
- Include vanilla surfaces in the player list as "<name>'s base on <Planet>"
- Disabling Landing Pen mid-session immediately spawns all waiting players
Bugfixes:
- Fix landing pen surface shape: out-of-map tiles outside the circle
- Fix spawn button double-fire and duplicate platform creation
- Fix cutscene skip: exit_cutscene() before teleport
- Fix solo force being reset by scenario after cutscene
- Fix teleport retry: keep pending entry until teleport succeeds
Version: 0.2.6
Date: 2026-03-31
Bugfixes:
- Fix Stats button width in Platforms title bar
Version: 0.2.5
Date: 2026-03-31
Features:
- Add per-player production stats GUI with five categories (Ores, Plates, Intermediates, Science, Custom)
- Categories built dynamically from game prototypes; works with overhaul mods
- 12 choose-elem-button columns per category; players can swap any item
- Time range selector: 1m / 10m / 1h / 10h / All time
- Per-player column overrides persisted across sessions
Changes:
- Online/offline status updates instantly via events (no tick delay)
Version: 0.2.4
Date: 2026-03-30
Features:
- Add Platformer mod compatibility: per-player space platform creation and deferred teleport
- Add "Return to my base" button when visiting a foreign surface
Changes:
- Hide the default "player" force from the platforms GUI
- Declare optional dependency on Platformer for correct load ordering
Version: 0.2.3
Date: 2026-03-29
Changes:
- Remove GPS ping button from player name rows; GPS buttons now only appear on platform rows
Version: 0.2.2
Date: 2026-03-29
Changes:
- Remove all hub collision detection hacks (use /unstuck instead)
Version: 0.2.1
Date: 2026-03-29
Bugfixes:
- Fix hub collision fix and /unstuck to use physical_surface/position
- Fix remote view (GPS clicks) incorrectly triggering the collision fix
Version: 0.2.0
Date: 2026-03-29
Changes:
- Remove automatic hub collision repositioning (caused issues with GPS pings)
- Document /unstuck command as the manual alternative
Version: 0.1.1
Date: 2026-03-28
Changes:
- Add thumbnail image for mod portal
- Add homepage URL to info.json
Version: 0.1.0
Date: 2026-03-28
Features:
- Separate forces: each player gets their own force with independent research
- Quality unlocks and space platform access copied from default force
- Neutral diplomacy: players start in cease-fire with all others
- Per-player friend toggle via the Platforms GUI
- Cross-force chat: normal messages broadcast to all forces
- Draggable, collapsible Platforms GUI with live GPS locations
- /platforms command with colored names and clickable GPS pings
- /unstuck command to eject from vehicles and teleport to safety