Stephcraft 3 hours ago
I’m working on a tool called the "Minecraft Server Setup Tool", and I wanted to share what we’ve been building.
Creating a Minecraft server for the first time is notoriously time consuming, often taking up to 5 hours of digging through wikis and video tutorials. I found that settings are often scattered across multiple files (server.properties, spigot.yml, paper.yml) with little explanation, and managing multi-server networks remains a very manual, painful process.
My tool is an Interactive CLI designed to automate the entire lifecycle of a server, from initial scaffolding to long-term maintenance.
Key Features
- (Templating): Clean, standardized, and version-controlled server setups.
- (Package Management for Plugins): Install, update, and configure plugins as easily as using a standard package manager, rather than manually downloading JARs from browser pages.
- (Smart Backups): A system that separates data and configs to reduce backup size and speed up restoration.
- (Automated Migration): Easily switch between different server software (e.g., migrating to Purpur) with high confidence.
- (One-Click Execution): Support for running JARs via double-click on desktops or through a managed shell with specific JVM profiles.
The tool is built in Kotlin but draws heavy inspiration from the Go and JS ecosystems. I'm using:
- Mordant: For terminal styling.
- MilKt: My own extension of Mordant to add missing functional prompts like animated transitions and interactive inputs (inspired by Go's Bubble Tea).
- Clakt: A Kotlin reimplementation of the Clack library used by frameworks like Svelte and Solid for project scaffolding.
Whether you're a plugin developer looking for a sandbox environment or a team wanting to share development server setups, I'm trying to move away from the "Wiki & Tutorial" grind and toward a "Vibe Setup" workflow.
I'd like to hear your thoughts on the CLI approach to game server management!