Plugin category: Levels Minecraft version: 1.14 Suggested name: LevelSystem What I want: I know there's some player leveling systems out there, but most of them require a permission plugin for groups, don't have some features I need, and are just extremely large with many extra features. I need a plugin where a player gains experience/XP (not vanilla Minecraft experience in the bar at the bottom of the screen) by doing certain tasks and then levels up once enough experience is gained. This might be easier thought of as a point system where once enough points are gained from doing a variety of tasks/events, the player is leveled up. I will refer to everything below as experience, but keep in mind it is not vanilla Minecraft experience but more like points. No rewards are needed and I want it so I don't have to create groups with my permissions plugin, each level just has a prefix I can give to the players names through placeholders and my chat plugin. This plugin isn't supposed to reward players, it's more of a system to show how experienced the player is. Events that give experience: Player kills Opening a trapped chest (and stops receiving experience from that trapped chest until X amount of time has passed) Mob kills (Specifically Zombie Pigman) You can add more if you have any in mind, these are the only ones I need though. I want to be able to edit the experience given from these events. Maybe something like this: Experience: #Amount of experience given per each event playerKill: 2 trappedChest: 1 #How much time must pass (in minutes) before being able to receive another 1 experience from the same trapped chest resetExperience: 30 mobs: #Amount of experience given per each specific mob kill (If you only add compatibility for zombie pigman, it'll work for my needs). zombie_pigman: 1 I should also be able to define the levels (this could be the config). Again, it does not need to have groups in a different plugin. An example would look like this: Levels: #New players start at 1. 1: #How much experience is needed until leveling up to 2 experience: 10 #Prefix of players at this level. Color codes are accepted prefix: &6&l[&fNoob&6&l] 2: #How much experience is needed until leveling up to 3 experience: 20 #Prefix of players at this level. Color codes are accepted prefix: &6&l[&fPlayer&6&l] 3: #How much experience is needed until leveling up to 4 experience: 30 #Prefix of players at this level. Color codes are accepted prefix: &6&l[&fAdvanced&6&l] I think it would probably be best if a players experience resets after each time they level up. So if I gain 10 experience and level up to 2, my experience resets to 0 and now I have to gain 20 more experience to level up again to level 3. Also, if a player is at level 2 with 19 experience and they do a task worth 2 experience. They should level up to three and have one experience. Basically although experience resets, if a player goes over the required amount it will transfer over (this is also shown in the command listed down below). And then there's the file where it stores all players' levels. You can do this however you please or think is most efficient. Keep in mind players start off at level 1. So you could do it so when a player joins for the first time they're then stored into the file as level 1, or just have it so everyone is a level 1 unless defined otherwise in this file. It's up to you really. Placeholders are also needed. I should note I have PlaceHolderAPI. Here are a list of PlaceHolders I have in mind: %LSlevel% - Returns the level of that player (an integer). These are the numbers 1, 2, and 3 in the example config. %LSPrefix% - Returns the player's prefix as defined in the config. %LSPercent% - Returns the percentage a player is to leveling up. For example, if I'm level 1 with 5 experience (going off of the example Levels/config file) this should return 50%. If I'm level 2 with 15 experience, it would return 75%. In the case of a decimal, round it to the tenths place to be, for example, 60.6% rather than 60.6666666. %LSExperience% - Returns how much experience a player currently has. %LSExperienceNeeded% - Returns how much experience is needed for the next level up. For example, if I'm level 2 this would return 20 (based off of the example config). Ideas for commands: /LSXP give <player> <experience amount> - Gives a player an amount of experience. If it exceeds the amount required for the next level up, it should transfer over until can no longer level up. For example, if I'm level one with 0 experience and I'm given 35 experience, I should then be level 3 with 5 experience. Ideas for permissions: No permissions needed. Everyone can gain experience from everything and only OPs can do the command listed above. When I'd like it by: This is a pretty lengthy and complex plugin, so feel free to take your time.