config.yml

The VoidGuard config has both "global" settings and world-specific settings.

Reminder: A boolean is a true or false value. An integer is a non-fraction number such as -1, 0, or 2. A string is a group of letters and/or punctuation, such as "hello there" or "this is great!".

Global Settings

bedrock-command-distance
Positive Integer. Defines the distance that will be used with /void setbedrock

auto-bedrock-changes
Boolean. Determines if VoidGuard should periodically use player locations to apply world changes according to world settings.

slower-auto-changes
Boolean. Automatic world changes will be set with longer interval. Unlikely to have obvious impact, but setting to true gives slower servers a chance to fully process world changes.

hook-metrics
Boolean. Allows VoidGuard to attempt hooking into Hidendra's Metrics. This setting respects the config in the PluginMetrics data folder.

World Settings

The default section is applied to worlds without configuration sections of their own. Use the default section as a template to create per-world sections.

set-as-bedrock-layers
Integer List. Define world layers as exclusively bedrock. Note: The very bottom, first layer of any world is numbered as 0.

prevent-bedrock-layer-break
Boolean. This enables the features to prevent tree breaking and creative users from breaking bedrock layers.

remove-bedrock-layers
Integer List. Define world layers that may contain bedrock "noise" which you'd like replaced by another material.

replacement-material
Bukkit Material enum. Define the block material to replace bedrock in the layers defined for "remove-bedrock-layers". For best material matching, please use the exact material name as shown in the linked Bukkit api page, including using uppercase and underscores as shown.

use-trespass-commands
Boolean. Whether to run commands when a player goes into void areas either below or above generated terrain.

trespassing-above-layer
Positive Integer. Define the layer that a player going above will be considered as trespassing. Set this to an unusually high number if you want extra space for flying by privileged members while using restricting commands for going below the world.

trespassing-below-layer
Integer. Define the layer that a player going below will be considered as trespassing.

trespass-commands
String List. Define the commands that will run when a player is considered as trespassing. Notable usage is teleporting a player to spawn or warning the player about being in a restricted area.

Trespass Command Notes

  • The commands may repeat if they do not cause the player to immediately leave the void area
  • There is a short cooldown on the command repetition so that players potentially have a chance to leave the void instead of being spammed.
  • The variables <player> and <world> are available and will be replaced with appropriate equivalents.
  • Commands are ran as console unless you prefix the command with "p:", such as "p:say Hello" will make the player use the command "/say Hello"
  • Limit a command to only running if a player trespasses the "above" limit by prefixing the command with "above:", such as "above:tell <player> You are too high up!"
  • Limit a command to only running if a player trespasses the "below" limit by prefixing the command with "below:", such as "below:tell <player> You are too far down!"
  • To use a command that includes a single quote, instead use two single quote in a row at that spot.

Example Config Files

Validation

The config.yml file is a YAML document, which is sensitive to quantity (and type) of whitespace. Do not use the Tab key unless your text editor is configured to consider a tab as two or four spaces. If you get a console error that mentions "SnakeYML", there's a very good chance there's either an invisible Tab character or the wrong number of Space characters somewhere.

A good way to prevent errors on loading, is to paste the contents of your configuration file at a YAML Parser/Validator. If the contents of the file are simply reformatted and no errors are displayed, the file should be set to be loaded. If instead you get an error, carefully read it for which section/file line the error is at and what kind of error it is.