Downloads a Minecraft server from mcjars, accepts the EULA, applies your config files and runs it.
jobs:
server:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: minecraft
uses: YueMi-Development/Minecraft-Server-Action@v1
with:
server-type: PAPER
minecraft-version: '1.21.4'
files: |
server.properties
plugins/Pin to v1.0.0 instead of v1 to pin this exact release.
| Input | Default | Description |
|---|---|---|
server-type |
PAPER |
Server type, case-insensitive. |
minecraft-version |
latest |
Version, e.g. 1.21.4, or latest / latest-snapshot. |
build |
'' |
Pin a build name (e.g. #232) or UUID. Empty = newest build. |
java-version |
'' |
Java version. Empty = detected automatically. |
files |
'' |
Newline-separated repo paths to copy into the server dir. |
server-dir |
server |
Directory the server runs in. |
run-timeout |
10m |
How long the server runs before it is stopped. |
min-memory |
512M |
Initial heap size. |
max-memory |
2G |
Maximum heap size. |
upload-artifact |
true |
Upload the server dir as an artifact. |
| Output | Description |
|---|---|
build-id |
Resolved build UUID. |
build-uuid |
Resolved build UUID. |
java-version |
Java version used. |
mc-version |
Minecraft version installed. |
server-path |
Absolute path of the server directory. |
Any type mcjars supports. The list is validated by the API itself, so new types work without
updating the action — see GET https://mcjars.app/api/v2/types for the current set.
- The server runs on the runner, so the world comes back as an artifact rather than persisting.
filespaths must exist in the repo, otherwise the job fails.- The action writes
eula=truebefore starting. Using it means accepting the Minecraft EULA. - Linux runners only (
ubuntu-latest).
See LICENSE.