You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Audit progression-route danger and pilot safer travel loops #20
Architecture amendment — one authored content source (2026-08-13)
Initiative atrinik/atrinik#357 supersedes every future live-branch instruction below. atrinik/content@main is the sole mutable authored source for replacement and Classic targets. Future authored changes land only on main; supported Classic artifacts are deterministically derived from the same immutable main revision. Do not create, restore, author, backport, validate, or publish through a live 1.x branch.
Exact historical 1.x commits, tags, releases, assets, preserved local snapshots, provenance, parity records, and comparisons remain valid immutable evidence. This amendment changes no other feature, balance, lore, compatibility, licensing, validation, or ownership acceptance criterion.
Important
The gameplay/authored-content decisions in this issue are preserved. This revision changes only the technical implementation path for the fresh MIT Go/Rust replacement program. atrinik/content remains separately/mixed licensed data; MIT engine/tooling code does not relicense the corpus.
Replacement implementation contract
Preserve the complete progression-route and danger-signaling design. Author routes/encounters/rewards as compiled content; Go progression, encounters, metrics, AI, and scene authority enforce them; Rust renders typed danger/readiness cues. Technical migration must not rebalance or replace the design.
Common migration gates
Stable authored identities and behavior remain the source of truth; localized/rendered text and filesystem order are never identity.
Content is parsed, validated, transacted, and compiled by released content-toolkit; production Go/Rust consumers do not add private source parsers.
Runtime authority belongs to native Go services and bounded compiled definitions/CEL; Starlark is considered only through the residual go/no-go issue.
Verification uses deterministic compiler/conformance fixtures and wrapper-managed Go-server/Rust-client scenarios.
Verified original past work by a listed approved MIT provenance grantor may be copied, migrated, translated, or relicensed under MIT only through the merged complete-history policy in docs: register MIT provenance grantors atrinik#275; all asset/data notices remain exact.
Content release-line scope
This future feature targets content@main and the canonical replacement stack. It is not automatically backported to content@1.x; any separately approved classic maintenance uses a linked pull request under #45, preserves the same gameplay/content decision and attribution, and validates only compatible classic consumers.
Preserved product/design specification and historical implementation notes
Summary
Add a source-derived progression-route danger audit and use Old Outpost plus the Asteria/Eld Woods travel loop as the first route-safety pilots.
The playtest found cases where mandatory access or return travel was more lethal and time-consuming than the destination: dense crocodile/giant/ettin approaches, ranged rock pressure, persistent packs, and long retracing after death or disconnect. That makes content selection depend on hidden route cost and encourages staying in one safe farming circuit.
The goal is not to make wilderness harmless or build a global teleport hub. It is to make intended progression routes legible, auditable, and recoverable while preserving dangerous optional encounter areas.
Existing building blocks
World maps already form a graph through tiled-map headers and explicit exit slaying paths.
The map checker parses maps/archetypes and validates structural references.
The farming/navigation analysis already distinguishes likely simultaneous aggro from broader proximity clusters and can model source-authored route pressure.
Savebeds (server/src/types/savebed.c) set both death and Word-of-Recall destinations; the editor guidance correctly requires them to be secure town locations, so they are not dungeon checkpoints.
Teleport/interface actions can explicitly update a savebed, and ships/one-way exits already provide authored travel shortcuts.
Word of Recall (server/src/server/spell_effect.c::cast_wor) has a delayed escape and can be blocked by map magic rules.
Proposed design
1. Declare intended route bands
Add authored metadata or an audit manifest for reviewed destinations:
destination/region ID and intended character or active-skill band;
accepted entry points and return paths;
whether the path is introductory, ordinary, dangerous, or intentionally aspirational;
required travel services/checkpoints and expected escape assumptions.
Do not infer design intent solely from treasure difficulty or average monster level. Keep the metadata stable and validate map/region references.
2. Compute mandatory-route pressure
Extend the source-derived world graph tooling to evaluate each accepted route for:
maximum likely simultaneous aggro and proximity density;
maximum hostile level relative to the intended band;
ranged/spell pressure and major damage/status families;
unavoidable choke points and one-way transitions;
distance/time from the nearest safe return node;
whether a route remains traversable in both directions after ordinary spawns engage.
Report the worst required segment, not only a route-wide average. Flag destinations whose only accepted route exceeds the declared band or whose return path is materially worse than entry. Output the exact map, coordinates/edge, and contributing spawns so authors can fix the content rather than suppress a warning blindly.
3. Pilot targeted content repairs
For Old Outpost and the Asteria/Eld Woods loop, inspect the audit result and choose the smallest coherent authored repair per hotspot:
move an intended road around optional high-density packs;
reduce or separate unavoidable spawn clusters while preserving nearby hunting areas;
add a guarded rest/waystation in a genuinely safe settlement exterior;
add a clearly signposted alternate route or return-only ship/exit after the player reaches a milestone;
add a secure town savebed where one is genuinely missing, never inside a dungeon;
add an emergency return interaction where it cannot be used as a combat reset or destination skip.
Danger signs/rumors should warn about unavoidable ranged or elemental pressure before commitment. If a route is intentionally above the destination's apparent band, say so in-world and in the manifest rather than allowing accidental difficulty.
Do not globally lower the involved monster archetypes, delete optional wilderness encounters, make savebeds unsafe, or make Word of Recall instant/uninterruptible.
4. Separate travel unlocks from combat escape
Any shortcut should have explicit unlock and anti-exploit rules:
unlock by reaching a safe endpoint, quest milestone, or paying an appropriate fare;
never bypass a one-time progression gate before first completion;
define whether it carries followers/party members and what happens in combat;
provide a reliable reverse/return path where promised;
persist unlock state through stable IDs if persistence is required.
Add regression fixtures for the two pilot routes before and after content repair.
Run the map checker on every changed map and validate all exit coordinates/paths.
Runtime-walk both directions at the intended level, including ordinary respawns, a death/retry, Word-of-Recall interruption, disconnect/reconnect, and any shortcut unlock.
Confirm no new savebed is reachable by monsters and no return mechanic can be spammed to reset combat or duplicate quest state.
Relevant areas
maps/shattered_islands/world_5_57* and Old Outpost approaches
Asteria/Eld Woods world maps, ships, and travel interfaces
maps/regions.reg
tools/map-checker/ and tools/map-checker-qt/
source-derived farming/navigation analysis and tests
Architecture amendment — one authored content source (2026-08-13)
Initiative atrinik/atrinik#357 supersedes every future live-branch instruction below.
atrinik/content@mainis the sole mutable authored source for replacement and Classic targets. Future authored changes land only onmain; supported Classic artifacts are deterministically derived from the same immutablemainrevision. Do not create, restore, author, backport, validate, or publish through a live1.xbranch.Exact historical
1.xcommits, tags, releases, assets, preserved local snapshots, provenance, parity records, and comparisons remain valid immutable evidence. This amendment changes no other feature, balance, lore, compatibility, licensing, validation, or ownership acceptance criterion.Important
The gameplay/authored-content decisions in this issue are preserved. This revision changes only the technical implementation path for the fresh MIT Go/Rust replacement program.
atrinik/contentremains separately/mixed licensed data; MIT engine/tooling code does not relicense the corpus.Replacement implementation contract
Preserve the complete progression-route and danger-signaling design. Author routes/encounters/rewards as compiled content; Go progression, encounters, metrics, AI, and scene authority enforce them; Rust renders typed danger/readiness cues. Technical migration must not rebalance or replace the design.
Common migration gates
content-toolkit; production Go/Rust consumers do not add private source parsers.Content release-line scope
This future feature targets
content@mainand the canonical replacement stack. It is not automatically backported tocontent@1.x; any separately approved classic maintenance uses a linked pull request under #45, preserves the same gameplay/content decision and attribution, and validates only compatible classic consumers.Preserved product/design specification and historical implementation notes
Summary
Add a source-derived progression-route danger audit and use Old Outpost plus the Asteria/Eld Woods travel loop as the first route-safety pilots.
The playtest found cases where mandatory access or return travel was more lethal and time-consuming than the destination: dense crocodile/giant/ettin approaches, ranged rock pressure, persistent packs, and long retracing after death or disconnect. That makes content selection depend on hidden route cost and encourages staying in one safe farming circuit.
The goal is not to make wilderness harmless or build a global teleport hub. It is to make intended progression routes legible, auditable, and recoverable while preserving dangerous optional encounter areas.
Existing building blocks
slayingpaths.server/src/types/savebed.c) set both death and Word-of-Recall destinations; the editor guidance correctly requires them to be secure town locations, so they are not dungeon checkpoints.server/src/server/spell_effect.c::cast_wor) has a delayed escape and can be blocked by map magic rules.Proposed design
1. Declare intended route bands
Add authored metadata or an audit manifest for reviewed destinations:
Do not infer design intent solely from treasure difficulty or average monster level. Keep the metadata stable and validate map/region references.
2. Compute mandatory-route pressure
Extend the source-derived world graph tooling to evaluate each accepted route for:
Report the worst required segment, not only a route-wide average. Flag destinations whose only accepted route exceeds the declared band or whose return path is materially worse than entry. Output the exact map, coordinates/edge, and contributing spawns so authors can fix the content rather than suppress a warning blindly.
3. Pilot targeted content repairs
For Old Outpost and the Asteria/Eld Woods loop, inspect the audit result and choose the smallest coherent authored repair per hotspot:
Danger signs/rumors should warn about unavoidable ranged or elemental pressure before commitment. If a route is intentionally above the destination's apparent band, say so in-world and in the manifest rather than allowing accidental difficulty.
Do not globally lower the involved monster archetypes, delete optional wilderness encounters, make savebeds unsafe, or make Word of Recall instant/uninterruptible.
4. Separate travel unlocks from combat escape
Any shortcut should have explicit unlock and anti-exploit rules:
Acceptance criteria
Validation
Relevant areas
maps/shattered_islands/world_5_57*and Old Outpost approachesmaps/regions.regtools/map-checker/andtools/map-checker-qt/server/src/types/savebed.cserver/src/server/spell_effect.cmaps/interfaces/Related: atrinik/server#30 (progression tiers), #23/#140 (risk/reward encounters), atrinik/server#25 (combat escape/recovery timing), atrinik/server#24 (regional preparation knowledge).