-
Notifications
You must be signed in to change notification settings - Fork 3
Experience and Ranks System
Here is a complete tutorial to understand how the experience and ranks system works. You will also need to check the Ranks Setup and the Default configuration
The entire system rests on the amount of experience a player has. With his experience points, the plugin will calculate what is his level and his rank. This is why the only value in storage files is the experience(this will not stay the same forever I guess). The plugin will first calculate the level of the player depending on the formula you put in the rank.yml file. Then depending on his level, the plugin will attribute a rank to the player. You can see a lot of information about the player by using the command /easyduels profile <player>
. This command requires the easyduels.othersprofile
permission. You can also check your own profile with the command /easyduels profile
. This command requires the easyduels.myprofile
permission. Check below for more information. Here is a profile example:
You can modify the experience of a player with a lot of commands. Note that you can also modify the experience in the storage folder but this is not recommended, especially if the player is connected to the server. Therefore, if you modify the player experience with commands, the player needs to be connected.
Here are some screenshots of what happened in different situations with the default config (you can modify it in the rank.yml file). The player starts with 0 experience points.
When the experience of a player is modified. Happened after /easyduels admin give \<player> 350
.
When a player levels up. Happened after /easyduels admin give \<player> 400
.
When a player reaches a rank (first one here). Happened after /easyduels admin set \<player> 8450
.
When a player reaches a rank (second one here). Happened after /easyduels admin set \<player> 50000
.
There are two types of commands for modifying experience.
-
Target: Those commands require a target to work and you will need the permission
easyduels.admin.rank
to use them. You can see a list of those commands below. The amount must be an integer upper 0.
Command | Description |
---|---|
/ed admin give <player> <amount> | Give an amount of experience points to the specified player. |
/ed admin take <player> <amount> | Take an amount of experience points to the specified player. |
/ed admin set <player> <amount> | Set the amount of experience points for a specified player. |
/ed admin reset <player> | Reset the amount of experience points for a specified player. |
-
All: Those commands don't require a target to work but they automatically target every connected player. You will need the permission
easyduels.admin.rankall
to use them. You can see a list of those commands below. The amount must be an integer upper 0. Use these commands knowing how to use them and reminding yourself that any commands action cannot be undone.
Command | Description |
---|---|
/ed admin giveall <amount> | Give a number of experience points to all connected players. |
/ed admin takeall <amount> | Take a number of experience points to all connected players. |
/ed admin setall <amount> | Set the number of experience points for all connected players. |
/ed admin resetall | Reset the number of experience points for all connected players. |
The level is calculated with a unique mathematical formula. You can modify it in the rank.yml whenever you want, even after you've used an old formula for a while. But if you change it while using it, note that you will need to reload or restart your server and players may have a new level and a new rank without receiving rewards (they will receive permissions after a reload). Here is some advice to use it perfectly.
Here are some formulas you can use. Note that if you want to use the mathematical power symbol, do not use the symbol "^" but write: Math.pow(number, exponent). For example, if you want to put 1.025^%level% (as in the default config), you need to write Math.pow(1.025, %level%). They are used in many plugins or games in general or something equivalent : (Note: Here I use 30000 as a multiplier. You can easily modify this value without any knowledge of mathematics. This value increases or decreases the amount of required experience for a level without modifying the general structure for the whole process.)
- Linear:
exp(%level%) = 30000 * %level%
Click here to see what it looks like
Level | Required Experience |
---|---|
Level 0 | 0 XP |
Level 1 | 750 XP |
Level 2 | 1519 XP |
Level 3 | 2307 XP |
Level 4 | 3114 XP |
Level 5 | 3942 XP |
Level 6 | 4791 XP |
Level 7 | 5661 XP |
Level 8 | 6552 XP |
Level 9 | 7466 XP |
Level 10 | 8403 XP |
Level 11 | 9363 XP |
Level 12 | 10347 XP |
Level 13 | 11355 XP |
Level 14 | 12389 XP |
Level 15 | 13449 XP |
Level 16 | 14535 XP |
Level 17 | 15649 XP |
Level 18 | 16790 XP |
Level 19 | 17960 XP |
Level 20 | 19158 XP |
Level 21 | 20387 XP |
Level 22 | 21647 XP |
Level 23 | 22938 XP |
Level 24 | 24262 XP |
Level 25 | 25618 XP |
Level 26 | 27009 XP |
Level 27 | 28434 XP |
Level 28 | 29895 XP |
Level 29 | 31392 XP |
Level 30 | 32927 XP |
Level 31 | 34500 XP |
Level 32 | 36113 XP |
Level 33 | 37766 XP |
Level 34 | 39460 XP |
Level 35 | 41196 XP |
Level 36 | 42976 XP |
Level 37 | 44800 XP |
Level 38 | 46670 XP |
Level 39 | 48587 XP |
Level 40 | 50552 XP |
Level 41 | 52566 XP |
Level 42 | 54630 XP |
Level 43 | 56746 XP |
Level 44 | 58914 XP |
Level 45 | 61137 XP |
Level 46 | 63416 XP |
Level 47 | 65751 XP |
Level 48 | 68145 XP |
Level 49 | 70598 XP |
Level 50 | 73113 XP |
Level 51 | 75691 XP |
Level 52 | 78333 XP |
Level 53 | 81042 XP |
Level 54 | 83818 XP |
Level 55 | 86663 XP |
Level 56 | 89580 XP |
Level 57 | 92569 XP |
Level 58 | 95633 XP |
Level 59 | 98774 XP |
Level 60 | 101994 XP |
Level 61 | 105294 XP |
Level 62 | 108676 XP |
Level 63 | 112143 XP |
Level 64 | 115696 XP |
Level 65 | 119339 XP |
Level 66 | 123072 XP |
Level 67 | 126899 XP |
Level 68 | 130821 XP |
Level 69 | 134842 XP |
Level 70 | 138963 XP |
Level 71 | 143187 XP |
Level 72 | 147517 XP |
Level 73 | 151955 XP |
Level 74 | 156504 XP |
Level 75 | 161166 XP |
Level 76 | 165945 XP |
Level 77 | 170844 XP |
Level 78 | 175865 XP |
Level 79 | 181012 XP |
Level 80 | 186287 XP |
Level 81 | 191694 XP |
Level 82 | 197237 XP |
Level 83 | 202917 XP |
Level 84 | 208740 XP |
Level 85 | 214709 XP |
Level 86 | 220827 XP |
Level 87 | 227097 XP |
Level 88 | 233525 XP |
Level 89 | 240113 XP |
Level 90 | 246866 XP |
Level 91 | 253787 XP |
Level 92 | 260882 XP |
Level 93 | 268154 XP |
Level 94 | 275608 XP |
Level 95 | 283248 XP |
Level 96 | 291079 XP |
Level 97 | 299106 XP |
Level 98 | 307334 XP |
Level 99 | 315767 XP |
Level 100 | 324411 XP |
-
Polynomial:
exp(%level%) = 30000 * %level% ^ 1.025
-
Exponential:
exp(%level%) = 30000 * Math.pow(1.025, %level%) - 30000
Used in the default config
EasyDuels is an open-source and free plugin for spigot servers, offering a new 1v1 system for your server.