LuckPerms - A permissions plugin for Minecraft servers

This is a discussion topic for the Ore project, LuckPerms. View the full project on Ore for downloads and more information.



LuckPerms is a permissions plugin for Minecraft servers. It allows server admins to control what features players can use by creating groups and assigning permissions.

It is:

  • fast - written with performance and scalability in mind.
  • reliable - trusted by thousands of server admins, and the largest of server networks.
  • easy to use - setup permissions using commands, directly in config files, or using the web editor.
  • flexible - supports a variety of data storage options, and works on lots of different server types.
  • extensive - a plethora of customization options and settings which can be changed to suit your server.
  • free - available for download and usage at no cost, and permissively licensed so it can remain free forever.

LuckPerms is currently the only maintained and ‘working’ permissions plugin for Sponge servers.

For more information, see the wiki article on Why LuckPerms?

Useful Links

The latest downloads & other useful links can be found on the project homepage at

The plugin has extensive documentation available on the wiki. Please use the resources there before coming to us directly for support.

Support for the plugin is provided on Discord. If you have a question which cannot be answered by reading the wiki, the best place to ask it is there.

If you would like to report a bug, please open a ticket on GitHub.

External connections

In order to deliver it’s functionality, LuckPerms will under some circumstances make connections with and communicate with external services outside of the local server.

The nature of these connections are detailed on this wiki page.


/lp group admin permission set * true

You’ll be told by most people that using wildcards in this manner is bad practice, but it’s exactly the same as PEX’s defaults system. :slight_smile:

I have a few general questions regarding tracks. On my server I wish to have several tracks, but some that only specific groups can promote/demote along.

For instance: I only want my server to be able to promote/demote along the track following donations (iron->gold->diamond), but I want my moderators to be able to help promoting/demoting on the general rank track on the server (visiting->user->mod->admin).

To the question: Is there any way to handle permissions regarding promotions/demotions on mutliple tracks? In addition, is there any way to prevent self-promotion via permissions (mod promotes himself to admin)?
I was thinking of something like:

“name”: “mod”,
“perms”: {
“luckperms.user.promote.rank”: true,
“luckperms.user.promote.donations”: false,
“luckperms.user.promote.rank.admin”: false,

Apologies for the late reply, your message must’ve slipped past me. :stuck_out_tongue:

Currently, no, this is not possible, however, it has been addressed by this issue, and will hopefully be added soon.

1 Like

A new version has been released for LuckPerms, it is available for download here.

Pushed latest development build to Ore.

A new version has been released for LuckPerms, it is available for download here.

  • v3.0.15 - Fallback to uuid in the search command if the username is unknown
  • v3.0.16 - Switch all usages of file reader/writers to use java nio methods - closes #204
  • v3.0.17 - Add new argument util method for reading context pairs
  • v3.0.18 - Cleanup powerfulperms migration & remove support for older PP versions
  • v3.0.19 - Run exporter in own thread and process user exports concurrently
  • v3.0.20 - Update readme
  • v3.0.21 - Update hikari version
  • v3.0.22 - Add some more placeholders to the expansion
  • v3.0.23 - remove placeholder expansion from main project
  • v3.0.24 - Fix getAllNodes cache not working properly, remove pre-process contexts on Bungee & cleanup some unused methods
  • v3.0.25 - Migrate group weightings onto the group itself as well as to the chat meta held by it
  • v3.0.26 - Fix mistake in removeprefix/removesuffix command descriptions
  • v3.0.27 - Make the clone commands work for existing tracks/groups too
  • v3.0.28 - Cleanup a bit
  • v3.0.29 - Listen for changes in data files and automatically update
  • v3.0.30 - Cleanup pom files, maybe improve build speed a bit
  • v3.0.31 - Add server version info to the startup banner
  • v3.0.32 - Fix BungeePerms migration to account for group weights and negated permissions
  • v3.0.33 - Cleanup migration commands
  • v3.0.34 - Refactor and cleanup commands
  • v3.0.35 - Include internal weight value in meta output if not already present
  • v3.0.36 - Rename online-mode config option to use-server-uuids to better reflect/clarify its purpose
  • v3.0.37 - Fix ClassCastException with MongoDB user search
  • v3.0.38 - Add method to export Message enum and update language file
  • v3.0.39 - Add some alternate options for primary group calculation
  • v3.0.40 - Fix primary groups being selected in reverse order
  • v3.0.41 - Update PM migration to support latest version
  • v3.0.42 - Correct the case of group names when retrieved from Node instances
  • v3.0.43 - Fix NoSuchMethodError being thrown for older Bukkit config classes
  • v3.0.44 - Fix PM migration command not being registered
  • v3.0.45 - Enforce that ContextSets use the HashMultimap variant - closes #208
  • v3.0.46 - Clarify the file names of H2 and SQLite databases
  • v3.0.47 - Implement new file layout for YAML / JSON storage files (#211)
  • v3.0.48 - Implement nicer json format for Sponge local data
  • v3.0.49 - Slight speed improvement for import processes
  • v3.0.50 - Rename “debug” classes to “verbose”
  • v3.0.51 - Automatically push updates to other servers via the messaging service when commands are ran
  • v3.0.52 - correct zPermissions migration logging tag
  • v3.0.53 - Rewrite inheritance resolution implementation
  • v3.0.54 - Cleanup remaining (un)setPermission methods
  • v3.0.55 - Add es_ES locale
  • v3.0.56 - Don’t bother loading test classes (#217)
  • v3.0.57 - Output group/track lists in alphabetical order
  • v3.0.58 - Fix removing temporary permissions/parents/meta in global context
  • v3.0.59 - Fix parent set command also adding default
  • v3.0.60 - Provide tab completion for rewritten arguments & add some more rules
  • v3.0.61 - Force some config options to be read as lower case
  • v3.0.62 - Cleanup some misc stuff
  • v3.0.63 - Fix some concurrency issues with login handling
  • v3.0.64 - Remove missing permission nodes before adding new ones when saving users/groups with SQL storage
  • v3.0.65 - Add “use-vault-server” config option, depreciate vault primary group override feature
  • v3.0.66 - Avoid parsing UUID in sponge world calculator
  • v3.0.67 - Add ru_RU.yml (#224)
  • v3.0.68 - Fix compatibility with older gson versions - closes #222
  • v3.0.69 - Allow context pairs to be specified in commands, fix misuse of exceptions in the permission holder class
  • v3.0.70 - Replace guava caches with caffeine
  • v3.0.71 - Implement accumulation of static contexts from a file
  • v3.0.72 - Fix broken command parameter & update default locale file
  • v3.0.73 - Cleanup sponge delegate classes
  • v3.0.74 - Properly sort storage files - closes #227
  • v3.0.75 - Only allow one server and one world in context sets parsed from command args
  • v3.0.76 - Improve performance of resolve methods in PermissionHolder, other cleanup
  • v3.0.77 - Add ‘/lp group listmembers’ command - closes #203
  • v3.0.78 - Fixes for the verbose uploader
  • v3.0.79 - Refactor NodeModel into a more useful class, remove duplicate context serialization methods
  • v3.0.80 - Use the mariadb driver by default
  • v3.0.81 - Make the standard MySQL driver the default again
  • v3.0.82 - Fix export command switchprimarygroup output, and log player uuid if their username isn’t included
  • v3.0.83 - Don’t attempt to migrate empty permissions
  • v3.0.84 - Make sure world names are lowercase’d
  • v3.0.85 - Fix accumulation of temporary perms with a world or server context (#235)
  • v3.0.86 - Remove old bulk edit commands
  • v3.0.87 - fix issue with /reloading and permission registration
  • v3.0.88 - Re-implement bulk updates
  • v3.0.89 - Ensure expired permissions are removed when users/groups are loaded for commands
  • v3.1.0 - API changes for 3.1
  • v3.1.1 - Update ru_RU locale (#238)
  • v3.1.2 - log the file name when exceptions are thrown during i/o
  • v3.1.3 - Only perform flatfile schema migration if the new dir doesn’t exist
  • v3.1.4 - Convert promote / demote commands to use new context system, update en locale with latest changes
  • v3.1.5 - Remove getuuid command
  • v3.1.6 - Fix incorrect chat meta command usage
  • v3.1.7 - fix yaml/json schema migration
  • v3.1.8 - Cleanup poms, update copyright header
  • v3.1.9 - Determine dynamic primary groups using current context
  • v3.1.10 - fix build
  • v3.1.11 - Fix getting primary groups for offline users
  • v3.1.12 - Add not_on_track meta stack criteria
  • v3.1.13 - fix typo
  • v3.1.14 - Update RU locale (#250)
  • v3.1.15 - Cleanup handling of unknown/null usernames for users
  • v3.1.16 - Fix NPE caused by AllParentsByWeight primary group selector - closes #252
  • v3.1.17 - support glowstone (maybe)
  • v3.1.18 - cleanup duplicated method
  • v3.1.19 - Fix issue with loading usernames on MongoDB - closes #257
  • v3.1.20 - cleanup login handling & add CountdownLatch to ensure the plugin has started before logins are handled
  • v3.1.21 - show uuid in log messages if username is null
  • v3.1.22 - implement atomic group insertion
  • v3.1.23 - improve speed of NodeTools#removeSamePermission
  • v3.1.24 - Add config options to allow for finer control over how permissions are calculated, and set include-global to true on BungeeCord by default
  • v3.1.25 - Split up chat messages sent to console containing new lines
  • v3.1.26 - Fix issue with bulk removing suffixes
  • v3.1.27 - Cleanup some stuff
  • v3.1.28 - Always load user data caches alongside user instances
  • v3.1.29 - Refactor LP PermissionService to implement a modified API & add proxied classes
  • v3.1.30 - Fix users being cleaned up too early and then logging back into the server - closes #271
  • v3.1.31 - Fix migrating false zPerms nodes
  • v3.1.32 - Fix migrating weight with zPerms
  • v3.1.33 - Add data constraints - closes #256
  • v3.1.34 - Refactor Patterns to PatternCache
  • v3.1.35 - Support sponge selector resolution - closes #275
  • v3.1.36 - Fix zPerms parent group migration for users, and fix migration of temporary memberships
  • v3.1.37 - Add zh-CN locale (#279)
  • v3.1.38 - Update zh-CN locale (#281)
  • v3.1.39 - Fix retrieving meta keys from Vault which contain delimited characters - closes #270
  • v3.1.40 - Fix being able to negate permissions/parents/meta in specific contexts
  • v3.1.41 - Bump sponge API version, cleanup
  • v3.1.42 - Apply world rewrites on-top of the real world name, and apply recursively (#255)
  • v3.1.43 - Implement default contexts - closes #241
  • v3.1.44 - Implement parent settrack command - closes #112
  • v3.1.45 - Add parent cleartrack command, cleanup Messages enum
  • v3.1.46 - Fix meta info only showing values in global context
  • v3.1.47 - Fix vault lookups with static context
  • v3.1.48 - Implement initial web editor support
  • v3.1.49 - Cleanup config keys, make editor URL configurable
  • v3.1.50 - Cleanup
  • v3.1.51 - fix compile
  • v3.1.52 - Fix web editor url
  • v3.1.53 - Fix typo
  • v3.1.54 - Fix misleading Vault debug message
  • v3.1.55 - Catch exceptions thrown by context calculators
  • v3.1.56 - Refactor meta stacking to be mapped in MetaCache - towards lucko/LuckPermsPlaceholders#1
  • v3.2.0 - Expose MetaStacks in the API, general cleanup, release 3.2
  • v3.2.1 - Invalidate active context cache when a player changes world - closes #288
  • v3.2.2 - Don’t catch exceptions thrown inside i/o (#291)
  • v3.2.3 - Cleanup login handling & reduce the amount of unnecessary logging output on startup
1 Like

A new version has been released for LuckPerms, it is available for download here.

  • v3.2.4 - Update copyright headers in the API module
  • v3.2.5 - Fix -s flag (#132)
  • v3.2.6 - Cleanup Bukkit PEX migration, fix user parents being transferred incorrectly
  • v3.2.7 - Update
  • v3.2.8 - Add pl_PL locale (#306)
  • v3.2.9 - Maybe fix usernames not being updated in storage after name changes (#301)
  • v3.2.10 - Only resolve inheritances for groups which exist already
  • v3.2.11 - Add MongoDB collection prefix option
  • v3.2.12 - Don’t store attributes for permissions with only ‘value: true’ in YAML/JSON storage files
  • v3.2.13 - Fixes some issues with username storage and handling
  • v3.2.14 - Add some missing tab completions, remove /lp log export command
  • v3.2.15 - Fix argument validation for parent settrack command - closes #321
  • v3.2.16 - Replace fanciful with KyoriPowered/text
  • v3.2.17 - Tidy up configuration file layouts
  • v3.2.18 - Don’t send messages to command blocks async
  • v3.2.19 - Deploy source & javadoc jar with the API
  • v3.2.20 - Fix NPE with null context in FileWatcher
  • v3.2.21 - Fix BungeePerms migration - closes #333

A new version has been released for LuckPerms, it is available for download here.

  • v3.2.22 - Add jar signing to build scripts
  • v3.2.23 - Store all accumulated meta values in MetaCache
  • v3.2.24 - Make command defintion/usage messages translatable
  • v3.2.25 - Don’t force cancel Sponge ClientConnection.Join if the cancellation state changes, shuffle event orders slightly - fixes #335
  • v3.2.26 - YAML/JSON batch permission defining (#337)
  • v3.2.27 - Add jsr305 annotations to the API
  • v3.2.28 - Fix NPE when loading locale file - closes #338
  • v3.2.29 - Fix lp tree max recursion property
  • v3.2.30 - Don’t cancel re-allowed connections unless the cancel was made by LP
  • v3.2.32 - Export groups in order of weight, then alphabetically
  • v3.2.34 - Change verbose output slightly
  • v3.2.35 - Fix jsr being shaded & tweak javadoc generation to link to guava docs correctly
  • v3.2.36 - Add option to use the servers uuid cache/lookup facility (#354)
  • v3.2.38 - Implement argument based permissions for LP commands - closes #52, #170, #174
  • v3.2.39 - Update dependency versions
  • v3.2.40 - Make ‘meta info’ and ‘parent info’ clickable (#311)
  • v3.2.41 - Fix generating unset commands for temporary nodes
  • v3.2.42 - Use GA MySQL version
  • v3.2.43 - Fail silently when the Sponge Server is not available - closes #367
  • v3.2.44 - Improve /lp listgroups output - closes #368
  • v3.2.45 - Implement support for futures & other changes in the Sponge Permissions API
  • v3.2.46 - Use saner class naming
  • v3.2.47 - Use single quotes in escapeStringForSql (#379)
  • v3.2.48 - Add option to disable colored logging (#382)
  • v3.2.49 - Update /lp info output
  • v3.2.50 - Fix IllegalStateException in meta info command - closes #385
  • v3.2.51 - Fix possible NPEs when calling API storage events - fixes #384
  • v3.2.52 - Cleanup handling of empty permissions when migrating data (closes #387)
  • v3.2.53 - Flush storage buffer more frequently
  • v3.2.55 - fix error with null subject in ContextManager removal listener - closes #392
  • v3.2.56 - Throw an NPE if a null delegate sender is passed to SenderFactory#wrap
  • v3.2.57 - Don’t load contexts file twice
  • v3.2.59 - Fix IndexOutOfBoundsException with ‘permission settemp’ command (#403)
  • v3.2.60 - Give default group if needed after “parent remove” (#405)

A new version has been released for LuckPerms, it is available for download here.

  • v3.2.61 - Fix sponge config loading - closes #407
  • v3.2.62 - Remove unnecessary extra cache in ContextManager
  • v3.2.63 - Make Sponge’s #getFriendlyIdentifier return usernames of Users and display names of Groups (#412)
  • v3.2.64 - Fix NPE with Vault #getPlayerGroups
  • v3.2.65 - Fix ‘meta settemp’ command using duration as the server context (#421)
  • v3.2.66 - Fix Sponge PermissionDescription lookups (#425)
  • v3.2.67 - Refactoring & misc cleanup
  • v3.2.68 - Cleanup verbose & treeview packages. Return known permissions from the PermissionVault as Sponge PermissionDescriptions
  • v3.2.69 - Optimizations to the core PermissionHolder class
  • v3.2.70 - Fix negating group permissions to cancel inheritance
  • v3.3.0 - Properly implement Contexts#allowAll - bump API to 3.3
  • v3.3.1 - Fix checkinherits command not returning the inheritance data
  • v3.3.2 - Correctly export meta/prefix/suffix nodes to command strings
  • v3.3.3 - Update KyoriPowered/text dependency
  • v3.3.4 - Fix text dependencies being shaded
  • v3.3.5 - Fix issue with casting UUIDs in MongoDB backing (#443)
  • v3.3.6 - Allow permission info command to be filtered by context (#442)
  • v3.3.7 - Refactor weight lookups
  • v3.3.8 - Send a more helpful message when the non legacy version of LP is installed on Bukkit 1.7 (#437)
  • v3.3.9 - Remove “… data was saved to storage” messages
  • v3.3.10 - Format times in /lp log into a shorter form
  • v3.3.11 - Refactor and cleanup Log classes
  • v3.3.12 - Dispatch log entries via the messaging service
  • v3.3.13 - Fix comparator and ensure @Nonnull annotated methods never return null in LogEntry
  • v3.3.14 - Update zh-CN locale (#449)
  • v3.3.15 - Update zh-CN locale (#450)
  • v3.3.16 - Refactor metastacks & primary group calculation
  • v3.3.17 - Fix time test for node expiry times
  • v3.3.18 - Update for latest Text version
  • v3.3.19 - Add login debug option
  • v3.3.20 - Run user cleanup task async and not on Storage init
  • v3.3.21 - Catch Throwable instead of Exception when setting up BukkitJsonMessageHandler
  • v3.3.22 - Reduce buffer times, refactor MessagingService init
  • v3.3.23 - Remove “list” alias for holder info (#461)
  • v3.3.24 - Add config option to prevent primary group removal (#405)
  • v3.3.25 - Add type argument to ‘meta clear’ command (#457)
  • v3.3.26 - Fix incorrect usage of CompletableFuture#thenCombineAsync
  • v3.3.27 - Refactor command execution to use Locks per target instead of (effectively) one for all commands - towards #317
  • v3.3.28 - Don’t publish/broadcast log entries from the import process - towards #317
  • v3.3.29 - Refactor Importer/Exporter to use multiple threads (#317)
  • v3.3.30 - Fix build
  • v3.3.31 - Fix some issues with the recent import/export changes
  • v3.3.32 - Send some extra data to the editor data object
  • v3.3.33 - Bump caffeine and hikari versions (#462)
  • v3.3.34 - Fix NodeFactory#nodeAsCommand when unsetting meta nodes, fix meta unset command
  • v3.3.35 - Added uranium server support to DependencyManager (#464)
  • v3.4.0 - Add tracing to /lp verbose, API updates/cleanup, add login process event, and utilise string interning for faster context/node comparisons
  • v3.4.1 - Fix missing depend
  • v3.4.2 - Make some ingame messages more consistent with the LP theme, general cleanup

Can u move your creation to SpongeAPI 7.0.0? Thank you!

A new version has been released for LuckPerms, it is available for download here.

Just a quick update to make a couple of small improvements. :slight_smile:

  • v3.4.4 - Cleanup subscription updates & UserManager#loadAllUsers
  • v3.4.6 - Fix group expiry time not being exported (#474)
  • v3.4.7 - Always load dependencies into the plugin classloader, and not it’s parent - fixes #479 (this fixes Java 9 support)
  • v3.4.8 - Only schedule a user cleanup when LuckPermsApi#cleanupUser is called
  • v3.4.10 - Fix tab completion inconsistencies caused by argument rewrites - closes #481
  • v3.4.11 - Re-add ‘list’ as an alias of ‘permission info’ - reverts #461, closes #473
  • v3.4.12 - Cache SubjectReference instances, general cleanup
  • v3.4.14 - Only load slf4j if it’s not already present on the server
  • v3.4.15 - Bump dependency versions
  • v3.4.17 - Make verbose output more readable when a check is made against a lot of contexts

A new version has been released for LuckPerms, it is available for download here.

It’s been a while since I last posted a build here – so here ya go! :slight_smile:

Change list

  • v3.4.18 - Refactor sponge cache invalidation
  • v3.4.19 - Refactor context manager
  • v3.4.20 - Add hu_HU locale - thanks @montlikadani
  • v3.4.21 - Export using the /lp alias
  • v3.4.22 - Move Track methods away from checked exceptions, refactor ContextManager & primary group holders
  • v3.4.23 - Remove context pre-processing (mostly)
  • v3.4.27 - Remove cleanupUsers functionality
  • v3.4.28 - Prioritise primary groups when two inherited groups have the same weight (#500)
  • v3.4.29 - Make parents-by-weight the default primary group calculation method
  • v3.4.30 - Primary groups should come first, not last, when ordering groups for inheritance (#500)
  • v3.4.31 - Remove usage of the now-redundant ExtractedContexts class, other misc cleanup
  • v3.4.32 - Ensure stored primary groups are always lowercase’d
  • v3.4.33 - fix MetaStackElement equality checks
  • v3.4.34 - Add highest_inherited and lowest_inherited meta stack elements
  • v3.4.35 - Fix updating primary groups for players who’ve never joined the server with SQL storage types (#500)
  • v3.4.36 - Throw an exception if we’re unable to create the lib dir
  • v3.4.37 - Ensure users are a member of their primary group (#506)
  • v3.4.38 - Cleanup verbose handler & only send sponge OP command notification if the sender has permission
  • v3.4.39 - Rewrite flatfile storage (YAML & JSON) to use configurate, add HOCON storage method
  • v3.4.40 - Throw exception if directories cannot be created
  • v3.4.41 - Add config option to allow invalid usernames (#516)
  • v3.4.42 - Fix migrating null / non-existent usernames - reverts parts of 6bfeec6, fixes #514
  • v3.4.43 - Try to find the most appropriate primary group before just adding a user to default - closes #506
  • v3.4.45 - More storage refactoring - write group nodes into their own section in flatfile types (#502)
  • v3.4.46 - Add group setdisplayname command (#493)
  • v3.4.47 - More storage refactoring
  • v3.4.48 - Cleanup
  • v3.4.49 - Add option to cancel failed logins on BungeeCord variant
  • v3.4.50 - Form more descriptive console & import usernames
  • v3.4.51 - Fix NPE on startup (#520)
  • v3.4.52 - Fix temporary group display format in parent info command (#518)
  • v3.4.53 - Fix changes not being saved for flatfile bulkupdate operations
  • v3.4.54 - Fix user exports
  • v3.4.55 - Cleanup / tidy up a number of classes
  • v3.4.57 - cleanup & fix build
  • v3.4.58 - Increase actions actor_name column length (#525)
  • v3.4.60 - Refactor the log creation process
  • v3.4.61 - Deprecate some unused methods in ImmutableNode, refactor #shouldApplyWithContext
  • v3.4.62 - Add Sender#getNameWithLocation
  • v3.4.64 - Use a string version of the full static context, as opposed to the server name
  • v3.4.65 - Increase actor_name field length to account for changes to logging
  • v3.4.66 - Use “None” instead of “global” when no server name is specified
  • v3.4.67 - Alias /lp player → /lp user
  • v3.4.68 - Don’t prevent modification of group.<group name> nodes with permission subcommands
  • v4.0.0 - API 4.0 - this is a breaking change
  • v4.0.1 - Fix tab completions not being returned for empty strings (#538)
  • v4.0.2 - Move a couple more methods around in the API
  • v4.0.3 - Final bits of API refactoring, add group data caches, fix issue with LPPermissionAttachment fake map injection
  • v4.0.4 - Move #refreshCachedData up the type hierarchy into PermissionHolder
  • v4.0.5 - Fix broken usage of LogEntry#getActed
  • v4.0.6 - Bump dependency versions
  • v4.0.7 - Attach extra data to the editor payload object to allow for tab completion
  • v4.0.9 - Expose more connection pool settings in the config file
  • v4.0.10 - General tidy up
  • v4.0.11 - Fix compiling null AssignmentExpressions
  • v4.0.12 - Don’t try to run schema migrations for SQLite
  • v4.0.13 - Fix issue with loading tracks with configurate
  • v4.0.14 - Bump SQLite version
  • v4.0.15 - Fix zero length prefixes from locale files
  • v4.0.18 - Don’t allow user names to be set if the length exceeds 16 characters
  • v4.0.19 - Implement system for shorter editor urls & display diff when changes are applied
  • v4.0.20 - Remove character constraints on group names, cleanup legacy node (de)serialization system
  • v4.0.21 - Fix race condition when saving null config nodes to non-existent files
  • v4.0.22 - Refactor configurate dao
  • v4.0.23 - Update ru_RU locale (#560 - thanks @DarkFort)
  • v4.0.24 - Update hu_HU locale (#558)
  • v4.0.25 - Update pl_PL locale (#556)
  • v4.0.26 - Add config option for defining extra SQL connection properties (#563)
  • v4.0.28 - Cleanup sponge service impl
  • v4.0.29 - Change poms to conform to Sonatype’s OSSRH requirements
  • v4.0.30 - Fix mongodb bulkupdate (#572)
  • v4.0.31 - Rewrite the MongoDB storage impl to use the modern node serialisation format
  • v4.0.32 - Don’t run schema migrations for Postgre (#568)
  • v4.0.35 - Run a sync task after completing a bulk update (#579)
  • v4.0.37 - Fix MongoDao issue causing unnecessary writes each time a user is loaded (#589)
  • v4.0.38 - Use static empty context set where appropriate, cache reversed comparator instances
  • v4.0.39 - Fix compatibility with older Gson versions
  • v4.0.40 - Validate checksums of downloaded dependencies
  • v4.0.41 - Remove the isAcceptingLogins storage state in favour of just throwing exceptions on usage
  • v4.0.42 - propagate i/o errors to the futures returned by the dao
  • v4.0.43 - Work around message bug when parsing two consecutive color codes
  • v4.0.44 - refactor context sets
  • v4.0.45 - Fix compat with older hikari versions (#600)
  • v4.0.47 - Update locale files (#604, #601, #602)
  • v4.0.48 - Fix user demote command success message (#609)
  • v4.0.49 - Fix promote / demote command inconsistencies (#609)
  • v4.0.50 - Refactor paginated command output, add flags for ordering ‘permission info’ entries, fix crashes caused by long messages (#591)
  • v4.0.51 - Send a message when an editor upload begins
  • v4.0.52 - Misc cleanup
  • v4.0.53 - Add user clone command (#530)
  • v4.0.54 - Send more helpful message when /lp is executed without any arguments
  • v4.0.55 - Fix more broken message coloring
  • v4.0.56 - Update text version
  • v4.0.57 - Change log output format, refactor log pagination
  • v4.0.58 - Various fixes for log commands
  • v4.0.59 - Return the loaded objects from storage methods as opposed to success flags
  • v4.0.60 - Extract out common constants & magic values into factory classes

This is great so far except for the fact that any rank below me can’t use /help, but can perform /minecraft:help? Is there any way to fix this?

You havn’t given them the permission for people were complaining that you couldn’t prevent people using it, so it was newly added in the last few months.

My database is collapsing due huge indexes size from luckperms tables.
Do not you think that it would be more efficient to store the UUID’s in binary(16) for MySQL/MariaDB?

@Ghostly that seems odd… How many unique players are you seeing? Is it current schema’d to be varchar or something?


1 Like

It would be more efficient yes, however the SQL implementation supports more than just MySQL, and so it’s not easily doable.

I administrate a number of large networks running LuckPerms - we have close to 1 million entries in one of our user permission tables (we store a lot of data using permissions :stuck_out_tongue: ), and the disk usage for the table + indexes is still negligible.

I’m wondering if something else is causing your issue? Could you perhaps share some stats?

Yep, I’ve used that approach before on a couple of other projects.


You get faster comparisons, and more compact data - but interacting with the data in a CLI is a real PITA. :smiley: (not like that’s a good reason not to do so, though)

As said previously, it’s trickier in LP, as the data types vary quite a bit in the other supported database implementations.

1 Like

Is it possible to use this plugin to format a rank with a certain colored rank, and also change their name to a specific color. For example the Owner rank would be like [Owner]ANameHere, the word owner would appear red in chat and the name would appear blue and bold or something?

Yes, just use the minecraft colour codes when you set the prefix - &c[Owner]