Minecraft Server
I forgot about writing dev-vlogs, so now I have to write a long one T_T
For this server, we used the Youer core. It is a hybrid of NeoForge and the Bukkit/Spigot/Paper API. We picked it because it allowed us to use mods as well as plugins. Also, this core’s Minecraft version is 1.21.1, which is the best version for Minecraft modding right now. The majority of Minecraft mods are being written for this exact version, so the choice of core was pretty much obvious.
For server hosting, we used my homelab machine that runs on a Xeon E5-2667 v2 and 64 GB of DDR3.For the server OS, we used Debian 13.To make deploying the server a little bit easier, we used MCSManager. This software allows you to remotely create and manage game server instances.
Our main concept was to give a separate planet to every player, make the modpack kinda hard and built around the Create mod, and force players to progress in the Create mod—especially Create: Aeronautics (to make planes in order to explore space and meet with other players).
We had to make 3 modpacks: 2 for the client side and 1 for the server side.For the server side, we picked 147 mods. Most of them were Create mod addons, along with a bunch of optimization mods, since Java Minecraft is pretty unoptimized. For the server side, we also added some plugins such as AuthMe (since our server is running in offline mode), CoreProtect, and BlueMap (we actually had a problem with it, which will be explained a little bit later).For the client side, we made two modpacks. One was pretty much the server-side modpack with server-only mods removed, added client optimization mods, mods for visual enhancement, shaders, a custom start menu, and some resource packs. Overall, our goal for this modpack was to make the user experience as good as possible.The other client-side modpack is a bare-minimum one. It has only the mods that you need to connect to the server and nothing else. It was made for players with low-end devices as well as mobile players (yes, you can play on this server even from your phone! You just need a Java MC launcher and a decent device), and you can also use this modpack as a base for making your own modpack.
To achieve our goal of making a planet for every player, I made a custom mod. It features custom world generation (standard Minecraft generation was removed in favor of the generation of player planets and planets in outer space), an atmosphere around every planet, integration with the Create mod to let players breathe outside of their planet using diving gear from the Create mod, commands to make the work of admins and debugging easier, and a config file to make the mod customizable. AI was used in development of the mod.
Random stuff that we made:
DDNS to make it way more convenient for players to play on the server, since we don’t have a static IP and buying one is a little bit pricey in the long term.
ZGC garbage collector.
Tailscale for debugging when DDNS isn’t available.
BlueMap port protection via iptables: By default, BlueMap exposed the map publicly on port 19756. To prevent regular players from seeing it, we locked down the port using iptables. We allowed access only from our local network and Tailscale.
We used Zulu JDK since its more optimised for games.