Rankup icon

Rankup -----

An highly configurable and lightweight rankup system with a GUI!




Updated Towny requirements to be compatible with newer versions of Towny.
----------, Mar 5, 2025

  • Rankup is now compatible with Java 8 and newer versions again
----------, Feb 21, 2025

  • Added new configuration option in config.yml use-luckperms-group-names which will allow you to use LuckPerms group names in the rankups.yml instead of their display names
  • Added item option to GUI configuration. It can be used in place of providing the material, name, and lore, and is a fully serialized itemstack offering much more customisation
  • When using LuckPerms ranks, it is no longer case sensitive
  • Update to 1.21.4
  • Minimum Java version is now Java 21

The item option can be used as follows:

Code (YAML):
   rankup:
      index
: 0-3
      item
:
        v
: 3839
        ==
: org.bukkit.inventory.ItemStack
        type
: BEDROCK
        amount
: 1
        meta
:
          meta-type
: UNSPECIFIC
          ==
: ItemMeta
          display-name
: "§aName"
          lore
:
           - Lore
For more details, see https://www.spigotmc.org/wiki/itemstack-serialization/
----------, Feb 9, 2025

  • Fix /pru playtime commands sometimes sending messages to the wrong player.
----------, Nov 19, 2023

  • Fix votingplugin-* requirements in newer versions of VotingPlugin. This version also drops support for older versions of VotingPlugin (6.14 or older).
----------, Nov 17, 2023

  • Fix PlaceholderAPI placeholders _left, _done, _percent_done, and _percent_left throwing an error if used with a placeholder or world requirement.
----------, Jul 25, 2023

  • Add support for VotingPlugin 6.13.1
  • Update to 1.20 (no code changes)
  • The /ranks command will no longer run if the plugin failed to start up properly
----------, Jun 28, 2023

  • Add /rankup noconfirm command
    • This makes a player attempt to rankup without any confirmation. It can be disabled in the config.yml.
    • Requires the permission rankup.noconfirm which is granted by default
    • Administrators can use the permission rankup.noconfirm.other to make other players rankup with /rankup noconfirm <player> - this can be helpful in making custom confirmations while retaining Rankup's built-in confirmations.
  • Better integration with LuckPerms with the luckperms-context configuration option.
    • This forces Rankup to use a specific LuckPerms context when checking for, updating, or changing groups instead of using Vault.
  • The mob-kills requirement can use EntityType.valueOf as well as EntityType.fromName now.
To take advantage of these options, copy the following text to the end of your config.yml or delete/move it and allow it to be regenerated by Rankup.

Code (Text):
# if not empty, these are the contexts to use when modifying groups if LuckPerms is enabled
# if empty, this will be based on your LuckPerms config.yml 'use-vault-server' and 'vault-server'
# this option will only work if permission-rankup is disabled
#
# luckperms-context: 'server=global' # to make all rankups global
# luckperms-context: 'server=survival' # to make all rankups specific to survival
# luckperms-context: 'server=survival world=world_nether' # to make all rankups specific to the nether world in survival
luckperms-context: ''

# if players can use /rankup noconfirm to bypass any confirmation
# the permission rankup.noconfirm is used for this command, but it is true by default
# the console can always do /rankup noconfirm <player>
enable-noconfirm: true
----------, Jan 19, 2023

  • {{ requirement.quotient }} in placeholders will now return 0 instead of NaN if the total is 0.
  • Add {{ rank.has('requirement_name') }} to test if a rank has a particular requirement.
----------, Apr 17, 2022

Fix prestige requirements not working
----------, Jan 6, 2022

Fix problems with /ranks gui
----------, Nov 2, 2021

  • Add TOML support for rankups - adding a rankups.toml to the Rankup/ directory will be used (and take precendence over) rankups.yml
  • Add more informative message if an invalid requirement is used in messages
  • Add shortmoney filter to use shortened values like K, M, B in messages. Used in the same way as the money or simple filters.
Example rankups.toml:
Code (Text):
[A]
rank = "A"
next = "B"
requirements = [
    "xp-level 1"
]
[B]
rank = "B"
next = "C"
requirements = [
    "money 6000",
    "xp-level 2"
]
    [B.rankup]
        [B.rankup.list]
        complete = "&7{{rank.rank}} &8\u00bb &7{{next.rank}} t"
        current = "&c{{rank.rank}} &e\u00bb &c{{next.rank}} o"
        incomplete = "&r{{rank.rank}} &e\u00bb &r{{next.rank}} m"
----------, Oct 24, 2021

  • Support for 1.8
  • Remove permission rankup.playtime.set. Now merged into rankup.playtime
  • Add support for the item requirement on 1.8 with reduced functionality
----------, Jun 26, 2021

  • Add /pru playtime add command
  • Add dutch (nl) locale - thanks @flurbudurbur
  • Split "percent" requirement context into "quotient" and "percent", where the latter is one hundred times the former. (used in text templating)
----------, Jun 22, 2021

Summary of changes: Added new text processing options (using the Pebble templating options), and PlaceholderAPI requirement for display names. Please note that legacy text processing such as {MONEY} will still work but is now deprecated.
  • 1.17 support
  • Added pebble text templating, details below
  • Added placeholders %rankup_current_prestige_name%, %rankup_next_prestige_name%, %rankup_current_rank_name%, %rankup_next_rank_name%
  • Requirements are now iterated first to last as defined in the configuration file instead of indeterminately
  • We are now using a new wiki: https://okx.sh/rankup/Core-Files/Home.html
  • Fix SuperbVote superbvote-vote requirement not loading
Pebble text processing uses double curly brackets for requirements, such as {{ player }} instead of {PLAYER}. Instead of {MONEY} you should now do {{ rank.req('money').total | money }} This gets the requirement named 'money' and passes it through the money filter. This formats the number based on placeholders.money-format in config.yml.

Most old placeholders will continue to work but support for them is not guaranteed and they may break in the future, so you are advised to change placeholders to the new system.

For more information, see https://okx.sh/rankup/Core-Files/Text-Templating.html
----------, Jun 21, 2021

  • Fix small issue with ranks gui
----------, Feb 8, 2021

  • Split /pru playtime into two permissions: rankup.playtime.set and rankup.playtime.get. The permission rankup.playtime will automatically grant both of these permissions.
  • Allow filling up the entire /ranks GUI with ranks.
  • Fix {OLD_RANK_NAME} in the /ranks text command
----------, Feb 6, 2021

Fix {FROM} and {TO} placeholders for prestiges
----------, Jan 26, 2021

  • Added /pru playtime get [player] and /pru playtime set <player> <minutes> (permission rankup.playtime)
  • Add PlayerRankupEvent and PlayerPrestigeEvent
  • Add superbvote-votes requirement
  • Add /pru rankdown to the help menu
  • Add RGB colour support (&ffffffexample)
  • Add rank display names: {RANK_NAME} and {OLD_RANK_NAME}. "display-name" in the config.
  • Fix PlaceholderAPI warning
  • Fix opening the /ranks GUI on the last rank
----------, Jan 15, 2021

Now with more GUIs
  • Added /ranks GUI (enable ranks-gui in config.yml to do this, you may need to allow Rankup to generate a new config to see this option)
  • Added {MONEY_DONE} config placeholder
  • Add Italian and Spanish locales (thanks mrBackSlach and flurbudurbur)!
  • Updated VotingPlugin
  • Prestige-related bugfix
  • Fixed a couple small typos
----------, Nov 24, 2020

  • Fix an error with using placeholders with certain requirements
  • Fix rankup crashing if you have defined the last rank incorrectly (like in 3.4.2 or earlier)
----------, Sep 23, 2020

  • Add command /pru rankdown <player>
  • Add debug commands /pru placeholders and /pru tree
  • Rewrite rank list data structure (if you are using the api you will need to update)
  • Don't send empty /ranks messages
  • Alllow sub-minute autorankup intervals
  • Add %rankup_status_[rank]% placeholder
  • Update to 1.16 (older versions should support 1.16 anyway)
  • Add advancement requirement, example: advancement story/smelt_iron
No /ranks GUI yet but the changes in this update will make it much easier
----------, Jul 17, 2020

  • votingplugin-votes now uses total votes instead of points
  • votingplugin-points and votingplugin-pointsh now replace the aforementioned requirement, and deduct and don't deduct points respectively.
----------, Apr 25, 2020

You can now use permission-based rankups. Instead of players needing to be in a group, they can now just have the permission (for example) rankup.rank.member. If this system is enabled, Rankup won't automatically do anything when a player ranks up and you will need to use commands to give them permission for the next group.

The option in config.yml is permission-rankup (you may need to rename or delete your config file to generate this option).

Example config: https://pastie.io/ohlmuh.yml
----------, Apr 19, 2020

Prestige requirements are like this:
Code (YAML):
member:
  rank
: default
  next
: member
  requirements
:
    default
:
   - xp-level 1
    p1
:
   - xp-level 2
    p2
:
   - xp-level 3
"default" will be used when a player hasn't prestiged. p1 and p2 are names of prestige ranks set in prestiges.yml. Prestige must be enabled to use this feature.

- Also has some bugfixes
----------, Apr 13, 2020

  • Fix item requirement - it was not taking away items when it should've done (in cases where the item was renamed or modified)
  • You can now configure the GUI for each rankup or prestige.
  • Renamed a few locale files to make more sense
----------, Apr 10, 2020

Resource Information
Author:
----------
Total Downloads: 3,144
First Release: Apr 10, 2020
Last Update: Mar 5, 2025
Category: ---------------
All-Time Rating:
55 ratings
Find more info at okx.sh...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings