add multimc instance scaffold, actual readme
All checks were successful
/ deploy (push) Successful in 3s
All checks were successful
/ deploy (push) Successful in 3s
will have to update the deploy script myself, but I can handle that.
This commit is contained in:
parent
bfb41b9330
commit
246d408eca
8 changed files with 197 additions and 1 deletions
|
@ -1,8 +1,11 @@
|
|||
# .packwizignore follows the same format as .gitignore, and can be used to exclude unwanted files from pack exports
|
||||
# See https://git-scm.com/docs/gitignore
|
||||
|
||||
# See <https://git-scm.com/docs/gitignore>
|
||||
|
||||
# Exclude README
|
||||
|
||||
/README.md
|
||||
/LICENSE.txt
|
||||
|
||||
venv
|
||||
requirements.txt
|
||||
|
@ -13,3 +16,5 @@ style.css
|
|||
*.py
|
||||
|
||||
.forgejo
|
||||
|
||||
multimc-instance
|
||||
|
|
13
LICENSE.txt
Normal file
13
LICENSE.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
103
README.md
Normal file
103
README.md
Normal file
|
@ -0,0 +1,103 @@
|
|||
# /vrg/ crawler
|
||||
|
||||
If you're just here to use this modpack, see [the website](https://crawler.vrg.party).
|
||||
|
||||
This is all the glue code and infrastructure to make the pack work. Read on if
|
||||
you want the gory details.
|
||||
|
||||
## Goals
|
||||
|
||||
- Turn minecraft into an acceptable VR co-op dungeon crawler.
|
||||
- Smooth over as many of the implementation details (including the fact it's a
|
||||
minecraft mod pack) as much as possible.
|
||||
- Auto-update clients automatically from the server config
|
||||
- Auto-update the canonical server from this repo.
|
||||
- Patch around the awful steamVR bindings setup experience.
|
||||
|
||||
## How It Works
|
||||
|
||||
This repo is primarily a [packwiz](https://packwiz.infra.link/)-based mod pack.
|
||||
All the mods are pinned to specific Modrinth versions and the configs (client
|
||||
and server) are versioned directly in the modpack. A deploy script on the
|
||||
webserver syncs this repo state to <https://crawler.vrg.party/pack.toml>.
|
||||
|
||||
### MultiMC instance
|
||||
|
||||
The MultiMC / PolyMC / Prism Launcher compatible instance zip is put together
|
||||
with minimal configuration in the `multimc-instance` dir. The instance uses
|
||||
[packwiz-installer](https://packwiz.infra.link/tutorials/installing/packwiz-installer/)
|
||||
as a pre-launch task to fetch the pack.toml file and actually download all the
|
||||
mods for you, including updating/removing mods as needed.
|
||||
|
||||
The pack currently also autojoins the crawler.vrg.party server on launch. I _think_
|
||||
this is nice and saves a few clicks, but could be convinced otherwise.
|
||||
|
||||
### Vivecraft Config
|
||||
|
||||
TODO
|
||||
|
||||
### SteamVR Bindings
|
||||
|
||||
TODO
|
||||
|
||||
### Mod Descriptions
|
||||
|
||||
Somehow, there is no existing tool that really shows you what's in a giant
|
||||
modpack like this one. Sure you can stare at the multimc mods UI, or even look
|
||||
at the flat list of mods in a modrinth modpack, but that's not very helpful;
|
||||
it's at best an alphabetical list, all the library mods you don't really care
|
||||
about are mixed in there, and it's hard to tell what's actually important.
|
||||
|
||||
So, I made `collect-mod-descriptions.py` to gather and update mod descriptions
|
||||
into a nice html page. It involves manually categorizing all the mods by their
|
||||
modrinth slug, which is a bit of a pain, but it's way more useful than a flat
|
||||
list (or even the author-provided modrinth tags, which aren't that good).
|
||||
|
||||
To run it, first setup the environment:
|
||||
|
||||
```sh
|
||||
python3 -m venv venv
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
Then run:
|
||||
|
||||
```sh
|
||||
python3 collect-mod-descriptions.py mods mods.html
|
||||
```
|
||||
|
||||
The script will complain if some of the mods in packwiz aren't tracked in the
|
||||
python file itself (for manual categorization).
|
||||
|
||||
## Server
|
||||
|
||||
Since this is packwiz, you can use [itzg Minecraft Docker
|
||||
image](https://docker-minecraft-server.readthedocs.io/en/latest/mods-and-plugins/packwiz/)
|
||||
to (relatively) easily deploy a server using this pack.
|
||||
|
||||
One difficulty is that this pack uses [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat)
|
||||
which needs UDP 24454 exposed to work. With docker-compose you can use:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
mc:
|
||||
ports:
|
||||
- 25565:25565 # minecraft TCP
|
||||
- 24454:24454/udp # simple voice chat UDP
|
||||
```
|
||||
|
||||
to do this.
|
||||
|
||||
## Web Deployment
|
||||
|
||||
I set up a forgejo workflow to run on push to master. The workflow just sends
|
||||
an HTTP POST to the webserver, where I set up a CGI script (through nginx and
|
||||
fcgiwrap) that does the dirty work (git pull, update the multimc zip file); I
|
||||
didn't want to give direct SSH access to the server for this since it's not
|
||||
well isolated. Janky setup, but works for me.
|
||||
|
||||
## Contributing
|
||||
|
||||
If you'd like to contribute to this modpack or suggest changes, post in [the
|
||||
thread](https://vrg.party). We'll see it. Upload your `git patch` output to
|
||||
pastebin or whatever, if you're autistic enough to do that.
|
BIN
multimc-instance/.minecraft/packwiz-installer-bootstrap.jar
Normal file
BIN
multimc-instance/.minecraft/packwiz-installer-bootstrap.jar
Normal file
Binary file not shown.
BIN
multimc-instance/.minecraft/servers.dat
Normal file
BIN
multimc-instance/.minecraft/servers.dat
Normal file
Binary file not shown.
BIN
multimc-instance/crawlericon.png
Normal file
BIN
multimc-instance/crawlericon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 234 KiB |
23
multimc-instance/instance.cfg
Normal file
23
multimc-instance/instance.cfg
Normal file
|
@ -0,0 +1,23 @@
|
|||
InstanceType=OneSix
|
||||
JoinServerOnLaunch=true
|
||||
JoinServerOnLaunchAddress=crawler.vrg.party
|
||||
JoinSingleplayerWorldOnLaunch=false
|
||||
JoinWorldOnLaunch=true
|
||||
JvmArgs=-XX:+UseZGC
|
||||
MaxMemAlloc=8192
|
||||
MinMemAlloc=8192
|
||||
OverrideCommands=true
|
||||
OverrideConsole=false
|
||||
OverrideGameTime=false
|
||||
OverrideJavaArgs=true
|
||||
OverrideJavaLocation=false
|
||||
OverrideMemory=true
|
||||
OverrideNativeWorkarounds=false
|
||||
OverrideWindow=false
|
||||
PermGen=128
|
||||
PostExitCommand=
|
||||
PreLaunchCommand="$INST_JAVA" -jar packwiz-installer-bootstrap.jar https://crawler.vrg.party/pack.toml
|
||||
WrapperCommand=
|
||||
iconKey=crawlericon
|
||||
name=/vrg/ crawler
|
||||
notes=
|
52
multimc-instance/mmc-pack.json
Normal file
52
multimc-instance/mmc-pack.json
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"components": [
|
||||
{
|
||||
"cachedName": "LWJGL 3",
|
||||
"cachedVersion": "3.3.1",
|
||||
"cachedVolatile": true,
|
||||
"dependencyOnly": true,
|
||||
"uid": "org.lwjgl3",
|
||||
"version": "3.3.1"
|
||||
},
|
||||
{
|
||||
"cachedName": "Minecraft",
|
||||
"cachedRequires": [
|
||||
{
|
||||
"equals": "3.3.1",
|
||||
"suggests": "3.3.1",
|
||||
"uid": "org.lwjgl3"
|
||||
}
|
||||
],
|
||||
"cachedVersion": "1.20.1",
|
||||
"important": true,
|
||||
"uid": "net.minecraft",
|
||||
"version": "1.20.1"
|
||||
},
|
||||
{
|
||||
"cachedName": "Intermediary Mappings",
|
||||
"cachedRequires": [
|
||||
{
|
||||
"equals": "1.20.1",
|
||||
"uid": "net.minecraft"
|
||||
}
|
||||
],
|
||||
"cachedVersion": "1.20.1",
|
||||
"cachedVolatile": true,
|
||||
"dependencyOnly": true,
|
||||
"uid": "net.fabricmc.intermediary",
|
||||
"version": "1.20.1"
|
||||
},
|
||||
{
|
||||
"cachedName": "Fabric Loader",
|
||||
"cachedRequires": [
|
||||
{
|
||||
"uid": "net.fabricmc.intermediary"
|
||||
}
|
||||
],
|
||||
"cachedVersion": "0.16.0",
|
||||
"uid": "net.fabricmc.fabric-loader",
|
||||
"version": "0.16.0"
|
||||
}
|
||||
],
|
||||
"formatVersion": 1
|
||||
}
|
Loading…
Reference in a new issue