#################################################################################################### # +----------------------------------------------------------------------------------------------+ # # | __ __ ___ __ __ | # # | | | | / ` |__/ |__) |__ |__) |\/| /__` | # # | |___ \__/ \__, | \ | |___ | \ | | .__/ | # # | | # # | | # # | SOURCE CODE: https://github.com/lucko/LuckPerms | # # | WIKI: https://github.com/lucko/LuckPerms/wiki | # # | BUG REPORTS: https://github.com/lucko/LuckPerms/issues | # # | | # # | Each option in this file is documented and explained here: | # # | ==> https://github.com/lucko/LuckPerms/wiki/Configuration | # # | | # # | New options are not added to this file automatically. Default values are used if an | # # | option cannot be found. The latest config versions can be obtained at the link above. | # # +----------------------------------------------------------------------------------------------+ # #################################################################################################### # +----------------------------------------------------------------------------------------------+ # # | 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: 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 UUIDs should be pulled from the server, or looked up by username based upon previous # connections. # # This option should be set to true in most cases. When set to false, in order to get a player's # UUID, LuckPerms will: # # 1. Check if a player with the given username has joined before, if they have, use the UUID they # used on their previous login. # 2. Save and return the players "current" uuid. # # For offline mode (cracked) servers, a players UUID is generated based upon their username. # # IMPORTANT: # If you are using BungeeCord proxy running in online mode, it is important that "online-mode=false" # is set in server.properties, but "bungeecord: true" is set in the spigot.yml. You also need to set # "ip_forward: true" in BungeeCord's config.yml. # # If for whatever reason you are not able to do this, and do not have ip-forward enabled, then you # may need to set "use-server-uuids" to false. # # If your proxy is running in offline mode, you should still be setting up ip-forwarding as # described above, but may also find that you need to set "bungee-online-mode" to false in # paper.yml, if you are using Paper. (https://ci.destroystokyo.com/job/PaperSpigot/) # # This option only really exists for networks who for whatever reason cannot setup proper ip # forwarding. use-server-uuids: true # If the servers own UUID cache/lookup facility should be used when there is no record for a player # in the LuckPerms cache. # # Since BungeeCord doesn't maintain it's own UUID cache, when this option is true, LuckPerms will # try to find a uuid for a username using RedisBungee, if installed. use-server-uuid-cache: false # If set to true, LuckPerms will allow usernames with non alphanumeric characters. # # Note that due to the design of the storage implementation, usernames must still be # 16 characters or less. allow-invalid-usernames: false # If LuckPerms should produce extra logging output when it handles logins. # Useful if you're having issues with UUID forwarding or data not being loaded. debug-logins: false # If LuckPerms should ensure all players have permission data when they connect to the server. # # When set to true, LuckPerms will cancel login attempts if it is unable to load permissions data # for a user, of if the storage provider is unavailable. # # When set to false, LuckPerms will allow a player to connect regardless of whether their # permissions data could be loaded. # # This option does not exist on other platforms, and effectively defaults to true - however, # the option is provided on BungeeCord, as it is less likely to be so dependant on permissions. cancel-failed-logins: false # 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 # 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 # How should LuckPerms determine a users "primary" group. # # Available Options: # -> stored use the value stored against the users record in the file/database # -> parents-by-weight just use the users most highly weighted parent # -> all-parents-by-weight same as above, but calculates based upon all parents inherited from both # directly and indirectly primary-group-calculation: parents-by-weight # If set to false, the plugin will allow a Users primary group to be removed with the # 'parent remove' command, and will set their primary group back to default. prevent-primary-group-removal: false # If the plugin should check for "extra" permissions with users run LP commands. # # These extra permissions allow finer control over what users can do with each command, and # who they have access to edit. # # The permissions are *not* static, unlike the 'base' permisssions, and will depend upon the # arguments given within the command. argument-based-command-permissions: false # +----------------------------------------------------------------------------------------------+ # # | 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 # If the plugin should apply the permissions & groups defined in the BungeeCord config.yml # If set to false, LuckPerms will ignore these values. apply-bungee-config-permissions: false # 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_inherited # - lowest_inherited # - highest_on_track_ # - lowest_on_track_ # - highest_not_on_track_ # - lowest_not_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. # # See: https://github.com/lucko/LuckPerms/wiki/Choosing-a-Storage-type # Currently supported: mysql, mariadb, postgresql, sqlite, h2, json, yaml, hocon, mongodb # # Fill out connection info below if you're using MySQL, MariaDB, PostgreSQL or MongoDB # If your MySQL server supports it, the "mariadb" option is preferred over "mysql". storage-method: h2 # When using a file-based storage type, LuckPerms can monitor the data files for changes, and then # schedule automatic updates when changes are detected. # # If you don't want this to happen, set this option to false. watch-files: true # 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: '' # These settings apply to the MySQL connection pool. # The default values will be suitable for the majority of users. # Do not change these settings unless you know what you're doing! pool-settings: # Sets the maximum size of the MySQL connection pool. # Basically this value will determine the maximum number of actual # connections to the database backend. # # More information about determining the size of connection pools can be found here: # https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing maximum-pool-size: 10 # Sets the minimum number of idle connections that the pool will try to maintain. # # For maximum performance and responsiveness to spike demands, it is recommended to not set # this value and instead allow the pool to act as a fixed size connection pool. # (set this value to the same as 'maximum-pool-size') minimum-idle: 10 # This setting controls the maximum lifetime of a connection in the pool in milliseconds. # The value should be at least 30 seconds less than any database or infrastructure imposed # connection time limit. maximum-lifetime: 1800000 # 30 minutes # This setting controls the maximum number of milliseconds that the plugin will wait for a # connection from the pool, before timing out. connection-timeout: 15000 # 15 seconds # 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_' # The prefix to use for all LuckPerms collections. Change this if you want to use different # collections for different servers. The default is no prefix. mongodb_collection_prefix: '' # This option controls how frequently LuckPerms will perform a sync task. # A sync task will refresh all data from the storage, and ensure that the most up-to-date data is # being used by the plugin. # # This is disabled by default, as most users will not need it. However, if you're using a remote # storage type without a messaging service setup, you may wish to set this value to something like # 3. # # Set to -1 to disable the task completely. sync-minutes: -1 # 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. # -> redisbungee uses redis pub sub to push changes, using RedisBungee's API. You need to have the # RedisBungee plugin installed. # -> none nothing messaging-service: none # If LuckPerms should automatically push updates after a change has been made with a command. auto-push-updates: true # If LuckPerms should push logging entries to connected servers via the messaging service. push-log-entries: true # If LuckPerms should broadcast received logging entries to players on this platform. # # If you have LuckPerms installed on your backend servers as well as a BungeeCord proxy, you should # set this option to false on either your backends or your proxies, to avoid players being messaged # twice about log entries. broadcast-received-log-entries: false # 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 reverse # 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