Skip to content

server‐software

Mikkl edited this page Mar 22, 2024 · 2 revisions

Cubia Wiki > Server Software


Table of Contents

Server Software

What is PurpurMC?

PurpurMC is the name of the server software Cubia relies on. Purpur is based on Paper, which is the current “industry standard” when it comes to community-run Minecraft SMPs.

To understand what Purpur is, why it exists and why we use it, it’s important to understand its history and background.

Background

Bukkit

Bukkit, introduced late 2011, revolutionized Minecraft servers at the time by allowing users to extend functionality through plugins. Contrary to mods, plugins are exclusive to servers, easier to use, easier to develop and marginally more reliable than mods.

Spigot

In 2012, Spigot arrived, which builds on top of Bukkit’s code. Spigot focuses on performance optimization and alters game mechanics by default to achieve these results. Spigot includes configurable YAML-files, allowing anyone to tweak these settings to their liking. Cubia has opted to revert these changes and maintain Vanilla behavior.

Paper

A few years later, Paper arrived, building on top of Spigot’s code. Paper outperform Spigot when it comes to performance, plugin capability and documentation. Paper is focused on hardware-level optimization and is keen on fixing game-breaking exploits.

Code optimization of entities, hoppers, redstone, containers, chunk loading, and the light engine allows for a significant performance boost at virtually no expense. At the same time, Paper bundles additional configuration files, allowing you to tweak the game even further.

Purpur

Building on Paper’s code, Purpur offers some notable unique features, as well as additional performance gains from Pufferfish.

Purpur focuses on quality-of-life tweaks, customization, and new opportunities, and offers a very versatile and powerful configuration file. Purpur allows you to drastically change fundamental game mechanics, and its optional tweaks add important flavor, inspired by popular community suggestions on Minecraft’s Reddit page.


Why do we use Purpur?

Purpur features Paper’s state-of-the-art optimization, which is ideal for servers with more than 2 players online at a time. Furthermore, Purpur’s unique feature flags implements valuable quality-of-life additions and allows us to drastically modify fundamental mechanics with practically no effort.

Purpur makes a big part of Cubia’s complex configuration and assortment of plugins a lot easier to manage in some aspects. Meanwhile, Purpur’s team has shown a lot of talent, resilience, and good leadership, indicating a bright future for the project.

Why is Purpur structured like this?

Behind each server software are individual teams with independent structures, goals and ambitions. Paper’s goals, for example, are fundamentally more ambitious than Bukkit’s goals, which sole purpose is to provide a simple API for plugin developers to build on. A lot of people dislike, or don’t need the added complexity, hence why projects haven’t merged or dislocated from the chain.

Each project builds on top of the other’s code to maintain compatibility. If you were to install WorldEdit, a plugin capable of running on Bukkit, you can expect it to work on Purpur. However, if you install a Purpur plugin, it might not work on Paper due to individual feature layers.


Disadvantages

Purpur’s concept, capabilities and ecosystem is rather difficult to explain and understand. A lot of people are intimidated by this, who in turn may settle with a 1-click hosting solution with numerous other disadvantages.

If you aim on building “your own thing” just like Cubia, expect to dig deep in Minecraft’s history and/or several documentation sources if you’re looking to develop or solve a fundamental problem.

Purpur cannot be modded and is reliant on its own APIs, which means you’re practically stuck with a Vanilla-like baseline.

Needless to say, Purpur is perfect for Cubia. We’ve already put years of tears, pain and suffering into understanding, adapting, and enjoying Purpur to the fullest. This repo allows you to enjoy a pre-made and pre-maintained configuration without the need to worry about the complexity of this nonsense.