A fully-customisable, modular .bat startup script for Minecraft servers, where all variables can be modified on the fly and applied upon server restart.
Features 1️⃣ Toggleable auto-restart
2️⃣ Customisable JVM arguments/flags - including optional optimised preset
3️⃣ Customisable RAM allocation
4️⃣ Auto-generate+accept EULA
5️⃣ GUI toggle
6️⃣ Customisable console title
7️⃣ Discord webhook integration
8️⃣ Auto-updates with latest version from GitHub
Requirements
Windows OS
Java 17
How to Use
Download the script's latest release (ensure it is saved as a '.bat').
Place it in your Minecraft server's root directory.
Run the script by either double clicking the file, or executing via CMD.
Upon first use, the script will run you through the configuration prompts.
To apply configuration changes while the script is still running (i.e. console is still open), simply restart the Minecraft server.
No need to restart the script.
Screenshots
Functionality First Launch/Initial Setup
Prompts user for server .jar filename. Checks if the file exists.
Prompts user to allocate initial and maximum RAM for the server. Checks if entry is a valid value.
Queries user whether the server should auto-restart or not.
Queries user whether server should use pre-configured JVM arguments. Regardless of result, will generate file for flag storage.
Queries user whether to launch with GUI.
Lets user confirm choices. If confirmed, continue to normal startup. If rejected, will restart initial configuration.
Stores configuration in /config/StartupScript.conf, and JVM args in /config/jvm_args.txt.
Generates auto-accepted EULA.
Normal Startup
Checks for updates to this script.
Checks for config folder, config file, and sets restart counter. If config is missing, reverts back to initial setup.
Checks for EULA, if non-existent, creates accepted eula.txt.
Reads script config file and stores contents as environment variables.
Displays configuration to user and initialises the server.
Checks for JVM arguments file, if non-existent, will create one with optimised flags. If it exists, loads the args into an environment variable.
Checks auto-restart config to decide launch path.
Auto-Restart Enabled
Launches server, changes console title to the configurable title + restart count, and (if configured) sends Discord messag.
Upon crash or restart, increments the restart counter, reloads configuration + JVM flags, and (if configured) sends Discord message.
Auto-Restart Disabled
Launches server and changes console title to the configurable title, and (if configured) sends Discord message.
Upon crash or restart, prompts user whether to restart or exit, and (if configured) sends Discord message.
Disclaimer By using this script, you are indicating your agreement to the
Minecraft EULA.