############################################################################## # +------------------------------------------------------------------------+ # # | LuckPerms Configuration | # # | https://github.com/lucko/LuckPerms | # # +------------------------------------------------------------------------+ # ############################################################################## # +------------------------------------------------------------------------+ # # | General | # # +------------------------------------------------------------------------+ # # The name of the server, used for server specific permissions. Set to 'global' to disable. server="global" # If users on this server should have their global permissions applied. # If set to false, only server specific permissions will apply for users on this server include-global=true # If users on this server should have their global world permissions applied. # If set to false, only world specific permissions will apply for users on this server include-global-world=true # If users on this server should have global (non-server specific) groups applied apply-global-groups=true # If users on this server should have global (non-world specific) groups applied apply-global-world-groups=true # If this server is in offline or online mode. # This setting allows a player to have the same UUID across a network of offline mode/mixed servers. # # You should generally reflect the setting in server.properties here. Except when... # # 1. You have Sponge servers connected to a BungeeCord proxy, with online-mode set to false, but 'bungeecord ip-forwarding' # set to true in the sponge/global.conf AND 'ip-forward' set to true in the BungeeCord config.yml # In this case, set online-mode in LuckPerms to true, despite the server being in offline mode. # # 2. You are only running one server instance using LuckPerms, (not a network) In this case, set online-mode to true no # matter what is set in server.properties. (we can just fallback to the servers uuid cache) online-mode=true # If the plugin should send log notifications to users whenever permissions are modified. log-notify=true # If LuckPerms should print to console every time a plugin checks if a player has a permission debug-permission-checks=false # Mirrors world names. Whenever LuckPerms checks what world a user is in, if the world name is in this list, the value assigned # will be sent forward for permission calculation instead. world-rewrite { # world_nether="world" # world_the_end="world" } # Rewrites group names. The underlying name of the group does not change, just the output in commands / placeholders / Vault. group-name-rewrite { # default="Member" } # +------------------------------------------------------------------------+ # # | Permission Calculation | # # +------------------------------------------------------------------------+ # # If the plugin should apply wildcard permissions. # If set to true, LuckPerms will detect wildcard permissions, and resolve & apply all registered permissions matching # the wildcard. apply-wildcards=true # If the plugin should parse regex permissions. # If set to true, LuckPerms will detect regex permissions, marked with "r=" at the start of the node, and resolve & # apply all registered permissions matching the regex. apply-regex=true # If the plugin should complete and apply shorthand permissions. # If set to true, LuckPerms will detect and expand shorthand node patterns. apply-shorthand=true # +------------------------------------------------------------------------+ # # | Storage | # # +------------------------------------------------------------------------+ # # Which storage method the plugin should use. # Currently supported: mysql, sqlite, h2, json, yaml, mongodb # Fill out connection info below if you're using MySQL or MongoDB storage-method="h2" # This block enables support for split datastores. split-storage { enabled=false methods { user="h2" group="h2" track="h2" uuid="h2" log="h2" } } data { address="localhost:3306" database="minecraft" username="root" password="" # Set to -1 to disable. If this is the only instance accessing the datastore, you can disable syncing. # e.g. if you're using sqlite or flatfile, this can be set to -1 to save resources. sync-minutes=3 } # +------------------------------------------------------------------------+ # # | Default Assignments | # # +------------------------------------------------------------------------+ # # This section allows you to define defaults to give users whenever they connect to the server. # The default assignments are highly configurable and conditional. # # There is one default assignment built into LuckPerms, which will add all users to the "default" group if they # are not a member of any other group. This setting cannot be disabled. However, you can use this section to add more of # your own. # # IMPORTANT: # In order to save storage space, LuckPerms does not store users who have no permissions defined, and are only a member # of the default group. Adding default assignments to this section will negate this effect. It is HIGHLY RECCOMENDED # that instead of assigning defaults here, you add permissions to the "default" group, or set the "default" group to inherit # other groups, and then use the group-name-rewrite rule above. # # It is also important to note that these rules are considered every time a player logs into the server, and are applied # directly to the user's data. Simply removing a rule here will not reserse the effect of that rule on any users who have # already had it applied to them. # # The "has" and "lacks" conditions below support standard boolean logic, using the 'and' & 'or' characters used in Java. # e.g. "(some.other.permission | some.permission.other) & some.thing.else" == a user has 'some.other.permission', or # 'some.permission.other', and they also have 'some.thing.else' # # Groups are represented by the permission node: group. # Per server and per world nodes are represented by: "server-world/permission" or "server/permission" # # Within conditions, permission nodes MUST be escaped using "<" and ">". See the example below. # # Explaination of the examples below: (they're just to demonstrate the features & use cases) # # rule1: # If a user is either in the vip or vip+ group, and they have the "titles.titlecollector" permission set to true, and the # "some.random.permission" set to false... if they're not in the group "prison_titlepack" on the "prison" server, then # give add them to the "prison_titlepack" group on the "prison" server, and remove "some.random.permission". # # rule2: # If the user isn't in any of the following groups on the skyblock server: sb_level1, sb_level2, sb_level3, then add # them to sb_level1 on the skyblock server. # # rule3: # If the user is a member of the default group, remove them from default, add them to member, and set their primary group # to member. # # WARNING: Unlike internal commands, this system does not ensure that a group exists before adding a user to it. # It also does not unsure that a user is a member of a group before making that group their primary group. # # Before you use "give: group." or "set-primary-group", make sure that the group exists, and that the user is # a member of the group. default-assignments { # rule1 { # if { # has-true="( | ) & " # has-false="" # lacks="" # } # give = [ # "prison/group.prison_titlepack" # ] # take = [ # "some.random.permission" # ] # } # rule2 { # if { # lacks=" & & " # } # give = [ # "skyblock/group.sb_level1" # ] # } # rule3 { # if { # has-true="" # } # take = [ # "group.default" # ] # give = [ # "group.member" # ] # set-primary-group="member" # } }