status: online | self-hosted

project case study

ONLINE

Kame House: Cobblemon Server

A private Cobblemon server for friends that grew into a carefully maintained modded platform with custom world generation, server-side features, and a few hard lessons.

STARTED2026
PLATFORMFabric 1.21.1
RUNTIMEDocker + Java 21
MODS29
DATAPACKS7
CobblemonMinecraftFabricDockerUnRAIDLuckPerms

The server is called Kame House. It started as a simple place for a group of friends to play Cobblemon together. I expected to install a few mods, create a world, and leave it alone.

That did not happen.

It gradually became one of the more involved services on my UnRAID server. The current setup runs 29 mods and seven datapacks, with custom terrain, gyms, mounts, trading, graves, permissions, performance tuning, and enough compatibility checks that every update deserves its own plan.

Building the experience

I did not want the server to feel like a random collection of mods. Cobblemon is the center of it, and everything else has to support that experience.

Mega Showdown adds expanded battle mechanics. Radical Cobblemon Trainers and its gym structures give players something to work toward. Journey Mounts, Waystones, maps, breeding, backpacks, and furniture make the world easier to live in without removing the survival side of Minecraft.

The world itself uses Terralith, Incendium, and Nullscape. Each dimension feels more deliberate, but those additions also make testing and version control more important. A broken datapack can affect a world that people have already spent months building in.

Running it like a service

Kame House runs in Docker with a pinned Java 21 image. Pinning the runtime was not part of the original plan. It became necessary after a newer Java release proved incompatible with the Minecraft and Cobblemon versions the server depends on.

Updates follow a repeatable process now. I check that nobody is online, save the world, stop the server cleanly, change one controlled set of files, start it again, and inspect the logs before calling the work finished. New mods are checked against the existing stack before they reach the server.

The server also has performance-focused tools for chunk loading and entity processing. They do not make a heavily modded world free, but they help keep exploration and busy areas from dragging the whole server down.

The compatibility problem

Mod names are not always as clear as they should be. One compatibility list warned against a trainer battle mod with a name very close to Radical Cobblemon Trainers. They were different projects, but it took research to confirm that the mod already on the server was intentionally designed to work with Mega Showdown.

That kind of detail matters. Installing the wrong file or assuming two similarly named projects are the same can turn a normal restart into a broken server.

The client side has its own version lock. Some launchers report that map mods are outdated because newer builds exist for newer Minecraft releases. Those builds are not updates for this server. They are incompatible versions. Sometimes staying current means knowing when not to upgrade.

Replacing a feature that failed

One of the more interesting failures was a jail mod used for light roleplay. It worked until releasing a player could crash the server. The issue was confirmed upstream and was not going to be fixed, so keeping it installed was not a reasonable option.

I removed it and rebuilt the useful part with vanilla commands, LuckPerms, and VanillaPermissions. Trusted players can use a limited set of commands without receiving full operator access. The replacement is less elaborate, but it uses stable Minecraft behavior and has a much smaller failure surface.

That change captured the main lesson from this project: the clever option is not always the reliable option.

Privacy choices

Some optional features wanted to publish player information to an external profile service. We were not using that service, so I disabled the integration instead of leaving background synchronization enabled.

The server uses normal authenticated Minecraft accounts, and connection details are shared directly with the people who play. Public project pages do not need player names, network addresses, filesystem paths, or administration commands.

Where it stands

Kame House is online and actively maintained. It has grown beyond the original idea, but it still exists for the same reason: giving friends a world that feels worth returning to.

The next improvements are less about adding more mods and more about making the server easier to use. I want a cleaner client setup, better status information, and a proper home for guides and screenshots without turning a private friend server into a public support desk.

< all projects