diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 3ceee6080..2f958c52f 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -4,7 +4,6 @@ name: Bug Report description: File a bug report title: "[Bug]: " labels: ["type: bug"] -labels: ["type: bug"] body: - type: textarea id: bug diff --git a/.github/workflows/packwiz.yml b/.github/workflows/packwiz.yml index 5242ef201..cdd45fe1c 100644 --- a/.github/workflows/packwiz.yml +++ b/.github/workflows/packwiz.yml @@ -11,10 +11,6 @@ on: description: Create serverpack required: true default: "true" - publish: - description: Publish version to CurseForge - required: false - default: "false" pull_request: branches: ["main", "Astral-Experimental"] push: @@ -27,7 +23,7 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: setup jdk 17 + - name: Setup JDK 17 uses: actions/setup-java@v4 with: java-version: 17 @@ -43,6 +39,7 @@ jobs: repo: packwiz/packwiz - name: Make packwiz binary executable + shell: bash run: chmod +x ./packwiz - name: Restore cached mod downloads @@ -54,26 +51,32 @@ jobs: restore-keys: | cached-mods- - - name: Construct version string + - name: Construct version strings id: construct-base-name + shell: bash run: | - VERSION_NUMBER="$(echo "$(> "$GITHUB_OUTPUT" - echo "ASTRAL_SERVER_NAME=Create-Astral-Server-$VERSION_NUMBER-${{github.run_number}}" >> "$GITHUB_OUTPUT" + MODPACK_VERSION_NUMBER="$(echo "$(> "$GITHUB_OUTPUT" + echo "ASTRAL_SERVER_NAME=Create-Astral-Server-$MODPACK_VERSION_NUMBER-${{github.run_number}}" >> "$GITHUB_OUTPUT" + FABRIC_VERSION_NUMBER="$(echo "$(> "$GITHUB_OUTPUT" # servercore needs to be turned into a .toml for the curseforge export as CF won't accept it as an override jar - name: Prepare for CurseForge client zip creation + shell: bash run: | mkdir temp-jar mv mods/servercore* ./temp-jar - ./packwiz cf add ServerCore + ./packwiz cf add https://www.curseforge.com/minecraft/mc-mods/servercore/files/4492100 - name: Create CurseForge client zip + shell: bash run: | ./packwiz curseforge export -o "${{steps.construct-base-name.outputs.ASTRAL_CF_NAME}}.zip" ./packwiz refresh - name: Clean up after CurseForge client zip creation + shell: bash run: | ./packwiz remove servercore mv temp-jar/servercore* ./mods @@ -100,7 +103,9 @@ jobs: run: | cd server java -jar ../packwiz-installer-bootstrap.jar -g -s server ../pack.toml + curl "https://meta.fabricmc.net/v2/versions/loader/1.18.2/${{steps.construct-base-name.outputs.FABRIC_VERSION}}/0.11.1/server/jar" --output server.jar rm -f packwiz-installer.jar + rm -f packwiz.json ls -l cd ../ @@ -132,14 +137,3 @@ jobs: with: name: ${{steps.construct-base-name.outputs.ASTRAL_SERVER_NAME}} path: ./server - - # This job publishes the modpack to CurseForge - publish: - runs-on: ubuntu-latest - needs: build - if: ${{github.event.inputs.publish}} - steps: - - name: Prepare files - uses: actions/download-artifact@v4 - - name: List files - run: ls -l diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 534687a9e..6bf9efb25 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,20 @@ jobs: - name: Checkout uses: actions/checkout@v6 with: - ref: Astral-Experimental + ref: feature/workflow + + - name: Get latest packwiz binary + id: download-packwiz + uses: dawidd6/action-download-artifact@v6 + with: + workflow: go.yml + branch: main + name: Linux 64-bit x86 + repo: packwiz/packwiz + + - name: Make packwiz binary executable + shell: bash + run: chmod +x ./packwiz # cant use sed easily here because it gets weird when the version grabber greps for regex characters like [] expecially in experimental versioning - name: Set pack.toml version @@ -73,6 +86,18 @@ jobs: cat tmp.js > ./kubejs/startup_scripts/misc/misc.js rm tmp.js + - name: Refresh packwiz + id: refresh-packwiz + shell: bash + run: | + ./packwiz refresh + + - name: Remove packwiz + id: remove-packwiz + shell: bash + run: | + rm ./packwiz + - name: Create pull request to new release branch id: open-pr shell: bash @@ -84,6 +109,6 @@ jobs: git add -A git commit -m "Prepare release" git push -u origin "release/$VERSION" - gh pr create --title "Merge release/$VERSION into main" --body "Auto-generated by workflow." --head "release/$VERSION" --base "main" + gh pr create --title "Merge release/$VERSION into main" --body "Auto-generated by workflow. View changelog for more information at https://github.com/Laskyyy/Create-Astral/blob/release/$VERSION/CHANGELOG.md." --head "release/$VERSION" --base "main" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/serverpack/README.md b/serverpack/README.md new file mode 100644 index 000000000..52e341913 --- /dev/null +++ b/serverpack/README.md @@ -0,0 +1,145 @@ +This document is best read in a text editor that supports Markdown, however should still be legible in more basic text editors like Notepad. + +Alternatively, you can view this document with proper Markdown support, without the need for a fancy text editor, on GitHub: https://github.com/Laskyyy/Create-Astral/blob/Astral-Experimental/serverpack/README.md + +### FOREWORD + +Feel free to skip over this section, it isn't necessary for the server pack setup. + +Create: Astral provides two official sources to download the server pack from: GitHub Releases and CurseForge. It is recommended that you download this server pack from the GitHub Releases, as CurseForge applies limitations on what we can include in a server pack, making the setup slightly more complicated. + +There is also an unofficial distribution¹ of Create: Astral for container engines (e.g. Docker or Podman) at https://github.com/maxi0604/create-astral-container, which sets up the entire server in a container. You will need knowledge of Docker or Podman to set this up though. + +The CurseForge server pack _is not functionally broken²_, there's just some more setup involved to it. + +Get the latest GitHub Release here: + +- https://github.com/Laskyyy/Create-Astral/releases/latest +- At the bottom of the changelogs, you will find "Assets"; **download the file ending in "-server.zip"**. +- The file ending in "-curseforge.zip" is the client pack, and is almost identical to the pack you will find on CurseForge. + +## SERVER SETUP + +- Extract the server into a folder on your computer. Ensure you **don't** extract it into a cloud directory, such as OneDrive. + +> CURSEFORGE ONLY: These steps **do not** need to be followed **if you got the server pack from GitHub**. If you downloaded the server pack from CurseForge, you need to do the following: +> +> - First, make sure you have installed Create: Astral on your client. +> - Open the Astral instance's folder and navigate to `/.minecraft/mods` and find `vinery-1.1.4.jar`. +> - Copy Vinery over from your client mods folder, to the server's mods folder. + +- Start the server using the script of your choice: + + - If hosting from a Windows machine, run `startmc.bat` to start the server. + - If hosting from a Linux or macOS machine, open the console in the server directory and execute `sh startmc.sh`. + +- The server will crash the first time and a file labelled `eula.txt` will appear. Open it and set the value inside to `true`. +- Re-run the server and it should now start. + +--- + +Ensure you have properly port-forwarded your IP! This varies wildly based on your internet provider, server host, or country so find an online resource to help with this. + +To change the allocated RAM (default 4 GB): + +- If you use the .bat file, right click and open it in Notepad, then change the `RAM` value to your preferred amount. +- If you use the .sh file, open it in your text editor of choice, and change the `-Xms` and `-Xmx` values to your preferred amount. + +Don't forget to op yourself through console to perform admin commands in-game. While the server is running, type `op ` in the console. + +See below for server requirements, recommendations, and troubleshooting. + +## SERVER REQUIREMENTS + +- At least 4 GB of RAM allocated to the server. Do not allocate all RAM on the machine to Minecraft, leave at least 2 GB for overhead processes if no other applications are running on the same computer. 4 GB is generally enough for 1 to 4 players, however if you have it, more RAM is beneficial for exploration and large bases. +- Java versions 17 or 21 are required to run the server. Any other version will result in crashes. Check your Java version by running `java --version` in your terminal. + - If you are on Windows or macOS, you can download Java version 21 from [here](https://adoptium.net/temurin/releases/?version=21&os=any&arch=any), just select your platform, choose the JRE version, and download the `.msi` for Windows or the `.pkg` for macOS. + - If you are on Linux, you can do the above and download the `.tar.gz`, or you can install Java using your package manager, which may be easier if you are running a headless (console-only) server. This varies depending on your distribution (e.g. Ubuntu, Fedora, Arch), so it's best to look up how to install Java 21 for the distribution your server is running on. + +## SERVER RECOMMENDATIONS + +These recommendations do not _need_ to be followed, but can help some server hosts choose the correct hardware. These instructions generally apply to any Minecraft modpack, not just Create: Astral. + +- It is not recommended to run the server on the same machine as a client instance. If you have any other computer available to you, it is preferable to use that instead. +- Minecraft favours high single-core/thread CPU performance. + - For best results, any AMD Ryzen 5 3000 series or Intel Core 9th Gen i5 processor or better would be more than enough to run a server with 4, maybe up to 10 players (this has not been benchmarked and is a rough estimate). + - Weaker CPUs are still capable, however may struggle with processing multiple large bases or loading chunks at a decent pace. + - Minecraft should run on any CPU architecture that supports the Java Runtime Environment, such as ARM-based CPUs (like those found in modern Apple computers), not just x86. This guide will not go into any detail about less-mainstream CPUs, however Astral's official servers run on ARM processors, so we can confirm that they should work. + +## TROUBLESHOOTING + +If none of these solutions work for you, please join the Discord server and post your issue in the #help channel alongside your server's `latest.log` file (find this in `/logs/latest.log`): https://discord.gg/StW3Q5K8dJ + +--- + +> PROBLEM: The included startup scripts on my server host don't launch the server. +> +> SOLUTION: +> +> - Try booting with your own startup script. This issue usually happens when a server host usually likes to use their own start scripts and fabric `.jar`s. + +--- + +> PROBLEM: Yttr and Roughly Enough Items aren't compatible. +> +> SOLUTION: +> +> - This is not a problem, your issue lies elsewhere. This is only a warning as Yttr does not have full REI compatibility. + +--- + +> PROBLEM: The server instantly crashes when booting. +> +> SOLUTION: +> +> - Check your Java version with `java --version`. If it doesn't read 17 or 21, refer back to the [SERVER REQUIREMENTS](#server-requirements) section of this document. + +--- + +> PROBLEM: The server does a lot of setup (30+ seconds) before crashing. +> +> SOLUTION: +> +> - Possibly an issue with mods. If you added any extra mods, remove them and try again. + +--- + +> PROBLEM: PipeBlocker crashes on startup. +> +> SOLUTION: +> +> - A common issue with Exaroton-hosted servers. PipeBlocker is technically no longer required in the modpack³, so feel free to remove it from the server's mods. + +--- + +> PROBLEM: There are missing icons in my Quest Book. +> +> SOLUTION: +> +> - Ensure you followed the CurseForge-specific step in the [SERVER SETUP](#server-setup) section of this document. + +--- + +> PROBLEM: Astral Vinery requires Vinery. +> +> SOLUTION: +> +> - Ensure you followed the CurseForge-specific step in the [SERVER SETUP](#server-setup) section of this document. + +### FOOTNOTES + +- ¹ Unofficial distributions of Create: Astral: + - Maxi0604 has been given explicit permission to redistribute Create: Astral by the Create: Astral Development Team. + - Create: Astral is All Rights Reserved and redistribution of the modpack is forbidden unless you have explicit permission from the Create: Astral Development Team. +- ² Difference between the GitHub and the CurseForge serverpacks: + - CurseForge doesn't allow mod authors to delete their files. They can however archive them, which will hide them from the website. + A modpack author that knows the file IDs of the archived files can still use them in the client pack, as archived mods are still + available via the CurseForge API. However, CurseForge's policies dictate that a server pack can only contain mods a user could + download from their website manually. This means that archived mods cannot be included in server packs, as they are by definition + hidden from the website. + - When this modpack was initally developed, Vinery's 1.18.2 version was not archived on CurseForge. They have been + in the modpack from the very beginning and are a part of it. We cannot just remove them to make the serverpack + installation more bearable. We are sorry about this, but can't do anything. + - The GitHub serverpack includes Vinery's 1.18.2 version, meaning that the additional step of copying it from the client's pack is not required. +- ³ PipeBlocker: + - PipeBlocker was originally added to combat the [Bleeding Pipe exploit](https://blog.mmpa.info/posts/bleeding-pipe/) from 2023. Since then, all of our mods have been patched to combat the exploit themselves, so it is not technically required anymore. diff --git a/serverpack/readme.txt b/serverpack/readme.txt deleted file mode 100644 index 5eb6be4c6..000000000 --- a/serverpack/readme.txt +++ /dev/null @@ -1,51 +0,0 @@ -PLEASE READ THE WHOLE DOCUMENT! It contains all the information required to set up the server, as well as some troubleshooting tips for common problems. - -After you've extracted the serverpack, follow these steps to fully set up the server: - -=-= If you downloaded this serverpack from the Astral GitHub releases, you do not need to do step 3. Step 3 only applies if you downloaded from Curseforge. =-= - -1. Download download the fabric server .jar version 0.16.3 at https://meta.fabricmc.net/v2/versions/loader/1.18.2/0.16.3/0.11.1/server/jar -2. Drag into main folder of server (with mods folder, config folder etc.), rename to exactly "server.jar" - (ensure it isn't named server.jar.jar when file extensions are hidden) -3. Download the client pack through a modded Minecraft launcher of your choice (i.e. PrismLauncher or the CurseForge app) - and copy the .jar files for Vinery (**NOT** AstralVinery) and Hephaestus from its mod folder to the server's mod folder - (See the note at the bottom of this README for more information) -4a. If hosting from a windows machine run the ".bat" script and the server should begin initialising. -4b. If hosting from a linux machine run the ".sh" script (e.g. command "sh startmc.sh" in console). -5. Once server runs, an "eula.txt" will appear. Open it and set it to 'true'. -6. Re-run the server and it should now boot. - -Ensure you have properly port-forwarded your IP! This varies wildly based on your internet provider, server host, or country so find an online resource to help with this. -To change the allocated RAM, open your relevant startup script in notepad and change the -XMX and -XMS flags from 4G or 6G to whatever amount of gigabytes of ram you prefer. -Don't forget to op yourself through console to perform admin commands ingame 'op YOURNAME'. - -TROUBLESHOOTING: - -If the included startup scripts don't launch, try booting with your own, especially if using a server host who usually like to use their own start scripts and fabric .jars - -If server instantly crashes when booting = Java version mismatch (Use Java 17) - -If server does a lot of setup (30 seconds+) before crashing = Mod issue, if you added any extra mods try removing them first and see if it works. - -If fluids like water don't behave like fluids when you try swimming in them, and you downloaded the pack from Curseforge, check that you followed step 3. - -If there are missing quest icons in the questbook, and you downloaded the pack from Curseforge, check that you followed step 3. - -If none of these frequently occuring issues apply to you or the fixes don't work, you can join our discord at https://discord.gg/StW3Q5K8dJ and open a thread in the #help forum channel! - ---- - -Note on CurseForge, Vinery and Hephaestus: - -CurseForge doesn't allow mod authors to delete their files. They can however archive them, which will hide them from the website. -A modpack author that knows the file IDs of the archived files can still use them in the client pack, as archived mods are still -available via the CurseForge API. However, CurseForge's policies dictate that a server pack can only contain mods a user could -download from their website manually. This means that archived mods cannot be included in server packs, as they are by definition -hidden from the website. - -When this modpack was initally developed, neither Vinery's nor Hephaestus' 1.18.2 versions were archived on CurseForge. They have been -in the modpack from the very beginning and are a part of it. Especially Hephaestus. We cannot just remove them to make the serverpack -installation more bearable. We are sorry about this, but can't do anything. - -If you want a more hassle free setup experience, there's a container image available that does the previously mentioned steps -automatically: https://github.com/maxi0604/create-astral-container