Hello everybody! First and foremost I'd like to say that originally this was a tutorial, and now it is more developer friendly *Method to create a leaderboard*. So, as always, here is a picture to show this in action: Leaderboard (Move your mouse to reveal the content) Leaderboard (open) Leaderboard (close) How to use: Add this class into your plugin (Click me (pastebin)) Add this to wherever you want the leaderboard to be updated / created: Code:java new Leaderboard(firstPlaceBlockLocation, secondPlaceBlockLocation, thirdPlaceBlockLocation, firstPlaceBlockType, secondPlaceBlockType, thirdPlaceBlockType, blockFace, configurationFile, configurationStringFormat); Here is a little explanation for each parameter: 1.) firstPlaceBlockLocation: Location of the firstPlaceBlock. In the picture it would be the diamond block beneath Squid_Boss's head. 2.) secondPlaceBlockLocation: Location of the secondPlaceBlock. In the picture it would be the iron block beneath Notch's head. 3.) thirdPlaceBlockLocation: Location of the thirdPlaceBlock. In the picture it would be the gold block beneath jeb_'s head. 4.) firstPlaceBlockType: Material type of the firstPlaceBlock. In the picture, it would be Material.DIAMOND_BLOCK. 5.) secondPlaceBlockType: Material type of the secondPlaceBlock. In the picture, it would be Material.IRON_BLOCK. 6.) thirdPlaceBlockType: Material type of the thirdPlaceBlock. In the picture, it would be Material.GOLD_BLOCK. 7.) blockFace: The direction that the heads and signs are facing. In the picture, it is set to BlockFace.NORTH. ** Only supports NORTH, SOUTH, EAST, and WEST as of now ** 8.) configurationFile: The configuration file that stores the player and the player's points. IE: getConfig(); 9.) configurationStringFormat: This is where it get's interesting. With the string format, you'd set this to however your configurationFile stores players and their points. IE: If your configurationFile stored information like this: Code: Player: points Then you'd set configurationStringFormat to this: Code: "player" ** Keep it as 'player' and not a player's name / UUID. The code needs to find the word 'player'. ** However, if your configurationFile is a bit more complex IE: Code: Something: Something: Something: Player: Something: Points: Then you'd set configurationStringFormat to this: Code: "Something.Something.Something.player.Something.integer" **Again, the code tries to find the words 'player' and 'integer', so do not replace them with any values ** Also the configurationStringFormat DOES support UUIDs, so if you store a player's UUID in your configurationFile, then it will retrieve the UUID and convert it into that player's current name, and will set the skull and sign accordingly. So yeah, I think this is something that a lot of people would like to use, and personally I think it's pretty cool. If you have any questions as to how to work it, please put any questions below and I will help as best as I can.