All Projects → Minestom → Minestom

Minestom / Minestom

Licence: apache-2.0
1.16.5 Lightweight and multi-threaded Minecraft server

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Minestom

Gamocosm
Honest Minecraft server hosting
Stars: ✭ 139 (-65.25%)
Mutual labels:  minecraft, minecraft-server
Sponge
The SpongeAPI implementation targeting vanilla Minecraft and 3rd party platforms.
Stars: ✭ 241 (-39.75%)
Mutual labels:  minecraft, minecraft-server
Minestat
📈 A Minecraft server status checker
Stars: ✭ 168 (-58%)
Mutual labels:  minecraft, minecraft-server
Polymc
Making minecraft mods compatible with a vanilla client
Stars: ✭ 111 (-72.25%)
Mutual labels:  minecraft, minecraft-server
Purpur
Purpur is a fork of Paper, Tuinity, and Airplane with the goal of providing new and interesting configuration options, which allow for creating a unique gameplay experience not seen anywhere else
Stars: ✭ 286 (-28.5%)
Mutual labels:  minecraft, minecraft-server
Worldborder
Bukkit plugin for maintaining borders for your worlds to limit their sizes, as well as generating missing chunks or trimming excess chunks.
Stars: ✭ 131 (-67.25%)
Mutual labels:  minecraft, minecraft-server
Gomint
GoMint is a modern Minecraft Bedrock Edition server enabling you to make your visions come true
Stars: ✭ 208 (-48%)
Mutual labels:  minecraft, minecraft-server
Gate
A high performant & paralleled Minecraft proxy server with scalability, flexibility & excellent server version support - ready for the cloud!
Stars: ✭ 102 (-74.5%)
Mutual labels:  minecraft, minecraft-server
Arclight
A Bukkit(1.15/1.16) server implementation on Forge using Mixin. ⚡
Stars: ✭ 262 (-34.5%)
Mutual labels:  minecraft, minecraft-server
PyMine
Minecraft Server in Python
Stars: ✭ 12 (-97%)
Mutual labels:  minecraft, minecraft-server
Magicplugin
A Bukkit plugin for spells, wands and other magic
Stars: ✭ 110 (-72.5%)
Mutual labels:  minecraft, minecraft-server
Paper
High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
Stars: ✭ 5,293 (+1223.25%)
Mutual labels:  minecraft, minecraft-server
Mcex
Minecraft server written in Elixir
Stars: ✭ 109 (-72.75%)
Mutual labels:  minecraft, minecraft-server
Cleanstone
Springboot based Minecraft Server
Stars: ✭ 133 (-66.75%)
Mutual labels:  minecraft, minecraft-server
Server
Cloudburst Server is a Bedrock first server software. Originally forked from Cloudburst Nukkit.
Stars: ✭ 107 (-73.25%)
Mutual labels:  minecraft, minecraft-server
Pocketmine Mp
A server software for Minecraft: Bedrock Edition in PHP
Stars: ✭ 2,594 (+548.5%)
Mutual labels:  minecraft, minecraft-server
Obsidian
[WIP] A C# implementation of the Minecraft server protocol. (.NET 5)
Stars: ✭ 89 (-77.75%)
Mutual labels:  minecraft, minecraft-server
Glowstone
A fast, customizable and compatible open source server for Minecraft: Java Edition
Stars: ✭ 1,364 (+241%)
Mutual labels:  minecraft, minecraft-server
minecraft-lambda-function
AWS Lambda function for managing Minecraft server
Stars: ✭ 37 (-90.75%)
Mutual labels:  minecraft, minecraft-server
Flying Squid
Create Minecraft servers with a powerful, stable, and high level JavaScript API.
Stars: ✭ 311 (-22.25%)
Mutual labels:  minecraft, minecraft-server

Minestom

banner

license standard-readme compliant
discord-banner

Minestom is a complete rewrite of Minecraft server software, open-source and without any code from Mojang.

The main difference compared to it is that our implementation of the Notchian server does not contain any features by default! However, we have a complete API which allows you to make anything possible with current spigot plugins.

This is a developer API not meant to be used by the end-users. Replacing Spigot/Paper with this will not work since we do not implement the Bukkit API.

Table of contents

Install

Minestom is similar to Bukkit in the fact that it is not a standlone program, it must be expanded upon. It is the base for interfacing between the server and client. Our own expanded version for Vanilla can be found here.

This means you need to add Minestom as a dependency, add your code and compile by yourself.

Usage

An example of how to use the Minestom library is available here. Alternatively you can check the official wiki here.

Why Minestom?

Minecraft evolved a lot since its release, most of the servers today do not take advantage of vanilla features and even have to struggle because of them. Our target audience is those who want to make a completely different server compared to default Minecraft gamemode such as survival or creative building. The goal is to offer more performance for those who need it, Minecraft being single-threaded is the most important problem for them.

In other words, it makes sense to use Minestom when it takes less time to implement everything you want than removing everything you don't need.

Advantages and Disadvantages

Minestom isn't perfect, our choices make it much better for some cases, worse for some others.

Advantages

  • Remove the overhead of vanilla features
  • Multi-threaded
  • Instance system which is much more scalable than worlds
  • Open-source
  • Modern API
  • No more disgusting NMS

Disadvantages

  • Does not work with Bukkit/Spigot plugins
  • Does not work with older clients (using a proxy with ViaBackwards is possible)
  • Bad for those who want a vanilla experience
  • Longer to develop something playable
  • Multi-threaded environments are prone to complications

API

Even if we do not include anything by default in the game, we simplify the way you add them, here is a preview.

Instances

It is our major concept, worlds are great for survival with friends, but when it scales up it can become unmanageable. The best examples can be found in Skyblock or minigames, not being able to separate each part properly and being forced to save everything in files, not to say the overhead caused by unnecessary data contained in them. Instances are a lightweight solution to it, being able to have every chunk in memory only, copying and sending it to another player in no time, making your serializer and much more...

Being able to create instances directly on the go is a must-have, according to us it can push many more projects forward.

Instances also come with performance benefits, unlike some others which will be fully single-threaded or maybe using one thread per world we are using a set number of threads (pool) to manage all chunks independently from instances, meaning using more CPU power.

Blocks

Minestom by default does not know what is a chest, you will have to tell him that it opens an inventory. Every "special blocks" (which aren't only visual) have to be registered, then they can be placed anywhere simply.

However, all blocks are visually there, they just won't have interaction by default.

Entities

The terms "passive" or "aggressive" monsters do not exist, nobody forbid you from making a flying chicken rushing into any players coming too close, doing so with NMS is a real mess because of obfuscation and the large inheritance.

Inventories

It is a field where Minecraft evolved a lot, inventories are now used a lot as client<->server interface with clickable items and callback, we support it natively without the need of programming your solution.

Commands

Commands are the simplest way of communication between clients and server. Since 1.13 Minecraft has incorporated a new library denominated "Brigadier", we then integrated an API meant to use the full potential of args types.

Credits

Contributing

See the contributing file!
All planned features are listed on Trello

License

This project is licensed under the Apache License Version 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].