Configuration for server owners
The CommandAPI has a few configuration options to change how it functions. These options can be set in the plugins/CommandAPI/config.yml
file, which is generated automatically when the CommandAPI runs for the first time.
Default config.yml
file
The default config.yml
is shown below:
config.yml
################################################################################
# Logging #
################################################################################
# Verbose outputs (default: false)
# If "true", outputs command registration and unregistration logs in the console
verbose-outputs: false
# Silent logs (default: false)
# If "true", turns off all logging from the CommandAPI, except for errors.
silent-logs: false
################################################################################
# Messages #
################################################################################
# Messages
# Controls messages that the CommandAPI displays to players
messages:
# Missing executor implementation (default: "This command has no implementations for %s")
# The message to display to senders when a command has no executor. Available
# parameters are:
# %s - the executor class (lowercase)
# %S - the executor class (normal case)
missing-executor-implementation: "This command has no implementations for %s"
################################################################################
# Debugging #
################################################################################
# Create dispatcher JSON (default: false)
# If "true", the CommandAPI creates a command_registration.json file showing the
# mapping of registered commands. This is designed to be used by developers -
# setting this to "false" will improve command registration performance.
create-dispatcher-json: false
# Use latest version (default: false)
# If "true", the CommandAPI will use the latest available NMS implementation
# when the CommandAPI is used. This avoids all checks to see if the latest NMS
# implementation is actually compatible with the current Minecraft version.
use-latest-nms-version: false
# Hook into Paper's ServerResourcesReloadedEvent (default: true)
# If "true", and the CommandAPI detects it is running on a Paper server, it will
# hook into Paper's ServerResourcesReloadedEvent to detect when /minecraft:reload is run.
# This allows the CommandAPI to automatically call its custom datapack-reloading
# function which allows CommandAPI commands to be used in datapacks.
# If you set this to false, CommandAPI commands may not work inside datapacks after
# reloading datapacks.
hook-paper-reload: true
# Skips the initial datapack reload when the server loads (default: false)
# If "true", the CommandAPI will not reload datapacks when the server has finished
# loading. Datapacks will still be reloaded if performed manually when "hook-paper-reload"
# is set to "true" and /minecraft:reload is run.
skip-initial-datapack-reload: false
################################################################################
# Command conversion #
################################################################################
# Plugins to convert (default: [])
# Controls the list of plugins to process for command conversion.
plugins-to-convert: []
# Other commands to convert (default: [])
# A list of other commands to convert. This should be used for commands which
# are not declared in a plugin.yml file.
other-commands-to-convert: []
# Skip sender proxy (default: [])
# Determines whether the proxy sender should be skipped when converting a
# command. If you are having issues with plugin command conversion, add the
# plugin to this list.
skip-sender-proxy: []
Configuration settings
verbose-outputs
If true
, outputs command registration and unregistration logs in the console. This is primarily used for developers to identify issues with command registration.
Default value
verbose-outputs: false
Example value
verbose-outputs: true
silent-logs
If true
, turns off all logging from the CommandAPI, except for errors.
Default value
silent-logs: false
Example value
silent-logs: true
messages
Controls messages that the CommandAPI displays to players. Available messages:
missing-executor-implementation
- the message to display to senders when a command has no executor. This message supports format parameters:%s
- the executor class (lowercase). For example "craftplayer"%S
- the executor class (normal case). For example "CraftPlayer"
Default value
messages:
missing-executor-implementation: "This command has no implementations for %s"
create-dispatcher-json
Controls whether the CommandAPI should generate a command_registration.json
file showing the mapping of registered commands.
This is primarily designed to be used by developers. Setting this to false
will slightly improve command registration performance.
The command_registration.json
JSON representation of commands is in the same format as Minecraft's Data Generators Commands report. The format is Brigadier's command graph - more information about the JSON format can be found here.
Default value
create-dispatcher-json: false
Example value
create-dispatcher-json: true
use-latest-nms-version
Controls whether the CommandAPI should use the latest NMS implementation for command registration and execution.
This setting can be used to run the CommandAPI on Minecraft versions higher than it can support. For example, if the CommandAPI supports Minecraft 1.18 and Minecraft 1.18.1 comes out, you can use this to enable support for 1.18.1 before an official CommandAPI release comes out that supports 1.18.1.
This feature is very experimental and should only be used if you know what you are doing. In almost every case, it is better to wait for an official CommandAPI release that supports the latest version of Minecraft. Using use-latest-nms-version
is not guaranteed to work and can cause unexpected side-effects!
Default value
use-latest-nms-version: false
Example value
use-latest-nms-version: true
hook-paper-reload
Controls whether the CommandAPI hooks into the Paper-exclusive ServerResourcesReloadedEvent
when available.
When the CommandAPI detects it is running on a Paper-based server, its default behavior will be to hook into the ServerResourcesReloadedEvent
, which triggers when /minecraft:reload
is run. During this event, the CommandAPI runs a custom datapack reloading sequence that helps commands registered with the CommandAPI work within datapacks. See Reloading datapacks for more information on this process.
By default, this value is set to true
and the CommandAPI will hook into the ServerResourcesReloadedEvent
. If you want, you can set this to false
, and the CommandAPI will not hook into this event.
Default value
hook-paper-reload: true
Example value
hook-paper-reload: false
skip-initial-datapack-reload
Controls whether the CommandAPI should perform its initial datapack reload when the server has finished loading.
The CommandAPI automatically reloads all datapacks in a similar fashion to /minecraft:reload
in order to propagate CommandAPI commands into datapack functions and tags. This operation may cause a slight delay to server startup and is not necessary if you are not using datapacks or functions that use CommandAPI commands. This operation can be skipped by setting this value to true
.
Note that datapacks will still be reloaded if performed manually when hook-paper-reload
is set to true
and you run /minecraft:reload
.
Default value
skip-initial-datapack-reload: false
Example value
skip-initial-datapack-reload: true
plugins-to-convert
Controls the list of plugins to process for command conversion. See Command conversion for more information.
Default value
plugins-to-convert: []
Example values
plugins-to-convert:
- Essentials: ~
plugins-to-convert:
- Essentials:
- speed
- hat
- MyPlugin:
- mycommand
- MyOtherPlugin: ~
plugins-to-convert:
- Essentials:
- speed <speed>[0..10]
- speed <target>[minecraft:game_profile]
- speed (walk|fly) <speed>[0..10]
- speed (walk|fly) <speed>[0..10] <target>[minecraft:game_profile]
skip-sender-proxy
Determines whether the proxy sender should be skipped when converting a command. See Skipping proxy senders for more information.
Default value
skip-sender-proxy: []
Example value
skip-sender-proxy:
- SkinsRestorer
- MyPlugin
other-commands-to-convert
A list of other commands to convert. This should be used for commands which are not declared in a plugin.yml
file. See Arbitrary command conversion for more information.
Default value
other-commands-to-convert: []
Example value
other-commands-to-convert:
- /set
- mycommand