permissions

Permissions are available per-command and are defined in the appropriate command documentation: User Command and Admin Commands.

However, there are a few extra permissions that are available that are not directly related to commands:

permissiondescription
hsp.home.bedsethomeAllows the user to set their home by right-clicking on beds
hsp.singleGlobalHomeExemptExempts the user from the "singleGlobalHome" limit (if this limit is defined as true)
hsp.command.home.otherworldAllows the user the ability to use "/home w:otherworld" to go to homes on other worlds. Note that this permission has NO effect on the strategies used by just typing "/home" (onHomeCommand event); for example, if the admin has "homeMultiWorld" strategy defined and that strategy returns a home on a different world, that will work fine regardless of this permission setting.
hsp.CostExempt.<command>Exempts the user from costs related to <command> (such as home). hsp.CostExempt.* will exempt the user from costs for all commands
hsp.CooldownExempt.<command>Exempts the user from cooldowns related to <command>. hsp.CooldownExempt.* will exempt the user from all command cooldowns
hsp.WarmupExempt.<command>Exempts the user from warmups related to <command>. hsp.WarmupExempt.* will exempt the user from all command warmups
hsp.adminAllows access to the /hsp and /hspconvert admin-related functions (reloading config, backup up and restoring, conversion tools)

Permission systems

HSP supports a number of permission systems. The two most capable of these is Vault and WEPIF (WorldEdit). These two both support just about every other permission system out there, so if you have either of these installed, HSP will prefer to use them and they will tie into whatever Permission system you are using. (Vault also has the advantage that you get economy features enabled in HSP if you use it).

If you happen to have neither Vault or WEPIF installed (and for some odd reason want to keep it that way), HSP also supports 3 Permission systems natively:

  • PEX: because the author used to use PEX and so provided a native implementation. NOTE: There is a known issue with PEX in that it doesn't support superperm parent/child nodes like hsp.full. Also you should read this excellent doc by mbaxter on why you shouldn't be using PEX.
  • Perm2: backwards compatibility with former "Perm2" permissions; this system predates Superperms and still works with many old plugins out there
  • Superperms: the least capable and my least favorite, but to each his/her own. Features like /groupspawn don't work if all you have is superperms, since it has no concept of groups. Using a superperms plugin like bPerms in combination with Vault or WEPIF will get you group capabilities.

HSP will try each of these in a certain order and pick the first one it finds. If, for some reason, you want to change the order (perhaps you prefer to use WEPIF instead of Vault), you can do so in the config.yml. Here is the default setting:

# config.yml


# This defines which permission system HSP uses. Vault and WEPIF
# (WEPIF is built into WorldEdit) are preferred, they both provide
# a nice interface to all other permission systems. If you don't have
# or don't want to use either of those, there is some native support
# for a few other permission systems that you can use. These are
# checked in the order they are listed for existence, and the
# first one to match is used.
permissions:
  - vault
  - wepif
  - pex
  - perm2-compat
  - superperms
  - ops

OPS-only

For some reason, people love to continue using "basic op" permission settings, despite Bukkit having added superperms as a native capability. While I fail to understand how someone can run a server with just this basic op/no-op security system, I have gotten an endless amount of support requests for people trying to do exactly that. Although I strongly encourage you to use a permission system (it will help you manage your other plugins as well), HSP *DOES* support "basic op" permissions and does so quite well (I had code to support it before superperms existed and I just left it in place).

So if you want to run in "ops"-only mode, here is ALL YOU HAVE TO DO; add these lines to your config.yml:

# config.yml
permissions:
  - ops
core:
  defaultPermissions:
    - hsp.command.home
    - hsp.command.sethome

(be sure to add defaultPermissions under your existing "core" section, do not create a duplicate "core" section in your config.yml, it will be ignored by the Bukkit YAML parser)

Done! Now anyone you /op will have full access to HSP commands, everyone else won't. In addition, non-ops will be allowed any permissions you list in defaultPermissions, so in this example, you've given everyone the ability to use /home and /sethome commands, granting them the permissions as documented on the User Commands page.