I have a question. How do you add inheritance?
Basic PermissionsEx Tutorial
-
5UHp3rm4n Regular Shmoe
- Join date
- Mar 02, 2013
- Location
- United States
- Reputation
- 0
- Posts
- 1
- Last login
- Aug 22, 2014
-
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
If The Group DOES Inherit Permissions From Another Group:
To set the inheritance for a group, you would use the command pex group <group> parents set <parents> in the console (or with a slash at the beginning if used in-game).
For example, to set the group named GroupB to inherit all of the permissions of the group named GroupA, the command would be:
pex group GroupB parents set GroupA
If you want the group named GroupC to inherit from both GroupA and GroupB, the command you would type into the console (or with a slash in front of it if used in-game) would be:
pex group GroupC parents set GroupA,GroupB
(Keep in mind that GroupC does not need to inherit from both GroupA and GroupB; if GroupC inherits from GroupB, and GroupB is inheriting permissions from GroupA, then GroupB also sends the GroupA permissions to GroupC.)
And to list the parents (inheritances) of a group, the command would be:
pex group <group> parents list pex group GroupC parents listIf The Group DOES NOT Inherit Permissions From Another Group:
Update: For Minecraft 1.9 and higher, PEX requires an inheritance in all groups. To give a group an inheritance when it is not actually inheriting anything from another group, you will need to either edit the permissions.yml file with Notepad or
Notepad++and add line 19 of this example to all groups which are not inheriting permissions from any other group, or type 2 commands into the console:pex group GroupA parents set potato pex group GroupA parents remove potatoLast edited Oct 16, 2016 by Stormbow -
goflare Regular Shmoe
- Join date
- Dec 21, 2013
- Location
- United States
- Reputation
- 0
- Posts
- 1
- Last login
- Oct 05, 2014
I'm making a prison server and I was wondering if I could have some help with PEX and a rankup plugin. I don't know how to make it so when /rankup is typed they get promoted within PEX.
<<size 0px>>BFAK:90982449,a67e2d125e3eb56e22d3bc16e8fe41eed37809697ebebeab714580ff02e61e0c<</size>>
-
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
You'll need to find a plugin that does that for you. If you give regular users the permission to promote through PEX, they'll have permission to promote everyone.
] Edit by Stormbow Jan 4th, 2015: I don't know why I didn't mention AutoRank and WordRankUp in this post. Possibily because I didn't know about them at the time I made this post. As of this moment, AutoRank is up to v1.7.9 servers and WordRankUp is for 1.7.2 servers. If you use either of these on servers that are not these versions, expect bugs and inoperability. [
Last edited Jan 04, 2015 by Stormbow -
AwesomeMan27 Regular Shmoe
- Join date
- Jan 02, 2015
- Location
- United States
- Reputation
- 0
- Posts
- 1
- Last login
- Jan 13, 2015
-
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
The answer to both questions can be simple or complicated. Let's begin with the premise (rule, fact) that no user or group has permission to do anything until given the specific permission that is required to be able to do something. With regards to the Battlekits plugin, let's assume we have a kit named "Archer". Until a user or group is specifically given the permission node battlekits.use.Archer, the user/group could not use that kit. So, if you don't give a user or group the necessary permission node, they can not use the Battlekit named "Archer".
But what if the group named "B" inherits all of the permissions of the group named "A", which has the permission node battlekits.use.Archer? This makes the answer a bit more complicated, considering the inheritance. If a group named "A" is given the permission node battlekits.use.Archer, and a group named "B" has an inheritance set up to gain all of the "A" group's permissions, "B" will also gain the permission node battlekits.use.Archer. So, to stop the "B" group from having the permission, we simply take it away (which is called "negating" a permission) by adding the following line to the top of the group "B" permissions, like so:
- -battlekits.use.Archer
Note: You do not have to negate a permission until it is gained in some manner, either through inheritance as mentioned above, or if you used a wildcard ( * ) to give the user or group the permission. The use of wildcards includes the permission node
- '*'which is typically given to the server owner rank/group. If a member of that group did not want access to the Archer kit, the permission would simply be negated above the wildcard permission, like so:- -battlekits.use.Archer - '*'With both of the above methods (either by not giving permission nodes and/or by negating a permission nodes), we fully control who has access to which abilities (no matter if we are talking about abilities or actual slash commands) of every plugin. This includes a user/group having access to slash commands such as /kit reload in the Battlekits plugin; we simply do not give them battlekits.config.reload, or we negate the permission if they have somehow been granted it.
Of course, if any plugin is not advanced enough to actually have permission nodes in the first place, we have no real control of the plugin.
Last edited Jan 03, 2015 by Stormbow -
AwesomeMan27 Regular Shmoe
- Join date
- Jan 02, 2015
- Location
- United States
- Reputation
- 0
- Posts
- 1
- Last login
- Jan 13, 2015
Ok thanks :)
] Edit by Stormbow: Merging 2 other posts into this one. [
I still have a question. How would you give a player/group access to a comamnd? Example: if I wanted to give a player/group Access to the command /tell how would I do that? Sorry if I am annoying but I don't unterstand how.
And another question: how do you make it so players can not do stuff like destroy blocks and kill other players in one spot and able to do that stuff in a different spot?
Last edited Jan 04, 2015 by Stormbow -
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
The /tell command is actually what is called a "Vanilla permission" on your server, and is handled by the server itself. To allow a group/user to use that command, you would give them the permission node bukkit.command.tell (as mentioned in post #7 of this thread). (You can see all the permission nodes for basic Minecraft stuff under the "Permission" and "Bukkit permission" columns on the Vanilla permissions link.) Don't forget that many other plugins allow users to send messages to each other too, and those plugins have their own permission nodes that you can use instead of these Vanilla permissions.
In order to protect certain areas of your server, you'll need a plugin which is designed and programmed to do exactly that. WorldGuard is one of the best plugins for this kind of task of protecting certain areas. Some plugins, like the Essentials package's EssentialsProtect and EssentialsAntibuild, and Modifyworld can be used to prevent users from destroying blocks, attacking other players, and more too.
If you're exceptionally evil and devious (like I am), you can use a plugin like OtherDrops to spawn 50 monsters any time a player is killed. Using EssentialsProtect and PermissionsEx, you can (for example) prevent newcomers to the server from attacking anyone at all, and allow regular members on the server (*who you trust) to engage in pvp (for example, to kill someone who is griefing their territory or builds). By allowing users to keep their inventory when they die (using the built-in gamerule "keepInventory" command), you can lessen the reason for any player to want to kill another player. And since many, many, many Minecraft players are just mean, you could also turn off pvp completely in your server's server.properties file (which can be opened with Notepad).
Last edited Jan 04, 2015 by Stormbow -
AwesomeMan27 Regular Shmoe
- Join date
- Jan 02, 2015
- Location
- United States
- Reputation
- 0
- Posts
- 1
- Last login
- Jan 13, 2015
Ok Thank you so much!
-
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
You're welcome. :) Have fun!
-
Henderry2019 Author
- Join date
- Sep 02, 2013
- Location
- United States
- Reputation
- 0
- Posts
- 1
- Projects
- 9
- Last login
- Oct 08, 2016
How do I give myself (the owner of the server) permission to do all of the PEX commands in-game? Pretty much, I am asking what is the permission node to allow all PEX commands.
ZBDH90b9e7cafbd3be6b1264c0aa2f95f015
-
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
pex user Henderry2019 add permissions.* [world]
The above command can be used without naming a specific world, and that will make it a global permission allowed to you in any world you are playing on. You will see it added to your entry in the "users:" list portion at the bottom of the permissions.yml file.
This option is better than assigning
- '*'or permissions.* to (for example) an "Owner" group because you can move yourself around to different groups on your server to test the permissions you've given to those other groups.Last edited Jan 13, 2015 by Stormbow -
DrSheldonC00per Regular Shmoe
- Join date
- Jan 11, 2015
- Location
- Canada
- Reputation
- 0
- Posts
- 2
- Last login
- Jan 19, 2015
Hi. Thanks for this awesome tutorial.
So I'm a struggling n00b...
I have a hierarchy of groups, with "God" being Group 1 (highest), which I'm a member of
So far I've given that group the following permissions: - permissions.* - bukkit.command.plugins
My understanding is that with "permissions.*", I should have EVERYTHING
However I can't go anything at all....I can't even place blocks (which is find for my Guest level, but not so good for me as the admin!)
When I OP myself, I can do everything Which is weird, because my config.yml file shows "allowOps: false", which I thought would mean that OP doesn't even apply and it gets all its permissions form permissions.yml
Any ideas? It looks like the permissions.yml file is being ignored When I ask PEX what group I'm in, it says "God".... I'm totally confused!!!
-
DrSheldonC00per Regular Shmoe
- Join date
- Jan 11, 2015
- Location
- Canada
- Reputation
- 0
- Posts
- 2
- Last login
- Jan 19, 2015
Okay...I don't know what I was doing wrong, but it seems to be working now. Wish I knew what I was doing wrong the first time....!
-
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
You're welcome; and thanks!
The permission node permissions.* is actually only PermissionsEx permissions, all of which you can see right here. The permission node which gives you everything is actually
- '*'(exactly like that); it's called a wildcard. While permissions.* contains the wildcard, it doesn't allow anything that doesn't begin with "permissions".Sometimes it takes a good restart of the server (or /pex reload and /ess reload) to get things working properly. That's probably what happened in your case where it looked like it wasn't working, and then
*poof*it was fine.I'm not entirely sure what the config option for allowOps is even for; I just know using Op on a server can have bad consequences, so I advise everyone against it.
Last edited Jan 13, 2015 by Stormbow -
Stormbow Author
- Join date
- Feb 04, 2009
- Location
- United States
- Reputation
- 409
- Posts
- 2,473
- Projects
- 2
- Last login
- Oct 30, 2016
Stormbow AuthorBasic PermissionsEx Group Creation
If you want to run a server, you have an immense amount of reading and learning to do. There is no getting around that. This tutorial assumes that you know how to install a server, and plugins. If you don't know that, please do some Google and YouTube research first.
When you first create your (craftbukkit 1.7.9+) server with PermissionsEx (nickname: PEX) installed, PEX will create a permissions.yml file that has THIS inside it. Not much at all to look at.
For the purpose of this tutorial, we will create 1 group that applies to all worlds, and we will have only PermissionsEx and ModifyWorld on this server. Ignore any colors you see below; the colors don't mean anything important. Look at it as if this entire tutorial were just plain black letters.
Start your server, and in the console, type the following command (with no slash at the beginning):
IMPORTANT NOTE: Do not use spaces in any of your group names because PEX will not understand the command and wreak havoc on your permissions.yml file. If you're ever editing the file in Notepad, again, do not use spaces. Some plugins will not recognize your group names if you have spaces in the names. You can use spaces within the prefixes (see below) but can not use them in the names of the groups inside the permissions.yml file. So, if you want a "Super Admin" group, you'd name it "SuperAdmin" in the permissions.yml file and give it the prefix of "Super Admin " (with an extra space on the end, so it doesn't jam up against a player name) or a suffix of " Super Admin" (with a space a the beginning for the same reason as with prefixing).
Getting back to the tutorial, the above command creates one group with the name "Guest". At this point, the group has no permissions or attributes; we'll get to those in a moment. First, we want to make "Guest" the default group for the server so that everyone who joins the server for the first time becomes a member of "Guest", and we do so with the following command:
If you are making a group that is not the default group for the server, you can ignore the above command entirely.
Since "Guest" is now the default group for the server, we can safely delete the original "default" group (which is even named "default"):
Now everyone who joins the server will be a "Guest" group member. (Keep in mind: the permissions.yml will not show the default group in the users list. This is because it's the default group, it doesn't need to be noted. If you absolutely must have the default group shown in the user list, you'll have to manually set it for every single default group member by using the command "pex user CharacterName group set Guest" (because "Guest" is what the default group is called in this tutorial) in the console, or with a slash at the beginning if done from in-game.) And, if the default group of the server ever changes, you may have hundreds or thousands of users to manually edit over to the new default group.
Currently, they still can't do anything. Let's give them a wildcard permission for the ModifyWorld plugin, so they can do everything - craft, break and place blocks, use items, interact with things like switches and pressure plates, etc..
IMPORTANT NOTE: If you have EssentialsAntiBuild.jar in your plugins folder, "Guest" group members will not be able to use items or do pretty much anything else because setting up that aspect of the Essentials plugin package is not included in this tutorial.
Now everyone who joins the server will be a "Guest" and can break blocks, place blocks, use items, kill mobs, etc. Yay!
To add additional permissions and plugins, you will have to go to each plugin you want on your server, read everything about it, and add the permission nodes for each group exactly the same way as in the previous example (pex group GroupName add Permission.Node.ability.whatever in the console, or with a slash preceding it if you're adding permissions while in-game).
Don't forget, your server comes with Vanilla Commands and Permissions also! You'll want to give those out to the different groups of your server. (BUT!!!! Keep in mind that these permission nodes may or may not work at all. I have tried to get answers about why these permissions are bugged, but I have gotten no replies from the powers that be!)
Now let's do some cosmetic stuff and give "Guest" group members a prefix to display in chat, before the playername. (Note: You will need a chat management plugin for these to actually be displayed in-game. I recommend EssentialsChat which is part of the Essentials package, but I'm not getting into configuring these in this tutorial. See the Basic Prefix/Suffix Tutorial for help with that after you finish this tutorial.)
Pay close attention to the next command, there is a blank space after "Guest" so it doesn't get crunched up against the player's name in chat.
And let's give the group a suffix, to display after the player's name. Again, pay close attention to the blank space before "the Visitor".
Again, to display these in-game, you will need a chat manager, like EssentialChat (highly recommended) or any other chat plugin (ChatEx and ChatManager are not recommended at all, ever). Read through their wiki pages and config files for instructions on how to make prefixes and suffixes appear in-game. If you are using EssentialsChat, you can follow my Prefix/Suffix Tutorial.
One last command and our default "Guest" group is complete. In order for a "Guest" to be easily promoted with the /pex promote UserName command to a higher rank, we must establish a ladder and give each group a "rank" value. The higher the number the lower the group is on the ladder.
Your finished group will look like THIS in the permissions.yml file.
When you create a normal member group (which you can also do following this tutorial), you would give it a lower "rank" value. Anything from 999 down to 1 can be used for a group's rank value following this tutorial. Remember to save room for all of your groups to have a rank value of their own, and keep them in proper order. A "Guest" may be 1000, a "Member" 900, a "Donator" 800, a "Mod" could be 10, an "Admin" could be 5, and of course the "Owner" would have the highest rank with a value of 1. Notice, you don't have to make all the rank values sequential (1000 then 999 then 998, etc.). The promote command (above, bold) is the easiest way to promote players on a server.
To demote someone, the command is /pex demote UserName and will move the character 1 rank down the ladder: from an "Admin" to a "Mod", from a "Mod" to a "Donator", from a "Donator" to a "Member", or from a "Member" to a "Guest" (if we are using the rank values of the previous paragraph).
And there you have it, in 7 simple commands, you created a group that can play on your server. This concludes this basic tutorial. If you have more questions, do your homework and read about the plugins you want to use, and post back in this thread if you still have problems.
Inheritance
When you have more than 1 group on your server, it saves time to have groups inherit permissions from each other. You don't have to type out every single permission node to every single group.
More details about inheritance right here.
A permissions.yml file for PermissionsEx 1.7.9 +
http://pastebin.com/8ZSHxauG
Official PermissionsEx Guru* (*not the PEX programmer)

Basic PEX Guide | Prefix/Suffix Guide | Troubleshooting Guide
Remember to 'LIKE' the posts which you find helpful.
BFAK:83847,94c9f420badc7fda29227b4adaca49728cacc02e4e890d026ebba529a25877e9