GPFlags

GPFlags

Plugin

Flags for GriefPrevention claims

Server Game MechanicsManagementUtility

2,320 downloads
23 followers
Created2 years ago
Updateda month ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

GPFlags

GPFlags is a plugin to allow players to set flags for the world and GriefPrevention claims. It's similar to WorldGuard, but it's more performant, easier to use, and includes many more useful flags than WorldGuard does. Admins can also empower players to self-serve by giving them access to specific flags, which they can then only use in claims they own.

GriefPrevention is required to use GPFlags.

Flags

There are over 80 flags and I frequently add more. A few of the more popular flags are NoMonsterSpawns, EnterMessage, AllowPvP, and NoEnter. If there's a flag you don't see here, contact me through the support Discord and I'll see what I can do.

Click to see all flags
Flag Description
AllowBlockExplosions Similar to the GP /claimexplosions command but this one will persist through restarts.
AllowInfest Allows silverfish to infest blocks.
AllowPvP If in the config "PvP Only In PvP-Flagged Claims" is set to true, PvP will be off in the world, and you can then add a flag to a claim to allow PvP in specific claims. There is also an optional message to be sent to players when they enter these claims (can be changed in the config).
AllowWitherDamage Allows withers to deal damage in the claim.
BuyAccessTrust Allows players to buy access trust in the claim. They can use /buyaccesstrust while standing in the claim to buy access trust. The price is determined when setting the flag.
BuyContainerTrust Allows players to buy container trust in the claim. They can use /buycontainertrust while standing in the claim to buy container trust. The price is determined when setting the flag.
BuyBuildTrust Allows players to buy build trust in the claim. They can use /buybuildtrust while standing in the claim to buy build trust. The price is determined when setting the flag.
BuySubclaim Allows players to buy the subclaim. Buying the subclaim will give the buyer all levels of trust and will disable the flag to prevent other players from buying the subclaim after that.
ChangeBiome You can now change the biome in claims. You can also give players permission to set flags, and they can change the biomes in their own claims. When you are using the command to set a biome, it will give you a scrollable list of available biomes. Make sure to type them in exactly. I made the biomes that a player could use permission-based so you can stop players from using certain biomes. Give players the permission gpflags.flag.changebiome.<biomename> for the biomes they are allowed to use. You need to use the BukkitAPI names for biomes, which can be found here. When a claim is deleted or a ChangeBiome flag is unset, the biome will revert back to its previous state to make sure your world stays looking clean. This will prevent players from running around the world, claiming land, changing the biome, abandoning the claim, and making your world look patchy. Note that removing the flag converts the claim into the biome located just north of the claim which is only sometimes the original claim.
CommandBlackList Blacklist commands. Prevents players from using any commands you list in the flagged area unless they have the gpflags.bypass.commandblacklist permission.
Example usage: /SetClaimFlag CommandBlackList sethome;setwarp;kit
CommandWhiteList Whitelist commands. The flag prevents players from using any commands except those you list in the flagged area unless they have the gpflags.bypass.commandwhitelist permission.
Example usage: /SetClaimFlag CommandWhiteList tell;me;home
EnterActionbar Shows an actionbar to the player when they enter this area (Variables: %owner% = Owner of claim in flag, %name% = player in event).
EnterCommand Runs a console command when the player enters this area (Variables: %owner% = Owner of claim in flag, %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
EnterCommand-Owner Runs a console command when the owner of this claim enters the claim (Variables: %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon)
EnterCommand-Members Runs a console command when a member of this claim enters the claim (Variables: %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
EnterPlayerCommand The same as the EnterCommand flag, except this one will run commands from a player vs from console. (Variables: %owner% = Owner of claim in flag, %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
EnterMessage Sends a message to the player when they enter this area (Variables: %owner% = Owner of claim in flag, %name% = player in event).
ExitActionbar Shows an actionbar to the player when they exit this area (Variables: %owner% = Owner of claim in flag, %name% = player in event).
ExitCommand Runs a console command when a player exits this area (Variables: %owner% = Owner of claim in flag, %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
ExitCommand-Owner Runs a console command when the owner of this claim exits the claim (Variables: %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
ExitCommand-Members Runs a console command when a member of this claim exits the claim (Variables: %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
ExitPlayerCommand Same as ExitCommand except this will run the command from player vs from console (Variables: %owner% = Owner of claim in flag, %name% = player in event, %uuid% = uuid of player in event) For multiple commands, separate with a semicolon (;) (make sure to not have spaces after the semicolon).
ExitMessage Sends a message to the player when they leave this area (Variables: %owner% = Owner of claim in flag, %name% = player in event).
HealthRegen Health is regenerated when the player is in this area.
InfiniteArrows Arrows shot into this area will be given back to the player after it makes contact.
KeepInventory A player will keep their inventory if they die in this area.
KeepLevel Prevents players' xp from dropping when they die in this area.
KeepLoaded Will keep the claim loaded.
NetherPortalConsoleCommand Executes console command when entering a Portal. Runs one or more console commands when a player steps through a nether portal in the flagged area. Use %name% or %uuid% placeholders to target the player stepping through the portal, and separate multiple command lines with semicolons (;). If your in-game command entry box is too short for all your commands, consider backing-up your flags.yml file and then modifying it with a text editor to get more command lines in for a single portal, then using /GPFReload to load your edited file.
Example usage: /SetClaimFlag NetherPortalConsoleCommand tp %name% 0, 65, 0;xp 10L %name%
NetherPortalPlayerCommand Executes player command when entering a Portal. Causes any players who walk into a nether portal in the area where the flag is applied to automatically run a command line instead of teleporting (it runs as the player, not as a console command). Helpful to give players a /home portal or random wilderness teleport portal, for example.
NoAnvilDamage Prevents anvils from being damaged from being used. This flag is only supported on Paper and forks of Paper.
NoBlockFade Prevents blocks from fading, melting, or disappearing based on world conditions.
NoBlockForm Prevents blocks from forming or spreading based on world conditions.
Examples: snow forming due to a snow storm, ice forming in a snowy biome like taiga or tundra, obsidian/cobblestone forming due to contact with water, and concrete forming due to mixing of concrete powder and water.
NoBlockGravity Prevents blocks like sand and gravel from falling.
NoChorusFruit Prevents players from teleporting when they eat chorus fruit in this area.
NoCombatLoot Clears drops on entity death. When a mob (except for players) dies in an area with this flag active, no loot will drop. Using this, you can create combat challenges where players can keep their inventories and experience (with other flags above), but prevent players from abusing those flags to farm loot. Player death loot is controlled by the above KeepInventory flag.
NoCoralDecay Prevents corals from decaying.
NoElytra Prevents players from using elytra.
NoEnderPearl Prevents players from teleporting when they throw an ender pearl in this area.
NoEnter Prevents all players from entering this area.
NoEnterPlayer Blocks specific players from entering this area.
NoExpiration Disables claim expiration.
NoExplosionDamage Disables damage caused by explosions (ie: creepers & tnt).
NoFallDamage Prevents players from taking fall damage in this area.
NoFireDamage Prevent fire from damaging blocks in this area.Requires FireDamage in the GP config to be enabled!
NoFireSpread Prevent fire from spreading in this area. Requires FireSpread in the GP config to be enabled!
NoFlight Prevents players from flying in this area.
NoFluidFlow Prevents fluid from flowing in this area.
NoGrowth Stop plants from growing (crops) and blocks from spreading (podzol, grass, seagrass, kelp) in this area.
NoHunger Prevents hunger loss for all players who enter this area.
NoIceForm Stops ice from forming in this area.
NoItemDamage Prevents players' items from taking durability hits.
NoItemDrop Prevents players from dropping items in this area.
NoItemPickup Prevents players from picking up items in this area.
NoLeafDecay Prevents leaves from decaying in this area.
NoLootProtection Disables loot protection on player death. Disables GriefPrevention's player death loot "anti-theft" feature in the flagged area, allowing any player to pick up the items a player drops when he or she dies in that area. Useful for competitive areas where loot can be a reward, like PvP arenas.
NoMapMaking Prevents making maps.
NoMcMMODeathPenalty Disables McMMO death penalty - cancels McMMODeathPenalties when a player dies in a flagged area.
NoMcMMOSkills Prevents mcMMO skill usage (activated skills, secondary skills, disarms, etc) in the flagged area. You might use this to create PvE challenge areas or specialized PvP arenas where mcMMO won't give some players an advantage over others.
NoMcMMoXPGain Disables McMMO experience gaining in the claim.
NoMobDamage Prevents mob damage in this area. This does not affect players, this will only prevent entities from damaging passive mobs. (ex: wolves cant hurt sheep)
NoMobSpawns Prevents ALL mobs from spawning in this area, good or bad!
NoMobSpawnsType Prevents specific types of mobs from spawning in this area. Can support multiple types. Must use Spigot EntityType enums. To add multiple types, separate with a semi-colon ;
Example usage: /setclaimflag NoMobSpawnsType creeper;cow;zombie;wandering_trader;phantom Permissions for this flag are per mob type, for example, gpflags.flag.nomobspawnstype.cow.
NoMonsters Prevents all bad mobs from spawning in this area, and will also prevent them from entering the area. If they do, they will be removed.
NoMonsterSpawns Prevents all bad mobs from spawning in this area. If they spawn outside of the area, they will be able to walk in.
NoOpenDoors Prevents players from opening doors/gates/trapdoors in a claim. This flag will follow GP's permissions, meaning an owner and a member with access trust or higher will be able to open doors. Supports parameters (doors, trapdoors, gates), to use multiple parameters, separate with a comma.
NoPetDamage Prevents players from damaging pets in this area
NoPlayerDamage Prevents players from taking any damage in this area
NoPlayerDamageByMonster Prevents players from taking damage from monsters in this area
NoSnowForm Prevents snow from forming in this area
NoVehicle Stops players from placing and using vehicles (boats/minecarts) in claims
NoVineGrowth Stops vines from growing in this area
NoWeatherChange Disables weather change - prevents weather from changing in a world, even by operators using commands. If you change your mind about the weather in a world, you have to first disable the flag, then change the weather, then re-enable the flag. You should use this only with /setserverflag or /setworldflag, because it has no effect on individual land claims or subdivisions. Note: If you lock the weather during a thunderstorm, it will never end. If you lock the weather when there is no thunder, a storm will never come.
NotifyEnter Sends the claim owner a message when a player enters the claim.
NotifyExit Sends the claim owner a message when a player exits the claim.
OwnerFly Allows an owner of a claim to fly within their own claim
OwnerMemberFly Allows owners of the claim and members with access trust or higher to fly within the claim
PlayerTime You can set the time in a claim for a player. When the player enters, their time will be set to one of the 4 options. When they leave the claim, it will reset to match world time. Usage: /setclaimflag playertime <day/noon/night/midnight>
PlayerWeather You can set the weather a player will see when they enter a claim. This is client-side and will not affect the rest of the world. /setclaimflag playerweather <sun/rain>. Thunderstorms are not supported.
ProtectNamedMobs This will protect mobs that have a name (ie: using a name tag or via commands). Players with container trust will still be able to harm/kill said mob, but visitors to your claim will not be able to harm them.
RaidMemberOnly Prevent non-members of claims from triggering raids. (This may be a temporary flag if GP decides to put something directly in GP)
ReadLecterns Allows players to read but not manipulate, any lectern with a book on a claim. This flag has bugs that I do not plan to work on.
RespawnLocation Sets spawn location for the claim (Useful for PvP arenas). Overrides the usual respawn rules to respawn the player in a specific location who dies in the flagged area. For example, consider respawning a player at the beginning of a parkour challenge or just outside a pvp arena. You may optionally specify pitch and yaw (facing direction) as well.
Example usages: /SetFlag RespawnLocation world 112.5 68 265.5 or /SetFlag RespawnLocation world 112.5 68 265.5 90 45
SpawnReasonWhitelist Denies all mob spawns unless the spawn reason is whitelisted.
SpleefArena Complex flag to create spleef arenas. SpleefArena - Completely automates a Spleef minigame (players compete to remove blocks out from under each other until someone falls) in the flagged area.
Example usage: /SetFlag SpleefArena minecraft:snow_block minecraft:bricks 20.
The above example will generate a snow block (minecraft:snow_block) 20 blocks above every bricks block (minecraft:bricks) in the flagged area every time a player dies in the flagged area. It will also allow ONLY snow blocks to be broken by any player even without build permission, and won't drop those blocks as items when they're broken. To set up a spleef arena, first flag the claim or subdivision as shown above. Then dig down underneath where the breakable arena surface (snow block in the above example) will be and use your marker blocks (bricks in the above example) to indicate the shape of your arena, which does NOT have to be flat, rectangular, or single-block thick. The y offset (the last flag parameter) dictates how far down you have to place the marker blocks from where you want the arena surface to generate. To test your settings, use the Vanilla /kill command while standing in the flagged area. Your death will trigger the arena surface to be built per your specifications.
TrappedDestination Sets trapped destination for the claim (Useful for admin claims). Allows players to use GriefPrevention's /trapped command in administrative land claims by specifying where the player will go when he gets "unstuck". Ordinarily, administrative land claims don't allow players to use the command at all.
ViewContainers Allows players to view but not manipulate, any container on a claim.

Permissions

Command Permissions

Command Description Permission
/setclaimflag Sets a flag in a claim. gpflags.command.setclaimflag
/unsetclaimflag Removes a flag from a claim. gpflags.command.unsetclaimflag
/setworldflag Sets a flag to the world. (For admins) gpflags.command.setworldflag
/unsetworldflag Removes a flag from the world. (For admins) gpflags.command.unsetworldflag
/setserverflag Sets a flag to the server. (For admins) gpflags.command.setserverflag
/unsetserverflag Removes a flag from the server. (For admins) gpflags.command.unsetserverflag
/setdefaultclaimflag Set a default claim flag which applies to all existing and future claims by all players but can be overridden with /setclaimflag. (For admins) gpflags.command.setdefaultclaimflag
/unsetdefaultclaimflag Removes a default claim flag. (For admins) gpflags.command.unsetdefaultclaimflag
/setclaimflagplayer Sets a flag for the claim where another player is standing. (For admins) gpflags.command.setclaimflagplayer
/unsetclaimflagplayer Removes a flag for the claim where another player is standing. (For admins) gpflags.command.unsetclaimflagplayer
/bulksetflag Sets a flag for all claims for a player. (For admins) gpflags.command.bulksetflag
/bulkunsetflag Removes a flag for all claims for a player. (For admins) gpflags.command.bulkunsetflag
/listclaimflags Shows a list of all flags set in the claim. gpflags.command.listclaimflags
/allflags Shows a list of all flags that you have permission to use. gpflags.command.allflags
/gpflags help Shows a list of all gpflags commands that you have permission to use. gpflags.command.help
/gpflags reload Reloads the configuration files. gpflags.command.reload

Flag Permissions

In addition to the permissions in the table above, players also need permission for the flag that they are trying to modify. Flag permissions are formatted gpflags.flag.<flagname>. For example, gpflags.flag.noenter grants permission to use the noenter flag.

Bypass Trust Permissions

You can grant permissions to configure how much trust a player has to have in the claim to become immune to the restrictions or other effects from a flag.

Bypass trust permissions are only available for the following flags:

  • commandblacklist
  • commandwhitelist
  • noenderpearl
  • noelytra
  • nochorusfruit
  • noitemdrop
  • noitempickup
  • noflight
  • nomcmmoskills
  • nomcmmoxp
  • novehicle

The trust levels are the following:

  • access - Allows you to bypass in claims you have accesstrust in.
  • inventory - Allows you to bypass in claims you have containertrust in.
  • build - Allows you to bypass in claims you have trust in.
  • manage - Allows you to bypass in claims you manage.
  • ownclaim - Allows you to bypass in claims you own.
  • adminclaim - Allows you to bypass in admin claims.
  • nonclaim - Allows you to bypass world or server flags.

The permission format is gpflags.bypass.<flagname>.<trust>. For example, if you wanted someone to be able to bypass the novehicle flag in claims they own, you would grant them gpflags.bypass.novehicle.ownclaim. If you want to allow someone to bypass the flag in all cases, you can leave out the permission level and it'll allow them to bypass the flag in all cases. For example, gpflags.bypass.novehicle will allow someone to bypass the novehicle flag in all cases.

Bypassing flags in all cases

The following flags also have bypass permissions using the same format but cannot be associated with a trust level:

  • nopotioneffects
  • noenter
  • notifyenter
  • notifyexit

The entercommand and exitcommand flags can be bypassed with gpflags.bypass.entercommand and gpflags.bypass.exitcommand, respectively, and these will apply to the base flag as well as the owners and members subtypes.

For players who should be able to fly both in and outside of claims

Finally, gpflags.bypass.fly allows you to keep fly enabled when entering and exiting claims and is not associated with any flags.

Dev Builds

Development builds can be found on Jenkins and in the support Discord. If you are going to update to a development build, or really even if you're just updating to a stable build, it's probably a good idea to take a backup of your flags.yml just in case something goes wrong.

Usage Stats

See more stats here.

External resources



Project members

DrBot

Owner


Technical information

License
GPL-3.0-only
Project ID