Restricted · Developers
Dev hub
Everything a contributor needs to find their way around and ship a change: the systems map, the module index with what each file owns, and the exact build and deploy flow. This page is a launchpad, not a build server — nothing here runs code.
For contributors. Hidden by default; the content is architecture reference, not secrets. Ask a lead for the dev word.
Not it.
Systems map
The roster is built from a chain of derivations: a change to a source flows through to every page. Follow the arrows to see what depends on what.
contracts_evrima.py (the grounding truth: 22 species, real abilities)
|
+-- profile_contract.py --> weights, diet, tier, home/avoid biomes
| |
| +-- biomes.py --> per-species affinity + adaptation
| +-- relations.py --> mixpack / symbiosis / hybrids
| +-- physiology.py --> deep stats (mostly inferred)
| +-- mortality.py --> hazard curve + chronic conditions
|
+-- skins.py --> morphs.py --> genetics.py (colour + heredity)
+-- mutations.py (non-coat, real genes)
+-- sections.py --> the 13x5 grid
|
world/ geo.py --> atlas.py --> grid.py (mechanical -> represented -> monitoring)
landmask.py (extracted terrain)
|
render_pangea_static.py --> build/pangea-site --> wrangler pages deploy
Module index
Every core module, what it owns, and its size. If you are changing behaviour, this tells you which file to open.
| Module | Owns | Lines |
|---|---|---|
| src/core/species/contracts_evrima.py | the 22-species grounding truth | 0 |
| src/core/species/profile_contract.py | scoring weights + biome fields | 0 |
| src/core/species/skins.py | Evrima skin format (pi + 7 linear RGB) | 0 |
| src/core/species/morphs.py | 14 colour morphs, age-staged onset | 0 |
| src/core/species/genetics.py | loci, crosses, the plain-language primer | 0 |
| src/core/species/mutations.py | 21 non-coat mutations, real genes | 0 |
| src/core/species/physiology.py | 12 deep stats + disclosure routes | 0 |
| src/core/species/relations.py | mixpack / symbiosis / hybridisation | 0 |
| src/core/species/sections.py | the 13x5 schema + audit | 0 |
| src/core/species/record_book.py | decaying fossil record | 0 |
| src/core/life/mortality.py | hazard curve + chronic conditions | 0 |
| src/core/world/biomes.py | biome affinity + adaptation | 0 |
| src/core/world/grid.py | total-coverage quadtree | 0 |
| src/core/world/atlas.py | represented scale + domains | 0 |
| src/core/world/landmask.py | extracted terrain mask | 0 |
Build & deploy
The whole site is a static render. There is no server to keep up — you render to a folder and push the folder.
-
Render the whole site to a folder
python scripts/render_pangea_static.py
Exits non-zero and refuses if any written dossier renders thin. Do not pipe it through tail when chaining a deploy — the pipe hides the exit code.
-
Preview locally
cd build/pangea-site && python -m http.server 8099
Stop the server before re-rendering; it holds the build directory open on Windows.
-
Deploy
npx wrangler pages deploy build/pangea-site --project-name=northpoint-pangea --branch=main
Bump the ?v= cache-buster on any static file you changed; /static/* is immutable.
The guardrails
- Profiles are derived artefacts. Fix a source (a contract, a section script) and re-render; never hand-edit a built page.
- A profile may not describe a move the game does not have. contracts_evrima.py is the grounding truth.
- public_view() strips triggers, unlocks, conditions and rulings. Never re-introduce them into a player-facing template.
- Every mutation carries a cost. A pure-upside trait is a bug in the design, not a feature.
- Never commit .env, .shield-secret, container_key.json, or anything under data/recon/. They are gitignored; verify before every push.
- The shield tests gate the shield: run pytest tests/test_security_heuristics.py before committing vendor/nexxus_shield changes.
Write access to the repos, secrets, and the deploy token are not here — they live in the credential store and are granted per person. This page tells you how the code fits together, not how to break into it.