zPermissions 1.5

Super Permissions system primarily based on SQL with optional flat-file support.

  1. Kainzo
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    Source Code:
    https://github.com/ezeiger92/zPermissions/
    Contributors:
    ZerothAngel, md_5, Kainzo(tester)
    34235.png
    Herocraftonline.com has been testing zPerms for over 3 years in production, its beast, use it!

    zPermissions is primarily an SQL database-backed Superperms (aka Bukkit permissions) implementation. It also supports flat-file storage. Notable features are: multi-world support, ranks with multiple tracks/ladders, group inheritance of arbitrary depth (within reason), and optional region-specific permissions using WorldGuard regions, Residence residences, Factions territories, or Factoid lands.

    There is no built-in build protection (I rely on other plugins for that). zPermissions focuses on permissions and only permissions.

    I aim to keep zPermissions a simple, yet feature-rich, Superperms provider.

    zPermissions supports UUIDs as of the 1.3beta1 release! See the notes for that release for details.
    [ Quick start documentation | For Server Admins | FAQ | More documentation below! ]

    Questions? Problems?
    First, please check the known issues as well as the FAQ.

    If your question is still unanswered, please post on the forum.

    Finally, for any bugs/issues, please create ticket.

    Unless I already know you, PMs will be ignored.

    Features
    • A variety of storage options, from SQL to flat-file. Uses Bukkit database to store permissions (i.e. settings in bukkit.yml). Should work with most databases supported by Avaje Ebean — I've specifically tested with PostgreSQL, MySQL, and H2. The default Bukkit database, SQLite, isnot supported. zPermissions will automatically fall back to flat-file storage if it is used.

    • Group inheritance. Groups may inherit permissions from a multiple parent groups.

    • Players may be members of more than one group. The order of which group permissions are applied is well defined and based on group weight (which is configurable, of course).

    • Multi-world support. Permissions granted to players and groups may be associated with a specific world.

    • Optional region support. Permissions may also be associated with WorldGuard regions or Residence residences.

    • Multiple promotion tracks! Using permissions, you can also limit who can promote/demote others and which tracks they may use. In addition, each player may be promoted/demoted along multiple tracks.

    • Short-term temporary permissions. Give a player a permission node that lasts anywhere from a few seconds to a few minutes.

    • Temporary group assignments. Assign a group to a player and have their membership expire after 1 day... a few months... or a year! Whatever duration you want.

    • Players and groups can be assigned chat prefixes and suffixes. A Vault-compatible chat-formatting plugin is still required, like Herochat, zChat, etc.

    • API. zPermissions offers a comprehensive read-only API that other plugins can use. (Though I would recommend coding against Vault instead.)

    • Metadata support. Players and groups may have arbitrary metadata associated with them. Metadata values may be strings, integers, reals (floating point), and booleans. Metadata may be queried via the native API or Vault Chat API.

    • Automatic group permissions. With the advent of Superperms/Bukkit permissions, the recommended way of testing group membership is by using permissions. zPermissions can automatically set a permission based on the group's name for each group. By default, this configurable permission is group.<groupname> (compatible out-of-the-box with WorldEdit and WorldGuard!).

    • Re-assignable default group. The default group (the group assigned to players who have not been explicitly placed into any groups) is named default. This may be changed.
    Concepts
    • Groups are "universal" — across all worlds. There are no plans to introduce world-specific groups.

    • However, players and groups may have world-specific and/or region-specific permissions. These permissions are only in effect when the player is in that particular world and/or region.

    • There are 4 "levels" of permissions: universal, world-specific, region-specific, and finally region- and world-specific. The most general permissions are applied first, with all group permissions applied first finally followed by player permissions:
      1. Universal group permissions
      2. World-specific group permissions
      3. Region-specific group permissions
      4. Region- and world-specific group permissions
      5. Universal player permissions
      6. World-specific player permissions
      7. Region-specific player permissions
      8. Region- and world-specific player permissions
    • Players may be members of multiple groups. Groups may be assigned a weight — a higher weight means the group is applied later so it overrides earlier groups. Groups with the same weight are applied alphabetically.

    • Groups may inherit from one or more parent groups. A group's parents are applied in reverseorder so that a group's first parent overrides all subsequent parents.
    Installation & Usage
    Put zPermissions.jar in your server's plugins directory. Start up your server. This will create the fileconfig.yml in your server's plugins/zPermissions directory. You may want to edit this file to set your default group and default track. You may also want to create your tracks.

    Type /permissions to get started. (/perm or /p may also work, if those aliases are available.)

    The permission nodes in the get, set, and unset sub-commands may be specified as:

    • <permission> — An unqualified permission node applies to all worlds and all regions.
    • <world>:<permission> — To make a permission world-specific, prefix it with the world name followed by a colon.
    • <region>/<permission> — To make a permission region-specific, prefix it with the region name followed by a slash.
    • <region>/<world>:<permission> — You may also make a permission both region- and world-specific by combining the two qualifiers. For now, the region qualifier must always come first.
    The rank commands are /promote, /demote, /setrank, and /unsetrank and will normally broadcast changes to all admins. The rank commands have an option -q to operate silently, e.g. when being called by automated processes. They will, however, still log their actions to the server log for security audit purposes. Opposite of -q, they will also take -Q which causes the rank commands to broadcast changes to all users.

    Using SQL? Use this for 1.4+
    plugin.yml
    Code (Text):


    database:
      username: minecraft_93076
      isolation: SERIALIZABLE
      driver: com.mysql.jdbc.Driver
      password: ---
      url: jdbc:mysql://minecraft091.verygames.net/minecraft_93076

    tables:
      ToHSchemaVersion: zp_schema_version
      Entry: zp_entries
      Membership: zp_memberships
      PermissionEntity: zp_entities
      PermissionRegion: zp_regions
      PermissionWorld: zp_worlds
      EntityMetadata: zp_metadata
      Inheritance: zp_inheritances
      DataVersion: zp_data_version
     
    More Documentation
    License & Source
    zPermissions is released under the Apache License, Version 2.0.

    Sources may be found on GitHub:
    Development builds of this project can be acquired at the provided continuous integration server.
    Other Resources:
    Townships - Where Factions and Towny meet for the best land-ownership plugin!
    Heroes Premium - The Best Minecraft Class and Skills RPG plugin!


    WTT ICO

Recent Updates

  1. Update for 1.13+ and WG/wE
  2. 1.12 support

Recent Reviews

  1. NasalXbox
    NasalXbox
    4/5,
    Version: 1.5
    You should add custom prefixes from executed messages, that would be amazing. :)
  2. Outlander87
    Outlander87
    5/5,
    Version: 1.5
    To me this is the best free permissions plugin. I hope you'll update to 1.14, but for now good job man.
  3. graywolf336
    graywolf336
    5/5,
    Version: 1.5
    Love this plugin. From my experience, it is the best permissions plugin out there. I have yet to have any issues with it and have used it for years.
  4. SedgeDEV
    SedgeDEV
    5/5,
    Version: 1.5
    Amazing plugin and have been using it for a while now, the only thing I would like to be added is MongoDB support for storing data (Ranks, player permissions and players ranks.)
  5. FlailoftheLord
    FlailoftheLord
    3/5,
    Version: 1.4
    Fine plugin for its type, but outdated, does not work with 1.13 or newer versions of 1.12.2 also its missing loads of features, if youre looking for a good cross-server beefy perms plugin for a New server? use Luckperms instead. it has all these features plus more.
  6. iTzWolfy_
    iTzWolfy_
    5/5,
    Version: 1.4
    Best permissions plugin out there, used it on all my projects. It's also very good with a large playerbase, I have been using it since it was first released.
  7. zombiemosher
    zombiemosher
    5/5,
    Version: 1.4
    Very good permissions plugin, it's perfect for what my server needs so far. The only major problem is, is that Worldguard regions are not fully supported with the plugin. Any rank cannot open/close doors, use buttons, just use anything. The regions flag is at "use allow", yet I still have problems. Any help?
  8. XPNinja
    XPNinja
    5/5,
    Version: 1.4
    What is the place holder for this plugin, I need it : (
    for my prison server so I can move the suffix behind the name please help me !
  9. razorrider7
    razorrider7
    5/5,
    Version: 1.4
    I don't see why people keep voting 4 stars, just because they have questions. Its really rude, and lowers the rating of this amazing permissions plugin. I have been using this since bpermissions stopped working, and have never had any trouble with it
  10. ItsFinn
    ItsFinn
    5/5,
    Version: 1.4
    -----------------------------------------------------------------------------
    Das Plugin ist vong der Niceigkeit her Level over 9000
    -----------------------------------------------------------------------------