# Introduction
Are you interested in how to create cool new mobs, so that you can play around with friends? Or so that you can embark on a new project?
Worry not: this guide has the purpose of teaching you, step by step, how to!

> If you are already confident in your knowledge regarding some of these steps, feel free to skip to the ones you are interested in




# Step 1: Understanding What's Actually Going On
Plugins? Server Software? What is all this jargon?
Can you eat it? (No.)

In order to make your own server, you will first have to understand the meaning of all those things. But worry not: it's not that difficult!

## Clients and Servers
By either looking at some youtube videos or playing yourself, by this point you must have gained an intuitive understanding of what a "client" and a "server" is.

- The client is you: the player! Or, more specifically, your own minecraft game program, up and running
- The server is the place you connect to in order to play with a lot of other players (other clients connected to the server!)

At this point, we can make a generalization:
A "Minecraft Server" is a piece of software running on a machine (server) that allows players (clients) to connect and interact with each other in a shared Minecraft instance.

> Think of it as the "brain" coordinating all the activity between players: who's placing blocks, where mobs are, and what events are unfolding

## Server Software
But what witchery is it that allows the server to have a minecraft instance?
It all comes down to its *server software*, the program that handles that exact task: They come in many paradigms, each with their own unique pros and cons

- Vanilla: The official software provided by Mojang
- Bukkit-Based: Community-created alternatives that allow you to add plugins to customize the gameplay. This Server Software paradigm includes Bukkit, Spigot, Paper and many others!
- Forge/Fabric: Designed for running mods, which are different from plugins and allow more in-depth game changes, but often require the players to have special clients with specific mods installed on them

Each Server Software is built against certain Minecraft Versions and, under normal circumstances, only players using those minecraft versions will be able to join the server they host. Once installed, they also generate config files you can modify to alter the Server Software's behavior, so do keep this in mind!

![Server Software Version Breakdown](/BasicPluginGuide/ServerSoftwareVersioning.png)
> Example of a Server Software download: The name of the server software itself, the minecraft version it is built for and the build number (how many iterations the software has gone through for that minecraft version) are all displayed

### API
The main things that a Server Software implements are the various tools it provides to plugins or mods, so that they can then, in turn, implement more specific features.
These tools are called its "API" which is, effectively, the middleman the plugins and mods have to go through in order to make stuff happen.

Think of the server software API as a restaurant kitchen:

- The Plugin: It's like a customer placing an order. It knows what it wants to eat (what feature to implement), but it does not go into the kitchen to make it themselves.
- The API: This is the waiter or waitress. They take the plugin's order and translate it into something the kitchen staff (the Server Software) understands. The plugin might say, “I want a cheeseburger with no pickles,” and they make sure the kitchen knows exactly what to prepare.
- The Server Software: This is the kitchen itself. It's where all the actual cooking happens, following the instructions provided by the API (the waiter).
- The Players: They're the people eating at the table, enjoying the food (or, in this case, the features the plugin implemented on the server).

So, when you use a plugin, the plugin "tells" the API what it wants to do (like teleporting a player or spawning a mob). The API then communicates this request to the server software, which makes it happen in the game. If the plugins tried to bypass the API and directly communicate with the server software, it'd be like storming into the kitchen to cook your own burger—it's messy, complicated, and probably won't turn out well!

But this also means that the plugin is dependant on that specific Server Software API to work! If they tried to use another one without changing behavior at all, it would be like going to another restaurant and repeating the exact same sequences of action they did at the last one. They might try to enter the door only to find out they had to push, not pull. They might ask the waiter for something that the kitchen simply does not have, or the waiter might be talking another language entirely!

### Forking
But there are so many server softwares out there! does it mean that a plugin has to offer support to multiple APIs at the same time?

Well, that is only half true! Most server software are not "brand new", but just a "fork" (a modified copy) of another one. In the restaurant analogy from earlier, a forked server software would be like the same restaurant chain were to open at a new location. There would be different staff, different room layout but, all in all, as a customer you could expect for things to work in the same way.

On a more practical term, this means that most forked server softwares implements the same API as the server software they forked from, maybe also adding their own tools to it, further allowing plugins based on them to shine bu implementing increasingly more complex stuff! But some forks can do quite extreme things in how they actually implement their stuff, so this is not always the case!

A more in-depth guide on the topic can be found [here](https://discourse.cubecoders.com/t/a-comprehensive-guide-to-various-minecraft-server-softwares/17672)

Copyright MCModels © 2025.

We use cookies and similar technologies to ensure you get the best experience on our website.