Website/docs/customization/config.md

521 lines
13 KiB
Markdown
Raw Normal View History

---
id: config
title: Configuration
---
2024-12-02 18:41:26 +00:00
# Configuration
This page will show you how to modify the configuration file. The configuration file is located at:
```/plugins/Plex/config.yml```.
## Default configuration
2024-12-02 18:41:26 +00:00
Below is the default `config.yml` file when Plex is loaded for the first time.
2024-12-02 18:41:26 +00:00
```yaml title="/plugins/Plex/config.yml"
# Plex Configuration File
# For documentation, please visit: https://plex.us.org
server:
name: "Plexus"
motd: "%servername% - Minecraft %mcversion%"
colorize_motd: true
sample:
- "&cForums: https://forum.plex.us.org"
# What timezone should various messages appear in (e.g. ban message end date)
timezone: Etc/UTC
# Ban message is customized in the messages.yml file. The URL to appeal at is below.
banning:
ban_url: "https://forum.plex.us.org"
punishments:
mute-timer: 300
freeze-timer: 300
chat:
# Should the server use Plex's chat system? It is recommended to keep this on if you are using ranks.
# If you are using permissions, you should turn this off and use Vault to handle prefixes with a different chat plugin
enabled: true
# The maximum amount of characters a player can have for their tag
# This does not include color tags such as <red> or <rainbow>
max-tag-length: 64
2024-12-02 18:41:26 +00:00
# The chat format can be customized here if the Plex chat system is enabled
format: "{prefix} <white>{name} <gray>» <reset>{message}"
# You can define colors for each group which will appear in the tab list
colors:
admin: '<aqua>'
senior: '<light_purple>'
executive: '<blue>'
masterbuilder: '<dark_aqua>'
# Login Messages
loginmessages:
# Should the player be required to put their name in the login message?
name: true
data:
central:
storage: sqlite # Use mariadb, or sqlite here
user: ""
password: ""
hostname: 127.0.0.1
port: 27017
db: "plex"
side: # This is Redis, leave password blank if auth is false
enabled: false
auth: true
hostname: 127.0.0.1
port: 6379
password: ""
# Mob limiter / Entity wiping config
# All entities listed here will NOT be wiped upon wiping entities
# By default this includes all mobs, as the mobpurge command can be used to purge mobs.
entitywipe_list:
- "ITEM_FRAME"
- "AXOLOTL"
- "BAT"
- "BEE"
- "BLAZE"
- "CAT"
- "CAVE_SPIDER"
- "CHICKEN"
- "COD"
- "COW"
- "CREEPER"
- "DOLPHIN"
- "DONKEY"
- "DROWNED"
- "ELDER_GUARDIAN"
- "ENDER_DRAGON"
- "ENDERMAN"
- "ENDERMITE"
- "EVOKER"
- "FOX"
- "GHAST"
- "GIANT"
- "GLOW_SQUID"
- "GOAT"
- "GUARDIAN"
- "HOGLIN"
- "HORSE"
- "HUSK"
- "ILLUSIONER"
- "IRON_GOLEM"
- "LLAMA"
- "MAGMA_CUBE"
- "MULE"
- "MUSHROOM_COW"
- "OCELOT"
- "PANDA"
- "PARROT"
- "PHANTOM"
- "PIG"
- "PIGLIN"
- "PIGLIN_BRUTE"
- "PILLAGER"
- "POLAR_BEAR"
- "RABBIT"
- "RAVAGER"
- "SALMON"
- "SHEEP"
- "SHULKER"
- "SILVERFISH"
- "SKELETON"
- "SKELETON_HORSE"
- "SLIME"
- "SNOWMAN"
- "SPIDER"
- "SQUID"
- "STRAY"
- "STRIDER"
- "TRADER_LLAMA"
- "TROPICAL_FISH"
- "TURTLE"
- "VEX"
- "VILLAGER"
- "VINDICATOR"
- "WANDERING_TRADER"
- "WITCH"
- "WITHER"
- "WITHER_SKELETON"
- "WOLF"
- "ZOGLIN"
- "ZOMBIE"
- "ZOMBIE_HORSE"
- "ZOMBIE_VILLAGER"
- "ZOMBIFIED_PIGLIN"
- "PUFFERFISH"
# Automatically wipe the specified entities
autowipe:
# Should we automatically wipe entities?
enabled: true
# How often, in seconds, to automatically wipe entities. Default is 5 minutes.
interval: 300
# Entities to automatically wipe
entities:
- "DROPPED_ITEM"
# What blocks should be blocked?
blocked_blocks:
- "SPAWNER"
- "STRUCTURE_BLOCK"
- "JIGSAW"
# What entities should be blocked?
blocked_entities:
- "WITHER"
- "ENDER_DRAGON"
- "MINECART_TNT"
# Limit entities per chunk
entity_limit:
# Is the mob limit enabled?
mob_limit_enabled: true
# The maximum number of mobs allowed in a chunk
max_mobs_per_chunk: 50
# The available ceiling for the maximum number of mobs
mob_limit_ceiling: 500
# See https://docs.plex.us.org/docs/customization/config#worlds for documentation
# These gamerules apply to all worlds on the server
global_gamerules:
- "doWeatherCycle;true"
- "doDaylightCycle;true"
- "doMobSpawning;false"
- "keepInventory;true"
- "doFireTick;false"
- "doMobLoot;false"
- "mobGriefing;false"
- "doTileDrops;false"
- "commandBlockOutput;false"
- "naturalRegeneration;true"
- "announceAdvancements;false"
- "showDeathMessages;false"
- "sendCommandFeedback;false"
worlds:
flatlands:
name: "Flatlands"
modification:
permission: "plex.world.flatlands.modify"
message: "<red>You do not have permission to modify this world."
gameRules:
# The gamerules here override the global gamerules
- "doWeatherCycle;false"
- "doDaylightCycle;false"
parameters:
grass_block: 1
dirt: 32
stone: 16
bedrock: 1
adminworld:
name: "Admin World"
entry:
permission: "plex.world.adminworld.enter"
message: "<red>You do not have permission to enter this world."
modification:
permission: "plex.world.adminworld.modify"
message: "<red>You do not have permission to modify this world."
gameRules:
- "doWeatherCycle;false"
- "doDaylightCycle;false"
parameters:
grass_block: 1
dirt: 32
stone: 16
bedrock: 1
masterbuilderworld:
name: "MasterBuilder World"
entry:
permission: "plex.world.masterbuilderworld.enter"
message: "<red>You do not have permission to enter this world."
modification:
permission: "plex.world.masterbuilderworld.modify"
message: "<red>You do not have permission to modify this world."
gameRules:
- "doWeatherCycle;false"
- "doDaylightCycle;false"
parameters:
grass_block: 1
dirt: 32
stone: 16
bedrock: 1
# If you are running a custom fork of Plex, you may wish to check for updates from a different repository.
update_repo: "plexusorg/Plex"
# What branch should Plex fetch updates from?
update_branch: "master"
# Additional logging for debugging
debug: false
```
## Server
2024-12-02 18:41:26 +00:00
### server.name
2024-12-02 18:41:26 +00:00
The name of your server goes here and is used throughout Plex.
### server.motd
2024-12-02 18:41:26 +00:00
The text here will appear on the server list.
### server.colorize_motd
2024-12-02 18:41:26 +00:00
This determines if the message of the day should randomly be colorized. You can disable this option and manually
colorize your MOTD.
### server.sample
2024-12-02 18:41:26 +00:00
This lets you specify a custom message under the player count in the server list.
2024-12-02 18:41:26 +00:00
### server.timezone
2024-12-02 18:41:26 +00:00
This lets you customize which timezone various messages appear in (e.g. ban message end date)
## Banning
2024-12-02 18:41:26 +00:00
### banning.ban_url
2024-12-02 18:41:26 +00:00
The URL to be used when a player sees the ban message. The full ban message can be changed in `messages.yml`.
2024-12-02 18:41:26 +00:00
## Punishments
### punishments.mute-timer
**Default:** `500`
The time in minutes for a mute to expire
### punishments.freeze-timer
**Default:** `500`
The time in minutes for a freeze to expire
## Chat
2024-12-02 18:41:26 +00:00
### chat.enabled
2024-12-02 18:41:26 +00:00
**Default:** `true`
2024-12-02 18:41:26 +00:00
Determines if the chat system should be enabled. It's useful to turn this off if you're using permissions and want to
use prefixes from another plugin instead.
### chat.max_tag_length
2024-12-02 18:41:26 +00:00
**Default:** `64`
2024-12-02 18:41:26 +00:00
The maximum length a tag may be in game. This does not include MiniMessage tags, just characters
### chat.format
**Default:** `"{prefix} <white>{name} <gray>» <reset>{message}"`
This allows you to customize the chat format for Plex. The `{prefix}` placeholder will be replaced with whatever prefix
the player has. The `{name}` prefix will be substituted with the player's display name. The `{message}` placeholder will
be replaced by the actual message of the player.
## Colors
### colors.\<group\>
This allows you to define colors for your groups in your permission plugin. These colors will show up in tab. For
example, if a person is in the admin group, their color will be aqua. This can be changed and customized based on your
group names. You do not have to use the ones provided in the configuration.
2024-12-02 18:41:26 +00:00
## Login Messages
2024-12-02 18:41:26 +00:00
### loginmessages.name
**Default:** `true`
This enforces a requirement that players include their name when they set a login message.
## Data
2024-12-02 18:41:26 +00:00
### data.central.storage
2024-12-02 18:41:26 +00:00
**Options:** `sqlite`, `mariadb`, `mongodb`
2024-12-02 18:41:26 +00:00
Select which database software you would like to use. `sqlite` is the default. Note that if you change which data
storage you use, no data will be transferred.
### data.central.user
2024-12-02 18:41:26 +00:00
This is the username for whichever database software you use. Note that `sqlite` does not require a username.
### data.central.password
2024-12-02 18:41:26 +00:00
This is the password for whichever database software you use. Note that `sqlite` does not require a password.
### data.central.hostname
2024-12-02 18:41:26 +00:00
This is the hostname for whichever database software you use. Note that `sqlite` does not require a hostname.
### data.central.port
2024-12-02 18:41:26 +00:00
This is the port for whichever database software you use. Note that `sqlite` does not require a port.
2024-12-02 18:41:26 +00:00
:::info
The default port for MySQL/MariaDB is 3306. Ensure you change it to that if you are using MySQL/MariaDB.
The default is 27017 which is the MongoDB default.
:::
### data.central.db
This is the name for whichever database software you use. Note that `sqlite` does not require a name.
### data.side.enabled
2024-12-02 18:41:26 +00:00
**Options:** `true` / `false`
This will enable Plex's Redis functionality.
### data.side.auth
2024-12-02 18:41:26 +00:00
**Options:** `true` / `false`
This is whether authentication mode for Redis is turned on or not.
:::info
It is highly recommended to have Redis authentication turned on.
:::
### data.side.hostnane
2024-12-02 18:41:26 +00:00
This is the hostname for Redis. This is required for Redis to work.
### data.side.port
2024-12-02 18:41:26 +00:00
This is the port that Redis is listening on. This is requird for Redis to work.
### data.side.password
2024-12-02 18:41:26 +00:00
This is the password for your Redis instance. Note that this can be left blank if authentication is turned off.
## Entity wiping
2024-12-02 18:41:26 +00:00
### entitywipe_list
2024-12-02 18:41:26 +00:00
All items in the list will not be wiped. By default, this includes all mobs as these can be purged with the `mobpurge`
command.
## Autowiping
2024-12-02 18:41:26 +00:00
### autowipe.enabled
2024-12-02 18:41:26 +00:00
**Options:** `true` / `false`
2024-12-02 18:41:26 +00:00
Should autowiping be enabled?
### autowipe.interval
2024-12-02 18:41:26 +00:00
**Default:** 300
2024-12-02 18:41:26 +00:00
How often, in seconds, to automatically wipe entities. Default is 5 minutes.
### autowipe.entities
2024-12-02 18:41:26 +00:00
A list of entities to automatically wipe.
## Blocking
2024-12-02 18:41:26 +00:00
### blocked_blocks
2024-12-02 18:41:26 +00:00
A list of blocks that should be blocked.
### blocked_entities
2024-12-02 18:41:26 +00:00
A list of entities that should be blocked.
2024-12-02 18:41:26 +00:00
## Entity limits
### entity_limit.mob_limit_enabled
**Default:** `true`
This determines if the mob limiter is enabled
### entity_limit.max_mobs_per_chunk
**Default:** `50`
This allows you to set the maximum number of mobs allowed in a chunk
### entity_limit.mob_limit_ceiling
**Default:** `500`
This is the maximum amount of mobs allowed.
## Global gamerules
2024-12-02 18:41:26 +00:00
### global_gamerules
2024-12-02 18:41:26 +00:00
These gamerules apply to all worlds on the server. Gamerules in the generated worlds will override the global gamerules.
## Worlds
2024-12-02 18:41:26 +00:00
An infinite amount of worlds can be generated from the configuration file. A few are automatically generated by default.
The format for generating new worlds is as follows:
```yaml title=/plugins/Plex/config.yml
<world name>:
name: "Human readable world name"
entry:
2024-12-02 18:41:26 +00:00
# The permission required to enter the world, optional
permission: "plex.world.worldname.enter"
# Minimum rank requirement, optional
requiredLevels:
- "Rank.ADMIN"
2024-12-02 18:41:26 +00:00
# The message to be shown if a player does not have permission, optional
message: "<red>You do not have permission to enter this world."
modification:
2024-12-02 18:41:26 +00:00
# The permission required to modify the world, optional
permission: "plex.world.worldname.modify"
# Minimum rank requirement, optional
requiredLevels:
- "Rank.ADMIN"
2024-12-02 18:41:26 +00:00
# The message to be shown if a player does not have permission, optional
message: "<red>You do not have permission to modify this world."
gameRules:
- "doWeatherCycle;false"
- "doDaylightCycle;false"
parameters:
grass_block: 1
dirt: 32
stone: 16
bedrock: 1
```
2024-12-02 18:41:26 +00:00
Note that in the `parameters` section, this is how the world should actually be generated. The order is from top to
bottom. In the example above, a world will generate with one grass layer, 32 layers of dirt, 16 layers of stone, and one
layer of bedrock.
For a list of Ranks and Titles, you can refer to the
Javadocs: [Ranks](https://docs.plex.us.org/javadoc/server/dev/plex/rank/enums/Rank.html), [Title](https://docs.plex.us.org/javadoc/server/dev/plex/rank/enums/Title.html).
2024-12-02 18:41:26 +00:00
The gamerule section is what gamerules are set for the world by default. The syntax is the official gamerule name, a
semicolon, and either `true` or `false`.
## Updates
2024-12-02 18:41:26 +00:00
update_repo
The repo to use for update checking.
update_branch
The branch to use for update checking.
## Debugging
2024-12-02 18:41:26 +00:00
**Options:** `true` / `false`
2024-12-02 18:41:26 +00:00
The `debug` option is standalone and enables additional logging. This may be useful for diagnosing issues as more
information will be displayed in the console. It is recommended to keep this option turned off.