# Heck .. is a Minecraft 1.18.2 Forge modpack. It features a little bit of everything: Technology, magic, exploration and building / decoration mods. The primary use case for this pack is for a private server we're running for friends, fellow VTubers, and their friends. *Heck* comes with a modest amount of configuration changes and [KubeJS](https://kubejs.com/) scripts that aim to make our mods work together well, fix minor issues, improve balance, change and add recipes, and most importantly unify most items and materials in the pack which would otherwise exist in multiple formats. We also have a couple of texture and localization changes to make things fit together well. - For a **list of mods** including short descriptions, see [`docs/MODS.md`](docs/MODS.md). ## Download / Installation The modpack is currently only available as a **self-updating** PolyMC / MultiMC instance. - Download and install [PolyMC] (recommended) or [MultiMC], if you don't have it already. These are third-party Minecraft launchers that simplify managing multiple instances of the game. - Make sure you have **Java 17** (or higher) installed on your system. You can check this by going to "Settings" in your launcher and go to "Java". When you click "Auto-detect" and a version `17.x.x` appears, you can select it here. If not, you can download the right [Eclipse Temurin](https://adoptium.net/temurin/releases/) version, and install it. These are an alternative to the "official" Oracle Java releases, though I recommend them. - To add *Heck* to the launcher, click "Add Instance", select "Import from zip", and paste this: [`https://meowface.org/copygirl/Heck.zip`](https://meowface.org/copygirl/Heck.zip) - On first launch, [packwiz] will download all mods and other modpack files. On future launches, it will automatically check for updates and apply them. [PolyMC]: https://polymc.org/ [MultiMC]: https://multimc.org/ [packwiz]: https://github.com/packwiz/packwiz ## Server Setup Grab the latest [packwiz bootstrapper](https://github.com/packwiz/packwiz-installer-bootstrap/releases) and [Forge installer](https://files.minecraftforge.net/net/minecraftforge/forge/index_1.18.2.html) - the recommended version can be found in our [`pack.toml`](pack.toml). The entire installation process on the server side will look a little something like the following, assuming you have Java 17 ready and set up as the default. Otherwise just point any of the `java` commands to the correct executable. ```sh # Download the required bootstrapper and installer. # Adjust if necessary, such as if a new version is available or required. wget https://github.com/packwiz/packwiz-installer-bootstrap/releases/download/v0.0.3/packwiz-installer-bootstrap.jar wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.1.68/forge-1.18.2-40.1.68-installer.jar # Download modpack files. Also run this to update. java -jar packwiz-installer-bootstrap.jar -g -s server https://meowface.org/copygirl/heck/pack.toml # Download Minecraft and Forge files. java -jar forge-1.18.2-40.1.68-installer.jar --installServer # Now do the usual, accept the EULA, edit your server # properties, run your startup script as you're used to. java -jar -Xmx6G -Xms6G forge-1.18.2-40.1.68.jar nogui ``` ## Development Working on the modpack requires the [packwiz] tool, so be sure to download it first. ```sh packwiz update --all # Update all mods to latest. git commit [...] # Now you can commit your changes.. git push # ..and push them to the repository. ``` It should be noted that packwiz will keep an `index.toml` file and update `pack.toml` to keep track of it, mirroring any changes. However, since these changes are basically build artifacts, we decided to not include them in the repository. ```sh # Make sure git will not see any changes to pack.toml. # This is to avoid accidentally committing the [index] section. git update-index --assume-unchanged pack.toml ``` To test changes tocally, you can run `packwiz serve` to deploy a simple webserver that just hosts the modpack files. Setting your instance's pre-launch command to the following command will allow it to update from local files when starting up. ```sh "$INST_JAVA" -jar packwiz-installer-bootstrap.jar http//localhost:8080/pack.toml ``` While the game is running, you can use `rsync` to synchronize the `kubejs/` folder after making changes. This allows you to make, for example, recipe changes and test them out in-game, without restarting, simply by running the `/reload` command. ```sh # Just replace $PATH_TO_INSTANCE with your instance's location. rsync -r --delete kubejs $PATH_TO_INSTANCE/.minecraft ```