commit ae0ede6c280eda1c6e6f2545be9dbccf96ad8949 Author: MiTHRAL Date: Mon Aug 24 14:27:31 2026 -0400 SCICRAFT — The Dark Photon Protocol v1.0.0 NeoForge 1.21.1 (21.1.248) packwiz pack: client + server packs, story system (KubeJS/FTB Quests), patched World Portal & Create Ore Excavation, performance presets, and ops tooling. Clean-history import for v1.0.0. diff --git a/.gitea/workflows/build-pack.yaml b/.gitea/workflows/build-pack.yaml new file mode 100644 index 0000000..afd3926 --- /dev/null +++ b/.gitea/workflows/build-pack.yaml @@ -0,0 +1,83 @@ +name: Build & Release Pack + +on: + push: + branches: [main] + tags: ['v*'] + +jobs: + build: + runs-on: docker + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' + + - name: Install packwiz + run: go install github.com/packwiz/packwiz@latest + + - name: Add packwiz to PATH + run: echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" + + - name: Refresh index + working-directory: client_pack + run: packwiz refresh + + - name: Integrity check + working-directory: client_pack + run: python3 ../tools/validate_pack.py . integrity + + - name: Sanity grep download URLs + working-directory: client_pack + run: python3 ../tools/validate_pack.py . sanity + + - name: Export client Modrinth pack + working-directory: client_pack + run: packwiz modrinth export -o ../SCICRAFT-${GITHUB_REF_NAME}.mrpack --restrictDomains=false + + - name: Refresh server index + working-directory: server_pack + run: packwiz refresh + + - name: Integrity check (server) + working-directory: server_pack + run: python3 ../tools/validate_pack.py . integrity + + - name: Sanity grep download URLs (server) + working-directory: server_pack + run: python3 ../tools/validate_pack.py . sanity + + - name: Export server Modrinth pack + working-directory: server_pack + run: packwiz modrinth export -o ../SCICRAFT-SERVER-${GITHUB_REF_NAME}.mrpack --restrictDomains=false + + - name: Upload pack artifacts + uses: actions/upload-artifact@v3 + with: + name: scicraft-pack + path: | + SCICRAFT-${GITHUB_REF_NAME}.mrpack + SCICRAFT-SERVER-${GITHUB_REF_NAME}.mrpack + + - name: Release + if: startsWith(github.ref, 'refs/tags/v') + run: | + set -e + TAG="${GITHUB_REF_NAME}" + API="https://git.mithraic.cloud/api/v1/repos/ad3laid3/SciCraft/releases" + AUTH="Authorization: token ${{ secrets.GITHUB_TOKEN }}" + RELEASE_JSON=$(curl -sS -X POST "$API" \ + -H "$AUTH" \ + -H "Content-Type: application/json" \ + -d "{\"tag_name\":\"$TAG\",\"name\":\"SCICRAFT $TAG\",\"body\":\"Download the .mrpack and import it into Prism Launcher (File > Import Instance > select the file). All mods are bundled or auto-fetched. Use the SERVER pack on the server side.\"}") + RELEASE_ID=$(printf '%s' "$RELEASE_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") + for mr in "SCICRAFT-${TAG}.mrpack" "SCICRAFT-SERVER-${TAG}.mrpack"; do + curl -sS -X POST "$API/$RELEASE_ID/assets?name=${mr}" \ + -H "$AUTH" \ + -F "attachment=@${mr}" + done + echo "Uploaded SCICRAFT-${TAG}.mrpack and SCICRAFT-SERVER-${TAG}.mrpack" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dacefed --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Crash logs / launcher artifacts +*.log +crash-reports/ +crash-*.txt + +# Local testing artifacts +SP_Crash.log + +# Pack install outputs (generated, not source) +client_pack/mods/*.jar +server_pack/mods/*.jar +*.mrpack diff --git a/README.md b/README.md new file mode 100644 index 0000000..f4c3423 --- /dev/null +++ b/README.md @@ -0,0 +1,135 @@ +# SCICRAFT — The Dark Photon Protocol + +> *"The last signal of the Second Renegade Flight hums in your blood. +> Rebuild the Lattice. The Protocol is never finished — only maintained."* + +SCICRAFT is a 140+ mod **NeoForge 1.21.1** kitchen-sink modpack with a +sci-fi / Whovian story layer. A collapsed star-empire is leaking back into +reality through the Dimensional Doors; you are a proto-Time-Lord engineer +rebuilding the **Quantum Lattice** — the emitter of the Dark Photon Protocol +— and holding the global **Corruption Tide** at bay. + +The entire pack is managed with **packwiz** and ships as two synchronized +packs: a full client pack and a server-only pack. + +--- + +## Features + +- **NeoForge 1.21.1 (21.1.248)** · packwiz v1.1.0 +- **Tech pillars:** Mekanism, Applied Energistics 2, Create, FastPipes, + Flux Networks, LaserIO, Modular Routers, Entangled +- **Dimensions:** Dimensional Doors, Void Dimension, Deeper and Darker, + Stellaris (rockets to moon/mars/venus/mercury) +- **Mobs & combat:** Born in Chaos, Mutant Monsters, Nyf's Spiders, + Better Combat, Simply Swords +- **Building:** FramedBlocks, Chipped, Supplementaries, Architect's Palette, + Building Gadgets, Handcrafted, Every Compat +- **Story layer:** KubeJS-driven lore — the Quantum Lattice, the global + Corruption Tide, Renegade Glass, a 9-node advancement phase tree +- **QoL:** JEI, Jade, JourneyMap, Waystones, Curios, AppleSkin, IPN, + FTB Chunks/Quests +- **Client stack:** Iris + Sodium (native NeoForge), Cull Leaves, + LambDynamicLights, Dynamic FPS, flywheel compat +- **Server stack:** ModernFix, FerriteCore, ImmediatelyFast, Entity Culling, + BadOptimizations, Krypton Reno + +--- + +## Requirements + +- **Java 21** (Adoptium Temurin 21 LTS recommended) +- Client: ~12 GB RAM free, **4 GB VRAM** recommended (shader preset included) +- Server: 8 GB RAM minimum +- Disk: keep the world under **100 GB** total + +--- + +## Directory layout + +``` +. +├── server_pack/ # Server-only packwiz pack (135 mod files) +├── client_pack/ # Full client packwiz pack (144 mod files) +│ └── shaderpacks/ # Complementary Reimagined setup guide (4GB VRAM preset) +├── STORY/ # the story — canon, items, phases, dialogue (edit here) +├── docs/ # operations — setup, server, performance, mods +├── tools/ # gen_story.py, sync_kubejs.sh, gen_textures.py +└── README.md +``` + +Both packs are identical except the client pack adds render/shader/visual +mods. Keep them in sync after any change: + +```bash +bash tools/sync_kubejs.sh # kubejs/ → client_pack +python tools/gen_story.py # STORY/*.md → en_us.json (both packs) +``` + +--- + +## Install — server + +```bash +git clone git@git.mithraic.cloud:ad3laid3/SciCraft.git +cd SciCraft + +packwiz install --dir server_pack +java -Xms2G -Xmx6G -jar server_pack/neoforge-21.1.248-installer.jar --installServer + +# accept EULA (server_pack/eula.txt), then launch with the recommended flags: +java -Xms4G -Xmx8G -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \ + -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \ + -jar server_pack/neoforge-21.1.248-server.jar nogui +``` + +Recommended `server.properties`: `view-distance=8`, `simulation-distance=6`. +Full details in **docs/server.md**. + +## Install — client + +```bash +git clone git@git.mithraic.cloud:ad3laid3/SciCraft.git +cd SciCraft +packwiz install --dir client_pack +``` + +Add `client_pack` as a **packwiz** modpack in your launcher +(Prism/ATLauncher/PolyMC) or use `packwiz serve` from `client_pack` and +install via the Modrinth/packwiz installers. Drop a shaderpack into +`client_pack/shaderpacks/` — see the README there for the 4 GB VRAM preset. + +> **Multiplayer:** players join with the **client pack**; the server runs +> the **server pack**. Never put client-only mods on the server (see the +> client-only list in docs/mods.md). + +--- + +## The story (short version) + +1. **Dark photons are real** — a fifth force the Second Renegade Flight + harnessed. They are the binding force of the Door. +2. **You are a proto-Time-Lord** — the only one who can read the Protocol. +3. **The wound** — the Flight's seal on a collapsed star-empire is failing. + The Void Dimension is the leak; the Deeper and Darker is what answers. +4. **The Protocol** — rebuild the Quantum Lattice and keep it online. +5. **The Corruption Tide** — rises while Doors go unsealed (global, all + players share). Re-seal Doors at the Lattice with a Void Stabilizer. + No fail state — soft escalation only. +6. **The Doctor connection is atmospheric only** — Renegade Glass, + *Per Spatium*, portal styling. Never plot-driving. + +Full canon, the phase tree, and the 5-minute "add a story beat" workflow: +**STORY/00-index.md**. Story text is generated from STORY/ into `en_us.json` +via `tools/gen_story.py` — edit prose, not scripts. + +--- + +## License & credits + +Pack content is assembled for the SciCraft server. All mods belong to their +respective authors. Original story text, scripts, and pack configuration are +MIT licensed. diff --git a/STORY/00-index.md b/STORY/00-index.md new file mode 100644 index 0000000..976d29e --- /dev/null +++ b/STORY/00-index.md @@ -0,0 +1,73 @@ +# STORY — SCICRAFT: The Dark Photon Protocol + +**This folder is the single source of truth for the pack's story.** +Every piece of player-facing text in the game comes from here. + +## How editing works + +1. Edit prose and text in `STORY/*.md`. +2. Run the generator: + ```bash + python tools/gen_story.py + ``` +3. It merges every ````lang` JSON block into `en_us.json` in **both** packs + and fails if any referenced lang key is missing. +4. Reload in-game: `/reload` for server text, `F3+T` for client text. + +> **Golden rule:** never hand-edit `en_us.json` and never hardcode a story +> string inside a `.js` script. Text lives here (or in the `STORY/*.md` +> prose); scripts only reference lang keys. + +## File map + +| File | What lives here | Game artifact | +|------|-----------------|---------------| +| `00-index.md` | This index + the editing workflow + verified IDs | — | +| `01-canon.md` | The canon, in one page (the actual story) | — | +| `02-items.md` | Item/block names, hover tooltips, JEI pages | `item.*`, `block.*`, `tooltip.*`, `jei.*` | +| `03-dimensions.md` | Dimension lore + verified dimension IDs | — | +| `04-phases.md` | The advancement phase tree (titles + descriptions) | `advancements.scicraft.protocol.*` | +| `05-dialogue.md` | Player messages: tide warnings, signals, lattice hum | `scicraft.phrases.*` | +| `06-loot.md` | Who drops what, and why | `04_loot.js` (LootJS) | +| `07-todo.md` | Future story beats (drop in whenever) | — | + +## The phase tree (non-terminal — the Protocol is maintained) + +1. `root` — The Dark Photon Protocol (on login) +2. `first_signal` — recover a Photon Fragment +3. `the_core` — press 3 fragments → Photon Core +4. `the_seal` — craft the Void Stabilizer +5. `the_lattice` — assemble the Quantum Lattice +6. `the_legacy` — craft Renegade Glass +7. `through_the_doors` — enter Dimensional Doors Limbo +8. `the_wound` / `the_answer` / `per_spatium` — Void, Deeper&Darker, Stellaris + +## Adding a new story beat (5-minute workflow) + +1. **Write the prose** in the right `STORY/*.md` file (canon → `01-canon.md`, + item → `02-items.md`, message → `05-dialogue.md`, goal → `04-phases.md`). +2. **Add the lang keys** to that file's ````lang` block. +3. **If it's a new item/block**: add to `kubejs/startup_scripts/registry_blocks.js` + + run `tools/gen_textures.py` for a placeholder texture. **Restart** to apply. +4. **Wire the beat** into a script (tide → `01_corruption_tide.js`, + powers → `02_events.js`, craft → `03_recipes_tags.js`, drop → `04_loot.js`). + Use `Text.translate('key')` — never a raw string. +5. Run `python tools/gen_story.py`, then sync: + ```bash + bash tools/sync_kubejs.sh + ``` +6. Reload: `/reload` (server) or `F3+T` (client). Startup items need a restart. + +## 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. \ No newline at end of file diff --git a/STORY/01-canon.md b/STORY/01-canon.md new file mode 100644 index 0000000..a1d974b --- /dev/null +++ b/STORY/01-canon.md @@ -0,0 +1,58 @@ +# The Canon — in one page + +## The canon + +1. **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. +2. **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. +3. **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*. +4. **The job.** Rebuild the **Quantum Lattice** — the Protocol's emitter — + and keep it online. The Protocol is never finished; it is maintained. +5. **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. +6. **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. + +## The short version (for the README) + +1. Dark photons are real — a fifth force the Flight harnessed, the binding + force of the Door. +2. You are a proto-Time-Lord — the only one who can read the Protocol. +3. The wound — the Flight's seal on a collapsed star-empire is failing. The + Void Dimension is the leak; the Deeper and Darker is what answers. +4. The Protocol — rebuild the Quantum Lattice and keep it online. +5. The Corruption Tide — rises while Doors go unsealed (global, shared). + Re-seal Doors at the Lattice with a Void Stabilizer. No fail state. +6. The Doctor connection is atmospheric only — Renegade Glass, *Per Spatium*, + portal styling. Never plot-driving. + +## The opening blurb (in-game) + +> In the year 4.2.2.0.5, the universe is burning. The Time Lords sealed a +> collapsing star-empire inside a **Dimensional Door** — but the seal is +> decaying. The **Void Dimension** leaks entropy into the Overworld, and the +> **Deeper and Darker** have begun to answer. +> +> A single broadcast survives the fall: the **Dark Photon Protocol**, a plan +> to stabilize the galaxy by re-binding reality itself. You are the last +> engineer of the Second Renegade Flight. Construct the means, master the +> sciences of **Mekanism, Applied Energistics and Create**, and re-forge the +> photon lattice before the void consumes every world. + +## Objective trees (what the pack asks you to build) + +1. **Reignite the Ark** — build a base with power (Mekanism turbines / + Flux Networks), storage (AE2 / Sophisticated / Functional Storage), and + logistics (LaserIO / Modular Routers / Entangled / FastPipes). +2. **Walk the Stars** — unlock **Stellaris** rocket tiers; visit Mars, + Venus, and beyond through the rocket menu. +3. **Breach the Doors** — survive **Dimensional Doors**, recover the + **Void Dimension** stabilizer, and descend into the **Deeper and Darker**. +4. **The Protocol** — complete the FTB Quests line and KubeJS advancements. \ No newline at end of file diff --git a/STORY/02-items.md b/STORY/02-items.md new file mode 100644 index 0000000..08ce155 --- /dev/null +++ b/STORY/02-items.md @@ -0,0 +1,75 @@ +# Items & Blocks + +Every name, tooltip line, and JEI page for the Protocol's items. Keep the +tooltips in the same order they should render (top of list = first line). + +## Photon Core + +The raw fifth-force crystal. Lattice fuel. Held items let you feel the seals. + +## Photon Fragment + +Shattered cores recovered from the Darker's remains. Three can be pressed +into a Core. + +## Void Stabilizer + +The renegades' tool for closing wounds — the "door's key". Right-click a +powered Quantum Lattice with it to re-seal a Door and push back the tide. + +## Quantum Lattice + +The Protocol's emitter. Must stay powered. It holds the world together. + +## Renegade Glass + +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", + + "tooltip.scicraft.photon_core.1": "Dark photons — the binding force of the Door.", + "tooltip.scicraft.photon_core.2": "A sliver of the fifth force the Flight harnessed.", + "tooltip.scicraft.photon_core.3": "Hold it and feel the seals.", + "tooltip.scicraft.photon_fragment.1": "A splinter of light stolen from the collapse.", + "tooltip.scicraft.photon_fragment.2": "Recovered from the Darker's remains.", + "tooltip.scicraft.photon_fragment.3": "Three of these may be pressed into a Core.", + "tooltip.scicraft.void_stabilizer.1": "Per Spatium — the renegades' seal for the wound in the world.", + "tooltip.scicraft.void_stabilizer.2": "Right-click a powered Quantum Lattice to re-seal a Door.", + "tooltip.scicraft.void_stabilizer.3": "It will never break. The work will.", + "tooltip.scicraft.quantum_lattice.1": "The Protocol's emitter. It must stay powered.", + "tooltip.scicraft.quantum_lattice.2": "Feed it steel, circuits, and Photon Cores.", + "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.", + "jei.scicraft.photon_core.1": "Compress three Photon Fragments in a Create Press,", + "jei.scicraft.photon_core.2": "or smelt an Ender Pearl in the heart of the wound.", + "jei.scicraft.void_stabilizer.1": "The seal of the Flight. Crafted from Photon Cores and an Ender Eye.", + "jei.scicraft.void_stabilizer.2": "Use it on a powered Quantum Lattice to re-seal a Door and lower the Corruption Tide.", + "jei.scicraft.quantum_lattice.1": "The emitter of the Dark Photon Protocol.", + "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.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/03-dimensions.md b/STORY/03-dimensions.md new file mode 100644 index 0000000..bcd6dc5 --- /dev/null +++ b/STORY/03-dimensions.md @@ -0,0 +1,33 @@ +# Dimensions + +The geography of the story. Prose lives here; the actual dimension IDs are +verified in `00-index.md` — do not invent new ones. + +## The Overworld — the Ark + +Where the Protocol must be rebuilt. The Lattice belongs here; doors leak +here. Corruption rises here faster than anywhere. + +## Limbo (Dimensional Doors) + +The scar-tissue of the Flight's prison — the space *between* the doors. +Entering a Door is entering the memory of the collapse. The first test of +the renegade's nerve. + +## The Wound (Void Dimension) + +The raw leak of the collapsing star-empire. Physically hostile: entropy +drains the life of anyone inside. The Void Stabilizer is the only tool that +can begin closing it. + +## The Othersides (Deeper & Darker) + +What is *answering from inside* the prison. The Darker press against the +world here. Carries the worst ambient dread in the pack — and the richest +harvest of Photon Fragments. + +## The Stars (Stellaris) + +The Flight scattered its data across the worlds of this system. The moon, +Mars, Venus, Mercury — each holds a piece of the Protocol's history and its +own quiet dread. *Per Spatium.* \ No newline at end of file diff --git a/STORY/04-phases.md b/STORY/04-phases.md new file mode 100644 index 0000000..cd49cb7 --- /dev/null +++ b/STORY/04-phases.md @@ -0,0 +1,37 @@ +# The Phase Tree + +The advancement tree is the player's story spine. Titles and descriptions +are player-facing — write them like lore, not like tech specs. The tree is +non-terminal: the Protocol is maintained, not completed. + +Phases in order: `root` → `first_signal` → `the_core` → `the_seal` → +`the_lattice` → `the_legacy` → `through_the_doors` → (`the_wound`, +`the_answer`, `per_spatium`). + +> To add a node: copy `kubejs/data/scicraft/advancements/protocol/the_core.json`, +> change `parent`, rename the file, and add its title/description keys below. + +```lang +{ + "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", + "advancements.scicraft.protocol.first_signal.description": "Recover your first Photon Fragment from a creature of the Dark.", + "advancements.scicraft.protocol.the_core.title": "The Core", + "advancements.scicraft.protocol.the_core.description": "Press three Fragments into a Photon Core.", + "advancements.scicraft.protocol.the_seal.title": "The Seal", + "advancements.scicraft.protocol.the_seal.description": "Craft the Void Stabilizer — the renegades' tool for closing wounds.", + "advancements.scicraft.protocol.the_lattice.title": "The Lattice", + "advancements.scicraft.protocol.the_lattice.description": "Assemble the Quantum Lattice — the Protocol's emitter — and keep it powered.", + "advancements.scicraft.protocol.the_legacy.title": "The Legacy", + "advancements.scicraft.protocol.the_legacy.description": "Craft Renegade Glass — rebuild what the Flight left behind.", + "advancements.scicraft.protocol.through_the_doors.title": "Through the Doors", + "advancements.scicraft.protocol.through_the_doors.description": "Enter a Dimensional Door. The scar-tissue of the Flight's prison.", + "advancements.scicraft.protocol.the_wound.title": "The Wound", + "advancements.scicraft.protocol.the_wound.description": "Descend into the Void Dimension — the raw leak of the collapsing empire.", + "advancements.scicraft.protocol.the_answer.title": "The Answer", + "advancements.scicraft.protocol.the_answer.description": "Reach the Othersides of the Deeper and Darker — what answers from inside the prison.", + "advancements.scicraft.protocol.per_spatium.title": "Per Spatium", + "advancements.scicraft.protocol.per_spatium.description": "Launch a rocket. The Flight's data was scattered across the stars." +} +``` \ No newline at end of file diff --git a/STORY/05-dialogue.md b/STORY/05-dialogue.md new file mode 100644 index 0000000..d206bbc --- /dev/null +++ b/STORY/05-dialogue.md @@ -0,0 +1,24 @@ +# Dialogue & Player Messages + +Every message the player can see. These keys are referenced from scripts via +`Text.translate('scicraft.phrases.')`. + +- **signal** — broadcast once on login; the first vision. +- **lattice_hum** — spoken when a Door is re-sealed at the Lattice. +- **tide_low** — the calm phase of the Corruption Tide. +- **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 +{ + "scicraft.phrases.signal": "The last signal of the Second Renegade Flight hums in your blood.", + "scicraft.phrases.lattice_hum": "The Lattice hums. Reality holds — for now.", + "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.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/STORY/06-loot.md b/STORY/06-loot.md new file mode 100644 index 0000000..e2b821c --- /dev/null +++ b/STORY/06-loot.md @@ -0,0 +1,25 @@ +# Loot & Drops + +Who carries Photon Fragments, and why. Implemented in +`kubejs/server_scripts/04_loot.js` (LootJS) — the prose here explains the +*motivation*, the script holds the counts. + +## The Warden + +A creature of the Deep Dark, now answering the signal. It carries the most +fragments of the overworld's horrors — the Protocol's first real harvest. + +## Mutant Monsters + +The corrupted remnants of the Flight's containment. Mutant Zombie and +Mutant Skeleton carry fragments; Mutant Enderman, the most corrupted, drops +the richest haul. + +## Born in Chaos + +The Darker's forward scouts. Dark Vortex and Dread Hound carry a single +fragment each — the first taste of the Dark. Nightmare Stalker, which hunts +silently, carries more. + +> The very first fragment should always drop — the player is never locked +> out of the story by bad luck. \ No newline at end of file diff --git a/STORY/07-todo.md b/STORY/07-todo.md new file mode 100644 index 0000000..52e42af --- /dev/null +++ b/STORY/07-todo.md @@ -0,0 +1,18 @@ +# Future Story Beats + +Drop these in whenever. Beats get promoted to a numbered file once they're +implemented; until then they live here as design. + +- [ ] **Door network** — a set of Doors that opens/closes on a schedule, each + carrying its own phrase in `05-dialogue.md` (add `scicraft.phrases.` + keys as they land). +- [ ] **Star fragments** — Stellaris planets each recover a named fragment + ("Mars shard", "Venus shard") → new advancement nodes in `04-phases.md`. +- [ ] **Lattice upkeep** — it slowly *consumes* Photon Cores while powered; + running dry raises the tide (ties the tide to real infrastructure). +- [ ] **The Legacy tier** — Renegade Glass builds that hum: block interactions + that whisper one `scicraft.phrases.*` line. +- [ ] **FTB Quests questbook** mirroring the advancement phases in `04-phases.md`. +- [ ] **Tide warning gating** — currently `tide_*` messages broadcast every + 200 ticks to all players; gate them to *phase changes* only to avoid + spam. See `kubejs/server_scripts/01_corruption_tide.js`. \ No newline at end of file diff --git a/client_pack/config/create-client.toml b/client_pack/config/create-client.toml new file mode 100644 index 0000000..f24bd9c --- /dev/null +++ b/client_pack/config/create-client.toml @@ -0,0 +1,148 @@ +#. +#Client-only settings - If you're looking for general settings, look inside your worlds serverconfig folder! +[client] + #. + #Show item descriptions on Shift and controls on Ctrl. + enableTooltips = true + #. + #Display a tooltip when looking at overstressed components. + enableOverstressedTooltip = true + #. + #Log a stack-trace when rendering issues happen within a moving contraption. + explainRenderErrors = false + #. + #Higher density means more spawned particles. + # Default: 0.5 + # Range: 0.0 ~ 1.0 + fanParticleDensity = 0.5 + #. + #[in Blocks] + #Maximum Distance to the player at which items in Blocks' filter slots will be displayed + # Default: 10.0 + # Range: 1.0 ~ 3.4028234663852886E38 + filterItemRenderDistance = 10.0 + #. + #Choose the menu row that the Create config button appears on in the main menu + #Set to 0 to disable the button altogether + # Default: 2 + # Range: 0 ~ 4 + mainMenuConfigButtonRow = 2 + #. + #Offset the Create config button in the main menu by this many pixels on the X axis + #The sign (-/+) of this value determines what side of the row the button appears on (left/right) + # Default: -4 + # Range: > -2147483648 + mainMenuConfigButtonOffsetX = -4 + #. + #Choose the menu row that the Create config button appears on in the in-game menu + #Set to 0 to disable the button altogether + # Default: 3 + # Range: 0 ~ 5 + # Set to 0 to reduce pause-menu clutter/overlap. Create config is still reachable from the main menu. + ingameMenuConfigButtonRow = 0 + #. + #Offset the Create config button in the in-game menu by this many pixels on the X axis + #The sign (-/+) of this value determines what side of the row the button appears on (left/right) + # Default: -4 + # Range: > -2147483648 + ingameMenuConfigButtonOffsetX = -4 + #. + #Setting this to true will prevent Create from sending you a warning when playing with Fabulous graphics enabled + ignoreFabulousWarning = false + #. + #Disable to prevent being rotated while seated on a Moving Contraption + rotateWhenSeated = true + + #. + #Configure your vision range when submerged in Create's custom fluids + [client.fluidFogSettings] + #. + #The vision range through honey will be multiplied by this factor + # Default: 1.0 + # Range: 0.125 ~ 256.0 + honey = 1.0 + #. + #The vision range though chocolate will be multiplied by this factor + # Default: 1.0 + # Range: 0.125 ~ 256.0 + chocolate = 1.0 + + #. + #Settings for the Goggle Overlay + [client.goggleOverlay] + #. + #Offset the overlay from goggle- and hover- information by this many pixels on the respective axis; Use /create overlay + # Default: 20 + # Range: > -2147483648 + overlayOffsetX = 20 + #. + #Offset the overlay from goggle- and hover- information by this many pixels on the respective axis; Use /create overlay + # Default: 0 + # Range: > -2147483648 + overlayOffsetY = 0 + #. + #Enable this to use your custom colors for the Goggle- and Hover- Overlay + customColorsOverlay = false + #. + #The custom background color to use for the Goggle- and Hover- Overlays, if enabled + #[in Hex: #AaRrGgBb] + #[@cui:IntDisplay:#] + # Default: -267386864 + # Range: > -2147483648 + customBackgroundOverlay = -267386864 + #. + #The custom top color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled + #[in Hex: #AaRrGgBb] + #[@cui:IntDisplay:#] + # Default: 1347420415 + # Range: > -2147483648 + customBorderTopOverlay = 1347420415 + #. + #The custom bot color of the border gradient to use for the Goggle- and Hover- Overlays, if enabled + #[in Hex: #AaRrGgBb] + #[@cui:IntDisplay:#] + # Default: 1344798847 + # Range: > -2147483648 + customBorderBotOverlay = 1344798847 + + #. + #Sound settings + [client.sound] + #. + #Make cogs rumble and machines clatter. + enableAmbientSounds = true + #. + #Maximum volume modifier of Ambient noise + # Default: 0.10000000149011612 + # Range: 0.0 ~ 1.0 + ambientVolumeCap = 0.10000000149011612 + + #. + #Mod Integration and Recipe Viewer + [client.recipeViewerIntegration] + #. + #How Recipe Viewer search should interact with Stock Keepers + #Allowed Values: SYNC_BOTH, SYNC_FROM_JEI, SYNC_FROM_STOCK_KEEPER, NONE + syncRecipeViewerSearch = "SYNC_BOTH" + + #. + #Railway related settings + [client.trains] + #. + #How far away the Camera should zoom when seated on a train + # Default: 3.0 + # Range: 0.0 ~ 3.4028234663852886E38 + mountedZoomMultiplier = 3.0 + #. + #Display nodes and edges of a Railway Network while f3 debug mode is active + showTrackGraphOnF3 = false + #. + #Additionally display materials of a Rail Network while f3 debug mode is active + showExtendedTrackGraphOnF3 = false + #. + #Display Track Networks and Trains on supported map mods + showTrainMapOverlay = true + #. + #Track Network Color on maps + #Allowed Values: RED, GREY, WHITE + trainMapColorTheme = "RED" diff --git a/client_pack/config/cullleaves.json b/client_pack/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/client_pack/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/client_pack/config/entityculling.json b/client_pack/config/entityculling.json new file mode 100644 index 0000000..231afb2 --- /dev/null +++ b/client_pack/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 128, + "debugMode": false, + "sleepDelay": 10, + "hitboxLimit": 50, + "captureRate": 5, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/client_pack/config/flywheel-client.toml b/client_pack/config/flywheel-client.toml new file mode 100644 index 0000000..92d5ec2 --- /dev/null +++ b/client_pack/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#Medium tier: INSTANCING gives good Create contraption performance on a 5600X + RX 580 class machine. +backend = "INSTANCING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = 2 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "SMOOTH" diff --git a/client_pack/config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt b/client_pack/config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt new file mode 100644 index 0000000..125508e --- /dev/null +++ b/client_pack/config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt @@ -0,0 +1,253 @@ +{ + id: "e7311a3c8487ccee", + group: "", + order_index: 0, + quests: [ + { + id: "af426aae065d8b5d", + x: 0.0, + y: 0.0, + shape: "circle", + tasks: [ + { + id: "af426aae065d8b5e", + type: "ftbquests:checkmark" + } + ], + rewards: [ + { + id: "af426aae065d8b5f", + type: "ftbquests:item", + item: { + item: "scicraft:photon_fragment", + count: 2 + } + } + ] + }, + { + id: "2008fe12b4d41b0d", + x: 2.0, + y: 0.0, + shape: "circle", + dependencies: [ + "af426aae065d8b5d" + ], + tasks: [ + { + id: "2008fe12b4d41b0e", + type: "ftbquests:item", + item: { + item: "scicraft:photon_fragment", + count: 1 + } + } + ], + rewards: [ + { + id: "2008fe12b4d41b0f", + type: "ftbquests:xp", + xp: 100 + } + ] + }, + { + id: "43538030951a509c", + x: 4.0, + y: 0.0, + shape: "circle", + dependencies: [ + "2008fe12b4d41b0d" + ], + tasks: [ + { + id: "43538030951a509e", + type: "ftbquests:item", + item: { + item: "scicraft:photon_core", + count: 1 + } + } + ], + rewards: [ + { + id: "43538030951a509f", + type: "ftbquests:xp", + xp: 250 + } + ] + }, + { + id: "0b79d27becaeafc6", + x: 6.0, + y: 0.0, + shape: "circle", + dependencies: [ + "43538030951a509c" + ], + tasks: [ + { + id: "0b79d27becaeafce", + type: "ftbquests:item", + item: { + item: "scicraft:void_stabilizer", + count: 1 + } + } + ], + rewards: [ + { + id: "0b79d27becaeafcf", + type: "ftbquests:xp", + xp: 500 + } + ] + }, + { + id: "334f7c4987263954", + x: 8.0, + y: 0.0, + shape: "circle", + dependencies: [ + "0b79d27becaeafc6" + ], + tasks: [ + { + id: "334f7c498726395e", + type: "ftbquests:item", + item: { + item: "scicraft:quantum_lattice", + count: 1 + } + } + ], + rewards: [ + { + id: "334f7c498726395f", + type: "ftbquests:xp", + xp: 1000 + } + ] + }, + { + id: "122450d405e7ce56", + x: 10.0, + y: 0.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "122450d405e7ce5e", + type: "ftbquests:item", + item: { + item: "scicraft:renegade_glass", + count: 1 + } + } + ], + rewards: [ + { + id: "122450d405e7ce5f", + type: "ftbquests:xp", + xp: 300 + } + ] + }, + { + id: "fb564dcc8844cdd6", + x: 12.0, + y: 0.0, + shape: "circle", + dependencies: [ + "0b79d27becaeafc6" + ], + tasks: [ + { + id: "fb564dcc8844cdde", + type: "ftbquests:dimension", + dimension: "dimensionaldoors:limbo" + } + ], + rewards: [ + { + id: "fb564dcc8844cddf", + type: "ftbquests:xp", + xp: 400 + } + ] + }, + { + id: "c71b96a9869a6607", + x: 14.0, + y: -1.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "c71b96a9869a660e", + type: "ftbquests:dimension", + dimension: "thevoiddimension:overworld" + } + ], + rewards: [ + { + id: "c71b96a9869a660f", + type: "ftbquests:xp", + xp: 750 + } + ] + }, + { + id: "85e6fcba2ecb28a6", + x: 14.0, + y: 1.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "85e6fcba2ecb28ae", + type: "ftbquests:dimension", + dimension: "deeperdarker:otherside" + } + ], + rewards: [ + { + id: "85e6fcba2ecb28af", + type: "ftbquests:xp", + xp: 750 + } + ] + }, + { + id: "7ad80334ef67b3db", + x: 14.0, + y: -3.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "7ad80334ef67b3de", + type: "ftbquests:dimension", + dimension: "stellaris:moon" + } + ], + rewards: [ + { + id: "7ad80334ef67b3df", + type: "ftbquests:xp", + xp: 600 + } + ] + } + ], + quest_links: [], + images: [] +} diff --git a/client_pack/config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt b/client_pack/config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt new file mode 100644 index 0000000..d7aa366 --- /dev/null +++ b/client_pack/config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt @@ -0,0 +1,88 @@ +{ + "chapter.e7311a3c8487ccee.title": "The Dark Photon Protocol", + "quest.af426aae065d8b5d.title": "First Steps", + "quest.af426aae065d8b5d.quest_desc": [ + "You are the last engineer of the Second Renegade Flight.", + "", + "A fifth force — dark photons — holds a collapsed star-empire sealed behind a Dimensional Door. The seal is failing.", + "", + "The Corruption Tide is a global pressure that rises while Doors go unsealed. It climbs every 60 seconds. Re-seal Doors at a powered Quantum Lattice with a Void Stabilizer to push it back. There is no fail state — just a world that grows darker.", + "", + "Your first step: recover Photon Fragments from the Darker's creatures — Wardens, Mutant Monsters, and Born in Chaos mobs." + ], + "quest.2008fe12b4d41b0d.title": "The Signal", + "quest.2008fe12b4d41b0d.quest_desc": [ + "Recover a Photon Fragment from a creature of the Dark.", + "", + "Sources:", + "- Warden: 1-3", + "- Mutant Zombie / Skeleton: 1-2", + "- Mutant Enderman: 2-4", + "- Born in Chaos Dark Vortex / Dread Hound: 1", + "- Nightmare Stalker: 2-3", + "", + "You can also extract one from an Echo Shard and Glowstone Dust." + ], + "quest.43538030951a509c.title": "The Core", + "quest.43538030951a509c.quest_desc": [ + "Press three Photon Fragments into a Photon Core.", + "", + "Use a Create Mechanical Press on 3x Photon Fragments, or smelt an Ender Pearl in the heart of the wound.", + "", + "Holding a Photon Core grants Night Vision." + ], + "quest.0b79d27becaeafc6.title": "The Seal", + "quest.0b79d27becaeafc6.quest_desc": [ + "Craft the Void Stabilizer — the renegades' tool for closing wounds.", + "", + "Recipe: a column of Photon Cores with an Ender Eye at the heart.", + "", + "It never breaks. The work will. Holding it grants Speed and Regeneration." + ], + "quest.334f7c4987263954.title": "The Lattice", + "quest.334f7c4987263954.quest_desc": [ + "Assemble the Quantum Lattice — the Protocol's emitter — and keep it powered.", + "", + "Recipe: steel ingots, circuits, and a Photon Core.", + "", + "Place it, power it, then right-click it with a Void Stabilizer to re-seal a Door and push back the Corruption Tide by 15." + ], + "quest.122450d405e7ce56.title": "The Legacy", + "quest.122450d405e7ce56.quest_desc": [ + "Craft Renegade Glass — the TARDIS-blue glass of the Flight.", + "", + "Purely decorative. Some say it hums near Doors.", + "", + "Recipe: glass blocks around a Photon Fragment." + ], + "quest.fb564dcc8844cdd6.title": "Through the Doors", + "quest.fb564dcc8844cdd6.quest_desc": [ + "Enter a Dimensional Door.", + "", + "Limbo is the scar-tissue of the Flight's prison — the space between the doors.", + "", + "The first test of your nerve." + ], + "quest.c71b96a9869a6607.title": "The Wound", + "quest.c71b96a9869a6607.quest_desc": [ + "Descend into the Void Dimension — the raw leak of the collapsing empire.", + "", + "Danger: the wound drains 1 HP every 5 seconds. Carry the Void Stabilizer to hold on." + ], + "quest.85e6fcba2ecb28a6.title": "The Answer", + "quest.85e6fcba2ecb28a6.quest_desc": [ + "Reach the Othersides of the Deeper and Darker.", + "", + "What answers from inside the prison. The richest harvest of Photon Fragments.", + "", + "Danger: the Wither takes hold here." + ], + "quest.7ad80334ef67b3db.title": "Per Spatium", + "quest.7ad80334ef67b3db.quest_desc": [ + "Launch a rocket.", + "", + "The Flight scattered its data across the worlds of this system — the moon, Mars, Venus, Mercury.", + "", + "Each holds a piece of the Protocol's history. Per Spatium." + ] +} diff --git a/client_pack/config/iris.properties b/client_pack/config/iris.properties new file mode 100644 index 0000000..e23c140 --- /dev/null +++ b/client_pack/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT Medium preset +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=true +maxShadowRenderDistance=32 +shaderPack= diff --git a/client_pack/config/lambdynlights.toml b/client_pack/config/lambdynlights.toml new file mode 100644 index 0000000..3cfbe5a --- /dev/null +++ b/client_pack/config/lambdynlights.toml @@ -0,0 +1,27 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "fancy" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + # How far away (in chunks) until light sources get ticked less often. + slow = 5 + # How far away (in chunks) until light sources get ticked even less often. + slower = 8 + # Reduces how often sources behind the camera get ticked. + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "simple" + tnt = "off" + beam = true + firefly = true + guardian_laser = true + sonic_boom = true + glowing_effect = true diff --git a/client_pack/config/mekanismcovers.json b/client_pack/config/mekanismcovers.json new file mode 100644 index 0000000..bc556f9 --- /dev/null +++ b/client_pack/config/mekanismcovers.json @@ -0,0 +1,4 @@ +{ + "disableAdvancedCoverRendering": true, + "enableShaderCompatibleRendering": true +} 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/config/sodium-options.json b/client_pack/config/sodium-options.json new file mode 100644 index 0000000..ad775a7 --- /dev/null +++ b/client_pack/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "DEFAULT", + "leaves_quality": "DEFAULT", + "enable_vignette": true, + "use_closest_point_entity_sort": false + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 3 + }, + "performance": { + "chunk_builder_threads": 0, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "SAFE" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/client_pack/config/sound_physics_remastered/soundphysics.properties b/client_pack/config/sound_physics_remastered/soundphysics.properties new file mode 100644 index 0000000..574fe09 --- /dev/null +++ b/client_pack/config/sound_physics_remastered/soundphysics.properties @@ -0,0 +1,38 @@ +# Enables/Disables all sound effects +enabled=true +attenuation_factor=1.0 +reverb_attenuation_distance=0.0 +reverb_gain=1.0 +reverb_brightness=1.0 +reverb_distance=1.5 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=4.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=false +environment_evaluation_ray_count=24 +environment_evaluation_ray_bounces=4 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=16 +max_occlusion=64.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=512.0 +unsafe_level_access=false +level_clone_range=4 +level_clone_max_retain_ticks=20 +level_clone_max_retain_block_distance=16 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/client_pack/config/supplementaries-client.toml b/client_pack/config/supplementaries-client.toml new file mode 100644 index 0000000..4627271 --- /dev/null +++ b/client_pack/config/supplementaries-client.toml @@ -0,0 +1,257 @@ + [blocks.globe] + #Enable a random globe texture for each world + random_world = true + + [blocks.notice_board] + #Allows notice board displayed text to be centered instead of being left aligned + centered_text = true + + [blocks.bunting] + #Makes buntings use normal block models with no animation for faster performance. When off this is only active when viewed from a distance + fast_buntings = false + + [blocks.clock_block] + #Display 24h time format. False for 12h format + 24h_format = true + + [blocks.pedestal] + #Enable displayed item spin + spin = true + #Spin speed + # Default: 2.0 + # Range: 0.0 ~ 100.0 + speed = 2.0 + #Enable special display types for items like swords, tridents or end crystals + fancy_renderers = true + + [blocks.bubble_block] + #Wobbling intensity. set to 0 to disable + # Default: 0.2 + # Range: 0.0 ~ 1.0 + wobble = 0.2 + #How fast it grows when created. 1 to be instant + # Default: 0.4 + # Range: 0.0 ~ 1.0 + grow_speed = 0.4 + + [blocks.item_shelf] + #Translate down displayed 3d blocks so that they are touching the shelf. + #Note that they will not be centered vertically this way + supported_blocks = true + + [blocks.wind_vane] + #Wind vane animation swings according to this equation: + #pitch(time) = max_angle_1*sin(2pi*time*pow/period_1) + *sin(2pi*time*pow/) + #where: + # - pow = max(1,redstone_power*) + # - time = time in ticks + # - redstone_power = block redstone power + # = how much frequency changes depending on power. 2 means it spins twice as fast each power level (2* for rain, 4* for thunder) + #increase to have more distinct indication when weather changes + # Default: 3.0 + # Range: 1.0 ~ 100.0 + power_scaling = 3.0 + #Amplitude (maximum pitch) of first sine wave + # Default: 30.0 + # Range: 0.0 ~ 360.0 + max_angle_1 = 30.0 + # Default: 10.0 + # Range: 0.0 ~ 360.0 + max_angle_2 = 10.0 + #Base period in ticks at 0 power of first sine wave + # Default: 450.0 + # Range: 0.0 ~ 2000.0 + period_1 = 450.0 + #This should be kept period_1/3 for a symmetric animation + # Default: 150.0 + # Range: 0.0 ~ 2000.0 + period_2 = 150.0 + + [blocks.flag] + #How slow a flag will oscillate. (Period of oscillation) + #Lower value = faster oscillation + # Default: 100 + # Range: 0 ~ 10000 + slowness = 100 + #How wavy the animation will be in pixels. (Wavelength) + # Default: 4.0 + # Range: 0.001 ~ 100.0 + wavyness = 4.0 + #How tall the wave lobes will be. (Wave amplitude) + # Default: 1.0 + # Range: 0.0 ~ 100.0 + intensity = 1.0 + #How much the wave amplitude increases each pixel. (Amplitude increment per pixel) + # Default: 0.3 + # Range: 0.0 ~ 10.0 + intensity_increment = 0.3 + #At which graphic settings flags will have a fancy renderer: 0=fast, 1=fancy, 2=fabulous + #Allowed Values: FAST, FANCY, FABULOUS + fanciness = "FABULOUS" + #Makes flags render as sideways banner. Ignores many of the previously defined configs + render_as_banner = false + + [blocks.captured_mobs] + #A list of mobs that can be ticked on client side when inside jars. Mainly used for stuff that has particles. Can cause issues and side effects so use with care + tickable_inside_jars = ["iceandfire:pixie", "druidcraft:dreadfish", "druidcraft:lunar_moth", "alexsmobs:hummingbird"] + + [blocks.hat_stand.swing_physics] + min_angle = 0.0 + collision_force = 15.0 + damping = 1.625 + collision_inertia = 1.5 + collision_considers_entity_hitbox = true + frequency = 1.5 + max_angle = 54.999996 + + [blocks.turn_table] + #Display visual particles when a block is rotated + turn_particles = true + + [blocks.speaker_block] + #Mute speaker block incoming narrator messages and displays them in chat instead + mute_narrator = false + + [blocks.rope] + #Amplitude of rope wobbling effect + # Default: 1.2 + # Range: 0.0 ~ 20.0 + wobbling_amplitude = 1.2 + #Period of rope wobbling effect + # Default: 12.0 + # Range: 0.01 ~ 200.0 + wobbling_period = 12.0 + + [blocks.pulley] + #How the topmost moving block of a continuous-mode pulley is clipped + #against the pulley body so it appears to disappear into / emerge from it. + # - OFF: no masking, the block may poke through the pulley + # - STENCIL: clean clip using stencil buffer (recommended) + # - DEPTH: simpler depth-buffer clip; can interact poorly with translucent + # blocks (slime, glass, water) rendered after BE pass + #Allowed Values: OFF, STENCIL, DEPTH + mask_mode = "OFF" + + [particles.turn_particle] + #An RGBA color + initial_color = "#002A77EA" + #An RGBA color + fade_color = "#0032BEFA" + +[general] + #Enable Supplementaries to base textures off external Resource Packs rather than mod's default textures. + use_external_resource_pack = false + #Allowed Values: ALWAYS, CACHED, CACHED_ZIPPED, NEVER + dynamic_assets_generation_mode = "CACHED" + #Disables Optifine warn screen + no_optifine_warn_screen = false + #Disable incompatible mods warning screen + no_incompatible_mods_screen = false + #Enable Quark style config button on main menu + # Disabled to reduce pause/menu clutter and button overlap + configs_button = false + #Config button Y offset + # Default: 0 + # Range: -10000 ~ 10000 + configs_button_y_offset = 0 + #Show some tooltip hints to guide players through the mod + tooltip_hints = true + #Show tooltips items that have been made placeable + placeable_tooltips = true + #unfunny + "I am very boring and I don't want any Easter Egg" = false + +[tweaks] + #Adds an overlay to projectile weapons in gui displaying currently selected ammo + projectile_weapon_overlay = true + #Renders an enchantment glint on placeable enchanted booksNote that turning this on will make book piles use tile renderer instead of baked models making them slower to render + placeable_books_glint = false + #Enables banner pattern tooltip image preview + banner_pattern_tooltip = true + #Enables paintings tooltip image preview + paintings_tooltip = true + #Enables sherds tooltip image preview + sherds_tooltip = true + #Size of the tooltip image used for Sherds, Blackboards, Banner patterns and Paintings + # Default: 80 + # Range: 1 ~ 255 + tooltip_image_size = 80 + #Wearing mob heads will apply post processing + mob_head_shaders = true + #Sends your current chat when you die while typing + send_chat_on_death = true + #Makes enderman and spider heads use vanilla texture. Enable for texture pack support + enderman_and_spider_head_texture_pack_support = true + #Show a slime overlay when you hit an entity with a slimeball + slime_effect_overlay = true + + [tweaks.colored_maps] + #Needs the server config with same name on. If on here it will ignore the server one and keep vanilla colors + tinted_blocks_on_maps = true + #Colors tall grass same color as grass + tall_grass_color = true + #Makes colored maps a bit more accurate. Might affect performance + accurate_colors = false + + [items.slingshot] + #Adds an overlay to slingshots in gui displaying currently selected ammo + overlay = true + #Render the block outline for distant blocks that are reachable with a slingshot enchanted with Stasis + stasis_block_outline = true + #An RGBA color for the block outline in hex format, for example 0x00000066 for vanilla outline colors + block_outline_color = "#FFFFFFFF" + #How big should a slingshot projectile look + # Default: 0.5 + # Range: 0.0 ~ 1.0 + projectile_scale = 0.5 + + [items.lunch_basket] + #Adds an overlay to lunch boxes in gui displaying currently selected food + overlay = true + + [items.altimeter] + #Click action for depth meter which displays current depth + click_action = true + #This is a list. Add more entries with syntax [[...]] + #Allows depth meter to have unique textures per each dimension. Add more dimensions IDs and a matching texture in the correct path replacing ':' with '_' + extra_dimension_textures = ["minecraft:the_nether", "minecraft:the_end"] + #Increasing this to be more than 1 will result in delth meter display image to be shown in float amounts instead of pixel perfect ones + # Default: 1 + # Range: 1 ~ 10 + texture_precision_multiplier = 1 + + [items.cannonball] + #Render cannonballs as 3D models + 3d_model = true + + [items.quiver] + #Z offset for quiver render when wearing armor. Useful for when you have custom armor bigger than vanilla to void clipping. Leave at -1 for automatic offset + # Default: -1.0 + # Range: -1.0 ~ 1.0 + armor_render_offset = -1.0 + #How quivers should render onto players + #Allowed Values: HIDDEN, BACK, HIP, THIGH + render_mode = "THIGH" + #How skeleton with quivers should render it + #Allowed Values: HIDDEN, BACK, HIP, THIGH + skeleton_render_mode = "THIGH" + #Adds an overlay to quivers in gui displaying currently selected arrow + overlay = true + #Allows using your mouse to select an arrow in the quiver GUI + mouse_movement_in_gui = true + #Quiver GUI X offset from default position + # Default: 0 + # Range: -1000 ~ 1000 + gui_x_offset = 0 + #Quiver GUI Y offset from default position + # Default: 0 + # Range: -1000 ~ 1000 + gui_y_offset = 0 + + [items.wrench] + #Display visual particles when a block is rotated + turn_particles = true + + [items.flute] + #Display visual particles when a playing a flute + note_particles = true diff --git a/client_pack/index.toml b/client_pack/index.toml new file mode 100644 index 0000000..e7caf03 --- /dev/null +++ b/client_pack/index.toml @@ -0,0 +1,903 @@ +hash-format = "sha256" + +[[files]] +file = "config/create-client.toml" +hash = "eef1e46c2112a886829a621621ba5b45c00d244b12c83d4eef1787263c65c64f" + +[[files]] +file = "config/cullleaves.json" +hash = "a53e9457ebcd926998654cadd2da6d59bf330911818b742186e743f0e73495e9" + +[[files]] +file = "config/entityculling.json" +hash = "5604d753fd6071f6e64a08baab9f3a050652348153c3f60521c022301089de4a" + +[[files]] +file = "config/flywheel-client.toml" +hash = "8253a89d9671e9e8af7bc4ba8ffcfd605492822def80ca70529bfaef17b7871c" + +[[files]] +file = "config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt" +hash = "ebcd482739c6365a3ab5454746f75fb0e94001e650fe116155e93a1a3d4c6339" + +[[files]] +file = "config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt" +hash = "303cb8e93c8d1989960f77c50575cbfb6e055870fb317373405c2e6b81e0211b" + +[[files]] +file = "config/iris.properties" +hash = "2cb400728d64ac47a5314f7c48e6593150592e637ead528611a1245b01ab370a" + +[[files]] +file = "config/lambdynlights.toml" +hash = "50b08c291f4daf1119b4b9052b299bb751e3c561191c99535edc00b223362b2b" + +[[files]] +file = "config/mekanismcovers.json" +hash = "87ca59b5d0f51af04e15197fb5072c99964b33ac0e75352654f393c8d977a520" + +[[files]] +file = "config/resourcepackoverrides.json" +hash = "f2515aa748afe1a19f7fe9c9bd1c5b407cd2ab837432e8b401268d05a2931eec" + +[[files]] +file = "config/sodium-options.json" +hash = "44478bef0973f1aa587c0493568a5cbc5426233b611f14bd2be489b5b862fa7f" + +[[files]] +file = "config/sound_physics_remastered/soundphysics.properties" +hash = "55e63c2f6d60c95508d224e87ae08a515690b625d911c5fe0a4c5e28a10e9c50" + +[[files]] +file = "config/supplementaries-client.toml" +hash = "f28c058ada8ac482f4ff5de9694e91651461bb16e8468042f9665d0ff65c93cf" + +[[files]] +file = "kubejs/assets/scicraft/lang/en_us.json" +hash = "0a1431213db887fa66c494aa5a6ce947866764cf443e9d9d4edea09f3804f020" + +[[files]] +file = "kubejs/assets/scicraft/textures/block/quantum_lattice.png" +hash = "c395b6e3c45cc3313c754c3451688990ce1a1199a05e8d03fb817b86ff1add81" + +[[files]] +file = "kubejs/assets/scicraft/textures/block/renegade_glass.png" +hash = "5fc2918b6e7ab3a654afc8cfe442f6cc1346acc3fadebc9a15790b44d31a4c9f" + +[[files]] +file = "kubejs/assets/scicraft/textures/item/photon_core.png" +hash = "570aef9ed9b12d2742790a0c4c2f6a1f0471f182cc3e357756aa3d23d2b5e332" + +[[files]] +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" + +[[files]] +file = "kubejs/client_scripts/01_tooltips.js" +hash = "e92d824f6929e88523ae0b12e12328ee6b4e483da22d9d51ae7290feb9299c91" + +[[files]] +file = "kubejs/client_scripts/02_jei_info.js" +hash = "e192ce4474877cf8d51ad6f4196f127aa3f0821b943aa772d53fed7f2819338a" + +[[files]] +file = "kubejs/client_scripts/03_protocol_tome.js" +hash = "8533cc83f2be863ace4bc674cf64b0e11a02c149dd0556425ed691a11574815e" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/first_signal.json" +hash = "c545af1e4e6dfcf5049ec19d309fe736777b8e322f95f73cf577efd790bb04f0" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/per_spatium.json" +hash = "11d22ba106d9f72cdfd4d97a2e6bcc9d0e9f8084e86ef3592dd7404f567db464" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/root.json" +hash = "1ed74aab959c8af06a0bacc4d3e4dc59a2218a61f509dd5a43ad1aecae45a003" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_answer.json" +hash = "dc3acf6f16aab9b51eca1a971d94a6c1d60988404a6b04bab7a01da34b4ce3a6" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_core.json" +hash = "c51854c18a23b66bec553abd334c7ea396211ac862095c0954f7354e271b101b" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_lattice.json" +hash = "889bb2cbd9c310cbe0ca737ac14c265988958d04a38e60aa8c2cfc996dbe248a" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_legacy.json" +hash = "eccc19d5d7784c3b1273a27f3211dc87fa3cb33eca9e89e7c73bb3cb9219ca0f" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_seal.json" +hash = "3eeb2305818ca2342669fa3eb08df60c0f5dcfe0a2864a637041c44bbfcf1173" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_wound.json" +hash = "798548985135eb86cd3dd921d83c7ab184b89427862335ae621cd6c17e70b410" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/through_the_doors.json" +hash = "dd870892bdb8784d8bbbd420ae91cf9d68c7d67bd396949a1c3b2498c9033a42" + +[[files]] +file = "kubejs/data/scicraft/loot_tables/protocol/root_reward.json" +hash = "510aaa143b814db531dda8fc094c2d9a5f589c83b23eb174e6301218b58101e3" + +[[files]] +file = "kubejs/server_scripts/01_corruption_tide.js" +hash = "4ccf6fa0c03a2631884249a19b6509828bc751c8ccc4ba13d0e4cb4309e8b7ad" + +[[files]] +file = "kubejs/server_scripts/02_events.js" +hash = "b57f7fccb45e1e56774d8be024a4d86e736cf29b8598ae01bf5ce40695888599" + +[[files]] +file = "kubejs/server_scripts/03_recipes_tags.js" +hash = "de77b992da96b9cd6e1fcf8fd365aaa876099c37a28628bc44781ce30bdea127" + +[[files]] +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 = "be188bd038a724a1449d5bb36a7c9679651b50468a786b597e2f6f563f9d1932" + +[[files]] +file = "mods/3dskinlayers.pw.toml" +hash = "c1f98a1e9d7201f0b6ddc3f705f43a53f7539978f48425de5c1177a310fe7b86" +metafile = true + +[[files]] +file = "mods/ae2-import-export-card.pw.toml" +hash = "f9ff125ddfd2d8e83e17b3cc87771c679ba4ba5f657661568d464c43f9c886ff" +metafile = true + +[[files]] +file = "mods/ae2-qol-recipes.pw.toml" +hash = "0bd11ad5856e558c44060185154083447a3e940b06be350625d862749b9409a0" +metafile = true + +[[files]] +file = "mods/ae2.pw.toml" +hash = "ed45c352a49b65c7221e57d979d0c6935522dfef4968aa5b7421f4d3e670ce40" +metafile = true + +[[files]] +file = "mods/ambientsounds.pw.toml" +hash = "d5282b7a148f4fda7d1399815ee270f89a03ce8dcac67c848c64d0d0a1691671" +metafile = true + +[[files]] +file = "mods/appleskin.pw.toml" +hash = "716d930feff599bf9ce732e05979fbae8025dc8a3c13ccf4f1cb207a70883bc6" +metafile = true + +[[files]] +file = "mods/applied-energistics-2-wireless-terminals.pw.toml" +hash = "0b00e3fcc86a4ab7744269fc576bb23180a29dc0e44954511907a8b5386e3f53" +metafile = true + +[[files]] +file = "mods/architects-palette.pw.toml" +hash = "ffa80ab737db677474192e7f09f6b1daff0276e2e15c375b332feb3015376580" +metafile = true + +[[files]] +file = "mods/architectury-api.pw.toml" +hash = "187eafde5974beee1263538b462b7b8fe2fc8948c5d413980d9796d55928580b" +metafile = true + +[[files]] +file = "mods/athena-ctm.pw.toml" +hash = "f54cf71372645810ce22b0ba68e706139565437150e4cfd22bde4c14606099c4" +metafile = true + +[[files]] +file = "mods/badoptimizations.pw.toml" +hash = "dd56ff2bcc4253d1d70c08333632743fb56cdc4cf5518dc6afc024164633145d" +metafile = true + +[[files]] +file = "mods/balm.pw.toml" +hash = "7dba9a4a9894a6bbab3a8c7edcc718499297412247fc0e8ccebf75b760c85140" +metafile = true + +[[files]] +file = "mods/bellsandwhistles.pw.toml" +hash = "e1f4a53e3e52b534add5dd018597fefd345d9bd6350b9c46ef0ec281fc62af8e" +metafile = true + +[[files]] +file = "mods/better-combat.pw.toml" +hash = "438170e7e704a1b8ed67bf0521dc5d77cdeeaabf6f729dba9f8dfdad75330acf" +metafile = true + +[[files]] +file = "mods/blocks-you-need.pw.toml" +hash = "a835e85294f2c54acc360c5b4eecb0a6305c0ad5933a5e8ddaa04d1923093f58" +metafile = true + +[[files]] +file = "mods/born-in-chaos.pw.toml" +hash = "4a7d85fc2f67432dad21dd3b316a557ff73d1b4992a54cc1e0877d2ae0c8207a" +metafile = true + +[[files]] +file = "mods/building-gadgets.pw.toml" +hash = "88908286eebea979713b5626891f634317fcc4c5a5bd4ec0c9444a33863a4518" +metafile = true + +[[files]] +file = "mods/chipped.pw.toml" +hash = "24c6c3fe917ffbcef04e788dec3e003d0ed03433bc00f9cf4f23fe9b85636aa7" +metafile = true + +[[files]] +file = "mods/cloth-config.pw.toml" +hash = "75181b55e0407d1fca1e2f346c6501f919f5109545990ddfb66db9cd1b771f8a" +metafile = true + +[[files]] +file = "mods/clumps.pw.toml" +hash = "2acaff560bbda5741538528a2967355ec86a8f7564adba0b2316989c66892374" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/cosmetic-armor-reworked.pw.toml" +hash = "b65ee01fec17228645121952de6dec75053b0b4c59a8c8036d6fa7829819f3f9" +metafile = true + +[[files]] +file = "mods/create-aeronautics.pw.toml" +hash = "d438d05c61167c95de2b282bb3839a290f819f70c9d313c5e61177d69a29c704" +metafile = true + +[[files]] +file = "mods/create-big-cannons.pw.toml" +hash = "a0e9ff95570cd9af3374ca8b44aa095447baf94e565f46ae99819d52a9b48dc1" +metafile = true + +[[files]] +file = "mods/create-central-kitchen.pw.toml" +hash = "7a7eeb96f8cf82768269855ff837c07fa75daf32a6f560d85f2bf901402d70d3" +metafile = true + +[[files]] +file = "mods/create-connected.pw.toml" +hash = "61afa588fd3156a29418aef463c527308b014e72d86b5ca7c03f2f28973ca27a" +metafile = true + +[[files]] +file = "mods/create-deco.pw.toml" +hash = "67a405e6307f900d168deaa954a4309c3b44a6025e4efd7b8e774b6f9d3a69cd" +metafile = true + +[[files]] +file = "mods/create-design-n-decor.pw.toml" +hash = "e05bc0c3ee97da0dfcf9dabd3c3eaee0e90819091ead3f500ddc3b1caf77fe54" +metafile = true + +[[files]] +file = "mods/create-diesel-generators.pw.toml" +hash = "456f66abd180b3f5765473cda5e8acb1a6ea8b15b7ee34442be9a7af414cfc63" +metafile = true + +[[files]] +file = "mods/create-dragons-plus.pw.toml" +hash = "80547db2ebfc71d0d649534fe6fee7dabcf2a58770e8ff38218f6db874382204" +metafile = true + +[[files]] +file = "mods/create-dreams-and-desires.pw.toml" +hash = "c308b557b01b6e6cc25ee8d6a1a7c78bca2b71be3ae645e40d10cf25259fabcd" +metafile = true + +[[files]] +file = "mods/create-enchantment-industry.pw.toml" +hash = "0ae5b9a5883e79282ad756ea205f3fa1af11ced75bb4ba5b74e3d32e1ea684c9" +metafile = true + +[[files]] +file = "mods/create-goggles.pw.toml" +hash = "5de2bbab0826b5241e16746b0b739ca5169b0a9df38181d58e8519e6ea7f535f" +metafile = true + +[[files]] +file = "mods/create-jetpack.pw.toml" +hash = "157b009cd9b2a7f55f2b7d0abdc2f9f7d49eade208a786c71cc6d2f8430bba4a" +metafile = true + +[[files]] +file = "mods/create-mechanical-extruder.pw.toml" +hash = "6e064a3988937e06dfa307c8c395c73461819f9135197bc30563c6f13d1f1da4" +metafile = true + +[[files]] +file = "mods/create-new-age.pw.toml" +hash = "39499039e11a6e0f50542d80af94c172342fdb686f3a59d5ee4457d978a54e75" +metafile = true + +[[files]] +file = "mods/create-ore-excavation.pw.toml" +hash = "d95f9869c9566617f24e06921a0809d94b87d4d9137aeb5b3f0f387ccb085441" +metafile = true + +[[files]] +file = "mods/create.pw.toml" +hash = "dcaf5f2e28db0b9a127d0167456832341045ddc9aec058c3d9fcf53f618d2404" +metafile = true + +[[files]] +file = "mods/createaddition.pw.toml" +hash = "5931025bb6c50fa9064bd6c3c3ca51afb4119535bd77d8cc01b6509e53a9abc1" +metafile = true + +[[files]] +file = "mods/creativecore.pw.toml" +hash = "e85b645ee93f88915be1e4ab421939f287accf3597cef9e69cc603a9773a6855" +metafile = true + +[[files]] +file = "mods/cull-leaves.pw.toml" +hash = "a9b9623c952949837c1c6827b94b5969241c44825483a901cad12fcda12d40e9" +metafile = true + +[[files]] +file = "mods/curios.pw.toml" +hash = "36debf7653e95a855b4fedacc19027cf2e01960fc0b6d55ef2ffbffbcb455690" +metafile = true + +[[files]] +file = "mods/deeperdarker.pw.toml" +hash = "ebb3df18070c94169933965dc6ef11ea68adb2b362623417e6b129f0af9a1bbe" +metafile = true + +[[files]] +file = "mods/dimensionaldoors.pw.toml" +hash = "f97c3a8f1346a9d4ffc36e7223b03b4abf0f657319145b9517d944184ae4839b" +metafile = true + +[[files]] +file = "mods/dimensionfixer.pw.toml" +hash = "b557d04a294edc95dadefa0612b074174f0a46f2952cf3e52132bf90994d5420" +metafile = true + +[[files]] +file = "mods/dynamic-fps.pw.toml" +hash = "e2a3aca8101a179153b92e99000a10d06e4b5d285d358fbe457a53690d12dab5" +metafile = true + +[[files]] +file = "mods/entangled.pw.toml" +hash = "019d7c110e2fcf7c908d4f58c7abd29ac2adbd20631fa63d77cb35d8dd6c2a45" +metafile = true + +[[files]] +file = "mods/entityculling.pw.toml" +hash = "4fbe037c1ec3570be84f68e075c3e8293b15f64dda22bca4735924705fb38236" +metafile = true + +[[files]] +file = "mods/every-compat.pw.toml" +hash = "ad90b35d953694bdd8f8f1efa7b05415686155760ec3def1ff69e26eb21341aa" +metafile = true + +[[files]] +file = "mods/extended-ae.pw.toml" +hash = "03494a76b42b1b79e4d36a93317b8e884cafdb7e08f6103ce47ecd4e4df57645" +metafile = true + +[[files]] +file = "mods/extendedae-plus.pw.toml" +hash = "b1dca93f457735eb70a6ffc2ceb7370471c31b0843b7694e9f1c0ede82991344" +metafile = true + +[[files]] +file = "mods/fast-pipes.pw.toml" +hash = "cba3a159eefb0e3c370bf6c8e1e78c9e17b85cdf8d2e77296ec4e38bdfe02f89" +metafile = true + +[[files]] +file = "mods/ferrite-core.pw.toml" +hash = "73360e397134d238ee8fd21d33fd7f9275e9441f74f8f1b6ed92278877c0b9f1" +metafile = true + +[[files]] +file = "mods/flux-networks.pw.toml" +hash = "ad8209e472d463c9fcd19ca708fcd9c1a4a1bc69c9f0ca22efeacb414e9ab7a8" +metafile = true + +[[files]] +file = "mods/framedblocks.pw.toml" +hash = "20eee73cffcd55bfe041b16bbc3adc64c38859bf928486bf1db1368b6dba2058" +metafile = true + +[[files]] +file = "mods/ftb-chunks-forge.pw.toml" +hash = "0922cfee3b7351e62fb22ccc6e5a59f35fd99fe80737dc861ada3b5407ecdf87" +metafile = true + +[[files]] +file = "mods/ftb-library-forge.pw.toml" +hash = "276e79d919c3a698ab2881d784544b7e60bef69b43f44808353bb65d38633cb3" +metafile = true + +[[files]] +file = "mods/ftb-quests-forge.pw.toml" +hash = "086f7c19410ca8759aa383671a5229a47b9dae71a31bcc286e12cd1af1e5008d" +metafile = true + +[[files]] +file = "mods/ftb-teams-forge.pw.toml" +hash = "e717bb275a54a5caadaa7cf82bc34df3589f49402074adf93c31eaac43860313" +metafile = true + +[[files]] +file = "mods/functional-storage.pw.toml" +hash = "55c21e0159f5509b84d1e1fa42c2e478a3600c43007ede829cad5839aaa1b8da" +metafile = true + +[[files]] +file = "mods/fusion-connected-textures.pw.toml" +hash = "c8c107f100252cb671a295df94432980e9b5d8c496c0fd196fda428a48932ef2" +metafile = true + +[[files]] +file = "mods/fzzy-config.pw.toml" +hash = "f9c118b7a66238a7f9e052705e82402e57c7a5b753d62d679b94701ede479752" +metafile = true + +[[files]] +file = "mods/geckolib.pw.toml" +hash = "65ac18556f91ebb4f303a39731e93e94ffa94ddc690b0fbf35346bdcb3b05919" +metafile = true + +[[files]] +file = "mods/glodium.pw.toml" +hash = "8b30d03470cc27030f42b6719cdb8975f163ed336fc8592f0277a4291bb08aec" +metafile = true + +[[files]] +file = "mods/guideme.pw.toml" +hash = "f7448243d61c3e7c5941896816afb91dd069cef492a2d93ceba9f48e391cdf44" +metafile = true + +[[files]] +file = "mods/handcrafted.pw.toml" +hash = "d573695d37296209dc06495d359c4b283ffa6640bcfe8aa9c9b59eb420891788" +metafile = true + +[[files]] +file = "mods/hologenica.pw.toml" +hash = "9b04b12cb6bf0a1222a6a4649c45c3a725154a8cf8d4f0163514279cbf7aae15" +metafile = true + +[[files]] +file = "mods/immediatelyfast.pw.toml" +hash = "6828b28c310ae427da625473c55b79eb0c7ca42acc76591948644af0c04e3933" +metafile = true + +[[files]] +file = "mods/interiors.pw.toml" +hash = "e7e6b3effe3022cf1fdb900c857111fdcbfd6b385c2d5bd28c914efaed436ecb" +metafile = true + +[[files]] +file = "mods/inventory-profiles-next.pw.toml" +hash = "ab503e89461dff879ee793253e173625b6ab868f570a371323ef725e567cf5ea" +metafile = true + +[[files]] +file = "mods/ipsable.pw.toml" +hash = "64e2bb43d0c35ccd097dfdeb0cf6fa7b2aada4cb42868d794a060334549dd941" +metafile = true + +[[files]] +file = "mods/iris-flw-compat.pw.toml" +hash = "ed85b2ed42beb6523223eef6f0ae397ed29f8059b2bf5aa08d8598de04865614" +metafile = true + +[[files]] +file = "mods/iris.pw.toml" +hash = "db1c1e6382878b78e994dba1b9026935f8d1c5ca685c89d2437858e0a0dcab58" +metafile = true + +[[files]] +file = "mods/jade-addons-forge.pw.toml" +hash = "8cd8400cb4e2c5ba60c8a359a7b6ff501078d2056eab0aba7f6b0ac77b7a0694" +metafile = true + +[[files]] +file = "mods/jade.pw.toml" +hash = "4de3e4a1a49e332c1ad313283e0403c4273b628d634c17a9ff0c9da3d6b67f9a" +metafile = true + +[[files]] +file = "mods/jei.pw.toml" +hash = "1eb4094b466679316208fa85e5a855fc71945cfd639ff7f831586452b0cc3ad3" +metafile = true + +[[files]] +file = "mods/journeymap-integration.pw.toml" +hash = "f161cd39e3619182a8606ec812634d74713d32ca30c3585bdf7d40b7bb573919" +metafile = true + +[[files]] +file = "mods/journeymap.pw.toml" +hash = "17ed80a0fb8716e279cb04664a7038cfa659f878e51915b61fcd7dd35a7920be" +metafile = true + +[[files]] +file = "mods/just-enough-mekanism-multiblocks.pw.toml" +hash = "ee7848b3cc0e66c003d822d166e4ccc2eeda83d58d8ecfe7130e53ac39057ee5" +metafile = true + +[[files]] +file = "mods/kotlin-for-forge.pw.toml" +hash = "712a69b3569a8055979de6eea262068535fe182dffb3833e53e5833e9cbf9766" +metafile = true + +[[files]] +file = "mods/krypton-fnp.pw.toml" +hash = "5a96006110f4cdd98460a994373153909a5f0bf6cb68c5ac3a64adbda86eb302" +metafile = true + +[[files]] +file = "mods/kubejs-create.pw.toml" +hash = "531aa276b74eabc24566c57412527767238c74ee16b9c646dff511f56dba990c" +metafile = true + +[[files]] +file = "mods/kubejs-mekanism.pw.toml" +hash = "828f12a754a929bf2e955cf9d0acca4cbe305f172e94c556fe9b0704bcaff7e0" +metafile = true + +[[files]] +file = "mods/kubejs.pw.toml" +hash = "99bea71046529d65463fc12acb505ab363c91133ebbcc1d976e49a5d33150702" +metafile = true + +[[files]] +file = "mods/lambdynamiclights.pw.toml" +hash = "b85d562b35f68cdbb0f79bbdebc11cb938002c727d9f982ed5743c8488c74ac7" +metafile = true + +[[files]] +file = "mods/laserio.pw.toml" +hash = "0d7ce37fd00f170025118f0e3fbeef7f4e7147c332b1a5a4e924950eb5e36bc0" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/lootjs.pw.toml" +hash = "e42581d8eb65aa947dcbe6edb71b2082e84f31936b01f131758395d88dabc919" +metafile = true + +[[files]] +file = "mods/mech-trowel.pw.toml" +hash = "2c31453e756e64c0f9edcad1f716900ddd07b1ea4c8c955a2d001725c65366c1" +metafile = true + +[[files]] +file = "mods/mechanicals-lib.pw.toml" +hash = "c9e181185e3177d43fc9bd8d919288ac1bc0ce6b85e7049890f3eb231f5be10d" +metafile = true + +[[files]] +file = "mods/mekanism-additions.pw.toml" +hash = "086e5173f9d4dd76196a67e6604b5787b5f17312a6c3db49b1651fe2d972fe16" +metafile = true + +[[files]] +file = "mods/mekanism-covers.pw.toml" +hash = "8330f1d99526fb1952ca5bc3b524f65bf12295a7795803e4c7024d51dbe21df1" +metafile = true + +[[files]] +file = "mods/mekanism-generators.pw.toml" +hash = "0ec2ceb5602df266d2e07bdc0bc409cdd3d325a6b5136554787779cdf8057a27" +metafile = true + +[[files]] +file = "mods/mekanism-tools.pw.toml" +hash = "efafea92ef966ffe7c3c31209b643a9bbcccb3a8a5a02347b49ff50e015980fe" +metafile = true + +[[files]] +file = "mods/mekanism-unleashed.pw.toml" +hash = "3b581d5b1f00597a27c366f82cfe9a3f3e311c233e7e03a54403de752c4fb3c7" +metafile = true + +[[files]] +file = "mods/mekanism.pw.toml" +hash = "42061fd570a0b7a8063c0860056c6391593190caa0f12d3b49105e52a56817fe" +metafile = true + +[[files]] +file = "mods/mekanism_extra.pw.toml" +hash = "adff0484ffea891ba8da3b92d2ec5c0a4bd53f9f83a903e54299e9718b81cf64" +metafile = true + +[[files]] +file = "mods/mekanismmoremachine.pw.toml" +hash = "4f9a3e248ed5d5b622df3375d0336b76301f55aa2d8877352cf85a2b1b462a04" +metafile = true + +[[files]] +file = "mods/merequester.pw.toml" +hash = "8f638da7fdf14f7c9cdc0687f7cae53e020736ab8a3b92e9c3fe123a212e1550" +metafile = true + +[[files]] +file = "mods/midnightlib.pw.toml" +hash = "73aba17132f267dd76ff682aa84abfb7c09d25a93b9220ee261a1e25337bebc7" +metafile = true + +[[files]] +file = "mods/modernfix.pw.toml" +hash = "6d3ff3b7bbcc97fa06bdddcf2b3b7646168497ba6d7104bdea376f1bc65f9a93" +metafile = true + +[[files]] +file = "mods/modular-routers.pw.toml" +hash = "bbd0fee939a90c478aa404630629a49ab764ab7dd48ca6c9b928889769c32a89" +metafile = true + +[[files]] +file = "mods/moonlight.pw.toml" +hash = "6e9d9c2c85d3f2c41f93f77d1f7bb9efe518368348ce8bcd82e7a8128a281c72" +metafile = true + +[[files]] +file = "mods/mouse-tweaks.pw.toml" +hash = "2bdee19bd39b4bd411d7c858a7978ca9d2bdda41c1cf15920ea6be0014663f79" +metafile = true + +[[files]] +file = "mods/mutant-monsters.pw.toml" +hash = "56aaa078a6f7ee61eef9c6f3685ff44618bb2565d7d0ccd39c723a2659295e58" +metafile = true + +[[files]] +file = "mods/nyfs-spiders.pw.toml" +hash = "10e2d5565e299d0fafa79e7c949961bf692d9a15b5de146b2905ea7df0987d29" +metafile = true + +[[files]] +file = "mods/per-spatium.pw.toml" +hash = "557c7470f6fa151d176e684154b22ea9a53b80f57070a8ae6eeccf771f336cab" +metafile = true + +[[files]] +file = "mods/playeranimator.pw.toml" +hash = "93284ca7f2f23f0bb76d42b797cabf2aea1914ee9825bec82bf6ffe4c60dda0d" +metafile = true + +[[files]] +file = "mods/potentials.pw.toml" +hash = "92446d159e74cb755c54cfffb6a3e5a0976ec4d203da360a327c6010daef3b51" +metafile = true + +[[files]] +file = "mods/puzzles-lib.pw.toml" +hash = "6a07261762a29c6108ea6030ec71ff6801e03127a0004cf105490004c77eacf5" +metafile = true + +[[files]] +file = "mods/rechiseled-create.pw.toml" +hash = "f7758221468760a7d22b31f97e822f5a66fa1fa21d2c8b4b3bb21ca01faff3cd" +metafile = true + +[[files]] +file = "mods/rechiseled.pw.toml" +hash = "55fcb8b7508262d7e384f81dc86c0cf0c28ec98194d2dd842208b96291931c0c" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/rhino.pw.toml" +hash = "e55ca32b338a0e0540f4fec5170675d860566255ae0f45692a00cb4ebf2eb535" +metafile = true + +[[files]] +file = "mods/rpl.pw.toml" +hash = "7815e5a589de0c02a62ae83590e1f75f4d0c269e48f2435ce2ac448976ddf49f" +metafile = true + +[[files]] +file = "mods/sable.pw.toml" +hash = "a1fa121ed5d0207e4cdd3f545d043f68f9a4bb38dcb21278b968fad5e4cefe4a" +metafile = true + +[[files]] +file = "mods/simply-swords.pw.toml" +hash = "1d37ac39109aa15d03a3a7ddf6402d63f72277acafca53f61830046acfe6edb0" +metafile = true + +[[files]] +file = "mods/simply-tooltips.pw.toml" +hash = "320d755339086e8fb35709328ad7b094ecbf7c500d61c08c535ec7d277fe1053" +metafile = true + +[[files]] +file = "mods/slice-and-dice.pw.toml" +hash = "83a7b840686a417dfe1161ee5cd918989dd2d901c9013bf85e93a30f597260f7" +metafile = true + +[[files]] +file = "mods/sodium.pw.toml" +hash = "060d58f6e778824f4c1d41d4c90baf9d287b88fcdad80618e4415d7f1cec1696" +metafile = true + +[[files]] +file = "mods/sophisticated-backpacks.pw.toml" +hash = "41343a364eeff7106d903f2bb658b91ae8b0ce216ddba103e1be5edb1a27649f" +metafile = true + +[[files]] +file = "mods/sophisticated-core.pw.toml" +hash = "9ee0490b06b36ba9bff93af9f75493f3dd4e71a1ab8ce4ee778ee5fdb11eb49c" +metafile = true + +[[files]] +file = "mods/sophisticated-storage.pw.toml" +hash = "3868fd30c966597162d2d107719d2c6a7a1f592c98634d4c7c6b463dedbb85fe" +metafile = true + +[[files]] +file = "mods/sound-physics-remastered.pw.toml" +hash = "b9d4d42709629f2d52cb9d33bedf298bbea635b53f69946f9ec2735c47dfbd83" +metafile = true + +[[files]] +file = "mods/stellar-view-mixin-renderer.pw.toml" +hash = "5f34670b690b3a34f3d001fbbf2fc61ae401b920a468db2dd7cc968185202402" +metafile = true + +[[files]] +file = "mods/stellaris-stellarview-compatibility.pw.toml" +hash = "276820a2b736c2588981c7f6295c2a698e22f89267a72efbf2879f6691c2b857" +metafile = true + +[[files]] +file = "mods/stellaris.pw.toml" +hash = "06094f9d641eca3fad232ff9e2c615e323a9a689e15b2c558ebe33a27c59f4c8" +metafile = true + +[[files]] +file = "mods/stellarview.pw.toml" +hash = "3792d649d29e5c684218283dcb787cca922ac74524730ae04118768aaed5cccf" +metafile = true + +[[files]] +file = "mods/supermartijn642s-config-lib.pw.toml" +hash = "2e42245826ce70d4ad673addb0e5244da388841f1484f03ee5a9426ee33b2229" +metafile = true + +[[files]] +file = "mods/supermartijn642s-core-lib.pw.toml" +hash = "d50dfa866f719fe606d34bb81b0e466c1e6017878fa6b58b405e419ceaf9ee0d" +metafile = true + +[[files]] +file = "mods/supplementaries-squared.pw.toml" +hash = "46280c9487633e3bd1dd7bb24ccc4076058b2602d7dc2906f96509527346cf24" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/thevoiddimension.pw.toml" +hash = "389f580afd41d46e6ebf58e85605b39c2893e7e1768be089b16285272a85c71d" +metafile = true + +[[files]] +file = "mods/titanium.pw.toml" +hash = "7830a79862c572434679f36377d3bd985a11a6ccb508d8f1911138138e647a4c" +metafile = true + +[[files]] +file = "mods/visuality-forge.pw.toml" +hash = "3d907a6ec6e27ba52d9f8f062216b56aef39e586a4e673cfbb70dbe12671ec61" +metafile = true + +[[files]] +file = "mods/waystones.pw.toml" +hash = "18755836fe5817992e8f52bdb1d42857e85a41a7a19287b04d63a072006931b5" +metafile = true + +[[files]] +file = "mods/worldportal.pw.toml" +hash = "6c68bccb9ef922f1bd2f012b41fb278eeb4f37b0120407556865bedf7cd43fdb" +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 = "7d14a4fd606d77b8e87930ee7c8736cfa4443710c015e7929dcfb03653193473" diff --git a/client_pack/kubejs/assets/scicraft/lang/en_us.json b/client_pack/kubejs/assets/scicraft/lang/en_us.json new file mode 100644 index 0000000..76280ee --- /dev/null +++ b/client_pack/kubejs/assets/scicraft/lang/en_us.json @@ -0,0 +1,65 @@ +{ + "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.", + "tooltip.scicraft.photon_core.2": "A sliver of the fifth force the Flight harnessed.", + "tooltip.scicraft.photon_core.3": "Hold it and feel the seals.", + "tooltip.scicraft.photon_fragment.1": "A splinter of light stolen from the collapse.", + "tooltip.scicraft.photon_fragment.2": "Recovered from the Darker's remains.", + "tooltip.scicraft.photon_fragment.3": "Three of these may be pressed into a Core.", + "tooltip.scicraft.void_stabilizer.1": "Per Spatium — the renegades' seal for the wound in the world.", + "tooltip.scicraft.void_stabilizer.2": "Right-click a powered Quantum Lattice to re-seal a Door.", + "tooltip.scicraft.void_stabilizer.3": "It will never break. The work will.", + "tooltip.scicraft.quantum_lattice.1": "The Protocol's emitter. It must stay powered.", + "tooltip.scicraft.quantum_lattice.2": "Feed it steel, circuits, and Photon Cores.", + "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.", + "jei.scicraft.photon_core.1": "Compress three Photon Fragments in a Create Press,", + "jei.scicraft.photon_core.2": "or smelt an Ender Pearl in the heart of the wound.", + "jei.scicraft.void_stabilizer.1": "The seal of the Flight. Crafted from Photon Cores and an Ender Eye.", + "jei.scicraft.void_stabilizer.2": "Use it on a powered Quantum Lattice to re-seal a Door and lower the Corruption Tide.", + "jei.scicraft.quantum_lattice.1": "The emitter of the Dark Photon Protocol.", + "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.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", + "advancements.scicraft.protocol.first_signal.description": "Recover your first Photon Fragment from a creature of the Dark.", + "advancements.scicraft.protocol.the_core.title": "The Core", + "advancements.scicraft.protocol.the_core.description": "Press three Fragments into a Photon Core.", + "advancements.scicraft.protocol.the_seal.title": "The Seal", + "advancements.scicraft.protocol.the_seal.description": "Craft the Void Stabilizer — the renegades' tool for closing wounds.", + "advancements.scicraft.protocol.the_lattice.title": "The Lattice", + "advancements.scicraft.protocol.the_lattice.description": "Assemble the Quantum Lattice — the Protocol's emitter — and keep it powered.", + "advancements.scicraft.protocol.the_legacy.title": "The Legacy", + "advancements.scicraft.protocol.the_legacy.description": "Craft Renegade Glass — rebuild what the Flight left behind.", + "advancements.scicraft.protocol.through_the_doors.title": "Through the Doors", + "advancements.scicraft.protocol.through_the_doors.description": "Enter a Dimensional Door. The scar-tissue of the Flight's prison.", + "advancements.scicraft.protocol.the_wound.title": "The Wound", + "advancements.scicraft.protocol.the_wound.description": "Descend into the Void Dimension — the raw leak of the collapsing empire.", + "advancements.scicraft.protocol.the_answer.title": "The Answer", + "advancements.scicraft.protocol.the_answer.description": "Reach the Othersides of the Deeper and Darker — what answers from inside the prison.", + "advancements.scicraft.protocol.per_spatium.title": "Per Spatium", + "advancements.scicraft.protocol.per_spatium.description": "Launch a rocket. The Flight's data was scattered across the stars.", + "scicraft.phrases.signal": "The last signal of the Second Renegade Flight hums in your blood.", + "scicraft.phrases.lattice_hum": "The Lattice hums. Reality holds — for now.", + "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.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/block/quantum_lattice.png b/client_pack/kubejs/assets/scicraft/textures/block/quantum_lattice.png new file mode 100644 index 0000000..c04e00f Binary files /dev/null and b/client_pack/kubejs/assets/scicraft/textures/block/quantum_lattice.png differ diff --git a/client_pack/kubejs/assets/scicraft/textures/block/renegade_glass.png b/client_pack/kubejs/assets/scicraft/textures/block/renegade_glass.png new file mode 100644 index 0000000..8e6e7e2 Binary files /dev/null and b/client_pack/kubejs/assets/scicraft/textures/block/renegade_glass.png differ diff --git a/client_pack/kubejs/assets/scicraft/textures/item/photon_core.png b/client_pack/kubejs/assets/scicraft/textures/item/photon_core.png new file mode 100644 index 0000000..db65cfe Binary files /dev/null and b/client_pack/kubejs/assets/scicraft/textures/item/photon_core.png differ diff --git a/client_pack/kubejs/assets/scicraft/textures/item/photon_fragment.png b/client_pack/kubejs/assets/scicraft/textures/item/photon_fragment.png new file mode 100644 index 0000000..d07c913 Binary files /dev/null and b/client_pack/kubejs/assets/scicraft/textures/item/photon_fragment.png differ 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/assets/scicraft/textures/item/void_stabilizer.png b/client_pack/kubejs/assets/scicraft/textures/item/void_stabilizer.png new file mode 100644 index 0000000..05cd48b Binary files /dev/null and b/client_pack/kubejs/assets/scicraft/textures/item/void_stabilizer.png differ diff --git a/client_pack/kubejs/client_scripts/01_tooltips.js b/client_pack/kubejs/client_scripts/01_tooltips.js new file mode 100644 index 0000000..9c2c744 --- /dev/null +++ b/client_pack/kubejs/client_scripts/01_tooltips.js @@ -0,0 +1,35 @@ +// SCICRAFT — The Dark Photon Protocol +// Client tooltips: the story rides on the items you carry. +// Text lives in STORY/02-items.md (tooltip.scicraft.* keys) — never hardcode. + +ItemEvents.modifyTooltips(event => { + event.add('scicraft:photon_core', [ + '', + Text.translate('tooltip.scicraft.photon_core.1'), + Text.translate('tooltip.scicraft.photon_core.2'), + Text.translate('tooltip.scicraft.photon_core.3') + ]) + event.add('scicraft:photon_fragment', [ + '', + Text.translate('tooltip.scicraft.photon_fragment.1'), + Text.translate('tooltip.scicraft.photon_fragment.2'), + Text.translate('tooltip.scicraft.photon_fragment.3') + ]) + event.add('scicraft:void_stabilizer', [ + '', + Text.translate('tooltip.scicraft.void_stabilizer.1'), + Text.translate('tooltip.scicraft.void_stabilizer.2'), + Text.translate('tooltip.scicraft.void_stabilizer.3') + ]) + event.add('scicraft:quantum_lattice', [ + '', + Text.translate('tooltip.scicraft.quantum_lattice.1'), + Text.translate('tooltip.scicraft.quantum_lattice.2'), + Text.translate('tooltip.scicraft.quantum_lattice.3') + ]) + event.add('scicraft:renegade_glass', [ + '', + Text.translate('tooltip.scicraft.renegade_glass.1'), + Text.translate('tooltip.scicraft.renegade_glass.2') + ]) +}) \ No newline at end of file diff --git a/client_pack/kubejs/client_scripts/02_jei_info.js b/client_pack/kubejs/client_scripts/02_jei_info.js new file mode 100644 index 0000000..5c3a49c --- /dev/null +++ b/client_pack/kubejs/client_scripts/02_jei_info.js @@ -0,0 +1,28 @@ +// SCICRAFT — The Dark Photon Protocol +// JEI/Recipe Viewer info pages: where the story is and where to get the pieces. +// Text lives in STORY/02-items.md (jei.scicraft.* keys) — never hardcode. + +RecipeViewerEvents.addInformation('item', event => { + event.add('scicraft:photon_fragment', [ + Text.translate('jei.scicraft.photon_fragment.1'), + Text.translate('jei.scicraft.photon_fragment.2'), + Text.translate('jei.scicraft.photon_fragment.3') + ]) + event.add('scicraft:photon_core', [ + Text.translate('jei.scicraft.photon_core.1'), + Text.translate('jei.scicraft.photon_core.2') + ]) + event.add('scicraft:void_stabilizer', [ + Text.translate('jei.scicraft.void_stabilizer.1'), + Text.translate('jei.scicraft.void_stabilizer.2') + ]) + event.add('scicraft:quantum_lattice', [ + Text.translate('jei.scicraft.quantum_lattice.1'), + Text.translate('jei.scicraft.quantum_lattice.2'), + Text.translate('jei.scicraft.quantum_lattice.3') + ]) + event.add('scicraft:renegade_glass', [ + Text.translate('jei.scicraft.renegade_glass.1'), + Text.translate('jei.scicraft.renegade_glass.2') + ]) +}) \ No newline at end of file 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..4ff0f6e --- /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.dataReceived('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/data/scicraft/advancements/protocol/first_signal.json b/client_pack/kubejs/data/scicraft/advancements/protocol/first_signal.json new file mode 100644 index 0000000..72bda3a --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/first_signal.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/root", + "display": { + "icon": { + "item": "scicraft:photon_fragment" + }, + "title": { + "translate": "advancements.scicraft.protocol.first_signal.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.first_signal.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_fragment": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:photon_fragment" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_fragment" + ] + ], + "rewards": { + "experience": 100 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/per_spatium.json b/client_pack/kubejs/data/scicraft/advancements/protocol/per_spatium.json new file mode 100644 index 0000000..6d03d04 --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/per_spatium.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "stellaris:rocket" + }, + "title": { + "translate": "advancements.scicraft.protocol.per_spatium.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.per_spatium.description" + }, + "frame": "goal", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "launch_rocket": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "stellaris:moon" + } + } + }, + "requirements": [ + [ + "launch_rocket" + ] + ], + "rewards": { + "experience": 600 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/root.json b/client_pack/kubejs/data/scicraft/advancements/protocol/root.json new file mode 100644 index 0000000..49bb2c3 --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/root.json @@ -0,0 +1,34 @@ +{ + "display": { + "icon": { + "item": "scicraft:photon_core" + }, + "title": { + "translate": "advancements.scicraft.protocol.root.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.root.description" + }, + "background": "minecraft:textures/block/blackstone.png", + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "first_signal": { + "trigger": "minecraft:tick", + "conditions": {} + } + }, + "requirements": [ + [ + "first_signal" + ] + ], + "rewards": { + "loot": [ + "scicraft:protocol/root_reward" + ] + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/the_answer.json b/client_pack/kubejs/data/scicraft/advancements/protocol/the_answer.json new file mode 100644 index 0000000..e34f257 --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/the_answer.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "minecraft:sculk_sensor" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_answer.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_answer.description" + }, + "frame": "challenge", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "enter_darker": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "deeperdarker:otherside" + } + } + }, + "requirements": [ + [ + "enter_darker" + ] + ], + "rewards": { + "experience": 750 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/the_core.json b/client_pack/kubejs/data/scicraft/advancements/protocol/the_core.json new file mode 100644 index 0000000..906711d --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/the_core.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/first_signal", + "display": { + "icon": { + "item": "scicraft:photon_core" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_core.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_core.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_core": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:photon_core" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_core" + ] + ], + "rewards": { + "experience": 250 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/the_lattice.json b/client_pack/kubejs/data/scicraft/advancements/protocol/the_lattice.json new file mode 100644 index 0000000..0ece078 --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/the_lattice.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/the_seal", + "display": { + "icon": { + "item": "scicraft:quantum_lattice" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_lattice.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_lattice.description" + }, + "frame": "challenge", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_lattice": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:quantum_lattice" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_lattice" + ] + ], + "rewards": { + "experience": 1000 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/the_legacy.json b/client_pack/kubejs/data/scicraft/advancements/protocol/the_legacy.json new file mode 100644 index 0000000..f6fb54e --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/the_legacy.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "scicraft:renegade_glass" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_legacy.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_legacy.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_glass": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:renegade_glass" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_glass" + ] + ], + "rewards": { + "experience": 300 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/the_seal.json b/client_pack/kubejs/data/scicraft/advancements/protocol/the_seal.json new file mode 100644 index 0000000..5fd892e --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/the_seal.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/the_core", + "display": { + "icon": { + "item": "scicraft:void_stabilizer" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_seal.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_seal.description" + }, + "frame": "goal", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_stabilizer": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:void_stabilizer" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_stabilizer" + ] + ], + "rewards": { + "experience": 500 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/the_wound.json b/client_pack/kubejs/data/scicraft/advancements/protocol/the_wound.json new file mode 100644 index 0000000..5bc94be --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/the_wound.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "minecraft:respawn_anchor" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_wound.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_wound.description" + }, + "frame": "challenge", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "enter_void": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "thevoiddimension:overworld" + } + } + }, + "requirements": [ + [ + "enter_void" + ] + ], + "rewards": { + "experience": 750 + } +} diff --git a/client_pack/kubejs/data/scicraft/advancements/protocol/through_the_doors.json b/client_pack/kubejs/data/scicraft/advancements/protocol/through_the_doors.json new file mode 100644 index 0000000..9e494ea --- /dev/null +++ b/client_pack/kubejs/data/scicraft/advancements/protocol/through_the_doors.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_seal", + "display": { + "icon": { + "item": "minecraft:ender_eye" + }, + "title": { + "translate": "advancements.scicraft.protocol.through_the_doors.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.through_the_doors.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": true + }, + "criteria": { + "enter_doors": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "dimensionaldoors:limbo" + } + } + }, + "requirements": [ + [ + "enter_doors" + ] + ], + "rewards": { + "experience": 400 + } +} diff --git a/client_pack/kubejs/data/scicraft/loot_tables/protocol/root_reward.json b/client_pack/kubejs/data/scicraft/loot_tables/protocol/root_reward.json new file mode 100644 index 0000000..0059116 --- /dev/null +++ b/client_pack/kubejs/data/scicraft/loot_tables/protocol/root_reward.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:advancement_reward", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "scicraft:photon_fragment", + "functions": [ + { "function": "minecraft:set_count", "count": 2 } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/client_pack/kubejs/server_scripts/01_corruption_tide.js b/client_pack/kubejs/server_scripts/01_corruption_tide.js new file mode 100644 index 0000000..a6607dc --- /dev/null +++ b/client_pack/kubejs/server_scripts/01_corruption_tide.js @@ -0,0 +1,76 @@ +// SCICRAFT — The Dark Photon Protocol +// GLOBAL CORRUPTION TIDE. Shared by all players via server persistent data. +// Rises while the Doors stay unsealed. Re-seal them at the Lattice to push it back. + +const TIDE_SC = { + items: { quantum_lattice: 'scicraft:quantum_lattice' }, + tide: { + key: 'scicraft_corruption', + min: 0, + max: 100, + rise_per_tick: 1200, + seal_reduction: 15, + darkness_threshold: 30, + darker_threshold: 60 + }, + dimensions: { + void_dim: 'thevoiddimension:overworld', + darker_dim: 'deeperdarker:otherside' + } +} +const T = TIDE_SC.tide + +function getTide(server) { + const data = server.persistentData + if (!data.contains(T.key)) data.putInt(T.key, 0) + return data.getInt(T.key) +} + +function setTide(server, value) { + server.persistentData.putInt(T.key, Math.max(T.min, Math.min(T.max, value))) +} + +// The tide climbs while Doors go unsealed — global, not per-player. +ServerEvents.tick(event => { + if (event.server.ticks % T.rise_per_tick !== 0) return + setTide(event.server, getTide(event.server) + 1) +}) + +// Every sealed Lattice pushes the tide back, once per stabilizer use. +BlockEvents.rightClicked(event => { + if (event.block.id !== TIDE_SC.items.quantum_lattice) return + const held = event.player.mainHandItem + if (!held.hasTag('scicraft:stabilizer')) return + if (event.player.crouching) return + + const before = getTide(event.server) + setTide(event.server, before - T.seal_reduction) + const after = getTide(event.server) + event.player.server.runCommandSilent(`playsound minecraft:block.beacon.activate block @a ~ ~ ~ 1 0.7`) + event.player.server.tell([Text.translate('scicraft.phrases.lattice_hum'), ` §7(tide ${before} → ${after})`]) + event.cancel() +}) + +// Ambient dread: darkness the closer the world is to the Darker. +PlayerEvents.tick(event => { + if (event.player.server.ticks % 40 !== 0) return + const tide = getTide(event.player.server) + const dim = String(event.player.level.dimension) + + if (tide >= T.darkness_threshold) { + event.player.potionEffects.add('minecraft:darkness', 80, 0, true, false) + } + + // Inside the wound itself, the dark is absolute. + if (dim === TIDE_SC.dimensions.void_dim || dim === TIDE_SC.dimensions.darker_dim) { + event.player.potionEffects.add('minecraft:darkness', 120, 1, true, false) + } +}) + +// Broadcast phase changes once per threshold crossing. +ServerEvents.tick(event => { + if (event.server.ticks % 200 !== 0) return + const tide = getTide(event.server) + const msg = tide >= T.darker_threshold ? 'tide_high' : tide >= T.darkness_threshold ? 'tide_mid' : 'tide_low' + event.server.tell(Text.translate('scicraft.phrases.' + msg)) +}) \ No newline at end of file diff --git a/client_pack/kubejs/server_scripts/02_events.js b/client_pack/kubejs/server_scripts/02_events.js new file mode 100644 index 0000000..df658c2 --- /dev/null +++ b/client_pack/kubejs/server_scripts/02_events.js @@ -0,0 +1,48 @@ +// SCICRAFT — The Dark Photon Protocol +// Player-side lore events: the Resonance, void exposure, and held-item powers. + +const EVENTS_SC = { + items: { + photon_core: 'scicraft:photon_core', + void_stabilizer: 'scicraft:void_stabilizer' + }, + dimensions: { + void_dim: 'thevoiddimension:overworld', + darker_dim: 'deeperdarker:otherside' + } +} + +// Proto-Time-Lord: holding a Photon Core or Stabilizer lets you feel the seals. +PlayerEvents.tick(event => { + if (event.player.server.ticks % 40 !== 0) return + const held = event.player.mainHandItem + + if (held.id === EVENTS_SC.items.photon_core) { + event.player.potionEffects.add('minecraft:night_vision', 140, 0, true, false) + } + if (held.id === EVENTS_SC.items.void_stabilizer) { + event.player.potionEffects.add('minecraft:speed', 120, 0, true, false) + event.player.potionEffects.add('minecraft:regeneration', 120, 0, true, false) + } +}) + +// The wound is physically hostile. Being inside it costs you. +PlayerEvents.tick(event => { + const dim = String(event.player.level.dimension) + if (dim === EVENTS_SC.dimensions.void_dim) { + if (event.player.server.ticks % 100 === 0) { + event.player.hurt('minecraft:generic', 1.0) + } + } else if (dim === EVENTS_SC.dimensions.darker_dim) { + if (event.player.server.ticks % 200 === 0) { + event.player.potionEffects.add('minecraft:wither', 80, 0, true, false) + } + } +}) + +// Arrival in the wound triggers the first vision. +PlayerEvents.loggedIn(event => { + event.player.tell(Text.translate('scicraft.phrases.signal')) +}) +// Note: Warden fragment drops are handled in 04_loot.js (LootJS) — do not +// duplicate them here or players get double drops. \ No newline at end of file diff --git a/client_pack/kubejs/server_scripts/03_recipes_tags.js b/client_pack/kubejs/server_scripts/03_recipes_tags.js new file mode 100644 index 0000000..ac60846 --- /dev/null +++ b/client_pack/kubejs/server_scripts/03_recipes_tags.js @@ -0,0 +1,69 @@ +// SCICRAFT — The Dark Photon Protocol +// The Protocol's crafting chain. Soft-gates the story items behind mod content. + +const RECIPES_SC = { + items: { + photon_fragment: 'scicraft:photon_fragment', + photon_core: 'scicraft:photon_core', + void_stabilizer: 'scicraft:void_stabilizer', + quantum_lattice: 'scicraft:quantum_lattice', + renegade_glass: 'scicraft:renegade_glass' + } +} + +ServerEvents.recipes(event => { + // --- Photon Fragment: harvested from the Darker's own remains. + // (LootJS also adds these; this gives a deterministic in-world path.) + event.shapeless(RECIPES_SC.items.photon_fragment, ['minecraft:echo_shard', 'minecraft:glowstone_dust']) + .id('scicraft:photon_fragment_from_echo') + + // --- Photon Core: compress fragments in a Mekanism-grade press. + event.recipes.create.pressing(RECIPES_SC.items.photon_core, '3x ' + RECIPES_SC.items.photon_fragment) + .id('scicraft:photon_core_pressing') + event.smelting(RECIPES_SC.items.photon_core, 'minecraft:ender_pearl', 0.5) + .id('scicraft:photon_core_smelting') + + // --- Void Stabilizer: the tool of the Flight — needs a door's key, not ore. + event.shaped(RECIPES_SC.items.void_stabilizer, [ + ' P ', + 'PEP', + ' P ' + ], { + P: RECIPES_SC.items.photon_core, + E: 'minecraft:ender_eye' + }).id('scicraft:void_stabilizer') + + // --- Quantum Lattice: the emitter. Dense, expensive, ongoing. + event.shaped(RECIPES_SC.items.quantum_lattice, [ + 'SCS', + 'CPC', + 'SCS' + ], { + S: 'c:ingots/steel', + C: 'c:circuits', + P: RECIPES_SC.items.photon_core + }).id('scicraft:quantum_lattice') + + // --- Renegade Glass: the Flight's TARDIS-blue pane. Purely decorative. + event.shaped('8x ' + RECIPES_SC.items.renegade_glass, [ + 'GGG', + 'GPG', + 'GGG' + ], { + G: 'c:glass_blocks', + P: RECIPES_SC.items.photon_fragment + }).id('scicraft:renegade_glass') +}) + +// Tag unification so Mekanism / Create / AE2 accept the Protocol metals. +ServerEvents.tags('item', event => { + const steel = ['mekanism:ingot_steel', 'create:experience_nugget'] + event.add('c:ingots/steel', steel) + event.add('c:ingots/brass', ['create:brass_ingot']) + event.add('c:ingots/tin', ['mekanism:ingot_tin']) + event.add('c:ingots/lead', ['mekanism:ingot_lead']) + event.add('c:ingots/osmium', ['mekanism:ingot_osmium']) + event.add('c:ingots/uranium', ['mekanism:ingot_uranium']) + event.add('c:gems/fluorite', ['mekanism:fluorite_gem']) + event.add('c:dusts/redstone', ['minecraft:redstone']) +}) \ No newline at end of file diff --git a/client_pack/kubejs/server_scripts/04_loot.js b/client_pack/kubejs/server_scripts/04_loot.js new file mode 100644 index 0000000..c8ac9f4 --- /dev/null +++ b/client_pack/kubejs/server_scripts/04_loot.js @@ -0,0 +1,25 @@ +// SCICRAFT — The Dark Photon Protocol +// LootJS: the Darker and the sealed horrors drop Photon Fragments. +// LootJS ships with the pack; if you disable it, remove this file. + +LootJS.modifiers(event => { + // The Warden — a creature of the Deep Dark, now answering the signal. + event.addEntityModifier('minecraft:warden') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([1, 3])) + + // Mutant Monsters — the corrupted remnants of the Flight's containment. + event.addEntityModifier('mutantmonsters:mutant_zombie') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([1, 2])) + event.addEntityModifier('mutantmonsters:mutant_skeleton') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([1, 2])) + event.addEntityModifier('mutantmonsters:mutant_enderman') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([2, 4])) + + // Born in Chaos — the Darker's forward scouts. + event.addEntityModifier('born_in_chaos_v1:dark_vortex') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount(1)) + event.addEntityModifier('born_in_chaos_v1:dread_hound') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount(1)) + event.addEntityModifier('born_in_chaos_v1:nightmare_stalker') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([2, 3])) +}) \ No newline at end of file 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 new file mode 100644 index 0000000..40fad70 --- /dev/null +++ b/client_pack/kubejs/startup_scripts/registry_blocks.js @@ -0,0 +1,60 @@ +// SCICRAFT — The Dark Photon Protocol +// Custom items & blocks for the Protocol. +// Names + tooltips come from the lang file (STORY/*.md → en_us.json). +// Startup scripts: requires a full restart to apply. + +StartupEvents.registry('item', event => { + // Photon Core — the raw fifth-force crystal. Lattice fuel. + event.create('scicraft:photon_core') + .texture('scicraft:item/photon_core') + .maxStackSize(64) + .tag('scicraft:photon') + .tag('c:gems') + .glow(true) + + // Photon Fragment — shattered cores recovered from the Darker. + event.create('scicraft:photon_fragment') + .texture('scicraft:item/photon_fragment') + .maxStackSize(64) + .tag('scicraft:photon') + .tag('c:gems') + .glow(true) + + // Void Stabilizer — the tool that re-seals Doors at the Lattice. + event.create('scicraft:void_stabilizer') + .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 => { + // Quantum Lattice — the Protocol's emitter. Must stay powered. + event.create('scicraft:quantum_lattice') + .texture('scicraft:block/quantum_lattice') + .hardness(5.0) + .resistance(1200.0) + .soundType('metal') + .mapColor('color_gray') + .lightLevel(0.9) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:needs_diamond_tool') + + // Renegade Glass — the TARDIS-blue glass of the Flight. Purely decorative. + event.create('scicraft:renegade_glass') + .texture('scicraft:block/renegade_glass') + .hardness(0.3) + .resistance(0.3) + .soundType('glass') + .renderType('translucent') + .opaque(false) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('c:glass_blocks') + .tagBlock('c:glass') + .tagBlock('minecraft:impermeable') +}) \ No newline at end of file diff --git a/client_pack/mods/3dskinlayers.pw.toml b/client_pack/mods/3dskinlayers.pw.toml new file mode 100644 index 0000000..3790744 --- /dev/null +++ b/client_pack/mods/3dskinlayers.pw.toml @@ -0,0 +1,13 @@ +name = "3D Skin Layers" +filename = "skinlayers3d-neoforge-1.11.2-mc1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/zV5r3pPn/versions/xPYbAPfz/skinlayers3d-neoforge-1.11.2-mc1.21.1.jar" +hash-format = "sha512" +hash = "c017d098874697ba93a03c06cfb4fe8a8bbc619448bff55c3c821089b164677fae2c8c2059e99fc9933af6ff519759c399deae763b1ac9e34593cd6e4f427f3a" + +[update] +[update.modrinth] +mod-id = "zV5r3pPn" +version = "xPYbAPfz" diff --git a/client_pack/mods/ae2-import-export-card.pw.toml b/client_pack/mods/ae2-import-export-card.pw.toml new file mode 100644 index 0000000..81e8c60 --- /dev/null +++ b/client_pack/mods/ae2-import-export-card.pw.toml @@ -0,0 +1,13 @@ +name = "AE2 Import Export Card" +filename = "ae2importexportcard-1.21.1-1.5.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/qelfSMnn/versions/UtJepGDL/ae2importexportcard-1.21.1-1.5.0.jar" +hash-format = "sha512" +hash = "cc975c67ba0b064534941ac50019d06cb139cae35dab080af5db8310a073ad1a924b31e03922dbf26ee4dd0fcb8dd536280e2eaebd72c0760032660b709c03c7" + +[update] +[update.modrinth] +mod-id = "qelfSMnn" +version = "UtJepGDL" diff --git a/client_pack/mods/ae2-qol-recipes.pw.toml b/client_pack/mods/ae2-qol-recipes.pw.toml new file mode 100644 index 0000000..c954690 --- /dev/null +++ b/client_pack/mods/ae2-qol-recipes.pw.toml @@ -0,0 +1,13 @@ +name = "AE2 QoL Recipes" +filename = "ae2qolrecipes-neoforge-1.21.x-1.3.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/K7VSm2YY/versions/gyP6Pp5h/ae2qolrecipes-neoforge-1.21.x-1.3.0.jar" +hash-format = "sha512" +hash = "fea6cf8dcfb7b0a0bd7131885b304caec475a56564c60580cd2b2352399df1fb22b5f1b3e979f8a0d2e7175c25f1581b13794e89f23e3bb4491b83f2604cbdc0" + +[update] +[update.modrinth] +mod-id = "K7VSm2YY" +version = "gyP6Pp5h" diff --git a/client_pack/mods/ae2.pw.toml b/client_pack/mods/ae2.pw.toml new file mode 100644 index 0000000..ecff36e --- /dev/null +++ b/client_pack/mods/ae2.pw.toml @@ -0,0 +1,13 @@ +name = "Applied Energistics 2" +filename = "appliedenergistics2-19.2.17.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/XxWD5pD3/versions/kfyIqgJ6/appliedenergistics2-19.2.17.jar" +hash-format = "sha512" +hash = "55edfd948366aff620881e0625e48c333a2cb847e73249bc0b588efbc4b86709992a8ffbca97ea387e270df4186fe7f74ee2f27b739f1c952e932becfb9dea33" + +[update] +[update.modrinth] +mod-id = "XxWD5pD3" +version = "kfyIqgJ6" diff --git a/client_pack/mods/ambientsounds.pw.toml b/client_pack/mods/ambientsounds.pw.toml new file mode 100644 index 0000000..22ea254 --- /dev/null +++ b/client_pack/mods/ambientsounds.pw.toml @@ -0,0 +1,13 @@ +name = "AmbientSounds 6" +filename = "AmbientSounds_NEOFORGE_v6.3.8_mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "c79ab328b2c46068effebdcb3f26e98dc4404cb0" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8043019 +project-id = 254284 diff --git a/client_pack/mods/appleskin.pw.toml b/client_pack/mods/appleskin.pw.toml new file mode 100644 index 0000000..88e04c9 --- /dev/null +++ b/client_pack/mods/appleskin.pw.toml @@ -0,0 +1,13 @@ +name = "AppleSkin" +filename = "appleskin-neoforge-mc1.21-3.0.9.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/EsAfCjCV/versions/uAKA6Laj/appleskin-neoforge-mc1.21-3.0.9.jar" +hash-format = "sha512" +hash = "f4ea46273e407334b63e262e2555c9a8204f7b5e60f23f272fbaa83ad9e88800e0ee186aca840710df2dbe0a18b37758695fef2ae1a902c10b3706e3de772937" + +[update] +[update.modrinth] +mod-id = "EsAfCjCV" +version = "uAKA6Laj" diff --git a/client_pack/mods/applied-energistics-2-wireless-terminals.pw.toml b/client_pack/mods/applied-energistics-2-wireless-terminals.pw.toml new file mode 100644 index 0000000..eabe6a9 --- /dev/null +++ b/client_pack/mods/applied-energistics-2-wireless-terminals.pw.toml @@ -0,0 +1,13 @@ +name = "Applied Energistics 2 Wireless Terminals" +filename = "ae2wtlib-19.5.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/pNabrMMw/versions/CxSEpEnO/ae2wtlib-19.5.1.jar" +hash-format = "sha512" +hash = "0659d755c6ae91551d30c20b948d5bde0a39b2ae9825b1a4e132f0bbd10e032f18d82b6847261360589f36980ed3597ef6c6947b680523a1de767a9b7953682e" + +[update] +[update.modrinth] +mod-id = "pNabrMMw" +version = "CxSEpEnO" diff --git a/client_pack/mods/architects-palette.pw.toml b/client_pack/mods/architects-palette.pw.toml new file mode 100644 index 0000000..f68a6d9 --- /dev/null +++ b/client_pack/mods/architects-palette.pw.toml @@ -0,0 +1,13 @@ +name = "Architect's Palette" +filename = "architects_palette-neoforge-1.21.1-1.4.0-beta.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vt0VyseM/versions/mfYFPWxH/architects_palette-neoforge-1.21.1-1.4.0-beta.5.jar" +hash-format = "sha512" +hash = "1d2f27e5f0ae15828f68368aae3d935d2cc4dddbd8113986dd04bed2c56eb5e7ae65ecd6a009e6e2108a91cd1538e6585c95163e19a8f4cd56e82f864b9c2d22" + +[update] +[update.modrinth] +mod-id = "vt0VyseM" +version = "mfYFPWxH" diff --git a/client_pack/mods/architectury-api.pw.toml b/client_pack/mods/architectury-api.pw.toml new file mode 100644 index 0000000..3ce8086 --- /dev/null +++ b/client_pack/mods/architectury-api.pw.toml @@ -0,0 +1,13 @@ +name = "Architectury API" +filename = "architectury-13.0.11-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lhGA9TYQ/versions/1IiqEQGl/architectury-13.0.11-neoforge.jar" +hash-format = "sha512" +hash = "d9f7c3bb8162577dfb461ffdf04bd6a3563c7586934a0e2a744c14421beffb8286f0d88d4c758317003f20f99fe8072a39b9d675af061e036970d36db36027f0" + +[update] +[update.modrinth] +mod-id = "lhGA9TYQ" +version = "1IiqEQGl" diff --git a/client_pack/mods/athena-ctm.pw.toml b/client_pack/mods/athena-ctm.pw.toml new file mode 100644 index 0000000..12bcd80 --- /dev/null +++ b/client_pack/mods/athena-ctm.pw.toml @@ -0,0 +1,13 @@ +name = "Athena" +filename = "athena-neoforge-1.21.1-4.0.6.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/b1ZV3DIJ/versions/dJgL278E/athena-neoforge-1.21.1-4.0.6.jar" +hash-format = "sha512" +hash = "ab40a306a26ce834daae921a1e87768cd2538a4bfe27a4480f97af854084cc334e7416b1bd0b7583834a32a86951283f29fd4b1df7b98a967a6b26a3ec05e2cf" + +[update] +[update.modrinth] +mod-id = "b1ZV3DIJ" +version = "dJgL278E" diff --git a/client_pack/mods/badoptimizations.pw.toml b/client_pack/mods/badoptimizations.pw.toml new file mode 100644 index 0000000..34ff0e3 --- /dev/null +++ b/client_pack/mods/badoptimizations.pw.toml @@ -0,0 +1,13 @@ +name = "BadOptimizations" +filename = "BadOptimizations-2.4.1-1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/g96Z4WVZ/versions/S2qthD5S/BadOptimizations-2.4.1-1.21.1.jar" +hash-format = "sha512" +hash = "2b66428bd98bd5ec0e09f2ec6af801cefb7b9b99cc4f0993daeaffe8d0ccc5ee0c2a73e9f38d4f92540ead0181704d2c9e946837ec05cf710fc3b20fce3b0cac" + +[update] +[update.modrinth] +mod-id = "g96Z4WVZ" +version = "S2qthD5S" diff --git a/client_pack/mods/balm.pw.toml b/client_pack/mods/balm.pw.toml new file mode 100644 index 0000000..49429a4 --- /dev/null +++ b/client_pack/mods/balm.pw.toml @@ -0,0 +1,13 @@ +name = "Balm" +filename = "balm-neoforge-1.21.1-21.0.65.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/MBAkmtvl/versions/KgypwTqX/balm-neoforge-1.21.1-21.0.65.jar" +hash-format = "sha512" +hash = "779b4f9e9738ae6f010e87f71b2ed5a114eb9b1b3d5b55cf42ad538094e5b064a1d3f4ff00064aac90da1c841a144464d47378d9bffc448a71d87132cb954101" + +[update] +[update.modrinth] +mod-id = "MBAkmtvl" +version = "KgypwTqX" diff --git a/client_pack/mods/bellsandwhistles.pw.toml b/client_pack/mods/bellsandwhistles.pw.toml new file mode 100644 index 0000000..168e8e1 --- /dev/null +++ b/client_pack/mods/bellsandwhistles.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Bells & Whistles" +filename = "bellsandwhistles-0.4.7-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/gJ5afkVv/versions/w0mifib8/bellsandwhistles-0.4.7-1.21.1.jar" +hash-format = "sha512" +hash = "482ee096477b89ed8ec5ce008a4a8ac0ae853079a4f5ce16ad0e0dd9b2eb12b3326f17acaaca1eae0bc51ad238f4e51c8d5b93ded71fe7240717ac8600041c59" + +[update] +[update.modrinth] +mod-id = "gJ5afkVv" +version = "w0mifib8" diff --git a/client_pack/mods/better-combat.pw.toml b/client_pack/mods/better-combat.pw.toml new file mode 100644 index 0000000..e1f6858 --- /dev/null +++ b/client_pack/mods/better-combat.pw.toml @@ -0,0 +1,13 @@ +name = "Better Combat" +filename = "bettercombat-neoforge-2.4.0+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/5sy6g3kz/versions/VhIOvcXP/bettercombat-neoforge-2.4.0%2B1.21.1.jar" +hash-format = "sha512" +hash = "db24730a42ae7e2dd546ee031d2f5e0dd6f9896418417a529fa21a44121761ebb29c8b8299db8f20500f7497f7b60a7d793b66c93abf37a8ea0aa3edafd80eb6" + +[update] +[update.modrinth] +mod-id = "5sy6g3kz" +version = "VhIOvcXP" diff --git a/client_pack/mods/blocks-you-need.pw.toml b/client_pack/mods/blocks-you-need.pw.toml new file mode 100644 index 0000000..aafe8d2 --- /dev/null +++ b/client_pack/mods/blocks-you-need.pw.toml @@ -0,0 +1,13 @@ +name = "Blocks You Need" +filename = "blocksyouneed_luna-1.11.4-neoforge-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lIyS5pGh/versions/wXB9rYMv/blocksyouneed_luna-1.11.4-neoforge-1.21.1.jar" +hash-format = "sha512" +hash = "31a322080cdb7c7a85df1366b134b1734a69d2bf5b2fe3f6f38298632893856a1999513b8ba4efafa8cbdd62324eaa5c95d18d9f343c483bee9420891efd04b2" + +[update] +[update.modrinth] +mod-id = "lIyS5pGh" +version = "wXB9rYMv" diff --git a/client_pack/mods/born-in-chaos.pw.toml b/client_pack/mods/born-in-chaos.pw.toml new file mode 100644 index 0000000..3cf3fd0 --- /dev/null +++ b/client_pack/mods/born-in-chaos.pw.toml @@ -0,0 +1,13 @@ +name = "Born in Chaos" +filename = "born_in_chaos_[Neoforge]_1.21.1_1.7.6.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "73704f38ac368c03716f9cc8f537470d3b352fa2" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8268280 +project-id = 686437 diff --git a/client_pack/mods/building-gadgets.pw.toml b/client_pack/mods/building-gadgets.pw.toml new file mode 100644 index 0000000..22616d5 --- /dev/null +++ b/client_pack/mods/building-gadgets.pw.toml @@ -0,0 +1,13 @@ +name = "Building Gadgets" +filename = "buildinggadgets2-1.3.9.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "666a155981e3cd231f67809b9e2a0238377bbbfc" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6850515 +project-id = 298187 diff --git a/client_pack/mods/chipped.pw.toml b/client_pack/mods/chipped.pw.toml new file mode 100644 index 0000000..75a5244 --- /dev/null +++ b/client_pack/mods/chipped.pw.toml @@ -0,0 +1,13 @@ +name = "Chipped" +filename = "chipped-neoforge-1.21.1-4.0.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/BAscRYKm/versions/eqVowbGc/chipped-neoforge-1.21.1-4.0.2.jar" +hash-format = "sha512" +hash = "f3083b01267e7c674c4b42f45a317c93ee7723443cba2051fe5bc593638b533b0fe90699e2101661c934dff458eab693cce4e188533bfe977778c249563a2fa5" + +[update] +[update.modrinth] +mod-id = "BAscRYKm" +version = "eqVowbGc" diff --git a/client_pack/mods/cloth-config.pw.toml b/client_pack/mods/cloth-config.pw.toml new file mode 100644 index 0000000..2dac164 --- /dev/null +++ b/client_pack/mods/cloth-config.pw.toml @@ -0,0 +1,13 @@ +name = "Cloth Config API" +filename = "cloth-config-15.0.140-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/9s6osm5g/versions/izKINKFg/cloth-config-15.0.140-neoforge.jar" +hash-format = "sha512" +hash = "aaf9b010955b8cd294e5a92f069985b18729fd5e2cf22d351f1dff9680f15488688803ec41e77e941cbde130ceb535014ca4c868047d80ab69c2d508e216654d" + +[update] +[update.modrinth] +mod-id = "9s6osm5g" +version = "izKINKFg" diff --git a/client_pack/mods/clumps.pw.toml b/client_pack/mods/clumps.pw.toml new file mode 100644 index 0000000..3dcba7e --- /dev/null +++ b/client_pack/mods/clumps.pw.toml @@ -0,0 +1,13 @@ +name = "Clumps" +filename = "Clumps-neoforge-1.21.1-19.0.0.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Wnxd13zP/versions/jo7lDoK4/Clumps-neoforge-1.21.1-19.0.0.1.jar" +hash-format = "sha512" +hash = "314d8d8e640d73041f27e0f3f2cad7aad8b4c77dbd7fb31700ef7760362261f77085eed5289555c725d99c3f47a114e7290cd608f39c9f0f12ef74958463bdcc" + +[update] +[update.modrinth] +mod-id = "Wnxd13zP" +version = "jo7lDoK4" diff --git a/client_pack/mods/connected-glass.pw.toml b/client_pack/mods/connected-glass.pw.toml new file mode 100644 index 0000000..9305166 --- /dev/null +++ b/client_pack/mods/connected-glass.pw.toml @@ -0,0 +1,13 @@ +name = "Connected Glass" +filename = "connectedglass-1.1.14-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "0a44c13d6744e0eeec5bf38f58756a8e86e96f55" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6811960 +project-id = 383129 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/copycats.pw.toml b/client_pack/mods/copycats.pw.toml new file mode 100644 index 0000000..bfa4be9 --- /dev/null +++ b/client_pack/mods/copycats.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Copycats+" +filename = "copycats-3.0.4+mc.1.21.1-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/UT2M39wf/versions/kecZ0sl7/copycats-3.0.4%2Bmc.1.21.1-neoforge.jar" +hash-format = "sha512" +hash = "ecc98e659be66a71af0aee66a9f4c7c8838f4f0101402644929079ce7280a572a000e7e417905e1869a51d6e49ebbd601008f54585e07ee4ed01f2c4bc752bfe" + +[update] +[update.modrinth] +mod-id = "UT2M39wf" +version = "kecZ0sl7" diff --git a/client_pack/mods/cosmetic-armor-reworked.pw.toml b/client_pack/mods/cosmetic-armor-reworked.pw.toml new file mode 100644 index 0000000..9359c6c --- /dev/null +++ b/client_pack/mods/cosmetic-armor-reworked.pw.toml @@ -0,0 +1,13 @@ +name = "Cosmetic Armor Reworked" +filename = "cosmeticarmorreworked-1.21.1-v1-neoforge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "5f1e699cd0888b857ec63f01adaeb3571848bfea" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5610814 +project-id = 237307 diff --git a/client_pack/mods/create-aeronautics.pw.toml b/client_pack/mods/create-aeronautics.pw.toml new file mode 100644 index 0000000..f15a01f --- /dev/null +++ b/client_pack/mods/create-aeronautics.pw.toml @@ -0,0 +1,13 @@ +name = "Create Aeronautics" +filename = "create-aeronautics-bundled-1.21.1-1.3.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/oWaK0Q19/versions/Vzp221Un/create-aeronautics-bundled-1.21.1-1.3.1.jar" +hash-format = "sha512" +hash = "16ba7a2c8335443bdf6ad4777737b762f09452be2dd364f801fd20b35eb581473161763699ec37eb12d1aeaf8c18cf8299b2152e24334eedcc9fe662af5bbb27" + +[update] +[update.modrinth] +mod-id = "oWaK0Q19" +version = "Vzp221Un" diff --git a/client_pack/mods/create-big-cannons.pw.toml b/client_pack/mods/create-big-cannons.pw.toml new file mode 100644 index 0000000..8cbf900 --- /dev/null +++ b/client_pack/mods/create-big-cannons.pw.toml @@ -0,0 +1,13 @@ +name = "Create Big Cannons" +filename = "createbigcannons-5.11.7+mc.1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/GWp4jCJj/versions/bOiDu0LS/createbigcannons-5.11.7%2Bmc.1.21.1.jar" +hash-format = "sha512" +hash = "24f414dfbb973a0f4d9c9b2aa059edc7bed4d23b4f39eb1f7d23a1d6b437e3b5d64cca6e4b85ff7eb2815743fa711d54ad652bffe96d1eb1234544716006440d" + +[update] +[update.modrinth] +mod-id = "GWp4jCJj" +version = "bOiDu0LS" diff --git a/client_pack/mods/create-central-kitchen.pw.toml b/client_pack/mods/create-central-kitchen.pw.toml new file mode 100644 index 0000000..29b2ecf --- /dev/null +++ b/client_pack/mods/create-central-kitchen.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Central Kitchen" +filename = "create-central-kitchen-2.6.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/btq68HMO/versions/1mQSm4Yb/create-central-kitchen-2.6.0.jar" +hash-format = "sha512" +hash = "9f42e5f3e557118a8dec364ee87fa9ee3d91f8f386eaf656ae2410dff6e5263bdeb0d532fe1af7dab51c3faf9fa6672d3089a28e5c04242e86b55407f41b7152" + +[update] +[update.modrinth] +mod-id = "btq68HMO" +version = "1mQSm4Yb" diff --git a/client_pack/mods/create-connected.pw.toml b/client_pack/mods/create-connected.pw.toml new file mode 100644 index 0000000..97e666e --- /dev/null +++ b/client_pack/mods/create-connected.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Connected" +filename = "create_connected-1.3.2-mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Vg5TIO6d/versions/klOWKza5/create_connected-1.3.2-mc1.21.1.jar" +hash-format = "sha512" +hash = "b07bfbc5ebf0ad63b1db5f7215f0e11490f0263623e344b09a63116d84199a49c7f916610410262ddb640e60017d08e89f3363ada38a6219ac6a5b2fc19322e0" + +[update] +[update.modrinth] +mod-id = "Vg5TIO6d" +version = "klOWKza5" diff --git a/client_pack/mods/create-deco.pw.toml b/client_pack/mods/create-deco.pw.toml new file mode 100644 index 0000000..d5cd216 --- /dev/null +++ b/client_pack/mods/create-deco.pw.toml @@ -0,0 +1,13 @@ +name = "Create Deco" +filename = "createdeco-2.1.3.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sMvUb4Rb/versions/qrcMVoBD/createdeco-2.1.3.jar" +hash-format = "sha512" +hash = "c536662f9d47ad57a37419165ded14835b23ad6c3e82a920298ecd7ee074244b0b6062ef9cc7ea4501ddd35919a840faccd7fc64e43eb8df31e12076681c3c0d" + +[update] +[update.modrinth] +mod-id = "sMvUb4Rb" +version = "qrcMVoBD" diff --git a/client_pack/mods/create-design-n-decor.pw.toml b/client_pack/mods/create-design-n-decor.pw.toml new file mode 100644 index 0000000..29ab618 --- /dev/null +++ b/client_pack/mods/create-design-n-decor.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Design n' Decor" +filename = "Design-n-Decor-1.21.1-2.2b.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/x49wilh8/versions/uQsIRky8/Design-n-Decor-1.21.1-2.2b.jar" +hash-format = "sha512" +hash = "d888553c8a254c3654f8da2ae2cae0bb642594546c71988739c93bf6b18668145e0ce5b1c20ae0544b9b6019f17e4da944bd5bc17e4c6b73e7f1374cfa2c9db9" + +[update] +[update.modrinth] +mod-id = "x49wilh8" +version = "uQsIRky8" diff --git a/client_pack/mods/create-diesel-generators.pw.toml b/client_pack/mods/create-diesel-generators.pw.toml new file mode 100644 index 0000000..bc29ff4 --- /dev/null +++ b/client_pack/mods/create-diesel-generators.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Diesel Generators" +filename = "createdieselgenerators-1.21.1-1.3.15.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ZM3tt6p1/versions/UoPH8lO1/createdieselgenerators-1.21.1-1.3.15.jar" +hash-format = "sha512" +hash = "1507ebcd07d3185aac3ae6ce768b4d6bab16cb6f39776d25a850c8133a4dc5826b8ddbeca112d76afc64deaa37ec177cac4237c6c34621c4b65e73d83f8ab43f" + +[update] +[update.modrinth] +mod-id = "ZM3tt6p1" +version = "UoPH8lO1" diff --git a/client_pack/mods/create-dragons-plus.pw.toml b/client_pack/mods/create-dragons-plus.pw.toml new file mode 100644 index 0000000..b91a134 --- /dev/null +++ b/client_pack/mods/create-dragons-plus.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Dragons Plus" +filename = "CreateDragonsPlus-1.11.7b.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/dzb1a5WV/versions/zQDQbNih/CreateDragonsPlus-1.11.7b.jar" +hash-format = "sha512" +hash = "4b86f50641b95532d8662e333b1805f0938bf49d1fd9ee7bd4920dca7a4c3707e11f95d44d6a6ce250acc0d534f08ffd2a7891308d587c4d63ce63be3377ae83" + +[update] +[update.modrinth] +mod-id = "dzb1a5WV" +version = "zQDQbNih" diff --git a/client_pack/mods/create-dreams-and-desires.pw.toml b/client_pack/mods/create-dreams-and-desires.pw.toml new file mode 100644 index 0000000..a775f59 --- /dev/null +++ b/client_pack/mods/create-dreams-and-desires.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Dreams & Desires" +filename = "DnDesires-1.21.1-2.3a-BETA.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JmybsfWs/versions/bqMxf6Ua/DnDesires-1.21.1-2.3a-BETA.jar" +hash-format = "sha512" +hash = "c2d70c5ef259d20ba60a66fa146fc0d37b588c5c42c0028a650af1e10678c4e4604966aa46efd25f3824df4620ef719daa8e54fc82220d7a1b22a7fcaa4e2077" + +[update] +[update.modrinth] +mod-id = "JmybsfWs" +version = "bqMxf6Ua" diff --git a/client_pack/mods/create-enchantment-industry.pw.toml b/client_pack/mods/create-enchantment-industry.pw.toml new file mode 100644 index 0000000..d127dd9 --- /dev/null +++ b/client_pack/mods/create-enchantment-industry.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Enchantment Industry" +filename = "create-enchantment-industry-2.5.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JWGBpFUP/versions/LOammszO/create-enchantment-industry-2.5.2.jar" +hash-format = "sha512" +hash = "e5c049bf06fe231d44f37a2427a95a327d6327b1d2547d3f086a22342a03a3c618c9df9c26d3fd04be5b029b20764eee33425ab7bd523e8b96a65c7d76930705" + +[update] +[update.modrinth] +mod-id = "JWGBpFUP" +version = "LOammszO" diff --git a/client_pack/mods/create-goggles.pw.toml b/client_pack/mods/create-goggles.pw.toml new file mode 100644 index 0000000..36a57b9 --- /dev/null +++ b/client_pack/mods/create-goggles.pw.toml @@ -0,0 +1,13 @@ +name = "Create Goggles" +filename = "creategoggles-1.21.1-6.1.1-[NEOFORGE].jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/L1RT5SJc/versions/Co24W2FL/creategoggles-1.21.1-6.1.1-%5BNEOFORGE%5D.jar" +hash-format = "sha512" +hash = "bf2c4167fdee64c3f43298c6fd2d9e347951d2fb8fc12e2c2bbafc486e8d690cd7ebfd536507d13a6b4c287236713f8d796c048df2356feda36542cf5b484afc" + +[update] +[update.modrinth] +mod-id = "L1RT5SJc" +version = "Co24W2FL" diff --git a/client_pack/mods/create-jetpack.pw.toml b/client_pack/mods/create-jetpack.pw.toml new file mode 100644 index 0000000..f326e57 --- /dev/null +++ b/client_pack/mods/create-jetpack.pw.toml @@ -0,0 +1,13 @@ +name = "Create Jetpack" +filename = "create_jetpack-forge-5.2.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/UbFnAd4l/versions/sCwiqLqq/create_jetpack-forge-5.2.1.jar" +hash-format = "sha512" +hash = "dd9856cf9f84d58174bcdb097f405a107d86d0947ab3d67f090994ed3a4939cc9d52bab0f56f988cd290b1e8f68d534c3e9155e33a1d67983d80923f3b67f4f3" + +[update] +[update.modrinth] +mod-id = "UbFnAd4l" +version = "sCwiqLqq" diff --git a/client_pack/mods/create-mechanical-extruder.pw.toml b/client_pack/mods/create-mechanical-extruder.pw.toml new file mode 100644 index 0000000..6702aea --- /dev/null +++ b/client_pack/mods/create-mechanical-extruder.pw.toml @@ -0,0 +1,13 @@ +name = "Create Mechanical Extruder" +filename = "create_mechanical_extruder-1.21.1-2.2.2-6.0.10.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hGAlcCDJ/versions/fFDOEXAA/create_mechanical_extruder-1.21.1-2.2.2-6.0.10.jar" +hash-format = "sha512" +hash = "efeb01312cb00800cc11e7765759b31058719e6a7c62744b453d242c4da7b75091b68eef2f489054a1244244a63672a46f4822a580eb8d8c64045a189e671827" + +[update] +[update.modrinth] +mod-id = "hGAlcCDJ" +version = "fFDOEXAA" diff --git a/client_pack/mods/create-new-age.pw.toml b/client_pack/mods/create-new-age.pw.toml new file mode 100644 index 0000000..acb0d52 --- /dev/null +++ b/client_pack/mods/create-new-age.pw.toml @@ -0,0 +1,13 @@ +name = "Create: New Age" +filename = "create-new-age-1.2.0+neoforge-mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/FTeXqI9v/versions/IwtuwMZy/create-new-age-1.2.0%2Bneoforge-mc1.21.1.jar" +hash-format = "sha512" +hash = "5075c6482b800af7044b594ad694855e7d56f386cb0354967eafe99d77e84b4e26ee7f880d287672d24d84ea8086fd074b7695e46632f32f215b31ce859ada72" + +[update] +[update.modrinth] +mod-id = "FTeXqI9v" +version = "IwtuwMZy" diff --git a/client_pack/mods/create-ore-excavation.pw.toml b/client_pack/mods/create-ore-excavation.pw.toml new file mode 100644 index 0000000..0ec29af --- /dev/null +++ b/client_pack/mods/create-ore-excavation.pw.toml @@ -0,0 +1,13 @@ +name = "Create Ore Excavation (patched - no kubejs_create race wrapper)" +filename = "createoreexcavation-1.21-1.6.8-patched.jar" +side = "both" + +[download] +url = "https://git.mithraic.cloud/ad3laid3/SciCraft/raw/branch/main/tools/patches/createoreexcavation-1.21-1.6.8-patched.jar" +hash-format = "sha512" +hash = "0d2ca0631318639e46b5d6faf61c4905a385af29079e30780941ea14f9eaf85132acac7cdc1c42b15c7a46930aa69b33db4a80a981172af1293c4d1f8b4401b4" + +[update] +[update.modrinth] +mod-id = "ResbpANg" +version = "tivxiPTo" diff --git a/client_pack/mods/create.pw.toml b/client_pack/mods/create.pw.toml new file mode 100644 index 0000000..3c1cc51 --- /dev/null +++ b/client_pack/mods/create.pw.toml @@ -0,0 +1,13 @@ +name = "Create" +filename = "create-1.21.1-6.0.10.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/LNytGWDc/versions/UjX6dr61/create-1.21.1-6.0.10.jar" +hash-format = "sha512" +hash = "11cc8fc049d2f67f6548c7abfada6b82a3adb5c7ca410a742de04bbca76e03862c518721b88d806f6e6d768a4d68531fdb903a85859b25d1484d550cc7bafd4b" + +[update] +[update.modrinth] +mod-id = "LNytGWDc" +version = "UjX6dr61" diff --git a/client_pack/mods/createaddition.pw.toml b/client_pack/mods/createaddition.pw.toml new file mode 100644 index 0000000..5041a4f --- /dev/null +++ b/client_pack/mods/createaddition.pw.toml @@ -0,0 +1,13 @@ +name = "Create Crafts & Additions" +filename = "createaddition-1.7.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/kU1G12Nn/versions/zlC557Yg/createaddition-1.7.0.jar" +hash-format = "sha512" +hash = "267779bf2a215a0be39748e6a8e387322df697bc9de8e7e9558e6885aa790a2e73f334a55bfc5f97f4130d22262011433675fd0830ab1e3e3b10c9898d8a702c" + +[update] +[update.modrinth] +mod-id = "kU1G12Nn" +version = "zlC557Yg" diff --git a/client_pack/mods/creativecore.pw.toml b/client_pack/mods/creativecore.pw.toml new file mode 100644 index 0000000..d28afd7 --- /dev/null +++ b/client_pack/mods/creativecore.pw.toml @@ -0,0 +1,13 @@ +name = "CreativeCore" +filename = "CreativeCore_NEOFORGE_v2.13.43_mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "cf6864c94f36b24f5900b4ae0998b2bc44dc5c7b" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8647581 +project-id = 257814 diff --git a/client_pack/mods/cull-leaves.pw.toml b/client_pack/mods/cull-leaves.pw.toml new file mode 100644 index 0000000..5d9271b --- /dev/null +++ b/client_pack/mods/cull-leaves.pw.toml @@ -0,0 +1,13 @@ +name = "Cull Leaves" +filename = "cullleaves-neoforge-4.1.1+1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/GNxdLCoP/versions/V7PU4g8I/cullleaves-neoforge-4.1.1%2B1.21.1.jar" +hash-format = "sha512" +hash = "743c95fce00c21c45b0ecfe0a1b82b867c05807637c3f8aae06f77f1ddd898b4f0311bcfc970b071663d477221fd7acec6c6f75d460601d709eed1f0a64087a9" + +[update] +[update.modrinth] +mod-id = "GNxdLCoP" +version = "V7PU4g8I" diff --git a/client_pack/mods/curios.pw.toml b/client_pack/mods/curios.pw.toml new file mode 100644 index 0000000..5e5f3a9 --- /dev/null +++ b/client_pack/mods/curios.pw.toml @@ -0,0 +1,13 @@ +name = "Curios API" +filename = "curios-neoforge-9.5.1+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vvuO3ImH/versions/yohfFbgD/curios-neoforge-9.5.1%2B1.21.1.jar" +hash-format = "sha512" +hash = "5981a267686b744e7e3c227f78cbcd5267c14ac6979a28e814695f4589273998563147207fef4a5cdb7cdbdc39797cd95d9e4abadb55869f18e02a38d0654ae5" + +[update] +[update.modrinth] +mod-id = "vvuO3ImH" +version = "yohfFbgD" diff --git a/client_pack/mods/deeperdarker.pw.toml b/client_pack/mods/deeperdarker.pw.toml new file mode 100644 index 0000000..21f8e15 --- /dev/null +++ b/client_pack/mods/deeperdarker.pw.toml @@ -0,0 +1,13 @@ +name = "Deeper and Darker" +filename = "deeperdarker-neoforge-1.21.1-1.4.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "b6094adde68bd4b909bc75c64901e1f3fb99ad8f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8201775 +project-id = 659011 diff --git a/client_pack/mods/dimensionaldoors.pw.toml b/client_pack/mods/dimensionaldoors.pw.toml new file mode 100644 index 0000000..8c6f13b --- /dev/null +++ b/client_pack/mods/dimensionaldoors.pw.toml @@ -0,0 +1,13 @@ +name = "Dimensional Doors" +filename = "dimdoors-neoforge-1.21.1-6.2.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/b8Q0BxnV/versions/luZyhz73/dimdoors-neoforge-1.21.1-6.2.2.jar" +hash-format = "sha512" +hash = "0e59bc1aeebb959eda7903d53980f013cb568d02e3cdf22886ec676d41e1926e1ee833cbc307a6dcabcdd6854c4490a2c7481a0d35ca6f37de94bb27d1ab4a54" + +[update] +[update.modrinth] +mod-id = "b8Q0BxnV" +version = "luZyhz73" diff --git a/client_pack/mods/dimensionfixer.pw.toml b/client_pack/mods/dimensionfixer.pw.toml new file mode 100644 index 0000000..4cdd243 --- /dev/null +++ b/client_pack/mods/dimensionfixer.pw.toml @@ -0,0 +1,13 @@ +name = "Dimension Fixer" +filename = "dimensionfixer-neoforge-0.0.10+1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hJmXo78w/versions/3Yki4BfD/dimensionfixer-neoforge-0.0.10%2B1.21.jar" +hash-format = "sha512" +hash = "bf62225a591aad832b30dafc490648c5ad7278d83f827b6cdbbab6f55169250c5752151149a7f7de488bce6a5f458f101af7a5a4dc342f79f3f56a351f8558bd" + +[update] +[update.modrinth] +mod-id = "hJmXo78w" +version = "3Yki4BfD" diff --git a/client_pack/mods/dynamic-fps.pw.toml b/client_pack/mods/dynamic-fps.pw.toml new file mode 100644 index 0000000..ec05b7b --- /dev/null +++ b/client_pack/mods/dynamic-fps.pw.toml @@ -0,0 +1,13 @@ +name = "Dynamic FPS" +filename = "dynamic-fps-3.11.4+minecraft-1.21.0-neoforge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "35b17e95b2b65930116ccc83e0cc358ac1bfcf9e" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7546938 +project-id = 335493 diff --git a/client_pack/mods/entangled.pw.toml b/client_pack/mods/entangled.pw.toml new file mode 100644 index 0000000..9409453 --- /dev/null +++ b/client_pack/mods/entangled.pw.toml @@ -0,0 +1,13 @@ +name = "Entangled" +filename = "entangled-1.3.21-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "72d63d64ee774b89302e0d6b220757ba11b6ec4f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7783144 +project-id = 301034 diff --git a/client_pack/mods/entityculling.pw.toml b/client_pack/mods/entityculling.pw.toml new file mode 100644 index 0000000..a2d7ff9 --- /dev/null +++ b/client_pack/mods/entityculling.pw.toml @@ -0,0 +1,13 @@ +name = "Entity Culling" +filename = "entityculling-neoforge-1.10.5-mc1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/NNAgCjsB/versions/5zRIon6w/entityculling-neoforge-1.10.5-mc1.21.1.jar" +hash-format = "sha512" +hash = "0c22502b84b13d8ac6daffe14ac77e7306b5b7a48f5cd9b3950d9e1d60b3786104aa035fbfdb208b1c9a75ad0e356301a774da32edc3f71cb3a53e2d28fd39e6" + +[update] +[update.modrinth] +mod-id = "NNAgCjsB" +version = "5zRIon6w" diff --git a/client_pack/mods/every-compat.pw.toml b/client_pack/mods/every-compat.pw.toml new file mode 100644 index 0000000..7ca921e --- /dev/null +++ b/client_pack/mods/every-compat.pw.toml @@ -0,0 +1,13 @@ +name = "Every Compat (Wood Good)" +filename = "everycomp-1.21-2.11.50-neoforge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "ffd9fece7244663ed8f3e90f1091ad31a5b36bec" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8680544 +project-id = 628539 diff --git a/client_pack/mods/extended-ae.pw.toml b/client_pack/mods/extended-ae.pw.toml new file mode 100644 index 0000000..b27344a --- /dev/null +++ b/client_pack/mods/extended-ae.pw.toml @@ -0,0 +1,13 @@ +name = "Extended AE" +filename = "ExtendedAE-1.21-2.2.35-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JiOqfoFM/versions/bC302UUP/ExtendedAE-1.21-2.2.35-neoforge.jar" +hash-format = "sha512" +hash = "e5b76a50802087d999bf6c113bc635e8ade9f20e06f4d3276a144f4eaa3090fc3b6c67b9b6a1f7d0d036e48e69f601114a0cc92c5a8d45953f895718f806348c" + +[update] +[update.modrinth] +mod-id = "JiOqfoFM" +version = "bC302UUP" diff --git a/client_pack/mods/extendedae-plus.pw.toml b/client_pack/mods/extendedae-plus.pw.toml new file mode 100644 index 0000000..08771c6 --- /dev/null +++ b/client_pack/mods/extendedae-plus.pw.toml @@ -0,0 +1,13 @@ +name = "ExtendedAE-Plus" +filename = "extendedae_plus-1.5.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/xr109llC/versions/BdDOfMzg/extendedae_plus-1.5.5.jar" +hash-format = "sha512" +hash = "c1211f90af315542b4a6092bf8ce59fdb6afd100ebcb8315bab08f08d1829492740002eb5c7ef4cae5dc7bd48b38d4d16f84b9ff014fae2115450df2c2a5ab58" + +[update] +[update.modrinth] +mod-id = "xr109llC" +version = "BdDOfMzg" diff --git a/client_pack/mods/fast-pipes.pw.toml b/client_pack/mods/fast-pipes.pw.toml new file mode 100644 index 0000000..dc3f975 --- /dev/null +++ b/client_pack/mods/fast-pipes.pw.toml @@ -0,0 +1,13 @@ +name = "FastPipes" +filename = "fastpipes-1.21.1-1.3.7.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vLNEmWij/versions/hJEwLkgm/fastpipes-1.21.1-1.3.7.jar" +hash-format = "sha512" +hash = "112092240eacaf114eb442135cf873bcb8eee11d9565be2389119d7732052876e00145bc22fe337ae5dad3810df103efe8ef87f7c200521084f3678452bf4cf0" + +[update] +[update.modrinth] +mod-id = "vLNEmWij" +version = "hJEwLkgm" diff --git a/client_pack/mods/ferrite-core.pw.toml b/client_pack/mods/ferrite-core.pw.toml new file mode 100644 index 0000000..ae0b3dc --- /dev/null +++ b/client_pack/mods/ferrite-core.pw.toml @@ -0,0 +1,13 @@ +name = "FerriteCore" +filename = "ferritecore-7.0.3-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/uXXizFIs/versions/x7kQWVju/ferritecore-7.0.3-neoforge.jar" +hash-format = "sha512" +hash = "19af89a2075bb10a63884fa853ebf84b02c79dc3242430ecdad056fd764fdcde367a7303276b329df01b0736e2ef264c5d80c7dc92c6aebd244f556a230bb417" + +[update] +[update.modrinth] +mod-id = "uXXizFIs" +version = "x7kQWVju" diff --git a/client_pack/mods/flux-networks.pw.toml b/client_pack/mods/flux-networks.pw.toml new file mode 100644 index 0000000..d4d69aa --- /dev/null +++ b/client_pack/mods/flux-networks.pw.toml @@ -0,0 +1,13 @@ +name = "Flux Networks" +filename = "FluxNetworks-1.21.1-8.0.0.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "183342f454428084748f2784c8efd748664a9f9c" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6089446 +project-id = 248020 diff --git a/client_pack/mods/framedblocks.pw.toml b/client_pack/mods/framedblocks.pw.toml new file mode 100644 index 0000000..a0af548 --- /dev/null +++ b/client_pack/mods/framedblocks.pw.toml @@ -0,0 +1,13 @@ +name = "FramedBlocks" +filename = "FramedBlocks-10.6.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/wbgfS34j/versions/FBXGqSP5/FramedBlocks-10.6.1.jar" +hash-format = "sha512" +hash = "051d07cb372bfafd746ff658ef2ad3485606328e445099c17b499b14df6844a0c75e8c6decaff1267934fbd6dfaa0eb1938906b0dbeaa20500c1789b4175e3b6" + +[update] +[update.modrinth] +mod-id = "wbgfS34j" +version = "FBXGqSP5" diff --git a/client_pack/mods/ftb-chunks-forge.pw.toml b/client_pack/mods/ftb-chunks-forge.pw.toml new file mode 100644 index 0000000..8760471 --- /dev/null +++ b/client_pack/mods/ftb-chunks-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Chunks (NeoForge)" +filename = "ftb-chunks-neoforge-2101.1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "37e1c12393d44d5f3e612cf9a5958dd8f1d77675" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8520252 +project-id = 314906 diff --git a/client_pack/mods/ftb-library-forge.pw.toml b/client_pack/mods/ftb-library-forge.pw.toml new file mode 100644 index 0000000..d403613 --- /dev/null +++ b/client_pack/mods/ftb-library-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Library (NeoForge)" +filename = "ftb-library-neoforge-2101.1.35.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "9922fa358983120edeed22194bf02bcf9c859fbb" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8569579 +project-id = 404465 diff --git a/client_pack/mods/ftb-quests-forge.pw.toml b/client_pack/mods/ftb-quests-forge.pw.toml new file mode 100644 index 0000000..76b21a9 --- /dev/null +++ b/client_pack/mods/ftb-quests-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Quests (NeoForge)" +filename = "ftb-quests-neoforge-2101.1.32.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "9710c0ff4506cad97af4f75b96738eb8cd369eed" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8676238 +project-id = 289412 diff --git a/client_pack/mods/ftb-teams-forge.pw.toml b/client_pack/mods/ftb-teams-forge.pw.toml new file mode 100644 index 0000000..1238ebc --- /dev/null +++ b/client_pack/mods/ftb-teams-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Teams (NeoForge)" +filename = "ftb-teams-neoforge-2101.1.10.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "363376ae0fb22cb0527170fdf6a066d1da9b0225" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7878281 +project-id = 404468 diff --git a/client_pack/mods/functional-storage.pw.toml b/client_pack/mods/functional-storage.pw.toml new file mode 100644 index 0000000..6e90a0e --- /dev/null +++ b/client_pack/mods/functional-storage.pw.toml @@ -0,0 +1,13 @@ +name = "Functional Storage" +filename = "functionalstorage-1.21.1-1.5.8.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "f5978bb49b71e94d7063502c0fad0202ebbefbcc" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8459097 +project-id = 556861 diff --git a/client_pack/mods/fusion-connected-textures.pw.toml b/client_pack/mods/fusion-connected-textures.pw.toml new file mode 100644 index 0000000..dad4034 --- /dev/null +++ b/client_pack/mods/fusion-connected-textures.pw.toml @@ -0,0 +1,13 @@ +name = "Fusion (Connected Textures)" +filename = "fusion-1.3.12-neoforge-mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "79c0c6b6a2d9c9a04298df9a88bb71a93e885235" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8536618 +project-id = 854949 diff --git a/client_pack/mods/fzzy-config.pw.toml b/client_pack/mods/fzzy-config.pw.toml new file mode 100644 index 0000000..c613f0b --- /dev/null +++ b/client_pack/mods/fzzy-config.pw.toml @@ -0,0 +1,13 @@ +name = "Fzzy Config" +filename = "fzzy_config-0.7.6+1.21+neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hYykXjDp/versions/MAPG6cXE/fzzy_config-0.7.6%2B1.21%2Bneoforge.jar" +hash-format = "sha512" +hash = "6071890aba7f2273c9fd508914acc7850de9d986423760f9ce416875ffa04eea2ad71a7a6f4d5f90f0625a672f6f54606778d11151b155f3fd98c223c61a4a6d" + +[update] +[update.modrinth] +mod-id = "hYykXjDp" +version = "MAPG6cXE" diff --git a/client_pack/mods/geckolib.pw.toml b/client_pack/mods/geckolib.pw.toml new file mode 100644 index 0000000..b5b8815 --- /dev/null +++ b/client_pack/mods/geckolib.pw.toml @@ -0,0 +1,13 @@ +name = "GeckoLib" +filename = "geckolib-neoforge-1.21.1-4.9.2.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "14c64013cadee7d28f3685f94350f9a4d2ec6d86" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8350073 +project-id = 388172 diff --git a/client_pack/mods/glodium.pw.toml b/client_pack/mods/glodium.pw.toml new file mode 100644 index 0000000..dcb3b90 --- /dev/null +++ b/client_pack/mods/glodium.pw.toml @@ -0,0 +1,13 @@ +name = "Glodium" +filename = "Glodium-1.21-2.2-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/UhW5uCKw/versions/pfbmdJ3b/Glodium-1.21-2.2-neoforge.jar" +hash-format = "sha512" +hash = "56a387a1bdaf0146c9a7e14de0aca8b6f53f25d3ba9d46255f142043387282ed9e4fa0011d309e32d9ffe5362b129c07e301226dd4ac11eda9a4f42f27c0b5d1" + +[update] +[update.modrinth] +mod-id = "UhW5uCKw" +version = "pfbmdJ3b" diff --git a/client_pack/mods/guideme.pw.toml b/client_pack/mods/guideme.pw.toml new file mode 100644 index 0000000..9a8c252 --- /dev/null +++ b/client_pack/mods/guideme.pw.toml @@ -0,0 +1,13 @@ +name = "GuideME" +filename = "guideme-21.1.17.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Ck4E7v7R/versions/rduAfwb7/guideme-21.1.17.jar" +hash-format = "sha512" +hash = "8b5d8cf7592d7b4759f5347c5acd1b0eb46403437b10b900f535e4cdde59ab1b37d57b71f3f67cdc99a66d55ad5d760f51b55ba2bc50aecf538f8572003e4cbf" + +[update] +[update.modrinth] +mod-id = "Ck4E7v7R" +version = "rduAfwb7" diff --git a/client_pack/mods/handcrafted.pw.toml b/client_pack/mods/handcrafted.pw.toml new file mode 100644 index 0000000..2c2d30f --- /dev/null +++ b/client_pack/mods/handcrafted.pw.toml @@ -0,0 +1,13 @@ +name = "Handcrafted" +filename = "handcrafted-neoforge-1.21.1-4.0.3.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "8ecd27f1d66f9b742cfae3c8ffa773765f574b52" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6330030 +project-id = 538214 diff --git a/client_pack/mods/hologenica.pw.toml b/client_pack/mods/hologenica.pw.toml new file mode 100644 index 0000000..d607166 --- /dev/null +++ b/client_pack/mods/hologenica.pw.toml @@ -0,0 +1,13 @@ +name = "Hologenica" +filename = "hologenica-1.0.2-neoforge-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/huOhn9zP/versions/ZcZ8jcmi/hologenica-1.0.2-neoforge-1.21.1.jar" +hash-format = "sha512" +hash = "0bb65380e264c12f5586d6d9562216e248e58588ab0faaa5bcfce68eee46ddeab65c41576b853c00cc792c1a7fc7b5385efe1807c466f35e3f8ca2ef2cdfb506" + +[update] +[update.modrinth] +mod-id = "huOhn9zP" +version = "ZcZ8jcmi" diff --git a/client_pack/mods/immediatelyfast.pw.toml b/client_pack/mods/immediatelyfast.pw.toml new file mode 100644 index 0000000..119cef2 --- /dev/null +++ b/client_pack/mods/immediatelyfast.pw.toml @@ -0,0 +1,13 @@ +name = "ImmediatelyFast" +filename = "ImmediatelyFast-NeoForge-1.6.12+1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/5ZwdcRci/versions/B2MHnfkW/ImmediatelyFast-NeoForge-1.6.12%2B1.21.1.jar" +hash-format = "sha512" +hash = "853c8746d0b28f97cd3eb7e9e55967f98d6c358f609b9db2c4d2d7afee76728d827bad8f3d73d6a0b7c5e36a820779f299cdcda70191e3832d5bd0f2cf034d56" + +[update] +[update.modrinth] +mod-id = "5ZwdcRci" +version = "B2MHnfkW" diff --git a/client_pack/mods/interiors.pw.toml b/client_pack/mods/interiors.pw.toml new file mode 100644 index 0000000..722e470 --- /dev/null +++ b/client_pack/mods/interiors.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Interiors" +filename = "interiors-1.21.1-neoforge-0.6.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/r4Knci2k/versions/gBrfZy6S/interiors-1.21.1-neoforge-0.6.1.jar" +hash-format = "sha512" +hash = "68b0d915e41fb0ce9d12a8c580d688a604770ded2b21e963058aa6d80cbc5661c481416d051a541395b5c79f461edcb658046e53cfcfb405179a450662ed01b5" + +[update] +[update.modrinth] +mod-id = "r4Knci2k" +version = "gBrfZy6S" diff --git a/client_pack/mods/inventory-profiles-next.pw.toml b/client_pack/mods/inventory-profiles-next.pw.toml new file mode 100644 index 0000000..d19760d --- /dev/null +++ b/client_pack/mods/inventory-profiles-next.pw.toml @@ -0,0 +1,13 @@ +name = "Inventory Profiles Next" +filename = "InventoryProfilesNext-neoforge-1.21.1-2.2.5.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/O7RBXm3n/versions/vjuNnHLv/InventoryProfilesNext-neoforge-1.21.1-2.2.5.jar" +hash-format = "sha512" +hash = "521296cc7e4fa48e06eb0c00d430968c7b879946db5b02e632cc724672759ac152e11bd9d320bd09f7418edd6fe4ece521a1a2cac49d7f5687519c69a0bcbf12" + +[update] +[update.modrinth] +mod-id = "O7RBXm3n" +version = "vjuNnHLv" diff --git a/client_pack/mods/ipsable.pw.toml b/client_pack/mods/ipsable.pw.toml new file mode 100644 index 0000000..c3eded6 --- /dev/null +++ b/client_pack/mods/ipsable.pw.toml @@ -0,0 +1,8 @@ +name = "Immersive Portals x Sable" +filename = "immersive-portals-sable-compat-0.5.0+ip-6.0.7.jar" +side = "both" + +[download] +url = "https://github.com/r2smith141/IPSable/releases/download/v0.5.0/immersive-portals-sable-compat-0.5.0%2Bip-6.0.7.jar" +hash-format = "sha512" +hash = "c800d0bd41a04291274e5fb318301ec2694cc980bda5b76d52452c934a1b6122a5115062cf081c6291066d1476dd205baa72d84779304a2dd809f9f7accdfa75" \ No newline at end of file diff --git a/client_pack/mods/iris-flw-compat.pw.toml b/client_pack/mods/iris-flw-compat.pw.toml new file mode 100644 index 0000000..f9a13a3 --- /dev/null +++ b/client_pack/mods/iris-flw-compat.pw.toml @@ -0,0 +1,13 @@ +name = "Iris & Oculus Flywheel Compat" +filename = "iris-flywheel-compat-NeoForge-2.4.0.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/ndHYMY2K/versions/6ZQz5Ow2/iris-flywheel-compat-NeoForge-2.4.0.jar" +hash-format = "sha512" +hash = "192e5f00f2c146d2920867d7cd691ecec7ddd2acfb95880cc59084e8949225db92ecfb9221ba7223fc924ec43f2ca861115f83f9dc3f79e14a2f2a8db5287070" + +[update] +[update.modrinth] +mod-id = "ndHYMY2K" +version = "6ZQz5Ow2" diff --git a/client_pack/mods/iris.pw.toml b/client_pack/mods/iris.pw.toml new file mode 100644 index 0000000..c299158 --- /dev/null +++ b/client_pack/mods/iris.pw.toml @@ -0,0 +1,13 @@ +name = "Iris Shaders" +filename = "iris-neoforge-1.8.14-beta.1+mc1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/YL57xq9U/versions/KduFYu4t/iris-neoforge-1.8.14-beta.1%2Bmc1.21.1.jar" +hash-format = "sha512" +hash = "33fddb430e16222902eac75b8b3d57c381b0f3cc729f3b56c4628df12ca108f23a0b11e2feb167923d6d14d1fc7e8ee1a977ec421b19d1951bdca74c4092b9c5" + +[update] +[update.modrinth] +mod-id = "YL57xq9U" +version = "KduFYu4t" diff --git a/client_pack/mods/jade-addons-forge.pw.toml b/client_pack/mods/jade-addons-forge.pw.toml new file mode 100644 index 0000000..31a00dc --- /dev/null +++ b/client_pack/mods/jade-addons-forge.pw.toml @@ -0,0 +1,13 @@ +name = "Jade Addons (Neo/Forge)" +filename = "JadeAddons-1.21.1-NeoForge-6.1.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/xuDOzCLy/versions/Z9s9lM56/JadeAddons-1.21.1-NeoForge-6.1.0.jar" +hash-format = "sha512" +hash = "dcf1135718e74c55d4b01116c9955b88a8c8a5180e61dc51d292479aff3d2fff38c8ca0f1b4a6e42e54644f1c8907846a61799491df455b71541aa342d8b8896" + +[update] +[update.modrinth] +mod-id = "xuDOzCLy" +version = "Z9s9lM56" diff --git a/client_pack/mods/jade.pw.toml b/client_pack/mods/jade.pw.toml new file mode 100644 index 0000000..c3f4cf9 --- /dev/null +++ b/client_pack/mods/jade.pw.toml @@ -0,0 +1,13 @@ +name = "Jade 🔍" +filename = "Jade-1.21.1-NeoForge-15.10.6.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nvQzSEkH/versions/eYz2YBGT/Jade-1.21.1-NeoForge-15.10.6.jar" +hash-format = "sha512" +hash = "dad9755dce8d85d914fc4df2baa0211f13e5839a71c1925fdd01f69081a95e30a2934e6273f8b01f0169adebe7a9dae57a8d904de0c4cb36dc17369bb474f0f2" + +[update] +[update.modrinth] +mod-id = "nvQzSEkH" +version = "eYz2YBGT" diff --git a/client_pack/mods/jei.pw.toml b/client_pack/mods/jei.pw.toml new file mode 100644 index 0000000..9ed6b56 --- /dev/null +++ b/client_pack/mods/jei.pw.toml @@ -0,0 +1,13 @@ +name = "Just Enough Items (JEI)" +filename = "jei-1.21.1-neoforge-19.44.0.403.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/u6dRKJwZ/versions/LtwmFHuF/jei-1.21.1-neoforge-19.44.0.403.jar" +hash-format = "sha512" +hash = "868d8d30dfd5055f65e6f476690a41189be9157b08b52961ded3febc7b577b2940a444209d32868a6f736656cb8dcacf7e252b9b66e16f9780e4768d4d775b01" + +[update] +[update.modrinth] +mod-id = "u6dRKJwZ" +version = "LtwmFHuF" diff --git a/client_pack/mods/journeymap-integration.pw.toml b/client_pack/mods/journeymap-integration.pw.toml new file mode 100644 index 0000000..df334f1 --- /dev/null +++ b/client_pack/mods/journeymap-integration.pw.toml @@ -0,0 +1,13 @@ +name = "JourneyMap Integration" +filename = "jmi-neoforge-1.21.1-1.9.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/M1ZKbfkJ/versions/x1p0RNwd/jmi-neoforge-1.21.1-1.9.jar" +hash-format = "sha512" +hash = "1e2d32012d76be0ac50aa80da07b12a2e4c38710ff15f3db66519cf9c0071c80a5cadf3410d248318a65443e436c7610c241fc48a119761f3fadc8fb1a12f7b2" + +[update] +[update.modrinth] +mod-id = "M1ZKbfkJ" +version = "x1p0RNwd" diff --git a/client_pack/mods/journeymap.pw.toml b/client_pack/mods/journeymap.pw.toml new file mode 100644 index 0000000..be5574d --- /dev/null +++ b/client_pack/mods/journeymap.pw.toml @@ -0,0 +1,13 @@ +name = "JourneyMap" +filename = "journeymap-neoforge-1.21.1-6.0.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lfHFW1mp/versions/35TPQTuf/journeymap-neoforge-1.21.1-6.0.5.jar" +hash-format = "sha512" +hash = "2cef3904af7988b8a70607b43f1ed37eb7938611ce7c40931ba29d911a47097d086e5148beec0d3e3641ccccf1300859e3ef8fd6ef1c169d86de59eaa7fdd498" + +[update] +[update.modrinth] +mod-id = "lfHFW1mp" +version = "35TPQTuf" diff --git a/client_pack/mods/just-enough-mekanism-multiblocks.pw.toml b/client_pack/mods/just-enough-mekanism-multiblocks.pw.toml new file mode 100644 index 0000000..ef55596 --- /dev/null +++ b/client_pack/mods/just-enough-mekanism-multiblocks.pw.toml @@ -0,0 +1,13 @@ +name = "Just Enough Mekanism Multiblocks" +filename = "JustEnoughMekanismMultiblocks-1.21.1-7.6.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/kRaE85yQ/versions/ctXhNmM5/JustEnoughMekanismMultiblocks-1.21.1-7.6.jar" +hash-format = "sha512" +hash = "bdccb290fec4134e393052492af6a8ea6df0268e5cc5b1c8a8ce2c796cbaa838a8c6871d8df353fcbf95281de7a2ba419c5f681276e80ff91665710b46c79d97" + +[update] +[update.modrinth] +mod-id = "kRaE85yQ" +version = "ctXhNmM5" diff --git a/client_pack/mods/kotlin-for-forge.pw.toml b/client_pack/mods/kotlin-for-forge.pw.toml new file mode 100644 index 0000000..3d1535b --- /dev/null +++ b/client_pack/mods/kotlin-for-forge.pw.toml @@ -0,0 +1,13 @@ +name = "Kotlin for Forge" +filename = "kotlinforforge-5.12.0-all.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ordsPcFz/versions/uhJhCT7X/kotlinforforge-5.12.0-all.jar" +hash-format = "sha512" +hash = "b8c3942f4d33179edf3f102f3d870b99dd436f8b8236dbbd31aa51b888162c692cfd88927295f24dc8b4375232f4c6c17360c5d6c4823f93cbcd7cf4bdc8bd14" + +[update] +[update.modrinth] +mod-id = "ordsPcFz" +version = "uhJhCT7X" diff --git a/client_pack/mods/krypton-fnp.pw.toml b/client_pack/mods/krypton-fnp.pw.toml new file mode 100644 index 0000000..04dfc10 --- /dev/null +++ b/client_pack/mods/krypton-fnp.pw.toml @@ -0,0 +1,13 @@ +name = "Krypton Reno" +filename = "krypton_fnp-neoforge-1.21.1-0.2.28.1-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JkxWVYwU/versions/SUeOFygw/krypton_fnp-neoforge-1.21.1-0.2.28.1-1.21.1.jar" +hash-format = "sha512" +hash = "72892ac3bee596d30ee5e5d64d78c3da237c3e30c913c58cfadc3fad555c0140e4d04db5ce537805d991e111deeb03c23eea0d10e385ad1b7502b674102cac74" + +[update] +[update.modrinth] +mod-id = "JkxWVYwU" +version = "SUeOFygw" diff --git a/client_pack/mods/kubejs-create.pw.toml b/client_pack/mods/kubejs-create.pw.toml new file mode 100644 index 0000000..985d4b4 --- /dev/null +++ b/client_pack/mods/kubejs-create.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS Create" +filename = "kubejs-create-neoforge-2101.3.1-build.18.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/T38eAZQC/versions/1qmcLagN/kubejs-create-neoforge-2101.3.1-build.18.jar" +hash-format = "sha512" +hash = "b2c3064a06f7a06aa479c38daa72fcf88e31e753cb16c53435690b2472f71acea49fe3fcab09a1e5d6fed88b289941f9ecf3f71ba9a7b8b84397cab2b8d9801d" + +[update] +[update.modrinth] +mod-id = "T38eAZQC" +version = "1qmcLagN" diff --git a/client_pack/mods/kubejs-mekanism.pw.toml b/client_pack/mods/kubejs-mekanism.pw.toml new file mode 100644 index 0000000..171727a --- /dev/null +++ b/client_pack/mods/kubejs-mekanism.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS Mekanism" +filename = "kubejs-mekanism-neoforge-2101.1.7-build.18.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sY2Fy24K/versions/sbx1D4Jz/kubejs-mekanism-neoforge-2101.1.7-build.18.jar" +hash-format = "sha512" +hash = "c03228f4442db31eb7b9c485a9e2fa5e9b08f0d6faa97a8a0a905d8f8169e7efe8c04fbf82dcf3f8d5a8a46c280a54d8a608bf9897786fa8819d857af1a17e54" + +[update] +[update.modrinth] +mod-id = "sY2Fy24K" +version = "sbx1D4Jz" diff --git a/client_pack/mods/kubejs.pw.toml b/client_pack/mods/kubejs.pw.toml new file mode 100644 index 0000000..97f9c44 --- /dev/null +++ b/client_pack/mods/kubejs.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS" +filename = "kubejs-neoforge-2101.7.2-build.368.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/umyGl7zF/versions/F2nzeC19/kubejs-neoforge-2101.7.2-build.368.jar" +hash-format = "sha512" +hash = "5e2f1bd1460d8f443ce4bd44ed367d27f9170e50dff2ce9430954206e89651f8969dfbe842c3100b0244f8d58f843fc5fb9c46b5c576430a07f1e5b6dd4b9f7b" + +[update] +[update.modrinth] +mod-id = "umyGl7zF" +version = "F2nzeC19" diff --git a/client_pack/mods/lambdynamiclights.pw.toml b/client_pack/mods/lambdynamiclights.pw.toml new file mode 100644 index 0000000..5972493 --- /dev/null +++ b/client_pack/mods/lambdynamiclights.pw.toml @@ -0,0 +1,13 @@ +name = "LambDynamicLights - Dynamic Lights" +filename = "lambdynamiclights-4.8.10+1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/yBW8D80W/versions/DZDOX6ps/lambdynamiclights-4.8.10%2B1.21.1.jar" +hash-format = "sha512" +hash = "2a8ca94cd56e9e5ed046126f4b03edba2965c8fe76210ebc5ca53bb075832274dce1cb438082fbc2aea268f93986ad17b6231afad7c100359a9185bba517c4f9" + +[update] +[update.modrinth] +mod-id = "yBW8D80W" +version = "DZDOX6ps" diff --git a/client_pack/mods/laserio.pw.toml b/client_pack/mods/laserio.pw.toml new file mode 100644 index 0000000..3166147 --- /dev/null +++ b/client_pack/mods/laserio.pw.toml @@ -0,0 +1,13 @@ +name = "LaserIO" +filename = "laserio-1.9.11.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "0545bff65926346c9663fe3c397029561a87400f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5730007 +project-id = 626839 diff --git a/client_pack/mods/libipn.pw.toml b/client_pack/mods/libipn.pw.toml new file mode 100644 index 0000000..55fd863 --- /dev/null +++ b/client_pack/mods/libipn.pw.toml @@ -0,0 +1,13 @@ +name = "libIPN" +filename = "libIPN-neoforge-1.21.1-6.6.3.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/onSQdWhM/versions/BGe4KMlE/libIPN-neoforge-1.21.1-6.6.3.jar" +hash-format = "sha512" +hash = "89383465eb8dfa296e7518dd0e6ddc1a242f4537a3183425f2319c79a3e97843ded0f5e13f86b095f2f09beacd2a1f249f554e0f4e18291209720826031a8b93" + +[update] +[update.modrinth] +mod-id = "onSQdWhM" +version = "BGe4KMlE" 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/lithostitched.pw.toml b/client_pack/mods/lithostitched.pw.toml new file mode 100644 index 0000000..a1ef746 --- /dev/null +++ b/client_pack/mods/lithostitched.pw.toml @@ -0,0 +1,13 @@ +name = "Lithostitched" +filename = "lithostitched-1.8.0+beta4-neoforge-21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/XaDC71GB/versions/81DDKTGJ/lithostitched-1.8.0%2Bbeta4-neoforge-21.1.jar" +hash-format = "sha512" +hash = "f2bdbdd662d02d4357616a744f80edc14ae6ef866920ad6c177eba676a6591026d3bcf2241a05424f084c4bdad3a2bd00055daede58c5d06265d03add72769b3" + +[update] +[update.modrinth] +mod-id = "XaDC71GB" +version = "81DDKTGJ" diff --git a/client_pack/mods/lootjs.pw.toml b/client_pack/mods/lootjs.pw.toml new file mode 100644 index 0000000..c2989da --- /dev/null +++ b/client_pack/mods/lootjs.pw.toml @@ -0,0 +1,13 @@ +name = "LootJS: KubeJS Addon" +filename = "lootjs-neoforge-1.21.1-3.7.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/fJFETWDN/versions/5AZDyUSn/lootjs-neoforge-1.21.1-3.7.0.jar" +hash-format = "sha512" +hash = "fab507e70197e74ffba43bd400066f55ef58c2f91cb213efedf4acd2a2ad7876d9de905f02788a0b6831304c2177fdc9996c435bcf855eabdb4daca7581270bc" + +[update] +[update.modrinth] +mod-id = "fJFETWDN" +version = "5AZDyUSn" diff --git a/client_pack/mods/mech-trowel.pw.toml b/client_pack/mods/mech-trowel.pw.toml new file mode 100644 index 0000000..f758e49 --- /dev/null +++ b/client_pack/mods/mech-trowel.pw.toml @@ -0,0 +1,13 @@ +name = "Mech Trowel" +filename = "mechtrowel-1.3.2.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nqFNRALS/versions/nCXGFcYp/mechtrowel-1.3.2.1.jar" +hash-format = "sha512" +hash = "7e7dcccde6e4c37483ad6a9958635833503f7fdb647e4e8369484d7e416ec08b02ae1a597fcd6386bdb9bc7b4109900e42b8077617116111827fec617e5a37f2" + +[update] +[update.modrinth] +mod-id = "nqFNRALS" +version = "nCXGFcYp" diff --git a/client_pack/mods/mechanicals-lib.pw.toml b/client_pack/mods/mechanicals-lib.pw.toml new file mode 100644 index 0000000..1279daf --- /dev/null +++ b/client_pack/mods/mechanicals-lib.pw.toml @@ -0,0 +1,13 @@ +name = "Mechanicals Lib" +filename = "mechanicals-1.21.1-1.1.6.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ProvjTA7/versions/GBSlpwLT/mechanicals-1.21.1-1.1.6.jar" +hash-format = "sha512" +hash = "84bfcd2cbd061eb1516fc2adbca0e599a38372b80ef9f5713de70be48d072243b1c5cb84c13177c35f333b6bcf16aa1f70dbd0964ed18e14c2bff733c531c6bc" + +[update] +[update.modrinth] +mod-id = "ProvjTA7" +version = "GBSlpwLT" diff --git a/client_pack/mods/mekanism-additions.pw.toml b/client_pack/mods/mekanism-additions.pw.toml new file mode 100644 index 0000000..66b6c5d --- /dev/null +++ b/client_pack/mods/mekanism-additions.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Additions" +filename = "MekanismAdditions-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/a6F3uASn/versions/6mkdykZa/MekanismAdditions-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "6bdd4b00d19f316c7486ec27e78fe1204427fea4ad1c15c13a395956c4d1d7eb7f55438f0399b623820eae02fa5a690cece6cbb57c1b5923e1185c389bf0ddb7" + +[update] +[update.modrinth] +mod-id = "a6F3uASn" +version = "6mkdykZa" diff --git a/client_pack/mods/mekanism-covers.pw.toml b/client_pack/mods/mekanism-covers.pw.toml new file mode 100644 index 0000000..2dd17d4 --- /dev/null +++ b/client_pack/mods/mekanism-covers.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Covers" +filename = "mekanismcovers-1.3-BETA+1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E3sGVcD8/versions/89QaQ0n0/mekanismcovers-1.3-BETA%2B1.21.jar" +hash-format = "sha512" +hash = "d9a295c83dc79bcfe550b171e7dc1d5be9dbddf9047f9b843e52e083a3a3e62b3a660b346a8fa582d49ed618bad53403d3e8d01fd71694f11428eebdfca6b8b3" + +[update] +[update.modrinth] +mod-id = "E3sGVcD8" +version = "89QaQ0n0" diff --git a/client_pack/mods/mekanism-generators.pw.toml b/client_pack/mods/mekanism-generators.pw.toml new file mode 100644 index 0000000..6aa4210 --- /dev/null +++ b/client_pack/mods/mekanism-generators.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Generators" +filename = "MekanismGenerators-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/OFVYKsAk/versions/a6gl7srE/MekanismGenerators-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "6c3d5b7ea2f67f43c3d169c97de2855a7085f38019cf426e015ccc8ca9bc4f66e96b1cdf4a9afdc92bef7b2e236f16c81415ed5e48736805d5961d29525316d6" + +[update] +[update.modrinth] +mod-id = "OFVYKsAk" +version = "a6gl7srE" diff --git a/client_pack/mods/mekanism-tools.pw.toml b/client_pack/mods/mekanism-tools.pw.toml new file mode 100644 index 0000000..05511dc --- /dev/null +++ b/client_pack/mods/mekanism-tools.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Tools" +filename = "MekanismTools-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/tqQpq1lt/versions/v5zlSE9s/MekanismTools-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "0dccc47efbb9e3bf3b7df886cefff4a6b9a3f683bf0df3e54409dc3a4c6459eef95ce0af93adf345b868e5b7dcb7a2bb0af68f0a94acfa69975bfbb278e4902f" + +[update] +[update.modrinth] +mod-id = "tqQpq1lt" +version = "v5zlSE9s" diff --git a/client_pack/mods/mekanism-unleashed.pw.toml b/client_pack/mods/mekanism-unleashed.pw.toml new file mode 100644 index 0000000..c390d6b --- /dev/null +++ b/client_pack/mods/mekanism-unleashed.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Unleashed" +filename = "mekanism_unleashed-0.3.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/IZciqufR/versions/jCGHoMoI/mekanism_unleashed-0.3.2.jar" +hash-format = "sha512" +hash = "93c363ff5ded4a363f9feaa6f6402f72881cd471416ceb58bb902289e69915910fb99a884c48050d3e99c84ae370c9fbe327403d6195afb08d5e3ce78cb97bd6" + +[update] +[update.modrinth] +mod-id = "IZciqufR" +version = "jCGHoMoI" diff --git a/client_pack/mods/mekanism.pw.toml b/client_pack/mods/mekanism.pw.toml new file mode 100644 index 0000000..394a32d --- /dev/null +++ b/client_pack/mods/mekanism.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism" +filename = "Mekanism-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Ce6I4WUE/versions/5KzzycBT/Mekanism-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "66745825330a98f3e4a5ea3a44aff8b00870f715c144edc38dd2f61b4240589600b58ae89efac3b54dbb5aa430b1059dac1a28fd71cac5cc9002bbeb5ba3f22b" + +[update] +[update.modrinth] +mod-id = "Ce6I4WUE" +version = "5KzzycBT" diff --git a/client_pack/mods/mekanism_extra.pw.toml b/client_pack/mods/mekanism_extra.pw.toml new file mode 100644 index 0000000..d7d7f75 --- /dev/null +++ b/client_pack/mods/mekanism_extra.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Extra" +filename = "mekanism_extras-1.21.1-1.4.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/HUZkxNTQ/versions/fqPYikeY/mekanism_extras-1.21.1-1.4.1.jar" +hash-format = "sha512" +hash = "03abb79bc79adab24fd674ab4d5fc84aedcde94a2304d199ebba59c6cef4c8a6283a59fd8d02b2ec0a85c832903c671db7b1f915718b4626d2bd9ed681557761" + +[update] +[update.modrinth] +mod-id = "HUZkxNTQ" +version = "fqPYikeY" diff --git a/client_pack/mods/mekanismmoremachine.pw.toml b/client_pack/mods/mekanismmoremachine.pw.toml new file mode 100644 index 0000000..ac6c213 --- /dev/null +++ b/client_pack/mods/mekanismmoremachine.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism:More Machine" +filename = "mekmm-1.21.1-1.4.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/qDJXZJTz/versions/A8xaRuSG/mekmm-1.21.1-1.4.0.jar" +hash-format = "sha512" +hash = "bcab5179c5d4767bec0556b6267dc0a5cfe97b768b9c30a1647997dc278e9f7cfd1314aaca5692879ca07af671e98662e6843c183f073dffe6766ea9431f3077" + +[update] +[update.modrinth] +mod-id = "qDJXZJTz" +version = "A8xaRuSG" diff --git a/client_pack/mods/merequester.pw.toml b/client_pack/mods/merequester.pw.toml new file mode 100644 index 0000000..a018841 --- /dev/null +++ b/client_pack/mods/merequester.pw.toml @@ -0,0 +1,13 @@ +name = "ME Requester" +filename = "merequester-neoforge-1.21.1-1.4.3.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E6BFl96N/versions/Zf5HhnF1/merequester-neoforge-1.21.1-1.4.3.jar" +hash-format = "sha512" +hash = "4411670eaea8403414c773646cb9498291e843ba995100c4fca4ab53d5ab3aa0cbf913921403c8af1d32b67ab940bac8c8a16a910069f6f7e2902e42e11f66b7" + +[update] +[update.modrinth] +mod-id = "E6BFl96N" +version = "Zf5HhnF1" diff --git a/client_pack/mods/midnightlib.pw.toml b/client_pack/mods/midnightlib.pw.toml new file mode 100644 index 0000000..82e7df7 --- /dev/null +++ b/client_pack/mods/midnightlib.pw.toml @@ -0,0 +1,13 @@ +name = "MidnightLib" +filename = "midnightlib-neoforge-1.9.3+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/codAaoxh/versions/6Gv5jvTB/midnightlib-neoforge-1.9.3%2B1.21.1.jar" +hash-format = "sha512" +hash = "5913e7e8ebbffb72323514aa5bedce19056884416d0a33b38af1761ee74cfa600996cde9bd7d709ee2158476faa2e735b2e6ea6107296d471d2c5b7b35d9da6c" + +[update] +[update.modrinth] +mod-id = "codAaoxh" +version = "6Gv5jvTB" diff --git a/client_pack/mods/modernfix.pw.toml b/client_pack/mods/modernfix.pw.toml new file mode 100644 index 0000000..4bcf0f2 --- /dev/null +++ b/client_pack/mods/modernfix.pw.toml @@ -0,0 +1,13 @@ +name = "ModernFix" +filename = "modernfix-neoforge-5.27.20+mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nmDcB62a/versions/VsJnrw8k/modernfix-neoforge-5.27.20%2Bmc1.21.1.jar" +hash-format = "sha512" +hash = "b1f0d3ac5ada811b8204bc82adc1cab8ff71752da8e97ae381f21be5f778c199ae59108850febc87d1c46757b27ccbb2669f3fc6340c837db450a205ca2d8c9c" + +[update] +[update.modrinth] +mod-id = "nmDcB62a" +version = "VsJnrw8k" diff --git a/client_pack/mods/modular-routers.pw.toml b/client_pack/mods/modular-routers.pw.toml new file mode 100644 index 0000000..11a59c8 --- /dev/null +++ b/client_pack/mods/modular-routers.pw.toml @@ -0,0 +1,13 @@ +name = "Modular Routers" +filename = "modular-routers-13.2.7+mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "386fcae227b6d7963ba11e9808be4bc0910079da" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8478801 +project-id = 250294 diff --git a/client_pack/mods/moonlight.pw.toml b/client_pack/mods/moonlight.pw.toml new file mode 100644 index 0000000..5c2ad15 --- /dev/null +++ b/client_pack/mods/moonlight.pw.toml @@ -0,0 +1,13 @@ +name = "Moonlight Lib" +filename = "moonlight-1.21.1-3.4.0-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/twkfQtEc/versions/fiyhLK1O/moonlight-1.21.1-3.4.0-neoforge.jar" +hash-format = "sha512" +hash = "ce0505ea58e0dbaf3b02be0f9ca084c8680ebc2244695fc9eebe32a73055359932657235b6214718dca5503bb7874e3bd6fc2aaf148c27efd494faadc23fa70f" + +[update] +[update.modrinth] +mod-id = "twkfQtEc" +version = "fiyhLK1O" diff --git a/client_pack/mods/mouse-tweaks.pw.toml b/client_pack/mods/mouse-tweaks.pw.toml new file mode 100644 index 0000000..b8c5a32 --- /dev/null +++ b/client_pack/mods/mouse-tweaks.pw.toml @@ -0,0 +1,13 @@ +name = "Mouse Tweaks" +filename = "MouseTweaks-neoforge-mc1.21-2.26.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "6dae57f4f50f7808d2ed9a18f6cd1c0d4640c6bc" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5637846 +project-id = 60089 diff --git a/client_pack/mods/mutant-monsters.pw.toml b/client_pack/mods/mutant-monsters.pw.toml new file mode 100644 index 0000000..898838e --- /dev/null +++ b/client_pack/mods/mutant-monsters.pw.toml @@ -0,0 +1,13 @@ +name = "Mutant Monsters" +filename = "MutantMonsters-v21.1.1-1.21.1-NeoForge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "c9981cf323d5e0fd49387ad20dafec1f58b2c88d" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7232511 +project-id = 852665 diff --git a/client_pack/mods/nyfs-spiders.pw.toml b/client_pack/mods/nyfs-spiders.pw.toml new file mode 100644 index 0000000..f7ea4d6 --- /dev/null +++ b/client_pack/mods/nyfs-spiders.pw.toml @@ -0,0 +1,13 @@ +name = "Nyf's Spiders" +filename = "nyfsspiders-neoforge-1.21.1-3.0.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/dOGM7ccu/versions/pjXVTyLu/nyfsspiders-neoforge-1.21.1-3.0.1.jar" +hash-format = "sha512" +hash = "820b4a983f2ec117f96b9fe2eda110b17e3da3b80f7c7c18a76b09781f1a9eb325490de1e69cea2270db6d1b27eefccee1dd022863b190bb88a660d48f602f13" + +[update] +[update.modrinth] +mod-id = "dOGM7ccu" +version = "pjXVTyLu" diff --git a/client_pack/mods/per-spatium.pw.toml b/client_pack/mods/per-spatium.pw.toml new file mode 100644 index 0000000..317e490 --- /dev/null +++ b/client_pack/mods/per-spatium.pw.toml @@ -0,0 +1,13 @@ +name = "Ad Astra: Per Spatium Et Tempus" +filename = "perspatium-1.21.1-1.1.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/IHyWDPnp/versions/6tlFwckH/perspatium-1.21.1-1.1.0.jar" +hash-format = "sha512" +hash = "41041066c3b09251804c4ddb3804b0bdbaee2695250de1af4cb7cfad1540d6e83826c9817a7f7817d6ec95ba219d941914e628f10b2fe810119ca6559bf73159" + +[update] +[update.modrinth] +mod-id = "IHyWDPnp" +version = "6tlFwckH" diff --git a/client_pack/mods/playeranimator.pw.toml b/client_pack/mods/playeranimator.pw.toml new file mode 100644 index 0000000..7483336 --- /dev/null +++ b/client_pack/mods/playeranimator.pw.toml @@ -0,0 +1,13 @@ +name = "playerAnimator" +filename = "player-animation-lib-forge-2.0.4+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/gedNE4y2/versions/HJZB6bmA/player-animation-lib-forge-2.0.4%2B1.21.1.jar" +hash-format = "sha512" +hash = "fc00450fb6c95ec1779021bdc726122dacb5915c6baddaacc981cd221b01b8db35f2a0dfde5d6fa6766d877266dc82f58854f571ea53cc5c4d468b80e1548a5f" + +[update] +[update.modrinth] +mod-id = "gedNE4y2" +version = "HJZB6bmA" diff --git a/client_pack/mods/potentials.pw.toml b/client_pack/mods/potentials.pw.toml new file mode 100644 index 0000000..bd5965e --- /dev/null +++ b/client_pack/mods/potentials.pw.toml @@ -0,0 +1,13 @@ +name = "Potentials" +filename = "potentials-neoforge-1.21-0.7.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/J9pKOkxP/versions/EEjnSxLK/potentials-neoforge-1.21-0.7.1.jar" +hash-format = "sha512" +hash = "fe42e40aa1fec39a6e6d0e24ba54c994979868d77da4241fb629d3752a72c45b466a79889a15e9f6f1114c93e39ca74818622efc25f10af004bc54371db79362" + +[update] +[update.modrinth] +mod-id = "J9pKOkxP" +version = "EEjnSxLK" diff --git a/client_pack/mods/puzzles-lib.pw.toml b/client_pack/mods/puzzles-lib.pw.toml new file mode 100644 index 0000000..d1bed4f --- /dev/null +++ b/client_pack/mods/puzzles-lib.pw.toml @@ -0,0 +1,13 @@ +name = "Puzzles Lib" +filename = "PuzzlesLib-v21.1.52-1.21.1-NeoForge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "66182c3affb9f99624d1d770ca168d2a63af83f6" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8251525 +project-id = 495476 diff --git a/client_pack/mods/rechiseled-create.pw.toml b/client_pack/mods/rechiseled-create.pw.toml new file mode 100644 index 0000000..7f91c70 --- /dev/null +++ b/client_pack/mods/rechiseled-create.pw.toml @@ -0,0 +1,13 @@ +name = "Rechiseled: Create" +filename = "rechiseledcreate-1.1.1-neoforge-mc1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E6867niZ/versions/VnOezhJR/rechiseledcreate-1.1.1-neoforge-mc1.21.jar" +hash-format = "sha512" +hash = "ca77dea4dd3276105176578855b0ffd9f48256bed58701a86171b05db1116a29592871ca7d6d5acc9a023270a45654feb4ab7153026eb751d567e7bf892ca560" + +[update] +[update.modrinth] +mod-id = "E6867niZ" +version = "VnOezhJR" diff --git a/client_pack/mods/rechiseled.pw.toml b/client_pack/mods/rechiseled.pw.toml new file mode 100644 index 0000000..e5371db --- /dev/null +++ b/client_pack/mods/rechiseled.pw.toml @@ -0,0 +1,13 @@ +name = "Rechiseled" +filename = "rechiseled-1.2.5-neoforge-mc1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/B0g2vT6l/versions/S5FnErRw/rechiseled-1.2.5-neoforge-mc1.21.jar" +hash-format = "sha512" +hash = "d849bc3e775577978bbf96dccee11b0904fa928c556a12e05adf759edab9479bd757f490380475e974eaa137c566ffe8bfb62d5df19f966dfd99b67a2fe0ee9b" + +[update] +[update.modrinth] +mod-id = "B0g2vT6l" +version = "S5FnErRw" diff --git a/client_pack/mods/reintegrated-chipped.pw.toml b/client_pack/mods/reintegrated-chipped.pw.toml new file mode 100644 index 0000000..831f598 --- /dev/null +++ b/client_pack/mods/reintegrated-chipped.pw.toml @@ -0,0 +1,13 @@ +name = "Reintegrated: Chipped" +filename = "reintegrated_chipped-1.0.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/5Rel2hNl/versions/L60LNn5J/reintegrated_chipped-1.0.0.jar" +hash-format = "sha512" +hash = "842fab7544199accebde2e33872439e4f1858d590edd651f90a7147914763f59dc1c25c179809c80161ebc78cd12bef3b847ac385780e5edc950c1503fb2fe78" + +[update] +[update.modrinth] +mod-id = "5Rel2hNl" +version = "L60LNn5J" 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/resourceful-lib.pw.toml b/client_pack/mods/resourceful-lib.pw.toml new file mode 100644 index 0000000..70d15a0 --- /dev/null +++ b/client_pack/mods/resourceful-lib.pw.toml @@ -0,0 +1,13 @@ +name = "Resourceful Lib" +filename = "resourcefullib-neoforge-1.21-3.0.12.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "24389c8e48ff0e8594e4686b750c494c66a5f8df" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5973188 +project-id = 570073 diff --git a/client_pack/mods/rhino.pw.toml b/client_pack/mods/rhino.pw.toml new file mode 100644 index 0000000..420b15b --- /dev/null +++ b/client_pack/mods/rhino.pw.toml @@ -0,0 +1,13 @@ +name = "Rhino" +filename = "rhino-2101.2.7-build.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sk9knFPE/versions/cQ4POTah/rhino-2101.2.7-build.85.jar" +hash-format = "sha512" +hash = "0a6c7f4410281aeb03b815ec03487a8e80a4d3dae013d81282e447bf9c08144ef57318af614ea6d40b7d9a8c25031c557890ec792a5895a82467c1643116f693" + +[update] +[update.modrinth] +mod-id = "sk9knFPE" +version = "cQ4POTah" diff --git a/client_pack/mods/rpl.pw.toml b/client_pack/mods/rpl.pw.toml new file mode 100644 index 0000000..7bb334b --- /dev/null +++ b/client_pack/mods/rpl.pw.toml @@ -0,0 +1,13 @@ +name = "Ritchie's Projectile Library" +filename = "ritchiesprojectilelib-2.1.2+mc.1.21.1-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/B3pb093D/versions/hZ6B2Z0x/ritchiesprojectilelib-2.1.2%2Bmc.1.21.1-neoforge.jar" +hash-format = "sha512" +hash = "6d64c84505a5a8fbb96d106603065465c5a2314ec09636900c5c1a31014c12fa68f1a41e758313cbf0d6f95d9a1f53bd67339020f7d8db0e184c23f66aee0330" + +[update] +[update.modrinth] +mod-id = "B3pb093D" +version = "hZ6B2Z0x" diff --git a/client_pack/mods/sable.pw.toml b/client_pack/mods/sable.pw.toml new file mode 100644 index 0000000..75c10eb --- /dev/null +++ b/client_pack/mods/sable.pw.toml @@ -0,0 +1,13 @@ +name = "Sable" +filename = "sable-neoforge-1.21.1-2.0.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/T9PomCSv/versions/U678xqle/sable-neoforge-1.21.1-2.0.5.jar" +hash-format = "sha512" +hash = "bf3d8c87bcc5efb99afffd50305fc978086ed48a63e106816e3a8a3901f8052f4480ea527dbd7d4003f7775ed4d020529098034f4e307aefac9cc42df2b4c19a" + +[update] +[update.modrinth] +mod-id = "T9PomCSv" +version = "U678xqle" diff --git a/client_pack/mods/simply-swords.pw.toml b/client_pack/mods/simply-swords.pw.toml new file mode 100644 index 0000000..14039f8 --- /dev/null +++ b/client_pack/mods/simply-swords.pw.toml @@ -0,0 +1,13 @@ +name = "Simply Swords" +filename = "simplyswords-neoforge-1.63.0-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/bK3Ubu9p/versions/eREhvVpQ/simplyswords-neoforge-1.63.0-1.21.1.jar" +hash-format = "sha512" +hash = "8e52382f57806aabd4a955972b9fd5cbee5494700aa03390fa3c9d1c21dabe30c99f4ee728489e92b36f8eac9f9e3fad0a8a8c57967dab29c818963aebf6bfb6" + +[update] +[update.modrinth] +mod-id = "bK3Ubu9p" +version = "eREhvVpQ" diff --git a/client_pack/mods/simply-tooltips.pw.toml b/client_pack/mods/simply-tooltips.pw.toml new file mode 100644 index 0000000..c9444eb --- /dev/null +++ b/client_pack/mods/simply-tooltips.pw.toml @@ -0,0 +1,13 @@ +name = "Simply Tooltips" +filename = "SimplyTooltips-neoforge-0.1.3.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/6avVoBVB/versions/Ic73EcJ6/SimplyTooltips-neoforge-0.1.3.jar" +hash-format = "sha512" +hash = "de69a684be47c7e25e6f8612f4aabe0fbf12816a40a8432eb9176b7f2d766e866dd96efbc0952e9dd683e97747ee15e1fe4d62cec1485c5c8dde9e58eef673ad" + +[update] +[update.modrinth] +mod-id = "6avVoBVB" +version = "Ic73EcJ6" diff --git a/client_pack/mods/slice-and-dice.pw.toml b/client_pack/mods/slice-and-dice.pw.toml new file mode 100644 index 0000000..5d6fdb8 --- /dev/null +++ b/client_pack/mods/slice-and-dice.pw.toml @@ -0,0 +1,13 @@ +name = "Create Slice & Dice" +filename = "sliceanddice-4.3.3-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/GmjmRQ0A/versions/N67LJgrN/sliceanddice-4.3.3-neoforge.jar" +hash-format = "sha512" +hash = "3bdbd282ae5aa11ef6c186b752497541730b50fb400c4962230bcd7734cfe4e8daa2ee565387450dfe0eb6deaa0fa44bf81f99c788bac09b1a60d8f1991db37f" + +[update] +[update.modrinth] +mod-id = "GmjmRQ0A" +version = "N67LJgrN" diff --git a/client_pack/mods/sodium.pw.toml b/client_pack/mods/sodium.pw.toml new file mode 100644 index 0000000..56bddb5 --- /dev/null +++ b/client_pack/mods/sodium.pw.toml @@ -0,0 +1,13 @@ +name = "Sodium" +filename = "sodium-neoforge-0.8.13-beta.2+mc1.21.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/AANobbMI/versions/jfHZ5pyN/sodium-neoforge-0.8.13-beta.2%2Bmc1.21.1.jar" +hash-format = "sha512" +hash = "6e9273862fb3397b5abea7ad37a65c3cd6d6bcb5cc06634d2b62b49999c00dac8972e4600e1d5b3c3936d0a92ccfad8ed4d04ed065595797d3c1e559f20aa08c" + +[update] +[update.modrinth] +mod-id = "AANobbMI" +version = "jfHZ5pyN" \ No newline at end of file diff --git a/client_pack/mods/sophisticated-backpacks.pw.toml b/client_pack/mods/sophisticated-backpacks.pw.toml new file mode 100644 index 0000000..408088d --- /dev/null +++ b/client_pack/mods/sophisticated-backpacks.pw.toml @@ -0,0 +1,13 @@ +name = "Sophisticated Backpacks" +filename = "sophisticatedbackpacks-1.21.1-3.25.77.2086.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "a240d6f4469e564cfb139e96bb9bf5dc6ea3a8e6" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8650198 +project-id = 422301 diff --git a/client_pack/mods/sophisticated-core.pw.toml b/client_pack/mods/sophisticated-core.pw.toml new file mode 100644 index 0000000..2085840 --- /dev/null +++ b/client_pack/mods/sophisticated-core.pw.toml @@ -0,0 +1,13 @@ +name = "Sophisticated Core" +filename = "sophisticatedcore-1.21.1-1.4.87.2270.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "9e4a1a458b136ecca01b8ddb4e470bcb7a1a6bab" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8658334 +project-id = 618298 diff --git a/client_pack/mods/sophisticated-storage.pw.toml b/client_pack/mods/sophisticated-storage.pw.toml new file mode 100644 index 0000000..5d44f6d --- /dev/null +++ b/client_pack/mods/sophisticated-storage.pw.toml @@ -0,0 +1,13 @@ +name = "Sophisticated Storage" +filename = "sophisticatedstorage-1.21.1-1.5.88.2097.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "212202e461ec5f4a42563a2b77dade42e97e866a" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8679980 +project-id = 619320 diff --git a/client_pack/mods/sound-physics-remastered.pw.toml b/client_pack/mods/sound-physics-remastered.pw.toml new file mode 100644 index 0000000..09aa2e3 --- /dev/null +++ b/client_pack/mods/sound-physics-remastered.pw.toml @@ -0,0 +1,13 @@ +name = "Sound Physics Remastered" +filename = "sound-physics-remastered-neoforge-1.21.1-1.5.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "31cf754f9e5f62d1ca257f297e5dce394024696c" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7032247 +project-id = 535489 diff --git a/client_pack/mods/stellar-view-mixin-renderer.pw.toml b/client_pack/mods/stellar-view-mixin-renderer.pw.toml new file mode 100644 index 0000000..6df25cf --- /dev/null +++ b/client_pack/mods/stellar-view-mixin-renderer.pw.toml @@ -0,0 +1,13 @@ +name = "Stellar View Mixin Renderer" +filename = "stellarview_mixin_renderer-1.21.1-neoforge-2.1.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/gJ5LPGfO/versions/araxsNJm/stellarview_mixin_renderer-1.21.1-neoforge-2.1.1.jar" +hash-format = "sha512" +hash = "79e452185e1b1445a53982db1dc4e0b14e0e4e7c5c036453c8b8f7b53f6ece2996241fbaa61c4e3cf02064efcee1335d3dadfb05f684e860edf1bf8de373f8f9" + +[update] +[update.modrinth] +mod-id = "gJ5LPGfO" +version = "araxsNJm" diff --git a/client_pack/mods/stellaris-stellarview-compatibility.pw.toml b/client_pack/mods/stellaris-stellarview-compatibility.pw.toml new file mode 100644 index 0000000..b16e951 --- /dev/null +++ b/client_pack/mods/stellaris-stellarview-compatibility.pw.toml @@ -0,0 +1,13 @@ +name = "Stellaris StellarView Compatibility" +filename = "stellaris_stellarview_compatibility-1.0.0-neoforge.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/SrNny2Go/versions/yn1ptBI4/stellaris_stellarview_compatibility-1.0.0-neoforge.jar" +hash-format = "sha512" +hash = "1f4b63ef3cadefd56ba99ef452a106ffaabf0a50e75cb94892c5d6e8b9b652b3546115068d2ec9f590a4e07418d244794273093c276be3e5b67e2ecf22d1c394" + +[update] +[update.modrinth] +mod-id = "SrNny2Go" +version = "yn1ptBI4" diff --git a/client_pack/mods/stellaris.pw.toml b/client_pack/mods/stellaris.pw.toml new file mode 100644 index 0000000..6434b57 --- /dev/null +++ b/client_pack/mods/stellaris.pw.toml @@ -0,0 +1,13 @@ +name = "Stellaris" +filename = "stellaris-1.21-neoforge-1.4.25.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ItTQpuBn/versions/5BraaKfR/stellaris-1.21-neoforge-1.4.25.jar" +hash-format = "sha512" +hash = "32045825077f49d2a5e63e3197ff95878996c16a0c00adea5d185cf414f5765c46f92ee828367805eb90fd681e6613b3f1500568b2719eaccd6facac6e69ac79" + +[update] +[update.modrinth] +mod-id = "ItTQpuBn" +version = "5BraaKfR" diff --git a/client_pack/mods/stellarview.pw.toml b/client_pack/mods/stellarview.pw.toml new file mode 100644 index 0000000..bc6bdd6 --- /dev/null +++ b/client_pack/mods/stellarview.pw.toml @@ -0,0 +1,13 @@ +name = "Stellar View" +filename = "Stellar View-1.21.1-0.5.2-NeoForge.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/Iairjv0A/versions/QD13LaRR/Stellar%20View-1.21.1-0.5.2-NeoForge.jar" +hash-format = "sha512" +hash = "76040793d7bae9dd2b557f4f8c1bc6eeb00521ba21582bff2c57a91b0d5709e5c0a9c1ba980f48e96aebde2a64d288d58df885ecaf82178fae8eb5fbd0982b55" + +[update] +[update.modrinth] +mod-id = "Iairjv0A" +version = "QD13LaRR" diff --git a/client_pack/mods/supermartijn642s-config-lib.pw.toml b/client_pack/mods/supermartijn642s-config-lib.pw.toml new file mode 100644 index 0000000..6d7fc37 --- /dev/null +++ b/client_pack/mods/supermartijn642s-config-lib.pw.toml @@ -0,0 +1,13 @@ +name = "SuperMartijn642's Config Lib" +filename = "supermartijn642configlib-1.1.8-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "07452242e389975e8a88b97066f4bae6a4ebe574" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5546996 +project-id = 438332 diff --git a/client_pack/mods/supermartijn642s-core-lib.pw.toml b/client_pack/mods/supermartijn642s-core-lib.pw.toml new file mode 100644 index 0000000..15f1413 --- /dev/null +++ b/client_pack/mods/supermartijn642s-core-lib.pw.toml @@ -0,0 +1,13 @@ +name = "SuperMartijn642's Core Lib" +filename = "supermartijn642corelib-1.1.24-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "e77709df2499085d6576584b883a33285b2996b9" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8623666 +project-id = 454372 diff --git a/client_pack/mods/supplementaries-squared.pw.toml b/client_pack/mods/supplementaries-squared.pw.toml new file mode 100644 index 0000000..bdcd398 --- /dev/null +++ b/client_pack/mods/supplementaries-squared.pw.toml @@ -0,0 +1,13 @@ +name = "Supplementaries Squared" +filename = "suppsquared-neoforge-1.21-1.2.18.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/dCCkNFwE/versions/1uYFhgHN/suppsquared-neoforge-1.21-1.2.18.jar" +hash-format = "sha512" +hash = "e396e5b460fcbed33fb9ee53c6e58e47df7a98a93354c91d5a28d407d82eb835baeabbc92fe7cf41fcfe070fdd7f5b78b1e2ba302eb1cec149c7cc09f5bdbad9" + +[update] +[update.modrinth] +mod-id = "dCCkNFwE" +version = "1uYFhgHN" diff --git a/client_pack/mods/supplementaries.pw.toml b/client_pack/mods/supplementaries.pw.toml new file mode 100644 index 0000000..db395a4 --- /dev/null +++ b/client_pack/mods/supplementaries.pw.toml @@ -0,0 +1,13 @@ +name = "Supplementaries" +filename = "supplementaries-1.21.1-3.8.9-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/fFEIiSDQ/versions/ZHJvgW8G/supplementaries-1.21.1-3.8.9-neoforge.jar" +hash-format = "sha512" +hash = "c8d6c2aa5387e1ac49935b44895f3649d054cb7d3660c5fa5b363623d10f03974e75eb86ad426c81705a0453bf406b82e5d71118586b9dd8dc41cd60b81f44b4" + +[update] +[update.modrinth] +mod-id = "fFEIiSDQ" +version = "ZHJvgW8G" 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/mods/the-doctor-who-client-mod.pw.toml b/client_pack/mods/the-doctor-who-client-mod.pw.toml new file mode 100644 index 0000000..e6b6c13 --- /dev/null +++ b/client_pack/mods/the-doctor-who-client-mod.pw.toml @@ -0,0 +1,13 @@ +name = "THE Doctor Who Client Mod" +filename = "tdwcm-0.2.1.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/96oAiXlp/versions/xpTvgljr/tdwcm-0.2.1.jar" +hash-format = "sha512" +hash = "68b3de21b7d3f6a5bc8d8e386a8a80e56828eb8c7335be9994875533120052c0c689d524ec140fec850cf2c13c40c6daac3f6f3cd3bff0df7c0ad2ab1888a292" + +[update] +[update.modrinth] +mod-id = "96oAiXlp" +version = "xpTvgljr" diff --git a/client_pack/mods/thevoiddimension.pw.toml b/client_pack/mods/thevoiddimension.pw.toml new file mode 100644 index 0000000..23b2865 --- /dev/null +++ b/client_pack/mods/thevoiddimension.pw.toml @@ -0,0 +1,13 @@ +name = "The Void Dimension" +filename = "thevoiddimension-neoforge-0.0.1+1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/SrhObyPX/versions/NK6DSGf1/thevoiddimension-neoforge-0.0.1%2B1.21.jar" +hash-format = "sha512" +hash = "f2b545e33d3c805958c140b8c2ec2686206b3d63155fe73c086288949a527572eadc09ffdf0cf473e4ce37c3abdf0b6c547fb391a4c1655f9ea46213b2d60b28" + +[update] +[update.modrinth] +mod-id = "SrhObyPX" +version = "NK6DSGf1" diff --git a/client_pack/mods/titanium.pw.toml b/client_pack/mods/titanium.pw.toml new file mode 100644 index 0000000..5acf4ee --- /dev/null +++ b/client_pack/mods/titanium.pw.toml @@ -0,0 +1,13 @@ +name = "Titanium" +filename = "titanium-1.21-4.0.45.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "c718d4d8713b83964f9b8feea4443a25feb84fc9" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8426819 +project-id = 287342 diff --git a/client_pack/mods/visuality-forge.pw.toml b/client_pack/mods/visuality-forge.pw.toml new file mode 100644 index 0000000..aafa366 --- /dev/null +++ b/client_pack/mods/visuality-forge.pw.toml @@ -0,0 +1,13 @@ +name = "Visuality: Reforged" +filename = "visuality-forge-3.0.0.jar" +side = "client" + +[download] +url = "https://cdn.modrinth.com/data/z13R7Et1/versions/kOdevgPm/visuality-forge-3.0.0.jar" +hash-format = "sha512" +hash = "f90754b93efff9fc466351446e916b1aac314e8834985f97725fff9a4978bc5519e3497303c7136a2e8b0aedda36ae674858ddfe3f01b63d1886fa906440e373" + +[update] +[update.modrinth] +mod-id = "z13R7Et1" +version = "kOdevgPm" diff --git a/client_pack/mods/waystones.pw.toml b/client_pack/mods/waystones.pw.toml new file mode 100644 index 0000000..3c338ce --- /dev/null +++ b/client_pack/mods/waystones.pw.toml @@ -0,0 +1,13 @@ +name = "Waystones" +filename = "waystones-neoforge-1.21.1-21.1.41.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/LOpKHB2A/versions/fxszxKRW/waystones-neoforge-1.21.1-21.1.41.jar" +hash-format = "sha512" +hash = "18a11f82b77ba520c5871f9815f008b3e1ad11af16fa8498167091c34a33be5d0aa9b2761eef8cefac2e22d67da32a76fb2e01fd3d3248e3f0cfc2c139603d37" + +[update] +[update.modrinth] +mod-id = "LOpKHB2A" +version = "fxszxKRW" diff --git a/client_pack/mods/worldportal.pw.toml b/client_pack/mods/worldportal.pw.toml new file mode 100644 index 0000000..1fbb433 --- /dev/null +++ b/client_pack/mods/worldportal.pw.toml @@ -0,0 +1,13 @@ +name = "World Portal (patched - no EntityLMixin, fixes sable mixin conflict)" +filename = "worldportal-neoforge-0.0.10+1.21-patched.jar" +side = "server" + +[download] +url = "https://git.mithraic.cloud/ad3laid3/SciCraft/raw/branch/main/tools/patches/worldportal-neoforge-0.0.10+1.21-patched.jar" +hash-format = "sha512" +hash = "efbf5fac6b4cb89383e4c9477fbada35387c17fdfea9f9e9a063cf6441c5aebd868eedb4114091105d542516e3736c1517242142fff5f9b341a9866ed6e2005e" + +[update] +[update.modrinth] +mod-id = "A2PZGios" +version = "kitApnnw" diff --git a/client_pack/pack.toml b/client_pack/pack.toml new file mode 100644 index 0000000..513bfff --- /dev/null +++ b/client_pack/pack.toml @@ -0,0 +1,13 @@ +name = "SCICRAFT - The Dark Photon Protocol" +author = "SciCraft Server" +version = "1.0.0" +pack-format = "packwiz:1.1.0" + +[index] +file = "index.toml" +hash-format = "sha256" +hash = "e00761ce338bdd5fe09338b04cb68660f8ccbe6d3c646dda8ea96e751f4d5b5a" + +[versions] +minecraft = "1.21.1" +neoforge = "21.1.248" 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 new file mode 100644 index 0000000..84354c2 --- /dev/null +++ b/client_pack/shaderpacks/README.md @@ -0,0 +1,33 @@ +# SCICRAFT Shader Pack — MakeUp Ultra Fast + +The modpack uses **Iris Shaders (native NeoForge 1.21.1)** as the shader loader. + +**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 + +## 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 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/00-index.md b/docs/00-index.md new file mode 100644 index 0000000..a684268 --- /dev/null +++ b/docs/00-index.md @@ -0,0 +1,35 @@ +# Docs Index — SCICRAFT: The Dark Photon Protocol + +**NeoForge 1.21.1 (21.1.248) · packwiz v1.1.0 · version 1.0.0** + +This folder holds every operational guide. Story/canon content lives in +`STORY/` (see `STORY/00-index.md`); repo overview lives in `README.md`. + +## Guides + +| File | What it covers | +|------|----------------| +| `setup.md` | Install & update (server + client), adding/removing mods | +| `server.md` | Server properties, JVM flags, operations, troubleshooting | +| `performance.md` | Shader tuning (4GB VRAM preset) and client perf notes | +| `mods.md` | Mod feature hotspots, pack layout, client-only list | + +## Quick links + +- **Story** → `STORY/00-index.md` +- **Repo overview** → `README.md` +- **Tools** → `tools/` (`gen_story.py`, `sync_kubejs.sh`, `gen_textures.py`) + +## The two packs + +| Path | Contents | +|------|----------| +| `./server_pack/` | Server-only modpack (135 mod files). No shaders, no client render mods. | +| `./client_pack/` | Full client pack (144 mod files). Adds Iris + Sodium (native NeoForge), Cull Leaves, LambDynamicLights, Dynamic FPS, 3D Skin Layers, Visuality, flywheel compat. | + +Keep them in sync after any change: + +```bash +bash tools/sync_kubejs.sh # kubejs/ → client_pack +packwiz refresh --dir server_pack && packwiz refresh --dir client_pack +``` \ No newline at end of file diff --git a/docs/mods.md b/docs/mods.md new file mode 100644 index 0000000..37607a0 --- /dev/null +++ b/docs/mods.md @@ -0,0 +1,110 @@ +# Mods — Hotspots, Pack Layout & Compatibility + +## Mod Feature Hotspots (Quick Orientation) + +| Domain | Mods | Notes | +|--------|------|-------| +| Power | Mekanism (turbine/boiler), Flux Networks | Flux wireless transfer; Mekanism cables for bulk | +| Storage | AE2, Sophisticated Storage, Functional Storage, Sophisticated Backpacks | AE2 for autocraft; Sophisticated for bulk; Functional for drawers | +| Logistics | LaserIO, Modular Routers, Entangled, FastPipes, Create belts | FastPipes adds vanilla pipe QoL | +| Automation | Create (+ addon suite) + Rechiseled + FastPipes | Create 6.0.10; physics via Sable + Create Aeronautics | +| Tech Building | Building Gadgets, Hologenica, FramedBlocks, Chipped, Supplementaries | | +| Dimensions | Per Spatium/Stellaris, Dimensional Doors, Void Dimension, Deeper and Darker | Stellaris portal → rockets; Doors are the endgame hook | +| Mobs/Combat | Born in Chaos, Mutant Monsters, Nyf's Spiders, Better Combat, Simply Swords | Hard difficulty | +| UI/QoL | JEI, Jade (+Addons), JourneyMap, Waystones, AppleSkin, IPN, Clumps, Mouse Tweaks | JEI is the recipe source (no EMI) | +| Scripting | KubeJS (+Create, +Mekanism), LootJS, Blocks You Need | Advancements & loot live here | +| Server utils | FTB Chunks/Quests/Teams/Library | Chunk claims + questbook | + +## Key client-only mods (server must NOT have these) + +`iris`, `sodium`, `iris-flw-compat`, `cull-leaves`, `lambdynamiclights`, +`dynamic-fps`, `3dskinlayers`, `visuality-forge`, `midnightlib`, +`entityculling`, `immediatelyfast`, `badoptimizations`, `athena-ctm`, +`journeymap-integration`, `stellarview`, `stellar-view-mixin-renderer`, +`stellaris-stellarview-compatibility`, `the-doctor-who-client-mod`, +`simply-tooltips`, `inventory-profiles-next` (with `libipn`), `just-enough-mekanism-multiblocks`. + +## Dimensional physics stack (both packs) + +Physics / portals run on **Sable** + **Create Aeronautics** + **IPSable** +(custom GitHub fork of Immersive Portals, see `ipsable.pw.toml`). +- **Sable** provides the physics sub-level engine. +- **Create Aeronautics** drives ships via Sable. +- **IPSable** (from `github.com/r2smith141/IPSable`) is the Immersive-Portals + fork that adds through-portal rendering on top of Sable sub-levels. It is a + pre-release, GitHub-only jar and intentionally **replaces** vanilla + Immersive Portals (same modid) — never install both. + +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 +`client_pack/config/`: +- `create-client.toml` → `ingameMenuConfigButtonRow = 0` hides Create's in-game + menu button (Create config is still reachable from the main menu). +- `supplementaries-client.toml` → `configs_button = false` hides Supplementaries' + Quark-style config button. + +FTB Quests/Chunks, JourneyMap, and Inventory Profiles Next do **not** add +pause-menu buttons (their buttons live on inventory/options screens) — no +config needed there. + +## Compatibility notes (verified 2026-08) + +- **The Void Dimension 0.0.1** hard-requires **World Portal** (and Dimension + Fixer). World Portal (`side = "server"`) is bundled in both packs so the + dimension boots and is reachable in SP and MP. +- **World Portal ships patched** (EntityLMixin stripped — it hard-conflicts + with Sable's entity mixins on dedicated servers). See `tools/patches/` and + the "Patched jars" table in `docs/server.md`. +- **Create Ore Excavation ships patched**: its KubeJS plugin races + kubejs-create to register a `ProcessingOutput` type-wrapper (guard flag is + set in the @Mod constructor while KubeJS runs plugin callbacks during its own + construction → nondeterministic boot crash). The patch removes COE's guarded + registration; kubejs-create remains the wrapper provider. +- **Create addon libs** (all present): RPL (Big Cannons), Kotlin for Forge + (Slice & Dice, Jetpack), Mechanicals Lib (Mechanical Extruder), Architectury + (Goggles). Flywheel is bundled inside Create — do **not** add a standalone + Flywheel. +- **Mekanism Covers 1.3-BETA** has an unfixed Sodium mixin crash; mitigated by + `mekanismcovers.json` (`disableAdvancedCoverRendering: true`). If crashes + persist, remove the mod (it is abandoned). +- **Known soft-conflict watchlist** (test before relying on, no fix shipped): + IPSable + Stellar View in space dimensions (possible sky artifacts); + Dimensional Doors + Sable physics sub-levels (rifts/doors may misbehave near + physics ships). diff --git a/docs/performance.md b/docs/performance.md new file mode 100644 index 0000000..2e86baf --- /dev/null +++ b/docs/performance.md @@ -0,0 +1,67 @@ +# Performance — Client + +Three drop-in tiers are provided: **Low**, **Medium**, and **High**. The +**Medium** tier ships as the pack default (matches a Ryzen 5 5600X / 16-32 GB +RAM / RX 580 8 GB machine). Full details and copy commands live in +`presets/README.md`. + +| Tier | Target | Shaders | Render distance | Key trade-offs | +|------|--------|---------|-----------------|----------------| +| **Low** | 4 GB VRAM / iGPU | **Off** | 4-6 | Minimal effects, most CPU headroom | +| **Medium** | 8 GB VRAM (RX 580-class) | On (Complementary, Performance) | 8 | Balanced 60 FPS — **default** | +| **High** | 8 GB+ VRAM (RTX 3060+) | On (Complementary, Ultra) | 10-12 | Max visual quality | + +## Applying a tier + +```bash +# client configs → instance config dir +cp -r presets/low/config/* ~/.local/share/PrismLauncher/instances//minecraft/config/ +``` + +Restart the game after copying. See `presets/README.md` for the full file map. + +## What each tier changes + +| Config | Low | Medium | High | +|--------|-----|--------|------| +| Sodium chunk threads | 1 | auto | auto | +| Sodium cpu render-ahead | 1 | 3 | 4 | +| Sodium quality | FAST | DEFAULT | DEFAULT | +| Iris shaders | **off** | on, shadow 32 | on, shadow 64 | +| Dynamic lights | simple | fancy | fancy (max) | +| Entity culling distance | 64 | 128 | 192 | +| Sound reverb rays | 16 | 24 | 32 | +| Flywheel backend | BATCHING | INSTANCING | INSTANCING | + +## Shader tuning (Complementary Reimagined r5.4) + +Shader loader is **Iris** (native NeoForge). Recommended shaderpack: +**Complementary Reimagined r5.4** (`client_pack/shaderpacks/`, see README). + +In-game (`Esc → Options → Shader Packs → Complementary → Shader Pack Settings`): + +### Medium (8 GB VRAM) +- Preset: **Fast / Performance** +- Antialiasing: OFF, SSAO: Fast, Shadow Quality 1.0x +- Shadow Distance: 64, Bloom: Low, Clouds: 2D Fast +- Water Reflections: Screenspace Fast, Colored Light: OFF + +### High (8 GB+ VRAM) +- Preset: **High / Default** +- Antialiasing: OFF or FXAA, SSAO: High, Shadow Quality 1.5x +- Shadow Distance: 128, Bloom: On, Clouds: 3D +- Water Reflections: Screenspace, Colored Light: On + +### Low (no shaders, or "Potato") +- Play with shaders **off** (Iris `enableShaders=false`). +- If you want them on, use Complementary "Potato/Ultra" preset, shadows OFF. + +If FPS is still low, lower Shadow Quality / disable Bloom before touching +render distance. + +## Reload rules + +- Server scripts / recipes / advancements: `/reload` +- Client tooltips / JEI / textures / lang: `F3+T` +- New items/blocks (`registry_blocks.js`): **full restart** +- Config files (Sodium, Iris, etc.): **full restart** diff --git a/docs/server.md b/docs/server.md new file mode 100644 index 0000000..69f0697 --- /dev/null +++ b/docs/server.md @@ -0,0 +1,91 @@ +# Server — Properties, JVM, Operations + +Three server tiers are provided as drop-in presets in `presets//server/` +(see `presets/README.md`). The **Medium** tier is the recommended default. + +| Tier | Host RAM | view-distance | simulation-distance | max-players | +|------|----------|---------------|---------------------|-------------| +| Low | 8-16 GB | 5 | 4 | 8 | +| **Medium** | 16-32 GB | 8 | 6 | 8 | +| High | 32 GB+ | 12 | 10 | 16 | + +Apply a tier (after `packwiz install`): + +```bash +cp presets/medium/server/server.properties server_pack/server.properties +# then use the matching jvm-flags.txt when launching +``` + +`server_pack/eula.txt` → `eula=true` (after review). + +## Recommended JVM Flags (server, Medium) + +```bash +java -Xms4G -Xmx8G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=8M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -XX:G1RSetUpdatingPauseTimePercent=5 \ + -Dlog4j2.formatMsgNoLookups=true \ + -jar neoforge-21.1.248-server.jar nogui +``` + +Notes: +- G1 tuning keeps large-tech-server TPS stable under chunk gen (Krypton + Reno + BadOptimizations help server-side). +- `-Xms4G` avoids early GC churn. Cap at 8G for Medium; this pack is + RAM-hungry from AE2/Mekanism tick load but Medium does not need 16G. +- See `presets/low/server/jvm-flags.txt` (2-4G) and + `presets/high/server/jvm-flags.txt` (8-16G) for the other tiers. + +## Server start order + +1. `packwiz install --dir server_pack` (first time / after changes) +2. Accept EULA. +3. Launch with the JVM flags above. + +## Common failures + +| Symptom | Fix | +|---------|-----| +| "Mismatched mods" on client join | Run `packwiz refresh` both packs, redeploy. | +| Sinytra connector errors | Update Sinytra Connector + Forgified Fabric API together. | +| Iris black screen | Disable flywheel compat first, then test without shaders. | +| Crash on world gen (Deeper and Darker) | Ensure CF 659011 + its lithostitched data load; update both. | +| TPS lag from many AE2 cells | Check FTB chunk claims; lower `simulation-distance`. | +| Immersive Portals won't load | Must be the Fabric jar added via `url add --force` (Modrinth blocks loader mismatch). | +| Server boots with OLD mod set after a pack update | `packwiz-installer -g` only disables the GUI — it does NOT refresh metadata. Freshness comes from which `pack.toml` it reads: if the panel cloned the repo, `git pull` (or wipe + re-clone) before restart; the start script prefers a **local** `server_pack/pack.toml` over the remote URL. Verify with `python3 tools/validate_pack.py server_pack remote`. | +| `EntityLMixin` / worldportal crash on boot | The pack ships a patched World Portal (`tools/patches/`); make sure `mods/worldportal-neoforge-0.0.10+1.21-patched.jar` is what actually landed (see stale-metadata row above). | +| KubeJS `Wrapper for class ...ProcessingOutput already exists!` | Pack ships a patched Create Ore Excavation (`tools/patches/build_patched_coe.sh`) that removes its duplicate rhino wrapper; upstream race between COE and kubejs-create mod-construction order. Verify the `-patched.jar` landed (see stale-metadata row above). | + +### Patched jars in this pack + +Two mods ship as locally patched jars under `tools/patches/`; both are +referenced by `mods/*.pw.toml` via raw git URLs, so **the jars must be pushed +for any fresh install to work**: + +| Jar | Patch | Reproduce with | +|-----|-------|----------------| +| `worldportal-neoforge-0.0.10+1.21-patched.jar` | Removes `EntityLMixin` (conflicts with Sable mixins) | hand-patched; see commit a88a0c2 | +| `createoreexcavation-1.21-1.6.8-patched.jar` | Strips COE's guarded `ProcessingOutput` wrapper registration (race vs kubejs-create) | `bash tools/patches/build_patched_coe.sh` | + +After changing either: update the hash in **both** packs' +`mods/.pw.toml`, run `packwiz refresh`, then +`python3 tools/validate_pack.py remote`. + +## Backups + +- World: copy `server_pack/world/` (or use FTB Chunks backups). +- Configs: `server_pack/config/` mirrors client defaults; keep both in sync + when changing KubeJS scripts or FTB settings. \ No newline at end of file diff --git a/docs/setup.md b/docs/setup.md new file mode 100644 index 0000000..f78154b --- /dev/null +++ b/docs/setup.md @@ -0,0 +1,61 @@ +# Setup — Install & Update + +## Prereqs + +- Java 21 (Adoptium Temurin 21 LTS recommended) +- ~12 GB RAM free for client, 8 GB minimum for server +- Disk: keep under **100 GB** total for world + packs + +## First-time server setup + +```bash +# from this repo root +packwiz install --dir server_pack # downloads all mods into server_pack/ +java -Xms2G -Xmx6G -jar server_pack/neoforge-21.1.248-installer.jar --installServer +# accept EULA, then launch: +java -Xms2G -Xmx6G -XX:+UseG1GC -jar server_pack/neoforge-21.1.248-server.jar nogui +``` + +## First-time client setup + +```bash +git clone git@git.mithraic.cloud:ad3laid3/SciCraft.git +cd SciCraft +packwiz install --dir client_pack +``` + +Add `client_pack` as a **packwiz** modpack in your launcher +(Prism/ATLauncher/PolyMC) or use `packwiz serve` from `client_pack` and +install via the Modrinth/packwiz installers. Drop a shaderpack into +`client_pack/shaderpacks/` — see the README there for the 4 GB VRAM preset. + +> **Multiplayer:** players join with the **client pack**; the server runs +> the **server pack**. Never put client-only mods on the server (see +> `mods.md`). + +## Adding a mod (both packs) + +```bash +packwiz --dir server_pack curseforge add --addon-id -y +packwiz --dir client_pack curseforge add --addon-id -y +packwiz --dir server_pack modrinth add -y +packwiz --dir client_pack modrinth add -y +packwiz --dir server_pack refresh +packwiz --dir client_pack refresh +``` + +- Always add to **both** packs unless the mod is client- or server-only. +- For Fabric mods that must run through Sinytra, use + `packwiz url add "" "" --force` and verify the Sinytra + connector tolerates the version. + +## Editing story text + +```bash +# edit STORY/*.md first, then: +python tools/gen_story.py # regenerates en_us.json in BOTH packs +bash tools/sync_kubejs.sh # mirrors server_pack/kubejs → client_pack/kubejs +``` + +Never hand-edit `en_us.json` — it is generated. Full workflow: +`STORY/00-index.md`. \ No newline at end of file diff --git a/presets/README.md b/presets/README.md new file mode 100644 index 0000000..26338f8 --- /dev/null +++ b/presets/README.md @@ -0,0 +1,70 @@ +# Performance Presets — SCICRAFT + +Three drop-in tiers for client (and server) tuning. The **Medium** tier is the +pack default — it ships inside the mrpack (`overrides/config/`) and matches a +Ryzen 5 5600X / 16-32 GB RAM / RX 580 8 GB class machine. + +To use a different tier, copy the files from the matching folder into the +`.minecraft/config/` directory (client) and the pack's `server/` directory +(server), then restart. + +## Tier targets + +| Tier | CPU | RAM | GPU | Use case | +|------|-----|-----|-----|----------| +| **Low** | 4-core / older | 8-16 GB | 4 GB VRAM or iGPU | Integrated graphics, laptops, weak desktops | +| **Medium** | 6-8 core (5600X-class) | 16-32 GB | 8 GB VRAM (RX 580-class) | **Default. Balanced 60 FPS.** | +| **High** | 8+ core | 32 GB+ | 8 GB+ VRAM (RTX 3060+) | High FPS at high render distance / shaders | + +## What's included per tier + +### Client (`presets//config/` → `.minecraft/config/`) + +| File | Effect | +|------|--------| +| `sodium-options.json` | Terrain renderer: chunk threads, culling, quality | +| `iris.properties` | Shader loader: on/off, max shadow render distance | +| `lambdynlights.toml` | Dynamic lighting quality / adaptive ticking | +| `entityculling.json` | Entity/block-entity culling distance | +| `cullleaves.json` | Leaf culling on/off | +| `soundphysics.properties` | Reverb/ray budget (audio CPU cost) | +| `flywheel-client.toml` | Create/Flywheel render backend (batching vs instancing) | + +> Note: `sodium-mixins.properties` is left at default on all tiers. Hand-editing +> Sodium mixin flags can cause crashes, so we tune the safe, supported options +> (`sodium-options.json`) instead. + +### Server (`presets//server/`) + +| File | Effect | +|------|--------| +| `server.properties` | view-distance, simulation-distance, compression | +| `jvm-flags.txt` | Recommended JVM heap + GC flags for that RAM tier | + +## Applying a tier (client) + +```bash +# Example: switch to LOW +cp -r presets/low/config/* ~/.local/share/PrismLauncher/instances//minecraft/config/ +``` + +Then restart the game. Shader-pack in-game settings (Complementary) still +override a few visual options — see `docs/performance.md`. + +## Applying a tier (server) + +```bash +# Example: switch to LOW +cp presets/low/server/server.properties server_pack/server.properties +# use the jvm-flags.txt line when launching +``` + +## Notes + +- **Shaders are disabled on the Low tier** — this is the single biggest FPS win. + On Low, either play without a shaderpack or use an "Ultra/Performance" + preset of Complementary with shadows off. +- **Medium is the shipped default** — the mrpack already contains these configs, + so players who do nothing get the balanced experience. +- `enableShaderCompatibleRendering` is on for Mekanism Covers on all tiers so + covers render correctly with shaders. diff --git a/presets/high/config/cullleaves.json b/presets/high/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/presets/high/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/presets/high/config/entityculling.json b/presets/high/config/entityculling.json new file mode 100644 index 0000000..24a1c2b --- /dev/null +++ b/presets/high/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 192, + "debugMode": false, + "sleepDelay": 10, + "hitboxLimit": 60, + "captureRate": 6, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/presets/high/config/flywheel-client.toml b/presets/high/config/flywheel-client.toml new file mode 100644 index 0000000..b3a4f9e --- /dev/null +++ b/presets/high/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#High tier: INSTANCING on a modern GPU. Auto threads. +backend = "INSTANCING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = -1 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "SMOOTH_INNER_FACE_CORRECTED" diff --git a/presets/high/config/iris.properties b/presets/high/config/iris.properties new file mode 100644 index 0000000..1e18d1e --- /dev/null +++ b/presets/high/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT High preset +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=true +maxShadowRenderDistance=64 +shaderPack= diff --git a/presets/high/config/lambdynlights.toml b/presets/high/config/lambdynlights.toml new file mode 100644 index 0000000..f87d69c --- /dev/null +++ b/presets/high/config/lambdynlights.toml @@ -0,0 +1,24 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "fancy" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + slow = 6 + slower = 10 + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "fancy" + tnt = "fancy" + beam = true + firefly = true + guardian_laser = true + sonic_boom = true + glowing_effect = true diff --git a/presets/high/config/sodium-options.json b/presets/high/config/sodium-options.json new file mode 100644 index 0000000..c6e57ba --- /dev/null +++ b/presets/high/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "DEFAULT", + "leaves_quality": "DEFAULT", + "enable_vignette": true, + "use_closest_point_entity_sort": true + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 4 + }, + "performance": { + "chunk_builder_threads": 0, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "SAFE" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/presets/high/config/soundphysics.properties b/presets/high/config/soundphysics.properties new file mode 100644 index 0000000..fb56116 --- /dev/null +++ b/presets/high/config/soundphysics.properties @@ -0,0 +1,38 @@ +# Enables/Disables all sound effects +enabled=true +attenuation_factor=1.0 +reverb_attenuation_distance=0.0 +reverb_gain=1.0 +reverb_brightness=1.0 +reverb_distance=1.5 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=4.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=true +environment_evaluation_ray_count=32 +environment_evaluation_ray_bounces=4 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=16 +max_occlusion=64.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=512.0 +unsafe_level_access=false +level_clone_range=4 +level_clone_max_retain_ticks=20 +level_clone_max_retain_block_distance=16 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/presets/high/server/jvm-flags.txt b/presets/high/server/jvm-flags.txt new file mode 100644 index 0000000..d142054 --- /dev/null +++ b/presets/high/server/jvm-flags.txt @@ -0,0 +1,19 @@ +# SCICRAFT High tier server JVM flags - 32GB+ RAM host +# Launch with: java -jar neoforge-21.1.248-server.jar nogui +-Xms8G -Xmx16G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=150 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=16M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -XX:G1RSetUpdatingPauseTimePercent=5 \ + -Dlog4j2.formatMsgNoLookups=true diff --git a/presets/high/server/server.properties b/presets/high/server/server.properties new file mode 100644 index 0000000..aa911b0 --- /dev/null +++ b/presets/high/server/server.properties @@ -0,0 +1,13 @@ +#SCICRAFT High tier - for a beefy server host (8+ core / 32GB+ RAM) +# Generated by presets/high/server/server.properties +view-distance=12 +simulation-distance=10 +max-players=16 +motd=SCICRAFT - The Dark Photon Protocol +difficulty=hard +spawn-protection=0 +network-compression-threshold=512 +enable-command-block=true +online-mode=true +max-tick-time=60000 +entity-broadcast-range-percentage=100 diff --git a/presets/low/config/cullleaves.json b/presets/low/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/presets/low/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/presets/low/config/entityculling.json b/presets/low/config/entityculling.json new file mode 100644 index 0000000..2e17f8a --- /dev/null +++ b/presets/low/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 64, + "debugMode": false, + "sleepDelay": 8, + "hitboxLimit": 40, + "captureRate": 4, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/presets/low/config/flywheel-client.toml b/presets/low/config/flywheel-client.toml new file mode 100644 index 0000000..6a8fe4b --- /dev/null +++ b/presets/low/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#Low tier: BATCHING is the most compatible/least demanding on weak GPUs/iGPU. +backend = "BATCHING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = 1 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "FLAT" diff --git a/presets/low/config/iris.properties b/presets/low/config/iris.properties new file mode 100644 index 0000000..7f4888c --- /dev/null +++ b/presets/low/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT Low preset - shaders DISABLED for maximum performance +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=false +maxShadowRenderDistance=16 +shaderPack= diff --git a/presets/low/config/lambdynlights.toml b/presets/low/config/lambdynlights.toml new file mode 100644 index 0000000..8521660 --- /dev/null +++ b/presets/low/config/lambdynlights.toml @@ -0,0 +1,24 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "simple" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + slow = 4 + slower = 6 + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "off" + tnt = "off" + beam = false + firefly = false + guardian_laser = false + sonic_boom = false + glowing_effect = true diff --git a/presets/low/config/sodium-options.json b/presets/low/config/sodium-options.json new file mode 100644 index 0000000..5c95a1f --- /dev/null +++ b/presets/low/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "FAST", + "leaves_quality": "FAST", + "enable_vignette": false, + "use_closest_point_entity_sort": true + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 1 + }, + "performance": { + "chunk_builder_threads": 1, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": false, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "FAST" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/presets/low/config/soundphysics.properties b/presets/low/config/soundphysics.properties new file mode 100644 index 0000000..f5c4f7a --- /dev/null +++ b/presets/low/config/soundphysics.properties @@ -0,0 +1,41 @@ +# Enables/Disables all sound effects +enabled=true +# Lower attenuation for less CPU on low-end +attenuation_factor=1.0 +# Reverb disabled on low tier to save CPU +reverb_attenuation_distance=0.0 +reverb_gain=0.6 +reverb_brightness=1.0 +reverb_distance=1.2 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=3.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=false +# Fewer rays = fewer lag spikes on weak CPUs +environment_evaluation_ray_count=16 +environment_evaluation_ray_bounces=2 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=8 +max_occlusion=32.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=256.0 +unsafe_level_access=false +level_clone_range=2 +level_clone_max_retain_ticks=15 +level_clone_max_retain_block_distance=12 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/presets/low/server/jvm-flags.txt b/presets/low/server/jvm-flags.txt new file mode 100644 index 0000000..2c39735 --- /dev/null +++ b/presets/low/server/jvm-flags.txt @@ -0,0 +1,18 @@ +# SCICRAFT Low tier server JVM flags - 8-16GB RAM host +# Launch with: java -jar neoforge-21.1.248-server.jar nogui +-Xms2G -Xmx4G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=8M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -Dlog4j2.formatMsgNoLookups=true diff --git a/presets/low/server/server.properties b/presets/low/server/server.properties new file mode 100644 index 0000000..0b0b51f --- /dev/null +++ b/presets/low/server/server.properties @@ -0,0 +1,13 @@ +#SCICRAFT Low tier - for a lower-end server host (4 cores / 8-16GB RAM) +# Generated by presets/low/server/server.properties +view-distance=5 +simulation-distance=4 +max-players=8 +motd=SCICRAFT - The Dark Photon Protocol [Low] +difficulty=hard +spawn-protection=0 +network-compression-threshold=256 +enable-command-block=true +online-mode=true +max-tick-time=60000 +entity-broadcast-range-percentage=50 diff --git a/presets/medium/config/cullleaves.json b/presets/medium/config/cullleaves.json new file mode 100644 index 0000000..22ec881 --- /dev/null +++ b/presets/medium/config/cullleaves.json @@ -0,0 +1 @@ +{"enabled": true, "cullRoots": true} diff --git a/presets/medium/config/entityculling.json b/presets/medium/config/entityculling.json new file mode 100644 index 0000000..231afb2 --- /dev/null +++ b/presets/medium/config/entityculling.json @@ -0,0 +1,53 @@ +{ + "configVersion": 8, + "renderNametagsThroughWalls": true, + "blockEntityWhitelist": [ + "create:rope_pulley", + "create:hose_pulley", + "minecraft:beacon" + ], + "entityWhitelist": [ + "minecraft:boat", + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "tracingDistance": 128, + "debugMode": false, + "sleepDelay": 10, + "hitboxLimit": 50, + "captureRate": 5, + "tickCulling": true, + "tickCullingWhitelist": [ + "minecraft:block_display", + "minecraft:item_display", + "minecraft:text_display", + "minecraft:boat", + "minecraft:jungle_boat", + "minecraft:spruce_boat", + "minecraft:oak_boat", + "minecraft:dark_oak_boat", + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:cherry_boat", + "minecraft:mangrove_boat", + "create:contraption", + "create:gantry_contraption", + "create:stationary_contraption", + "create:carriage_contraption", + "createbigcannons:cannon_carriage", + "createbigcannons:pitch_contraption" + ], + "disableF3": false, + "skipEntityCulling": false, + "skipBlockEntityCulling": false, + "blockEntityFrustumCulling": true, + "forceDisplayCulling": false, + "solidLeaves": false +} diff --git a/presets/medium/config/flywheel-client.toml b/presets/medium/config/flywheel-client.toml new file mode 100644 index 0000000..92d5ec2 --- /dev/null +++ b/presets/medium/config/flywheel-client.toml @@ -0,0 +1,11 @@ +#Select the backend to use. Set to "DEFAULT" to let Flywheel decide. +#Medium tier: INSTANCING gives good Create contraption performance on a 5600X + RX 580 class machine. +backend = "INSTANCING" +#Enable or disable instance update limiting with distance. +limitUpdates = true +#The number of worker threads to use. Set to -1 to let Flywheel decide. Set to 0 to disable parallelism. +workerThreads = 2 + +#Config options for Flywheel's built-in backends. +[flw_backends] + lightSmoothness = "SMOOTH" diff --git a/presets/medium/config/iris.properties b/presets/medium/config/iris.properties new file mode 100644 index 0000000..e23c140 --- /dev/null +++ b/presets/medium/config/iris.properties @@ -0,0 +1,9 @@ +#This file stores configuration options for Iris, such as the currently active shaderpack +#SCICRAFT Medium preset +allowUnknownShaders=false +colorSpace=SRGB +disableUpdateMessage=true +enableDebugOptions=false +enableShaders=true +maxShadowRenderDistance=32 +shaderPack= diff --git a/presets/medium/config/lambdynlights.toml b/presets/medium/config/lambdynlights.toml new file mode 100644 index 0000000..3cfbe5a --- /dev/null +++ b/presets/medium/config/lambdynlights.toml @@ -0,0 +1,27 @@ +# LambDynamicLights configuration. +# The dynamic lights mode (off, simple, fancy) +mode = "fancy" + +# The chunk rebuild scheduler mode (immediate, culling). +chunk_rebuild_scheduler = "culling" + +[adaptive_ticking] + # How far away (in chunks) until light sources get ticked less often. + slow = 5 + # How far away (in chunks) until light sources get ticked even less often. + slower = 8 + # Reduces how often sources behind the camera get ticked. + background_sleep = true + +# Light sources settings. +[light_sources] + entities = true + self = true + water_sensitive_check = true + creeper = "simple" + tnt = "off" + beam = true + firefly = true + guardian_laser = true + sonic_boom = true + glowing_effect = true diff --git a/presets/medium/config/sodium-options.json b/presets/medium/config/sodium-options.json new file mode 100644 index 0000000..ad775a7 --- /dev/null +++ b/presets/medium/config/sodium-options.json @@ -0,0 +1,30 @@ +{ + "quality": { + "weather_quality": "DEFAULT", + "leaves_quality": "DEFAULT", + "enable_vignette": true, + "use_closest_point_entity_sort": false + }, + "advanced": { + "enable_memory_tracing": false, + "use_advanced_staging_buffers": true, + "cpu_render_ahead_limit": 3 + }, + "performance": { + "chunk_builder_threads": 0, + "chunk_build_defer_mode": "ALWAYS", + "animate_only_visible_textures": true, + "use_entity_culling": true, + "use_fog_occlusion": true, + "use_block_face_culling": true, + "use_no_error_g_l_context": true, + "quad_splitting_mode": "SAFE" + }, + "notifications": { + "has_cleared_donation_button": false, + "has_seen_donation_prompt": false + }, + "debug": { + "terrain_sorting_enabled": true + } +} \ No newline at end of file diff --git a/presets/medium/config/soundphysics.properties b/presets/medium/config/soundphysics.properties new file mode 100644 index 0000000..574fe09 --- /dev/null +++ b/presets/medium/config/soundphysics.properties @@ -0,0 +1,38 @@ +# Enables/Disables all sound effects +enabled=true +attenuation_factor=1.0 +reverb_attenuation_distance=0.0 +reverb_gain=1.0 +reverb_brightness=1.0 +reverb_distance=1.5 +block_absorption=1.0 +occlusion_variation=0.35 +default_block_reflectivity=0.5 +default_block_occlusion_factor=1.0 +sound_distance_allowance=4.0 +air_absorption=1.0 +underwater_filter=0.9 +evaluate_ambient_sounds=false +environment_evaluation_ray_count=24 +environment_evaluation_ray_bounces=4 +non_full_block_occlusion_factor=0.25 +max_occlusion_rays=16 +max_occlusion=64.0 +strict_occlusion=false +sound_direction_evaluation=true +redirect_non_occluded_sounds=true +update_moving_sounds=false +sound_update_interval=5 +max_sound_processing_distance=512.0 +unsafe_level_access=false +level_clone_range=4 +level_clone_max_retain_ticks=20 +level_clone_max_retain_block_distance=16 +debug_logging=false +occlusion_logging=false +environment_logging=false +performance_logging=false +render_sound_bounces=false +render_occlusion=false +simple_voice_chat_integration=true +simple_voice_chat_hear_self=false diff --git a/presets/medium/server/jvm-flags.txt b/presets/medium/server/jvm-flags.txt new file mode 100644 index 0000000..f7fea57 --- /dev/null +++ b/presets/medium/server/jvm-flags.txt @@ -0,0 +1,19 @@ +# SCICRAFT Medium tier server JVM flags - 16-32GB RAM host +# Launch with: java -jar neoforge-21.1.248-server.jar nogui +-Xms4G -Xmx8G \ + -XX:+UseG1GC \ + -XX:+ParallelRefProcEnabled \ + -XX:MaxGCPauseMillis=200 \ + -XX:+UnlockExperimentalVMOptions \ + -XX:+DisableExplicitGC \ + -XX:+AlwaysPreTouch \ + -XX:G1NewSizePercent=30 \ + -XX:G1MaxNewSizePercent=40 \ + -XX:G1HeapRegionSize=8M \ + -XX:G1ReservePercent=20 \ + -XX:G1HeapWastePercent=5 \ + -XX:G1MixedGCCountTarget=4 \ + -XX:InitiatingHeapOccupancyPercent=15 \ + -XX:G1MixedGCLiveThresholdPercent=90 \ + -XX:G1RSetUpdatingPauseTimePercent=5 \ + -Dlog4j2.formatMsgNoLookups=true diff --git a/presets/medium/server/server.properties b/presets/medium/server/server.properties new file mode 100644 index 0000000..c81ed45 --- /dev/null +++ b/presets/medium/server/server.properties @@ -0,0 +1,13 @@ +#SCICRAFT Medium tier - balanced (6-8 core / 16-32GB RAM) +# Generated by presets/medium/server/server.properties +view-distance=8 +simulation-distance=6 +max-players=8 +motd=SCICRAFT - The Dark Photon Protocol +difficulty=hard +spawn-protection=0 +network-compression-threshold=256 +enable-command-block=true +online-mode=true +max-tick-time=60000 +entity-broadcast-range-percentage=75 diff --git a/server_pack/config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt b/server_pack/config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt new file mode 100644 index 0000000..125508e --- /dev/null +++ b/server_pack/config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt @@ -0,0 +1,253 @@ +{ + id: "e7311a3c8487ccee", + group: "", + order_index: 0, + quests: [ + { + id: "af426aae065d8b5d", + x: 0.0, + y: 0.0, + shape: "circle", + tasks: [ + { + id: "af426aae065d8b5e", + type: "ftbquests:checkmark" + } + ], + rewards: [ + { + id: "af426aae065d8b5f", + type: "ftbquests:item", + item: { + item: "scicraft:photon_fragment", + count: 2 + } + } + ] + }, + { + id: "2008fe12b4d41b0d", + x: 2.0, + y: 0.0, + shape: "circle", + dependencies: [ + "af426aae065d8b5d" + ], + tasks: [ + { + id: "2008fe12b4d41b0e", + type: "ftbquests:item", + item: { + item: "scicraft:photon_fragment", + count: 1 + } + } + ], + rewards: [ + { + id: "2008fe12b4d41b0f", + type: "ftbquests:xp", + xp: 100 + } + ] + }, + { + id: "43538030951a509c", + x: 4.0, + y: 0.0, + shape: "circle", + dependencies: [ + "2008fe12b4d41b0d" + ], + tasks: [ + { + id: "43538030951a509e", + type: "ftbquests:item", + item: { + item: "scicraft:photon_core", + count: 1 + } + } + ], + rewards: [ + { + id: "43538030951a509f", + type: "ftbquests:xp", + xp: 250 + } + ] + }, + { + id: "0b79d27becaeafc6", + x: 6.0, + y: 0.0, + shape: "circle", + dependencies: [ + "43538030951a509c" + ], + tasks: [ + { + id: "0b79d27becaeafce", + type: "ftbquests:item", + item: { + item: "scicraft:void_stabilizer", + count: 1 + } + } + ], + rewards: [ + { + id: "0b79d27becaeafcf", + type: "ftbquests:xp", + xp: 500 + } + ] + }, + { + id: "334f7c4987263954", + x: 8.0, + y: 0.0, + shape: "circle", + dependencies: [ + "0b79d27becaeafc6" + ], + tasks: [ + { + id: "334f7c498726395e", + type: "ftbquests:item", + item: { + item: "scicraft:quantum_lattice", + count: 1 + } + } + ], + rewards: [ + { + id: "334f7c498726395f", + type: "ftbquests:xp", + xp: 1000 + } + ] + }, + { + id: "122450d405e7ce56", + x: 10.0, + y: 0.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "122450d405e7ce5e", + type: "ftbquests:item", + item: { + item: "scicraft:renegade_glass", + count: 1 + } + } + ], + rewards: [ + { + id: "122450d405e7ce5f", + type: "ftbquests:xp", + xp: 300 + } + ] + }, + { + id: "fb564dcc8844cdd6", + x: 12.0, + y: 0.0, + shape: "circle", + dependencies: [ + "0b79d27becaeafc6" + ], + tasks: [ + { + id: "fb564dcc8844cdde", + type: "ftbquests:dimension", + dimension: "dimensionaldoors:limbo" + } + ], + rewards: [ + { + id: "fb564dcc8844cddf", + type: "ftbquests:xp", + xp: 400 + } + ] + }, + { + id: "c71b96a9869a6607", + x: 14.0, + y: -1.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "c71b96a9869a660e", + type: "ftbquests:dimension", + dimension: "thevoiddimension:overworld" + } + ], + rewards: [ + { + id: "c71b96a9869a660f", + type: "ftbquests:xp", + xp: 750 + } + ] + }, + { + id: "85e6fcba2ecb28a6", + x: 14.0, + y: 1.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "85e6fcba2ecb28ae", + type: "ftbquests:dimension", + dimension: "deeperdarker:otherside" + } + ], + rewards: [ + { + id: "85e6fcba2ecb28af", + type: "ftbquests:xp", + xp: 750 + } + ] + }, + { + id: "7ad80334ef67b3db", + x: 14.0, + y: -3.0, + shape: "circle", + dependencies: [ + "334f7c4987263954" + ], + tasks: [ + { + id: "7ad80334ef67b3de", + type: "ftbquests:dimension", + dimension: "stellaris:moon" + } + ], + rewards: [ + { + id: "7ad80334ef67b3df", + type: "ftbquests:xp", + xp: 600 + } + ] + } + ], + quest_links: [], + images: [] +} diff --git a/server_pack/config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt b/server_pack/config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt new file mode 100644 index 0000000..d7aa366 --- /dev/null +++ b/server_pack/config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt @@ -0,0 +1,88 @@ +{ + "chapter.e7311a3c8487ccee.title": "The Dark Photon Protocol", + "quest.af426aae065d8b5d.title": "First Steps", + "quest.af426aae065d8b5d.quest_desc": [ + "You are the last engineer of the Second Renegade Flight.", + "", + "A fifth force — dark photons — holds a collapsed star-empire sealed behind a Dimensional Door. The seal is failing.", + "", + "The Corruption Tide is a global pressure that rises while Doors go unsealed. It climbs every 60 seconds. Re-seal Doors at a powered Quantum Lattice with a Void Stabilizer to push it back. There is no fail state — just a world that grows darker.", + "", + "Your first step: recover Photon Fragments from the Darker's creatures — Wardens, Mutant Monsters, and Born in Chaos mobs." + ], + "quest.2008fe12b4d41b0d.title": "The Signal", + "quest.2008fe12b4d41b0d.quest_desc": [ + "Recover a Photon Fragment from a creature of the Dark.", + "", + "Sources:", + "- Warden: 1-3", + "- Mutant Zombie / Skeleton: 1-2", + "- Mutant Enderman: 2-4", + "- Born in Chaos Dark Vortex / Dread Hound: 1", + "- Nightmare Stalker: 2-3", + "", + "You can also extract one from an Echo Shard and Glowstone Dust." + ], + "quest.43538030951a509c.title": "The Core", + "quest.43538030951a509c.quest_desc": [ + "Press three Photon Fragments into a Photon Core.", + "", + "Use a Create Mechanical Press on 3x Photon Fragments, or smelt an Ender Pearl in the heart of the wound.", + "", + "Holding a Photon Core grants Night Vision." + ], + "quest.0b79d27becaeafc6.title": "The Seal", + "quest.0b79d27becaeafc6.quest_desc": [ + "Craft the Void Stabilizer — the renegades' tool for closing wounds.", + "", + "Recipe: a column of Photon Cores with an Ender Eye at the heart.", + "", + "It never breaks. The work will. Holding it grants Speed and Regeneration." + ], + "quest.334f7c4987263954.title": "The Lattice", + "quest.334f7c4987263954.quest_desc": [ + "Assemble the Quantum Lattice — the Protocol's emitter — and keep it powered.", + "", + "Recipe: steel ingots, circuits, and a Photon Core.", + "", + "Place it, power it, then right-click it with a Void Stabilizer to re-seal a Door and push back the Corruption Tide by 15." + ], + "quest.122450d405e7ce56.title": "The Legacy", + "quest.122450d405e7ce56.quest_desc": [ + "Craft Renegade Glass — the TARDIS-blue glass of the Flight.", + "", + "Purely decorative. Some say it hums near Doors.", + "", + "Recipe: glass blocks around a Photon Fragment." + ], + "quest.fb564dcc8844cdd6.title": "Through the Doors", + "quest.fb564dcc8844cdd6.quest_desc": [ + "Enter a Dimensional Door.", + "", + "Limbo is the scar-tissue of the Flight's prison — the space between the doors.", + "", + "The first test of your nerve." + ], + "quest.c71b96a9869a6607.title": "The Wound", + "quest.c71b96a9869a6607.quest_desc": [ + "Descend into the Void Dimension — the raw leak of the collapsing empire.", + "", + "Danger: the wound drains 1 HP every 5 seconds. Carry the Void Stabilizer to hold on." + ], + "quest.85e6fcba2ecb28a6.title": "The Answer", + "quest.85e6fcba2ecb28a6.quest_desc": [ + "Reach the Othersides of the Deeper and Darker.", + "", + "What answers from inside the prison. The richest harvest of Photon Fragments.", + "", + "Danger: the Wither takes hold here." + ], + "quest.7ad80334ef67b3db.title": "Per Spatium", + "quest.7ad80334ef67b3db.quest_desc": [ + "Launch a rocket.", + "", + "The Flight scattered its data across the worlds of this system — the moon, Mars, Venus, Mercury.", + "", + "Each holds a piece of the Protocol's history. Per Spatium." + ] +} diff --git a/server_pack/index.toml b/server_pack/index.toml new file mode 100644 index 0000000..e299d01 --- /dev/null +++ b/server_pack/index.toml @@ -0,0 +1,732 @@ +hash-format = "sha256" + +[[files]] +file = "config/ftbquests/quests/chapters/chapter_dark_photon_protocol.snbt" +hash = "ebcd482739c6365a3ab5454746f75fb0e94001e650fe116155e93a1a3d4c6339" + +[[files]] +file = "config/ftbquests/quests/lang/en_us/chapter_dark_photon_protocol.snbt" +hash = "303cb8e93c8d1989960f77c50575cbfb6e055870fb317373405c2e6b81e0211b" + +[[files]] +file = "kubejs/assets/scicraft/lang/en_us.json" +hash = "0a1431213db887fa66c494aa5a6ce947866764cf443e9d9d4edea09f3804f020" + +[[files]] +file = "kubejs/assets/scicraft/textures/block/quantum_lattice.png" +hash = "c395b6e3c45cc3313c754c3451688990ce1a1199a05e8d03fb817b86ff1add81" + +[[files]] +file = "kubejs/assets/scicraft/textures/block/renegade_glass.png" +hash = "5fc2918b6e7ab3a654afc8cfe442f6cc1346acc3fadebc9a15790b44d31a4c9f" + +[[files]] +file = "kubejs/assets/scicraft/textures/item/photon_core.png" +hash = "570aef9ed9b12d2742790a0c4c2f6a1f0471f182cc3e357756aa3d23d2b5e332" + +[[files]] +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" + +[[files]] +file = "kubejs/client_scripts/01_tooltips.js" +hash = "e92d824f6929e88523ae0b12e12328ee6b4e483da22d9d51ae7290feb9299c91" + +[[files]] +file = "kubejs/client_scripts/02_jei_info.js" +hash = "e192ce4474877cf8d51ad6f4196f127aa3f0821b943aa772d53fed7f2819338a" + +[[files]] +file = "kubejs/client_scripts/03_protocol_tome.js" +hash = "8533cc83f2be863ace4bc674cf64b0e11a02c149dd0556425ed691a11574815e" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/first_signal.json" +hash = "c545af1e4e6dfcf5049ec19d309fe736777b8e322f95f73cf577efd790bb04f0" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/per_spatium.json" +hash = "11d22ba106d9f72cdfd4d97a2e6bcc9d0e9f8084e86ef3592dd7404f567db464" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/root.json" +hash = "1ed74aab959c8af06a0bacc4d3e4dc59a2218a61f509dd5a43ad1aecae45a003" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_answer.json" +hash = "dc3acf6f16aab9b51eca1a971d94a6c1d60988404a6b04bab7a01da34b4ce3a6" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_core.json" +hash = "c51854c18a23b66bec553abd334c7ea396211ac862095c0954f7354e271b101b" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_lattice.json" +hash = "889bb2cbd9c310cbe0ca737ac14c265988958d04a38e60aa8c2cfc996dbe248a" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_legacy.json" +hash = "eccc19d5d7784c3b1273a27f3211dc87fa3cb33eca9e89e7c73bb3cb9219ca0f" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_seal.json" +hash = "3eeb2305818ca2342669fa3eb08df60c0f5dcfe0a2864a637041c44bbfcf1173" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/the_wound.json" +hash = "798548985135eb86cd3dd921d83c7ab184b89427862335ae621cd6c17e70b410" + +[[files]] +file = "kubejs/data/scicraft/advancements/protocol/through_the_doors.json" +hash = "dd870892bdb8784d8bbbd420ae91cf9d68c7d67bd396949a1c3b2498c9033a42" + +[[files]] +file = "kubejs/data/scicraft/loot_tables/protocol/root_reward.json" +hash = "510aaa143b814db531dda8fc094c2d9a5f589c83b23eb174e6301218b58101e3" + +[[files]] +file = "kubejs/server_scripts/01_corruption_tide.js" +hash = "4ccf6fa0c03a2631884249a19b6509828bc751c8ccc4ba13d0e4cb4309e8b7ad" + +[[files]] +file = "kubejs/server_scripts/02_events.js" +hash = "b57f7fccb45e1e56774d8be024a4d86e736cf29b8598ae01bf5ce40695888599" + +[[files]] +file = "kubejs/server_scripts/03_recipes_tags.js" +hash = "de77b992da96b9cd6e1fcf8fd365aaa876099c37a28628bc44781ce30bdea127" + +[[files]] +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 = "be188bd038a724a1449d5bb36a7c9679651b50468a786b597e2f6f563f9d1932" + +[[files]] +file = "mods/ae2-import-export-card.pw.toml" +hash = "f9ff125ddfd2d8e83e17b3cc87771c679ba4ba5f657661568d464c43f9c886ff" +metafile = true + +[[files]] +file = "mods/ae2-qol-recipes.pw.toml" +hash = "0bd11ad5856e558c44060185154083447a3e940b06be350625d862749b9409a0" +metafile = true + +[[files]] +file = "mods/ae2.pw.toml" +hash = "ed45c352a49b65c7221e57d979d0c6935522dfef4968aa5b7421f4d3e670ce40" +metafile = true + +[[files]] +file = "mods/ambientsounds.pw.toml" +hash = "d5282b7a148f4fda7d1399815ee270f89a03ce8dcac67c848c64d0d0a1691671" +metafile = true + +[[files]] +file = "mods/appleskin.pw.toml" +hash = "716d930feff599bf9ce732e05979fbae8025dc8a3c13ccf4f1cb207a70883bc6" +metafile = true + +[[files]] +file = "mods/applied-energistics-2-wireless-terminals.pw.toml" +hash = "0b00e3fcc86a4ab7744269fc576bb23180a29dc0e44954511907a8b5386e3f53" +metafile = true + +[[files]] +file = "mods/architects-palette.pw.toml" +hash = "ffa80ab737db677474192e7f09f6b1daff0276e2e15c375b332feb3015376580" +metafile = true + +[[files]] +file = "mods/architectury-api.pw.toml" +hash = "187eafde5974beee1263538b462b7b8fe2fc8948c5d413980d9796d55928580b" +metafile = true + +[[files]] +file = "mods/balm.pw.toml" +hash = "7dba9a4a9894a6bbab3a8c7edcc718499297412247fc0e8ccebf75b760c85140" +metafile = true + +[[files]] +file = "mods/bellsandwhistles.pw.toml" +hash = "e1f4a53e3e52b534add5dd018597fefd345d9bd6350b9c46ef0ec281fc62af8e" +metafile = true + +[[files]] +file = "mods/better-combat.pw.toml" +hash = "438170e7e704a1b8ed67bf0521dc5d77cdeeaabf6f729dba9f8dfdad75330acf" +metafile = true + +[[files]] +file = "mods/blocks-you-need.pw.toml" +hash = "a835e85294f2c54acc360c5b4eecb0a6305c0ad5933a5e8ddaa04d1923093f58" +metafile = true + +[[files]] +file = "mods/born-in-chaos.pw.toml" +hash = "4a7d85fc2f67432dad21dd3b316a557ff73d1b4992a54cc1e0877d2ae0c8207a" +metafile = true + +[[files]] +file = "mods/building-gadgets.pw.toml" +hash = "88908286eebea979713b5626891f634317fcc4c5a5bd4ec0c9444a33863a4518" +metafile = true + +[[files]] +file = "mods/chipped.pw.toml" +hash = "24c6c3fe917ffbcef04e788dec3e003d0ed03433bc00f9cf4f23fe9b85636aa7" +metafile = true + +[[files]] +file = "mods/cloth-config.pw.toml" +hash = "75181b55e0407d1fca1e2f346c6501f919f5109545990ddfb66db9cd1b771f8a" +metafile = true + +[[files]] +file = "mods/clumps.pw.toml" +hash = "2acaff560bbda5741538528a2967355ec86a8f7564adba0b2316989c66892374" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/cosmetic-armor-reworked.pw.toml" +hash = "b65ee01fec17228645121952de6dec75053b0b4c59a8c8036d6fa7829819f3f9" +metafile = true + +[[files]] +file = "mods/create-aeronautics.pw.toml" +hash = "d438d05c61167c95de2b282bb3839a290f819f70c9d313c5e61177d69a29c704" +metafile = true + +[[files]] +file = "mods/create-big-cannons.pw.toml" +hash = "a0e9ff95570cd9af3374ca8b44aa095447baf94e565f46ae99819d52a9b48dc1" +metafile = true + +[[files]] +file = "mods/create-central-kitchen.pw.toml" +hash = "7a7eeb96f8cf82768269855ff837c07fa75daf32a6f560d85f2bf901402d70d3" +metafile = true + +[[files]] +file = "mods/create-connected.pw.toml" +hash = "61afa588fd3156a29418aef463c527308b014e72d86b5ca7c03f2f28973ca27a" +metafile = true + +[[files]] +file = "mods/create-deco.pw.toml" +hash = "67a405e6307f900d168deaa954a4309c3b44a6025e4efd7b8e774b6f9d3a69cd" +metafile = true + +[[files]] +file = "mods/create-design-n-decor.pw.toml" +hash = "e05bc0c3ee97da0dfcf9dabd3c3eaee0e90819091ead3f500ddc3b1caf77fe54" +metafile = true + +[[files]] +file = "mods/create-diesel-generators.pw.toml" +hash = "456f66abd180b3f5765473cda5e8acb1a6ea8b15b7ee34442be9a7af414cfc63" +metafile = true + +[[files]] +file = "mods/create-dragons-plus.pw.toml" +hash = "80547db2ebfc71d0d649534fe6fee7dabcf2a58770e8ff38218f6db874382204" +metafile = true + +[[files]] +file = "mods/create-dreams-and-desires.pw.toml" +hash = "c308b557b01b6e6cc25ee8d6a1a7c78bca2b71be3ae645e40d10cf25259fabcd" +metafile = true + +[[files]] +file = "mods/create-enchantment-industry.pw.toml" +hash = "0ae5b9a5883e79282ad756ea205f3fa1af11ced75bb4ba5b74e3d32e1ea684c9" +metafile = true + +[[files]] +file = "mods/create-goggles.pw.toml" +hash = "5de2bbab0826b5241e16746b0b739ca5169b0a9df38181d58e8519e6ea7f535f" +metafile = true + +[[files]] +file = "mods/create-jetpack.pw.toml" +hash = "157b009cd9b2a7f55f2b7d0abdc2f9f7d49eade208a786c71cc6d2f8430bba4a" +metafile = true + +[[files]] +file = "mods/create-mechanical-extruder.pw.toml" +hash = "6e064a3988937e06dfa307c8c395c73461819f9135197bc30563c6f13d1f1da4" +metafile = true + +[[files]] +file = "mods/create-new-age.pw.toml" +hash = "39499039e11a6e0f50542d80af94c172342fdb686f3a59d5ee4457d978a54e75" +metafile = true + +[[files]] +file = "mods/create-ore-excavation.pw.toml" +hash = "d95f9869c9566617f24e06921a0809d94b87d4d9137aeb5b3f0f387ccb085441" +metafile = true + +[[files]] +file = "mods/create.pw.toml" +hash = "dcaf5f2e28db0b9a127d0167456832341045ddc9aec058c3d9fcf53f618d2404" +metafile = true + +[[files]] +file = "mods/createaddition.pw.toml" +hash = "5931025bb6c50fa9064bd6c3c3ca51afb4119535bd77d8cc01b6509e53a9abc1" +metafile = true + +[[files]] +file = "mods/creativecore.pw.toml" +hash = "e85b645ee93f88915be1e4ab421939f287accf3597cef9e69cc603a9773a6855" +metafile = true + +[[files]] +file = "mods/curios.pw.toml" +hash = "36debf7653e95a855b4fedacc19027cf2e01960fc0b6d55ef2ffbffbcb455690" +metafile = true + +[[files]] +file = "mods/deeperdarker.pw.toml" +hash = "ebb3df18070c94169933965dc6ef11ea68adb2b362623417e6b129f0af9a1bbe" +metafile = true + +[[files]] +file = "mods/dimensionaldoors.pw.toml" +hash = "f97c3a8f1346a9d4ffc36e7223b03b4abf0f657319145b9517d944184ae4839b" +metafile = true + +[[files]] +file = "mods/dimensionfixer.pw.toml" +hash = "b557d04a294edc95dadefa0612b074174f0a46f2952cf3e52132bf90994d5420" +metafile = true + +[[files]] +file = "mods/entangled.pw.toml" +hash = "019d7c110e2fcf7c908d4f58c7abd29ac2adbd20631fa63d77cb35d8dd6c2a45" +metafile = true + +[[files]] +file = "mods/every-compat.pw.toml" +hash = "ad90b35d953694bdd8f8f1efa7b05415686155760ec3def1ff69e26eb21341aa" +metafile = true + +[[files]] +file = "mods/extended-ae.pw.toml" +hash = "03494a76b42b1b79e4d36a93317b8e884cafdb7e08f6103ce47ecd4e4df57645" +metafile = true + +[[files]] +file = "mods/extendedae-plus.pw.toml" +hash = "b1dca93f457735eb70a6ffc2ceb7370471c31b0843b7694e9f1c0ede82991344" +metafile = true + +[[files]] +file = "mods/fast-pipes.pw.toml" +hash = "cba3a159eefb0e3c370bf6c8e1e78c9e17b85cdf8d2e77296ec4e38bdfe02f89" +metafile = true + +[[files]] +file = "mods/ferrite-core.pw.toml" +hash = "73360e397134d238ee8fd21d33fd7f9275e9441f74f8f1b6ed92278877c0b9f1" +metafile = true + +[[files]] +file = "mods/flux-networks.pw.toml" +hash = "ad8209e472d463c9fcd19ca708fcd9c1a4a1bc69c9f0ca22efeacb414e9ab7a8" +metafile = true + +[[files]] +file = "mods/framedblocks.pw.toml" +hash = "20eee73cffcd55bfe041b16bbc3adc64c38859bf928486bf1db1368b6dba2058" +metafile = true + +[[files]] +file = "mods/ftb-chunks-forge.pw.toml" +hash = "0922cfee3b7351e62fb22ccc6e5a59f35fd99fe80737dc861ada3b5407ecdf87" +metafile = true + +[[files]] +file = "mods/ftb-library-forge.pw.toml" +hash = "276e79d919c3a698ab2881d784544b7e60bef69b43f44808353bb65d38633cb3" +metafile = true + +[[files]] +file = "mods/ftb-quests-forge.pw.toml" +hash = "086f7c19410ca8759aa383671a5229a47b9dae71a31bcc286e12cd1af1e5008d" +metafile = true + +[[files]] +file = "mods/ftb-teams-forge.pw.toml" +hash = "e717bb275a54a5caadaa7cf82bc34df3589f49402074adf93c31eaac43860313" +metafile = true + +[[files]] +file = "mods/functional-storage.pw.toml" +hash = "55c21e0159f5509b84d1e1fa42c2e478a3600c43007ede829cad5839aaa1b8da" +metafile = true + +[[files]] +file = "mods/fusion-connected-textures.pw.toml" +hash = "c8c107f100252cb671a295df94432980e9b5d8c496c0fd196fda428a48932ef2" +metafile = true + +[[files]] +file = "mods/fzzy-config.pw.toml" +hash = "f9c118b7a66238a7f9e052705e82402e57c7a5b753d62d679b94701ede479752" +metafile = true + +[[files]] +file = "mods/geckolib.pw.toml" +hash = "65ac18556f91ebb4f303a39731e93e94ffa94ddc690b0fbf35346bdcb3b05919" +metafile = true + +[[files]] +file = "mods/glodium.pw.toml" +hash = "8b30d03470cc27030f42b6719cdb8975f163ed336fc8592f0277a4291bb08aec" +metafile = true + +[[files]] +file = "mods/guideme.pw.toml" +hash = "f7448243d61c3e7c5941896816afb91dd069cef492a2d93ceba9f48e391cdf44" +metafile = true + +[[files]] +file = "mods/handcrafted.pw.toml" +hash = "d573695d37296209dc06495d359c4b283ffa6640bcfe8aa9c9b59eb420891788" +metafile = true + +[[files]] +file = "mods/hologenica.pw.toml" +hash = "9b04b12cb6bf0a1222a6a4649c45c3a725154a8cf8d4f0163514279cbf7aae15" +metafile = true + +[[files]] +file = "mods/interiors.pw.toml" +hash = "e7e6b3effe3022cf1fdb900c857111fdcbfd6b385c2d5bd28c914efaed436ecb" +metafile = true + +[[files]] +file = "mods/ipsable.pw.toml" +hash = "64e2bb43d0c35ccd097dfdeb0cf6fa7b2aada4cb42868d794a060334549dd941" +metafile = true + +[[files]] +file = "mods/jade-addons-forge.pw.toml" +hash = "8cd8400cb4e2c5ba60c8a359a7b6ff501078d2056eab0aba7f6b0ac77b7a0694" +metafile = true + +[[files]] +file = "mods/jade.pw.toml" +hash = "4de3e4a1a49e332c1ad313283e0403c4273b628d634c17a9ff0c9da3d6b67f9a" +metafile = true + +[[files]] +file = "mods/jei.pw.toml" +hash = "1eb4094b466679316208fa85e5a855fc71945cfd639ff7f831586452b0cc3ad3" +metafile = true + +[[files]] +file = "mods/journeymap.pw.toml" +hash = "17ed80a0fb8716e279cb04664a7038cfa659f878e51915b61fcd7dd35a7920be" +metafile = true + +[[files]] +file = "mods/kotlin-for-forge.pw.toml" +hash = "712a69b3569a8055979de6eea262068535fe182dffb3833e53e5833e9cbf9766" +metafile = true + +[[files]] +file = "mods/krypton-fnp.pw.toml" +hash = "5a96006110f4cdd98460a994373153909a5f0bf6cb68c5ac3a64adbda86eb302" +metafile = true + +[[files]] +file = "mods/kubejs-create.pw.toml" +hash = "531aa276b74eabc24566c57412527767238c74ee16b9c646dff511f56dba990c" +metafile = true + +[[files]] +file = "mods/kubejs-mekanism.pw.toml" +hash = "828f12a754a929bf2e955cf9d0acca4cbe305f172e94c556fe9b0704bcaff7e0" +metafile = true + +[[files]] +file = "mods/kubejs.pw.toml" +hash = "99bea71046529d65463fc12acb505ab363c91133ebbcc1d976e49a5d33150702" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/lootjs.pw.toml" +hash = "9b32e1374a3d85ccdd4803c8932f72fbeb6357e69d895980e3f24e1974a07ca6" +metafile = true + +[[files]] +file = "mods/mech-trowel.pw.toml" +hash = "2c31453e756e64c0f9edcad1f716900ddd07b1ea4c8c955a2d001725c65366c1" +metafile = true + +[[files]] +file = "mods/mechanicals-lib.pw.toml" +hash = "c9e181185e3177d43fc9bd8d919288ac1bc0ce6b85e7049890f3eb231f5be10d" +metafile = true + +[[files]] +file = "mods/mekanism-additions.pw.toml" +hash = "086e5173f9d4dd76196a67e6604b5787b5f17312a6c3db49b1651fe2d972fe16" +metafile = true + +[[files]] +file = "mods/mekanism-covers.pw.toml" +hash = "8330f1d99526fb1952ca5bc3b524f65bf12295a7795803e4c7024d51dbe21df1" +metafile = true + +[[files]] +file = "mods/mekanism-generators.pw.toml" +hash = "0ec2ceb5602df266d2e07bdc0bc409cdd3d325a6b5136554787779cdf8057a27" +metafile = true + +[[files]] +file = "mods/mekanism-tools.pw.toml" +hash = "efafea92ef966ffe7c3c31209b643a9bbcccb3a8a5a02347b49ff50e015980fe" +metafile = true + +[[files]] +file = "mods/mekanism-unleashed.pw.toml" +hash = "3b581d5b1f00597a27c366f82cfe9a3f3e311c233e7e03a54403de752c4fb3c7" +metafile = true + +[[files]] +file = "mods/mekanism.pw.toml" +hash = "42061fd570a0b7a8063c0860056c6391593190caa0f12d3b49105e52a56817fe" +metafile = true + +[[files]] +file = "mods/mekanism_extra.pw.toml" +hash = "adff0484ffea891ba8da3b92d2ec5c0a4bd53f9f83a903e54299e9718b81cf64" +metafile = true + +[[files]] +file = "mods/mekanismmoremachine.pw.toml" +hash = "4f9a3e248ed5d5b622df3375d0336b76301f55aa2d8877352cf85a2b1b462a04" +metafile = true + +[[files]] +file = "mods/merequester.pw.toml" +hash = "8f638da7fdf14f7c9cdc0687f7cae53e020736ab8a3b92e9c3fe123a212e1550" +metafile = true + +[[files]] +file = "mods/modernfix.pw.toml" +hash = "6d3ff3b7bbcc97fa06bdddcf2b3b7646168497ba6d7104bdea376f1bc65f9a93" +metafile = true + +[[files]] +file = "mods/modular-routers.pw.toml" +hash = "bbd0fee939a90c478aa404630629a49ab764ab7dd48ca6c9b928889769c32a89" +metafile = true + +[[files]] +file = "mods/moonlight.pw.toml" +hash = "6e9d9c2c85d3f2c41f93f77d1f7bb9efe518368348ce8bcd82e7a8128a281c72" +metafile = true + +[[files]] +file = "mods/mouse-tweaks.pw.toml" +hash = "2bdee19bd39b4bd411d7c858a7978ca9d2bdda41c1cf15920ea6be0014663f79" +metafile = true + +[[files]] +file = "mods/mutant-monsters.pw.toml" +hash = "56aaa078a6f7ee61eef9c6f3685ff44618bb2565d7d0ccd39c723a2659295e58" +metafile = true + +[[files]] +file = "mods/nyfs-spiders.pw.toml" +hash = "10e2d5565e299d0fafa79e7c949961bf692d9a15b5de146b2905ea7df0987d29" +metafile = true + +[[files]] +file = "mods/per-spatium.pw.toml" +hash = "557c7470f6fa151d176e684154b22ea9a53b80f57070a8ae6eeccf771f336cab" +metafile = true + +[[files]] +file = "mods/playeranimator.pw.toml" +hash = "93284ca7f2f23f0bb76d42b797cabf2aea1914ee9825bec82bf6ffe4c60dda0d" +metafile = true + +[[files]] +file = "mods/potentials.pw.toml" +hash = "92446d159e74cb755c54cfffb6a3e5a0976ec4d203da360a327c6010daef3b51" +metafile = true + +[[files]] +file = "mods/puzzles-lib.pw.toml" +hash = "6a07261762a29c6108ea6030ec71ff6801e03127a0004cf105490004c77eacf5" +metafile = true + +[[files]] +file = "mods/rechiseled-create.pw.toml" +hash = "f7758221468760a7d22b31f97e822f5a66fa1fa21d2c8b4b3bb21ca01faff3cd" +metafile = true + +[[files]] +file = "mods/rechiseled.pw.toml" +hash = "55fcb8b7508262d7e384f81dc86c0cf0c28ec98194d2dd842208b96291931c0c" +metafile = true + +[[files]] +file = "mods/reintegrated-chipped.pw.toml" +hash = "ec3c9e001964a1aabe955d4ca267eca4c2819fddb89a99fc8cc0050b0dfecb14" +metafile = true + +[[files]] +file = "mods/resourceful-lib.pw.toml" +hash = "aa83553db30adc47f86010f6443340251323a62ee3f9415a0c4332cb6d502419" +metafile = true + +[[files]] +file = "mods/rhino.pw.toml" +hash = "e55ca32b338a0e0540f4fec5170675d860566255ae0f45692a00cb4ebf2eb535" +metafile = true + +[[files]] +file = "mods/rpl.pw.toml" +hash = "7815e5a589de0c02a62ae83590e1f75f4d0c269e48f2435ce2ac448976ddf49f" +metafile = true + +[[files]] +file = "mods/sable.pw.toml" +hash = "a1fa121ed5d0207e4cdd3f545d043f68f9a4bb38dcb21278b968fad5e4cefe4a" +metafile = true + +[[files]] +file = "mods/simply-swords.pw.toml" +hash = "1d37ac39109aa15d03a3a7ddf6402d63f72277acafca53f61830046acfe6edb0" +metafile = true + +[[files]] +file = "mods/slice-and-dice.pw.toml" +hash = "83a7b840686a417dfe1161ee5cd918989dd2d901c9013bf85e93a30f597260f7" +metafile = true + +[[files]] +file = "mods/sophisticated-backpacks.pw.toml" +hash = "41343a364eeff7106d903f2bb658b91ae8b0ce216ddba103e1be5edb1a27649f" +metafile = true + +[[files]] +file = "mods/sophisticated-core.pw.toml" +hash = "9ee0490b06b36ba9bff93af9f75493f3dd4e71a1ab8ce4ee778ee5fdb11eb49c" +metafile = true + +[[files]] +file = "mods/sophisticated-storage.pw.toml" +hash = "3868fd30c966597162d2d107719d2c6a7a1f592c98634d4c7c6b463dedbb85fe" +metafile = true + +[[files]] +file = "mods/sound-physics-remastered.pw.toml" +hash = "b9d4d42709629f2d52cb9d33bedf298bbea635b53f69946f9ec2735c47dfbd83" +metafile = true + +[[files]] +file = "mods/stellaris.pw.toml" +hash = "06094f9d641eca3fad232ff9e2c615e323a9a689e15b2c558ebe33a27c59f4c8" +metafile = true + +[[files]] +file = "mods/supermartijn642s-config-lib.pw.toml" +hash = "2e42245826ce70d4ad673addb0e5244da388841f1484f03ee5a9426ee33b2229" +metafile = true + +[[files]] +file = "mods/supermartijn642s-core-lib.pw.toml" +hash = "d50dfa866f719fe606d34bb81b0e466c1e6017878fa6b58b405e419ceaf9ee0d" +metafile = true + +[[files]] +file = "mods/supplementaries-squared.pw.toml" +hash = "46280c9487633e3bd1dd7bb24ccc4076058b2602d7dc2906f96509527346cf24" +metafile = true + +[[files]] +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" +metafile = true + +[[files]] +file = "mods/titanium.pw.toml" +hash = "7830a79862c572434679f36377d3bd985a11a6ccb508d8f1911138138e647a4c" +metafile = true + +[[files]] +file = "mods/waystones.pw.toml" +hash = "18755836fe5817992e8f52bdb1d42857e85a41a7a19287b04d63a072006931b5" +metafile = true + +[[files]] +file = "mods/worldportal.pw.toml" +hash = "6c68bccb9ef922f1bd2f012b41fb278eeb4f37b0120407556865bedf7cd43fdb" +metafile = true diff --git a/server_pack/kubejs/assets/scicraft/lang/en_us.json b/server_pack/kubejs/assets/scicraft/lang/en_us.json new file mode 100644 index 0000000..76280ee --- /dev/null +++ b/server_pack/kubejs/assets/scicraft/lang/en_us.json @@ -0,0 +1,65 @@ +{ + "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.", + "tooltip.scicraft.photon_core.2": "A sliver of the fifth force the Flight harnessed.", + "tooltip.scicraft.photon_core.3": "Hold it and feel the seals.", + "tooltip.scicraft.photon_fragment.1": "A splinter of light stolen from the collapse.", + "tooltip.scicraft.photon_fragment.2": "Recovered from the Darker's remains.", + "tooltip.scicraft.photon_fragment.3": "Three of these may be pressed into a Core.", + "tooltip.scicraft.void_stabilizer.1": "Per Spatium — the renegades' seal for the wound in the world.", + "tooltip.scicraft.void_stabilizer.2": "Right-click a powered Quantum Lattice to re-seal a Door.", + "tooltip.scicraft.void_stabilizer.3": "It will never break. The work will.", + "tooltip.scicraft.quantum_lattice.1": "The Protocol's emitter. It must stay powered.", + "tooltip.scicraft.quantum_lattice.2": "Feed it steel, circuits, and Photon Cores.", + "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.", + "jei.scicraft.photon_core.1": "Compress three Photon Fragments in a Create Press,", + "jei.scicraft.photon_core.2": "or smelt an Ender Pearl in the heart of the wound.", + "jei.scicraft.void_stabilizer.1": "The seal of the Flight. Crafted from Photon Cores and an Ender Eye.", + "jei.scicraft.void_stabilizer.2": "Use it on a powered Quantum Lattice to re-seal a Door and lower the Corruption Tide.", + "jei.scicraft.quantum_lattice.1": "The emitter of the Dark Photon Protocol.", + "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.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", + "advancements.scicraft.protocol.first_signal.description": "Recover your first Photon Fragment from a creature of the Dark.", + "advancements.scicraft.protocol.the_core.title": "The Core", + "advancements.scicraft.protocol.the_core.description": "Press three Fragments into a Photon Core.", + "advancements.scicraft.protocol.the_seal.title": "The Seal", + "advancements.scicraft.protocol.the_seal.description": "Craft the Void Stabilizer — the renegades' tool for closing wounds.", + "advancements.scicraft.protocol.the_lattice.title": "The Lattice", + "advancements.scicraft.protocol.the_lattice.description": "Assemble the Quantum Lattice — the Protocol's emitter — and keep it powered.", + "advancements.scicraft.protocol.the_legacy.title": "The Legacy", + "advancements.scicraft.protocol.the_legacy.description": "Craft Renegade Glass — rebuild what the Flight left behind.", + "advancements.scicraft.protocol.through_the_doors.title": "Through the Doors", + "advancements.scicraft.protocol.through_the_doors.description": "Enter a Dimensional Door. The scar-tissue of the Flight's prison.", + "advancements.scicraft.protocol.the_wound.title": "The Wound", + "advancements.scicraft.protocol.the_wound.description": "Descend into the Void Dimension — the raw leak of the collapsing empire.", + "advancements.scicraft.protocol.the_answer.title": "The Answer", + "advancements.scicraft.protocol.the_answer.description": "Reach the Othersides of the Deeper and Darker — what answers from inside the prison.", + "advancements.scicraft.protocol.per_spatium.title": "Per Spatium", + "advancements.scicraft.protocol.per_spatium.description": "Launch a rocket. The Flight's data was scattered across the stars.", + "scicraft.phrases.signal": "The last signal of the Second Renegade Flight hums in your blood.", + "scicraft.phrases.lattice_hum": "The Lattice hums. Reality holds — for now.", + "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.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/block/quantum_lattice.png b/server_pack/kubejs/assets/scicraft/textures/block/quantum_lattice.png new file mode 100644 index 0000000..c04e00f Binary files /dev/null and b/server_pack/kubejs/assets/scicraft/textures/block/quantum_lattice.png differ diff --git a/server_pack/kubejs/assets/scicraft/textures/block/renegade_glass.png b/server_pack/kubejs/assets/scicraft/textures/block/renegade_glass.png new file mode 100644 index 0000000..8e6e7e2 Binary files /dev/null and b/server_pack/kubejs/assets/scicraft/textures/block/renegade_glass.png differ diff --git a/server_pack/kubejs/assets/scicraft/textures/item/photon_core.png b/server_pack/kubejs/assets/scicraft/textures/item/photon_core.png new file mode 100644 index 0000000..db65cfe Binary files /dev/null and b/server_pack/kubejs/assets/scicraft/textures/item/photon_core.png differ diff --git a/server_pack/kubejs/assets/scicraft/textures/item/photon_fragment.png b/server_pack/kubejs/assets/scicraft/textures/item/photon_fragment.png new file mode 100644 index 0000000..d07c913 Binary files /dev/null and b/server_pack/kubejs/assets/scicraft/textures/item/photon_fragment.png differ 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/assets/scicraft/textures/item/void_stabilizer.png b/server_pack/kubejs/assets/scicraft/textures/item/void_stabilizer.png new file mode 100644 index 0000000..05cd48b Binary files /dev/null and b/server_pack/kubejs/assets/scicraft/textures/item/void_stabilizer.png differ diff --git a/server_pack/kubejs/client_scripts/01_tooltips.js b/server_pack/kubejs/client_scripts/01_tooltips.js new file mode 100644 index 0000000..9c2c744 --- /dev/null +++ b/server_pack/kubejs/client_scripts/01_tooltips.js @@ -0,0 +1,35 @@ +// SCICRAFT — The Dark Photon Protocol +// Client tooltips: the story rides on the items you carry. +// Text lives in STORY/02-items.md (tooltip.scicraft.* keys) — never hardcode. + +ItemEvents.modifyTooltips(event => { + event.add('scicraft:photon_core', [ + '', + Text.translate('tooltip.scicraft.photon_core.1'), + Text.translate('tooltip.scicraft.photon_core.2'), + Text.translate('tooltip.scicraft.photon_core.3') + ]) + event.add('scicraft:photon_fragment', [ + '', + Text.translate('tooltip.scicraft.photon_fragment.1'), + Text.translate('tooltip.scicraft.photon_fragment.2'), + Text.translate('tooltip.scicraft.photon_fragment.3') + ]) + event.add('scicraft:void_stabilizer', [ + '', + Text.translate('tooltip.scicraft.void_stabilizer.1'), + Text.translate('tooltip.scicraft.void_stabilizer.2'), + Text.translate('tooltip.scicraft.void_stabilizer.3') + ]) + event.add('scicraft:quantum_lattice', [ + '', + Text.translate('tooltip.scicraft.quantum_lattice.1'), + Text.translate('tooltip.scicraft.quantum_lattice.2'), + Text.translate('tooltip.scicraft.quantum_lattice.3') + ]) + event.add('scicraft:renegade_glass', [ + '', + Text.translate('tooltip.scicraft.renegade_glass.1'), + Text.translate('tooltip.scicraft.renegade_glass.2') + ]) +}) \ No newline at end of file diff --git a/server_pack/kubejs/client_scripts/02_jei_info.js b/server_pack/kubejs/client_scripts/02_jei_info.js new file mode 100644 index 0000000..5c3a49c --- /dev/null +++ b/server_pack/kubejs/client_scripts/02_jei_info.js @@ -0,0 +1,28 @@ +// SCICRAFT — The Dark Photon Protocol +// JEI/Recipe Viewer info pages: where the story is and where to get the pieces. +// Text lives in STORY/02-items.md (jei.scicraft.* keys) — never hardcode. + +RecipeViewerEvents.addInformation('item', event => { + event.add('scicraft:photon_fragment', [ + Text.translate('jei.scicraft.photon_fragment.1'), + Text.translate('jei.scicraft.photon_fragment.2'), + Text.translate('jei.scicraft.photon_fragment.3') + ]) + event.add('scicraft:photon_core', [ + Text.translate('jei.scicraft.photon_core.1'), + Text.translate('jei.scicraft.photon_core.2') + ]) + event.add('scicraft:void_stabilizer', [ + Text.translate('jei.scicraft.void_stabilizer.1'), + Text.translate('jei.scicraft.void_stabilizer.2') + ]) + event.add('scicraft:quantum_lattice', [ + Text.translate('jei.scicraft.quantum_lattice.1'), + Text.translate('jei.scicraft.quantum_lattice.2'), + Text.translate('jei.scicraft.quantum_lattice.3') + ]) + event.add('scicraft:renegade_glass', [ + Text.translate('jei.scicraft.renegade_glass.1'), + Text.translate('jei.scicraft.renegade_glass.2') + ]) +}) \ No newline at end of file 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..4ff0f6e --- /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.dataReceived('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/data/scicraft/advancements/protocol/first_signal.json b/server_pack/kubejs/data/scicraft/advancements/protocol/first_signal.json new file mode 100644 index 0000000..72bda3a --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/first_signal.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/root", + "display": { + "icon": { + "item": "scicraft:photon_fragment" + }, + "title": { + "translate": "advancements.scicraft.protocol.first_signal.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.first_signal.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_fragment": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:photon_fragment" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_fragment" + ] + ], + "rewards": { + "experience": 100 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/per_spatium.json b/server_pack/kubejs/data/scicraft/advancements/protocol/per_spatium.json new file mode 100644 index 0000000..6d03d04 --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/per_spatium.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "stellaris:rocket" + }, + "title": { + "translate": "advancements.scicraft.protocol.per_spatium.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.per_spatium.description" + }, + "frame": "goal", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "launch_rocket": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "stellaris:moon" + } + } + }, + "requirements": [ + [ + "launch_rocket" + ] + ], + "rewards": { + "experience": 600 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/root.json b/server_pack/kubejs/data/scicraft/advancements/protocol/root.json new file mode 100644 index 0000000..49bb2c3 --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/root.json @@ -0,0 +1,34 @@ +{ + "display": { + "icon": { + "item": "scicraft:photon_core" + }, + "title": { + "translate": "advancements.scicraft.protocol.root.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.root.description" + }, + "background": "minecraft:textures/block/blackstone.png", + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "first_signal": { + "trigger": "minecraft:tick", + "conditions": {} + } + }, + "requirements": [ + [ + "first_signal" + ] + ], + "rewards": { + "loot": [ + "scicraft:protocol/root_reward" + ] + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/the_answer.json b/server_pack/kubejs/data/scicraft/advancements/protocol/the_answer.json new file mode 100644 index 0000000..e34f257 --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/the_answer.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "minecraft:sculk_sensor" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_answer.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_answer.description" + }, + "frame": "challenge", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "enter_darker": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "deeperdarker:otherside" + } + } + }, + "requirements": [ + [ + "enter_darker" + ] + ], + "rewards": { + "experience": 750 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/the_core.json b/server_pack/kubejs/data/scicraft/advancements/protocol/the_core.json new file mode 100644 index 0000000..906711d --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/the_core.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/first_signal", + "display": { + "icon": { + "item": "scicraft:photon_core" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_core.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_core.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_core": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:photon_core" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_core" + ] + ], + "rewards": { + "experience": 250 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/the_lattice.json b/server_pack/kubejs/data/scicraft/advancements/protocol/the_lattice.json new file mode 100644 index 0000000..0ece078 --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/the_lattice.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/the_seal", + "display": { + "icon": { + "item": "scicraft:quantum_lattice" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_lattice.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_lattice.description" + }, + "frame": "challenge", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_lattice": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:quantum_lattice" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_lattice" + ] + ], + "rewards": { + "experience": 1000 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/the_legacy.json b/server_pack/kubejs/data/scicraft/advancements/protocol/the_legacy.json new file mode 100644 index 0000000..f6fb54e --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/the_legacy.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "scicraft:renegade_glass" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_legacy.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_legacy.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_glass": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:renegade_glass" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_glass" + ] + ], + "rewards": { + "experience": 300 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/the_seal.json b/server_pack/kubejs/data/scicraft/advancements/protocol/the_seal.json new file mode 100644 index 0000000..5fd892e --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/the_seal.json @@ -0,0 +1,40 @@ +{ + "parent": "scicraft:protocol/the_core", + "display": { + "icon": { + "item": "scicraft:void_stabilizer" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_seal.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_seal.description" + }, + "frame": "goal", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "has_stabilizer": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "scicraft:void_stabilizer" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_stabilizer" + ] + ], + "rewards": { + "experience": 500 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/the_wound.json b/server_pack/kubejs/data/scicraft/advancements/protocol/the_wound.json new file mode 100644 index 0000000..5bc94be --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/the_wound.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_lattice", + "display": { + "icon": { + "item": "minecraft:respawn_anchor" + }, + "title": { + "translate": "advancements.scicraft.protocol.the_wound.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.the_wound.description" + }, + "frame": "challenge", + "show_toast": true, + "announce_to_chat": true, + "hidden": false + }, + "criteria": { + "enter_void": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "thevoiddimension:overworld" + } + } + }, + "requirements": [ + [ + "enter_void" + ] + ], + "rewards": { + "experience": 750 + } +} diff --git a/server_pack/kubejs/data/scicraft/advancements/protocol/through_the_doors.json b/server_pack/kubejs/data/scicraft/advancements/protocol/through_the_doors.json new file mode 100644 index 0000000..9e494ea --- /dev/null +++ b/server_pack/kubejs/data/scicraft/advancements/protocol/through_the_doors.json @@ -0,0 +1,34 @@ +{ + "parent": "scicraft:protocol/the_seal", + "display": { + "icon": { + "item": "minecraft:ender_eye" + }, + "title": { + "translate": "advancements.scicraft.protocol.through_the_doors.title" + }, + "description": { + "translate": "advancements.scicraft.protocol.through_the_doors.description" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": true + }, + "criteria": { + "enter_doors": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "dimensionaldoors:limbo" + } + } + }, + "requirements": [ + [ + "enter_doors" + ] + ], + "rewards": { + "experience": 400 + } +} diff --git a/server_pack/kubejs/data/scicraft/loot_tables/protocol/root_reward.json b/server_pack/kubejs/data/scicraft/loot_tables/protocol/root_reward.json new file mode 100644 index 0000000..0059116 --- /dev/null +++ b/server_pack/kubejs/data/scicraft/loot_tables/protocol/root_reward.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:advancement_reward", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "scicraft:photon_fragment", + "functions": [ + { "function": "minecraft:set_count", "count": 2 } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/server_pack/kubejs/server_scripts/01_corruption_tide.js b/server_pack/kubejs/server_scripts/01_corruption_tide.js new file mode 100644 index 0000000..a6607dc --- /dev/null +++ b/server_pack/kubejs/server_scripts/01_corruption_tide.js @@ -0,0 +1,76 @@ +// SCICRAFT — The Dark Photon Protocol +// GLOBAL CORRUPTION TIDE. Shared by all players via server persistent data. +// Rises while the Doors stay unsealed. Re-seal them at the Lattice to push it back. + +const TIDE_SC = { + items: { quantum_lattice: 'scicraft:quantum_lattice' }, + tide: { + key: 'scicraft_corruption', + min: 0, + max: 100, + rise_per_tick: 1200, + seal_reduction: 15, + darkness_threshold: 30, + darker_threshold: 60 + }, + dimensions: { + void_dim: 'thevoiddimension:overworld', + darker_dim: 'deeperdarker:otherside' + } +} +const T = TIDE_SC.tide + +function getTide(server) { + const data = server.persistentData + if (!data.contains(T.key)) data.putInt(T.key, 0) + return data.getInt(T.key) +} + +function setTide(server, value) { + server.persistentData.putInt(T.key, Math.max(T.min, Math.min(T.max, value))) +} + +// The tide climbs while Doors go unsealed — global, not per-player. +ServerEvents.tick(event => { + if (event.server.ticks % T.rise_per_tick !== 0) return + setTide(event.server, getTide(event.server) + 1) +}) + +// Every sealed Lattice pushes the tide back, once per stabilizer use. +BlockEvents.rightClicked(event => { + if (event.block.id !== TIDE_SC.items.quantum_lattice) return + const held = event.player.mainHandItem + if (!held.hasTag('scicraft:stabilizer')) return + if (event.player.crouching) return + + const before = getTide(event.server) + setTide(event.server, before - T.seal_reduction) + const after = getTide(event.server) + event.player.server.runCommandSilent(`playsound minecraft:block.beacon.activate block @a ~ ~ ~ 1 0.7`) + event.player.server.tell([Text.translate('scicraft.phrases.lattice_hum'), ` §7(tide ${before} → ${after})`]) + event.cancel() +}) + +// Ambient dread: darkness the closer the world is to the Darker. +PlayerEvents.tick(event => { + if (event.player.server.ticks % 40 !== 0) return + const tide = getTide(event.player.server) + const dim = String(event.player.level.dimension) + + if (tide >= T.darkness_threshold) { + event.player.potionEffects.add('minecraft:darkness', 80, 0, true, false) + } + + // Inside the wound itself, the dark is absolute. + if (dim === TIDE_SC.dimensions.void_dim || dim === TIDE_SC.dimensions.darker_dim) { + event.player.potionEffects.add('minecraft:darkness', 120, 1, true, false) + } +}) + +// Broadcast phase changes once per threshold crossing. +ServerEvents.tick(event => { + if (event.server.ticks % 200 !== 0) return + const tide = getTide(event.server) + const msg = tide >= T.darker_threshold ? 'tide_high' : tide >= T.darkness_threshold ? 'tide_mid' : 'tide_low' + event.server.tell(Text.translate('scicraft.phrases.' + msg)) +}) \ No newline at end of file diff --git a/server_pack/kubejs/server_scripts/02_events.js b/server_pack/kubejs/server_scripts/02_events.js new file mode 100644 index 0000000..df658c2 --- /dev/null +++ b/server_pack/kubejs/server_scripts/02_events.js @@ -0,0 +1,48 @@ +// SCICRAFT — The Dark Photon Protocol +// Player-side lore events: the Resonance, void exposure, and held-item powers. + +const EVENTS_SC = { + items: { + photon_core: 'scicraft:photon_core', + void_stabilizer: 'scicraft:void_stabilizer' + }, + dimensions: { + void_dim: 'thevoiddimension:overworld', + darker_dim: 'deeperdarker:otherside' + } +} + +// Proto-Time-Lord: holding a Photon Core or Stabilizer lets you feel the seals. +PlayerEvents.tick(event => { + if (event.player.server.ticks % 40 !== 0) return + const held = event.player.mainHandItem + + if (held.id === EVENTS_SC.items.photon_core) { + event.player.potionEffects.add('minecraft:night_vision', 140, 0, true, false) + } + if (held.id === EVENTS_SC.items.void_stabilizer) { + event.player.potionEffects.add('minecraft:speed', 120, 0, true, false) + event.player.potionEffects.add('minecraft:regeneration', 120, 0, true, false) + } +}) + +// The wound is physically hostile. Being inside it costs you. +PlayerEvents.tick(event => { + const dim = String(event.player.level.dimension) + if (dim === EVENTS_SC.dimensions.void_dim) { + if (event.player.server.ticks % 100 === 0) { + event.player.hurt('minecraft:generic', 1.0) + } + } else if (dim === EVENTS_SC.dimensions.darker_dim) { + if (event.player.server.ticks % 200 === 0) { + event.player.potionEffects.add('minecraft:wither', 80, 0, true, false) + } + } +}) + +// Arrival in the wound triggers the first vision. +PlayerEvents.loggedIn(event => { + event.player.tell(Text.translate('scicraft.phrases.signal')) +}) +// Note: Warden fragment drops are handled in 04_loot.js (LootJS) — do not +// duplicate them here or players get double drops. \ No newline at end of file diff --git a/server_pack/kubejs/server_scripts/03_recipes_tags.js b/server_pack/kubejs/server_scripts/03_recipes_tags.js new file mode 100644 index 0000000..ac60846 --- /dev/null +++ b/server_pack/kubejs/server_scripts/03_recipes_tags.js @@ -0,0 +1,69 @@ +// SCICRAFT — The Dark Photon Protocol +// The Protocol's crafting chain. Soft-gates the story items behind mod content. + +const RECIPES_SC = { + items: { + photon_fragment: 'scicraft:photon_fragment', + photon_core: 'scicraft:photon_core', + void_stabilizer: 'scicraft:void_stabilizer', + quantum_lattice: 'scicraft:quantum_lattice', + renegade_glass: 'scicraft:renegade_glass' + } +} + +ServerEvents.recipes(event => { + // --- Photon Fragment: harvested from the Darker's own remains. + // (LootJS also adds these; this gives a deterministic in-world path.) + event.shapeless(RECIPES_SC.items.photon_fragment, ['minecraft:echo_shard', 'minecraft:glowstone_dust']) + .id('scicraft:photon_fragment_from_echo') + + // --- Photon Core: compress fragments in a Mekanism-grade press. + event.recipes.create.pressing(RECIPES_SC.items.photon_core, '3x ' + RECIPES_SC.items.photon_fragment) + .id('scicraft:photon_core_pressing') + event.smelting(RECIPES_SC.items.photon_core, 'minecraft:ender_pearl', 0.5) + .id('scicraft:photon_core_smelting') + + // --- Void Stabilizer: the tool of the Flight — needs a door's key, not ore. + event.shaped(RECIPES_SC.items.void_stabilizer, [ + ' P ', + 'PEP', + ' P ' + ], { + P: RECIPES_SC.items.photon_core, + E: 'minecraft:ender_eye' + }).id('scicraft:void_stabilizer') + + // --- Quantum Lattice: the emitter. Dense, expensive, ongoing. + event.shaped(RECIPES_SC.items.quantum_lattice, [ + 'SCS', + 'CPC', + 'SCS' + ], { + S: 'c:ingots/steel', + C: 'c:circuits', + P: RECIPES_SC.items.photon_core + }).id('scicraft:quantum_lattice') + + // --- Renegade Glass: the Flight's TARDIS-blue pane. Purely decorative. + event.shaped('8x ' + RECIPES_SC.items.renegade_glass, [ + 'GGG', + 'GPG', + 'GGG' + ], { + G: 'c:glass_blocks', + P: RECIPES_SC.items.photon_fragment + }).id('scicraft:renegade_glass') +}) + +// Tag unification so Mekanism / Create / AE2 accept the Protocol metals. +ServerEvents.tags('item', event => { + const steel = ['mekanism:ingot_steel', 'create:experience_nugget'] + event.add('c:ingots/steel', steel) + event.add('c:ingots/brass', ['create:brass_ingot']) + event.add('c:ingots/tin', ['mekanism:ingot_tin']) + event.add('c:ingots/lead', ['mekanism:ingot_lead']) + event.add('c:ingots/osmium', ['mekanism:ingot_osmium']) + event.add('c:ingots/uranium', ['mekanism:ingot_uranium']) + event.add('c:gems/fluorite', ['mekanism:fluorite_gem']) + event.add('c:dusts/redstone', ['minecraft:redstone']) +}) \ No newline at end of file diff --git a/server_pack/kubejs/server_scripts/04_loot.js b/server_pack/kubejs/server_scripts/04_loot.js new file mode 100644 index 0000000..c8ac9f4 --- /dev/null +++ b/server_pack/kubejs/server_scripts/04_loot.js @@ -0,0 +1,25 @@ +// SCICRAFT — The Dark Photon Protocol +// LootJS: the Darker and the sealed horrors drop Photon Fragments. +// LootJS ships with the pack; if you disable it, remove this file. + +LootJS.modifiers(event => { + // The Warden — a creature of the Deep Dark, now answering the signal. + event.addEntityModifier('minecraft:warden') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([1, 3])) + + // Mutant Monsters — the corrupted remnants of the Flight's containment. + event.addEntityModifier('mutantmonsters:mutant_zombie') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([1, 2])) + event.addEntityModifier('mutantmonsters:mutant_skeleton') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([1, 2])) + event.addEntityModifier('mutantmonsters:mutant_enderman') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([2, 4])) + + // Born in Chaos — the Darker's forward scouts. + event.addEntityModifier('born_in_chaos_v1:dark_vortex') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount(1)) + event.addEntityModifier('born_in_chaos_v1:dread_hound') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount(1)) + event.addEntityModifier('born_in_chaos_v1:nightmare_stalker') + .addLoot(LootEntry.of('scicraft:photon_fragment').setCount([2, 3])) +}) \ No newline at end of file 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 new file mode 100644 index 0000000..40fad70 --- /dev/null +++ b/server_pack/kubejs/startup_scripts/registry_blocks.js @@ -0,0 +1,60 @@ +// SCICRAFT — The Dark Photon Protocol +// Custom items & blocks for the Protocol. +// Names + tooltips come from the lang file (STORY/*.md → en_us.json). +// Startup scripts: requires a full restart to apply. + +StartupEvents.registry('item', event => { + // Photon Core — the raw fifth-force crystal. Lattice fuel. + event.create('scicraft:photon_core') + .texture('scicraft:item/photon_core') + .maxStackSize(64) + .tag('scicraft:photon') + .tag('c:gems') + .glow(true) + + // Photon Fragment — shattered cores recovered from the Darker. + event.create('scicraft:photon_fragment') + .texture('scicraft:item/photon_fragment') + .maxStackSize(64) + .tag('scicraft:photon') + .tag('c:gems') + .glow(true) + + // Void Stabilizer — the tool that re-seals Doors at the Lattice. + event.create('scicraft:void_stabilizer') + .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 => { + // Quantum Lattice — the Protocol's emitter. Must stay powered. + event.create('scicraft:quantum_lattice') + .texture('scicraft:block/quantum_lattice') + .hardness(5.0) + .resistance(1200.0) + .soundType('metal') + .mapColor('color_gray') + .lightLevel(0.9) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('minecraft:needs_diamond_tool') + + // Renegade Glass — the TARDIS-blue glass of the Flight. Purely decorative. + event.create('scicraft:renegade_glass') + .texture('scicraft:block/renegade_glass') + .hardness(0.3) + .resistance(0.3) + .soundType('glass') + .renderType('translucent') + .opaque(false) + .tagBlock('minecraft:mineable/pickaxe') + .tagBlock('c:glass_blocks') + .tagBlock('c:glass') + .tagBlock('minecraft:impermeable') +}) \ No newline at end of file diff --git a/server_pack/mods/ae2-import-export-card.pw.toml b/server_pack/mods/ae2-import-export-card.pw.toml new file mode 100644 index 0000000..81e8c60 --- /dev/null +++ b/server_pack/mods/ae2-import-export-card.pw.toml @@ -0,0 +1,13 @@ +name = "AE2 Import Export Card" +filename = "ae2importexportcard-1.21.1-1.5.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/qelfSMnn/versions/UtJepGDL/ae2importexportcard-1.21.1-1.5.0.jar" +hash-format = "sha512" +hash = "cc975c67ba0b064534941ac50019d06cb139cae35dab080af5db8310a073ad1a924b31e03922dbf26ee4dd0fcb8dd536280e2eaebd72c0760032660b709c03c7" + +[update] +[update.modrinth] +mod-id = "qelfSMnn" +version = "UtJepGDL" diff --git a/server_pack/mods/ae2-qol-recipes.pw.toml b/server_pack/mods/ae2-qol-recipes.pw.toml new file mode 100644 index 0000000..c954690 --- /dev/null +++ b/server_pack/mods/ae2-qol-recipes.pw.toml @@ -0,0 +1,13 @@ +name = "AE2 QoL Recipes" +filename = "ae2qolrecipes-neoforge-1.21.x-1.3.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/K7VSm2YY/versions/gyP6Pp5h/ae2qolrecipes-neoforge-1.21.x-1.3.0.jar" +hash-format = "sha512" +hash = "fea6cf8dcfb7b0a0bd7131885b304caec475a56564c60580cd2b2352399df1fb22b5f1b3e979f8a0d2e7175c25f1581b13794e89f23e3bb4491b83f2604cbdc0" + +[update] +[update.modrinth] +mod-id = "K7VSm2YY" +version = "gyP6Pp5h" diff --git a/server_pack/mods/ae2.pw.toml b/server_pack/mods/ae2.pw.toml new file mode 100644 index 0000000..ecff36e --- /dev/null +++ b/server_pack/mods/ae2.pw.toml @@ -0,0 +1,13 @@ +name = "Applied Energistics 2" +filename = "appliedenergistics2-19.2.17.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/XxWD5pD3/versions/kfyIqgJ6/appliedenergistics2-19.2.17.jar" +hash-format = "sha512" +hash = "55edfd948366aff620881e0625e48c333a2cb847e73249bc0b588efbc4b86709992a8ffbca97ea387e270df4186fe7f74ee2f27b739f1c952e932becfb9dea33" + +[update] +[update.modrinth] +mod-id = "XxWD5pD3" +version = "kfyIqgJ6" diff --git a/server_pack/mods/ambientsounds.pw.toml b/server_pack/mods/ambientsounds.pw.toml new file mode 100644 index 0000000..22ea254 --- /dev/null +++ b/server_pack/mods/ambientsounds.pw.toml @@ -0,0 +1,13 @@ +name = "AmbientSounds 6" +filename = "AmbientSounds_NEOFORGE_v6.3.8_mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "c79ab328b2c46068effebdcb3f26e98dc4404cb0" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8043019 +project-id = 254284 diff --git a/server_pack/mods/appleskin.pw.toml b/server_pack/mods/appleskin.pw.toml new file mode 100644 index 0000000..88e04c9 --- /dev/null +++ b/server_pack/mods/appleskin.pw.toml @@ -0,0 +1,13 @@ +name = "AppleSkin" +filename = "appleskin-neoforge-mc1.21-3.0.9.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/EsAfCjCV/versions/uAKA6Laj/appleskin-neoforge-mc1.21-3.0.9.jar" +hash-format = "sha512" +hash = "f4ea46273e407334b63e262e2555c9a8204f7b5e60f23f272fbaa83ad9e88800e0ee186aca840710df2dbe0a18b37758695fef2ae1a902c10b3706e3de772937" + +[update] +[update.modrinth] +mod-id = "EsAfCjCV" +version = "uAKA6Laj" diff --git a/server_pack/mods/applied-energistics-2-wireless-terminals.pw.toml b/server_pack/mods/applied-energistics-2-wireless-terminals.pw.toml new file mode 100644 index 0000000..eabe6a9 --- /dev/null +++ b/server_pack/mods/applied-energistics-2-wireless-terminals.pw.toml @@ -0,0 +1,13 @@ +name = "Applied Energistics 2 Wireless Terminals" +filename = "ae2wtlib-19.5.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/pNabrMMw/versions/CxSEpEnO/ae2wtlib-19.5.1.jar" +hash-format = "sha512" +hash = "0659d755c6ae91551d30c20b948d5bde0a39b2ae9825b1a4e132f0bbd10e032f18d82b6847261360589f36980ed3597ef6c6947b680523a1de767a9b7953682e" + +[update] +[update.modrinth] +mod-id = "pNabrMMw" +version = "CxSEpEnO" diff --git a/server_pack/mods/architects-palette.pw.toml b/server_pack/mods/architects-palette.pw.toml new file mode 100644 index 0000000..f68a6d9 --- /dev/null +++ b/server_pack/mods/architects-palette.pw.toml @@ -0,0 +1,13 @@ +name = "Architect's Palette" +filename = "architects_palette-neoforge-1.21.1-1.4.0-beta.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vt0VyseM/versions/mfYFPWxH/architects_palette-neoforge-1.21.1-1.4.0-beta.5.jar" +hash-format = "sha512" +hash = "1d2f27e5f0ae15828f68368aae3d935d2cc4dddbd8113986dd04bed2c56eb5e7ae65ecd6a009e6e2108a91cd1538e6585c95163e19a8f4cd56e82f864b9c2d22" + +[update] +[update.modrinth] +mod-id = "vt0VyseM" +version = "mfYFPWxH" diff --git a/server_pack/mods/architectury-api.pw.toml b/server_pack/mods/architectury-api.pw.toml new file mode 100644 index 0000000..3ce8086 --- /dev/null +++ b/server_pack/mods/architectury-api.pw.toml @@ -0,0 +1,13 @@ +name = "Architectury API" +filename = "architectury-13.0.11-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lhGA9TYQ/versions/1IiqEQGl/architectury-13.0.11-neoforge.jar" +hash-format = "sha512" +hash = "d9f7c3bb8162577dfb461ffdf04bd6a3563c7586934a0e2a744c14421beffb8286f0d88d4c758317003f20f99fe8072a39b9d675af061e036970d36db36027f0" + +[update] +[update.modrinth] +mod-id = "lhGA9TYQ" +version = "1IiqEQGl" diff --git a/server_pack/mods/balm.pw.toml b/server_pack/mods/balm.pw.toml new file mode 100644 index 0000000..49429a4 --- /dev/null +++ b/server_pack/mods/balm.pw.toml @@ -0,0 +1,13 @@ +name = "Balm" +filename = "balm-neoforge-1.21.1-21.0.65.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/MBAkmtvl/versions/KgypwTqX/balm-neoforge-1.21.1-21.0.65.jar" +hash-format = "sha512" +hash = "779b4f9e9738ae6f010e87f71b2ed5a114eb9b1b3d5b55cf42ad538094e5b064a1d3f4ff00064aac90da1c841a144464d47378d9bffc448a71d87132cb954101" + +[update] +[update.modrinth] +mod-id = "MBAkmtvl" +version = "KgypwTqX" diff --git a/server_pack/mods/bellsandwhistles.pw.toml b/server_pack/mods/bellsandwhistles.pw.toml new file mode 100644 index 0000000..168e8e1 --- /dev/null +++ b/server_pack/mods/bellsandwhistles.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Bells & Whistles" +filename = "bellsandwhistles-0.4.7-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/gJ5afkVv/versions/w0mifib8/bellsandwhistles-0.4.7-1.21.1.jar" +hash-format = "sha512" +hash = "482ee096477b89ed8ec5ce008a4a8ac0ae853079a4f5ce16ad0e0dd9b2eb12b3326f17acaaca1eae0bc51ad238f4e51c8d5b93ded71fe7240717ac8600041c59" + +[update] +[update.modrinth] +mod-id = "gJ5afkVv" +version = "w0mifib8" diff --git a/server_pack/mods/better-combat.pw.toml b/server_pack/mods/better-combat.pw.toml new file mode 100644 index 0000000..e1f6858 --- /dev/null +++ b/server_pack/mods/better-combat.pw.toml @@ -0,0 +1,13 @@ +name = "Better Combat" +filename = "bettercombat-neoforge-2.4.0+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/5sy6g3kz/versions/VhIOvcXP/bettercombat-neoforge-2.4.0%2B1.21.1.jar" +hash-format = "sha512" +hash = "db24730a42ae7e2dd546ee031d2f5e0dd6f9896418417a529fa21a44121761ebb29c8b8299db8f20500f7497f7b60a7d793b66c93abf37a8ea0aa3edafd80eb6" + +[update] +[update.modrinth] +mod-id = "5sy6g3kz" +version = "VhIOvcXP" diff --git a/server_pack/mods/blocks-you-need.pw.toml b/server_pack/mods/blocks-you-need.pw.toml new file mode 100644 index 0000000..aafe8d2 --- /dev/null +++ b/server_pack/mods/blocks-you-need.pw.toml @@ -0,0 +1,13 @@ +name = "Blocks You Need" +filename = "blocksyouneed_luna-1.11.4-neoforge-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lIyS5pGh/versions/wXB9rYMv/blocksyouneed_luna-1.11.4-neoforge-1.21.1.jar" +hash-format = "sha512" +hash = "31a322080cdb7c7a85df1366b134b1734a69d2bf5b2fe3f6f38298632893856a1999513b8ba4efafa8cbdd62324eaa5c95d18d9f343c483bee9420891efd04b2" + +[update] +[update.modrinth] +mod-id = "lIyS5pGh" +version = "wXB9rYMv" diff --git a/server_pack/mods/born-in-chaos.pw.toml b/server_pack/mods/born-in-chaos.pw.toml new file mode 100644 index 0000000..3cf3fd0 --- /dev/null +++ b/server_pack/mods/born-in-chaos.pw.toml @@ -0,0 +1,13 @@ +name = "Born in Chaos" +filename = "born_in_chaos_[Neoforge]_1.21.1_1.7.6.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "73704f38ac368c03716f9cc8f537470d3b352fa2" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8268280 +project-id = 686437 diff --git a/server_pack/mods/building-gadgets.pw.toml b/server_pack/mods/building-gadgets.pw.toml new file mode 100644 index 0000000..22616d5 --- /dev/null +++ b/server_pack/mods/building-gadgets.pw.toml @@ -0,0 +1,13 @@ +name = "Building Gadgets" +filename = "buildinggadgets2-1.3.9.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "666a155981e3cd231f67809b9e2a0238377bbbfc" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6850515 +project-id = 298187 diff --git a/server_pack/mods/chipped.pw.toml b/server_pack/mods/chipped.pw.toml new file mode 100644 index 0000000..75a5244 --- /dev/null +++ b/server_pack/mods/chipped.pw.toml @@ -0,0 +1,13 @@ +name = "Chipped" +filename = "chipped-neoforge-1.21.1-4.0.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/BAscRYKm/versions/eqVowbGc/chipped-neoforge-1.21.1-4.0.2.jar" +hash-format = "sha512" +hash = "f3083b01267e7c674c4b42f45a317c93ee7723443cba2051fe5bc593638b533b0fe90699e2101661c934dff458eab693cce4e188533bfe977778c249563a2fa5" + +[update] +[update.modrinth] +mod-id = "BAscRYKm" +version = "eqVowbGc" diff --git a/server_pack/mods/cloth-config.pw.toml b/server_pack/mods/cloth-config.pw.toml new file mode 100644 index 0000000..2dac164 --- /dev/null +++ b/server_pack/mods/cloth-config.pw.toml @@ -0,0 +1,13 @@ +name = "Cloth Config API" +filename = "cloth-config-15.0.140-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/9s6osm5g/versions/izKINKFg/cloth-config-15.0.140-neoforge.jar" +hash-format = "sha512" +hash = "aaf9b010955b8cd294e5a92f069985b18729fd5e2cf22d351f1dff9680f15488688803ec41e77e941cbde130ceb535014ca4c868047d80ab69c2d508e216654d" + +[update] +[update.modrinth] +mod-id = "9s6osm5g" +version = "izKINKFg" diff --git a/server_pack/mods/clumps.pw.toml b/server_pack/mods/clumps.pw.toml new file mode 100644 index 0000000..3dcba7e --- /dev/null +++ b/server_pack/mods/clumps.pw.toml @@ -0,0 +1,13 @@ +name = "Clumps" +filename = "Clumps-neoforge-1.21.1-19.0.0.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Wnxd13zP/versions/jo7lDoK4/Clumps-neoforge-1.21.1-19.0.0.1.jar" +hash-format = "sha512" +hash = "314d8d8e640d73041f27e0f3f2cad7aad8b4c77dbd7fb31700ef7760362261f77085eed5289555c725d99c3f47a114e7290cd608f39c9f0f12ef74958463bdcc" + +[update] +[update.modrinth] +mod-id = "Wnxd13zP" +version = "jo7lDoK4" diff --git a/server_pack/mods/connected-glass.pw.toml b/server_pack/mods/connected-glass.pw.toml new file mode 100644 index 0000000..9305166 --- /dev/null +++ b/server_pack/mods/connected-glass.pw.toml @@ -0,0 +1,13 @@ +name = "Connected Glass" +filename = "connectedglass-1.1.14-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "0a44c13d6744e0eeec5bf38f58756a8e86e96f55" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6811960 +project-id = 383129 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/copycats.pw.toml b/server_pack/mods/copycats.pw.toml new file mode 100644 index 0000000..bfa4be9 --- /dev/null +++ b/server_pack/mods/copycats.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Copycats+" +filename = "copycats-3.0.4+mc.1.21.1-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/UT2M39wf/versions/kecZ0sl7/copycats-3.0.4%2Bmc.1.21.1-neoforge.jar" +hash-format = "sha512" +hash = "ecc98e659be66a71af0aee66a9f4c7c8838f4f0101402644929079ce7280a572a000e7e417905e1869a51d6e49ebbd601008f54585e07ee4ed01f2c4bc752bfe" + +[update] +[update.modrinth] +mod-id = "UT2M39wf" +version = "kecZ0sl7" diff --git a/server_pack/mods/cosmetic-armor-reworked.pw.toml b/server_pack/mods/cosmetic-armor-reworked.pw.toml new file mode 100644 index 0000000..9359c6c --- /dev/null +++ b/server_pack/mods/cosmetic-armor-reworked.pw.toml @@ -0,0 +1,13 @@ +name = "Cosmetic Armor Reworked" +filename = "cosmeticarmorreworked-1.21.1-v1-neoforge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "5f1e699cd0888b857ec63f01adaeb3571848bfea" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5610814 +project-id = 237307 diff --git a/server_pack/mods/create-aeronautics.pw.toml b/server_pack/mods/create-aeronautics.pw.toml new file mode 100644 index 0000000..f15a01f --- /dev/null +++ b/server_pack/mods/create-aeronautics.pw.toml @@ -0,0 +1,13 @@ +name = "Create Aeronautics" +filename = "create-aeronautics-bundled-1.21.1-1.3.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/oWaK0Q19/versions/Vzp221Un/create-aeronautics-bundled-1.21.1-1.3.1.jar" +hash-format = "sha512" +hash = "16ba7a2c8335443bdf6ad4777737b762f09452be2dd364f801fd20b35eb581473161763699ec37eb12d1aeaf8c18cf8299b2152e24334eedcc9fe662af5bbb27" + +[update] +[update.modrinth] +mod-id = "oWaK0Q19" +version = "Vzp221Un" diff --git a/server_pack/mods/create-big-cannons.pw.toml b/server_pack/mods/create-big-cannons.pw.toml new file mode 100644 index 0000000..8cbf900 --- /dev/null +++ b/server_pack/mods/create-big-cannons.pw.toml @@ -0,0 +1,13 @@ +name = "Create Big Cannons" +filename = "createbigcannons-5.11.7+mc.1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/GWp4jCJj/versions/bOiDu0LS/createbigcannons-5.11.7%2Bmc.1.21.1.jar" +hash-format = "sha512" +hash = "24f414dfbb973a0f4d9c9b2aa059edc7bed4d23b4f39eb1f7d23a1d6b437e3b5d64cca6e4b85ff7eb2815743fa711d54ad652bffe96d1eb1234544716006440d" + +[update] +[update.modrinth] +mod-id = "GWp4jCJj" +version = "bOiDu0LS" diff --git a/server_pack/mods/create-central-kitchen.pw.toml b/server_pack/mods/create-central-kitchen.pw.toml new file mode 100644 index 0000000..29b2ecf --- /dev/null +++ b/server_pack/mods/create-central-kitchen.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Central Kitchen" +filename = "create-central-kitchen-2.6.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/btq68HMO/versions/1mQSm4Yb/create-central-kitchen-2.6.0.jar" +hash-format = "sha512" +hash = "9f42e5f3e557118a8dec364ee87fa9ee3d91f8f386eaf656ae2410dff6e5263bdeb0d532fe1af7dab51c3faf9fa6672d3089a28e5c04242e86b55407f41b7152" + +[update] +[update.modrinth] +mod-id = "btq68HMO" +version = "1mQSm4Yb" diff --git a/server_pack/mods/create-connected.pw.toml b/server_pack/mods/create-connected.pw.toml new file mode 100644 index 0000000..97e666e --- /dev/null +++ b/server_pack/mods/create-connected.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Connected" +filename = "create_connected-1.3.2-mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Vg5TIO6d/versions/klOWKza5/create_connected-1.3.2-mc1.21.1.jar" +hash-format = "sha512" +hash = "b07bfbc5ebf0ad63b1db5f7215f0e11490f0263623e344b09a63116d84199a49c7f916610410262ddb640e60017d08e89f3363ada38a6219ac6a5b2fc19322e0" + +[update] +[update.modrinth] +mod-id = "Vg5TIO6d" +version = "klOWKza5" diff --git a/server_pack/mods/create-deco.pw.toml b/server_pack/mods/create-deco.pw.toml new file mode 100644 index 0000000..d5cd216 --- /dev/null +++ b/server_pack/mods/create-deco.pw.toml @@ -0,0 +1,13 @@ +name = "Create Deco" +filename = "createdeco-2.1.3.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sMvUb4Rb/versions/qrcMVoBD/createdeco-2.1.3.jar" +hash-format = "sha512" +hash = "c536662f9d47ad57a37419165ded14835b23ad6c3e82a920298ecd7ee074244b0b6062ef9cc7ea4501ddd35919a840faccd7fc64e43eb8df31e12076681c3c0d" + +[update] +[update.modrinth] +mod-id = "sMvUb4Rb" +version = "qrcMVoBD" diff --git a/server_pack/mods/create-design-n-decor.pw.toml b/server_pack/mods/create-design-n-decor.pw.toml new file mode 100644 index 0000000..29ab618 --- /dev/null +++ b/server_pack/mods/create-design-n-decor.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Design n' Decor" +filename = "Design-n-Decor-1.21.1-2.2b.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/x49wilh8/versions/uQsIRky8/Design-n-Decor-1.21.1-2.2b.jar" +hash-format = "sha512" +hash = "d888553c8a254c3654f8da2ae2cae0bb642594546c71988739c93bf6b18668145e0ce5b1c20ae0544b9b6019f17e4da944bd5bc17e4c6b73e7f1374cfa2c9db9" + +[update] +[update.modrinth] +mod-id = "x49wilh8" +version = "uQsIRky8" diff --git a/server_pack/mods/create-diesel-generators.pw.toml b/server_pack/mods/create-diesel-generators.pw.toml new file mode 100644 index 0000000..bc29ff4 --- /dev/null +++ b/server_pack/mods/create-diesel-generators.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Diesel Generators" +filename = "createdieselgenerators-1.21.1-1.3.15.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ZM3tt6p1/versions/UoPH8lO1/createdieselgenerators-1.21.1-1.3.15.jar" +hash-format = "sha512" +hash = "1507ebcd07d3185aac3ae6ce768b4d6bab16cb6f39776d25a850c8133a4dc5826b8ddbeca112d76afc64deaa37ec177cac4237c6c34621c4b65e73d83f8ab43f" + +[update] +[update.modrinth] +mod-id = "ZM3tt6p1" +version = "UoPH8lO1" diff --git a/server_pack/mods/create-dragons-plus.pw.toml b/server_pack/mods/create-dragons-plus.pw.toml new file mode 100644 index 0000000..b91a134 --- /dev/null +++ b/server_pack/mods/create-dragons-plus.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Dragons Plus" +filename = "CreateDragonsPlus-1.11.7b.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/dzb1a5WV/versions/zQDQbNih/CreateDragonsPlus-1.11.7b.jar" +hash-format = "sha512" +hash = "4b86f50641b95532d8662e333b1805f0938bf49d1fd9ee7bd4920dca7a4c3707e11f95d44d6a6ce250acc0d534f08ffd2a7891308d587c4d63ce63be3377ae83" + +[update] +[update.modrinth] +mod-id = "dzb1a5WV" +version = "zQDQbNih" diff --git a/server_pack/mods/create-dreams-and-desires.pw.toml b/server_pack/mods/create-dreams-and-desires.pw.toml new file mode 100644 index 0000000..a775f59 --- /dev/null +++ b/server_pack/mods/create-dreams-and-desires.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Dreams & Desires" +filename = "DnDesires-1.21.1-2.3a-BETA.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JmybsfWs/versions/bqMxf6Ua/DnDesires-1.21.1-2.3a-BETA.jar" +hash-format = "sha512" +hash = "c2d70c5ef259d20ba60a66fa146fc0d37b588c5c42c0028a650af1e10678c4e4604966aa46efd25f3824df4620ef719daa8e54fc82220d7a1b22a7fcaa4e2077" + +[update] +[update.modrinth] +mod-id = "JmybsfWs" +version = "bqMxf6Ua" diff --git a/server_pack/mods/create-enchantment-industry.pw.toml b/server_pack/mods/create-enchantment-industry.pw.toml new file mode 100644 index 0000000..d127dd9 --- /dev/null +++ b/server_pack/mods/create-enchantment-industry.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Enchantment Industry" +filename = "create-enchantment-industry-2.5.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JWGBpFUP/versions/LOammszO/create-enchantment-industry-2.5.2.jar" +hash-format = "sha512" +hash = "e5c049bf06fe231d44f37a2427a95a327d6327b1d2547d3f086a22342a03a3c618c9df9c26d3fd04be5b029b20764eee33425ab7bd523e8b96a65c7d76930705" + +[update] +[update.modrinth] +mod-id = "JWGBpFUP" +version = "LOammszO" diff --git a/server_pack/mods/create-goggles.pw.toml b/server_pack/mods/create-goggles.pw.toml new file mode 100644 index 0000000..36a57b9 --- /dev/null +++ b/server_pack/mods/create-goggles.pw.toml @@ -0,0 +1,13 @@ +name = "Create Goggles" +filename = "creategoggles-1.21.1-6.1.1-[NEOFORGE].jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/L1RT5SJc/versions/Co24W2FL/creategoggles-1.21.1-6.1.1-%5BNEOFORGE%5D.jar" +hash-format = "sha512" +hash = "bf2c4167fdee64c3f43298c6fd2d9e347951d2fb8fc12e2c2bbafc486e8d690cd7ebfd536507d13a6b4c287236713f8d796c048df2356feda36542cf5b484afc" + +[update] +[update.modrinth] +mod-id = "L1RT5SJc" +version = "Co24W2FL" diff --git a/server_pack/mods/create-jetpack.pw.toml b/server_pack/mods/create-jetpack.pw.toml new file mode 100644 index 0000000..f326e57 --- /dev/null +++ b/server_pack/mods/create-jetpack.pw.toml @@ -0,0 +1,13 @@ +name = "Create Jetpack" +filename = "create_jetpack-forge-5.2.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/UbFnAd4l/versions/sCwiqLqq/create_jetpack-forge-5.2.1.jar" +hash-format = "sha512" +hash = "dd9856cf9f84d58174bcdb097f405a107d86d0947ab3d67f090994ed3a4939cc9d52bab0f56f988cd290b1e8f68d534c3e9155e33a1d67983d80923f3b67f4f3" + +[update] +[update.modrinth] +mod-id = "UbFnAd4l" +version = "sCwiqLqq" diff --git a/server_pack/mods/create-mechanical-extruder.pw.toml b/server_pack/mods/create-mechanical-extruder.pw.toml new file mode 100644 index 0000000..6702aea --- /dev/null +++ b/server_pack/mods/create-mechanical-extruder.pw.toml @@ -0,0 +1,13 @@ +name = "Create Mechanical Extruder" +filename = "create_mechanical_extruder-1.21.1-2.2.2-6.0.10.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hGAlcCDJ/versions/fFDOEXAA/create_mechanical_extruder-1.21.1-2.2.2-6.0.10.jar" +hash-format = "sha512" +hash = "efeb01312cb00800cc11e7765759b31058719e6a7c62744b453d242c4da7b75091b68eef2f489054a1244244a63672a46f4822a580eb8d8c64045a189e671827" + +[update] +[update.modrinth] +mod-id = "hGAlcCDJ" +version = "fFDOEXAA" diff --git a/server_pack/mods/create-new-age.pw.toml b/server_pack/mods/create-new-age.pw.toml new file mode 100644 index 0000000..acb0d52 --- /dev/null +++ b/server_pack/mods/create-new-age.pw.toml @@ -0,0 +1,13 @@ +name = "Create: New Age" +filename = "create-new-age-1.2.0+neoforge-mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/FTeXqI9v/versions/IwtuwMZy/create-new-age-1.2.0%2Bneoforge-mc1.21.1.jar" +hash-format = "sha512" +hash = "5075c6482b800af7044b594ad694855e7d56f386cb0354967eafe99d77e84b4e26ee7f880d287672d24d84ea8086fd074b7695e46632f32f215b31ce859ada72" + +[update] +[update.modrinth] +mod-id = "FTeXqI9v" +version = "IwtuwMZy" diff --git a/server_pack/mods/create-ore-excavation.pw.toml b/server_pack/mods/create-ore-excavation.pw.toml new file mode 100644 index 0000000..0ec29af --- /dev/null +++ b/server_pack/mods/create-ore-excavation.pw.toml @@ -0,0 +1,13 @@ +name = "Create Ore Excavation (patched - no kubejs_create race wrapper)" +filename = "createoreexcavation-1.21-1.6.8-patched.jar" +side = "both" + +[download] +url = "https://git.mithraic.cloud/ad3laid3/SciCraft/raw/branch/main/tools/patches/createoreexcavation-1.21-1.6.8-patched.jar" +hash-format = "sha512" +hash = "0d2ca0631318639e46b5d6faf61c4905a385af29079e30780941ea14f9eaf85132acac7cdc1c42b15c7a46930aa69b33db4a80a981172af1293c4d1f8b4401b4" + +[update] +[update.modrinth] +mod-id = "ResbpANg" +version = "tivxiPTo" diff --git a/server_pack/mods/create.pw.toml b/server_pack/mods/create.pw.toml new file mode 100644 index 0000000..3c1cc51 --- /dev/null +++ b/server_pack/mods/create.pw.toml @@ -0,0 +1,13 @@ +name = "Create" +filename = "create-1.21.1-6.0.10.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/LNytGWDc/versions/UjX6dr61/create-1.21.1-6.0.10.jar" +hash-format = "sha512" +hash = "11cc8fc049d2f67f6548c7abfada6b82a3adb5c7ca410a742de04bbca76e03862c518721b88d806f6e6d768a4d68531fdb903a85859b25d1484d550cc7bafd4b" + +[update] +[update.modrinth] +mod-id = "LNytGWDc" +version = "UjX6dr61" diff --git a/server_pack/mods/createaddition.pw.toml b/server_pack/mods/createaddition.pw.toml new file mode 100644 index 0000000..5041a4f --- /dev/null +++ b/server_pack/mods/createaddition.pw.toml @@ -0,0 +1,13 @@ +name = "Create Crafts & Additions" +filename = "createaddition-1.7.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/kU1G12Nn/versions/zlC557Yg/createaddition-1.7.0.jar" +hash-format = "sha512" +hash = "267779bf2a215a0be39748e6a8e387322df697bc9de8e7e9558e6885aa790a2e73f334a55bfc5f97f4130d22262011433675fd0830ab1e3e3b10c9898d8a702c" + +[update] +[update.modrinth] +mod-id = "kU1G12Nn" +version = "zlC557Yg" diff --git a/server_pack/mods/creativecore.pw.toml b/server_pack/mods/creativecore.pw.toml new file mode 100644 index 0000000..d28afd7 --- /dev/null +++ b/server_pack/mods/creativecore.pw.toml @@ -0,0 +1,13 @@ +name = "CreativeCore" +filename = "CreativeCore_NEOFORGE_v2.13.43_mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "cf6864c94f36b24f5900b4ae0998b2bc44dc5c7b" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8647581 +project-id = 257814 diff --git a/server_pack/mods/curios.pw.toml b/server_pack/mods/curios.pw.toml new file mode 100644 index 0000000..5e5f3a9 --- /dev/null +++ b/server_pack/mods/curios.pw.toml @@ -0,0 +1,13 @@ +name = "Curios API" +filename = "curios-neoforge-9.5.1+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vvuO3ImH/versions/yohfFbgD/curios-neoforge-9.5.1%2B1.21.1.jar" +hash-format = "sha512" +hash = "5981a267686b744e7e3c227f78cbcd5267c14ac6979a28e814695f4589273998563147207fef4a5cdb7cdbdc39797cd95d9e4abadb55869f18e02a38d0654ae5" + +[update] +[update.modrinth] +mod-id = "vvuO3ImH" +version = "yohfFbgD" diff --git a/server_pack/mods/deeperdarker.pw.toml b/server_pack/mods/deeperdarker.pw.toml new file mode 100644 index 0000000..21f8e15 --- /dev/null +++ b/server_pack/mods/deeperdarker.pw.toml @@ -0,0 +1,13 @@ +name = "Deeper and Darker" +filename = "deeperdarker-neoforge-1.21.1-1.4.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "b6094adde68bd4b909bc75c64901e1f3fb99ad8f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8201775 +project-id = 659011 diff --git a/server_pack/mods/dimensionaldoors.pw.toml b/server_pack/mods/dimensionaldoors.pw.toml new file mode 100644 index 0000000..8c6f13b --- /dev/null +++ b/server_pack/mods/dimensionaldoors.pw.toml @@ -0,0 +1,13 @@ +name = "Dimensional Doors" +filename = "dimdoors-neoforge-1.21.1-6.2.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/b8Q0BxnV/versions/luZyhz73/dimdoors-neoforge-1.21.1-6.2.2.jar" +hash-format = "sha512" +hash = "0e59bc1aeebb959eda7903d53980f013cb568d02e3cdf22886ec676d41e1926e1ee833cbc307a6dcabcdd6854c4490a2c7481a0d35ca6f37de94bb27d1ab4a54" + +[update] +[update.modrinth] +mod-id = "b8Q0BxnV" +version = "luZyhz73" diff --git a/server_pack/mods/dimensionfixer.pw.toml b/server_pack/mods/dimensionfixer.pw.toml new file mode 100644 index 0000000..4cdd243 --- /dev/null +++ b/server_pack/mods/dimensionfixer.pw.toml @@ -0,0 +1,13 @@ +name = "Dimension Fixer" +filename = "dimensionfixer-neoforge-0.0.10+1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hJmXo78w/versions/3Yki4BfD/dimensionfixer-neoforge-0.0.10%2B1.21.jar" +hash-format = "sha512" +hash = "bf62225a591aad832b30dafc490648c5ad7278d83f827b6cdbbab6f55169250c5752151149a7f7de488bce6a5f458f101af7a5a4dc342f79f3f56a351f8558bd" + +[update] +[update.modrinth] +mod-id = "hJmXo78w" +version = "3Yki4BfD" diff --git a/server_pack/mods/entangled.pw.toml b/server_pack/mods/entangled.pw.toml new file mode 100644 index 0000000..9409453 --- /dev/null +++ b/server_pack/mods/entangled.pw.toml @@ -0,0 +1,13 @@ +name = "Entangled" +filename = "entangled-1.3.21-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "72d63d64ee774b89302e0d6b220757ba11b6ec4f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7783144 +project-id = 301034 diff --git a/server_pack/mods/every-compat.pw.toml b/server_pack/mods/every-compat.pw.toml new file mode 100644 index 0000000..7ca921e --- /dev/null +++ b/server_pack/mods/every-compat.pw.toml @@ -0,0 +1,13 @@ +name = "Every Compat (Wood Good)" +filename = "everycomp-1.21-2.11.50-neoforge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "ffd9fece7244663ed8f3e90f1091ad31a5b36bec" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8680544 +project-id = 628539 diff --git a/server_pack/mods/extended-ae.pw.toml b/server_pack/mods/extended-ae.pw.toml new file mode 100644 index 0000000..b27344a --- /dev/null +++ b/server_pack/mods/extended-ae.pw.toml @@ -0,0 +1,13 @@ +name = "Extended AE" +filename = "ExtendedAE-1.21-2.2.35-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JiOqfoFM/versions/bC302UUP/ExtendedAE-1.21-2.2.35-neoforge.jar" +hash-format = "sha512" +hash = "e5b76a50802087d999bf6c113bc635e8ade9f20e06f4d3276a144f4eaa3090fc3b6c67b9b6a1f7d0d036e48e69f601114a0cc92c5a8d45953f895718f806348c" + +[update] +[update.modrinth] +mod-id = "JiOqfoFM" +version = "bC302UUP" diff --git a/server_pack/mods/extendedae-plus.pw.toml b/server_pack/mods/extendedae-plus.pw.toml new file mode 100644 index 0000000..08771c6 --- /dev/null +++ b/server_pack/mods/extendedae-plus.pw.toml @@ -0,0 +1,13 @@ +name = "ExtendedAE-Plus" +filename = "extendedae_plus-1.5.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/xr109llC/versions/BdDOfMzg/extendedae_plus-1.5.5.jar" +hash-format = "sha512" +hash = "c1211f90af315542b4a6092bf8ce59fdb6afd100ebcb8315bab08f08d1829492740002eb5c7ef4cae5dc7bd48b38d4d16f84b9ff014fae2115450df2c2a5ab58" + +[update] +[update.modrinth] +mod-id = "xr109llC" +version = "BdDOfMzg" diff --git a/server_pack/mods/fast-pipes.pw.toml b/server_pack/mods/fast-pipes.pw.toml new file mode 100644 index 0000000..dc3f975 --- /dev/null +++ b/server_pack/mods/fast-pipes.pw.toml @@ -0,0 +1,13 @@ +name = "FastPipes" +filename = "fastpipes-1.21.1-1.3.7.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/vLNEmWij/versions/hJEwLkgm/fastpipes-1.21.1-1.3.7.jar" +hash-format = "sha512" +hash = "112092240eacaf114eb442135cf873bcb8eee11d9565be2389119d7732052876e00145bc22fe337ae5dad3810df103efe8ef87f7c200521084f3678452bf4cf0" + +[update] +[update.modrinth] +mod-id = "vLNEmWij" +version = "hJEwLkgm" diff --git a/server_pack/mods/ferrite-core.pw.toml b/server_pack/mods/ferrite-core.pw.toml new file mode 100644 index 0000000..ae0b3dc --- /dev/null +++ b/server_pack/mods/ferrite-core.pw.toml @@ -0,0 +1,13 @@ +name = "FerriteCore" +filename = "ferritecore-7.0.3-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/uXXizFIs/versions/x7kQWVju/ferritecore-7.0.3-neoforge.jar" +hash-format = "sha512" +hash = "19af89a2075bb10a63884fa853ebf84b02c79dc3242430ecdad056fd764fdcde367a7303276b329df01b0736e2ef264c5d80c7dc92c6aebd244f556a230bb417" + +[update] +[update.modrinth] +mod-id = "uXXizFIs" +version = "x7kQWVju" diff --git a/server_pack/mods/flux-networks.pw.toml b/server_pack/mods/flux-networks.pw.toml new file mode 100644 index 0000000..d4d69aa --- /dev/null +++ b/server_pack/mods/flux-networks.pw.toml @@ -0,0 +1,13 @@ +name = "Flux Networks" +filename = "FluxNetworks-1.21.1-8.0.0.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "183342f454428084748f2784c8efd748664a9f9c" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6089446 +project-id = 248020 diff --git a/server_pack/mods/framedblocks.pw.toml b/server_pack/mods/framedblocks.pw.toml new file mode 100644 index 0000000..a0af548 --- /dev/null +++ b/server_pack/mods/framedblocks.pw.toml @@ -0,0 +1,13 @@ +name = "FramedBlocks" +filename = "FramedBlocks-10.6.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/wbgfS34j/versions/FBXGqSP5/FramedBlocks-10.6.1.jar" +hash-format = "sha512" +hash = "051d07cb372bfafd746ff658ef2ad3485606328e445099c17b499b14df6844a0c75e8c6decaff1267934fbd6dfaa0eb1938906b0dbeaa20500c1789b4175e3b6" + +[update] +[update.modrinth] +mod-id = "wbgfS34j" +version = "FBXGqSP5" diff --git a/server_pack/mods/ftb-chunks-forge.pw.toml b/server_pack/mods/ftb-chunks-forge.pw.toml new file mode 100644 index 0000000..8760471 --- /dev/null +++ b/server_pack/mods/ftb-chunks-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Chunks (NeoForge)" +filename = "ftb-chunks-neoforge-2101.1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "37e1c12393d44d5f3e612cf9a5958dd8f1d77675" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8520252 +project-id = 314906 diff --git a/server_pack/mods/ftb-library-forge.pw.toml b/server_pack/mods/ftb-library-forge.pw.toml new file mode 100644 index 0000000..d403613 --- /dev/null +++ b/server_pack/mods/ftb-library-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Library (NeoForge)" +filename = "ftb-library-neoforge-2101.1.35.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "9922fa358983120edeed22194bf02bcf9c859fbb" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8569579 +project-id = 404465 diff --git a/server_pack/mods/ftb-quests-forge.pw.toml b/server_pack/mods/ftb-quests-forge.pw.toml new file mode 100644 index 0000000..76b21a9 --- /dev/null +++ b/server_pack/mods/ftb-quests-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Quests (NeoForge)" +filename = "ftb-quests-neoforge-2101.1.32.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "9710c0ff4506cad97af4f75b96738eb8cd369eed" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8676238 +project-id = 289412 diff --git a/server_pack/mods/ftb-teams-forge.pw.toml b/server_pack/mods/ftb-teams-forge.pw.toml new file mode 100644 index 0000000..1238ebc --- /dev/null +++ b/server_pack/mods/ftb-teams-forge.pw.toml @@ -0,0 +1,13 @@ +name = "FTB Teams (NeoForge)" +filename = "ftb-teams-neoforge-2101.1.10.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "363376ae0fb22cb0527170fdf6a066d1da9b0225" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7878281 +project-id = 404468 diff --git a/server_pack/mods/functional-storage.pw.toml b/server_pack/mods/functional-storage.pw.toml new file mode 100644 index 0000000..6e90a0e --- /dev/null +++ b/server_pack/mods/functional-storage.pw.toml @@ -0,0 +1,13 @@ +name = "Functional Storage" +filename = "functionalstorage-1.21.1-1.5.8.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "f5978bb49b71e94d7063502c0fad0202ebbefbcc" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8459097 +project-id = 556861 diff --git a/server_pack/mods/fusion-connected-textures.pw.toml b/server_pack/mods/fusion-connected-textures.pw.toml new file mode 100644 index 0000000..dad4034 --- /dev/null +++ b/server_pack/mods/fusion-connected-textures.pw.toml @@ -0,0 +1,13 @@ +name = "Fusion (Connected Textures)" +filename = "fusion-1.3.12-neoforge-mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "79c0c6b6a2d9c9a04298df9a88bb71a93e885235" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8536618 +project-id = 854949 diff --git a/server_pack/mods/fzzy-config.pw.toml b/server_pack/mods/fzzy-config.pw.toml new file mode 100644 index 0000000..c613f0b --- /dev/null +++ b/server_pack/mods/fzzy-config.pw.toml @@ -0,0 +1,13 @@ +name = "Fzzy Config" +filename = "fzzy_config-0.7.6+1.21+neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/hYykXjDp/versions/MAPG6cXE/fzzy_config-0.7.6%2B1.21%2Bneoforge.jar" +hash-format = "sha512" +hash = "6071890aba7f2273c9fd508914acc7850de9d986423760f9ce416875ffa04eea2ad71a7a6f4d5f90f0625a672f6f54606778d11151b155f3fd98c223c61a4a6d" + +[update] +[update.modrinth] +mod-id = "hYykXjDp" +version = "MAPG6cXE" diff --git a/server_pack/mods/geckolib.pw.toml b/server_pack/mods/geckolib.pw.toml new file mode 100644 index 0000000..b5b8815 --- /dev/null +++ b/server_pack/mods/geckolib.pw.toml @@ -0,0 +1,13 @@ +name = "GeckoLib" +filename = "geckolib-neoforge-1.21.1-4.9.2.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "14c64013cadee7d28f3685f94350f9a4d2ec6d86" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8350073 +project-id = 388172 diff --git a/server_pack/mods/glodium.pw.toml b/server_pack/mods/glodium.pw.toml new file mode 100644 index 0000000..dcb3b90 --- /dev/null +++ b/server_pack/mods/glodium.pw.toml @@ -0,0 +1,13 @@ +name = "Glodium" +filename = "Glodium-1.21-2.2-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/UhW5uCKw/versions/pfbmdJ3b/Glodium-1.21-2.2-neoforge.jar" +hash-format = "sha512" +hash = "56a387a1bdaf0146c9a7e14de0aca8b6f53f25d3ba9d46255f142043387282ed9e4fa0011d309e32d9ffe5362b129c07e301226dd4ac11eda9a4f42f27c0b5d1" + +[update] +[update.modrinth] +mod-id = "UhW5uCKw" +version = "pfbmdJ3b" diff --git a/server_pack/mods/guideme.pw.toml b/server_pack/mods/guideme.pw.toml new file mode 100644 index 0000000..9a8c252 --- /dev/null +++ b/server_pack/mods/guideme.pw.toml @@ -0,0 +1,13 @@ +name = "GuideME" +filename = "guideme-21.1.17.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Ck4E7v7R/versions/rduAfwb7/guideme-21.1.17.jar" +hash-format = "sha512" +hash = "8b5d8cf7592d7b4759f5347c5acd1b0eb46403437b10b900f535e4cdde59ab1b37d57b71f3f67cdc99a66d55ad5d760f51b55ba2bc50aecf538f8572003e4cbf" + +[update] +[update.modrinth] +mod-id = "Ck4E7v7R" +version = "rduAfwb7" diff --git a/server_pack/mods/handcrafted.pw.toml b/server_pack/mods/handcrafted.pw.toml new file mode 100644 index 0000000..2c2d30f --- /dev/null +++ b/server_pack/mods/handcrafted.pw.toml @@ -0,0 +1,13 @@ +name = "Handcrafted" +filename = "handcrafted-neoforge-1.21.1-4.0.3.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "8ecd27f1d66f9b742cfae3c8ffa773765f574b52" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 6330030 +project-id = 538214 diff --git a/server_pack/mods/hologenica.pw.toml b/server_pack/mods/hologenica.pw.toml new file mode 100644 index 0000000..d607166 --- /dev/null +++ b/server_pack/mods/hologenica.pw.toml @@ -0,0 +1,13 @@ +name = "Hologenica" +filename = "hologenica-1.0.2-neoforge-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/huOhn9zP/versions/ZcZ8jcmi/hologenica-1.0.2-neoforge-1.21.1.jar" +hash-format = "sha512" +hash = "0bb65380e264c12f5586d6d9562216e248e58588ab0faaa5bcfce68eee46ddeab65c41576b853c00cc792c1a7fc7b5385efe1807c466f35e3f8ca2ef2cdfb506" + +[update] +[update.modrinth] +mod-id = "huOhn9zP" +version = "ZcZ8jcmi" diff --git a/server_pack/mods/interiors.pw.toml b/server_pack/mods/interiors.pw.toml new file mode 100644 index 0000000..722e470 --- /dev/null +++ b/server_pack/mods/interiors.pw.toml @@ -0,0 +1,13 @@ +name = "Create: Interiors" +filename = "interiors-1.21.1-neoforge-0.6.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/r4Knci2k/versions/gBrfZy6S/interiors-1.21.1-neoforge-0.6.1.jar" +hash-format = "sha512" +hash = "68b0d915e41fb0ce9d12a8c580d688a604770ded2b21e963058aa6d80cbc5661c481416d051a541395b5c79f461edcb658046e53cfcfb405179a450662ed01b5" + +[update] +[update.modrinth] +mod-id = "r4Knci2k" +version = "gBrfZy6S" diff --git a/server_pack/mods/ipsable.pw.toml b/server_pack/mods/ipsable.pw.toml new file mode 100644 index 0000000..c3eded6 --- /dev/null +++ b/server_pack/mods/ipsable.pw.toml @@ -0,0 +1,8 @@ +name = "Immersive Portals x Sable" +filename = "immersive-portals-sable-compat-0.5.0+ip-6.0.7.jar" +side = "both" + +[download] +url = "https://github.com/r2smith141/IPSable/releases/download/v0.5.0/immersive-portals-sable-compat-0.5.0%2Bip-6.0.7.jar" +hash-format = "sha512" +hash = "c800d0bd41a04291274e5fb318301ec2694cc980bda5b76d52452c934a1b6122a5115062cf081c6291066d1476dd205baa72d84779304a2dd809f9f7accdfa75" \ No newline at end of file diff --git a/server_pack/mods/jade-addons-forge.pw.toml b/server_pack/mods/jade-addons-forge.pw.toml new file mode 100644 index 0000000..31a00dc --- /dev/null +++ b/server_pack/mods/jade-addons-forge.pw.toml @@ -0,0 +1,13 @@ +name = "Jade Addons (Neo/Forge)" +filename = "JadeAddons-1.21.1-NeoForge-6.1.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/xuDOzCLy/versions/Z9s9lM56/JadeAddons-1.21.1-NeoForge-6.1.0.jar" +hash-format = "sha512" +hash = "dcf1135718e74c55d4b01116c9955b88a8c8a5180e61dc51d292479aff3d2fff38c8ca0f1b4a6e42e54644f1c8907846a61799491df455b71541aa342d8b8896" + +[update] +[update.modrinth] +mod-id = "xuDOzCLy" +version = "Z9s9lM56" diff --git a/server_pack/mods/jade.pw.toml b/server_pack/mods/jade.pw.toml new file mode 100644 index 0000000..c3f4cf9 --- /dev/null +++ b/server_pack/mods/jade.pw.toml @@ -0,0 +1,13 @@ +name = "Jade 🔍" +filename = "Jade-1.21.1-NeoForge-15.10.6.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nvQzSEkH/versions/eYz2YBGT/Jade-1.21.1-NeoForge-15.10.6.jar" +hash-format = "sha512" +hash = "dad9755dce8d85d914fc4df2baa0211f13e5839a71c1925fdd01f69081a95e30a2934e6273f8b01f0169adebe7a9dae57a8d904de0c4cb36dc17369bb474f0f2" + +[update] +[update.modrinth] +mod-id = "nvQzSEkH" +version = "eYz2YBGT" diff --git a/server_pack/mods/jei.pw.toml b/server_pack/mods/jei.pw.toml new file mode 100644 index 0000000..9ed6b56 --- /dev/null +++ b/server_pack/mods/jei.pw.toml @@ -0,0 +1,13 @@ +name = "Just Enough Items (JEI)" +filename = "jei-1.21.1-neoforge-19.44.0.403.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/u6dRKJwZ/versions/LtwmFHuF/jei-1.21.1-neoforge-19.44.0.403.jar" +hash-format = "sha512" +hash = "868d8d30dfd5055f65e6f476690a41189be9157b08b52961ded3febc7b577b2940a444209d32868a6f736656cb8dcacf7e252b9b66e16f9780e4768d4d775b01" + +[update] +[update.modrinth] +mod-id = "u6dRKJwZ" +version = "LtwmFHuF" diff --git a/server_pack/mods/journeymap.pw.toml b/server_pack/mods/journeymap.pw.toml new file mode 100644 index 0000000..be5574d --- /dev/null +++ b/server_pack/mods/journeymap.pw.toml @@ -0,0 +1,13 @@ +name = "JourneyMap" +filename = "journeymap-neoforge-1.21.1-6.0.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/lfHFW1mp/versions/35TPQTuf/journeymap-neoforge-1.21.1-6.0.5.jar" +hash-format = "sha512" +hash = "2cef3904af7988b8a70607b43f1ed37eb7938611ce7c40931ba29d911a47097d086e5148beec0d3e3641ccccf1300859e3ef8fd6ef1c169d86de59eaa7fdd498" + +[update] +[update.modrinth] +mod-id = "lfHFW1mp" +version = "35TPQTuf" diff --git a/server_pack/mods/kotlin-for-forge.pw.toml b/server_pack/mods/kotlin-for-forge.pw.toml new file mode 100644 index 0000000..3d1535b --- /dev/null +++ b/server_pack/mods/kotlin-for-forge.pw.toml @@ -0,0 +1,13 @@ +name = "Kotlin for Forge" +filename = "kotlinforforge-5.12.0-all.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ordsPcFz/versions/uhJhCT7X/kotlinforforge-5.12.0-all.jar" +hash-format = "sha512" +hash = "b8c3942f4d33179edf3f102f3d870b99dd436f8b8236dbbd31aa51b888162c692cfd88927295f24dc8b4375232f4c6c17360c5d6c4823f93cbcd7cf4bdc8bd14" + +[update] +[update.modrinth] +mod-id = "ordsPcFz" +version = "uhJhCT7X" diff --git a/server_pack/mods/krypton-fnp.pw.toml b/server_pack/mods/krypton-fnp.pw.toml new file mode 100644 index 0000000..04dfc10 --- /dev/null +++ b/server_pack/mods/krypton-fnp.pw.toml @@ -0,0 +1,13 @@ +name = "Krypton Reno" +filename = "krypton_fnp-neoforge-1.21.1-0.2.28.1-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/JkxWVYwU/versions/SUeOFygw/krypton_fnp-neoforge-1.21.1-0.2.28.1-1.21.1.jar" +hash-format = "sha512" +hash = "72892ac3bee596d30ee5e5d64d78c3da237c3e30c913c58cfadc3fad555c0140e4d04db5ce537805d991e111deeb03c23eea0d10e385ad1b7502b674102cac74" + +[update] +[update.modrinth] +mod-id = "JkxWVYwU" +version = "SUeOFygw" diff --git a/server_pack/mods/kubejs-create.pw.toml b/server_pack/mods/kubejs-create.pw.toml new file mode 100644 index 0000000..985d4b4 --- /dev/null +++ b/server_pack/mods/kubejs-create.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS Create" +filename = "kubejs-create-neoforge-2101.3.1-build.18.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/T38eAZQC/versions/1qmcLagN/kubejs-create-neoforge-2101.3.1-build.18.jar" +hash-format = "sha512" +hash = "b2c3064a06f7a06aa479c38daa72fcf88e31e753cb16c53435690b2472f71acea49fe3fcab09a1e5d6fed88b289941f9ecf3f71ba9a7b8b84397cab2b8d9801d" + +[update] +[update.modrinth] +mod-id = "T38eAZQC" +version = "1qmcLagN" diff --git a/server_pack/mods/kubejs-mekanism.pw.toml b/server_pack/mods/kubejs-mekanism.pw.toml new file mode 100644 index 0000000..171727a --- /dev/null +++ b/server_pack/mods/kubejs-mekanism.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS Mekanism" +filename = "kubejs-mekanism-neoforge-2101.1.7-build.18.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sY2Fy24K/versions/sbx1D4Jz/kubejs-mekanism-neoforge-2101.1.7-build.18.jar" +hash-format = "sha512" +hash = "c03228f4442db31eb7b9c485a9e2fa5e9b08f0d6faa97a8a0a905d8f8169e7efe8c04fbf82dcf3f8d5a8a46c280a54d8a608bf9897786fa8819d857af1a17e54" + +[update] +[update.modrinth] +mod-id = "sY2Fy24K" +version = "sbx1D4Jz" diff --git a/server_pack/mods/kubejs.pw.toml b/server_pack/mods/kubejs.pw.toml new file mode 100644 index 0000000..97f9c44 --- /dev/null +++ b/server_pack/mods/kubejs.pw.toml @@ -0,0 +1,13 @@ +name = "KubeJS" +filename = "kubejs-neoforge-2101.7.2-build.368.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/umyGl7zF/versions/F2nzeC19/kubejs-neoforge-2101.7.2-build.368.jar" +hash-format = "sha512" +hash = "5e2f1bd1460d8f443ce4bd44ed367d27f9170e50dff2ce9430954206e89651f8969dfbe842c3100b0244f8d58f843fc5fb9c46b5c576430a07f1e5b6dd4b9f7b" + +[update] +[update.modrinth] +mod-id = "umyGl7zF" +version = "F2nzeC19" diff --git a/server_pack/mods/laserio.pw.toml b/server_pack/mods/laserio.pw.toml new file mode 100644 index 0000000..3166147 --- /dev/null +++ b/server_pack/mods/laserio.pw.toml @@ -0,0 +1,13 @@ +name = "LaserIO" +filename = "laserio-1.9.11.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "0545bff65926346c9663fe3c397029561a87400f" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5730007 +project-id = 626839 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/lithostitched.pw.toml b/server_pack/mods/lithostitched.pw.toml new file mode 100644 index 0000000..34a20f5 --- /dev/null +++ b/server_pack/mods/lithostitched.pw.toml @@ -0,0 +1,13 @@ +name = "Lithostitched" +filename = "lithostitched-1.8.0+beta4-neoforge-21.1.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/XaDC71GB/versions/81DDKTGJ/lithostitched-1.8.0%2Bbeta4-neoforge-21.1.jar" +hash-format = "sha512" +hash = "f2bdbdd662d02d4357616a744f80edc14ae6ef866920ad6c177eba676a6591026d3bcf2241a05424f084c4bdad3a2bd00055daede58c5d06265d03add72769b3" + +[update] +[update.modrinth] +mod-id = "XaDC71GB" +version = "81DDKTGJ" diff --git a/server_pack/mods/lootjs.pw.toml b/server_pack/mods/lootjs.pw.toml new file mode 100644 index 0000000..827a3af --- /dev/null +++ b/server_pack/mods/lootjs.pw.toml @@ -0,0 +1,13 @@ +name = "LootJS: KubeJS Addon" +filename = "lootjs-neoforge-1.21.1-3.7.0.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/fJFETWDN/versions/5AZDyUSn/lootjs-neoforge-1.21.1-3.7.0.jar" +hash-format = "sha512" +hash = "fab507e70197e74ffba43bd400066f55ef58c2f91cb213efedf4acd2a2ad7876d9de905f02788a0b6831304c2177fdc9996c435bcf855eabdb4daca7581270bc" + +[update] +[update.modrinth] +mod-id = "fJFETWDN" +version = "5AZDyUSn" diff --git a/server_pack/mods/mech-trowel.pw.toml b/server_pack/mods/mech-trowel.pw.toml new file mode 100644 index 0000000..f758e49 --- /dev/null +++ b/server_pack/mods/mech-trowel.pw.toml @@ -0,0 +1,13 @@ +name = "Mech Trowel" +filename = "mechtrowel-1.3.2.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nqFNRALS/versions/nCXGFcYp/mechtrowel-1.3.2.1.jar" +hash-format = "sha512" +hash = "7e7dcccde6e4c37483ad6a9958635833503f7fdb647e4e8369484d7e416ec08b02ae1a597fcd6386bdb9bc7b4109900e42b8077617116111827fec617e5a37f2" + +[update] +[update.modrinth] +mod-id = "nqFNRALS" +version = "nCXGFcYp" diff --git a/server_pack/mods/mechanicals-lib.pw.toml b/server_pack/mods/mechanicals-lib.pw.toml new file mode 100644 index 0000000..1279daf --- /dev/null +++ b/server_pack/mods/mechanicals-lib.pw.toml @@ -0,0 +1,13 @@ +name = "Mechanicals Lib" +filename = "mechanicals-1.21.1-1.1.6.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ProvjTA7/versions/GBSlpwLT/mechanicals-1.21.1-1.1.6.jar" +hash-format = "sha512" +hash = "84bfcd2cbd061eb1516fc2adbca0e599a38372b80ef9f5713de70be48d072243b1c5cb84c13177c35f333b6bcf16aa1f70dbd0964ed18e14c2bff733c531c6bc" + +[update] +[update.modrinth] +mod-id = "ProvjTA7" +version = "GBSlpwLT" diff --git a/server_pack/mods/mekanism-additions.pw.toml b/server_pack/mods/mekanism-additions.pw.toml new file mode 100644 index 0000000..66b6c5d --- /dev/null +++ b/server_pack/mods/mekanism-additions.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Additions" +filename = "MekanismAdditions-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/a6F3uASn/versions/6mkdykZa/MekanismAdditions-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "6bdd4b00d19f316c7486ec27e78fe1204427fea4ad1c15c13a395956c4d1d7eb7f55438f0399b623820eae02fa5a690cece6cbb57c1b5923e1185c389bf0ddb7" + +[update] +[update.modrinth] +mod-id = "a6F3uASn" +version = "6mkdykZa" diff --git a/server_pack/mods/mekanism-covers.pw.toml b/server_pack/mods/mekanism-covers.pw.toml new file mode 100644 index 0000000..2dd17d4 --- /dev/null +++ b/server_pack/mods/mekanism-covers.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Covers" +filename = "mekanismcovers-1.3-BETA+1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E3sGVcD8/versions/89QaQ0n0/mekanismcovers-1.3-BETA%2B1.21.jar" +hash-format = "sha512" +hash = "d9a295c83dc79bcfe550b171e7dc1d5be9dbddf9047f9b843e52e083a3a3e62b3a660b346a8fa582d49ed618bad53403d3e8d01fd71694f11428eebdfca6b8b3" + +[update] +[update.modrinth] +mod-id = "E3sGVcD8" +version = "89QaQ0n0" diff --git a/server_pack/mods/mekanism-generators.pw.toml b/server_pack/mods/mekanism-generators.pw.toml new file mode 100644 index 0000000..6aa4210 --- /dev/null +++ b/server_pack/mods/mekanism-generators.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Generators" +filename = "MekanismGenerators-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/OFVYKsAk/versions/a6gl7srE/MekanismGenerators-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "6c3d5b7ea2f67f43c3d169c97de2855a7085f38019cf426e015ccc8ca9bc4f66e96b1cdf4a9afdc92bef7b2e236f16c81415ed5e48736805d5961d29525316d6" + +[update] +[update.modrinth] +mod-id = "OFVYKsAk" +version = "a6gl7srE" diff --git a/server_pack/mods/mekanism-tools.pw.toml b/server_pack/mods/mekanism-tools.pw.toml new file mode 100644 index 0000000..05511dc --- /dev/null +++ b/server_pack/mods/mekanism-tools.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Tools" +filename = "MekanismTools-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/tqQpq1lt/versions/v5zlSE9s/MekanismTools-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "0dccc47efbb9e3bf3b7df886cefff4a6b9a3f683bf0df3e54409dc3a4c6459eef95ce0af93adf345b868e5b7dcb7a2bb0af68f0a94acfa69975bfbb278e4902f" + +[update] +[update.modrinth] +mod-id = "tqQpq1lt" +version = "v5zlSE9s" diff --git a/server_pack/mods/mekanism-unleashed.pw.toml b/server_pack/mods/mekanism-unleashed.pw.toml new file mode 100644 index 0000000..c390d6b --- /dev/null +++ b/server_pack/mods/mekanism-unleashed.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Unleashed" +filename = "mekanism_unleashed-0.3.2.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/IZciqufR/versions/jCGHoMoI/mekanism_unleashed-0.3.2.jar" +hash-format = "sha512" +hash = "93c363ff5ded4a363f9feaa6f6402f72881cd471416ceb58bb902289e69915910fb99a884c48050d3e99c84ae370c9fbe327403d6195afb08d5e3ce78cb97bd6" + +[update] +[update.modrinth] +mod-id = "IZciqufR" +version = "jCGHoMoI" diff --git a/server_pack/mods/mekanism.pw.toml b/server_pack/mods/mekanism.pw.toml new file mode 100644 index 0000000..394a32d --- /dev/null +++ b/server_pack/mods/mekanism.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism" +filename = "Mekanism-1.21.1-10.7.19.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/Ce6I4WUE/versions/5KzzycBT/Mekanism-1.21.1-10.7.19.85.jar" +hash-format = "sha512" +hash = "66745825330a98f3e4a5ea3a44aff8b00870f715c144edc38dd2f61b4240589600b58ae89efac3b54dbb5aa430b1059dac1a28fd71cac5cc9002bbeb5ba3f22b" + +[update] +[update.modrinth] +mod-id = "Ce6I4WUE" +version = "5KzzycBT" diff --git a/server_pack/mods/mekanism_extra.pw.toml b/server_pack/mods/mekanism_extra.pw.toml new file mode 100644 index 0000000..d7d7f75 --- /dev/null +++ b/server_pack/mods/mekanism_extra.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism Extra" +filename = "mekanism_extras-1.21.1-1.4.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/HUZkxNTQ/versions/fqPYikeY/mekanism_extras-1.21.1-1.4.1.jar" +hash-format = "sha512" +hash = "03abb79bc79adab24fd674ab4d5fc84aedcde94a2304d199ebba59c6cef4c8a6283a59fd8d02b2ec0a85c832903c671db7b1f915718b4626d2bd9ed681557761" + +[update] +[update.modrinth] +mod-id = "HUZkxNTQ" +version = "fqPYikeY" diff --git a/server_pack/mods/mekanismmoremachine.pw.toml b/server_pack/mods/mekanismmoremachine.pw.toml new file mode 100644 index 0000000..ac6c213 --- /dev/null +++ b/server_pack/mods/mekanismmoremachine.pw.toml @@ -0,0 +1,13 @@ +name = "Mekanism:More Machine" +filename = "mekmm-1.21.1-1.4.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/qDJXZJTz/versions/A8xaRuSG/mekmm-1.21.1-1.4.0.jar" +hash-format = "sha512" +hash = "bcab5179c5d4767bec0556b6267dc0a5cfe97b768b9c30a1647997dc278e9f7cfd1314aaca5692879ca07af671e98662e6843c183f073dffe6766ea9431f3077" + +[update] +[update.modrinth] +mod-id = "qDJXZJTz" +version = "A8xaRuSG" diff --git a/server_pack/mods/merequester.pw.toml b/server_pack/mods/merequester.pw.toml new file mode 100644 index 0000000..a018841 --- /dev/null +++ b/server_pack/mods/merequester.pw.toml @@ -0,0 +1,13 @@ +name = "ME Requester" +filename = "merequester-neoforge-1.21.1-1.4.3.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E6BFl96N/versions/Zf5HhnF1/merequester-neoforge-1.21.1-1.4.3.jar" +hash-format = "sha512" +hash = "4411670eaea8403414c773646cb9498291e843ba995100c4fca4ab53d5ab3aa0cbf913921403c8af1d32b67ab940bac8c8a16a910069f6f7e2902e42e11f66b7" + +[update] +[update.modrinth] +mod-id = "E6BFl96N" +version = "Zf5HhnF1" diff --git a/server_pack/mods/modernfix.pw.toml b/server_pack/mods/modernfix.pw.toml new file mode 100644 index 0000000..4bcf0f2 --- /dev/null +++ b/server_pack/mods/modernfix.pw.toml @@ -0,0 +1,13 @@ +name = "ModernFix" +filename = "modernfix-neoforge-5.27.20+mc1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/nmDcB62a/versions/VsJnrw8k/modernfix-neoforge-5.27.20%2Bmc1.21.1.jar" +hash-format = "sha512" +hash = "b1f0d3ac5ada811b8204bc82adc1cab8ff71752da8e97ae381f21be5f778c199ae59108850febc87d1c46757b27ccbb2669f3fc6340c837db450a205ca2d8c9c" + +[update] +[update.modrinth] +mod-id = "nmDcB62a" +version = "VsJnrw8k" diff --git a/server_pack/mods/modular-routers.pw.toml b/server_pack/mods/modular-routers.pw.toml new file mode 100644 index 0000000..11a59c8 --- /dev/null +++ b/server_pack/mods/modular-routers.pw.toml @@ -0,0 +1,13 @@ +name = "Modular Routers" +filename = "modular-routers-13.2.7+mc1.21.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "386fcae227b6d7963ba11e9808be4bc0910079da" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8478801 +project-id = 250294 diff --git a/server_pack/mods/moonlight.pw.toml b/server_pack/mods/moonlight.pw.toml new file mode 100644 index 0000000..5c2ad15 --- /dev/null +++ b/server_pack/mods/moonlight.pw.toml @@ -0,0 +1,13 @@ +name = "Moonlight Lib" +filename = "moonlight-1.21.1-3.4.0-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/twkfQtEc/versions/fiyhLK1O/moonlight-1.21.1-3.4.0-neoforge.jar" +hash-format = "sha512" +hash = "ce0505ea58e0dbaf3b02be0f9ca084c8680ebc2244695fc9eebe32a73055359932657235b6214718dca5503bb7874e3bd6fc2aaf148c27efd494faadc23fa70f" + +[update] +[update.modrinth] +mod-id = "twkfQtEc" +version = "fiyhLK1O" diff --git a/server_pack/mods/mouse-tweaks.pw.toml b/server_pack/mods/mouse-tweaks.pw.toml new file mode 100644 index 0000000..b8c5a32 --- /dev/null +++ b/server_pack/mods/mouse-tweaks.pw.toml @@ -0,0 +1,13 @@ +name = "Mouse Tweaks" +filename = "MouseTweaks-neoforge-mc1.21-2.26.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "6dae57f4f50f7808d2ed9a18f6cd1c0d4640c6bc" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5637846 +project-id = 60089 diff --git a/server_pack/mods/mutant-monsters.pw.toml b/server_pack/mods/mutant-monsters.pw.toml new file mode 100644 index 0000000..898838e --- /dev/null +++ b/server_pack/mods/mutant-monsters.pw.toml @@ -0,0 +1,13 @@ +name = "Mutant Monsters" +filename = "MutantMonsters-v21.1.1-1.21.1-NeoForge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "c9981cf323d5e0fd49387ad20dafec1f58b2c88d" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7232511 +project-id = 852665 diff --git a/server_pack/mods/nyfs-spiders.pw.toml b/server_pack/mods/nyfs-spiders.pw.toml new file mode 100644 index 0000000..f7ea4d6 --- /dev/null +++ b/server_pack/mods/nyfs-spiders.pw.toml @@ -0,0 +1,13 @@ +name = "Nyf's Spiders" +filename = "nyfsspiders-neoforge-1.21.1-3.0.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/dOGM7ccu/versions/pjXVTyLu/nyfsspiders-neoforge-1.21.1-3.0.1.jar" +hash-format = "sha512" +hash = "820b4a983f2ec117f96b9fe2eda110b17e3da3b80f7c7c18a76b09781f1a9eb325490de1e69cea2270db6d1b27eefccee1dd022863b190bb88a660d48f602f13" + +[update] +[update.modrinth] +mod-id = "dOGM7ccu" +version = "pjXVTyLu" diff --git a/server_pack/mods/per-spatium.pw.toml b/server_pack/mods/per-spatium.pw.toml new file mode 100644 index 0000000..317e490 --- /dev/null +++ b/server_pack/mods/per-spatium.pw.toml @@ -0,0 +1,13 @@ +name = "Ad Astra: Per Spatium Et Tempus" +filename = "perspatium-1.21.1-1.1.0.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/IHyWDPnp/versions/6tlFwckH/perspatium-1.21.1-1.1.0.jar" +hash-format = "sha512" +hash = "41041066c3b09251804c4ddb3804b0bdbaee2695250de1af4cb7cfad1540d6e83826c9817a7f7817d6ec95ba219d941914e628f10b2fe810119ca6559bf73159" + +[update] +[update.modrinth] +mod-id = "IHyWDPnp" +version = "6tlFwckH" diff --git a/server_pack/mods/playeranimator.pw.toml b/server_pack/mods/playeranimator.pw.toml new file mode 100644 index 0000000..7483336 --- /dev/null +++ b/server_pack/mods/playeranimator.pw.toml @@ -0,0 +1,13 @@ +name = "playerAnimator" +filename = "player-animation-lib-forge-2.0.4+1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/gedNE4y2/versions/HJZB6bmA/player-animation-lib-forge-2.0.4%2B1.21.1.jar" +hash-format = "sha512" +hash = "fc00450fb6c95ec1779021bdc726122dacb5915c6baddaacc981cd221b01b8db35f2a0dfde5d6fa6766d877266dc82f58854f571ea53cc5c4d468b80e1548a5f" + +[update] +[update.modrinth] +mod-id = "gedNE4y2" +version = "HJZB6bmA" diff --git a/server_pack/mods/potentials.pw.toml b/server_pack/mods/potentials.pw.toml new file mode 100644 index 0000000..bd5965e --- /dev/null +++ b/server_pack/mods/potentials.pw.toml @@ -0,0 +1,13 @@ +name = "Potentials" +filename = "potentials-neoforge-1.21-0.7.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/J9pKOkxP/versions/EEjnSxLK/potentials-neoforge-1.21-0.7.1.jar" +hash-format = "sha512" +hash = "fe42e40aa1fec39a6e6d0e24ba54c994979868d77da4241fb629d3752a72c45b466a79889a15e9f6f1114c93e39ca74818622efc25f10af004bc54371db79362" + +[update] +[update.modrinth] +mod-id = "J9pKOkxP" +version = "EEjnSxLK" diff --git a/server_pack/mods/puzzles-lib.pw.toml b/server_pack/mods/puzzles-lib.pw.toml new file mode 100644 index 0000000..d1bed4f --- /dev/null +++ b/server_pack/mods/puzzles-lib.pw.toml @@ -0,0 +1,13 @@ +name = "Puzzles Lib" +filename = "PuzzlesLib-v21.1.52-1.21.1-NeoForge.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "66182c3affb9f99624d1d770ca168d2a63af83f6" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8251525 +project-id = 495476 diff --git a/server_pack/mods/rechiseled-create.pw.toml b/server_pack/mods/rechiseled-create.pw.toml new file mode 100644 index 0000000..7f91c70 --- /dev/null +++ b/server_pack/mods/rechiseled-create.pw.toml @@ -0,0 +1,13 @@ +name = "Rechiseled: Create" +filename = "rechiseledcreate-1.1.1-neoforge-mc1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/E6867niZ/versions/VnOezhJR/rechiseledcreate-1.1.1-neoforge-mc1.21.jar" +hash-format = "sha512" +hash = "ca77dea4dd3276105176578855b0ffd9f48256bed58701a86171b05db1116a29592871ca7d6d5acc9a023270a45654feb4ab7153026eb751d567e7bf892ca560" + +[update] +[update.modrinth] +mod-id = "E6867niZ" +version = "VnOezhJR" diff --git a/server_pack/mods/rechiseled.pw.toml b/server_pack/mods/rechiseled.pw.toml new file mode 100644 index 0000000..e5371db --- /dev/null +++ b/server_pack/mods/rechiseled.pw.toml @@ -0,0 +1,13 @@ +name = "Rechiseled" +filename = "rechiseled-1.2.5-neoforge-mc1.21.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/B0g2vT6l/versions/S5FnErRw/rechiseled-1.2.5-neoforge-mc1.21.jar" +hash-format = "sha512" +hash = "d849bc3e775577978bbf96dccee11b0904fa928c556a12e05adf759edab9479bd757f490380475e974eaa137c566ffe8bfb62d5df19f966dfd99b67a2fe0ee9b" + +[update] +[update.modrinth] +mod-id = "B0g2vT6l" +version = "S5FnErRw" diff --git a/server_pack/mods/reintegrated-chipped.pw.toml b/server_pack/mods/reintegrated-chipped.pw.toml new file mode 100644 index 0000000..e4d3c17 --- /dev/null +++ b/server_pack/mods/reintegrated-chipped.pw.toml @@ -0,0 +1,13 @@ +name = "Reintegrated: Chipped" +filename = "reintegrated_chipped-1.0.0.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/5Rel2hNl/versions/L60LNn5J/reintegrated_chipped-1.0.0.jar" +hash-format = "sha512" +hash = "842fab7544199accebde2e33872439e4f1858d590edd651f90a7147914763f59dc1c25c179809c80161ebc78cd12bef3b847ac385780e5edc950c1503fb2fe78" + +[update] +[update.modrinth] +mod-id = "5Rel2hNl" +version = "L60LNn5J" diff --git a/server_pack/mods/resourceful-lib.pw.toml b/server_pack/mods/resourceful-lib.pw.toml new file mode 100644 index 0000000..70d15a0 --- /dev/null +++ b/server_pack/mods/resourceful-lib.pw.toml @@ -0,0 +1,13 @@ +name = "Resourceful Lib" +filename = "resourcefullib-neoforge-1.21-3.0.12.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "24389c8e48ff0e8594e4686b750c494c66a5f8df" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5973188 +project-id = 570073 diff --git a/server_pack/mods/rhino.pw.toml b/server_pack/mods/rhino.pw.toml new file mode 100644 index 0000000..420b15b --- /dev/null +++ b/server_pack/mods/rhino.pw.toml @@ -0,0 +1,13 @@ +name = "Rhino" +filename = "rhino-2101.2.7-build.85.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/sk9knFPE/versions/cQ4POTah/rhino-2101.2.7-build.85.jar" +hash-format = "sha512" +hash = "0a6c7f4410281aeb03b815ec03487a8e80a4d3dae013d81282e447bf9c08144ef57318af614ea6d40b7d9a8c25031c557890ec792a5895a82467c1643116f693" + +[update] +[update.modrinth] +mod-id = "sk9knFPE" +version = "cQ4POTah" diff --git a/server_pack/mods/rpl.pw.toml b/server_pack/mods/rpl.pw.toml new file mode 100644 index 0000000..7bb334b --- /dev/null +++ b/server_pack/mods/rpl.pw.toml @@ -0,0 +1,13 @@ +name = "Ritchie's Projectile Library" +filename = "ritchiesprojectilelib-2.1.2+mc.1.21.1-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/B3pb093D/versions/hZ6B2Z0x/ritchiesprojectilelib-2.1.2%2Bmc.1.21.1-neoforge.jar" +hash-format = "sha512" +hash = "6d64c84505a5a8fbb96d106603065465c5a2314ec09636900c5c1a31014c12fa68f1a41e758313cbf0d6f95d9a1f53bd67339020f7d8db0e184c23f66aee0330" + +[update] +[update.modrinth] +mod-id = "B3pb093D" +version = "hZ6B2Z0x" diff --git a/server_pack/mods/sable.pw.toml b/server_pack/mods/sable.pw.toml new file mode 100644 index 0000000..75c10eb --- /dev/null +++ b/server_pack/mods/sable.pw.toml @@ -0,0 +1,13 @@ +name = "Sable" +filename = "sable-neoforge-1.21.1-2.0.5.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/T9PomCSv/versions/U678xqle/sable-neoforge-1.21.1-2.0.5.jar" +hash-format = "sha512" +hash = "bf3d8c87bcc5efb99afffd50305fc978086ed48a63e106816e3a8a3901f8052f4480ea527dbd7d4003f7775ed4d020529098034f4e307aefac9cc42df2b4c19a" + +[update] +[update.modrinth] +mod-id = "T9PomCSv" +version = "U678xqle" diff --git a/server_pack/mods/simply-swords.pw.toml b/server_pack/mods/simply-swords.pw.toml new file mode 100644 index 0000000..14039f8 --- /dev/null +++ b/server_pack/mods/simply-swords.pw.toml @@ -0,0 +1,13 @@ +name = "Simply Swords" +filename = "simplyswords-neoforge-1.63.0-1.21.1.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/bK3Ubu9p/versions/eREhvVpQ/simplyswords-neoforge-1.63.0-1.21.1.jar" +hash-format = "sha512" +hash = "8e52382f57806aabd4a955972b9fd5cbee5494700aa03390fa3c9d1c21dabe30c99f4ee728489e92b36f8eac9f9e3fad0a8a8c57967dab29c818963aebf6bfb6" + +[update] +[update.modrinth] +mod-id = "bK3Ubu9p" +version = "eREhvVpQ" diff --git a/server_pack/mods/slice-and-dice.pw.toml b/server_pack/mods/slice-and-dice.pw.toml new file mode 100644 index 0000000..5d6fdb8 --- /dev/null +++ b/server_pack/mods/slice-and-dice.pw.toml @@ -0,0 +1,13 @@ +name = "Create Slice & Dice" +filename = "sliceanddice-4.3.3-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/GmjmRQ0A/versions/N67LJgrN/sliceanddice-4.3.3-neoforge.jar" +hash-format = "sha512" +hash = "3bdbd282ae5aa11ef6c186b752497541730b50fb400c4962230bcd7734cfe4e8daa2ee565387450dfe0eb6deaa0fa44bf81f99c788bac09b1a60d8f1991db37f" + +[update] +[update.modrinth] +mod-id = "GmjmRQ0A" +version = "N67LJgrN" diff --git a/server_pack/mods/sophisticated-backpacks.pw.toml b/server_pack/mods/sophisticated-backpacks.pw.toml new file mode 100644 index 0000000..408088d --- /dev/null +++ b/server_pack/mods/sophisticated-backpacks.pw.toml @@ -0,0 +1,13 @@ +name = "Sophisticated Backpacks" +filename = "sophisticatedbackpacks-1.21.1-3.25.77.2086.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "a240d6f4469e564cfb139e96bb9bf5dc6ea3a8e6" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8650198 +project-id = 422301 diff --git a/server_pack/mods/sophisticated-core.pw.toml b/server_pack/mods/sophisticated-core.pw.toml new file mode 100644 index 0000000..2085840 --- /dev/null +++ b/server_pack/mods/sophisticated-core.pw.toml @@ -0,0 +1,13 @@ +name = "Sophisticated Core" +filename = "sophisticatedcore-1.21.1-1.4.87.2270.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "9e4a1a458b136ecca01b8ddb4e470bcb7a1a6bab" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8658334 +project-id = 618298 diff --git a/server_pack/mods/sophisticated-storage.pw.toml b/server_pack/mods/sophisticated-storage.pw.toml new file mode 100644 index 0000000..5d44f6d --- /dev/null +++ b/server_pack/mods/sophisticated-storage.pw.toml @@ -0,0 +1,13 @@ +name = "Sophisticated Storage" +filename = "sophisticatedstorage-1.21.1-1.5.88.2097.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "212202e461ec5f4a42563a2b77dade42e97e866a" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8679980 +project-id = 619320 diff --git a/server_pack/mods/sound-physics-remastered.pw.toml b/server_pack/mods/sound-physics-remastered.pw.toml new file mode 100644 index 0000000..09aa2e3 --- /dev/null +++ b/server_pack/mods/sound-physics-remastered.pw.toml @@ -0,0 +1,13 @@ +name = "Sound Physics Remastered" +filename = "sound-physics-remastered-neoforge-1.21.1-1.5.1.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "31cf754f9e5f62d1ca257f297e5dce394024696c" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7032247 +project-id = 535489 diff --git a/server_pack/mods/stellaris.pw.toml b/server_pack/mods/stellaris.pw.toml new file mode 100644 index 0000000..6434b57 --- /dev/null +++ b/server_pack/mods/stellaris.pw.toml @@ -0,0 +1,13 @@ +name = "Stellaris" +filename = "stellaris-1.21-neoforge-1.4.25.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/ItTQpuBn/versions/5BraaKfR/stellaris-1.21-neoforge-1.4.25.jar" +hash-format = "sha512" +hash = "32045825077f49d2a5e63e3197ff95878996c16a0c00adea5d185cf414f5765c46f92ee828367805eb90fd681e6613b3f1500568b2719eaccd6facac6e69ac79" + +[update] +[update.modrinth] +mod-id = "ItTQpuBn" +version = "5BraaKfR" diff --git a/server_pack/mods/supermartijn642s-config-lib.pw.toml b/server_pack/mods/supermartijn642s-config-lib.pw.toml new file mode 100644 index 0000000..6d7fc37 --- /dev/null +++ b/server_pack/mods/supermartijn642s-config-lib.pw.toml @@ -0,0 +1,13 @@ +name = "SuperMartijn642's Config Lib" +filename = "supermartijn642configlib-1.1.8-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "07452242e389975e8a88b97066f4bae6a4ebe574" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 5546996 +project-id = 438332 diff --git a/server_pack/mods/supermartijn642s-core-lib.pw.toml b/server_pack/mods/supermartijn642s-core-lib.pw.toml new file mode 100644 index 0000000..15f1413 --- /dev/null +++ b/server_pack/mods/supermartijn642s-core-lib.pw.toml @@ -0,0 +1,13 @@ +name = "SuperMartijn642's Core Lib" +filename = "supermartijn642corelib-1.1.24-neoforge-mc1.21.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "e77709df2499085d6576584b883a33285b2996b9" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8623666 +project-id = 454372 diff --git a/server_pack/mods/supplementaries-squared.pw.toml b/server_pack/mods/supplementaries-squared.pw.toml new file mode 100644 index 0000000..bdcd398 --- /dev/null +++ b/server_pack/mods/supplementaries-squared.pw.toml @@ -0,0 +1,13 @@ +name = "Supplementaries Squared" +filename = "suppsquared-neoforge-1.21-1.2.18.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/dCCkNFwE/versions/1uYFhgHN/suppsquared-neoforge-1.21-1.2.18.jar" +hash-format = "sha512" +hash = "e396e5b460fcbed33fb9ee53c6e58e47df7a98a93354c91d5a28d407d82eb835baeabbc92fe7cf41fcfe070fdd7f5b78b1e2ba302eb1cec149c7cc09f5bdbad9" + +[update] +[update.modrinth] +mod-id = "dCCkNFwE" +version = "1uYFhgHN" diff --git a/server_pack/mods/supplementaries.pw.toml b/server_pack/mods/supplementaries.pw.toml new file mode 100644 index 0000000..db395a4 --- /dev/null +++ b/server_pack/mods/supplementaries.pw.toml @@ -0,0 +1,13 @@ +name = "Supplementaries" +filename = "supplementaries-1.21.1-3.8.9-neoforge.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/fFEIiSDQ/versions/ZHJvgW8G/supplementaries-1.21.1-3.8.9-neoforge.jar" +hash-format = "sha512" +hash = "c8d6c2aa5387e1ac49935b44895f3649d054cb7d3660c5fa5b363623d10f03974e75eb86ad426c81705a0453bf406b82e5d71118586b9dd8dc41cd60b81f44b4" + +[update] +[update.modrinth] +mod-id = "fFEIiSDQ" +version = "ZHJvgW8G" 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/mods/thevoiddimension.pw.toml b/server_pack/mods/thevoiddimension.pw.toml new file mode 100644 index 0000000..4455e43 --- /dev/null +++ b/server_pack/mods/thevoiddimension.pw.toml @@ -0,0 +1,13 @@ +name = "The Void Dimension" +filename = "thevoiddimension-neoforge-0.0.1+1.21.jar" +side = "server" + +[download] +url = "https://cdn.modrinth.com/data/SrhObyPX/versions/NK6DSGf1/thevoiddimension-neoforge-0.0.1%2B1.21.jar" +hash-format = "sha512" +hash = "f2b545e33d3c805958c140b8c2ec2686206b3d63155fe73c086288949a527572eadc09ffdf0cf473e4ce37c3abdf0b6c547fb391a4c1655f9ea46213b2d60b28" + +[update] +[update.modrinth] +mod-id = "SrhObyPX" +version = "NK6DSGf1" diff --git a/server_pack/mods/titanium.pw.toml b/server_pack/mods/titanium.pw.toml new file mode 100644 index 0000000..5acf4ee --- /dev/null +++ b/server_pack/mods/titanium.pw.toml @@ -0,0 +1,13 @@ +name = "Titanium" +filename = "titanium-1.21-4.0.45.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "c718d4d8713b83964f9b8feea4443a25feb84fc9" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 8426819 +project-id = 287342 diff --git a/server_pack/mods/waystones.pw.toml b/server_pack/mods/waystones.pw.toml new file mode 100644 index 0000000..3c338ce --- /dev/null +++ b/server_pack/mods/waystones.pw.toml @@ -0,0 +1,13 @@ +name = "Waystones" +filename = "waystones-neoforge-1.21.1-21.1.41.jar" +side = "both" + +[download] +url = "https://cdn.modrinth.com/data/LOpKHB2A/versions/fxszxKRW/waystones-neoforge-1.21.1-21.1.41.jar" +hash-format = "sha512" +hash = "18a11f82b77ba520c5871f9815f008b3e1ad11af16fa8498167091c34a33be5d0aa9b2761eef8cefac2e22d67da32a76fb2e01fd3d3248e3f0cfc2c139603d37" + +[update] +[update.modrinth] +mod-id = "LOpKHB2A" +version = "fxszxKRW" diff --git a/server_pack/mods/worldportal.pw.toml b/server_pack/mods/worldportal.pw.toml new file mode 100644 index 0000000..1fbb433 --- /dev/null +++ b/server_pack/mods/worldportal.pw.toml @@ -0,0 +1,13 @@ +name = "World Portal (patched - no EntityLMixin, fixes sable mixin conflict)" +filename = "worldportal-neoforge-0.0.10+1.21-patched.jar" +side = "server" + +[download] +url = "https://git.mithraic.cloud/ad3laid3/SciCraft/raw/branch/main/tools/patches/worldportal-neoforge-0.0.10+1.21-patched.jar" +hash-format = "sha512" +hash = "efbf5fac6b4cb89383e4c9477fbada35387c17fdfea9f9e9a063cf6441c5aebd868eedb4114091105d542516e3736c1517242142fff5f9b341a9866ed6e2005e" + +[update] +[update.modrinth] +mod-id = "A2PZGios" +version = "kitApnnw" diff --git a/server_pack/pack.toml b/server_pack/pack.toml new file mode 100644 index 0000000..7dbd164 --- /dev/null +++ b/server_pack/pack.toml @@ -0,0 +1,13 @@ +name = "SCICRAFT - The Dark Photon Protocol" +author = "SciCraft Server" +version = "1.0.0" +pack-format = "packwiz:1.1.0" + +[index] +file = "index.toml" +hash-format = "sha256" +hash = "e71c2f015f60a250c965cb6592bc1c5e00ef657b54e2cbe70afc2bbce62cec98" + +[versions] +minecraft = "1.21.1" +neoforge = "21.1.248" diff --git a/tools/gen_story.py b/tools/gen_story.py new file mode 100755 index 0000000..66caa6c --- /dev/null +++ b/tools/gen_story.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +"""SCICRAFT — story generator. + +Reads STORY/*.md, merges every ```lang JSON block (in filename order) into +en_us.json, writes it to BOTH packs, and validates that every lang key +referenced from the KubeJS scripts and advancement JSONs resolves. + +Usage: + python tools/gen_story.py + +Edit the story by editing STORY/*.md, then run this script. Never hand-edit +en_us.json — it is a generated artifact. +""" + +import json +import re +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent +STORY_DIR = ROOT / "STORY" +LANGS = [ + ROOT / "server_pack" / "kubejs" / "assets" / "scicraft" / "lang" / "en_us.json", + ROOT / "client_pack" / "kubejs" / "assets" / "scicraft" / "lang" / "en_us.json", +] +KUBEJS_DIRS = [ROOT / "server_pack" / "kubejs"] +ADVANCEMENT_DIR = ROOT / "server_pack" / "kubejs" / "data" / "scicraft" / "advancements" + +LANG_BLOCK = re.compile(r"```lang\s*\n(.*?)```", re.S) + + +def load_lang_files(): + merged = {} + order = [] + for path in sorted(STORY_DIR.glob("*.md")): + text = path.read_text(encoding="utf-8") + for i, match in enumerate(LANG_BLOCK.finditer(text)): + try: + data = json.loads(match.group(1)) + except json.JSONDecodeError as e: + sys.exit(f"BAD JSON in {path.name} block #{i + 1}: {e}") + for key, value in data.items(): + if key in merged: + print(f"WARN: duplicate key {key!r} ({path.name} overrides)") + merged[key] = value + order.append(key) + return merged, order + + +def write_lang(merged, order): + payload = {k: merged[k] for k in order} + for target in LANGS: + target.parent.mkdir(parents=True, exist_ok=True) + target.write_text( + json.dumps(payload, ensure_ascii=False, indent="\t") + "\n", + encoding="utf-8", + ) + print(f"wrote {target.relative_to(ROOT)} ({len(payload)} keys)") + + +def validate(merged): + missing = set() + + def check_key(key, source): + if key not in merged: + missing.add((key, source)) + + for root_dir in KUBEJS_DIRS: + for script in root_dir.rglob("*.js"): + for key in re.findall(r"Text\.translate\(\s*['\"]([^'\"]+)['\"]\s*(?:\+|\))", script.read_text(encoding="utf-8")): + # Keys followed by ` + msg` are dynamic templates — skip. + if key.endswith("."): + continue + check_key(key, str(script.relative_to(ROOT))) + + if ADVANCEMENT_DIR.exists(): + for jf in ADVANCEMENT_DIR.rglob("*.json"): + for key in re.findall(r'"translate"\s*:\s*"([^"]+)"', jf.read_text(encoding="utf-8")): + check_key(key, str(jf.relative_to(ROOT))) + + if missing: + print("\nMISSING LANG KEYS:") + for key, source in sorted(missing): + print(f" {key} (used in {source})") + sys.exit(1) + print("all referenced lang keys resolve") + + +if __name__ == "__main__": + merged, order = load_lang_files() + write_lang(merged, order) + validate(merged) \ No newline at end of file diff --git a/tools/gen_textures.py b/tools/gen_textures.py new file mode 100644 index 0000000..30d85f9 --- /dev/null +++ b/tools/gen_textures.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +"""Generate placeholder 16x16 textures for SCICRAFT protocol items/blocks.""" +import os +from PIL import Image, ImageDraw + +OUT = "/home/mithral/Documents/SciCraft/server_pack/kubejs/assets/scicraft/textures" + + +def base(name, base_color, accent_color, kind, size=16): + img = Image.new("RGBA", (size, size), (0, 0, 0, 0)) + d = ImageDraw.Draw(img) + if kind == "item": + d.rectangle([3, 2, 12, 13], fill=base_color, outline=accent_color) + d.line([3, 2, 12, 13], fill=accent_color) + d.line([12, 2, 3, 13], fill=accent_color) + elif kind == "block": + d.rectangle([1, 1, 14, 14], fill=base_color, outline=accent_color) + d.rectangle([4, 4, 11, 11], fill=accent_color, outline=accent_color) + img.save(os.path.join(OUT, kind, name + ".png")) + + +def glow(name, base_color, accent_color, kind, size=16): + """Item with an outer glow ring.""" + img = Image.new("RGBA", (size, size), (0, 0, 0, 0)) + d = ImageDraw.Draw(img) + for r, col in [(6, (255, 255, 255, 40)), (5, (255, 255, 255, 80)), (4, (255, 255, 255, 130))]: + d.ellipse([8 - r, 8 - r, 8 + r, 8 + r], outline=col) + d.ellipse([4, 4, 12, 12], fill=base_color, outline=accent_color) + img.save(os.path.join(OUT, kind, name + ".png")) + + +glow("photon_core", (0, 180, 220, 255), (180, 255, 255, 255), "item") +glow("photon_fragment", (120, 60, 200, 255), (230, 180, 255, 255), "item") +base("void_stabilizer", (40, 40, 80, 255), (150, 150, 255, 255), "item") +base("quantum_lattice", (30, 30, 60, 255), (0, 200, 220, 255), "block") +base("renegade_glass", (0, 59, 111, 220), (120, 180, 255, 255), "block") + +print("textures generated") \ No newline at end of file diff --git a/tools/patches/Patcher.java b/tools/patches/Patcher.java new file mode 100644 index 0000000..72e1282 --- /dev/null +++ b/tools/patches/Patcher.java @@ -0,0 +1,78 @@ +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldInsnNode; +import org.objectweb.asm.tree.JumpInsnNode; +import org.objectweb.asm.tree.LabelNode; +import org.objectweb.asm.tree.MethodNode; + +import java.nio.file.Files; +import java.nio.file.Paths; + +/** + * Strips Create Ore Excavation's guarded ProcessingOutput type-wrapper registration + * from KubeJSExcavation.registerTypeWrappers. + * + * Upstream guard: `if (!CreateOreExcavation.kubeJSCreate) register(ProcessingOutput, ...)` + * — but kubeJSCreate is assigned in the @Mod constructor while KubeJS invokes plugin + * callbacks during KubeJS's own construction. FML constructs independent mods on + * parallel workers, so the flag may still be false when the callback runs → duplicate + * wrapper vs kubejs-create → "Wrapper already exists!" crash (nondeterministic). + * + * This pack always ships kubejs-create, so COE never needs its own wrapper: remove + * the whole guarded block (getstatic/ifne/…/invokevirtual) up to its branch-target + * label. Later frames stay valid because operand stack at that label is unchanged. + */ +public class Patcher { + public static void main(String[] args) throws Exception { + if (args.length != 2) { + System.err.println("usage: Patcher "); + System.exit(2); + } + byte[] bytes = Files.readAllBytes(Paths.get(args[0])); + ClassNode cn = new ClassNode(); + new ClassReader(bytes).accept(cn, 0); + + boolean found = false; + for (MethodNode mn : cn.methods) { + if (!"registerTypeWrappers".equals(mn.name)) continue; + found = true; + + AbstractInsnNode start = null; + for (AbstractInsnNode n : mn.instructions) { + if (n instanceof FieldInsnNode f + && n.getOpcode() == Opcodes.GETSTATIC + && "kubeJSCreate".equals(f.name)) { + start = n; + break; + } + } + if (start == null) throw new IllegalStateException("kubeJSCreate guard not found"); + + AbstractInsnNode jump = start.getNext(); + if (!(jump instanceof JumpInsnNode) || jump.getOpcode() != Opcodes.IFNE) { + throw new IllegalStateException("expected IFNE after getstatic"); + } + LabelNode target = ((JumpInsnNode) jump).label; + + int removed = 0; + AbstractInsnNode n = start; + while (n != target) { + AbstractInsnNode next = n.getNext(); + mn.instructions.remove(n); + n = next; + removed++; + if (n == null) throw new IllegalStateException("branch target not reached"); + } + System.out.println("patched " + cn.name + "." + mn.name + + ": removed " + removed + " instructions up to branch target"); + } + if (!found) throw new IllegalStateException("registerTypeWrappers not found"); + + ClassWriter cw = new ClassWriter(0); + cn.accept(cw); + Files.write(Paths.get(args[1]), cw.toByteArray()); + } +} diff --git a/tools/patches/build_patched_coe.sh b/tools/patches/build_patched_coe.sh new file mode 100644 index 0000000..194de65 --- /dev/null +++ b/tools/patches/build_patched_coe.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +# SCICRAFT — rebuild createoreexcavation with the kubejs-create wrapper race fixed. +# +# Why: COE 1.21.1-1.6.8 decides in KubeJSExcavation.registerTypeWrappers whether to +# register its own ProcessingOutput rhino wrapper, based on a flag set in the @Mod +# constructor. KubeJS runs plugin callbacks during ITS construction; FML constructs +# independent mods on parallel workers → race. If the callback wins, both COE and +# kubejs-create register ProcessingOutput → "Wrapper already exists!" boot crash. +# +# Fix: this pack always ships kubejs-create (scripts use event.recipes.create.*), +# so strip COE's guarded registration entirely via ASM (see Patcher.java). +# +# Usage: tools/patches/build_patched_coe.sh (from repo root) +set -euo pipefail +cd "$(dirname "$0")" + +COE_URL="https://cdn.modrinth.com/data/ResbpANg/versions/tivxiPTo/createoreexcavation-1.21-1.6.8.jar" +OUT_JAR="createoreexcavation-1.21-1.6.8-patched.jar" +WORK="$(mktemp -d)" +trap 'rm -rf "$WORK"' EXIT + +echo "[patch] downloading original..." +curl -fsSL -o "$WORK/coe.jar" "$COE_URL" +unzip -q "$WORK/coe.jar" "com/tom/createores/kubejs/KubeJSExcavation.class" -d "$WORK/x" + +if [ ! -f asm.jar ]; then + echo "[patch] fetching ASM..." + curl -fsSL -o asm.jar https://repo1.maven.org/maven2/org/ow2/asm/asm/9.7.1/asm-9.7.1.jar + curl -fsSL -o asm-tree.jar https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.7.1/asm-tree-9.7.1.jar +fi + +echo "[patch] compiling + running patcher..." +javac -cp asm.jar:asm-tree.jar Patcher.java +java -cp .:asm.jar:asm-tree.jar Patcher \ + "$WORK/x/com/tom/createores/kubejs/KubeJSExcavation.class" \ + "$WORK/KubeJSExcavation.class" + +echo "[patch] rebuilding jar..." +cp "$WORK/coe.jar" "$OUT_JAR" +mkdir -p "$WORK/stage/com/tom/createores/kubejs" +cp "$WORK/KubeJSExcavation.class" "$WORK/stage/com/tom/createores/kubejs/" +(cd "$WORK/stage" && jar uf "$OLDPWD/$OUT_JAR" com) + +echo "[patch] verifying: patched class inside jar differs, rest untouched..." +unzip -p "$OUT_JAR" com/tom/createores/kubejs/KubeJSExcavation.class > "$WORK/after.class" +cmp -s "$WORK/x/com/tom/createores/kubejs/KubeJSExcavation.class" "$WORK/after.class" \ + && { echo "[patch] ERROR: class unchanged"; exit 1; } +sha512sum "$OUT_JAR" +echo "[patch] done → $OUT_JAR" diff --git a/tools/patches/createoreexcavation-1.21-1.6.8-patched.jar b/tools/patches/createoreexcavation-1.21-1.6.8-patched.jar new file mode 100644 index 0000000..0fcab75 Binary files /dev/null and b/tools/patches/createoreexcavation-1.21-1.6.8-patched.jar differ diff --git a/tools/patches/worldportal-neoforge-0.0.10+1.21-patched.jar b/tools/patches/worldportal-neoforge-0.0.10+1.21-patched.jar new file mode 100644 index 0000000..997ad46 Binary files /dev/null and b/tools/patches/worldportal-neoforge-0.0.10+1.21-patched.jar differ diff --git a/tools/pterodactyl-start.sh b/tools/pterodactyl-start.sh new file mode 100755 index 0000000..a66aea2 --- /dev/null +++ b/tools/pterodactyl-start.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# Pterodactyl NeoForge 21.1.248 startup for SciCraft +# Egg: ghcr.io/pterodactyl/yolks:java_21 +# Startup Command in Panel: bash tools/pterodactyl-start.sh +# Or: bash run.sh (if you prefer the egg's default) +set -e + +echo "======================================" +echo " SciCraft - Pterodactyl Bootstrap" +echo " NeoForge 21.1.248 | packwiz" +echo "======================================" + +# 1. Install packwiz mods if pack.toml changed +if [ ! -f packwiz-installer-bootstrap.jar ]; then + echo "[Ptero] Downloading packwiz installer..." + curl -fsSL -o packwiz-installer-bootstrap.jar https://github.com/packwiz/packwiz-installer-bootstrap/releases/latest/download/packwiz-installer-bootstrap.jar +fi + +echo "[Ptero] Syncing server pack..." +# Use local server_pack/pack.toml if present (Pterodactyl clones the repo), else fall back to git raw +if [ -f server_pack/pack.toml ]; then + java -jar packwiz-installer-bootstrap.jar -g -s server server_pack/pack.toml +elif [ -f pack.toml ]; then + java -jar packwiz-installer-bootstrap.jar -g -s server pack.toml +else + # Fallback to remote (for Hytale misplaced folder) + java -jar packwiz-installer-bootstrap.jar -g -s server https://git.mithraic.cloud/ad3laid3/SciCraft/raw/branch/main/server_pack/pack.toml +fi + +# 2. Install NeoForge server if missing (generates user_jvm_args.txt, unix_args.txt, run.sh) +if [ ! -f libraries/net/neoforged/neoforge/21.1.248/unix_args.txt ]; then + echo "[Ptero] Installing NeoForge 21.1.248 server..." + if [ ! -f neoforge-21.1.248-installer.jar ]; then + curl -fsSL -o neoforge-21.1.248-installer.jar https://maven.neoforged.net/releases/net/neoforged/neoforge/21.1.248/neoforge-21.1.248-installer.jar + fi + java -jar neoforge-21.1.248-installer.jar --installServer +fi + +# 3. Ensure user_jvm_args.txt exists and respects Pterodactyl memory +# Pterodactyl injects {{SERVER_MEMORY}} as env var SERVER_MEMORY (MB) +# Preset: medium tier (4G-8G). Adjust via presets/low|high if needed +if [ ! -f user_jvm_args.txt ]; then + echo "[Ptero] Creating user_jvm_args.txt from preset..." + if [ -f presets/medium/server/jvm-flags.txt ]; then + cp presets/medium/server/jvm-flags.txt user_jvm_args.txt + elif [ -f server_pack/../presets/medium/server/jvm-flags.txt ]; then + cp server_pack/../presets/medium/server/jvm-flags.txt user_jvm_args.txt + else + # Fallback minimal + echo "-Xms4G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -Dlog4j2.formatMsgNoLookups=true" > user_jvm_args.txt + fi +fi + +# Inject Pterodactyl memory if available (SERVER_MEMORY is in MB) +if [ -n "$SERVER_MEMORY" ]; then + echo "[Ptero] Detected Pterodactyl SERVER_MEMORY=${SERVER_MEMORY}M, patching user_jvm_args.txt..." + # Replace -Xmx value with Pterodactyl's allocation + sed -i -E "s/-Xmx[0-9]+[GM]/-Xmx${SERVER_MEMORY}M/g" user_jvm_args.txt + # Ensure -Xms is half of max or 4G min + if grep -q "MaxRAMPercentage" user_jvm_args.txt; then + sed -i -E "s/-XX:MaxRAMPercentage=[0-9.]+//g" user_jvm_args.txt + fi +fi + +# 4. Ensure run.sh is executable and correct +if [ ! -f run.sh ]; then + echo "[Ptero] run.sh missing, regenerating..." + echo '#!/usr/bin/env sh' > run.sh + echo 'java @user_jvm_args.txt @libraries/net/neoforged/neoforge/21.1.248/unix_args.txt "$@"' >> run.sh +fi +chmod +x run.sh + +echo "======================================" +echo " Starting SciCraft NeoForge 21.1.248" +echo " user_jvm_args.txt: $(cat user_jvm_args.txt | tr '\n' ' ')" +echo " unix_args.txt exists: $(test -f libraries/net/neoforged/neoforge/21.1.248/unix_args.txt && echo yes || echo no)" +echo "======================================" + +# Pterodactyl expects to keep PID 1 and handle signals, so exec run.sh +exec bash run.sh nogui diff --git a/tools/sync_kubejs.sh b/tools/sync_kubejs.sh new file mode 100755 index 0000000..a279f51 --- /dev/null +++ b/tools/sync_kubejs.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# SCICRAFT — sync KubeJS story system from server_pack to client_pack. +# Run after editing anything under server_pack/kubejs (or STORY/*.md → gen_story.py). +set -euo pipefail +cd "$(dirname "$0")/.." + +rm -rf client_pack/kubejs +cp -r server_pack/kubejs client_pack/kubejs + +echo "kubejs synced to client_pack" +echo "verify: diff -r server_pack/kubejs client_pack/kubejs && echo IDENTICAL" \ No newline at end of file diff --git a/tools/validate_pack.py b/tools/validate_pack.py new file mode 100644 index 0000000..9032a8b --- /dev/null +++ b/tools/validate_pack.py @@ -0,0 +1,200 @@ +#!/usr/bin/env python3 +"""Validate a packwiz pack: index integrity, download resolvability, CF export completeness. + +Stdlib-only (no tomllib) so it runs on Python 3.9 in CI containers. +Parses the limited, machine-generated TOML subset used by packwiz metadata. +""" + +import glob +import hashlib +import json +import os +import re +import sys +import urllib.request +import zipfile + +PW_TOML = re.compile(r"^(\w[\w.-]*)\s*=\s*(?:\"([^\"]*)\"|([0-9]+))", re.M) +SECTION = re.compile(r"^\[\[?([\w.\-]+)\]\]?$", re.M) + +# Content-addressed CDNs are immutable; full-hash them opportunistically only. +# Everything else (git raw links, GitHub releases) can drift — verify bytes fully. +FULL_HASH_HOSTS = () + + +def parse_toml(path): + """Parse the minimal TOML subset packwiz emits: scalars + sections + array-of-tables.""" + data = {} + current = data + array_section = None + with open(path, encoding="utf-8") as fh: + for line in fh: + line = line.strip() + if not line or line.startswith("#"): + continue + m = SECTION.match(line) + if m: + name = m.group(1) + if line.startswith("[["): + key = name + array_section = key + data.setdefault(key, []) + current = {} + data[key].append(current) + else: + key = name.replace("-", "_").replace(".", "_") + if key not in data or not isinstance(data[key], dict): + data[key] = {} + current = data[key] + array_section = None + continue + m = PW_TOML.match(line) + if m: + key = m.group(1).replace("-", "_") + value = m.group(2) if m.group(2) is not None else m.group(3) + current[key] = value + return data + + +def check_integrity(pack_dir): + index = parse_toml(os.path.join(pack_dir, "index.toml")) + indexed = {e.get("file") for e in index.get("files", []) if e.get("file")} + mods = [os.path.basename(f) for f in glob.glob(os.path.join(pack_dir, "mods", "*.pw.toml"))] + missing = [f for f in mods if "mods/%s" % f not in indexed] + if missing: + print("ERROR: pw.toml files missing from index.toml:", missing) + sys.exit(1) + extra = [f for f in indexed if f.startswith("mods/") and f not in {"mods/%s" % m for m in mods}] + if extra: + print("ERROR: index.toml entries missing from mods/:", extra) + sys.exit(1) + errors = 0 + for f in mods: + data = parse_toml(os.path.join(pack_dir, "mods", f)) + d = data.get("download", {}) + if not d or not d.get("hash"): + print("ERROR: %s missing [download] hash" % f) + errors += 1 + continue + if not d.get("url") and not d.get("mode", "").startswith("metadata:"): + print("ERROR: %s missing [download] url or metadata mode" % f) + errors += 1 + if d.get("url", "").startswith("http://"): + print("ERROR: %s uses insecure http url" % f) + errors += 1 + hf = d.get("hash-format", "sha512") + if not re.fullmatch(r"[0-9a-f]+", d["hash"]): + print("ERROR: %s hash not hex (%s)" % (f, hf)) + errors += 1 + if errors: + sys.exit(1) + print("OK: %d mods indexed, all have [download] url or metadata source" % len(mods)) + + +def check_sanity(pack_dir): + bad = [] + url_count = 0 + meta_count = 0 + for f in sorted(glob.glob(os.path.join(pack_dir, "mods", "*.pw.toml"))): + d = parse_toml(f).get("download", {}) + if d.get("url"): + url_count += 1 + elif d.get("mode", "").startswith("metadata:"): + meta_count += 1 + else: + bad.append(f) + if bad: + print("ERROR: mods without download.url or metadata mode:") + for f in bad: + print(" " + f) + sys.exit(1) + print("OK: %d direct urls + %d metadata sources = all mods resolvable" % (url_count, meta_count)) + + +def check_cf(pack_dir, zip_path): + z = zipfile.ZipFile(zip_path) + manifest = json.loads(z.read("manifest.json")) + pids = {f["projectID"] for f in manifest["files"]} + ov = {n.split("overrides/mods/")[1] for n in z.namelist() if n.startswith("overrides/mods/")} + missing = [] + for f in glob.glob(os.path.join(pack_dir, "mods", "*.pw.toml")): + data = parse_toml(f) + if data.get("side") == "server": + continue + fn = data.get("filename") + cf = data.get("update_curseforge", {}).get("project_id") + if cf: + if int(cf) not in pids: + missing.append(fn) + elif fn not in ov: + missing.append(fn) + if missing: + print("ERROR: mods missing from CurseForge export:", missing) + sys.exit(1) + print("OK: CurseForge export complete (%d manifest files + %d overrides)" % (len(pids), len(ov))) + + +def _fetch(url, timeout=30): + req = urllib.request.Request(url, method="GET", headers={"User-Agent": "scicraft-validate"}) + with urllib.request.urlopen(req, timeout=timeout) as resp: + return resp.read() + + +def check_remote(pack_dir): + """Verify every direct-URL mod is reachable; fully hash-verify non-CDN URLs. + + Catches the two deployment failure modes seen in practice: + 1. patched jars whose raw git link 404s (never pushed / branch renamed) + 2. remote drift: served bytes no longer match the index hash + """ + from urllib.parse import urlparse + + errors = 0 + checked = hashed = 0 + for f in sorted(glob.glob(os.path.join(pack_dir, "mods", "*.pw.toml"))): + d = parse_toml(f).get("download", {}) + url = d.get("url") + if not url or d.get("mode", "").startswith("metadata:"): + continue + name = os.path.basename(f) + host = urlparse(url).netloc + try: + body = _fetch(url) + except Exception as e: + print("ERROR: %s unreachable (%s): %s" % (name, host, e)) + errors += 1 + continue + checked += 1 + if host not in FULL_HASH_HOSTS: + digest = hashlib.sha512(body).hexdigest() + expected = d.get("hash", "") + if d.get("hash-format") == "sha512" and digest != expected: + print("ERROR: %s remote hash mismatch (%s)" % (name, host)) + print(" expected %s" % expected[:32] + "...") + print(" remote %s..." % digest[:32]) + errors += 1 + else: + hashed += 1 + if errors: + sys.exit(1) + print("OK: %d direct URLs reachable, %d byte-for-byte hash-verified" % (checked, hashed)) + + +def main(): + if len(sys.argv) < 2: + print("usage: validate_pack.py [cf ] [remote]", file=sys.stderr) + sys.exit(2) + pack_dir = sys.argv[1] + cmd = sys.argv[2] if len(sys.argv) > 2 else "integrity" + if cmd == "cf": + check_cf(pack_dir, sys.argv[3]) + elif cmd == "sanity": + check_sanity(pack_dir) + elif cmd == "remote": + check_remote(pack_dir) + else: + check_integrity(pack_dir) + + +if __name__ == "__main__": + main() \ No newline at end of file