diff --git a/STORY/02-items.md b/STORY/02-items.md index e7bcdbf..08ce155 100644 --- a/STORY/02-items.md +++ b/STORY/02-items.md @@ -26,11 +26,17 @@ The Protocol's emitter. Must stay powered. It holds the world together. The TARDIS-blue glass of the Second Renegade Flight. Purely decorative; some say it hums near Doors. +## Protocol Tome + +The Flight's last briefing. Given once at the start of the Protocol; right-click +it to open the guidance book. It carries the whole of the Dark Photon Protocol. + ```lang { "item.scicraft.photon_core": "Photon Core", "item.scicraft.photon_fragment": "Photon Fragment", "item.scicraft.void_stabilizer": "Void Stabilizer", + "item.scicraft.protocol_tome": "Protocol Tome", "block.scicraft.quantum_lattice": "Quantum Lattice", "block.scicraft.renegade_glass": "Renegade Glass", @@ -48,6 +54,9 @@ some say it hums near Doors. "tooltip.scicraft.quantum_lattice.3": "Right-click with a Void Stabilizer to push back the tide.", "tooltip.scicraft.renegade_glass.1": "The TARDIS-blue glass of the Second Renegade Flight.", "tooltip.scicraft.renegade_glass.2": "Decorative. Some say it hums near Doors.", + "tooltip.scicraft.protocol_tome.1": "The last briefing of the Second Renegade Flight.", + "tooltip.scicraft.protocol_tome.2": "Right-click to open the guidance book.", + "tooltip.scicraft.protocol_tome.3": "It carries the whole of the Protocol.", "jei.scicraft.photon_fragment.1": "The Darker carry these.", "jei.scicraft.photon_fragment.2": "Slay Wardens, Mutant Monsters, or Born in Chaos mobs to recover them.", @@ -60,6 +69,7 @@ some say it hums near Doors. "jei.scicraft.quantum_lattice.2": "Powered by steel, circuits, and Photon Cores, it holds the world together.", "jei.scicraft.quantum_lattice.3": "Right-click it with a Void Stabilizer to push back the global Corruption Tide.", "jei.scicraft.renegade_glass.1": "The TARDIS-blue glass of the Second Renegade Flight.", - "jei.scicraft.renegade_glass.2": "Decorative. Crafted around a Photon Fragment." + "jei.scicraft.renegade_glass.2": "Decorative. Crafted around a Photon Fragment.", + "jei.scicraft.protocol_tome.1": "The Flight's briefing. Right-click it to open the quest book." } ``` \ No newline at end of file diff --git a/STORY/05-dialogue.md b/STORY/05-dialogue.md index 0644fad..d206bbc 100644 --- a/STORY/05-dialogue.md +++ b/STORY/05-dialogue.md @@ -9,6 +9,7 @@ Every message the player can see. These keys are referenced from scripts via - **tide_mid** — the world is waking; darkness begins. - **tide_high** — the Darker press against the world. - **seal_fail** — reserved for when the Lattice can't close a door. +- **tome_given** — spoken when the Protocol Tome is first handed over. ```lang { @@ -17,6 +18,7 @@ Every message the player can see. These keys are referenced from scripts via "scicraft.phrases.tide_low": "The seal holds. The tide is calm.", "scicraft.phrases.tide_mid": "A Door stirs somewhere. The dark is waking.", "scicraft.phrases.tide_high": "The Darker press against the world. The Protocol calls.", - "scicraft.phrases.seal_fail": "The Lattice sputters. It needs more power — and a Stabilizer." + "scicraft.phrases.seal_fail": "The Lattice sputters. It needs more power — and a Stabilizer.", + "scicraft.phrases.tome_given": "A Protocol Tome settles into your hands. Right-click it to read the Flight's last briefing." } ``` \ No newline at end of file diff --git a/client_pack/config/resourcepackoverrides.json b/client_pack/config/resourcepackoverrides.json new file mode 100644 index 0000000..41adbaa --- /dev/null +++ b/client_pack/config/resourcepackoverrides.json @@ -0,0 +1,17 @@ +{ + "schema_version": "1", + "failed_reloads_per_session": 3, + "default_packs": [], + "default_overrides": {}, + "packs": { + "vanilla-live-2.0.0.zip": { + "title": "Vanilla Live", + "description": "Bundled vanilla feel enhancements", + "defaultPosition": "top", + "compatibility": "COMPATIBLE", + "fixedPosition": false, + "required": true, + "hidden": false + } + } +} diff --git a/client_pack/index.toml b/client_pack/index.toml index 4e50033..6b55fb1 100644 --- a/client_pack/index.toml +++ b/client_pack/index.toml @@ -36,6 +36,10 @@ hash = "50b08c291f4daf1119b4b9052b299bb751e3c561191c99535edc00b223362b2b" file = "config/mekanismcovers.json" hash = "87ca59b5d0f51af04e15197fb5072c99964b33ac0e75352654f393c8d977a520" +[[files]] +file = "config/resourcepackoverrides.json" +hash = "f2515aa748afe1a19f7fe9c9bd1c5b407cd2ab837432e8b401268d05a2931eec" + [[files]] file = "config/sodium-options.json" hash = "44478bef0973f1aa587c0493568a5cbc5426233b611f14bd2be489b5b862fa7f" @@ -50,7 +54,7 @@ hash = "f28c058ada8ac482f4ff5de9694e91651461bb16e8468042f9665d0ff65c93cf" [[files]] file = "kubejs/assets/scicraft/lang/en_us.json" -hash = "d2126d3b09f8048309675d7a9f79776c1b01070c43bd8b3a0caa2f1f7862f3db" +hash = "0a1431213db887fa66c494aa5a6ce947866764cf443e9d9d4edea09f3804f020" [[files]] file = "kubejs/assets/scicraft/textures/block/quantum_lattice.png" @@ -68,6 +72,10 @@ hash = "570aef9ed9b12d2742790a0c4c2f6a1f0471f182cc3e357756aa3d23d2b5e332" file = "kubejs/assets/scicraft/textures/item/photon_fragment.png" hash = "8cca8f9112faff47d1ca0726ee793869de19da8646166a5cda14a1628b67b203" +[[files]] +file = "kubejs/assets/scicraft/textures/item/protocol_tome.png" +hash = "a8fd4ca7e04d2e17f61512d1864f89c71582f58ff43199831d935ef0f6cde329" + [[files]] file = "kubejs/assets/scicraft/textures/item/void_stabilizer.png" hash = "52b18e603aa0eaf9a900159a24fabbe24f594ada7595a26c1265b77701d8e682" @@ -80,6 +88,10 @@ hash = "e92d824f6929e88523ae0b12e12328ee6b4e483da22d9d51ae7290feb9299c91" file = "kubejs/client_scripts/02_jei_info.js" hash = "e192ce4474877cf8d51ad6f4196f127aa3f0821b943aa772d53fed7f2819338a" +[[files]] +file = "kubejs/client_scripts/03_protocol_tome.js" +hash = "04d1c24d4fe6a8dd71d5cd36257a1f4d76a1e62e8723ff3de9edf5ab20f57b1e" + [[files]] file = "kubejs/data/scicraft/advancements/protocol/first_signal.json" hash = "c545af1e4e6dfcf5049ec19d309fe736777b8e322f95f73cf577efd790bb04f0" @@ -140,9 +152,13 @@ hash = "de77b992da96b9cd6e1fcf8fd365aaa876099c37a28628bc44781ce30bdea127" file = "kubejs/server_scripts/04_loot.js" hash = "f280f2eeb997b4ba3e18dd168c675ea2fa0a9848f68f6db158806628712abc3a" +[[files]] +file = "kubejs/server_scripts/05_protocol_tome.js" +hash = "1cd8e15c94c6d034cb376b038afbcc10b9cb08e6fc77f4a8127c7221ae63305b" + [[files]] file = "kubejs/startup_scripts/registry_blocks.js" -hash = "89c614bc202780b86b84423ce5d0306beb5667b89db2fcf8fc6ed0a71c587218" +hash = "be188bd038a724a1449d5bb36a7c9679651b50468a786b597e2f6f563f9d1932" [[files]] file = "mods/3dskinlayers.pw.toml" @@ -249,6 +265,11 @@ file = "mods/connected-glass.pw.toml" hash = "ba633190e61bd7b32e412cb628a83fdd09b53b7ef8a036f1669687c719a99cc2" metafile = true +[[files]] +file = "mods/continents.pw.toml" +hash = "34fb32f369ccbfccf0e6e3085d823969338f22eee16524d8c62b29938653cdd8" +metafile = true + [[files]] file = "mods/copycats.pw.toml" hash = "e002fab16a9b9ef0a35844030339612a38d3c58b0b93e97a34eb43ddc9108be7" @@ -584,6 +605,11 @@ file = "mods/libipn.pw.toml" hash = "0d2a00252d64ed7d2d9b19994f7accb780304be61f3903d36e810714b414c6cb" metafile = true +[[files]] +file = "mods/lithium.pw.toml" +hash = "51e129832b04acd57da470fc41725bad5e101b6a6b1d4901fd8ea7a92b14e13d" +metafile = true + [[files]] file = "mods/lithostitched.pw.toml" hash = "0e1046e1bb16b42706ba58700f294787dc8fe643518bc5fb26eeaea8e96fd320" @@ -719,6 +745,11 @@ file = "mods/reintegrated-chipped.pw.toml" hash = "70674900e545ac727d245a2ab269ab63db6ef94b862548a55e36b31fcd7aaa70" metafile = true +[[files]] +file = "mods/resource-pack-overrides.pw.toml" +hash = "b8101dca20d054277d99e75b43dd8db44dea64a761d2ab69fdda9f6d59d9e6f1" +metafile = true + [[files]] file = "mods/resourceful-lib.pw.toml" hash = "aa83553db30adc47f86010f6443340251323a62ee3f9415a0c4332cb6d502419" @@ -819,6 +850,16 @@ file = "mods/supplementaries.pw.toml" hash = "2a2b9478b96d83d7ab8d62f17a4acc68332df7efaecad3b584f781b589a22228" metafile = true +[[files]] +file = "mods/tectonic.pw.toml" +hash = "fef2f8085bbdf6d398b02c87225ad9ccf9cc5d71edde13cd18e12a154764c84e" +metafile = true + +[[files]] +file = "mods/terralith.pw.toml" +hash = "81c5c05f9ed4c07b9f027ff6c421939bb04e476075091f135d34aaa05af1f950" +metafile = true + [[files]] file = "mods/the-doctor-who-client-mod.pw.toml" hash = "133badb6d33d880f47ad59a60dd3916231168ba07701c957aee1f781d5d54a5a" @@ -849,6 +890,14 @@ file = "mods/worldportal.pw.toml" hash = "5a4ae7824648c6b90b67dd6d913b5516f8ea180f72ac83d6c810293bcb535f06" metafile = true +[[files]] +file = "resourcepacks/vanilla-live-2.0.0.zip" +hash = "bba4fa885e20385c97cbe30815a91169b6bc78a7dd72334086208db12c31f3a9" + +[[files]] +file = "shaderpacks/MakeUp-UltraFast-8.6g.zip" +hash = "992b4076cb5141062f5da84b0812ba1f81acb5eb121f8a7a11d45d3a7c24b195" + [[files]] file = "shaderpacks/README.md" -hash = "28abbd2f7005b8c65fd1d1bae88aa47f05ffdcebd4339c23a1102a2ae46b3bf0" +hash = "7d14a4fd606d77b8e87930ee7c8736cfa4443710c015e7929dcfb03653193473" diff --git a/client_pack/kubejs/assets/scicraft/lang/en_us.json b/client_pack/kubejs/assets/scicraft/lang/en_us.json index 635983c..76280ee 100644 --- a/client_pack/kubejs/assets/scicraft/lang/en_us.json +++ b/client_pack/kubejs/assets/scicraft/lang/en_us.json @@ -2,6 +2,7 @@ "item.scicraft.photon_core": "Photon Core", "item.scicraft.photon_fragment": "Photon Fragment", "item.scicraft.void_stabilizer": "Void Stabilizer", + "item.scicraft.protocol_tome": "Protocol Tome", "block.scicraft.quantum_lattice": "Quantum Lattice", "block.scicraft.renegade_glass": "Renegade Glass", "tooltip.scicraft.photon_core.1": "Dark photons — the binding force of the Door.", @@ -18,6 +19,9 @@ "tooltip.scicraft.quantum_lattice.3": "Right-click with a Void Stabilizer to push back the tide.", "tooltip.scicraft.renegade_glass.1": "The TARDIS-blue glass of the Second Renegade Flight.", "tooltip.scicraft.renegade_glass.2": "Decorative. Some say it hums near Doors.", + "tooltip.scicraft.protocol_tome.1": "The last briefing of the Second Renegade Flight.", + "tooltip.scicraft.protocol_tome.2": "Right-click to open the guidance book.", + "tooltip.scicraft.protocol_tome.3": "It carries the whole of the Protocol.", "jei.scicraft.photon_fragment.1": "The Darker carry these.", "jei.scicraft.photon_fragment.2": "Slay Wardens, Mutant Monsters, or Born in Chaos mobs to recover them.", "jei.scicraft.photon_fragment.3": "You can also extract one from an Echo Shard and Glowstone Dust.", @@ -30,6 +34,7 @@ "jei.scicraft.quantum_lattice.3": "Right-click it with a Void Stabilizer to push back the global Corruption Tide.", "jei.scicraft.renegade_glass.1": "The TARDIS-blue glass of the Second Renegade Flight.", "jei.scicraft.renegade_glass.2": "Decorative. Crafted around a Photon Fragment.", + "jei.scicraft.protocol_tome.1": "The Flight's briefing. Right-click it to open the quest book.", "advancements.scicraft.protocol.root.title": "The Dark Photon Protocol", "advancements.scicraft.protocol.root.description": "The last signal of the Second Renegade Flight has found you. Rebuild the Lattice.", "advancements.scicraft.protocol.first_signal.title": "The Signal", @@ -55,5 +60,6 @@ "scicraft.phrases.tide_low": "The seal holds. The tide is calm.", "scicraft.phrases.tide_mid": "A Door stirs somewhere. The dark is waking.", "scicraft.phrases.tide_high": "The Darker press against the world. The Protocol calls.", - "scicraft.phrases.seal_fail": "The Lattice sputters. It needs more power — and a Stabilizer." + "scicraft.phrases.seal_fail": "The Lattice sputters. It needs more power — and a Stabilizer.", + "scicraft.phrases.tome_given": "A Protocol Tome settles into your hands. Right-click it to read the Flight's last briefing." } diff --git a/client_pack/kubejs/assets/scicraft/textures/item/protocol_tome.png b/client_pack/kubejs/assets/scicraft/textures/item/protocol_tome.png new file mode 100644 index 0000000..5f4f5fb Binary files /dev/null and b/client_pack/kubejs/assets/scicraft/textures/item/protocol_tome.png differ diff --git a/client_pack/kubejs/client_scripts/03_protocol_tome.js b/client_pack/kubejs/client_scripts/03_protocol_tome.js new file mode 100644 index 0000000..475d010 --- /dev/null +++ b/client_pack/kubejs/client_scripts/03_protocol_tome.js @@ -0,0 +1,11 @@ +// SCICRAFT — The Dark Photon Protocol +// Client: open the FTB Quests book when the server says the Tome was used. +// The server sends 'scicraft:open_quests' on Tome right-click. + +NetworkEvents.fromServer('scicraft:open_quests', event => { + try { + Java.loadClass('dev.ftb.mods.ftbquests.client.FTBQuestsClient').openGui() + } catch (err) { + console.warn('Protocol Tome: could not open FTB Quests GUI', err) + } +}) diff --git a/client_pack/kubejs/server_scripts/05_protocol_tome.js b/client_pack/kubejs/server_scripts/05_protocol_tome.js new file mode 100644 index 0000000..509f52f --- /dev/null +++ b/client_pack/kubejs/server_scripts/05_protocol_tome.js @@ -0,0 +1,31 @@ +// SCICRAFT — The Dark Photon Protocol +// Protocol Tome: starter item that makes the FTB Quests guidance unmissable. +// - Given to each player once on first login. +// - Right-clicking it opens the FTB Quests book on the client. + +const TOME_SC = { + item: 'scicraft:protocol_tome', + channel: 'scicraft:open_quests', + give_flag: 'scicraft_got_tome' +} + +// Give the Tome once per player on first login. +PlayerEvents.loggedIn(event => { + const player = event.player + if (player.persistentData.contains(TOME_SC.give_flag)) return + player.persistentData.putBoolean(TOME_SC.give_flag, true) + // Give on the next tick so the player is fully in-world first. + event.server.scheduleInTicks(10, () => { + if (!player.isOnline()) return + player.give(Item.of(TOME_SC.item)) + player.tell(Text.translate('scicraft.phrases.tome_given')) + }) +}) + +// Right-clicking the Tome asks the client to open the FTB Quests book. +ItemEvents.rightClicked(event => { + if (event.item.id !== TOME_SC.item) return + if (event.player.crouching) return + event.player.sendData(TOME_SC.channel, {}) + event.cancel() +}) diff --git a/client_pack/kubejs/startup_scripts/registry_blocks.js b/client_pack/kubejs/startup_scripts/registry_blocks.js index 25f2a72..40fad70 100644 --- a/client_pack/kubejs/startup_scripts/registry_blocks.js +++ b/client_pack/kubejs/startup_scripts/registry_blocks.js @@ -25,6 +25,12 @@ StartupEvents.registry('item', event => { .texture('scicraft:item/void_stabilizer') .maxStackSize(1) .tag('scicraft:stabilizer') + + // Protocol Tome — given on first login; opens the FTB Quests guidance book. + event.create('scicraft:protocol_tome') + .texture('scicraft:item/protocol_tome') + .maxStackSize(1) + .glow(true) }) StartupEvents.registry('block', event => { diff --git a/client_pack/mods/continents.pw.toml b/client_pack/mods/continents.pw.toml new file mode 100644 index 0000000..b7f7cf6 --- /dev/null +++ b/client_pack/mods/continents.pw.toml @@ -0,0 +1,13 @@ +name = "Continents" +filename = "Continents_1.21.x_v1.1.12.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/bQ5TJA1E/versions/3hhSlpEU/Continents_1.21.x_v1.1.12.jar" +hash-format = "sha512" +hash = "11561bd4f8c1f315376a7807669397f5f4c9d2419df83597fbc073d7f59a51708b854ab7361e4e305bb91ec3c8dbbfd17bef5f28a95fa193f9ef5d5b32f9a1a4" + +[update] +[update.modrinth] +mod-id = "bQ5TJA1E" +version = "3hhSlpEU" diff --git a/client_pack/mods/lithium.pw.toml b/client_pack/mods/lithium.pw.toml new file mode 100644 index 0000000..f0b28db --- /dev/null +++ b/client_pack/mods/lithium.pw.toml @@ -0,0 +1,13 @@ +name = "Lithium" +filename = "lithium-neoforge-0.15.4+mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/DDUrRVCA/lithium-neoforge-0.15.4%2Bmc1.21.1.jar" +hash-format = "sha512" +hash = "2735da2088b88a8bdcd4ad02a2b6fffbfd3925557cefd4fa54b5477dfb9e582ea7f521300c060f57dff1325dd21bff276b7333363ad3371ed6893e3de9eca9cd" + +[update] +[update.modrinth] +mod-id = "gvQqBUqZ" +version = "DDUrRVCA" diff --git a/client_pack/mods/resource-pack-overrides.pw.toml b/client_pack/mods/resource-pack-overrides.pw.toml new file mode 100644 index 0000000..2db74e5 --- /dev/null +++ b/client_pack/mods/resource-pack-overrides.pw.toml @@ -0,0 +1,13 @@ +name = "Resource Pack Overrides" +filename = "ResourcePackOverrides-v21.1.0-1.21.1-NeoForge.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/YsFycamt/versions/xf3H2eJV/ResourcePackOverrides-v21.1.0-1.21.1-NeoForge.jar" +hash-format = "sha512" +hash = "9a15db96ffc86bc93624392c22c2aaea4ad4a7267c20ff528ff2dd61d8d84b9db611fc24673fba5b5d0bac318b4ce1e9d1725085ce2fad68f4231afa6bbb43c4" + +[update] +[update.modrinth] +mod-id = "YsFycamt" +version = "xf3H2eJV" diff --git a/client_pack/mods/tectonic.pw.toml b/client_pack/mods/tectonic.pw.toml new file mode 100644 index 0000000..f623a34 --- /dev/null +++ b/client_pack/mods/tectonic.pw.toml @@ -0,0 +1,13 @@ +name = "Tectonic" +filename = "tectonic-3.0.26-neoforge-21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lWDHr9jE/versions/vNrkxC3z/tectonic-3.0.26-neoforge-21.1.jar" +hash-format = "sha512" +hash = "7f91f69f6985cf5d0533dc0a645286f40b9625e0a67e405969d153497923a9b2e6b88e436b017eb969a1fbe28d02850d87152a06f2c01dc55779814912d770ef" + +[update] +[update.modrinth] +mod-id = "lWDHr9jE" +version = "vNrkxC3z" diff --git a/client_pack/mods/terralith.pw.toml b/client_pack/mods/terralith.pw.toml new file mode 100644 index 0000000..4e145eb --- /dev/null +++ b/client_pack/mods/terralith.pw.toml @@ -0,0 +1,13 @@ +name = "Terralith" +filename = "Terralith_1.21.1_v2.6.2_Neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/8oi3bsk5/versions/IY93YaEe/Terralith_1.21.1_v2.6.2_Neoforge.jar" +hash-format = "sha512" +hash = "35298f1682567f63dc16658b04cee5498b30819f1c05f9712b4480d7f5eb17059db3b13ab14f81a05fe257149d11ced2cce2030d3727c1747edd8657c53e2a85" + +[update] +[update.modrinth] +mod-id = "8oi3bsk5" +version = "IY93YaEe" diff --git a/client_pack/pack.toml b/client_pack/pack.toml index d4da167..4f77878 100644 --- a/client_pack/pack.toml +++ b/client_pack/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "8ea3e4a55e075d409c4f033ab269cf1704e27fbb61d3056d1cc2287bb31fe2b4" +hash = "f67dec64fdf8212db06b444519aa39e36598b68628e49ee821642ce896fc7ce5" [versions] minecraft = "1.21.1" diff --git a/client_pack/resourcepacks/vanilla-live-2.0.0.zip b/client_pack/resourcepacks/vanilla-live-2.0.0.zip new file mode 100644 index 0000000..d0b6886 Binary files /dev/null and b/client_pack/resourcepacks/vanilla-live-2.0.0.zip differ diff --git a/client_pack/shaderpacks/MakeUp-UltraFast-8.6g.zip b/client_pack/shaderpacks/MakeUp-UltraFast-8.6g.zip new file mode 100644 index 0000000..56fd6a3 Binary files /dev/null and b/client_pack/shaderpacks/MakeUp-UltraFast-8.6g.zip differ diff --git a/client_pack/shaderpacks/README.md b/client_pack/shaderpacks/README.md index 8316ea0..84354c2 100644 --- a/client_pack/shaderpacks/README.md +++ b/client_pack/shaderpacks/README.md @@ -1,41 +1,33 @@ -# SCICRAFT Shader Pack — Complementary Reimagined (r5.4) +# SCICRAFT Shader Pack — MakeUp Ultra Fast The modpack uses **Iris Shaders (native NeoForge 1.21.1)** as the shader loader. -Download **Complementary Reimagined r5.4** and drop it in this folder: + +**MakeUp Ultra Fast v8.6g** is **bundled with the pack** — it ships in +`overrides/shaderpacks/` and Iris auto-loads it on first launch. It's chosen +for the best quality/performance ratio across all GPU tiers (works on iGPU to +high-end). License: LGPL-3.0 (redistribution permitted with credit). + +To change/reset the default shader settings in-game: +`Esc → Options… → Shader Packs… → MakeUp Ultra Fast → Shader Pack Settings`. + +Recommended for weaker GPUs (4GB VRAM / iGPU): disable Shadows and Depth of +Field in the shader options first — they're the two heaviest effects. + +## Optional: Complementary Reimagined (manual download) + +The previous default, **Complementary Reimagined**, is All-Rights-Reserved, so +it **cannot be bundled** in the mrpack. If you want it, download it yourself and +drop the zip in this folder (or the instance's `shaderpacks/` folder): - Modrinth: https://modrinth.com/shader/complementary-reimagined - (installer button → "Download jar file", rename to `ComplementaryReimagined_r5.4.zip`) -- Mirrors: https://www.curseforge.com/minecraft/shaderpacks/complementary-reimagined -## 4GB VRAM / Performance presets - -Open Iris: `Esc → Options… → Shader Packs… → Complementary Reimagined → Shader Pack Settings`. - -Recommended for 4GB VRAM graphics cards: - -| Setting | Recommended value | -|---------|-------------------| -| Preset | **Fast** (Performance mode) | -| Render Distance | 8 chunks (matches server view-distance) | -| Antialiasing | OFF | -| SSAO | Fast | -| Shadow Quality | 1.0x (0.5x for very weak GPUs) | -| Shadow Distance | 64 | -| Bloom | OFF or Low | -| Clouds | 2D Fast | -| Water Reflections | Screenspace Fast | -| Colored Light | OFF | -| Block Light / Entity Ambient | OFF | - -Optional: enable "Vanilla Tweaks → Clear Glass" so Connected Glass mods -remain visible through shaders. - -## Conflicts / Notes +## Performance notes - **Iris & Oculus Flywheel Compat** is bundled so Create's Flywheel renderer - keeps working with shaders. If you see flywheel errors, toggle the - compat mod's config or set Flywheel backend to "INSTANCING" in the - Create config. + keeps working with shaders. If you see flywheel errors, toggle the compat + mod's config or set the Flywheel backend to "INSTANCING" in the Create config. - Shaders are **client-only**. The server pack has no shader loader. - If FPS drops hard, first lower Shadow Quality and disable Bloom before reducing render distance. +- Optional: enable "Vanilla Tweaks → Clear Glass" so Connected Glass mods + remain visible through shaders. diff --git a/docs/mods.md b/docs/mods.md index 4ee6a16..83ab480 100644 --- a/docs/mods.md +++ b/docs/mods.md @@ -38,6 +38,39 @@ Physics / portals run on **Sable** + **Create Aeronautics** + **IPSable** Do not add the Modrinth "Immersive Portals x Sable Bridge" — it is deprecated and incompatible with Sable 2.x; IPSable supersedes it. +## World generation (both packs, NEW worlds only) + +The overworld is overhauled for a realistic, "real world server" feel: +- **Terralith 2.6.2** — ~100 new biomes (realistic + light fantasy) using only + vanilla blocks, plus immersive structures. *Stardust Labs license*: usable in + a modpack unmodified with credit. +- **Tectonic 3.0.26** (MIT) — grander, more varied terrain shaping. +- **Continents 1.1.12** — reshapes the world into continents separated by large + oceans and island chains. *Stardust Labs license* (credit required). +- All three depend on **Lithostitched** (already in the pack). + +> **Important:** worldgen only applies to **newly generated chunks**. Existing +> worlds will not change — start a fresh singleplayer world (or new server seed) +> to see the continents/biomes. + +## Bundled shader & resource packs (client-only) + +- **Shader pack: MakeUp Ultra Fast v8.6g** (LGPL-3.0) — bundled in + `shaderpacks/`, auto-loaded by Iris. Best quality/performance across GPU + tiers. Complementary Reimagined is **ARR** so it can't be bundled — it stays + an optional manual download (see `shaderpacks/README.md`). +- **Resource pack: Vanilla Live 2.0.0** (CC-BY-SA-4.0) — bundled in + `resourcepacks/`, force-enabled via **Resource Pack Overrides** (MPL-2.0, + `config/resourcepackoverrides.json`). + +## FTB Quests guidance + +The **Protocol Tome** (`scicraft:protocol_tome`) is given once on first login; +right-clicking it opens the FTB Quests guidance book (server → client packet via +KubeJS → `FTBQuestsClient.openGui()`). The quest book is also reachable via the +FTB Library sidebar button and keybind. Quest files ship in both packs under +`config/ftbquests/quests/` (server-authoritative). + ## Pause-menu / ESC cleanliness (client config overrides) The pause screen can get cluttered by mod config buttons. Shipped overrides in diff --git a/server_pack/index.toml b/server_pack/index.toml index d054f4e..a4a9709 100644 --- a/server_pack/index.toml +++ b/server_pack/index.toml @@ -10,7 +10,7 @@ hash = "303cb8e93c8d1989960f77c50575cbfb6e055870fb317373405c2e6b81e0211b" [[files]] file = "kubejs/assets/scicraft/lang/en_us.json" -hash = "d2126d3b09f8048309675d7a9f79776c1b01070c43bd8b3a0caa2f1f7862f3db" +hash = "0a1431213db887fa66c494aa5a6ce947866764cf443e9d9d4edea09f3804f020" [[files]] file = "kubejs/assets/scicraft/textures/block/quantum_lattice.png" @@ -28,6 +28,10 @@ hash = "570aef9ed9b12d2742790a0c4c2f6a1f0471f182cc3e357756aa3d23d2b5e332" file = "kubejs/assets/scicraft/textures/item/photon_fragment.png" hash = "8cca8f9112faff47d1ca0726ee793869de19da8646166a5cda14a1628b67b203" +[[files]] +file = "kubejs/assets/scicraft/textures/item/protocol_tome.png" +hash = "a8fd4ca7e04d2e17f61512d1864f89c71582f58ff43199831d935ef0f6cde329" + [[files]] file = "kubejs/assets/scicraft/textures/item/void_stabilizer.png" hash = "52b18e603aa0eaf9a900159a24fabbe24f594ada7595a26c1265b77701d8e682" @@ -40,6 +44,10 @@ hash = "e92d824f6929e88523ae0b12e12328ee6b4e483da22d9d51ae7290feb9299c91" file = "kubejs/client_scripts/02_jei_info.js" hash = "e192ce4474877cf8d51ad6f4196f127aa3f0821b943aa772d53fed7f2819338a" +[[files]] +file = "kubejs/client_scripts/03_protocol_tome.js" +hash = "04d1c24d4fe6a8dd71d5cd36257a1f4d76a1e62e8723ff3de9edf5ab20f57b1e" + [[files]] file = "kubejs/data/scicraft/advancements/protocol/first_signal.json" hash = "c545af1e4e6dfcf5049ec19d309fe736777b8e322f95f73cf577efd790bb04f0" @@ -100,9 +108,13 @@ hash = "de77b992da96b9cd6e1fcf8fd365aaa876099c37a28628bc44781ce30bdea127" file = "kubejs/server_scripts/04_loot.js" hash = "f280f2eeb997b4ba3e18dd168c675ea2fa0a9848f68f6db158806628712abc3a" +[[files]] +file = "kubejs/server_scripts/05_protocol_tome.js" +hash = "1cd8e15c94c6d034cb376b038afbcc10b9cb08e6fc77f4a8127c7221ae63305b" + [[files]] file = "kubejs/startup_scripts/registry_blocks.js" -hash = "89c614bc202780b86b84423ce5d0306beb5667b89db2fcf8fc6ed0a71c587218" +hash = "be188bd038a724a1449d5bb36a7c9679651b50468a786b597e2f6f563f9d1932" [[files]] file = "mods/ae2-import-export-card.pw.toml" @@ -194,6 +206,11 @@ file = "mods/connected-glass.pw.toml" hash = "ba633190e61bd7b32e412cb628a83fdd09b53b7ef8a036f1669687c719a99cc2" metafile = true +[[files]] +file = "mods/continents.pw.toml" +hash = "34fb32f369ccbfccf0e6e3085d823969338f22eee16524d8c62b29938653cdd8" +metafile = true + [[files]] file = "mods/copycats.pw.toml" hash = "e002fab16a9b9ef0a35844030339612a38d3c58b0b93e97a34eb43ddc9108be7" @@ -474,6 +491,11 @@ file = "mods/laserio.pw.toml" hash = "0d7ce37fd00f170025118f0e3fbeef7f4e7147c332b1a5a4e924950eb5e36bc0" metafile = true +[[files]] +file = "mods/lithium.pw.toml" +hash = "51e129832b04acd57da470fc41725bad5e101b6a6b1d4901fd8ea7a92b14e13d" +metafile = true + [[files]] file = "mods/lithostitched.pw.toml" hash = "b44ca90546d8fbf059a68aa34ed1106825fb99b8e1570d1edc16bec38af8a0e8" @@ -679,6 +701,16 @@ file = "mods/supplementaries.pw.toml" hash = "2a2b9478b96d83d7ab8d62f17a4acc68332df7efaecad3b584f781b589a22228" metafile = true +[[files]] +file = "mods/tectonic.pw.toml" +hash = "fef2f8085bbdf6d398b02c87225ad9ccf9cc5d71edde13cd18e12a154764c84e" +metafile = true + +[[files]] +file = "mods/terralith.pw.toml" +hash = "81c5c05f9ed4c07b9f027ff6c421939bb04e476075091f135d34aaa05af1f950" +metafile = true + [[files]] file = "mods/thevoiddimension.pw.toml" hash = "41d3d7c6960b26b3f26eb532a3499c71ae976d2e434732d88e0ca56f7fd3b376" diff --git a/server_pack/kubejs/assets/scicraft/lang/en_us.json b/server_pack/kubejs/assets/scicraft/lang/en_us.json index 635983c..76280ee 100644 --- a/server_pack/kubejs/assets/scicraft/lang/en_us.json +++ b/server_pack/kubejs/assets/scicraft/lang/en_us.json @@ -2,6 +2,7 @@ "item.scicraft.photon_core": "Photon Core", "item.scicraft.photon_fragment": "Photon Fragment", "item.scicraft.void_stabilizer": "Void Stabilizer", + "item.scicraft.protocol_tome": "Protocol Tome", "block.scicraft.quantum_lattice": "Quantum Lattice", "block.scicraft.renegade_glass": "Renegade Glass", "tooltip.scicraft.photon_core.1": "Dark photons — the binding force of the Door.", @@ -18,6 +19,9 @@ "tooltip.scicraft.quantum_lattice.3": "Right-click with a Void Stabilizer to push back the tide.", "tooltip.scicraft.renegade_glass.1": "The TARDIS-blue glass of the Second Renegade Flight.", "tooltip.scicraft.renegade_glass.2": "Decorative. Some say it hums near Doors.", + "tooltip.scicraft.protocol_tome.1": "The last briefing of the Second Renegade Flight.", + "tooltip.scicraft.protocol_tome.2": "Right-click to open the guidance book.", + "tooltip.scicraft.protocol_tome.3": "It carries the whole of the Protocol.", "jei.scicraft.photon_fragment.1": "The Darker carry these.", "jei.scicraft.photon_fragment.2": "Slay Wardens, Mutant Monsters, or Born in Chaos mobs to recover them.", "jei.scicraft.photon_fragment.3": "You can also extract one from an Echo Shard and Glowstone Dust.", @@ -30,6 +34,7 @@ "jei.scicraft.quantum_lattice.3": "Right-click it with a Void Stabilizer to push back the global Corruption Tide.", "jei.scicraft.renegade_glass.1": "The TARDIS-blue glass of the Second Renegade Flight.", "jei.scicraft.renegade_glass.2": "Decorative. Crafted around a Photon Fragment.", + "jei.scicraft.protocol_tome.1": "The Flight's briefing. Right-click it to open the quest book.", "advancements.scicraft.protocol.root.title": "The Dark Photon Protocol", "advancements.scicraft.protocol.root.description": "The last signal of the Second Renegade Flight has found you. Rebuild the Lattice.", "advancements.scicraft.protocol.first_signal.title": "The Signal", @@ -55,5 +60,6 @@ "scicraft.phrases.tide_low": "The seal holds. The tide is calm.", "scicraft.phrases.tide_mid": "A Door stirs somewhere. The dark is waking.", "scicraft.phrases.tide_high": "The Darker press against the world. The Protocol calls.", - "scicraft.phrases.seal_fail": "The Lattice sputters. It needs more power — and a Stabilizer." + "scicraft.phrases.seal_fail": "The Lattice sputters. It needs more power — and a Stabilizer.", + "scicraft.phrases.tome_given": "A Protocol Tome settles into your hands. Right-click it to read the Flight's last briefing." } diff --git a/server_pack/kubejs/assets/scicraft/textures/item/protocol_tome.png b/server_pack/kubejs/assets/scicraft/textures/item/protocol_tome.png new file mode 100644 index 0000000..5f4f5fb Binary files /dev/null and b/server_pack/kubejs/assets/scicraft/textures/item/protocol_tome.png differ diff --git a/server_pack/kubejs/client_scripts/03_protocol_tome.js b/server_pack/kubejs/client_scripts/03_protocol_tome.js new file mode 100644 index 0000000..475d010 --- /dev/null +++ b/server_pack/kubejs/client_scripts/03_protocol_tome.js @@ -0,0 +1,11 @@ +// SCICRAFT — The Dark Photon Protocol +// Client: open the FTB Quests book when the server says the Tome was used. +// The server sends 'scicraft:open_quests' on Tome right-click. + +NetworkEvents.fromServer('scicraft:open_quests', event => { + try { + Java.loadClass('dev.ftb.mods.ftbquests.client.FTBQuestsClient').openGui() + } catch (err) { + console.warn('Protocol Tome: could not open FTB Quests GUI', err) + } +}) diff --git a/server_pack/kubejs/server_scripts/05_protocol_tome.js b/server_pack/kubejs/server_scripts/05_protocol_tome.js new file mode 100644 index 0000000..509f52f --- /dev/null +++ b/server_pack/kubejs/server_scripts/05_protocol_tome.js @@ -0,0 +1,31 @@ +// SCICRAFT — The Dark Photon Protocol +// Protocol Tome: starter item that makes the FTB Quests guidance unmissable. +// - Given to each player once on first login. +// - Right-clicking it opens the FTB Quests book on the client. + +const TOME_SC = { + item: 'scicraft:protocol_tome', + channel: 'scicraft:open_quests', + give_flag: 'scicraft_got_tome' +} + +// Give the Tome once per player on first login. +PlayerEvents.loggedIn(event => { + const player = event.player + if (player.persistentData.contains(TOME_SC.give_flag)) return + player.persistentData.putBoolean(TOME_SC.give_flag, true) + // Give on the next tick so the player is fully in-world first. + event.server.scheduleInTicks(10, () => { + if (!player.isOnline()) return + player.give(Item.of(TOME_SC.item)) + player.tell(Text.translate('scicraft.phrases.tome_given')) + }) +}) + +// Right-clicking the Tome asks the client to open the FTB Quests book. +ItemEvents.rightClicked(event => { + if (event.item.id !== TOME_SC.item) return + if (event.player.crouching) return + event.player.sendData(TOME_SC.channel, {}) + event.cancel() +}) diff --git a/server_pack/kubejs/startup_scripts/registry_blocks.js b/server_pack/kubejs/startup_scripts/registry_blocks.js index 25f2a72..40fad70 100644 --- a/server_pack/kubejs/startup_scripts/registry_blocks.js +++ b/server_pack/kubejs/startup_scripts/registry_blocks.js @@ -25,6 +25,12 @@ StartupEvents.registry('item', event => { .texture('scicraft:item/void_stabilizer') .maxStackSize(1) .tag('scicraft:stabilizer') + + // Protocol Tome — given on first login; opens the FTB Quests guidance book. + event.create('scicraft:protocol_tome') + .texture('scicraft:item/protocol_tome') + .maxStackSize(1) + .glow(true) }) StartupEvents.registry('block', event => { diff --git a/server_pack/mods/continents.pw.toml b/server_pack/mods/continents.pw.toml new file mode 100644 index 0000000..b7f7cf6 --- /dev/null +++ b/server_pack/mods/continents.pw.toml @@ -0,0 +1,13 @@ +name = "Continents" +filename = "Continents_1.21.x_v1.1.12.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/bQ5TJA1E/versions/3hhSlpEU/Continents_1.21.x_v1.1.12.jar" +hash-format = "sha512" +hash = "11561bd4f8c1f315376a7807669397f5f4c9d2419df83597fbc073d7f59a51708b854ab7361e4e305bb91ec3c8dbbfd17bef5f28a95fa193f9ef5d5b32f9a1a4" + +[update] +[update.modrinth] +mod-id = "bQ5TJA1E" +version = "3hhSlpEU" diff --git a/server_pack/mods/lithium.pw.toml b/server_pack/mods/lithium.pw.toml new file mode 100644 index 0000000..f0b28db --- /dev/null +++ b/server_pack/mods/lithium.pw.toml @@ -0,0 +1,13 @@ +name = "Lithium" +filename = "lithium-neoforge-0.15.4+mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/DDUrRVCA/lithium-neoforge-0.15.4%2Bmc1.21.1.jar" +hash-format = "sha512" +hash = "2735da2088b88a8bdcd4ad02a2b6fffbfd3925557cefd4fa54b5477dfb9e582ea7f521300c060f57dff1325dd21bff276b7333363ad3371ed6893e3de9eca9cd" + +[update] +[update.modrinth] +mod-id = "gvQqBUqZ" +version = "DDUrRVCA" diff --git a/server_pack/mods/tectonic.pw.toml b/server_pack/mods/tectonic.pw.toml new file mode 100644 index 0000000..f623a34 --- /dev/null +++ b/server_pack/mods/tectonic.pw.toml @@ -0,0 +1,13 @@ +name = "Tectonic" +filename = "tectonic-3.0.26-neoforge-21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lWDHr9jE/versions/vNrkxC3z/tectonic-3.0.26-neoforge-21.1.jar" +hash-format = "sha512" +hash = "7f91f69f6985cf5d0533dc0a645286f40b9625e0a67e405969d153497923a9b2e6b88e436b017eb969a1fbe28d02850d87152a06f2c01dc55779814912d770ef" + +[update] +[update.modrinth] +mod-id = "lWDHr9jE" +version = "vNrkxC3z" diff --git a/server_pack/mods/terralith.pw.toml b/server_pack/mods/terralith.pw.toml new file mode 100644 index 0000000..4e145eb --- /dev/null +++ b/server_pack/mods/terralith.pw.toml @@ -0,0 +1,13 @@ +name = "Terralith" +filename = "Terralith_1.21.1_v2.6.2_Neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/8oi3bsk5/versions/IY93YaEe/Terralith_1.21.1_v2.6.2_Neoforge.jar" +hash-format = "sha512" +hash = "35298f1682567f63dc16658b04cee5498b30819f1c05f9712b4480d7f5eb17059db3b13ab14f81a05fe257149d11ced2cce2030d3727c1747edd8657c53e2a85" + +[update] +[update.modrinth] +mod-id = "8oi3bsk5" +version = "IY93YaEe" diff --git a/server_pack/pack.toml b/server_pack/pack.toml index 1e00216..67b1226 100644 --- a/server_pack/pack.toml +++ b/server_pack/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "64d85c7310d2075abdaf4d49c5834c766bb0904f19c4c0b924e4b2f0a9da1f70" +hash = "46114e199bfa15e8e5fb48a5eb13347c8570e8170ee5ed370ad0addb0fd291f2" [versions] minecraft = "1.21.1"