A repository containing the configuration files for my Minecraft server.
List of topics
- Server Information
- Machine specifications
- Overview
- Plugins Used
- Configuration Overview
- LuckPerms Groups
- Detailed description
- Java 21 installation
- Chat Formatting
- Contributing
- Minecraft Version: 1.21.4
- Server Type: PaperMC
- Hosting Provider: DigitalOcean
- Hosting machine type: Droplet
- CPU: 4vCPU Premium AMD 3.00Ghz
- Memory: 16GB
- Disk space: 200GB NVMe
- Location: Frankfurt Data Center - 1
- OS: Debian GNU/Linux 12 (bookworm) 12.10 amd64
In here, you will be able to find configuration files for my Minecraft PaperMC 1.21.4 server hosted on DigitalOcean. This setup includes essential plugins for server management, world editing, permissions, player list display, and multi-world support.
This repository is not only my journey through configuring it, fixing bugs and generally playing with settings etc.
But also, it can be used as a template for your own server. I will try to make every configuration here as bug-less as I can to ensure everyone can use it as a base for their own configurations.
For now I am also planning to implement some anticheat and minigames.
- EssentialsX - Used for managing player commands, teleportation, homes, warps, and economy systems.
- WorldEdit - In-game map editor for building and modification.
- LuckPerms - Used for managing player permissions, groups, and prefix/suffix settings.
- TAB - Used for customizing the player tab list, name tags, and displaying server information.
- Multiverse-Core - Used for creating and managing multiple worlds with different settings.
- VentureChat - Used for managing chat channels, formatting messages, and integrating placeholders.
- PlaceholderAPI - Used for providing dynamic placeholders for player stats, server info, and more.
- MiniPlaceholders - Used for adding additional placeholders and supporting MiniMessage formatting.
- ProtocolLib - Used as a dependency for VentureChat and other plugins requiring packet manipulation.
- Vault - Used as a bridge for managing permissions between plugins.
This repository includes configuration files for:
server.properties: Core server settings.bukkit.yml,spigot.yml,paper.yml: Server performance and behavior tuning.plugins/Essentials/config.yml: EssentialsX main configuration.plugins/LuckPerms/config.yml: LuckPerms configuration.plugins/TAB/config.yml: TAB configuration.plugins/Multiverse-Core/config.yml: Multiverse-Core configuration.plugins/VentureChat/config.yml: Main Chat plugin configuration.
The server configuration includes some LuckPerms group along with assigned prefixes/suffixes and permissions. You can find details of the groups in the groups-details.md
I run everything as a user mc on my server in the /home/mc/mc-serv2 directory.
I use Secure File Transfer Protocol with Termius to upload necessary .jar files to the server, since the wget command does not always work.
Initially, I encountered an issue where apt would not install Java 21 — required by newer versions of PaperMC. It only had Java 17 available in the default Debian 12 repositories.
root@debian-s-4vcpu-16gb-amd-fra1-01
▶ ~ # apt install openjdk-21-jdk-headless
E: Unable to locate package openjdk-21-jdk-headless
root@debian-s-4vcpu-16gb-amd-fra1-01
▶ ~ # apt install openjdk-21-jdk
E: Unable to locate package openjdk-21-jdkI solved the issue by installing SDKMAN! and using it to install Java 21 (Amazon Corretto) both for the root user and for the mc user who runs the Minecraft server.
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"root@debian-s-4vcpu-16gb-amd-fra1-01
▶ ~ # sdk list java# ...output trimmed...
21.0.7-amzn
sdk install java 21.0.7-amznjava -version
# Output should be something like:
openjdk version "21.0.7" 2025-04-15 LTSInitially, I used EssentialsX Chat for formatting but encountered limitations:
- Hex colors in prefixes/suffixes were not respected.
- Placeholders like
%vault_prefix%were not rendered in chat. - Messages appeared as raw placeholders (e.g.
%vault_prefix%%player_displayname%or<#21ff0e>- <#1ef327>W<#1be841>o ...or{vault_prefix}{player_displayname}). - Even after installing PlaceholderAPI and expansions, EssentialsX Chat did not handle them correctly.
- Keeping EssentialsX Chat with PlaceholderAPI and LuckPerms expansions
- Double-checking
vault-compatibility.enabledin LuckPerms - Validating
vault_prefixvia/papi parse <player> %vault_prefix%(or%vault_suffix%) - Reloading PAPI and LuckPerms
- Adjusting
meta-formattingin LuckPerms config - Testing various prefix formats (MiniMessage, legacy
&x&...codes, etc.)
All failed to make prefixes display correctly in EssentialsX Chat.
- Removed
EssentialsXChat.jar - Installed VentureChat
- Installed ProtocolLib (required by VentureChat)
- Installed PlaceholderAPI and the following expansions:
/papi ecloud download Vault
/papi ecloud download LuckPerms
/papi ecloud download player
/papi reload- Configured
LuckPerms/config.ymlto support prefix/suffix stacking - Edited
plugins/VentureChat/config.yml:
format: "{vault_prefix}{player_displayname}{vault_suffix} &7➤ &f"- "%vault_prefix%" appearing as raw text caused by EssentialsX Chat, solved by switching to VentureChat
- Weird angle brackets
<bold><underlined>etc. caused by setting MiniMessage in suffix accidentally - Strange spacing between letters caused by adding space between every hex segment in
&x&1&2&3..., fixed by removing spaces - "No one is listening to you" caused by no one being in VentureChat channel; harmless
lp group mod meta setprefix "&x&d&b&3&f&f&fM&x&c&0&3&f&f&fo&x&a&5&3&f&f&fd &r"
lp group admin meta setprefix "&x&f&f&1&4&9&bA&x&e&e&1&2&a&fd&x&d&c&1&0&b&3m&x&c&a&0&e&c&7i&x&b&8&0&c&d&bn &r"Chat now correctly shows the gradient prefix/suffix from LuckPerms and all PAPI placeholders render properly using VentureChat.
I don't really think that anyone will propose any changes to this project, but If you wanted to contribute, then I am open for suggestions and happy for any forks and pull requests.




