Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,27 @@ mscs-location=/opt/mscs
; Location of world files.
mscs-worlds-location=/opt/mscs/worlds

; Location of version JSON cache files.
mscs-versions-location=/opt/mscs/versions

; URL to download the version_manifest.json file.
mscs-versions-url=https://launchermeta.mojang.com/mc/game/version_manifest.json

; Location of the version_manifest.json file.
mscs-versions-json=/opt/mscs/version_manifest.json
mscs-versions-json=/opt/mscs/versions/version_manifest.json

; Length in minutes to keep the version_manifest.json file before updating.
mscs-versions-duration=30

; URL to download the PaperMC project information file.
mscs-paper-versions-url=https://fill.papermc.io/v3/projects/paper

; Location of the PaperMC project information file.
mscs-paper-project-json=/opt/mscs/versions/paper_project.json

; Default PaperMC build channel (STABLE, BETA, or ALPHA).
mscs-default-paper-channel=STABLE

; Length in minutes to keep lock files before removing.
mscs-lockfile-duration=1440

Expand Down Expand Up @@ -275,6 +287,13 @@ mscs-server-command=$JAVA -Xms$INITIAL_MEMORY -Xmx$MAXIMUM_MEMORY $JVM_ARGS -jar

; Restart the server after a crash (default disabled).
mscs-restart-after-crash=false

; Assign the server type (vanilla or papermc).
mscs-server-type=vanilla

; Assign the PaperMC build channel (STABLE, BETA, or ALPHA).
; Only used when mscs-server-type=papermc.
mscs-paper-channel=STABLE
```

The following variables may be used in some of the values of the above keys:
Expand Down
48 changes: 32 additions & 16 deletions docs/mscs/adjusting-world-server-properties/papermc.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,55 @@
---
layout: default
title: PaperMC
title: PaperMC
nav_order: 4
parent: Adjusting World & Server Properties
permalink: /docs/mscs/adjusting-world-server-properties/papermc
---

# PaperMC

Follow the instructions below to set [PaperMC][papermc] up for a world that already exists
(see [getting started](getting-started)).
MSCS supports [PaperMC][papermc] with automatic updates via the PaperMC API. When configured,
`mscs update` will automatically download the latest build for your chosen Minecraft version and
build channel — no manual URL lookup required.

Make sure the world is not running. Find the URL for the version and build number for PaperMC that you wish to run from [their site][papermc]. Then, set the server download URL in the world's `mscs.properties`:
## Setup

Make sure the world is not running. Add the following to the world's `mscs.properties`:

```ini
mscs-server-url=https://papermc.io/api/v2/projects/paper/versions/1.16.5/builds/438/downloads/paper-1.16.5-438.jar
mscs-server-type=papermc
```

Set the JAR to use in the world's `mscs.properties`:
That's it. On the next `mscs start` or `mscs update <world>`, MSCS will automatically fetch and
download the latest stable PaperMC build for the current Minecraft version.

```ini
mscs-server-jar=paper-1.16.5.jar
```
## Properties

Set the server version you want in the world's `mscs.properties`. When you want to update, you can change the version:
| Property | Default | Description |
|---|---|---|
| `mscs-server-type` | `vanilla` | Set to `papermc` to enable PaperMC auto-update |
| `mscs-server-version` | latest stable | Pin to a specific Minecraft version (e.g. `1.21.4`). Omit to always track the latest version supported by PaperMC. |
| `mscs-paper-channel` | `STABLE` | Build channel: `STABLE`, `BETA`, or `ALPHA` |

```ini
mscs-client-version=1.16.5
mscs-server-version=1.16.5
## Updating

Run `mscs update <world>` to download the latest PaperMC build for the configured version and
channel. To force a full re-download and clear the cached build information:

```bash
mscs force-update <world>
```

That's it! When you start the world, it should now be running PaperMC.
## Manual Override

The PaperMC directories will be created in the world folder.
If you need a specific build, you can bypass the auto-update system by setting `mscs-server-url`
explicitly. When this property is set, MSCS uses it directly instead of querying the PaperMC API.

Note: You will need to change these same values whenever you want to upgrade to the latest version. PaperMC is unfortunately no longer providing a stable link to the latest version of their software, so you will need to modify these values by hand.
```ini
mscs-server-type=papermc
mscs-server-version=1.21.4
mscs-server-jar=paper-1.21.4-116.jar
mscs-server-url=https://fill-data.papermc.io/v1/objects/abc123.../paper-1.21.4-116.jar
```

[papermc]: https://papermc.io/
15 changes: 9 additions & 6 deletions docs/mscs/updating.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,14 @@ latest Minecraft version. Note that you can specify if you want to update to the
latest Minecraft snapshot by specifying `mscs-version-type` as `release` (default) or `snapshot` in the world's
`mscs.properties`.

### Modded Server
### PaperMC

If you are running a modded Minecraft server (i.e. one where you specified `mscs-server-jar` to something like SpigotMC
or Forge), the `mscs update` command will not work. This is because the `mscs update` command functions by looking at
the `version_manifest.json` file located in `/opt/mscs/version_manifest.json` that is downloaded from Mojang.
If you are running a PaperMC world with `mscs-server-type=papermc`, you can use `mscs update <world>` just like a
vanilla server. MSCS will automatically fetch and download the latest build from the PaperMC API. See the
[PaperMC guide](adjusting-world-server-properties/papermc) for setup details.

We recommend you follow the instructions listed for [PaperMC](adjusting-world-server-properties/papermc) to update
modded servers, or re-download the mod to the latest version if all else fails.
### Other Modded Servers

If you are running another modded server (e.g. Forge, SpigotMC, Fabric) where you have manually set `mscs-server-jar`,
the `mscs update` command will not work. You will need to download the updated server JAR manually and update the
relevant properties in `mscs.properties`.
2 changes: 1 addition & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Features include:
- Run multiple Minecraft worlds.
- Start, stop, and restart single or multiple worlds.
- Create, delete, disable, and enable worlds.
- Includes support for additional server types: Forge, BungeeCord, SpigotMC, etc.
- Includes support for additional server types including PaperMC (with automatic updates), Forge, BungeeCord, SpigotMC, and more.
- Users automatically notified of important server events.
- LSB and systemd compatible init script, allows for seamless integration with your server's startup and shutdown
sequences.
Expand Down