5.6 KiB
5.6 KiB
STORY CANON — SCICRAFT: The Dark Photon Protocol
This is the single source of truth for the pack's story. All lore text lives here or is referenced from here. Editing the story means editing this file (or the files it points to) — nothing else.
The canon, in one page
- Dark photons are real. A fifth force the Second Renegade Flight harnessed. They are the binding force of the Door — the pressure that keeps a collapsed star-empire from unravelling back into reality.
- You are a proto-Time-Lord. Born with the resonance, never finished training. The signal chose you because only a renegade could read the Protocol the mortals can't.
- The wound. The Flight sealed the empire inside a Dimensional Door. The seal is failing. The Void Dimension is the raw wound; the Doors are scar-tissue; the Deeper and Darker is what's answering from inside.
- The job. Rebuild the Quantum Lattice — the Protocol's emitter — and keep it online. The Protocol is never finished; it is maintained.
- The tide. Corruption rises while Doors go unsealed (global, shared by all players). Re-seal Doors at the Lattice to push it back. No fail state — just a world that gets darker while you procrastinate.
- The Doctor connection is atmospheric only. TARDIS-blue glass ("Renegade Glass"), the phrase Per Spatium, portal styling. Present but never plot-driving; players who don't care can ignore it entirely.
Where the story lives (file map)
| What you want to change | Where | Reload |
|---|---|---|
| Global story strings, tide tuning, dimension IDs | kubejs/server_scripts/00_lore.js |
/reload |
| Item/block names + advancement titles/descriptions | kubejs/assets/scicraft/lang/en_us.json |
resource reload |
| Player messages (tide warnings, signals) | 00_lore.js → scicraft.phrases.* + en_us.json |
/reload |
| Item tooltips (hover lore) | kubejs/client_scripts/01_tooltips.js |
F3+T |
| JEI info pages | kubejs/client_scripts/02_jei_info.js |
F3+T |
| Crafting chain / gating recipes | kubejs/server_scripts/03_recipes_tags.js |
/reload |
| Corruption tide logic | kubejs/server_scripts/01_corruption_tide.js |
/reload |
| Player powers / void hazards | kubejs/server_scripts/02_events.js |
/reload |
| Boss → Photon Fragment drops | kubejs/server_scripts/04_loot.js (LootJS) |
/reload |
| Advancement phase tree | kubejs/data/scicraft/advancements/protocol/*.json |
/reload |
| Advancement reward loot | kubejs/data/scicraft/loot_tables/protocol/*.json |
/reload |
| Item & block definitions (ID, texture, stats) | kubejs/startup_scripts/registry_blocks.js |
restart |
| Textures | kubejs/assets/scicraft/textures/{item,block}/*.png |
F3+T |
Golden rule:
00_lore.jsis the bible. If you add a new story beat, put its strings there first, then referenceSC.<path>from the other scripts. Never hardcode lore text in a script body.
Adding a new story beat (5-minute workflow)
- Edit
00_lore.js— add your phrase tophrases, or your item toitems. - Add the lang key to
en_us.json(same key you used inText.translate). - If it's a new item/block: add to
registry_blocks.js+ runtools/gen_textures.pyfor a placeholder texture. This step needs a full restart. - Add a tooltip / JEI page if it's a carried item.
- Wire the beat into the tide (if it's an event) or into a recipe (if it's a gated item) or into an advancement JSON (if it's a goal).
- Sync to both packs:
rm -rf client_pack/kubejs && cp -r server_pack/kubejs client_pack/kubejs - Reload:
/reload(server scripts/advancements/recipes) orF3+T(client assets/tooltips). Startup item changes require a game restart.
Adding a new advancement node
Copy data/scicraft/advancements/protocol/the_core.json and change:
"parent"— the node before it"title"/"description"— lore text (also add the matchingadvancements.scicraft.protocol.<name>.title/.descriptionkeys toen_us.json)"criteria"— the trigger (inventory_changed / changed_dimension / tick)
Rename the file <your_node>.json. The tree is non-terminal: the Protocol
is maintained, not completed.
Verified IDs (do not guess these — they were checked against the jars)
| Thing | Correct ID |
|---|---|
| Limbo (Dimensional Doors) | dimensionaldoors:limbo |
| The Wound (Void Dimension) | thevoiddimension:overworld |
| The Othersides (Deeper & Darker) | deeperdarker:otherside |
| Stellaris moon | stellaris:moon (mars/venus/mercury likewise) |
| Warden | minecraft:warden |
| Mutant Zombie / Skeleton / Enderman | mutantmonsters:mutant_zombie / mutant_skeleton / mutant_enderman |
| Born in Chaos Dark Vortex / Dread Hound / Nightmare Stalker | born_in_chaos_v1:dark_vortex / dread_hound / nightmare_stalker |
When in doubt, verify against the installed jar before writing an ID into a script.
TODO — future story beats (drop in whenever)
- New Doors: a "Door network" that opens/closes on a schedule, each
carrying its own phrase in
00_lore.js. - Star fragments: Stellaris planets each recover a named fragment ("Mars shard", "Venus shard") → new advancement nodes.
- Lattice upkeep: it slowly consumes Photon Cores while powered; running dry raises the tide (ties tide to real infrastructure).
- Final "The Legacy" tier of Renegade Glass builds that hum — block
interactions that whisper one
scicraft.phrases.*line. - FTB Quests questbook mirroring the advancement phases.