GZ-Diplomacy [Friendly/Neutral/Hostile Teams + Separate Start and Research]

by gz-mods

0.4.9 #TEAM_TERRITORY_AND_LAND_GRABS A fully featured Oarc-style multiplayer module for GIZMOD. Allows for multiple forces (teams) with their own tech trees, resources, spawn locations, private chat, and personalization settings per-team and per-player. Fully integrated with the GIZMOD modular ecosystem for maximum depth of gameplay and advanced multiplayer interaction.

Overhaul
4 hours ago
2.0
136

Changelog

Version: 0.5.2
Date: 2026-09-02
  Territory:
    - Belts, underground belts, splitters/loaders, pipes, underground pipes, inline pumps, and offshore pumps are now territory-exempt.
    - These logistics/fluid entities may be placed through unclaimed or foreign territory and never create territory claims.

Version: 0.5.1
Date: 2026-09-02
  Bugfixes:
    - Fixed a crash when applying Game Settings: the settings panel no longer calls require() from an on_gui_click handler.
    - Wired the full player-panel refresh through a parse-time callback, preserving the existing refresh behavior without runtime module loading.
    - Removed three additional deferred require() calls from admin commands so those command paths cannot trigger the same Factorio runtime-require error.

Version: 0.5.0
Date: 2026-09-02
  Team Starts:
    - Each team now receives a one-time leader expansion kit containing 1 Light Resource Outpost and 10 Territory Flags.
    - New teams receive the kit when their founding leader is successfully assigned.
    - Existing active teams receive the kit once on migration to 0.5.0.
    - The grant is tracked per team, so changing leaders does not generate duplicate starter kits.
    - If the leader inventory is full, overflow is spilled safely at the leader's position.

Version: 0.4.98
Date: 2026-09-02
  Territory:
    - Increased each team's starting territory from 50x50 to 96x96 tiles.
    - Existing team starter claims are resized in place on configuration change without forcing a full territory-schema rebuild; overlapping structure/outpost claims are preserved.

Version: 0.4.97
Date: 2026-09-02
  Territory:
    - Fixed belts, underground belts, splitters/loaders, pipes, pipe-to-ground, pumps, and offshore pumps being able to survive placement outside the owning team's territory when their runtime placement metadata was incomplete.
    - Infrastructure classification is now type-authoritative and no longer depends on items_to_place_this/player-creation metadata before applying territory restrictions.
    - Pumps and offshore pumps are now non-claiming infrastructure like belts and pipes: they must be inside owned territory and do not extend the border.
    - Bumped the territory geometry schema so existing saves rebuild claims without legacy pump-based territory extension.

Version: 0.4.96
Date: 2026-09-01
  Administration:
    - Unified chunk culling into one admin checkbox: Enable chunk culling. Culling is enabled by default.
    - Removed the separate Enable automatic chunk culling checkbox; the single master control now governs scheduled culls, Skip next cull, and Cull now.
    - Preserved the warning that disabling culling will severely degrade performance on larger maps.
    - Existing saves migrate to culling enabled unless the explicit 0.4.95 master-disable option had been selected.
    - Kept the legacy set_enabled/status.enabled API as a compatibility alias for integrations, backed by the unified master state.

Version: 0.4.95
Date: 2026-09-01
  Administration:
    - Added a Skip next cull admin action that advances the next scheduled automatic chunk cull by one full configured interval.
    - Added a master Disable chunk culling entirely option. While enabled, both automatic scheduled sweeps and manual Cull now sweeps are blocked, and an active sweep is stopped immediately.
    - Added the warning: disabling culling will severely degrade performance on larger maps.
    - Automatic-culling enablement is preserved separately, so re-enabling the master culling switch resumes the schedule when automatic culling was previously enabled.

Version: 0.4.94
Date: 2026-08-30
  Territory:
    - All entity prototypes of type wall now act as compact territory anchors automatically, including modded wall varieties; gate prototypes are included so gates do not break a perimeter.
    - Walls/gates claim only the single territory grid cell they occupy and may advance outward only when adjacent to existing team territory.
    - Added derived enclosure territory: neutral land fully enclosed by one connected team's direct territory is automatically claimed by that team.
    - Enclosure detection uses four-way connectivity, so diagonal corners do not seal an area and mixed-team boundaries cannot award the interior.
    - Breaking a perimeter removes territory that existed only because of that enclosure; direct claims from flags, outposts, drills, furnaces, buildings, and walls remain authoritative.
  Performance:
    - Enclosure recalculation is event-driven and debounced after territory changes; at most one dirty team/surface is processed on a sparse 15-tick service interval, with no enclosure scan while territory is unchanged.
    - Disconnected direct territory islands are flood-filled independently to avoid scanning the rectangle between distant bases.
    - Derived enclosure claims are capped at 10,000 territory cells as a safety valve against accidental continent-scale loops.

Version: 0.4.93
Date: 2026-08-30
  Changes:
    - Added a generic external player-panel tab hook so dependent mods can inject onboarding pages without putting their copy or logic inside GZ-Diplomacy.
    - Added a Respawn Starting Resources admin action using the existing player dropdown; it rebuilds the selected player's team starter cluster at the team's actual spawn.
    - Added an external starter-resource repair callback path so GZ-Terra can restore Terra-owned starter resources such as graphite separately.

Version: 0.4.92
Date: 2026-08-29
  Fixes:
    - Restored new-team starter resources to the compact spawn-centered cluster used by earlier Diplomacy versions.
    - Canonical iron, copper, coal, stone, sand, and calcite patches now target a ~14-tile ring around the actual team spawn instead of searching progressively outward across the starting area.
    - Terrain fallback/repair stays local to the spawn cluster and terraforms a nearby compact patch rather than moving a missing resource tens of tiles away.
    - Commit-time resource repair now checks the immediate starter cluster instead of accepting unrelated natural ore up to 140 tiles away.
  Settings:
    - Repurposed Starting resource radius as Starting resource cluster radius, default 14 tiles with a 14-64 range.
    - Persisted legacy 96-1024 radius values are automatically treated as the restored 14-tile cluster radius.
Version: 0.4.91
Date: 2026-08-29
  Changes:
    - Permanently protected the central/default starting area from physical chunk culling.
    - Added a one-time migration repair that regenerates missing chunks within the 500-tile origin DMZ radius on upgraded saves.
    - Force-restamps the central DMZ floor, barrier, and terminal after the repair so deleted staging-area terrain is restored correctly.
    - Bumped the culling plan schema so any in-progress pre-0.4.91 sweep is discarded and rebuilt with origin protection.
Version: 0.4.90
Date: 2026-08-29
  Balance:
    - Light Resource Outpost now requires 10 raw fish instead of 5.
Version: 0.4.89
Date: 2026-08-29
  Balance:
    - Light Resource Outpost now requires 5 raw fish instead of 1.
Version: 0.4.88
Date: 2026-08-29
  Diplomacy UI:
    - Added Last active for every team in both the political roster and Team Relations cards.
    - Teams with any connected member show Last active: Now; fully offline teams show elapsed server-running time since their most recently disconnected member was active.
  Activity Tracking:
    - Fixed offline LuaPlayer lookups refreshing last_seen_tick merely because a UI or membership repair inspected the player.
    - last_seen_tick now advances through connected-player activity and the explicit disconnect event, so offline team activity timestamps remain stable.
Version: 0.4.87
Date: 2026-08-26
  Multiplayer:
    - Fixed an immediate player-join desync caused by Diplomacy diagnostic history persisting tostring(table) output.
    - on_player_joined_game sends a structured player table to Gizmod diagnostics; the old compact logger converted that table to a Lua runtime identity such as "table: 0x...", which can differ between peers while being written into synchronized storage.
    - Compact diagnostics now serialize structured player fields deterministically and never stringify table/userdata/function/thread identities.
    - Debug payload truncation now selects keys in deterministic sorted order instead of depending on pairs() traversal order.
    - storage_lib.debug now strips Lua reference-address strings as a second safety boundary before any diagnostic message is stored.
  Notes:
    - No team, territory, spawn, culling, war, or 512-tile Gizmod regeneration behavior changed.
Version: 0.4.86
Date: 2026-08-26
  Bugfixes:
    - Fixed gz-diplomacy.claimed_chunks_in_area failing with "Require can't be used outside of control.lua parsing".
    - Territory is now loaded once while scripts/gizmod_bridge.lua is parsed and the remote interface calls the already-loaded module table.
    - Fixed the same latent runtime-require bug in set_show_territory, set_show_flag_placement, and register_external_claim.
  Notes:
    - Territory ownership, the 512-tile Gizmod regeneration safety buffer, culling, claims, and team behavior are otherwise unchanged.
Version: 0.4.85
Date: 2026-08-26
  API:
    - Added gz-diplomacy.claimed_chunks_in_area, a read-only territory query that returns unique claimed chunk coordinates inside a supplied tile rectangle.
    - Intended for cross-mod safety buffers such as Gizmod enemy-base regeneration.
  Performance:
    - The query runs only when explicitly called; no polling or periodic territory work was added.
Version: 0.4.84
Date: 2026-08-25
  API:
    - Added active_team_count to the gz-diplomacy status snapshot.
    - No team, territory, spawn, or culling behavior changed.
Version: 0.4.83
Date: 2026-08-25
  Bugfixes:
    - Restored/hardened Light Resource Outpost item and recipe visibility.
    - Added a data-final-fixes guard so later compatibility mods cannot leave the outpost hidden or remove its Military 2 unlock effect.
    - Added a one-time bootstrap/configuration repair that enables the Light Resource Outpost recipe for any established force that already researched Military 2.
    - If Military 2 is absent because of another technology overhaul, the outpost recipe now enables as a compatibility fallback.
  Notes:
    - Light Resource Outpost territory behavior and balance are unchanged.
Version: 0.4.82
Date: 2026-08-25
  Features:
    - Added gz-diplomacy.register_external_claim(spec) for other GZ systems to register player/team-owned placeable entities as explicit territory claim anchors without hardcoding their prototype names into Diplomacy.
  Safety:
    - External claims are accepted only when the entity already sits inside territory owned by its force's Diplomacy team, so the API can extend a border but cannot bootstrap ownership in unclaimed or enemy territory.
    - External claims use stable unit-number source IDs and are automatically removed through on_object_destroyed.
Version: 0.4.81
Date: 2026-08-25
  Diagnostics:
    - Routed all 0.4.80 spawn/worldgen profiling through Gizmod's structured debug interface instead of raw Factorio log() calls.
    - Worldgen phases now emit structured worldgen_* events into the gz-diplomacy Gizmod debug module, including candidate position, attempts, profiler time, chunk wait ticks, cliff counts, and resource-stamp results.
    - These diagnostics now appear in GIZMOD_logs/current_gz-diplomacy.json, session_gz-diplomacy.jsonl, and Gizmod's live debug view whenever GZ-Diplomacy debug logging is enabled.
  Notes:
    - No world-generation, spawn queue, or culling behavior was changed.
Version: 0.4.80
Date: 2026-08-25
  Diagnostics:
    - Added targeted [GZ-Diplomacy][worldgen] timing logs around background spawn preparation.
    - Logs candidate scans/rescans, chunk-generation requests, asynchronous chunk wait duration, full-area readiness, cliff clearing, starter-resource stamping, and total candidate-area preparation time.
    - Synchronous phases use Factorio LuaProfiler timings; asynchronous chunk generation reports elapsed wait ticks.
  Notes:
    - No spawn-generation, culling, queue, or gameplay behavior was changed.
Version: 0.4.79
Date: 2026-08-25
  Changes:
    - Generated chunk culling now permanently preserves any chunk containing rail entities.
    - Cargo Ships waterways are automatically covered because straight, diagonal, curved, and legacy waterways use Factorio rail entity types.
  Performance:
    - Rail protection is snapshotted only when a cull begins; there is no new per-tick rail scanner or build/mining bookkeeping.
    - Rail entities are deduplicated by chunk before protection intervals are added.
  Migration:
    - Bumped the culling scan schema so an in-progress older sweep is discarded and rebuilt with rail/waterway protection.

Version: 0.4.78
Date: 2026-08-24
  Changes:
    - Stone furnaces now claim an exact 6x6 territory area and cost 20 stone each. Existing territory is rebuilt once so already-placed furnaces use the compact claim geometry.
  Fixes:
    - Hardened team-start resource generation so canonical resource patches are placed on separated deterministic positions instead of crowding the spawn ring.
    - Added bounded fallback terraforming/repair for resource patches that would otherwise fail on coastlines or unusual modded terrain.
    - Guaranteed the configured starter oil wells more aggressively and added a commit-time repair pass for prepared previews missing an entire required resource type.

Version: 0.4.77
Date: 2026-08-24
  Changes:
    - Reserve Sundry's cells around committed team starting areas through GZ-Economy's runtime API.
    - Existing Sundry's compounds in a new spawn cell or any adjacent cell are despawned and those cells are excluded from natural generation.
    - Reassert Sundry's exclusion around all existing team spawns on init/configuration changes; add optional GZ-Economy load ordering when present.

Version: 0.4.76
Date: 2026-08-24
  Fixes:
    - Territory rebuilds now recognize every existing claim-capable structure owned by a team, even when it belongs to a disconnected base or outpost separated from the initial spawn territory.
    - Removed the migration-only starter-connectivity requirement that caused separated factory sections to disappear from ownership after territory schema rebuilds.
    - Territory migration scans teams, surfaces, and existing claim anchors in stable order for deterministic multiplayer rebuilds.

Version: 0.4.75
Date: 2026-08-24
  Fixes:
    - Fixed a multiplayer desync when a player joined while generated-chunk culling was in progress.
    - Replaced the non-persisted cross-tick LuaChunkIterator with a deterministic sorted deletion queue stored in save state.
    - Existing iterator-based culls are cancelled and rescheduled during migration rather than resumed unsafely.

Version: 0.4.74
Date: 2026-08-23
  Changes:
    - Territory Flags now use a true 6-tile claim radius, covering a 12x12 area centered on the flag.
    - The native placement preview now shows the full 12x12 claim footprint while the Territory Flag is held.
    - Bumped the territory geometry schema so existing saves rebuild placed flag claims at the new radius on configuration change.

Version: 0.4.73
Date: 2026-08-23
  Changes:
    - Territory Flag placement now uses native cursor visualizations: a visible flag marker and the exact 6x6 claim footprint appear automatically while the flag is held.
    - Removed the Show flag placement checkbox and retired the old nearby-candidate helper overlay.
    - Show territory remains a player-owned construction helper and once again stamps the team flag across owned territory on a 20-tile grid.
    - Repeating territory flag stamps are only drawn when their complete 2x2 visual footprint is inside claimed territory.

Version: 0.4.72
Date: 2026-08-23
  Changes:
    - Changed scheduled culling from force-chart hiding to physical generated-chunk deletion for actual map/save performance reclamation.
    - Generated chunks more than 8 chunks from claimed player territory are deleted with LuaSurface.delete_chunk and can regenerate if explored again. Connected players and permanent team spawns keep the same 8-chunk safety buffer.
    - Chunk deletion is throttled across ticks and the 30/5/1-minute warnings now explicitly state that remote generated terrain will be deleted.
    - The compact GZ-Dock construction helpers now include Show territory for the player's own territory only and Show flag placement with the team's flag plus its 6x6 claim footprint.
  Fixes:
    - Updated the external set_show_territory bridge to control the player's own construction overlay instead of the retired foreign-territory overlay.
Version: 0.4.71
Date: 2026-08-23
  Changes:
    - Reworked the compact GZ-Dock territory controls as construction helpers. Show territory now displays only the player's own claimed territory and border; it no longer controls other teams' in-world territory overlays.
    - Added a Show flag placement checkbox to the compact GZ-Dock. It displays the team's actual flag art at recommended 6-tile-grid frontier placements and shades the full 6x6 claim area for each candidate.
    - Flag placement guides only appear where the complete 2x2 flag footprint is already inside the player's territory, matching the real placement rule, and are bounded around the player to keep rendering cost predictable.
  Fixes:
    - Existing foreign in-world territory overlays from older saves are cleared during bootstrap while permanent team flag markers and map/chart territory proxies remain intact.
Version: 0.4.70
Date: 2026-08-23
  Changes:
    - Reduced the chart-culling protected buffer from 20 chunks to 8 chunks around claimed player territory, connected players, and permanent team spawns.
  Fixes:
    - Hardened compact GZ-Dock discovery so Show territory can reattach on existing saves even when Gizmod's private Dock GUI name changed.
    - Added launcher-signature fallback detection for the stable G/D/E/C/T Dock controls, stale-control cleanup, immediate post-registration refresh, and the existing once-per-second reattach pass.
Version: 0.4.69
Date: 2026-08-23
  Features:
    - Moved the per-player Show territory toggle out of the expanded Diplomacy panel and into the permanent compact GZ-Dock for one-click access.
    - Added a dedicated Game Settings tab to the main Diplomacy window. Admins can manage chart culling, maximum teams, maximum players per team, spawn layout limits, and starting-resource options there.
    - Added a configurable 1-64 maximum players-per-team rule. Lowering the cap does not eject existing members; it blocks additional joins until the team is below the limit.
  Changes:
    - Moved chart-culling enable/disable, interval, status, and Cull now controls into Game Settings. The 120-720 minute interval bounds and 30/5/1 minute scheduled warnings are preserved.
    - Removed duplicate territory/culling controls from the expanded GZ-Dock Diplomacy panel.
Version: 0.4.68
Date: 2026-08-23
  Fixes:
    - Fixed the GZ-Dock integration manifest: the Diplomacy panel builder existed, but the registered panels list was empty, so GZ-Dock had nothing to display.
    - Registered the Diplomacy panel with GZ-Dock. This restores the per-player Show territory checkbox and the admin-only chart-culling controls (enable/disable, interval, Apply, Cull now).
Version: 0.4.67
Date: 2026-08-23
  Changes:
    - Added admin chart-culling controls directly to the GZ-Dock Diplomacy panel: enable/disable automatic culling, set a fixed interval in minutes, and Cull now.
    - Automatic culling intervals are validated to 120-720 minutes (2-12 hours), defaulting to 300 minutes; changing the interval starts a fresh countdown.
    - Scheduled culls retain the 30-minute, 5-minute, and 1-minute global warnings. Manual Cull now starts immediately and also works while automatic culling is disabled.
    - Disabling automatic culling cancels a scheduled sweep if one is currently running; manual sweeps are allowed to finish.
Version: 0.4.66
Date: 2026-08-23
  Changes:
    - Added scheduled force-chart cleanup every randomized 4-6 hours, with global 30-minute, 5-minute, and 1-minute warnings.
    - Chart cleanup forgets generated chunks more than 20 chunks from any claimed player territory while preserving current player locations and permanent team spawns as safety anchors.
    - Cleanup uses LuaForce.unchart_chunk only; generated map chunks, entities, resources, and terrain are never deleted.
    - The remote chart sweep is throttled across ticks to avoid a large one-tick server hitch and applies only to Diplomacy-managed player/team forces.
Version: 0.4.65
Date: 2026-08-23
  Changes:
    - Added a per-player "Show territory" checkbox directly to the GZ-Dock Diplomacy panel.
    - The Dock checkbox uses the existing territory-display preference and immediately shows/hides other teams' territory overlays and borders.
Version: 0.4.64
Date: 2026-08-23
  Fixes:
    - Replaced the invalid synchronous LuaPlayer.localise() research-name path with Factorio's supported request_translation() / on_string_translated flow.
    - Research milestones are now printed only after the technology name resolves to an actual string, with the internal technology name as a non-empty fallback.
    - Reasserts technology_notifications_enabled=false once per second to prevent another mod from restoring the native duplicate force-name research notification.
Version: 0.4.63
Date: 2026-08-23
  Fixes:
    - Research announcements now resolve the completed technology name per connected player's locale before composing the orange Magic-font message, preventing blank technology names in multiplayer.
    - Reasserts ownership of technology notifications when research starts/finishes so the native force-name notification stays disabled if another mod toggles it back on.
Version: 0.4.62
Date: 2026-08-23
  Changes:
    - Fixed the orange team research announcement so it explicitly includes the localized technology name instead of only printing "<team> researched."
Version: 0.4.61
Date: 2026-08-23
  Fixes:
    - Fixed an upgrade crash in the 0.4.60 block-based territory renderer when an existing save retained the territory runtime fast-path marker but did not yet have chart_proxy_blocks initialized.
    - Added a lightweight runtime-field revision migration plus defensive block-render initialization; existing territory claims are preserved and no geometry-schema reset is required.

Version: 0.4.60
Date: 2026-08-23
  Performance:
    - Replaced whole-team territory chart proxy rebuilds during normal claim changes with bounded 8x8-cell dirty-block rebuilds, processed one block per tick.
    - Shared-vision on_chunk_charted propagation is now queued and budgeted to one target chart operation per tick, preventing allied-force chart cascades from producing single-tick stalls.
    - Placement and foreign-territory rendering refreshes are player-staggered instead of rebuilding every connected player on one frame.
    - Migrates existing whole-surface chart proxies to the block renderer on configuration change.

Version: 0.4.59
Date: 2026-08-23
  Performance:
    - Removed the once-per-second full diplomacy relation scan; the 24-hour hostility maturity check now scans every ten seconds while its real-time clock remains exact.
    - Reduced automatic conflict-frame rebuilds from once per second to once per ten seconds; relation changes still refresh immediately.
    - Reduced political-map live refresh from once per second to once per five seconds.
    - Staggered territory rendering, placement/foreign overlays, border scans, segmented-unit scans, and team-panel maintenance onto different tick phases to avoid synchronized frame hitches.
Version: 0.4.58
Date: 2026-08-23
  Performance:
    - Made the common storage root accessor O(1); full schema/team repair now stays in init/configuration paths instead of running on every state lookup.
    - Added fast paths to territory/offline-protection state accessors so their schema normalization is not repeated every tick/event.
    - Reduced undecided-player/admin gate polling from every tick to four times/sec; entry/selection handlers still apply state immediately.
    - Reduced proactive offline-border scans from 96 chunk scans/sec to 24 chunk scans/sec while retaining immediate damage/build fallbacks.
    - Reduced segmented-unit offline sweeps from once/sec to once/5 sec.
    - Reduced expensive dirty territory chart-proxy rebuild cadence from 0.5 sec to 2 sec and foreign-overlay refresh cadence from 1 sec to 2 sec.
Version: 0.4.57
Date: 2026-08-22
  Changes:
    - Styled Diplomacy technology-achievement announcements in warm orange using Gizmod's Magic font (default-large-bold).

Version: 0.4.56
Date: 2026-08-22
  Fixes:
    - Replaced Factorio's built-in technology-completion notification with a Diplomacy-owned localized completion message so team achievements show the actual team display name instead of internal force IDs such as gz_diplomacy_team_002.
    - Internal force names remain unchanged and stable; only user-facing research-completion text is substituted.
Version: 0.4.55
Date: 2026-08-22
  Fixes:
    - Fixed territory chart/minimap proxy prototype load failure: map proxies now use simple-entity-with-owner, which supports runtime unit numbers required by the existing proxy cleanup/rebuild code.
    - Kept get-by-unit-number so proxy entities can be tracked and destroyed cleanly during territory redraws.
    - Explicitly marked map proxy entities as non-military targets.
Version: 0.4.54
Date: 2026-08-22
  Fixes:
    - Hardened native enemy hostility across the spawn-preview -> permanent-team force transition.
    - Team forces now reassert enemy friend=false and cease_fire=false after the player force assignment, not only before it.
    - Added on_player_changed_force, on_force_created, on_force_friends_changed, and on_force_cease_fire_changed guards for Diplomacy combat forces.
    - If another mod or event changes a Diplomacy team/preview relationship with the built-in enemy force, Diplomacy immediately restores hostility in both directions.
    - Force identity remains name-based (enemy vs gz_diplomacy_team_NNN); no numeric force-index aliasing is used.
Version: 0.4.53
Date: 2026-08-22
  Fixes:
    - Team forces now explicitly enforce hostile relations with Factorio's built-in enemy force in both directions: friend=false and cease_fire=false.
    - Spawn-preview force now enforces the same enemy hostility every time it is created or reused, preventing green/friendly native enemies while scouting a start.
    - Existing team/enemy relations are repaired automatically during the normal bootstrap/configuration repair pass.
Version: 0.4.52
Date: 2026-08-22
  Changes:
    - Replaced the permanent territory LuaRendering chart overlay with invisible native map-color proxy entities so claimed land is visible in the upper-right minimap as well as the full map.
    - Added fixed map-color proxies for all 12 team colors. Proxies are invisible, unselectable, non-colliding, indestructible, and exist only to feed Factorio's native map/minimap renderer.
    - Packed territory coverage into 16x16, 8x8, 4x4, and 2x2 proxy blocks to preserve exact borders while keeping proxy entity counts substantially below one entity per territory cell.
    - Existing territory is automatically queued for proxy-map rebuild after the configuration change.
Version: 0.4.51
Date: 2026-08-22
  Changes:
    - Reworked the permanent territory chart overlay to use chart-mode sprite fills instead of filled rendering rectangles.
    - Territory color overlays now use the same 32x32 white fill sprite as the in-world overlay, tinted per team, so they render through Factorio's map/minimap sprite path.
    - Pinned chart territory sprites to the chart-safe "arrow" render layer to avoid current 2.x chart-layer visibility issues.
    - Existing territory render IDs are automatically queued for replacement during the normal configuration-change bootstrap.
Version: 0.4.50
  Changes:
    - Fixed native Space Age demolisher territories not being culled around Diplomacy team starts unless GZ-Terra was installed.
    - Removed the incorrect GZ-Terra active-mod gate from segmented-unit territory cleanup.
    - Diplomacy now capability-checks LuaSurface territory APIs directly, so vanilla Space Age demolisher territory is handled independently of GZ-Terra.
    - Newly generated chunks inside already-sanitized team start zones now have demolisher territory culled without requiring GZ-Terra.
    - Added a one-time configuration migration that revisits existing prepared/team spawn zones and applies the missing territory/segmented-unit cleanup.
Version: 0.4.49
  Changes:
    - Territory Flags now use a 2x2 marker footprint and claim a 6x6 area.
    - Territory Flag logo rendering is reduced to a 2x2 visual footprint.
    - Territory Flags now cost 100 wood and 1 raw fish.
    - Light Resource Outpost is now an ammo-turret prototype instead of a radar.
    - Removed the radar head overlay from the Light Resource Outpost.
    - Light Resource Outpost now has 4 ammo slots and automated ammo capacity of 100.
    - Light Resource Outpost keeps the base gun-turret fire rate/range for this balance pass.
    - Light Resource Outpost now requires 1 raw fish.
    - Light Resource Outposts render the owning team's flag and color filter centered on the platform.
Version: 0.4.48
  Changes:
    - Added craftable Territory Flags: 20 wood, invisible/non-colliding 4x4 marker footprint, 16x16 territory claim, placement restricted to existing friendly territory.
    - Placed flags render the selected team logo directly above the ground with a subtle team-color filter.
    - Increased chart/minimap territory visibility and normalized render-only team colors against green so red/pink and other saturated colors have comparable on-screen brightness.
    - Removed automatic repeated territory-logo stamps; logos now correspond to actual placed Territory Flag markers.
Version: 0.4.47
Date: 2026-08-22
  Changes:
    - Fixed a join-time Diplomacy panel crash for undecided/teamless players caused by assigning nil to the Leave Team button enabled property.
    - Made team-card self-membership state explicitly boolean instead of relying on Lua's nil-producing `and` expression.
    - Hardened leader roster Remove/Go button enabled states against the same optional-value boolean edge case.

Version: 0.4.46
Date: 2026-08-21
  Changes:
    - Fixed the My Team panel build error caused by assigning FlowStyle.horizontal_spacing to a FrameStyle.
    - Preserved the intended spacing beside the team flag using a valid inner-flow margin instead.

Version: 0.4.45
Date: 2026-08-21
  Changes:
    - Fixed unreliable Keep Spawn / Pass clicks on multiplayer servers by stopping the spawn-preview GUI from being destroyed and rebuilt every second.
    - Preview countdown and prepared-start status now update their existing labels in place, keeping the action buttons stable between real state transitions.

Version: 0.4.44
Date: 2026-08-21
  Changes:
    - Changed the undecided-player "choose or join a team" freeze notification from a 10-second repeating reminder to a one-time prompt.
    - Kept the expired spawn-preview Keep/Reject/Cancel reminder repeating because that state requires action from the scouting player.

Version: 0.4.43
Date: 2026-08-21
  Changes:
    - Fixed a game-start crash in the 0.4.42 membership self-repair path caused by treating Factorio 2.x LuaPlayer userdata as a numeric player index.
    - Hardened player/index resolution in team repair, spawn-preview availability, and territory-overlay settings so runtime LuaPlayer userdata and test-table players are both handled correctly.
    - Preserved stable numeric player-index storage and custom team-name behavior from 0.4.42.

Version: 0.4.42
Date: 2026-08-21
  Changes:
    - Fixed team founding so the founder is assigned to the new team before Preparation/UI state is refreshed.
    - Team membership continues to use stable internal team IDs and force IDs; custom display names no longer participate in membership recognition.
    - Added automatic membership repair from the player record, team roster, or stable internal force so affected 0.4.41 saves self-heal when the player rejoins or Diplomacy checks their team.
    - Fixed the previously write-only Preparation refresh queue and made membership changes invalidate open player panels, preventing stale “not on a team” UI after founding/joining/leaving.

Version: 0.4.41
Date: 2026-08-21
  Changes:
    - Added a customizable team-name field to the Preparation screen when founding a new team.
    - Team names are validated for non-empty, unique names and are locked permanently once the team is founded.
    - Team names now travel with the existing spawn-preview selection so the chosen name is preserved through Keep/Reject scouting.

Version: 0.4.40
Date: 2026-08-21
  Changes:
    - Added automatic offline-team base protection inside each team's claimed territory and on that team's space platforms.
    - When a team's force has zero connected players, eligible team entities in protected locations become non-destructible and are restored when a teammate reconnects.
    - Added an offline border guard that incrementally scans a shallow guard band around claimed borders and ejects native enemies plus actively hostile team characters and combat vehicles that cross into protected territory.
    - Hostile players already inside a team border are ejected when that team goes offline; hostile attackers are also ejected immediately if they reach a protected base.
    - Added support for ejecting enemy segmented units such as demolishers from offline protected territory.
    - Normal combat remains unchanged while at least one player from the team is online.

Version: 0.4.39
Date: 2026-08-21
  Changes:
    - Added frontier extraction placement for electric mining drills, big mining drills, GZ asteroid mining drills, and pumpjacks.
    - Frontier extractors may be built on unclaimed land but remain blocked from enemy-owned territory.
    - Frontier extractors claim only a 3-tile range around their footprint instead of the normal 6-tile structure claim.
    - Migrated existing territory so previously placed qualifying extractors use the new frontier claim geometry.

Version: 0.4.38
Date: 2026-08-21
  Changes:
    - Set both persistent foreign-territory fill and build-placement territory preview to a true 30% opacity using premultiplied-alpha colors.
    - Kept territory borders and 50% flag stamps unchanged for readability.
    - Forced existing territory overlays to rebuild with the new opacity.

Version: 0.4.37
Date: 2026-08-21
  Changes:
    - Fixed territory overlay opacity by using premultiplied-alpha render colors.
    - Replaced game-world rectangle/line overlays with ground-layer sprites so territory visuals render above decoratives but below buildings and rail sprites.
    - Added repeating full-size 256x256 team flags to persistent foreign territory, matching the placement-preview flag treatment.
    - Forced placement and foreign overlays to rebuild after the rendering-style migration.

Version: 0.4.36
Date: 2026-08-20
  Changes:
    - Reduced the build-placement territory preview fill opacity by another 50%.
    - Moved both the placement preview and persistent foreign-territory overlays to the ground-patch-higher2 render layer, above decoratives but below normal buildings/entities.
    - Applied the same ground-level layering to placement-preview flags and territory borders.

Version: 0.4.35
Date: 2026-08-20
  Changes:
    - Reduced the persistent other-team territory fill opacity by 50% while leaving borders and placement previews unchanged.

Version: 0.4.34
Date: 2026-08-20
  Changes:
    - Added a My Team tab with team identity, roster, spawn details, leader controls, and live GZ Economy balance integration when available.
    - Added a Settings tab. The per-player option to show other teams' borders and territory is enabled by default.
    - Other teams' claimed territory now renders persistently in the game world for players who keep the visibility option enabled.
    - Moved admin team-management controls out of the Diplomacy tab and into Settings.
    - Moved team-leader roster controls into My Team.
    - Removed inline Admin Go/Admin Join buttons from diplomacy team cards; equivalent admin management remains in Settings.

Version: 0.4.33
Date: 2026-08-20
  Changes:
    - Restored territory visualization to placement-preview-only in the normal game world.
    - Placement preview fill is now about 30% of its previous opacity.
    - Added a thick white placement-boundary perimeter.
    - Added full-resolution 256x256 team flags at ~20-tile spacing, rendered at 50% opacity beneath the green placement tint.

Version: 0.4.32
Date: 2026-08-20
  Changes:
    - Fixed territory perimeter borders and team flag stamps so they render in the normal game world as well as map/chart view.
    - Permanent territory fill now renders in both views at the reduced 0.06 alpha.
    - Increased in-world flag stamp size while preserving the stable 20-tile lattice.

Version: 0.4.31
Date: 2026-08-20
  Changes:
    - Reduced territory overlay fill opacity to 30% of its previous intensity.
    - Added a thick white perimeter border around team territory.
    - Added repeating team-flag stamps across owned territory at approximately 20-tile spacing.

Version: 0.4.30
Date: 2026-08-20
  Changes:
    - Horizontally centered the spawn-preview decision dialog during the scouting period.
    - When the 60-second scouting timer expires and the player is frozen, the decision dialog now moves to the center of the screen until Keep, Reject, or Cancel is chosen.

Version: 0.4.29
Date: 2026-08-20
  Changes:
    - Spawn preview players are now frozen in place when the 60-second scouting timer expires.
    - Removed the old post-timeout teleport/snap-back behavior while waiting for Keep, Reject, or Cancel.

Version: 0.4.28
Date: 2026-08-20
  Changes:
    - Moved the spawn-preview countdown/decision overlay approximately 200 pixels higher on screen.

Version: 0.4.27
Date: 2026-08-20
  Changes:
    - Restored the new-team spawn preview dialogue as a persistent bottom-center screen overlay.
    - The preview overlay is no longer tied to player.opened, so ordinary GUI transitions cannot steal or hide it.
    - Keeping a spawn is available immediately; rejecting a spawn unlocks only after the mandatory 60-second scout period.
    - Cancelling during the first minute returns the candidate to the ready queue instead of rejecting it, preventing the timer from being bypassed.

Version: 0.4.26
Date: 2026-08-20
  Changes:
    - Train stops / rail stations are now fully exempt from territory ownership restrictions, alongside rail track and electric poles.
    - Rail signals and chain signals remain non-claiming but still require placement inside owned territory.

Version: 0.4.25
Date: 2026-08-20
  Changes:
    - Territory placement now fully exempts rail track and electric poles: they may cross owned, enemy, or unclaimed territory and never extend claims.
    - Rail signals, chain signals, train stops, and other rail infrastructure remain subject to normal territory placement rules.

Version: 0.4.24
Date: 2026-08-20
  Changes:
    - Reworked diplomacy cards so the displayed dispositions are: Allies (Defensive Pact + Vision), Friendly (Shared Vision), Neutral (Default), Cease-fire, Displeased, and Hostile.
    - Neutral, Cease-fire, and Displeased are the only directly selectable base dispositions.
    - Restored Share Vision, Propose Alliance, Propose Defensive Pact, and Declare Hostility (PVP) checkboxes.
    - Friendly is now derived from Shared Vision; Allies is derived from Defensive Pact + Vision; Hostile is derived from a formal hostility declaration.
    - Propose Alliance acts as a convenience package enabling Shared Vision + Defensive Pact; withdrawing it falls back to Friendly by retaining Shared Vision.
    - Added persistent base-disposition state beneath treaty-derived dispositions and migration from the 0.4.23 six-state stance model.
    - Preserved the 24-hour hostility declaration, conflict countdown window, bilateral cease-fire, and four-hour surrender rules.
    - Increased team-card height to comfortably fit the restored treaty/conflict controls.

Version: 0.4.23
Date: 2026-08-20
  Changes:
    - Added a persistent red-tinted conflict status window for every team involved in a pending hostility declaration or active war.
    - Pending declarations show live 24-hour server-running countdowns to PVP activation for both sides; the declaring team leader/admin can cancel before maturity, reverting that directional stance to Displeased.
    - Active-war windows show elapsed war time plus bilateral Propose/Accept Cease-fire controls. PVP ends only when both teams agree to the cease-fire.
    - Added unilateral Surrender after four hours of active war. Surrender immediately ends PVP and places both teams into the Ceasefire stance.
    - Added persistent current-war start timestamps and cease-fire proposal state, with migration support for active 0.4.22 wars.
    - Disabled normal stance changes while PVP is active so wars must end through cease-fire agreement or surrender.

Version: 0.4.22
Date: 2026-08-20
  Changes:
    - Added Ceasefire as a sixth directional diplomatic stance between Neutral and Displeased.
    - Ceasefire is mechanically identical to Neutral: cease-fire remains active and vision is not shared.
    - Ceasefire is only available to a pair of teams after a hostility declaration has matured into actual PVP at least once.
    - Added permanent pair-level war history so retracting a declaration before its 24-hour timer does not unlock Ceasefire, while completed wars do.
    - Updated team-card stance controls, status text, tooltips, migration, and hostility maturation to support post-war Ceasefire.

Version: 0.4.21
Date: 2026-08-20
  Changes:
    - Replaced separate treaty/conflict checkboxes with a five-state diplomatic stance: Allied, Friendly, Neutral, Displeased, Hostile.
    - Neutral is the default stance for all new team relationships.
    - Allied automatically requires shared vision and a defensive-pact proposal; mutual Allied activates the alliance.
    - Friendly automatically shares vision; mutual Friendly/Allied activates Factorio friendship.
    - Displeased is a warning state with cease-fire intact.
    - Hostile now starts a 24-hour real server-running declaration timer before PVP is enabled.
    - Declaration timing compensates for game.speed and pauses while the simulation/server is not running.
    - Added live hostility countdown/status text to team cards.
    - Existing 0.4.20 active hostilities are grandfathered as already matured during migration.

Version: 0.4.20
Date: 2026-08-20
  Changes:
    - Extended Diplomacy team cards with Share Vision, Propose Alliance, Propose Defensive Pact, and Declare Hostility (PVP) controls.
    - Diplomatic intent is now directional: either side may declare hostility, while alliances require mutual proposals.
    - Active alliances set Factorio force friendship and cease-fire; unilateral hostility disables friendship/cease-fire and enables PVP.
    - Share Vision copies existing chart data when enabled and propagates newly charted chunks to the selected team.
    - Defensive pact proposals are stored bilaterally and become active when both teams propose the pact.
    - Diplomacy-changing controls now require team-leader or admin authority.

Version: 0.4.19
Date: 2026-08-20
  Changes:
    - Restyled the Political Map to a black monitor/screen presentation with pale cyan axes.
    - Added a visible 1k-tile yellow grid to the Political Map.
    - Ensured player/team markers render in team colors while preserving online/offline marker shapes.

Version: 0.4.18
Date: 2026-08-20
  Changes:
    - Added a large abstract Political Map to the top of the Diplomacy tab, projecting player positions across a fixed -10,000..+10,000 X/Y political scale without rendering terrain or generated map chunks.
    - Added team-colored online/offline player markers with overlap tooltips, exact player coordinates, edge clamping for players beyond the political scale, and a parchment-style map background.
    - Added a compact Teams & Players roster beside the Political Map while retaining the full relation/action team cards below it.
    - Established team members now open GZ-Diplomacy directly to the Diplomacy/Political Map tab; undecided players still open on Welcome for onboarding.
    - Political map markers update once per second without rebuilding the full Diplomacy panel.
    - Increased the maximum Diplomacy window size on larger displays to better accommodate the political overview.
    - Added docs/political-map.md as the baseline for future political-map layers and interactions.
Version: 0.4.17
Date: 2026-08-20
  Changes:
    - Increased the main GZ-Diplomacy window height by roughly 100px where display resolution allows, giving the Diplomacy tab substantially more usable vertical space.
    - Increased Diplomacy team-card height and spacing so 96x96 team flags fit comfortably; widened the flag column and shifted player rosters farther right.
    - Added two-step Team Leader/Admin Disband Team controls to team cards. Disbanding resets members to the central staging flow, releases team territory, clears team relations, frees the flag/color, and merges the obsolete team force into the default player force while preserving its entities/items.
    - Added the admin recovery command /gzd-team-disband <team-id> confirm.
    - Added docs/map-culling-policy.md documenting the current spawn/enemy cleanup behavior and clarifying that Diplomacy does not currently delete generated map chunks for save-file size reduction.
Version: 0.4.16
Date: 2026-08-19
  Changes:
    - Moved the 60-second spawn-preview decision window from the center of the screen to a bottom-center HUD position.
    - Enlarged team-creation flags to 96x96 and arranged all 12 flags in two rows of six; widened the main Diplomacy window to accommodate the larger identity picker.
    - Active teams now reserve their chosen flag and color. Reserved identity choices are disabled/greyed in team creation and automatically become available again when the owning team is no longer active/present.
    - Rebuilt the Diplomacy team list as scrollable team cards with 96x96 flags, spawn coordinates, clickable GPS pings, player rosters, relation selectors, reciprocal relation display, invitation requests, direct join, and leave actions.
    - The Preparation tab is now vertically scrollable so the larger team-identity picker remains usable at lower resolutions.
Version: 0.4.15
Date: 2026-08-19
  Changes:
    - Enforced a single active start-location selector globally: while one player is scouting/choosing, all other New Team buttons remain disabled.
    - New Team only re-enables after the selector finishes and the prepared-start reserve has returned to the required threshold.
    - Made the live Preparation UI update New Team button availability/tooltip in place so stale open windows cannot advertise an unavailable start.
Version: 0.4.14
Date: 2026-08-19
  Changes:
    - Storage chests and container entities can still be placed inside owned territory but no longer extend the buildable territory border.
    - Bumped the territory schema so existing saves rebuild claims without legacy chest/container influence.
Version: 0.4.13
Date: 2026-08-19
  Changes:
    - Added Calcite to the compact curated starter-resource ring whenever the active mod stack provides the calcite resource prototype.
    - Reworked guaranteed starter oil into a compact 3-well field centered roughly 46 tiles from team spawn.
    - Starter oil now targets roughly 1200% combined yield at default resource richness by deriving well amounts from the crude-oil prototype's normal resource amount.
Version: 0.4.12
Date: 2026-08-19
  Changes:
    - Added vertical scrolling to the Welcome panel; the Diplomacy panel retains its existing scrollable layout.
    - Normal player chat is now mirrored to players on other forces, making chat global by default without duplicating messages for teammates.
    - Increased normal building territory extension from 3 tiles to 6 tiles and bumped the territory schema so existing saves rebuild building claims at the new radius.
  Bugfixes:
    - Fixed the Diplomacy close-key crash caused by assuming every LuaPlayer.opened object has a name field; equipment grids and other opened-object types are now handled safely.
    - Applied the same safe opened-object handling to the main Diplomacy panel and spawn-preview close paths.

Version: 0.4.11
Date: 2026-08-19
  Changes:
    - Show owned/buildable team territory as a translucent green ground overlay while holding a normal placeable building.
    - Illegal manual building placements are immediately bounced: the entity is removed and the exact consumed items are returned to the player, with an inventory-full ground-drop fallback rather than item loss.
    - Illegal robot placements now preserve the mined placement item even if the robot cargo inventory is full.
    - Resource Outposts remain exempt from the green owned-territory overlay because they are intentionally allowed to seed detached claims in unclaimed land.

Version: 0.4.10
Date: 2026-08-19
  Changes:
    - Moved candidate enemy cleanup from background spawn preparation to the moment a player selects a start for the 60-second inspection.
    - Uses the surface's configured starting-area radius as a guaranteed enemy-free zone for each inspected Diplomacy start.
    - Added a smooth 256-tile frontier gradient outside the safe radius that progressively trims enemy spawners and worms from nearly all at the inner edge to none at the outer edge.
    - Mobile enemy units are fully removed inside the guaranteed safe radius but are not culled in the outer frontier gradient.
    - Terra segmented-unit/Hellworm territory follows the same safe-radius and 256-tile thinning profile, with suppressed territory chunks prevented from regenerating.
    - Accepted team starts retain the enemy profile for newly generated chunks so later exploration does not reintroduce full-strength map-generated bases inside the intended starting frontier.

Version: 0.4.9
Date: 2026-08-18
  Changes:
    - Limited natural tree/resource clearing to the central join/staging area instead of clearing prepared team starts.
    - Added a 24-tile-wide lava barrier ring beginning roughly 100 tiles from the central staging origin, with deep-water fallback when lava is unavailable.
    - Replaced the small staging terminal with a large 4x4 display-panel terminal; uses Larger Display Panels' big display when available and falls back to a scaled vanilla display panel.
    - Tightened curated starter ore centers to roughly 14 tiles from team spawn and reduced default patch radius to 6 tiles for smaller, denser clusters.
    - Preview cleanup now removes only Diplomacy-stamped resources instead of wiping natural ore around a rejected candidate.
    - Increased primary Diplomacy UI text, headers, team flags, and team color selectors for readability.
    - Diplomacy now opens to the Welcome tab first for both players and hosts.

Version: 0.4.8
Date: 2026-08-18
  Changes:
    - Repacked Diplomacy starter resources into a tighter ring around each prepared team spawn.
    - Doubled the placed iron, copper, coal, and stone totals while keeping the compact dense patch footprint.
    - Guaranteed a nearby starter Sand patch whenever the active mod stack provides the Sand resource prototype.
    - Prepared team starts now clear natural resource entities and trees throughout the 200-tile starter preparation area before stamping the curated resource cluster.

Version: 0.4.7
Date: 2026-08-18
  Changes:
    - Updated mod metadata for Factorio 2.0 compatibility.

Version: 0.4.6
Date: 2026-08-18
  Changes:
    - Compacted Diplomacy starter ore patches to roughly half their former radius while preserving total ore, making them about four times denser.
    - Moved the guaranteed starter ore ring and oil pair closer to the team spawn so the starter resource kit is more tightly clustered.
    - When GZ-Terra/Terra Nauvis is active, prepared and accepted team starts now clear intersecting segmented-unit/Hellworm territories and suppress territory regeneration in the protected start area.

Version: 0.4.5
Date: 2026-08-18
  Bugfixes:
    - Fixed Light Resource Outpost load failure caused by hardcoded vanilla radar-shadow sprite-sheet frame dimensions.
    - The outpost now reuses and scales the current base-game radar sprite definition, avoiding fragile assumptions about radar sheet geometry.

Version: 0.4.4
Date: 2026-08-18
  Changes:
    - Added team territory with a 50x50 buildable starting claim around each accepted team spawn.
    - Most placed buildings now extend their team's territory about 3 tiles beyond their footprint.
    - Belts, pipes, poles, rails, walls, combinators, and similar infrastructure can be built inside territory but do not extend the border.
    - Light Resource Outposts can establish detached 32x32 territory claims in unclaimed land.
    - Added team-colored territory shading to chart/map view.
    - Territory influence retracts when claim-producing structures are removed or destroyed; overlapping claims remain until their supporting structures are gone.
    - Added a one-time migration pass for existing 0.4.3 saves so connected existing factories contribute territory after upgrading.

Version: 0.4.3
Date: 2026-08-18
  Changes:
    - Added the Light Resource Outpost prototype as a 4x4, 1500 HP fortified radar platform.
    - Added the supplied outpost platform/base artwork to the mod graphics assets.
    - Added a centered, scaled vanilla radar visual while keeping the corner gun emplacements cosmetic for now.
    - Added a modest early-game recipe unlocked by Military 2.

Version: 0.4.2
Date: 2026-08-17
  Changes:
    - Polished the first-run Welcome and Preparation text with concise host/player instructions.
    - Removed public-beta, scaffold, deferred-feature, and alpha wording from normal player-facing UI.
    - Hid unfinished Chat/Vision diplomacy columns until those features are implemented.
    - Disabled spawn diagnostics and the admin debug panel by default while retaining troubleshooting tools.
    - Simplified player-facing preparation and preview status messages.
    - Updated package metadata and fixed invalid trailing JSON syntax in info.json.

Version: 0.4.0
Date: 2026-08-04
  Changes:
    - Added automatic team leadership: the first successful member becomes leader.
    - Added per-team join-order tracking so leadership passes to the next person who joined when the leader leaves or is removed.
    - Added migration/reconciliation support for older 0.3.x saves without stored join-order data.
    - Added a team-leader Diplomacy GUI with own-team roster management, direct-join toggle, adding unassigned online players, removal, and spawn teleport tools.
    - Added an admin Diplomacy GUI for global player assignment, reassignment, removal/reset, teleportation, joinability controls, and team roster overviews.
    - Added admin team-management commands: /gzd-team-list, /gzd-team-assign, /gzd-team-remove, /gzd-team-teleport, and /gzd-team-joinable.
    - Centralized permission checks for admin/team-leader management actions.
    - Updated Gizmod registration capabilities and package metadata for the new management and leadership features.

Version: 0.3.15
Date: 2026-06-05
  Changes:
    - Public beta polish pass for the first visible mod portal release.
    - Added /gzd-support to print the GZ-Diplomacy bug report/support form link.
    - Added the support link to the player-facing Welcome text.
    - Updated package metadata/description for public beta scope.
    - No spawn, force, team, or relation logic changes.