61 lines
No EOL
2 KiB
Markdown
61 lines
No EOL
2 KiB
Markdown
# 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 <CF_ID> -y
|
|
packwiz --dir client_pack curseforge add --addon-id <CF_ID> -y
|
|
packwiz --dir server_pack modrinth add <MR_SLUG_OR_ID> -y
|
|
packwiz --dir client_pack modrinth add <MR_SLUG_OR_ID> -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 "<Name>" "<URL>" --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`. |