Permission Nodes

Overview

SimpleClaimSystem ships six families of Bukkit permission nodes. They are independent from the in-claim role permissions: those (PLACE_BLOCK, INTERACT_CHEST, etc.) are configured per claim and per role through the in-game GUI; these nodes are configured server-wide through your permissions plugin (LuckPerms recommended) and decide what a player is allowed to do before the claim system even gets consulted.

FamilyWhat it gatesWildcard
scs.claim.<sub>Each /claim subcommand (radius, list, invite, fly, ...).scs.claim.*
scs.admin.<sub>Each /scs admin subcommand (reload, player, importFromV1, ...).scs.admin.*
scs.permission.<key>Whether a player may toggle a specific role permission in the claim GUI (PLACE_BLOCK, INTERACT_CHEST, ...). Lowercase key.scs.permission.*
scs.flag.<key>Whether a player may toggle a specific flag in the claim GUI (creeper_explosions, fire_spread, ...). Lowercase key.scs.flag.*
scs.bypass.<key>Skip the matching per-claim role check at runtime (enter, teleport, place_block, ban, ...). Lowercase key. Holders are treated as if the role allows the action everywhere.scs.bypass.*
scs.limit.<type>.<amount>Per-rank limits (claims, chunks, radius, members, cost, ...). See the Limits section.n/a (highest match wins)

Critical for fresh installs: scs.permission.* and scs.flag.* are not declared with default: true in plugin.yml. On a server that doesn't grant them explicitly, regular players will see toggles in the GUI but won't be able to flip them. Grant scs.permission.* and scs.flag.* to your default rank so claim owners can configure their own claims. See the LuckPerms tutorial below.

OPs and anyone with scs.admin.* bypass every check (toggle gates and runtime gates). scs.bypass.* is the surgical equivalent for runtime checks only: it lets a holder ignore the per-claim role permissions without granting access to admin tooling.

scs.permission.* (toggle gating for role permissions)

Every in-claim role permission has a matching Bukkit node scs.permission.<key> (lowercase). When a player opens /claim permissions, each toggle is hidden / non-clickable unless the player has the corresponding node, the wildcard scs.permission.*, scs.admin.*, or is OP.

Use this when you want to expose only a subset of toggles to regular players (e.g. let visitors-by-default never be flipped to allow building) while still allowing staff to override anything.

Block & Container

scs.permission.place_block, scs.permission.destroy_block, scs.permission.destroy_spawners, scs.permission.use_bucket, scs.permission.trample_crops, scs.permission.ignite_block, scs.permission.interact_chest, scs.permission.interact_trap_chest, scs.permission.interact_ender_chest, scs.permission.interact_barrel, scs.permission.interact_shulker_box, scs.permission.interact_hopper, scs.permission.interact_dropper, scs.permission.interact_dispenser, scs.permission.interact_furnace, scs.permission.interact_blast_furnace, scs.permission.interact_smoker, scs.permission.interact_brewing_stand, scs.permission.interact_anvil, scs.permission.interact_enchanting_table, scs.permission.interact_beacon, scs.permission.interact_smithing_table, scs.permission.interact_loom, scs.permission.interact_cartography_table, scs.permission.interact_stonecutter, scs.permission.interact_grindstone, scs.permission.interact_crafting_table, scs.permission.interact_composter, scs.permission.interact_cauldron, scs.permission.interact_jukebox, scs.permission.interact_lectern_read, scs.permission.interact_lectern_take, scs.permission.interact_bookshelf, scs.permission.interact_decorated_pot, scs.permission.interact_flower_pot, scs.permission.interact_brush_block, scs.permission.interact_candle, scs.permission.interact_campfire, scs.permission.interact_bell, scs.permission.interact_dragon_egg, scs.permission.interact_shelf, scs.permission.interact_vault, scs.permission.interact_trial_spawner, scs.permission.interact_spawner, scs.permission.interact_command_block, scs.permission.interact_jigsaw, scs.permission.interact_structure_block, scs.permission.interact_target_block, scs.permission.interact_sculk_catalyst, scs.permission.interact_sculk_shrieker, scs.permission.interact_painting, scs.permission.interact_sign, scs.permission.interact_bed

Redstone & Doors

scs.permission.interact_button, scs.permission.interact_lever, scs.permission.interact_pressure_plate, scs.permission.interact_tripwire, scs.permission.interact_comparator, scs.permission.interact_repeater, scs.permission.interact_note_block, scs.permission.interact_door, scs.permission.interact_trapdoor, scs.permission.interact_fence_gate, scs.permission.sculk_sensor_trigger

Entities

scs.permission.place_entity, scs.permission.destroy_entity, scs.permission.interact_entity, scs.permission.damage_entity, scs.permission.shear_entity, scs.permission.feed_entity, scs.permission.ride_entity, scs.permission.mount_entity, scs.permission.lead_entity, scs.permission.name_tag_entity, scs.permission.breed_entity, scs.permission.tame_entity, scs.permission.milk_entity, scs.permission.capture_entity, scs.permission.interact_villager, scs.permission.interact_golem, scs.permission.trade_wandering_trader

Decorations & Vehicles

scs.permission.place_armor_stand, scs.permission.destroy_armor_stand, scs.permission.interact_armor_stand, scs.permission.place_item_frame, scs.permission.destroy_item_frame, scs.permission.interact_item_frame, scs.permission.place_painting, scs.permission.destroy_painting, scs.permission.place_vehicle, scs.permission.destroy_vehicle, scs.permission.interact_vehicle

Item Usage

scs.permission.use_bow_crossbow, scs.permission.use_trident, scs.permission.use_ender_pearl, scs.permission.use_chorus_fruit, scs.permission.use_firework, scs.permission.use_fishing_rod, scs.permission.use_wind_charge, scs.permission.use_shield, scs.permission.use_elytra, scs.permission.use_potion, scs.permission.use_spyglass, scs.permission.use_brush, scs.permission.use_bundle, scs.permission.use_map, scs.permission.use_fire_charge, scs.permission.use_snowball, scs.permission.use_egg, scs.permission.use_portal

Player Actions

scs.permission.pickup_item, scs.permission.drop_item, scs.permission.exp_drop_pickup, scs.permission.enter, scs.permission.leave, scs.permission.natural_teleport, scs.permission.other_teleport, scs.permission.fly, scs.permission.sleep, scs.permission.eat, scs.permission.drink, scs.permission.crouch, scs.permission.frostwalker, scs.permission.projectile_launch, scs.permission.totem_use, scs.permission.equip_armor, scs.permission.equip_item, scs.permission.receive_beacon_effects

2.5.0 change: the single TELEPORT permission was split into NATURAL_TELEPORT (ender pearl, chorus fruit, nether/end portals, end gateway) and OTHER_TELEPORT (plugin/command teleports — /tp, /warp, /home, etc.). Existing claims auto-migrate: the old TELEPORT value is copied to both new keys, then the legacy key is stripped. The bypass nodes scs.bypass.teleport (legacy alias kept for back-compat) and the new scs.bypass.natural_teleport / scs.bypass.other_teleport follow the same split.

The full list is generated from the menu_permissions_*.yml files in the guis/ folder. Adding a new toggle there with a permission: "scs.permission.my_key" entry plugs it into the same gating system at runtime, no Java change required.

scs.flag.* (toggle gating for flags)

Same model as scs.permission.* but for the world / environment flags. The Bukkit node is scs.flag.<key> in lowercase. Without the matching node (or scs.flag.* / scs.admin.* / OP), the flag is non-clickable in /claim flags.

Explosions

scs.flag.creeper_explosions, scs.flag.charged_creeper_explosions, scs.flag.tnt_explosions, scs.flag.minecart_tnt_explosions, scs.flag.wither_explosions, scs.flag.wither_skull_explosions, scs.flag.bed_explosions, scs.flag.respawn_anchor_explosions, scs.flag.ender_crystal_explosions, scs.flag.fireball_explosions, scs.flag.wind_charge_explosions, scs.flag.entity_explode, scs.flag.explosion_block_damage, scs.flag.explosion_damage, scs.flag.tnt_chain_reaction, scs.flag.block_explosion_chain

Fire

scs.flag.fire_burn, scs.flag.fire_ignite, scs.flag.fire_spread, scs.flag.fire_damage, scs.flag.entity_burn, scs.flag.entity_combust

Nature

scs.flag.crop_growth, scs.flag.leaf_decay, scs.flag.ice_melt, scs.flag.snow_form, scs.flag.snow_melt, scs.flag.flower_spread, scs.flag.mushroom_spread, scs.flag.mycelium_spread, scs.flag.vine_growth, scs.flag.structure_growth, scs.flag.cross_structure_growth, scs.flag.sculk_spread, scs.flag.block_form, scs.flag.block_grow, scs.flag.block_spread, scs.flag.block_fade, scs.flag.liquids_flow, scs.flag.lightning_strike, scs.flag.weather_change, scs.flag.sponge_absorb, scs.flag.observer_trigger, scs.flag.cross_redstone

Mob Spawning

scs.flag.monsters_spawn, scs.flag.animals_spawn, scs.flag.villager_spawn, scs.flag.phantom_spawn, scs.flag.warden_spawn, scs.flag.raid_spawn, scs.flag.trial_chamber_spawn, scs.flag.wind_charge_spawn, scs.flag.vehicle_spawn

Damage & PvP

scs.flag.pvp, scs.flag.invincible, scs.flag.fall_damage, scs.flag.lava_damage, scs.flag.suffocation_damage, scs.flag.void_damage, scs.flag.projectile_impact

Entity & Misc

scs.flag.entity_drops, scs.flag.entity_grief, scs.flag.entity_teleport, scs.flag.entity_transform, scs.flag.mob_ai, scs.flag.natural_breeding, scs.flag.exp_drop, scs.flag.portal_create, scs.flag.vehicle_destroy, scs.flag.vehicle_move

scs.bypass.* (per-permission staff override)

Where scs.permission.* and scs.flag.* gate who can flip a toggle in the GUI, scs.bypass.* gates who can ignore the toggle's actual effect at runtime. A player with scs.bypass.place_block can place blocks inside any claim regardless of the role they hold there; one with scs.bypass.enter walks into claims that visitors are normally pushed back from; scs.bypass.teleport lets /spawn, /tp, ender pearls and chorus fruit drop the holder anywhere even when the destination claim's role denies TELEPORT.

Each per-claim role permission has a matching bypass node with the lowercase name. Granting the wildcard scs.bypass.* turns the holder into a fully-trusted entity for every claim on the server. Default in plugin.yml is op for the entire family.

Use scs.bypass.* when you want a backup / staff account that can move freely and edit anywhere without granting the full admin command surface. scs.admin.* implies bypass via the wrapper helper, but the converse is not true: a scs.bypass.* holder still cannot run /scs reload, edit other players' settings, or force-unclaim from the GUI.

Movement & presence

scs.bypass.ban, scs.bypass.enter, scs.bypass.leave, scs.bypass.teleport (legacy 2.4.x alias, kept for back-compat), scs.bypass.natural_teleport, scs.bypass.other_teleport, scs.bypass.fly, scs.bypass.sleep, scs.bypass.crouch, scs.bypass.use_portal

Block & container

scs.bypass.place_block, scs.bypass.destroy_block, scs.bypass.destroy_spawners, scs.bypass.use_bucket, scs.bypass.trample_crops, scs.bypass.ignite_block, scs.bypass.interact_chest, scs.bypass.interact_trap_chest, scs.bypass.interact_ender_chest, scs.bypass.interact_barrel, scs.bypass.interact_shulker_box, scs.bypass.interact_hopper, scs.bypass.interact_dropper, scs.bypass.interact_dispenser, scs.bypass.interact_furnace, scs.bypass.interact_blast_furnace, scs.bypass.interact_smoker, scs.bypass.interact_brewing_stand, scs.bypass.interact_anvil, scs.bypass.interact_enchanting_table, scs.bypass.interact_beacon, scs.bypass.interact_smithing_table, scs.bypass.interact_loom, scs.bypass.interact_cartography_table, scs.bypass.interact_stonecutter, scs.bypass.interact_grindstone, scs.bypass.interact_crafting_table, scs.bypass.interact_composter, scs.bypass.interact_cauldron, scs.bypass.interact_jukebox, scs.bypass.interact_lectern_read, scs.bypass.interact_lectern_take, scs.bypass.interact_bookshelf, scs.bypass.interact_decorated_pot, scs.bypass.interact_flower_pot, scs.bypass.interact_brush_block, scs.bypass.interact_candle, scs.bypass.interact_campfire, scs.bypass.interact_bell, scs.bypass.interact_dragon_egg, scs.bypass.interact_shelf, scs.bypass.interact_vault, scs.bypass.interact_trial_spawner, scs.bypass.interact_spawner, scs.bypass.interact_command_block, scs.bypass.interact_jigsaw, scs.bypass.interact_structure_block, scs.bypass.interact_target_block, scs.bypass.interact_sculk_catalyst, scs.bypass.interact_sculk_shrieker, scs.bypass.interact_painting, scs.bypass.interact_sign, scs.bypass.interact_bed

Redstone & doors

scs.bypass.interact_button, scs.bypass.interact_lever, scs.bypass.interact_pressure_plate, scs.bypass.interact_tripwire, scs.bypass.interact_comparator, scs.bypass.interact_repeater, scs.bypass.interact_note_block, scs.bypass.interact_door, scs.bypass.interact_trapdoor, scs.bypass.interact_fence_gate, scs.bypass.sculk_sensor_trigger

Entities

scs.bypass.place_entity, scs.bypass.destroy_entity, scs.bypass.interact_entity, scs.bypass.damage_entity, scs.bypass.shear_entity, scs.bypass.feed_entity, scs.bypass.ride_entity, scs.bypass.mount_entity, scs.bypass.lead_entity, scs.bypass.name_tag_entity, scs.bypass.breed_entity, scs.bypass.tame_entity, scs.bypass.milk_entity, scs.bypass.capture_entity, scs.bypass.interact_villager, scs.bypass.trade_wandering_trader

Decorations & vehicles

scs.bypass.place_armor_stand, scs.bypass.destroy_armor_stand, scs.bypass.interact_armor_stand, scs.bypass.place_item_frame, scs.bypass.destroy_item_frame, scs.bypass.interact_item_frame, scs.bypass.place_painting, scs.bypass.destroy_painting, scs.bypass.place_vehicle, scs.bypass.destroy_vehicle, scs.bypass.interact_vehicle

Item usage

scs.bypass.use_bow_crossbow, scs.bypass.use_trident, scs.bypass.use_ender_pearl, scs.bypass.use_chorus_fruit, scs.bypass.use_firework, scs.bypass.use_fishing_rod, scs.bypass.use_wind_charge, scs.bypass.use_shield, scs.bypass.use_elytra, scs.bypass.use_potion, scs.bypass.use_spyglass, scs.bypass.use_brush, scs.bypass.use_bundle, scs.bypass.use_map, scs.bypass.use_fire_charge, scs.bypass.use_snowball, scs.bypass.use_egg

Player actions

scs.bypass.pickup_item, scs.bypass.drop_item, scs.bypass.exp_drop_pickup, scs.bypass.eat, scs.bypass.drink, scs.bypass.totem_use, scs.bypass.frostwalker, scs.bypass.projectile_launch, scs.bypass.equip_armor, scs.bypass.equip_item, scs.bypass.receive_beacon_effects, scs.bypass.natural_health_regen

Misc

Two nodes sit outside the scs.bypass.* tree (and outside the wildcard) but follow the same idea:

  • scs.delay.bypass — holders can spam /claim actions without hitting the configured cooldown between two claims.
  • claim.fly.infinite — note the claim. prefix (not scs.). Default false. Grants unlimited /claim fly time inside the player's own claims; the action-bar timer is replaced with the infinity symbol.

Public warps

One dedicated node controls the public-warp visit fee:

  • scs.bypass.warp-cost — skip the Vault fee charged on /claim visit when the target claim has visitPrice > 0. Members of the claim and OPs already bypass the fee automatically; this node is for ranks (VIP, staff) that should visit any warp for free without granting full scs.admin.

Bypass nodes are checked before the per-claim role lookup, so they short-circuit even fast-path code (movement, redstone, hoppers). Granting scs.bypass.* to a busy listener-heavy account has zero measurable cost: the lookup is a single hash hit on the player's permission map.

scs.claim.* (player command gating)

One node per /claim subcommand. The full list lives in the Player Commands table. The wildcard scs.claim.* grants the entire family. The bare scs.claim node is what unlocks the /claim command itself and is shipped with default: true in plugin.yml.

Common patterns:

  • Default rank: keep the shipped scs.claim default and selectively grant subcommands like scs.claim.list, scs.claim.menu, scs.claim.invite, scs.claim.tp.
  • Donor / VIP rank: add the higher-tier subcommands scs.claim.fly, scs.claim.auto-fly, scs.claim.template, scs.claim.favorite, scs.claim.respawn.
  • Staff: simply grant scs.claim.*.

scs.admin.* (admin command gating)

One node per /scs subcommand. The bare scs.admin node (declared in plugin.yml, default op) gates the /scs command itself. Each subcommand additionally checks scs.admin.<sub> so you can hand out individual capabilities without unlocking the full admin surface.

NodeSubcommand
scs.admin.reload/scs reload
scs.admin.docs/scs docs
scs.admin.home-guiOpen another player's home GUI from the claims browser (shift+right-click, default op).
scs.admin.delete-guiDelete a single claim from the claims browser (shift+left-click, default op).
scs.admin.delete-all-guiDelete every claim of a player from the claims browser (shift+left-click, default op).
scs.admin.metrics:claims/scs metrics:claims
scs.admin.metrics:players/scs metrics:players
scs.admin.player/scs player ... (all variants)
scs.admin.manage-claim/scs manage-claim [action] (claim-at-location admin actions, 2.5.0+)
scs.admin.viewrequnclaim/viewrequnclaim staff GUI (2.5.0+)
scs.admin.unclaimrequest.notifyReceive chat notifications when a player submits a new /requnclaim (default op, 2.5.0+)
scs.admin.unclaimrequest.reviewApprove or deny requests from the /viewrequnclaim GUI (default op, 2.5.0+)
scs.admin.setexpulsionlocation/scs setExpulsionLocation
scs.admin.clearredis/scs clearRedis
scs.admin.exportauditlogs/scs exportAuditLogs ...
scs.admin.resetpermissionsflagsforallplayerclaims/scs resetPermissionsFlagsForAllPlayerClaims
scs.admin.resetpermissionsforallplayerclaims/scs resetPermissionsForAllPlayerClaims
scs.admin.resetflagsforallplayerclaims/scs resetFlagsForAllPlayerClaims
scs.admin.resetallplayersettings/scs resetAllPlayerSettings
scs.admin.resetpermission/scs resetpermission <permission>
scs.admin.resetflag/scs resetflag <flag>
scs.admin.resetrole/scs resetrole <role>
scs.admin.dashboard/scs dashboard
scs.admin.update/scs update
scs.admin.importfromv1/scs importFromV1
scs.admin.importfromgriefprevention/scs importFromGriefPrevention
scs.admin.importfromlands/scs importFromLands
scs.admin.importfromtowny/scs importFromTowny
scs.admin.transferlocaltodistant/scs transferLocalToDistant
scs.admin.transferdistanttolocal/scs transferDistantToLocal
scs.admin.forcewarp/scs forceWarp <player> <claim>

scs.admin.* grants the entire admin surface plus implicit access to every scs.permission.* / scs.flag.* toggle (the GUI gating short-circuits to true for admin-wildcard holders). Reserve it for trusted staff.

The other admin entry points /scs help and /parea are gated by the parent nodes scs.admin and scs.admin.parea respectively (both declared in plugin.yml, default op).

Adding Permissions with LuckPerms

LuckPerms is the recommended permissions plugin for SCS2: it exposes a clean command-line interface for granting nodes, supports inheritance and per-world/per-server contexts, and ships a web editor for bulk edits. The recipes below cover the typical SCS2 setup. Replace default, vip, staff with whatever group names you use.

1. Bootstrap: the default rank

This is the most important step on a fresh install: without these two nodes, regular players cannot configure the toggles in their own claims.

# Let everyone toggle every permission/flag in their claim GUI
/lp group default permission set scs.permission.* true
/lp group default permission set scs.flag.* true

# (optional) Common subcommands. Most inherit from scs.claim/scs.unclaim/scs.claims
# which ship with default: true, but you may want to gate higher-tier ones explicitly:
/lp group default permission set scs.claim.list true
/lp group default permission set scs.claim.menu true
/lp group default permission set scs.claim.invite true
/lp group default permission set scs.claim.tp true
/lp group default permission set scs.claim.see true

2. VIP / donor rank: extra perks

/lp group vip parent add default

# Larger limits (pick whichever number fits your economy)
/lp group vip permission set scs.limit.claims.10 true
/lp group vip permission set scs.limit.chunks.500 true
/lp group vip permission set scs.limit.radius.5 true
/lp group vip permission set scs.limit.members.20 true
/lp group vip permission set scs.limit.fly.300 true

# QoL features locked behind the rank
/lp group vip permission set scs.claim.fly true
/lp group vip permission set scs.claim.auto-fly true
/lp group vip permission set scs.claim.template true
/lp group vip permission set scs.claim.favorite true
/lp group vip permission set scs.claim.respawn true
/lp group vip permission set scs.claim.set-icon true

3. Staff: granular admin access

Three patterns, pick one:

# Pattern A: full admin (single line, easiest)
/lp group staff permission set scs.admin.* true

# Pattern B: bypass-only (no admin commands, but free movement / edits everywhere)
# Useful for backup / build accounts that should ignore claim restrictions
# without seeing the /scs admin menus.
/lp group staff permission set scs.bypass.* true

# Pattern C: granular (only specific tools)
/lp group moderator permission set scs.admin true                       # /scs itself
/lp group moderator permission set scs.admin.player true                # manage other players' claims
/lp group moderator permission set scs.admin.exportauditlogs true       # CSV exports
/lp group moderator permission set scs.admin.metrics:claims true        # read-only metrics
/lp group moderator permission set scs.admin.metrics:players true
/lp group moderator permission set scs.bypass.enter true                # walk into any claim
/lp group moderator permission set scs.bypass.teleport true             # /spawn/tp anywhere
/lp group moderator permission set scs.bypass.ban true                  # ignore per-claim bans

4. Per-player overrides

# Bump one player above their group's default
/lp user Notch permission set scs.limit.chunks.1000 true

# Temporary perk (24h)
/lp user Steve permission settemp scs.claim.fly true 24h

5. Per-world rules

LuckPerms contexts let you scope a node to a single world, useful when claims are only allowed in survival but not in creative or resource:

# Allow claiming only in the survival world
/lp group default permission set scs.claim true world=survival
/lp group default permission set scs.claim false world=resource

6. Verifying the setup

# Inspect what a player effectively has
/lp user Notch permission info

# Check a single node
/lp user Notch permission check scs.permission.place_block

# Web editor for bulk edits
/lp editor

Limit nodes pick the highest match. A player who inherits scs.limit.claims.5 from default and scs.limit.claims.50 from vip ends up with 50. You don't need to remove the lower one when granting a higher one.

Limit nodes (scs.limit.<type>.<amount>) and admin commands (/scs player <name> set-...) cannot be used together: pick one source of truth per server. See the Limits section.