SkillAPI Bukkit Plugin 1.6.2
If you’ve seen my EnchantmentAPI, this plugin is similar in the fact that it allows you to create custom effects. The major difference though is that this has more features and instead of going through enchantments, it does it in a class system with skill trees! A skill pack will be coming out in the near future for those of you who do not want to code your own skills.
Here are the main features:
Dynamic Skills and Classes
New in version 2.0 are dynamic skills and classes. With these, you can create skills and classes by just defining them in the configuration! Of course, the possibilities are limited as it only contains whatever mechanics I have made for it so far, but it is a great system for anyone who wants custom skills and cannot code their own!
These can also be used in conjunction with coded skills to lighten the load on what needs to be coded.
For details on how to use this feature, view the tutorials section for the dynamic skill and class tutorials.
Visual Skill Trees
Skill trees are dynamically generated according to the skills a class has and what they require. Skills can require other skills before upgrading them and the skill trees arrange them accordingly. The skill tree provides details on all of the skills attributes, along with the required level, points, and skills (if any) with a brief description at the bottom. Users just need to left click on any of the skill icons to upgrade it when they have met the requirements!
Classes are able to profess from one to the next at configurable levels. You can choose to reset back to level one upon professing or continue on with your level and skills. Each profession has its own set of skills for players to enjoy.
Player Levels and Skill Points
To be able to unlock better skills, it requires skill points. These skill points are obtained by leveling up. You level up by fighting monsters. The experience yield from monsters is also configurable.
Skills can be upgraded multiple times (unless they have a max level of 1), improving them in various ways whether it be more damage, less cooldown, less mana, longer effect, or any other effects the skill has. The skill tree visualizes these upgrades when you are viewing its details so you know what you are investing in!
Mana and Cooldowns
To prevent players from just spamming abilities and having the system become overpowered, both a mana and cooldown system were implemented. Mana is a recharging stat that is needed to cast skills. The amount of mana required to cast a given skill and how fast it is regenerated is all configurable. With the mana, there are also cooldowns that require at least a minimum amount of time between casting skills (unless its a passive ability of course)
There are passive, target, and skill shot abilities. Each one has its own requirements for use. Passive abilities are always active, target abilities require you to cast the ability while pointing directly at your target, and skill shots can be cast at any time.
In regions of PvP protection, skills will not affect other players (unless the person making the skills codes around my safeguards). This prevents exploiting the abilities in protected regions!
Every attribute of each skill is automatically configurable along with their display names, descriptions, and icons. Each skill receives its own config file that can be edited at any time and will apply upon reload. Classes also receive their own configuration file and their prefixes (if you are using MCCore, my other plugin), profession level, skills, and child class are all configurable as well (automatically!).
Skills can be bound to held items for quick and easy use in even the most active battles!
There are built-in statuses for easy-to-use and shared effects for skills. Statuses include:
- Stun – unable to move, cast spells, or attack
- Silence – unable to cast spells
- Root – unable to move
- Disarm – unable to attack
- Absorb – turns damage taken into health gained
- Curse – turns healing received into damage taken
- Invincible – negates all damage taken
Since this is an API, new skills and classes can be added or removed at any time. You can mesh together several skill plugins and create an expansive and unique experience on your server!
New with v1.0, there are now equipment requirements that can be added to items via lore. There are two kinds of requirements that are used right now.
- Level Req: <level> – requires the player to be at least the provided level in order to use the item
- Class Req: <class> – requires the player to be the class or a profession of the class in order to use the item
You can use one, both, or neither of these on every piece of equipment. This is a per-item specific thing so you can create all sorts of weapons 🙂
Note: There is a task to check the equipment that only does a certain number of players per tick (default 1). If you are noticing delays in the removal of equipment, try increasing the amount (maximum delay = (playersOnline / playersPerCheck)). The players per check setting is in the config.yml.
- /class bind <skill> – binds a skill to your held item
- /class cast <skill> – casts the skill if able to
- /class info [player] – displays class info on the level or yourself if no arguments
- /class level <amount> [player] – levels up the player (or yourself if not provided) the amount of times
- /class options – displays the available professions for you
- /class profess <class> – professes as the class if able to
- /class skills – displays your skill tree
- /class unbind – unbinds your held item from any skills
- skillapi.basic – access to using the skill system
- skillapi.level – giving levels to yourself or other players
- skillapi.reload – reloading the plugin data
- skillapi.class – access to all classes (default true)
- skillapi.class.<className> – access to a specific class
- Add admin commands for managing skills/classes
- Add a reload command for individual skills/classes
- Add item restrictions on a per-class basis
- Add admin commands for creating/editing dynamic skills/classes
- Create an external tool for creating dynamic skills/classes
- Create a skill pack for those who don’t want to code their own
v2.1 – 10/24/13
- Added Mana effect
- Added Mana Damage effect
- Fixed Damage Bonus effects and Damage Percent mechanics from not being detected
- Fixed an incorrect import causing problems when not using MCCore
Download SkillAPI Bukkit Plugin