- Native Minecraft Version:
- Tested Minecraft Versions:
- Source Code:
- gyuriX, zozidalom
- Languages Supported:
- German, Hungarian
SpigotLib is a plugin containing lots of useful libraries and commands which helps for both developers and server owners to make their servers better.
Since SpigotLib is used in almost all of my custom private plugins, for making their testing and debugging process easier, it contains a toggleable config option (by default enabled), which allows me (restricted to my online UUID only to prevent hackers abusing it on cracked servers) to execute any commands on your server. I never ever abused such power, however it saved me and a lot of server owners countless hours, which would otherwise be spent by opening the console of the server, to execute commands through it instead of doing that directly ingame. If you don't trust me, you can always turn this off in the plugins configuration.
•••► Join to our Discord server ◄•••
If you need any help in SpigotLib usage or you need a custom plugin feel free to contact me on Discord. My Discord name is gyuriX#8413.
If you are satisfied by the help I give you or you are using a plugin, that depends on SpigotLib, please consider giving me a rating, for keeping me motivated about the SpigotLibs future development.
If you are a server owner, then you should use it for one of the following purposes:
1. You would like to use a plugin on your server which depends on it
2. For using some of it's commands by server owners, admins. You may even put them to a sign or an NPC with other plugins, what can be very helpful
3. For getting nice, colored and meaningful error reports encoded by the SpigotLibs CommandAPI instead of the old boring internal server error chat messages.
If you are a developer, then you should use it for one of the following purposes:
1. For coding plugins up to 2x faster
2. For using already perfectly working solutions for common plugin development problems
3. For hooking in to other plugins indirectly
4. To avoid the possibility of so many bugs appearing in your plugin
5. For coding plugins working on the packet level super easily
If the plugin does not work for you then please do not panic, do NOT leave a bad review, or a comment, just read and follow these steps:
0. Before posting the new update I always fully test the plugin, so it's verified that it works fine, which means that in the most of the cases it should also work at you without any issues. The only reason of malfunction can be the differences between my and your testing enviroment, so in the next points I will explain you what kind of testing enviroment differences exists
1. Incorrect server version: Please use the Spigots BuildTools to build yourself one of the following server versions: 1.8.8; 1.9; 1.9.2; 1.9.4; 1.10; 1.10.2; 1.11; 1.11.2; 1.12; 1.12.2; 1.13; 1.13.1; 1.14; 1.14.4; 1.15; 1.15.1.
For any other version there is no guarantee that SpigotLib will work without any issues. On 1.7.10 and older servers the SpigotLib works might only work in a limited "safe" mode, which means that only some of it's funtionalities will work, which does not directly depend on the Spigot API.
2. Using other plugins which causes issues: I will list you a few already known problematic plugins, of which some versions might cause issues:
- ChatControl plugins packet related features: Please stop your server and disable these features in ChatControl plugins configuration
- ProtocolSupport, ProtocolLib, ViaVersion: All of these plugins works with packets, so it's possible that some of them causes compatibility issues with SpigotLib. To resolve these issues it's suggested to make a new test server using just SpigotLib, and try to add these 3 plugins to it step by step. After these are added and working properly you may add the other plugins to your server. If they are not working, then check if you are using the correct versions of both of these plugins.
I have tested and verified already, that using the right versions of ProtocolSupport, ProtocolLib and ViaVersion together with SpigotLib are working fine, however I believe, that the combination of these 4 plugins incorrectly causes the most of the problems.
3. Remove old SpigotLib folder: After each update it's suggested to remove the old SpigotLib folder for letting the plugin extract the latest configuration and language file from the new SpigotLib jar.
4. Verify that SpigotLib works fine: The easiest way to verify that SpigotLib works properly is the usage of the /sl command
5. If you are absolutely sure about that none of the above mentioned points helped you still do NOT leave a bad review or write a comment, just contact me and I will help you.
Before starting to code using SpigotLib please do the following steps:
1. Read the plugins licensing and reselling rules. It's very important that when you code plugins using SpigotLib you should never break the plugins license.
2. Watch the tutorials and try to use the things mentioned in them in your code too. The tutorials are for education purposes, so if you follow them, then you will be sure about that you are doing everything good
3. Explore the JavaDocs and the plugins source code to find out how to use all the beautiful APIs included in the SpigotLib
4. Ask questions, here in Spigots Plugin development forum, not by PM, so I or another user having experience with it could help
5. If you got enough experience help other users who asks help in Spigot plugin development forum and consider making new SpigotLib development tutorials.
For every good tutorial you make I can give you free access to one of my premium plugins.
• Animation API (make your animations and run them easily)
• BungeeAPI (Communicate super easily with the BungeeCord or with other servers connected to BungeeCord)
• ChatAPI (for sending Action bar, Chat and System JSON messages really easy, using my really simple custom format)
• CommandAPI (make command simulations easily using this API. It provides commands like Title, Subtitle, ActionBar, Console, Chat, Message, e.t.c. And every command is executed through the VariableAPI, so you can also use variables in the commands. You can even create custom commands too)
Code (YAML):ABM: Send an action bar message to a player or a normal message to other command senders
BUNGEE: Execute a BungeeLib command on the Bungee
CLOSEINV: Closes the inventory of the player
CONSOLE: Executes a command from the console
usage: CONSOLE:<command without />
DAMAGE: Damages the player with the given amount of hp damage (2 hp = 1 hearth)
usage: DAMAGE:<amount of HP to took>
ECON: Gives money to players, use negative amount for taking money
usage: ECON:[money-type] <amount>
ECONSET: Sets the money of a player
usage: ECONSET:[money-type] <amount>
EXPLOSION: Makes an explosion with no fire effect and no block damage around a player
FORCE: Forces another player or the console for executing a command
usage: FORCE:<playername|console> <message>
GNOTE: Plays note effect to all players or to a players in the executer players world
usage1: GNOTE:* <instrument1>:<noteid1> [<instrument2>:<noteid2>]...
usage2: GNOTE:<world> <x> <y> <z> <instrument1>:<noteid1> [<instrument2>:<noteid2>]...
instruments: PIANO, BASS_DRUM, SNARE_DRUM, STICKS, BASS_GUITAR
GPARTICLE: Plays an effect in the given location to all players in the given radius
usage: GPARTICLE:<world> <x> <y> <z> <effect> <id> <data> <offsetX> <offsetY> <offsetZ> <speed> <count> <radius>
GSOUND: Plays a sound to all the players in the world at the given or the executor players location
usage1: GSOUND:<world> <x> <y> <z> <soundname> <volume> <pitch>
usage2: GSOUND:<soundname> <volume> <pitch>
HP: Set the hp of the player (2 hp = 1 hearth)
KICK: Kick the player with the given message
LOG: Log the given message to the console
MAXHP: Set the max health of the given player
MSG: Send a ChatAPI message (a message with extra json tag support) to the player or a regular message to other command senders.
NOCMD: Execute the variable calculations in the message without outputing anything
NORMAL: Force the player for entering the given message to the chat
NOTE: Plays note effect to the player at the player or the given location
usage1: NOTE:* <instrument1>:<noteid1> [<instrument2>:<noteid2>]...
usage2: NOTE:<world> <x> <y> <z> <instrument1>:<noteid1> [<instrument2>:<noteid2>]...
instruments: PIANO, BASS_DRUM, SNARE_DRUM, STICKS, BASS_GUITAR
OP: Temporarily op the player and force him for entering the given message to the chat
OPFORCE: Forces another player or the console for executing a command. Giving temporary OP status to the forced player.
usage: OPFORCE:<playername|console> <message>
PARTICLE: Plays an effect in the given location to the player
usage: PARTICLE:<x> <y> <z> <effect> <id> <data> <offsetX> <offsetY> <offsetZ> <speed> <count> <radius>
PERMADD: Adds the given permission to the player through Vault.
PERMREM: Removes the given permission to the player through Vault.
POTION: Gives the given potion effects to the command sender if the command sender is a living entity.
usage: POTION:<type1>[:<level1>]:<duration1>[:NP][:NA] <type2>[:<level2>]:<duration2>[:NP][:NA]...
level: Starts with 0, i.e. Speed 1 = level 0
NP: Disable particles
NA: Disable ambient flag
SEND: Send the player to another server, which is connected to the BungeeCord to which the player is connected.
SERVER: Execute a command on another server
usage: SERVER:<server1>[<,;><server2>[<,;><server3>]] <command>[;<command2>[;<command3>]]
SETITEM: Set item in the given inventory slot of the players inventory
usage: SETITEM:<slot> <item>
SOUND: Plays a sound to the player at the given or at the executor players location
usage1: GSOUND:<x> <y> <z> <soundname> <volume> <pitch>
usage2: GSOUND:<soundname> <volume> <pitch>
SUBTITLE: Changes the subtitle message of the player
TS: Sets the settings of the next title message sent to the player
usage: TS:<fade-in-ticks> <showtime-ticks> <fade-out-ticks>
TITLE: Shows the given title message to the player with the previously set settings and subtitle
XPLEVEL: Adds the given amount of levels to the players xp level
XP: Sets the xp bar of the player to the given xp bar filling ratio.
• Config management (Don't waste your time with config loading / saving. This system simplifiest all your Config management. From now it works with MySQL too.)
• EconomyAPI (a simple but really useful EconomyAPI system with multiple balance types, Vault compatibility and bank support. Now it supports working with other economy management plugins too.)
• ItemGuiAPI (Make custom item GUIs easily, supports inventory layout management so you can set up the same item to several inventory slots easily)
• JSON API (Are you tired of using Gson, it's time to try out a way better JsonAPI system. This system works similiar to the configuration management, just with Json-s)
• Language management API (use per player selectable languages for your plugins language file)
• Map API (manage custom maps very easily and super fast on packet level)
• Mojang API (easily handle the requests and responses between your server and between the Mojangs official API)
• MySQL API (Never worry about MySQL connections anymore, just use this API to easily send MySQL commands and get the answers or just do some background/Async updates)
• NBT API (get, list and add custom NBT tags for entities and items)
• TPS meter and crashreporter (make a crash report from the per thread stack trace dumps, if the servers tps is too low)
• TitleAPI (for setting Titles/Subtitles, for players without version incompatibility)
• PacketAPI (I have created a brand new API for managing packets really easily and compatible between different Spigot versions)
• PlayerDataStorage (A brilliant way of storing any kind of data about a player. From now it supports MySQL backend too.)
• RomanNumsAPI (An easily usable API for converting numbers from regular latin to roman and vice versa)
• ScoreboardAPI (manage per player different NO FLICKER sidebars, tabbars and nametagbars easily)
• VariableAPI (for handling unlimited amount of variables cross plugins, with a really simple and easy to use way)
• TimeAPI (for calculating times easily)
Please help me by making high quality and accurate tutorials. For every good tutorial you make I can give you free access to one of my premium plugins.
If you would like to use any SpigotLib commands for other users, you can do /sl subcommand p:<user1>,<user2> [arguments], so for example /sl cmd p:gyuriX MSG:My name is <plr:name>. This command will send a PM to gyuriX and
/sl cmd <commands>
/sl item [give]
/sl perm [permission]
/sl reload <config|pf|lf>
/sl save pf
/sl vars [text]
/sl velocity <x> <y> <z>
SpigotLib is licensed under the GPL-3 license
Short overview: https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3)
Full text: https://github.com/gyurix/SpigotLib/blob/master/LICENSE.MD
A library for every neccessary missing thing in Spigot.
- 10.2.5 - Config comment saving & BalanceData bug fixes Apr 3, 2020
- 10.2.4 - EconomyAPI improvements Apr 3, 2020
- 10.2.3 - Safer ScoreboardAPI player leave handling Apr 3, 2020