Features - CryptoMorin/KingdomsX GitHub Wiki

Kingdoms aims to provide many more core features than other plugins, such as Factions and Towny, while offering more customization. Kingdoms is mainly designed for PvP servers, but you can still enjoy its core features without the PvP mechanics. However, most of the fun comes from PvP.

Below is a brief list of the plugin's main features. This is only an overview. For specific details, refer to the relevant section of the wiki.

Note

Not all features are available for older server versions. Kingdoms is developed to make the most use of the latest Minecraft features. If technically possible and convenient, such features are added for outdated server versions as well, but these features may be less polished and may get removed in future releases.

Multiple database support

Kingdoms supports a variety of different popular databases such as JSON, YAML (these two are not considered proper "databases"), SQLite, H2, MySQL, MariaDB, PostgreSQL and MongoDB.

It provides different settings for configuring the best connection for your server's environment. It also supports external database backup dumps if your server allows them. It uses the most suitable data types to improve performance and use database space efficiently.

Kingdoms is mostly known for its PvP features, such as the invasion and turret systems. Invading a kingdom allows you to take another kingdom's land. Members of the kingdom need to strategize while invading another kingdom and prepare their base properly. These strategies are made easier using champions, turrets and structures.

Turrets are stationary blocks that protect your kingdom against invaders. These turrets also work on mobs.
They have levels and ammo. Their behavior can be changed through kingdom relation settings and Regulator structures. You can even add your own turrets with different settings and GUIs.

Structures are stationary blocks that perform different functions, from protecting your lands to producing resource points and providing shops.
Also, you can use the EngineHub Add-on to use schematics for these buildings.

This is one of the best core features of Kingdoms. The help pages for the /k help command are interactive in chat. These pages are based on Google's page layout.
You can hover over messages to display lore, just like you can with items in your inventory.

The kingdoms map is also interactive, so it does not need complicated symbols to represent different things. Hovering over an element shows its information. You can even claim land by interacting with the map! Each player can also change the map size within a limit.

Update Checkers

Kingdoms has an async update checker. Updating the plugin is quite easy and new options for language files will be automatically added.
Other config options that are missing from the config will use the default values to prevent errors.

Auto Config Updater

Kingdoms is the first Minecraft plugin that automatically updates configs while keeping comments reliably.
This also tries to keep the original format of the values given to options:

# It distinguishes between these and keeps their format
option: hello
option: 'hello'
option: "Hello"

But this is not always the case.

The only downside of this feature is that it does not keep comments that you added yourself. The plugin cannot know whether a comment was removed because it became obsolete in the previous version or whether you wanted to keep it.

This system will not change GUIs because they are completely customizable. The plugin cannot know whether you manually removed an option added by an update or manually changed an existing option.
Default and up-to-date GUI configs can be found here. You should make your own changes where necessary.

This feature also includes a config migration system that performs different tasks on configs based on the version you last used. For technical reasons, if you do not have a globals.yml file, the plugin considers your Kingdoms setup "fresh" and does not perform any config migration tasks. A config migration can be as significant as deleting an entire config file or as simple as moving an option or restoring its default value.

The auto config updater will not try to update options that had their meaning/format changed in newer versions.

# For example if older versions supported math equations with % around them:
option: "100 * %level%"

# It'll not update that option to the new default one:
option: "100 * level"
# which will make the plugin panic and throw errors.

The option to enable this feature can be found in config.yml -> updates -> configs

Plugin GUIs are 100% customizable with conditional JavaScript support which almost no plugin has.
GUI types, slots, sounds, messages, interactable slots, advanced item properties, and other settings can be changed for each GUI.

When changing or claiming lands, the plugin uses fake blocks to show chunk borders. The config controls how these blocks appear for each kingdom relation and how they are designed.
There is also an option to disable this or make it permanent for each player.

Land Restoration

The plugin can store a chunk's information inside a very compact file in order to restore that chunk once it has been unclaimed. The chunk snapshot is taken once a chunk is claimed, and restored and deleted once it has been unclaimed. The restoration process is divided between chunks in an interval to prevent server lag.

Backups

The plugin automatically creates a backup every day and saves it to the Backups folder inside the Kingdoms folder.
Don't worry if your host doesn't allow automatic backups, the plugin automatically deletes old backups after a few weeks.
All the backup settings can be changed from the config.

The plugin automatically reloads when you change something in a config. Almost every option in the plugin, including messages, GUIs, and other main configs, supports this method. However, a few complicated options cannot be reloaded this way.
This is the most stable and convenient way of reloading options.

Nations are another big aspect of Kingdoms that grant special powers to kingdoms that are in a nation.
Once you join a nation, the plugin becomes a little more complicated to understand.

Players can fly in their land and in an ally's land (depending on their relation settings)
The plugin also checks for nearby enemies and automatically disables flight when necessary.

Advanced Commands & Permissions

Kingdoms uses the new advanced command auto completion features to make it easier for players to understand what they should be typing.
Most of the permissions (mostly commands) follow a specific pattern so you can even use them without looking at the wiki. There are also commands to test certain things before using them in the config option.

Chat Channels & Join Messages

Chat channels for global, kingdom and ally. Chat formats support hover messages and DiscordSRV.
There are many conditioned formats for kingdoms such as whether the player has a kingdom/nation or not.

The same applies to join and leave messages. This allows the plugin to show different messages to players who are in the same kingdom.

By default the plugin also disables Minecraft chat reporting, however if you wanted a more advanced plugin that specializes in this exact topic, you should check out AntiPopup plugin.

Kingdoms is extremely customizable in different aspects, allowing server owners to make unique mechanics and provide plugin developers with an easy API to implement their own features.
The plugin even provides different ways to make it easier for server owners to use these features.

Custom Ranks & Relations

You can make your own ranks in your kingdom and nations! Edit their node, name, color, symbol and etc... for every rank.
Custom relation attributes can be changed via your nexus settings.

Nexus Settings

The Kingdoms nexus is the main place for changing your kingdom settings. You can manage many things from this GUI.

  • Kingdoms Shields
  • Pacifism Mode
  • Relation Attributes
  • Taxes

Kingdoms and nations support taxes from Vault. You can also make your own tax equation for your kingdom and nation.
There is also a rank permission for excluding people from paying taxes!

Protection Signs allow you to protect containers with signs. This feature is similar to the LockettePro plugin, but is made specifically for kingdoms and provides more powerful tools.
You can quickly lock chests and use various codes to protect them. Choose whichever option is easiest for you!

You can also change which players and kingdoms can access the chest, whether or not they are in your kingdom. Different [everyone] tags can grant chest access to everyone inside or outside your kingdom.

Similar to KoTH (King of The Hill) plugins, but specifically made for kingdoms with extra features.

The plugin attempts to provide the best options for popular plugins such as LuckPerms and Dynmap.
Dynmap in particular has a powerful config for customizing your server. Kingdoms can choose their own flag and kingdom color.

Compilers

Kingdoms is the first Minecraft plugin that runs on "compilers". This means that it has built-in systems that validate and optimize configuration settings during server startup. This has two significant advantages.

During server startup, validation warns you in the console when settings use invalid values. For crucial options, it may prevent the plugin from loading completely. This helps server owners identify most issues before players encounter them. Some checks are strict, and server owners might not like them. However, validation can also provide hints about how to solve a problem.

Validating settings during server startup allows the plugin to optimize the options it uses. For example, turrets use mathematical equations for most of their options. Parsing an equation every time it is needed can slow the plugin down considerably.

Others

Kingdoms plugin is heavily optimized and provides different options to adjust its behavior for big servers.
It has an easy-to-use and well-documented API. Anyone with basic Java knowledge can use most of its features.
For support, refer to this section.

Easter Eggs

The plugin contains some very rare easter eggs. Some can only be discovered by people with access to the config files, while others are accessible to all players. These easter eggs are not documented, but they are not harmful. Some can restrict how players interact with certain in-game features, but these restrictions are extremely insignificant.

Feature Cycles

Kingdoms suggestions are added to the plugin in a specific order. Most suggestions are discussed and accepted in the discord server, but these features will not be added gradually to the plugin.

Once there are no bug reports (even minor bugs, unless they're extremely insignificant like a simple grammar issue) left for at least a week, the feature update cycle will be started. During this cycle, all suggestions will be implemented which usually takes up to a month.

Caution

During feature cycles, no bugs will be fixed (even major ones) until the first alpha/beta version is out. No bugs will be fixed at all for the latest stable version. This is why there is a long delay for bug reports before feature cycles start. All users are warned in the discord server about when feature cycles start.

Bugs are mostly fixed weekly outside of feature cycles unless they're major bugs (in which case a hotfix is usually released).\

Caution

For the stability of alpha/beta versions refer to stability section.

Disadvantages

There are disadvantages compared to other factions plugins:

Kingdoms is by no means a "simple" plugin if you decide to change things. You might think this contradicts the "Plug & Play" statement, but it's applicable to people who are fine with how things work by default. Running a server by itself is by no means an easy task, and Kingdom's isn't just a plugin. You can think of it as an installer with 10000 Next buttons.

Because the plugin has many features and its internals are constantly being improved, things that worked before might break and need to be fixed again. Kingdoms will never be 100% stable software because I always intend to keep improving it, and these changes will eventually cause other issues. They can also cause config options to be moved, deleted, or changed.

Another disadvantage of Kingdoms is that it currently only has one single developer. While almost all response times are under 24hrs, updates and bug fixes may be delayed, and feature update cycles may take too long or the plugin may stay in alpha/beta phase for a long time.

The plugin is also currently not open-sourced. This is planned for the future (No ETA)

While you might encounter these issues when using Kingdoms, there are many command utilities to help you with that. Also, Kingdoms has the most comprehensive and complete wiki you'll ever find for a Minecraft plugin.

⚠️ **GitHub.com Fallback** ⚠️