· 5 years ago · Feb 20, 2021, 12:54 PM
1####################################################################################################
2# +----------------------------------------------------------------------------------------------+ #
3# | __ __ ___ __ __ | #
4# | | | | / ` |__/ |__) |__ |__) |\/| /__` | #
5# | |___ \__/ \__, | \ | |___ | \ | | .__/ | #
6# | | #
7# | https://luckperms.net | #
8# | | #
9# | WIKI: https://luckperms.net/wiki | #
10# | DISCORD: https://discord.gg/luckperms | #
11# | BUG REPORTS: https://github.com/lucko/LuckPerms/issues | #
12# | | #
13# | Each option in this file is documented and explained here: | #
14# | ==> https://luckperms.net/wiki/Configuration | #
15# | | #
16# | New options are not added to this file automatically. Default values are used if an | #
17# | option cannot be found. The latest config versions can be obtained at the link above. | #
18# +----------------------------------------------------------------------------------------------+ #
19####################################################################################################
20
21# +----------------------------------------------------------------------------------------------+ #
22# | | #
23# | ESSENTIAL SETTINGS | #
24# | | #
25# | Important settings that control how LuckPerms functions. | #
26# | | #
27# +----------------------------------------------------------------------------------------------+ #
28
29# The name of the server, used for server specific permissions.
30#
31# - When set to "global" this setting is effectively ignored.
32# - In all other cases, the value here is added to all players in a "server" context.
33# - See: https://luckperms.net/wiki/Context
34server: global
35
36# If the servers own UUID cache/lookup facility should be used when there is no record for a player
37# already in LuckPerms.
38#
39# - When this is set to 'false', commands using a player's username will not work unless the player
40# has joined since LuckPerms was first installed.
41# - To get around this, you can use a player's uuid directly in the command, or enable this option.
42# - When this is set to 'true', the server facility is used. This may use a number of methods,
43# including checking the servers local cache, or making a request to the Mojang API.
44use-server-uuid-cache: false
45
46
47
48
49# +----------------------------------------------------------------------------------------------+ #
50# | | #
51# | STORAGE SETTINGS | #
52# | | #
53# | Controls which storage method LuckPerms will use to store data. | #
54# | | #
55# +----------------------------------------------------------------------------------------------+ #
56
57# How the plugin should store data
58#
59# - The various options are explained in more detail on the wiki:
60# https://luckperms.net/wiki/Storage-types
61#
62# - Possible options:
63#
64# | Remote databases - require connection information to be configured below
65# |=> MySQL
66# |=> MariaDB (preferred over MySQL)
67# |=> PostgreSQL
68# |=> MongoDB
69#
70# | Flatfile/local database - don't require any extra configuration
71# |=> H2 (preferred over SQLite)
72# |=> SQLite
73#
74# | Readable & editable text files - don't require any extra configuration
75# |=> YAML (.yml files)
76# |=> JSON (.json files)
77# |=> HOCON (.conf files)
78# |=> TOML (.toml files)
79# |
80# | By default, user, group and track data is separated into different files. Data can be combined
81# | and all stored in the same file by switching to a combined storage variant.
82# | Just add '-combined' to the end of the storage-method, e.g. 'yaml-combined'
83#
84# - A H2 database is the default option.
85# - If you want to edit data manually in "traditional" storage files, we suggest using YAML.
86storage-method: MySQL
87
88# The following block defines the settings for remote database storage methods.
89#
90# - You don't need to touch any of the settings here if you're using a local storage method!
91# - The connection detail options are shared between all remote storage types.
92data:
93
94 # Define the address and port for the database.
95 # - The standard DB engine port is used by default
96 # (MySQL: 3306, PostgreSQL: 5432, MongoDB: 27017)
97 # - Specify as "host:port" if differs
98 address: *****
99
100 # The name of the database to store LuckPerms data in.
101 # - This must be created already. Don't worry about this setting if you're using MongoDB.
102 database: ****
103
104 # Credentials for the database.
105 username: *****
106 password: '******'
107
108 # These settings apply to the MySQL connection pool.
109 # - The default values will be suitable for the majority of users.
110 # - Do not change these settings unless you know what you're doing!
111 pool-settings:
112
113 # Sets the maximum size of the MySQL connection pool.
114 # - Basically this value will determine the maximum number of actual
115 # connections to the database backend.
116 # - More information about determining the size of connection pools can be found here:
117 # https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing
118 maximum-pool-size: 10
119
120 # Sets the minimum number of idle connections that the pool will try to maintain.
121 # - For maximum performance and responsiveness to spike demands, it is recommended to not set
122 # this value and instead allow the pool to act as a fixed size connection pool.
123 # (set this value to the same as 'maximum-pool-size')
124 minimum-idle: 10
125
126 # This setting controls the maximum lifetime of a connection in the pool in milliseconds.
127 # - The value should be at least 30 seconds less than any database or infrastructure imposed
128 # connection time limit.
129 maximum-lifetime: 1800000 # 30 minutes
130
131 # This setting controls the maximum number of milliseconds that the plugin will wait for a
132 # connection from the pool, before timing out.
133 connection-timeout: 5000 # 5 seconds
134
135 # This setting allows you to define extra properties for connections.
136 #
137 # By default, the following options are set to enable utf8 encoding. (you may need to remove
138 # these if you are using PostgreSQL)
139 # useUnicode: true
140 # characterEncoding: utf8
141 #
142 # You can also use this section to disable SSL connections, by uncommenting the 'useSSL' and
143 # 'verifyServerCertificate' options below.
144 properties:
145 useUnicode: true
146 characterEncoding: utf8
147 #useSSL: false
148 #verifyServerCertificate: false
149
150 # The prefix for all LuckPerms SQL tables.
151 # - Change this if you want to use different tables for different servers.
152 table-prefix: 'luckperms_'
153
154 # The prefix to use for all LuckPerms collections. Change this if you want to use different
155 # collections for different servers. The default is no prefix.
156 mongodb-collection-prefix: ''
157
158 # MongoDB ClientConnectionURI for use with replica sets and custom connection options
159 # - See https://docs.mongodb.com/manual/reference/connection-string/
160 mongodb-connection-uri: ''
161
162# Define settings for a "split" storage setup.
163#
164# - This allows you to define a storage method for each type of data.
165# - The connection options above still have to be correct for each type here.
166split-storage:
167 # Don't touch this if you don't want to use split storage!
168 enabled: false
169 methods:
170 # These options don't need to be modified if split storage isn't enabled.
171 user: h2
172 group: h2
173 track: h2
174 uuid: h2
175 log: h2
176
177
178
179
180# +----------------------------------------------------------------------------------------------+ #
181# | | #
182# | UPDATE PROPAGATION & MESSAGING SERVICE | #
183# | | #
184# | Controls the ways in which LuckPerms will sync data & notify other servers of changes. | #
185# | These options are documented on greater detail on the wiki under "Instant Updates". | #
186# | | #
187# +----------------------------------------------------------------------------------------------+ #
188
189# This option controls how frequently LuckPerms will perform a sync task.
190#
191# - A sync task will refresh all data from the storage, and ensure that the most up-to-date data is
192# being used by the plugin.
193# - This is disabled by default, as most users will not need it. However, if you're using a remote
194# storage type without a messaging service setup, you may wish to set this to something like 3.
195# - Set to -1 to disable the task completely.
196sync-minutes: -1
197
198# If the file watcher should be enabled.
199#
200# - When using a file-based storage type, LuckPerms can monitor the data files for changes, and
201# automatically update when changes are detected.
202# - If you don't want this feature to be active, set this option to false.
203watch-files: true
204
205# Define which messaging service should be used by the plugin.
206#
207# - If enabled and configured, LuckPerms will use the messaging service to inform other connected
208# servers of changes.
209# - Use the command "/lp networksync" to manually push changes.
210# - Data is NOT stored using this service. It is only used as a messaging platform.
211#
212# - If you decide to enable this feature, you should set "sync-minutes" to -1, as there is no need
213# for LuckPerms to poll the database for changes.
214#
215# - Possible options:
216# => sql Uses the SQL database to form a queue system for communication. Will only work when
217# 'storage-method' is set to MySQL or MariaDB. This is chosen by default if the
218# option is set to 'auto' and SQL storage is in use. Set to 'notsql' to disable this.
219# => pluginmsg Uses the plugin messaging channels to communicate with the proxy.
220# LuckPerms must be installed on your proxy & all connected servers backend servers.
221# Won't work if you have more than one proxy.
222# => lilypad Uses LilyPad pub-sub to push changes. You need to have the LilyPad-Connect plugin
223# installed.
224# => redis Uses Redis pub-sub to push changes. Your server connection info must be configured
225# below.
226# => auto Attempts to automatically setup a messaging service using redis or sql.
227messaging-service: auto
228
229# If LuckPerms should automatically push updates after a change has been made with a command.
230auto-push-updates: true
231
232# If LuckPerms should push logging entries to connected servers via the messaging service.
233push-log-entries: true
234
235# If LuckPerms should broadcast received logging entries to players on this platform.
236#
237# - If you have LuckPerms installed on your backend servers as well as a BungeeCord proxy, you
238# should set this option to false on either your backends or your proxies, to avoid players being
239# messaged twice about log entries.
240broadcast-received-log-entries: true
241
242# Settings for Redis.
243# Port 6379 is used by default; set address to "host:port" if differs
244redis:
245 enabled: false
246 address: localhost
247 password: ''
248
249
250
251
252# +----------------------------------------------------------------------------------------------+ #
253# | | #
254# | CUSTOMIZATION SETTINGS | #
255# | | #
256# | Settings that allow admins to customize the way LuckPerms operates. | #
257# | | #
258# +----------------------------------------------------------------------------------------------+ #
259
260# Controls how temporary permissions/parents/meta should be accumulated.
261#
262# - The default behaviour is "deny".
263# - This behaviour can also be specified when the command is executed. See the command usage
264# documentation for more info.
265#
266# - Possible options:
267# => accumulate durations will be added to the existing expiry time
268# => replace durations will be replaced if the new duration is later than the current
269# expiration
270# => deny the command will just fail if you try to add another node with the same expiry
271temporary-add-behaviour: deny
272
273# Controls how LuckPerms will determine a users "primary" group.
274#
275# - The meaning and influence of "primary groups" are explained in detail on the wiki.
276# - The preferred approach is to let LuckPerms automatically determine a users primary group
277# based on the relative weight of their parent groups.
278#
279# - Possible options:
280# => stored use the value stored against the users record in the file/database
281# => parents-by-weight just use the users most highly weighted parent
282# => all-parents-by-weight same as above, but calculates based upon all parents inherited from
283# both directly and indirectly
284primary-group-calculation: parents-by-weight
285
286# If the plugin should check for "extra" permissions with users run LP commands.
287#
288# - These extra permissions allow finer control over what users can do with each command, and who
289# they have access to edit.
290# - The nature of the checks are documented on the wiki under "Argument based command permissions".
291# - Argument based permissions are *not* static, unlike the 'base' permissions, and will depend upon
292# the arguments given within the command.
293argument-based-command-permissions: false
294
295# If the plugin should check whether senders are a member of a given group before they're able to
296# edit the groups data or add/remove other users to/from it.
297# Note: these limitations do not apply to the web editor!
298require-sender-group-membership-to-modify: false
299
300# If the plugin should send log notifications to users whenever permissions are modified.
301#
302# - Notifications are only sent to those with the appropriate permission to receive them
303# - They can also be temporarily enabled/disabled on a per-user basis using
304# '/lp log notify <on|off>'
305log-notify: true
306
307# Defines a list of log entries which should not be sent as notifications to users.
308#
309# - Each entry in the list is a RegEx expression which is matched against the log entry description.
310log-notify-filtered-descriptions:
311# - "parent add example"
312
313# If LuckPerms should automatically install translation bundles and periodically update them.
314auto-install-translations: true
315
316# Defines the options for prefix and suffix stacking.
317#
318# - The feature allows you to display multiple prefixes or suffixes alongside a players username in
319# chat.
320# - It is explained and documented in more detail on the wiki under "Prefix & Suffix Stacking".
321#
322# - The options are divided into separate sections for prefixes and suffixes.
323# - The 'duplicates' setting refers to how duplicate elements are handled. Can be 'retain-all',
324# 'first-only' or 'last-only'.
325# - The value of 'start-spacer' is included at the start of the resultant prefix/suffix.
326# - The value of 'end-spacer' is included at the end of the resultant prefix/suffix.
327# - The value of 'middle-spacer' is included between each element in the resultant prefix/suffix.
328#
329# - Possible format options:
330# => highest Selects the value with the highest weight, from all values
331# held by or inherited by the player.
332#
333# => lowest Same as above, except takes the one with the lowest weight.
334#
335# => highest_own Selects the value with the highest weight, but will not
336# accept any inherited values.
337#
338# => lowest_own Same as above, except takes the value with the lowest weight.
339#
340# => highest_inherited Selects the value with the highest weight, but will only
341# accept inherited values.
342#
343# => lowest_inherited Same as above, except takes the value with the lowest weight.
344#
345# => highest_on_track_<track> Selects the value with the highest weight, but only if the
346# value was inherited from a group on the given track.
347#
348# => lowest_on_track_<track> Same as above, except takes the value with the lowest weight.
349#
350# => highest_not_on_track_<track> Selects the value with the highest weight, but only if the
351# value was inherited from a group not on the given track.
352#
353# => lowest_not_on_track_<track> Same as above, except takes the value with the lowest weight.
354#
355# => highest_from_group_<group> Selects the value with the highest weight, but only if the
356# value was inherited from the given group.
357#
358# => lowest_from_group_<group> Same as above, except takes the value with the lowest weight.
359#
360# => highest_not_from_group_<group> Selects the value with the highest weight, but only if the
361# value was not inherited from the given group.
362#
363# => lowest_not_from_group_<group> Same as above, except takes the value with the lowest weight.
364meta-formatting:
365 prefix:
366 format:
367 - "highest"
368 duplicates: first-only
369 start-spacer: ""
370 middle-spacer: " "
371 end-spacer: ""
372 suffix:
373 format:
374 - "highest"
375 duplicates: first-only
376 start-spacer: ""
377 middle-spacer: " "
378 end-spacer: ""
379
380
381
382
383# +----------------------------------------------------------------------------------------------+ #
384# | | #
385# | PERMISSION CALCULATION AND INHERITANCE | #
386# | | #
387# | Modify the way permission checks, meta lookups and inheritance resolutions are handled. | #
388# | | #
389# +----------------------------------------------------------------------------------------------+ #
390
391# The algorithm LuckPerms should use when traversing the "inheritance tree".
392#
393# - Possible options:
394# => breadth-first See: https://en.wikipedia.org/wiki/Breadth-first_search
395# => depth-first-pre-order See: https://en.wikipedia.org/wiki/Depth-first_search
396# => depth-first-post-order See: https://en.wikipedia.org/wiki/Depth-first_search
397inheritance-traversal-algorithm: depth-first-pre-order
398
399# If a final sort according to "inheritance rules" should be performed after the traversal algorithm
400# has resolved the inheritance tree.
401#
402# "Inheritance rules" refers to things such as group weightings, primary group status, and the
403# natural contextual ordering of the group nodes.
404#
405# Setting this to 'true' will allow for the inheritance rules to take priority over the structure of
406# the inheritance tree.
407#
408# Effectively when this setting is 'true': the tree is flattened, and rules applied afterwards,
409# and when this setting is 'false':, the rules are just applied during each step of the traversal.
410post-traversal-inheritance-sort: false
411
412# Defines the mode used to determine whether a set of contexts are satisfied.
413#
414# - Possible options:
415# => at-least-one-value-per-key Set A will be satisfied by another set B, if at least one of the
416# key-value entries per key in A are also in B.
417# => all-values-per-key Set A will be satisfied by another set B, if all key-value
418# entries in A are also in B.
419context-satisfy-mode: at-least-one-value-per-key
420
421# +----------------------------------------------------------------------------------------------+ #
422# | Permission resolution settings | #
423# +----------------------------------------------------------------------------------------------+ #
424
425# If users on this server should have their global permissions applied.
426# When set to false, only server specific permissions will apply for users on this server
427include-global: true
428
429# If users on this server should have their global world permissions applied.
430# When set to false, only world specific permissions will apply for users on this server
431include-global-world: true
432
433# If users on this server should have global (non-server specific) groups applied
434apply-global-groups: true
435
436# If users on this server should have global (non-world specific) groups applied
437apply-global-world-groups: true
438
439# +----------------------------------------------------------------------------------------------+ #
440# | Meta lookup settings | #
441# +----------------------------------------------------------------------------------------------+ #
442
443# Defines how meta values should be selected.
444#
445# - Possible options:
446# => inheritance Selects the meta value that was inherited first
447# => highest-number Selects the highest numerical meta value
448# => lowest-number Selects the lowest numerical meta value
449meta-value-selection-default: inheritance
450
451# Defines how meta values should be selected per key.
452meta-value-selection:
453# max-homes: highest-number
454
455# +----------------------------------------------------------------------------------------------+ #
456# | Inheritance settings | #
457# +----------------------------------------------------------------------------------------------+ #
458
459# If the plugin should apply wildcard permissions.
460#
461# - If set to true, LuckPerms will detect wildcard permissions, and resolve & apply all registered
462# permissions matching the wildcard.
463apply-wildcards: true
464
465# If LuckPerms should resolve and apply permissions according to the Sponge style implicit wildcard
466# inheritance system.
467#
468# - That being: If a user has been granted "example", then the player should have also be
469# automatically granted "example.function", "example.another", "example.deeper.nesting",
470# and so on.
471apply-sponge-implicit-wildcards: false
472
473# If the plugin should apply negated Bukkit default permissions before it considers wildcard
474# assignments.
475#
476# - Plugin authors can define permissions which explicitly should not be given automatically to OPs.
477# This is usually used for so called "anti-permissions" - permissions which, when granted, apply
478# something negative.
479# - If this option is set to true, LuckPerms will consider any negated declarations made by
480# plugins before it considers wildcards. (similar to the way the OP system works)
481# - If this option is set to false, LuckPerms will consider any wildcard assignments first.
482apply-default-negated-permissions-before-wildcards: true
483
484# If the plugin should parse regex permissions.
485#
486# - If set to true, LuckPerms will detect regex permissions, marked with "r=" at the start of the
487# node, and resolve & apply all registered permissions matching the regex.
488apply-regex: true
489
490# If the plugin should complete and apply shorthand permissions.
491#
492# - If set to true, LuckPerms will detect and expand shorthand node patterns.
493apply-shorthand: true
494
495# If the plugin should apply Bukkit child permissions.
496#
497# - Plugin authors can define custom permissions structures for their plugin, which will be resolved
498# and used by LuckPerms if this setting is enabled.
499apply-bukkit-child-permissions: true
500
501# If the plugin should apply Bukkit default permissions.
502#
503# - Plugin authors can define permissions which should be given to all users by default, or setup
504# permissions which should/shouldn't be given to opped players.
505# - If this option is set to false, LuckPerms will ignore these defaults.
506apply-bukkit-default-permissions: true
507
508# If the plugin should apply attachment permissions.
509#
510# - Other plugins on the server are able to add their own "permission attachments" to players.
511# - This allows them to grant players additional permissions which last until the end of the
512# session, or until they're removed.
513# - If this option is set to false, LuckPerms will not include these attachment permissions when
514# considering if a player should have access to a certain permission.
515apply-bukkit-attachment-permissions: true
516
517# +----------------------------------------------------------------------------------------------+ #
518# | Extra settings | #
519# +----------------------------------------------------------------------------------------------+ #
520
521# Allows you to set "aliases" for the worlds sent forward for context calculation.
522#
523# - These aliases are provided in addition to the real world name. Applied recursively.
524# - Remove the comment characters for the default aliases to apply.
525world-rewrite:
526# world_nether: world
527# world_the_end: world
528
529# Define special group weights for this server.
530#
531# - Group weights can also be applied directly to group data, using the setweight command.
532# - This section allows weights to be set on a per-server basis.
533group-weight:
534# admin: 10
535
536
537
538
539# +----------------------------------------------------------------------------------------------+ #
540# | | #
541# | FINE TUNING OPTIONS | #
542# | | #
543# | A number of more niche settings for tweaking and changing behaviour. The section also | #
544# | contains toggles for some more specialised features. It is only necessary to make changes to | #
545# | these options if you want to fine-tune LuckPerms behaviour. | #
546# | | #
547# +----------------------------------------------------------------------------------------------+ #
548
549# +----------------------------------------------------------------------------------------------+ #
550# | Server Operator (OP) settings | #
551# +----------------------------------------------------------------------------------------------+ #
552
553# Controls whether server operators should exist at all.
554#
555# - When set to 'false', all players will be de-opped, and the /op and /deop commands will be
556# disabled.
557enable-ops: true
558
559# Enables or disables a special permission based system in LuckPerms for controlling OP status.
560#
561# - If set to true, any user with the permission "luckperms.autoop" will automatically be granted
562# server operator status. This permission can be inherited, or set on specific servers/worlds,
563# temporarily, etc.
564# - Additionally, setting this to true will force the "enable-ops" option above to false. All users
565# will be de-opped unless they have the permission node, and the op/deop commands will be
566# disabled.
567# - It is recommended that you use this option instead of assigning a single '*' permission.
568auto-op: false
569
570# Defines if "opped" players should be able to use all LuckPerms commands by default.
571#
572# - Set to false to only allow users who have the permissions access to the commands
573commands-allow-op: true
574
575# +----------------------------------------------------------------------------------------------+ #
576# | Vault integration settings | #
577# +----------------------------------------------------------------------------------------------+ #
578
579# If Vault lookups for offline players on the main server thread should be enabled.
580#
581# LuckPerms has a "catch" for plugins attempting to perform unsafe offline player data lookups
582# from the main server thread. This catch raises an exception (causes an error to occur) when unsafe
583# lookups are made, instead of allowing the lookup to happen, which would likely cause the server
584# to lag.
585#
586# However, if you're willing to accept the consequences, the catch can be disabled by setting this
587# option to 'true.
588vault-unsafe-lookups: false
589
590# Controls which group LuckPerms should use for NPC players when handling Vault requests.
591#
592# - As NPCs aren't actually real players, LuckPerms does not load any user data for them. This
593# becomes an issue when plugins want to check for their permissions using Vault.
594# - As a solution, Vault checks for NPCs fallback to a group, which is defined below.
595vault-npc-group: default
596
597# Controls how LuckPerms should consider the OP status of NPC players when handing Vault requests.
598#
599# - If you want NPCs to have the same permissions as "normal" players, set this option to false.
600# - If you want NPCs to have OP status, set this option to true.
601vault-npc-op-status: false
602
603# If the vault-server option below should be used.
604#
605# - When this option is set to false, the server value defined above under "server" is used.
606use-vault-server: false
607
608# The name of the server used within Vault operations.
609#
610# - If you don't want Vault operations to be server specific, set this to "global".
611# - Will only take effect if use-vault-server is set to true above.
612vault-server: global
613
614# If global permissions should be considered when retrieving meta or player groups
615vault-include-global: true
616
617# If Vault operations should ignore any world arguments if supplied.
618vault-ignore-world: false
619
620# +----------------------------------------------------------------------------------------------+ #
621# | Miscellaneous (and rarely used) settings | #
622# +----------------------------------------------------------------------------------------------+ #
623
624# If LuckPerms should produce extra logging output when it handles logins.
625#
626# - Useful if you're having issues with UUID forwarding or data not being loaded.
627debug-logins: false
628
629# If LuckPerms should allow usernames with non alphanumeric characters.
630#
631# - Note that due to the design of the storage implementation, usernames must still be 16 characters
632# or less.
633allow-invalid-usernames: false
634
635# If LuckPerms should allow a users primary group to be removed with the 'parent remove' command.
636#
637# - When this happens, the plugin will set their primary group back to default.
638prevent-primary-group-removal: false
639
640# If LuckPerms should update the list of commands sent to the client when permissions are changed.
641update-client-command-list: true
642
643# If LuckPerms should attempt to register "Brigadier" command list data for its commands.
644register-command-list-data: true
645
646# If LuckPerms should attempt to resolve Vanilla command target selectors for LP commands.
647# See here for more info: https://minecraft.gamepedia.com/Commands#Target_selectors
648resolve-command-selectors: false
649