PvP Elo icon

PvP Elo -----

Add competitive skill tracking to your server!




Added the following to support an optional world whitelist:

  • Config options:
    • enabled-worlds (String list)
      • List of worlds where elo tracking is enabled
      • Default: "%all" for all worlds
      • Skips list entries that do not match worlds loaded by the server
        • Let me know if the timing of this check conflicts with any multi-world plugins
    • disabled-world-message (boolean)
      • Whether a message is sent to combatants on victim death in a non-tracked world
      • Default: false
  • Command arguments for /eloa
    • world
      • Gets the next argument and toggles elo tracking for the named world
      • Tab-completes based on server's world list
      • Fails if internal boolean allEnabled is true, or if world is not found
    • allworlds
      • Toggles internal boolean allEnabled, toggling between server-wide and per-world tracking
    • disabledworldmessage
      • Toggles disabled-world-message
***Plugin download is now served by a self-hosted website to consolidate uploads.***
----------, Oct 16, 2023

Two changes:
  • Removed Spigot API erroneously included when building JAR
  • Fixed logic error when disabling nametags
----------, Oct 8, 2023

Four changes:
  • Now uses NametagEdit for nametag support, as it is updated more often and is much more popular (likely to remain supported)
  • Compiled against Spigot API 1.20.2 to ensure compatibility*
  • Uploaded source to GitHub
  • Cleaned up code a little bit based on the IDE's suggestions
*I set the API version to 1.20 in the plugin.yml. Let me know if this breaks compatibility with older versions, because I am not sure whether this is a hard minimum or not.
----------, Oct 8, 2023

Changes:
  • Fixed small bug with tab autocompleter that didn't allow second arguments to be autocompleted (e.g. a player's name with /elo check)
  • Tweaked some of the code to prepare for API access
    • Only planning to allow reading and modification of player stats, so you could, for instance, make a plugin that does something when a player hits a certain rank, or gets their elo higher than a target, etc.
  • Fixed small performance bug
    • Entire list of players is no longer saved to config and then reloaded whenever a brand new player joins
    • Likely had very little performance impact, but fixed anyway
----------, Dec 21, 2022

It's time for a full release! In testing, I have not encountered any issues, but if you run into anything, please let me know!

Changes:
  • Added tab autocomplete
    • Makes typing commands a bit faster
  • Added code to remove old, unused config options automatically
    • Noticed min and max elo still present in old configs
  • Default prefix now uses dark aqua color (&9) for name
    • I just think it looks nicer
Plans:
  • None at the moment! I've added everything I've had a vision for, but if you have an idea, let me know!
----------, Dec 21, 2022

Forgot to update version name. Previous download from moments ago is 1.0 pre 1, but it was not labeled as such on Spigot.
----------, Dec 20, 2022

Lots of bugs were ironed out, and a big new feature was added, per suggestion from our community! Thanks, Alterego!

Changes:

  • (From suggestion) Add option for GUI displaying /elo top
    • Shows top 9 players, plus the user's ranking in second row
    • Hovering over the displayed heads shows position, elo rating, and percentile
    • Enabled by default, toggled with /eloadmin gui
  • Cosmetic changes to make things more pretty <3

To do for 1.0 full release:

  • Tab autocomplete
    • Makes typing commands a bit faster
  • Remove old config options automatically
    • Noticed min and max still present in old configs
----------, Dec 20, 2022

Changes:
  • Fixed logic error when setting base and max adjustment
    • Would set the value before checking against the other, but only write to config after check
  • Added configurable max ratio
    • Integer option
    • Set it lower than base adjustment to encourage more even fights
    • Lets you use a high base adjustment without opening up opportunity for bullying
    • Base adjustment is still the hard cap on ratio, due to adjustment calculation formula
    • Default is 5, or 5:1
  • Added configurable max portion
    • Decimal option, ranging from 0.0 < max portion <= 1.0.
    • Caps adjustment to a portion of the victim's rating
    • Default is 0.25 or 25%
  • Added comments to config
    • Added shameless plug support link
  • Added shameless plug support link to /version PvPElo
  • Clarification for adjustment override priority:
    1. Check if victim rating is 1. If yes, adjustment is 0
    2. Check if max ratio is exceeded. If yes, adjustment is 0
    3. Check if max portion is exceeded. If yes, adjustment is capped to max portion.
    4. Check if max adjustment is exceeded. If yes, adjustment is capped to max adjustment.
  • Added leaderboard position and percentile to /elo check
    • More useful info available to players
  • Top 10 board now shows configured elo color as well as colored names for the top 3.
  • Added color to various messages to improve readability.

To do for 1.0 full release
  • Tab autocomplete
    • Makes typing commands a bit faster
  • (From suggestion) Add option for GUI displaying /elo top
    • Shows top 8 players, plus the user's ranking in slot 9
    • Hovering over the displayed heads shows position, elo rating, and percentile
----------, Dec 20, 2022

Changes:
  • Elo is now referred to as "rating" in most places.
    • Score is "rating;" unit is "elo"
  • Maximum and minimum rating are no longer configurable.
    • Rating is now uncapped*, and the minimum is 1.
  • Base and maximum adjustments are configurable.
    • Default: 75 base, 500 maximum
  • Adjustments are still equal for both killer and victim.
  • Minimum adjustment is 0, which occurs when the ratio between killer and victim exceeds the base adjustment's value
    • Example: If base adjustment is 75, then a player with a 3750 rating will earn no adjustment for killing a player with a rating below 50, because 3750:50 = 75:1.
  • If a victim has 1 elo, then the adjustment for both players is 0 in any case.
  • Adjustment is hard-capped to 50% of the victim's rating.
    • There were issues where two low-rated players with a large ratio fought, causing an adjustment substantially larger than either player's rating.
  • Permissions slightly tweaked, so /elo is available without explicit permission.
    • Open to suggestions if it should not be available by default.
  • Commands are slightly tweaked.
    • Shorter arguments - check documentation
    • New arguments for base and maximum adjustments
    • Using /eloadmin initial, base, or max without another argument informs you of the current respective value.
  • Death/kill messages shortened for ease of reading.
  • Config now includes notes for what each value represents.
Plans:
  • Tab autocomplete (still)
  • 1.0 full release
*Capped at the integer limit - over 2 billion.
----------, Dec 19, 2022

First beta for the 1.0 release! adds lots of goodies, but not everything I want to put in the full release.

Changes:
  • Added nametag support with TagAPI
    • TagAPI needs ProtocolLib to work. Currently, ProtocolLib support for 1.19.x is not finalized, so there may be bugs.
    • If TagAPI is not detected, nametag functionality is disabled.
    • TagAPI only supports up to 1.19. Do not use it if you are on 1.19.1 or higher.
  • Added /eloa nametags
    • Toggles nametags; immediately updates
    • Still works if TagAPI is not present, though doesn't do anything except update the config
  • Removed /eloa version
    • I missed Spigot supporting /version PvPElo
  • Cleaned up code
  • Fewer redundant variable declarations; should free up some memory
  • Noticed a couple of logic errors that caused bigger errors
  • Adjusted formula
  • Now has minimum and maximum caps for adjustment amount
    • Minimum is 1, max is 10% of max elo
    • Resolved issue with absurdly high elo adjustment if the rating difference was too high
  • Minimum elo is now hard-coded to 1
    • This prevents divide-by-zero issues with the formula introduced in the last update
Plans:
  • Tab autocomplete for commands
  • Likely remove maximum elo
    • The trouble with current environment is that when a max-capped player kills another player, elo is lost from the pool (sum of all players' elo). The only way to generate elo would be to kill min-capped players, as they would lose nothing and the killer would gain 1 elo.
    • Potential changes:
      • Minimum elo 1, maximum at integer limit (over 2 billion)
        • No longer configurable
      • Minimum adjustment 0, which occurs when the rating differential is too high
      • Re-work formula based on integer limit to modify "base payout"
        • Currently set to 1.5% of maximum elo
----------, Dec 18, 2022

Changes:
  • New elo calculation formula. Check the documentation.
  • New, better aliases. Old aliases are still there, but "elo" and "eloa" are now available for ease of use.
Plans:
  • Tab-autocomplete for command arguments
  • Elo shown in nametag option
With these features, I will consider it functionally complete for a 1.0 release. Please let me know what other features you would like to see!
----------, Dec 18, 2022

Renamed to PvP Elo, and tweaked for greater compatibility and functionality.

Changes:
  • Name changed
  • Version reverted, to reflect new status
  • Commands and permissions renamed
  • Config re-vamped
  • Added elo-color option
  • Changed rating shown next to names in chat to be handled by any chat plugin, using "varElo" variable
    • You will need something like EssentialsXChat to display elo ratings next to usernames in chat
Plans:
  • Rework calculation formula to be more fair
  • Add tab-autocomplete for command arguments
  • Add option for elo in nametag?
----------, Dec 18, 2022

Resource Information
Author:
----------
Total Downloads: 1,913
First Release: Sep 23, 2017
Last Update: Oct 16, 2023
Category: ---------------
All-Time Rating:
5 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings