############################################################################## # +------------------------------------------------------------------------+ # # | LuckPerms Configuration | # # | https://github.com/lucko/LuckPerms | # # +------------------------------------------------------------------------+ # ############################################################################## # +------------------------------------------------------------------------+ # # | General | # # +------------------------------------------------------------------------+ # # The name of the server, used for server specific permissions. Set to 'global' to disable. server: bungee # 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: false # 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 Spigot servers connected to a BungeeCord proxy, with online-mode set to false, but 'bungeecord' set to true in the spigot.yml # 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) # # 3. If your proxy is running in offline mode, and you are using PaperSpigot (https://ci.destroystokyo.com/job/PaperSpigot/), # you should set "bungee-online-mode" to false in the paper.yml, and set "online-mode" to true in all LuckPerms configs. # This approach is thoroughly recommended for offline mode networks. online-mode: true # If the plugin should send log notifications to users whenever permissions are modified. log-notify: true # 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 # Controls how temporary permissions/parents/meta should be accumulated # # The default behaviour is "deny" # If "accumulate": durations will be added to the existing expiry time # If "replace": durations will be replaced if the new duration is later than the current expiration # If "deny": the command will just fail if you try to add another node with the same expiry temporary-add-behaviour: deny # +------------------------------------------------------------------------+ # # | 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 # Define special group weights for this server. # Default is just 0. group-weight: # admin: 10 # +------------------------------------------------------------------------+ # # | Meta Formatting & Stacking | # # +------------------------------------------------------------------------+ # # Allows you to setup prefix/suffix stacking options. # # Available formats: # - highest # - lowest # - highest_own # - lowest_own # - highest_on_track_ # - lowest_on_track_ # # Each element is added in the order listed. meta-formatting: prefix: format: - "highest" start-spacer: "" middle-spacer: " " end-spacer: "" suffix: format: - "highest" start-spacer: "" middle-spacer: " " end-spacer: "" # +------------------------------------------------------------------------+ # # | Storage | # # +------------------------------------------------------------------------+ # # Which storage method the plugin should use. # Currently supported: mysql, postgresql, sqlite, h2, json, yaml, mongodb # Fill out connection info below if you're using MySQL, PostgreSQL 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: # Uses standard DB engine port by default # MySQL: 3306, PostgreSQL: 5432, MongoDB: 27017 # Specify as "host:port" if differs address: localhost database: minecraft username: root password: '' pool-size: 10 # The size of the MySQL connection pool. # The prefix for all LuckPerms tables. Change this is you want to use different tables for different servers. # This should *not* be set to "lp_" if you have previously ran LuckPerms v2.16.81 or earlier with this database. table_prefix: 'luckperms_' # 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 # Settings for the messaging service # # If enabled and configured, LuckPerms will use the messaging system to inform other # connected servers of changes. Use the command "/luckpermsbungee networksync" to push changes. # Data is NOT stored using this service. It is only used as a messaging platform. # # If you decide to enable this feature, you should set "sync-minutes" to -1, as there is no need for LuckPerms # to poll the database for changes. # # Available options: # bungee ==> uses the plugin messaging channels. Must be enabled on all connected servers to work. # redis ==> uses redis pub sub to push changes. Your redis server must be configured below. # none ==> nothing messaging-service: none # Settings for Redis. # Port 6379 is used by default; set address to "host:port" if differs redis: enabled: false address: localhost password: '' # +------------------------------------------------------------------------+ # # | 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. # # Explanation 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