Skip to main content

Getting Started

infoInfoAbout 7 min

Getting Started

Requirements

You need LuckPerms to run the plugin.

Get latest LuckPermsopen in new window for Bukkit & Sponge API 8/9.
Get LuckPerms v5.3.98open in new window for Sponge API 7.
NOTE: GD only supports LuckPerms v5.

Note

GD makes heavy use of LP's default group. Make sure your LP groups are inheriting the default group or GD will not function properly. LP also strongly recommends to never disable this group. Check their Luckperms - Where to startopen in new window

Installation

⚠️ If using spark, update to latest versionopen in new window ⚠️
⚠️ Set spawn-protectionopen in new window to 0 in server.propertiesopen in new window to allow GD to protect spawn. If this is not set properly, the server will block actions before GD has a chance to see it. ⚠️

  1. Install latest LuckPermsopen in new window.
  2. Get latest version on Spigotopen in new window.
  3. Drop the jar into ./plugins
  4. Now start your server once to generate all configuration files, to check if GriefDefender was loaded sucessfully you can check console for [GriefDefender] Loaded successfully.
  5. Next shut down your server and start configuring your server.

Configuration

NOTE: There are also a few options that have to be set using your permission system, you can read more about those on the Options wiki page.

All configuration files can be found in a folder called GriefDefender in your servers config or plugins directory.

plugins/
└── GriefDefender/
    ├── ...
    ├── bans.conf
    ├── blacklist.conf
    ├── claimnames.conf
    ├── flags.conf
    ├── global.conf
    ├── gui.conf
    ├── options.conf
    ├── storage.conf
    └── tag.conf

You can change a number of settings in the config file. The file has detailed annotations that should make it clear what each option does. There are three types of configs:

  • Global
  • Dimension
  • World

Global configuration files can affect all of a server’s worlds and dimensions. This is the default level for configs.
Dimension configuration files are used to affect a certain dimension or group of worlds. These types of configs will override the global config files. World configuration files are used to modify individual worlds only.
World configs override dimension and global configs.

Claim data can be found relevant DB storage or inside the folder of the dimension the claim is in (if using file storage), e.g. all overworld world claims are saved inside

config/GriefDefender/worlds/minecraft/overworld/world/ClaimData for Sponge
plugins/GriefDefender/worlds/minecraft/overworld/world/ClaimData for Bukkit

See the Configuration page for more details on how each config works.

HOCON

GriefDefender uses a configuration format known as HOCONopen in new window. This format improves on various aspects of YAML such as ability to easily use comments per setting.

Note: All configuration sections are automatically sorted alphabetically. This cannot be changed as HOCON functions this way.

Notepad++ Syntax highlighting

  1. Copy xml below from Hocon NPP lang into a file called npp-lang-hocon.xml
  2. Open Notepad++open in new window.
  3. Click Language > Define your language…
  4. At the top, click Import.
  5. Find the file and open it.
Hocon NPP lang
<NotepadPlus>
    <UserLang name="Hocon" ext="conf" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00# 00// 01 02 03 04</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1">= : , { } [ ]</Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">true&#x000D;&#x000A;false&#x000D;&#x000A;null</Keywords>
            <Keywords name="Keywords2"></Keywords>
            <Keywords name="Keywords3"></Keywords>
            <Keywords name="Keywords4"></Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00&quot; 01 02&quot; 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="50007D" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="505050" bgColor="FFFFFF" fontName="" fontStyle="3" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="00507D" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="800000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="007D00" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="FF7D00" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

Language

GD supports the following languages : de_DE, en_US, es_ES, fr_FR, it_IT, pl_PL, pt_BR, ru_RU, tr_TR, zh_CN, zh_HK

The default language is en_US.
To change the lang, open global.conf and under message category change locale="en_US" to the language you want.

Storage

File

GD uses hocon file storage by default. This does not affect performance as all file data is loaded into memory at startup.

All file data will be stored in a folder called GriefDefender in your servers config or plugins directory.

config/
└── GriefDefender/
    ├── claimgroups/
    ├── GlobalPlayerData/
    ├── lang/
    ├── presets/
    ├── snapshots/
    ├── worlds/
    │   ├── minecraft/
    │   │   ├── normal/
    │   │   │   ├── world/
    │   │   │   │   ├── ClaimData/
    │   │   │   │   ├── SchematicData/
    │   │   │   │   └── world.conf
    │   │   │   └── dimension.conf
    │   │   └── other...
    │   └── 
    ├── bans.conf
    ├── blacklist.conf
    ├── claimnames.conf
    ├── flags.conf
    ├── global.conf
    ├── gui.conf
    ├── options.conf
    ├── storage.conf
    └── tag.conf

Database

⚠️ If specifying port in address surround with quotes or GD will not load. ⚠️

If you want to switch to database storage, do the following

  1. Open storage.conf file.
  2. Change storage-method value to a supported database format.
    For example, if you want to use mysql, you would set this value to mysql.
  3. Set address to DB address and port. Make sure to use quotes if specifying a port. Ex. "localhost:1000"
  4. Set database-name. If this value is not changed, GD will create a database with name griefdefender if one does not exist.
  5. Set username to DB username.
  6. Set password to DB password surrounded by quotes.
  7. Adjust any other settings as needed.

Bedrock

If your server allows bedrock users to join, make sure to read Bedrock page in order to configure GD properly.

GUI

GD defaults users to chat GUI. If you want users to default to inventory GUI, they must have the permission griefdefender.login.inventory-gui. See GUI page for more info.

Blacklist

GriefDefender now delivers default blacklist settings for various noisy actions in the minecraft world in order to provide better performance out-of-the-box. When an item, block, or entity id is blacklisted, GriefDefender will ignore it when processed in an event. If you find an action not appearing in GD's debugger then it either is blacklisted or not properly firing an event. Make sure to review your blacklist.conf and remove any id's you do not want to blacklist for your server.

See blacklist for more info on how to configure.

Economy Mode

⚠️ Before enabling economy mode, make sure to test on a TEST server to make sure all settings are working properly. ⚠️

By default, GD allows players to accrue claim blocks to be used for claim creation.
However, If you want all claims created to use economy directly instead of claim blocks then set economy-mode to true in global.conf.
With economy-mode turned on, all claim creations will prompt players with a confirmation of claim cost. Once confirmed, the funds will be taken from the player account.
If you want to bypass these confirmations, set the permission griefdefender.user.claim.economy.create-confirm to false.

After this setting is turned on, open up options.conf and configure the following options to a value greater than 0

  • economy-block-cost
  • economy-sell-return

Note: If you want to use the /buyclaimblocks or /sellclaimblocks commands then you MUST configure the above 2 options as well. These commands do not require economy-mode to be turned on.

Permissions

⚠️ It is VERY IMPORTANT you follow Permissions before proceeding. ⚠️
⚠️ If you want to remove user permissions that do not apply to your server, it is HIGHLY recommended to keep griefdefender.user.* applied to them and simply deny the permissions you do not. If you remove griefdefender.user.* and attempt to apply all GD permissions manually, you will run into many issues.

After install GriefDefender correctly, you need to give your players permission to claim land, they aren't given by default. The only permission needed for basic GD setup is griefdefender.user.*. For basic admin setup, give admins the permission griefdefender.admin.* and griefdefender.user.*.

If you want more fine tuned permissions you can find all permissions here

If you believe that commands might be a little longer or hard to memorize, consider creating custom alias. Click here for more information

To apply the above permissions to a group in LuckPerms, run the following command

/lp group <group> permission set griefdefender.user.*

For <group> use your default group, use default if you don't have one.

Once GD is installed and running, see Claim Management to learn how to create a protection claim and manage it.

Options

⚠️ It is VERY IMPORTANT you follow options.conf before proceeding. ⚠️
⚠️ All persisted options metaopen in new window set in LuckPerms will take priority over defaults in options.conf ⚠️

If you want to configure settings such as how many initial blocks a player can start with, claim creation limits, etc.. then you should start out by adjusting GD's default options found in options.conf.
All default option settings are applied at server startup.