Minecraft is a great game on its own, but chances are if you're here and you're a server admin then you're looking for more to offer your clients. As you may know by now, when it comes to the extras every player wants something unique. Some want new mechanics, others want better weapons. Some want to help their friends, others want to dominate them. The problem is most plugins often offer a blanket solution. While it may fulfill the needs of a few, the remaining may not want to participate. Sure you can mess with permissions to exclude some people, but why not just cut to the chase and give every player EXACTLY what they want?
For the server that wants its players to each have individual benefits and abilities,
S86 Powers is the plugin for you.
S86 Powers is a plugin that allows users to have powers assigned to them. The core plugin comes with internal powers, but is also capable of importing powers made by others (more info to come).
To get started, simply place the S86Powers.jar file where you put your other plugins.
Note that ProtocolLib 4.5.0+ is required for S86 Powers to function. On first run, several configuration files are created with default values. It is recommended that you not edit these files directly unless the server is off, as entered values may be overwritten the next time the server shuts down or restarts.
Next, you'll want to review permissions and configuration options. Operators by default get permission to everything, otherwise assigning the permission
s86powers.admin will accomplish the same thing. To view configuration options, use the command
/p config list [page#] (for example,
/p config list 2 shows you page 2). For more information on what an option does, use the command
/p config info [config], and to change config options use the command
/p config set [config] [value].
Finally, for players to use powers they must first have them assigned, and before they can do that they'll want to know what's available. Use the command
/p power list to get a list of loaded powers, then
/p power [power] for more info on a specific power. If you don't like how a power is setup, you can check and set its configurable options with
/p power [power] option. Note that changes to power options affect all users, and may require a server reload/restart for changes to take effect.
Players can be assigned powers in several ways, the two most prominent being admin-assigned or self-assigned. Admin-assigned requires a user with the
s86powers.manage.user permission to use the command
/p user [player] add [power]. Note that the above permission allows the user to set anyone's powers and shouldn't be given to most players. Self-assigned requires a user to have the
s86powers.manage.self permission, and use the command
/p add [power]. This method is safer, as the user can only modify their own powers.
Most powers come in three categories: offensive, defensive, and passive. Offensive and defensive powers operate similarly: the player does something with a specified item, and it causes an effect. Offensive powers usually do something that causes damage to others, while defensive powers usually do something to protect the player in some way. Passive powers tend to work automatically and provide some kind of bonus that neither hurts others nor protects the player (though there are exceptions).
An example of an offensive power is Laser. In its default configuration, left-clicking while holding a dispenser will fire a laser in the direction that the player is looking. This laser steadily does damage to anything it hits but uses redstone dust as fuel. The laser turns off when either the player left-clicks while holding a dispenser again, or when the player runs out of redstone dust. After using Laser, the player has to wait for a 10 second cooldown before using it again.
An example of a defensive power is Celestial Pillars. Left-clicking the ground while holding a sea lantern will create pillars of light around you. While these pillars stand, nothing can pass between the pillars except for the player. Pillars last for 45 seconds, however the player can't create new ones until the old ones expire.
An example of a passive power is Lumberjack. With Lumberjack assigned, breaking one log block of a tree with an axe will cause all adjacent tree blocks to break as well, essentially harvesting the entire tree at once. By default, a threshold is put in place so players can't level entire jungles.
Some powers have additional effects when they're used a lot. For example, after creating 60 pillars with the Celestial Pillars power, you gain the ability to create a second set of pillars by left-clicking the same block with a sea lantern again.
By default, players can only have one of each of the above power types assigned to them, though this limit can be removed with config options.
The last power type is utility. Utility powers can be used by anyone, including players with no assigned powers. Neutralizer Grenade allows players to throw lapis lazuli like a grenade, temporarily disabling the powers of any players nearby when it hits. Neutralizer Beacon allows players to create a block that constantly disables the powers of players who go near it.
S86 Powers commands can be executed with
/powers,
/power, or
/p if the aliases are available. Words in <angled brackets> are required, while words in [square brackets] are optional. Most commands can be tab-completed.
/powers help [#] Shows all commands help. Note that this command filters help info based on the user's permissions.
Permission:
s86powers.help
All commands require permission
s86powers.manage.config
/powers config help [#] Shows help for config commands. Note that this command filters help info based on the user's permissions.
Permission:
s86powers.manage.config.help
/powers config info <option> Shows information about the specified config option, such as what it does and its current value.
Permission:
s86powers.manage.config.info
/powers config list [#] Shows a list of configuration options, along with their current values.
Permission:
s86powers.manage.config.list
/powers config reload Reloads all config options from disk, discarding unsaved changes.
Permission:
s86powers.manage.config.reload
/powers config save Saves all config options to disk.
Permission:
s86powers.manage.config.save
All commands require permission
s86powers.manage.group
/powers group help [#] Shows help for group commands. Note that this command filters help info based on the user's permissions.
Permission:
s86powers.manage.group.help
/powers group <group> add <power> Adds the specified power to the specified group.
Permission:
s86powers.manage.group.add
/powers group <group> assign <user> Adds the specified user to the specified group.
Permission:
s86powers.manage.group.assign
/powers group <group> create Creates a new group with the name specified.
Permission:
s86powers.manage.group.create
/powers group <group> delete Deletes the specified group.
Permission:
s86powers.manage.group.delete
/powers group <group> info Shows detailed info on the specified group.
Permission:
s86powers.manage.group.info
/powers group <group> kick <user> Removes the specified user from the specified group.
Permission:
s86powers.manage.group.kick
/powers group list [#] Shows a list of all created groups.
Permission:
s86powers.manage.group.list
/powers group <group> remove <power> Removes the specified power from the specified group.
Permission:
s86powers.manage.group.remove
All commands require permission
s86powers.manage.player
/powers player help [#] Shows help for player commands. Note that this command filters help info based on the user's permissions.
Permission:
s86powers.manage.player.help
/powers player <player> add <power> Adds the specified power to the specified player.
Permission:
s86powers.manage.player.add
/powers player <player> info Gets detailed info on the specified player.
Permission:
s86powers.manage.player.info
/powers player list [#] Shows a list of players.
Permission:
s86powers.manage.player.info
/powers player <player> remove <power> Removes the specified power from the specified player.
Permission:
s86powers.manage.player.remove
/powers player <player> stats [power] Shows the player's stats for all powers or the specified power.
Permission:
s86powers.manage.player.stats
/powers player <player> supply [power] Supplies player with items for all powers or the specified power.
Permission:
s86powers.manage.player.supply
/powers player <player> toggle [power] Toggles all power use or the specified power for the player.
Permission:
s86powers.manage.player.toggle
All commands require permission
s86powers.manage.power
/powers power help [#] Shows help for power commands. Note that this command filters help info based on the user's permissions.
Permission:
s86powers.manage.power.help
/powers power <power> block Blocks the specified power, preventing it from loading the next time the server restarts.
Permission:
s86powers.manage.power.block
/powers power <power> disable Forces the power to disable, abruptly ending its effects for all players using it.
Permission:
s86powers.manage.power.disable
/powers power <power> enable Re-enables a disabled power.
Permission:
s86powers.manage.power.enable
/powers power <power> info Shows detailed info about the specified power.
Permission:
s86powers.manage.power.info
/powers power <power> kill Attempts to unload the power from memory. This is useful if the power is causing issues with the server.
Permission:
s86powers.manage.power.kill
/powers power list [#|type] Shows a list of all loaded powers, optionally filtered by type (defense, offense, passive, or utility).
Permission:
s86powers.manage.power.list
/powers power <power> lock Locks the specified power, preventing it from being disabled or enabled.
Permission:
s86powers.manage.power.lock
/powers power <power> option [option] [value] Shows the options for a given power, with their current values. Specifying the option gives more information on it, and specifying a value changes the value of the option.
Permission:
s86powers.manage.power.option
/powers power <power> reload Reloads the power from disk. Note that changed options are discarded if they haven't been saved.
Permission:
s86powers.manage.power.reload
/powers power <power> save Saves the specified power's options to disk. Reloading the power may be required for the changes to take effect.
Permission:
s86powers.manage.power.save
/powers power <power> supply [#] [item|null] [qty] Shows the supplies of a given power. Can also be used to change supplies.
Permission:
s86powers.manage.power.supply
/powers power <power> unlock Unlocks the specified power, allowing it to be disabled or enabled again.
Permission:
s86powers.manage.power.unlock
/powers power <power> unblock Unblocks the specified power, allowing it to load the next time the server restarts.
Permission:
s86powers.manage.power.unblock
All commands require permission
s86powers.manage.self
/powers add <power> Adds the specified power to the command user.
Permission:
s86powers.manage.self.add
/powers info Shows info on the command user.
Permission:
s86powers.manage.self.info
/powers remove <power> Removes the specified power from the command user.
Permission:
s86powers.manage.self.remove
/powers stats [power] Shows the command user's stats for all powers or the specified power.
Permission:
s86powers.manage.self.stats
/powers supply [power] Supplies the command user for all powers or the specified one.
Permission:
s86powers.manage.self.supply
/powers toggle [power] Toggles all power use or the specified power for the command user.
Permission:
s86powers.manage.self.toggle
s86powers.enable - Allows use of powers for the player/rank/world. Enabled for everyone by default.
s86powers.assign.<power> - Allows player to assign power. Enabled for all powers by default.
s86powers.power.<power> - Allows player to use power whether it's been assigned or not. Disabled for all powers by default.
s86powers.group.<group> - Allows user to use powers assigned to the group. Disabled for all groups by default.
s86powers.admin - Gives the user complete control of the plugin. Enabled for operators by default.
I originally created S86 Powers for a server I played on, before uploading it for public use on
Bukkit. A common complaint was performance, as I was still new to Java programming and often used inefficient methods to make certain things work. I vowed to overhaul the plugin in version 5.0, however life happened and I wound up abandoning the project for some years. Various fans of the plugin contacted me over the years, which encouraged me to eventually pick back up on it.
Several changes have been made to make this version much more efficient (or at least I hope). It's still in an early phase, however I've uploaded what I have so far for people to test out.
Need support? Have an idea for a power? Join my
Discord server!