JoinGG.cc
Analysis

The download barrier: why server-side mods spread and client mods stall

Server-side mods such as SourceMod, AMX Mod X, Paper plugins and Rust's Oxide ask players to install nothing, so they can reach everyone who owns the game. Mods that need files on the client lose players at every prompt, wait and version check. Garry's Mod and FiveM grew big scenes anyway by making the download automatic, while modpacks that still need a manual install stayed smaller.

By SweetMask · · 5 min read

Every file a server makes a player fetch before the game starts loses some of the people who clicked join, and each extra step loses more. That is why mods which ask the client for nothing, from AMX Mod X plugins to Rust's Oxide, spread as far as their games did, while modpacks and heavy custom content stayed inside smaller communities.

Mods that cost the player nothing

SourceMod describes itself as a server modification for any game on the Half-Life 2 engine, and AMX Mod X as a Metamod plugin for Half-Life aimed at server administration. Neither touches the player's install. An admin drops a plugin into a folder and changes the map, and every player who owns the stock game can use whatever it adds: a map vote, an admin menu, a rank system, or an entire game mode such as jailbreak or retakes. Minecraft's plugin servers work the same way. Paper plugins run on the server, and the ordinary launcher connects without knowing they are there.

That arrangement makes the plugin's audience identical to the game's audience. Nobody has to be persuaded to install anything, so a mode that works on one server can be copied to any other without losing a single potential player along the way. Admins copy what they see working, and a mode spreads through a game the way a rule change would. The difference between server-side and client-side mods decides whether a mode can travel at all.

Even these modes send a few files. A custom map, or the models and sounds for a zombie mod, arrive while the player connects. They are small and they come without a prompt, through a mechanism the game already has. How the main plugin platforms differ from each other is laid out side by side on JoinGG; what they have in common is that the player never has to know they exist.

Rust closed the client, so modding moved to the server

Rust is the purest case. Its client runs under Easy Anti-Cheat, and Facepunch's support site explains that launching the game without it lets you connect only to servers that also run without it, which the server browser does not show. Everything Rust modders do therefore happens on the server, through Oxide or through Carbon, which is built to run Oxide plugins unchanged.

About the only substantial download a modded Rust server can ask of a new player is a custom map, and even that is fetched by the client from a web address the server sets with server.levelurl. Facepunch does sort servers by how far they stray: plugins that change gameplay move a server into the Modded section of the browser, while admin tools and queue skipping can stay under Community. But a modded server is as easy to join as an official one, give or take a map download, which is why the choice between modded and vanilla Rust servers comes down to taste rather than effort.

Every required download is a checkpoint

Once a mod needs something on the client, joining turns into a series of places to give up. Minecraft asks whether to accept a server's resource pack, and a server that sets require-resource-pack disconnects anyone who declines. Garry's Mod's built-in transfer is slow enough that its own wiki calls it obsolete, so servers point sv_downloadurl at a web server full of .bz2 files or lean on the Workshop. A modpack has to match the server's mod list, and a single mismatched content mod can stop the connection. When content fails to arrive, the failure is on screen: Garry's Mod players know the purple and black checkerboard and the red ERROR model that mean a download did not finish.

Each of these steps loses somebody, and the losses multiply, because a player who gets past the prompt still has to sit through the wait and then pass the version check. Owners rarely see it, since their own copies are already cached, and a guide to why modded servers take so long to join spends much of its length on exactly that blind spot.

Automation turned installing into waiting

The platforms that built big scenes on custom content did it by taking the player's part of the job away. In Garry's Mod, resource.AddWorkshop tells the client to download a Workshop addon before it enters the server. In FiveM, the files a resource lists are downloaded by clients when the resource loads. Rust's custom maps come down from the map URL without a question asked. None of these asks the player to do anything except wait, and waiting costs far less than installing.

That is how Garry's Mod and FiveM grew large communities on top of downloads that would sink a smaller game. Their players accepted the cost once, when they installed a platform built around fetching other people's content, and every server after that is a progress bar rather than a decision.

Modded Minecraft sits on the other side of that line. Before a player sees a Forge, NeoForge or Fabric server, they have to install the loader and the same pack in a launcher outside the game. The launchers have made that much easier, but it is still an install, and it still happens before the player knows whether the server is any good.

Where the big scenes grew

Read against that line, the shape of the last twenty years of community modding makes sense. The Half-Life and Source games grew their best-known community modes as server plugins that asked the player for a map and a handful of models. Minecraft's biggest public servers run plugin software that the vanilla launcher can join, while modpack servers form a large but separate world of smaller communities, which JoinGG's guide to Minecraft community servers treats as a category of its own. Rust made the choice for everyone by locking the client, and its modded servers ended up with a tab of their own in the main browser.

Before adding the next required file

For a server owner the lesson is mostly arithmetic. Count the steps between the join button and the first minute of play, and treat each one as a cost paid in players. If a feature can live on the server, put it there. If it needs a download, make that download automatic and keep it small. Then publish the size where people decide whether to join, on the listing and in the Discord. An owner whose files are all cached will not feel what a cold join costs a stranger until they try one from a clean install.

Sources

  1. Launching Rust with EAC disabled (RustClient.exe) – Facepunch Studios — Facepunch Studios
  2. Guidelines for community servers using plugins / mods – Facepunch Studios — Facepunch Studios
  3. Hosting Custom Maps - Rust Wiki — Facepunch (Rust Wiki)
  4. Serving Content - Garry's Mod Wiki — Facepunch (Garry's Mod Wiki)

moddingpluginsdownloadscommunity servers

More

Analysis

Why Minecraft 1.8 PvP never died

The 1.9 Combat Update split Minecraft PvP in 2016, and the side that stayed on 1.8 never had to move, because plugins let servers keep the old fighting for newer clients.

SweetMask · · 4 min