WorldGuard Copyright (c) 2010 sk89q Licensed under the GNU Lesser General Public License v3 Introduction ------------ WorldGuard has a number of features, any of which you can choose to use or not: - Enforce only one session for a player on a server (can't login twice). - Block creeper explosions. - Block TNT explosions. - Block lighters from setting fires. - Block all fires. - Disable fall damage, lava damage, fire damage, and/or water damage. - Allow fire but prevent it from burning certain blocks. - Prevent lava from starting fires. - Restrict lava spreading to only some block types. - Simulate classic-esque water by letting water infinitely expand in area (only if there is a block underneath). - Prevent water from destroying blocks like Redstone wire and flowers. - Simulate the function of the sponge from Minecraft Classic. - Notify admins, block, log, kick or ban for the use of certain block types or items. - Temporarily stop fire globally with some commands. - Destroy tools on drop to alleviate the durability cheat. - Prevent gravel and sand from falling. - Allow portal blocks to be placed anywhere. hMod is required as WorldGuard is a plugin for hMod. Configuration ------------- A "worldguard.properties" will be created the first the time that you load WorldGuard on your server. You can either restart your server or use /reloadplugin WorldGuard to reload the configuraton file after editing it. NOTE: Some features may require a custom version of hMod. When the server is loaded with the plugin, WorldGuard will tell you the features unsupported by your version of hMod. - summary-on-start (def. true) Print a summary of WorldGuard's protection settings at-a-glance when the plugin is loaded. - item-durability (def. false) **Requires special version of hMod Enables item durability. - classic-water (def. false) Toggle use of classic water. Be foreward that your world may be flooded if you are not careful. If you have WorldEdit, you can use //drain in such an event, although that will drain the entire pool as well. This classic-esque water will only spread infinitely over ground, but if there are air blocks underneath, the water will not spread (preventing waterfalls from becoming tsunamis). - simulate-sponge (def. true) Toggle simulation of the sponge from Classic. It blocks water from flowing near the sponge. - sponge-radius (def. 3) The radius of the sponge's effect. The default is that of Classic, creating a 5x5x5 cuboid free of water. Increasing the number will increase server load exponentially, although 3-5 has fairly low impact. - no-physics-gravel (def. false) **Requires special version of hMod Prevents gravel from falling due to gravity. - no-physics-sand (def. false) **Requires special version of hMod Prevents sand from falling due to gravity. - allow-portal-anywhere (def. false) **Requires special version of hMod Allows you to place portal blocks anywhere. - enforce-single-session (def. true) Enforce single sessions. If the player is already found to be on the server when s/he logs in, the other player will be kicked with an informative message. The inventory will have been saved before the new session starts. - block-tnt (def. false) Block TNT explosions. TNT will still explode client-side but the blocks will be "restored" in a few seconds afterwards. - block-lighter (def. false) Block flint and steel fires. Those with access to the commands /uselighter or /lighter can bypass this. /uselighter is not a real command; it is only used for permissions. - block-creepers (def. false) Block creeper explosions from destroying terrain (and possibly from causing damage). - disable-lava-fire (def. true) Prevent lava from starting fires. - allowed-lava-spread-blocks (no default) List of block names/IDs to allow lava to spread to. Leave blank to disable this feature. - disable-all-fire-spread (def. false) Disable all fire from spreading. - disallowed-fire-spread-blocks (no default) List of block names/IDs to prevent fire from spreading to. Leave blank to disable this feature. Enabling disable-all-fire-spread will override this function. - disable-water-damage-blocks (no default) List of blocks that should not be destroyed by water (Redstone wire, minecart tracks, flowers, etc.). - item-drop-blacklist (no default) List of block names/IDs to destroy on drop. This can alleviate the durability cheat that allows you to drop your tools to fix their durability. You can also enforce this with the blacklist but this is an easier way to do it (this way also prints a more friendly message than if you used the 'tell' action of the blacklist). - login-protection (def. 3) Number of seconds to keep a player invincible when the player joins. - spawn-protection (def. 0) Number of seconds to keep a player invincible when the player spawns. This does not apply to players joining the server. - kick-on-death (def. false) Kick players when they die (and respawn). This is to work around the issues of invisible players when players die. - disable-fall-damage (def. false) - disable-lava-damage (def. false) - disable-fire-damage (def. false) - disable-water-damage (def. false) Disable various types of damage. - log-console (def. true) For blacklist log actions, print to console. - log-file (def. false) For blacklist log actions, log to file. - log-file-path (def. "worldguard/logs/%Y-%m-%d.log") Log blacklist events to file. You can use these patterns in the path: %Y the year (YYYY) %m the month (MM) %d the day (DD) %W the week of the year (00-52) %H 24-hour time (HH) %h 12-hour time (HH) %i the minute (mm) %s the second (ss) %u the user's name %% translates to a single percent sign "%" The files are not automatically rotated if they get large so you should perhaps put a week in the filename at least. Escape backslashes with another backslash, like so: C:\path\to\log.txt -> C:\\path\\to\\log.txt - log-file-open-files (def. 10) The number of log files to keep open at once. Unless you use dynamic patterns in the path, the value of this variable won't matter. However, if, for example, you use a player's username in the filename and you have many users who cause logged events to occur, files would have to be opened for each user and this parameter would matter. - log-database (def. false) Log blacklist events to database. - log-database-dsn (def. "jdbc:mysql://localhost:3306/minecraft") Connection string. A string to use for MySQL would be: jdbc:mysql://localhost:3306/minecraft The "minecraft" part at the end is the database name. Escape colons with a backslash, like so: jdbc:mysql://localhost:3306/minecraft -> jdbc\:mysql\://localhost\:3306/minecraft - log-database-user (def. "root") Database username. - log-database-pass (def. "") Database password. - log-database-table (def. "blacklist_events") Database table to use. Commands -------- - /stopfire and /allowfire Disables and enables fire spread globally. Both commands require the permission to use only "/stopfire. Re-enabling fire spread with this command will not override other fire spread control features of WorldGuard. Note that disabling fire does not disable fire damage but fire at least won't spread. - /god Toggles your invincibility. Players must have permission to use "/god" to be able to use this command. You can also use this command to toggle the invincibility of others although you must have the "/godother" permission. Server Commands --------------- - fire-stop and fire-allow Disables and enables fire spread globally. Re-enabling fire spread with this command will not override other fire spread control features of WorldGuard. Note that disabling fire does not disable fire damage but fire at least won't spread. Blacklists ---------- Blacklists let you control the use of blocks and items. You can have certain rules apply to only some groups. Edit the included worldguard-blacklist.txt file and follow the instructions inside. The file comes with the download for WorldGuard. Other Features -------------- To give someone invincibility every time s/he joins the server, create a wg-invincible group and add the group to the user or have the user's group inherit this group. To give someone the ability to breathe under water, create a wg-amphibious group and add the group to the user or have the user's group inherit this group. Thanks ------ While I would like to thank everyone for their support, I would like to say thanks to the following individuals for their direct contributions to WorldGuard: - Sturmeh, for contributing the original durability workaround - Meaglin, for changing the on flow hook at my request - Dinnerbone, for implementing the on item pick up hook at my request, and also for figuring out the durability bug in the process