• Hello Guest! Did you know that ProjectKorra has an official Discord server? A lot of discussion about the official server, development process, and community discussion happens over there. Feel free to join now by clicking the link below.

    Join the Discord Server
ProjectKorra (Core)

ProjectKorra (Core) 1.9.0

The Blue Fire Update
The long awaited update is finally here! Thank you to everyone who contributed to this update. There are a lot of new cool features for players & server owners to enjoy! This update is for Spigot versions 1.16.1 and above!

  • Adds Blue Fire SubElement. Given via the add command and the `bending.fire.bluefire` permission.
    • Changes the visual elements of fire abilities to use their soul fire equivalents. Also, it adds related damage, cooldown, and range modifiers for configuration if server owners want to buff ability attributes. Addon developers can not make blue fire exclusive moves too if they want!
  • Adds Sticks, Sponges, and Chorus Fruit to cookable HeatControl items.
  • Adds Smoker, BlastFurnace, and extinguished Campfires to blocks which FireBlast can light.
  • Adds new TempBlock constructor which takes in a long revertTime parameter
  • Adds new blocks to block lists in configuration
    • Adds new nether plants to plantBlocks list
    • Adds new earth blocks to earthBlocks list
  • Adds new methods to GeneralMethods involving armor Material checks.
  • Adds Surge interactions with Lava
    • Surge Wave and Surge Wall will both cause Lava to turn into TempBlock Cobblestone / Obsidian
    • Enabled via the new Abilities.Water.Surge.Wave.SolidifyLava.Enabled and Abilities.Water.Surge.Wall.SolidifyLava.Enabled config options. They both default to true
    • Duration of the created TempBlocks is set via the new Abilities.Water.Surge.Wave.SolidifyLava.Duration and Abilities.Water.Surge.Wall.SolidifyLava.Duration config options. They both default to 36000
  • Added boundaries to Levelled block data in GeneralMethods#getWaterData() and GeneralMethods#getLavaData() to avoid future bugs
  • Fixes AvatarState buffs overriding day related buffs for firebending.
  • Fixes Blaze not going up hills, going through walls (mostly), jumping gaps.
  • Fixes Furnaces and related blocks not smelting after being activated by FireBlast
  • Patches AirBlast same origin & destination erroring.
  • Patches PhaseChange duplication glitch
  • Patches EarthGrab duplication glitch
  • Fixes invalid preset name throwing NPE
  • Fixes ChatPrefix not correctly displaying Avatar for those w/ multiple elements.
  • Fixes the /pk debug command causing ClassNotFoundException and NoClassDefFoundError due to missing hook dependencies in the compiled jar.
  • Fixes TempArmor duping glitches
  • Fixes DensityShift turning non-full blocks into Sand causing the player to get stuck in the ground. Now it will still prevent fall damage on non-full earthbendable blocks but will not turn them to Sand.
  • Fixes EarthDome and potentially other combos from not respecting their Enabled config option
  • Fixes players with usernames the same as ability names getting incorrect cooldowns applied.
  • Fixes the server loading the legacy Material API when a player used TremorSense
  • Fixes AirBlast, FireBlast, and AirSwipe going through walls
  • Fixes FireBurst not doing damage.
  • Fixes GeneralMethods#dropItems not checking for invalid drops.
  • Removes smoke particles from Fire bending to increase visibility and better emulate the show.
Misc. Changes
  • Changes API versioning to 1.16.1
  • Fire from Firebending no longer reverts all at once.
  • Changes Combustion animation to be more beam-like rather than a rehash of FireBlast.
  • Changes Add, Remove, Display command to properly display space for Blue Fire.
  • Changes ElementalAbility#isFire() to check for SOUL_FIRE_FLAME.
  • Changes FireAbility#isIgnitable() to check whether fire can be placed at that location rather than solely based on flammability.
  • Changes firebending abilities to use FireAbility#playFirebendingParticles() & FireAbility#createTempFire() where applicable.
  • Changes FireAbility#playFirebendingParticles() to play blue fire particles when player has the BlueFire subelement.
  • Changes Water abilities that require sources to deactivate if their source is destroyed after selection occurs but before the ability starts
  • Changes AirSuction origin selection to remove if the player gets too far away
  • Changes AirSwipe streams to be independent of one another (i.e. one hitting a wall won't cause them all to stop)
  • Reduces the default collision radius of AirSwipe and prevents entities from getting hit through corners
  • Reduce collision radii for most abilities.
For Spigot 1.14.4 to 1.15.2
  • General Gameplay
    • Additions
      • Added default Suffocate cooldown: 6.5 seconds
      • Added kinetic damage tracker to AirSweep
      • Added self and others push strength options for AirSuction
      • Added config option for multiple blocks to be changed per EarthTunnel run, allowing for much faster earth tunnels
      • Added config to ignore ores completely for EarthTunnel (good for mining)
      • Added AllowSnow config option for IceBlast
      • Added AvatarStateCooldown config options for IceBlast and IceBullet
      • Added config option for ice trapping abilities to not place blocks in players head or feet
    • Fixes
      • Fixed preset command not allowing page numbers higher than 1
      • Fixed Catapult and MetalClips not respecting /b invincible
      • Fixed Charged FireBlast radius and cooldown
      • Fixed Suffocate being usable through walls
      • Fixed FireBlast ignoring particle radius options
      • Fixed FireBurst fragmenting (not looking like a single burst)
      • Fixed AirSweep knockback to be more consistent (lessened friction)
      • Fixed AirBlast knockback using wrong push options
      • Fixed EarthSmash using nonexistent AvatarState options
      • Fixed error when switching worlds with PhaseChange active
      • Fixed server crash when hitting falling blocks with high-velocity abilities
      • Fixed server crash when using EarthGrab over the void
      • Fixed EarthTunnel not using configurable revert time
      • Fixed EarthPillars persisting when no entities were around
    • Changes
      • Improved pathing for EarthBlast; works more consistently and can be used from ceilings
      • Improved aiming for EarthBlast and IceBlast
      • Changed AirSwipe and AirSweep to originate from the player’s main hand
      • Changed AirBlast knockback calculations; made the push options affect knockback more directly
      • Changed EarthTunnel to use tempblocks properly
      • Moved core combo instructions to config
    • Removals
      • Removed being able to use Lightning while using FireJet
      • Removed jukeboxes being tempblocks
      • Removed bending.command.import permission from plugin.yml

  • API
    • Additions
      • Added GeneralMethods#getMainHandLocation(Player)
      • Added GeneralMethods#getClosestEntity(Location, double)
      • Added GeneralMethods#getClosestLivingEntity(Location, double)
      • Added "large" abilities collision with each other
      • Added specific timings for hot spots in the code that should help server owners diagnose lag from PK
        • player move event
        • physics event
        • bending manager
      • Created local folder repo and update pom for local jar files, this is necessary to use the maven shade plugin.
      • Added check for concrete powder in move earth
      • Added PlaceholderAPI support (hopefully more to come)
        • %projectkorra_slot<1-9>% ability on slot <1-9>
        • %projectkorra_element% element of the player
        • %projectkorra_elementcolor% color of the player’s element
        • %projectkorra_elements% elements the player has
      • Added "bending" WorldGuard flag.
        • Used for allowing or denying bending in worldguard regions. Will fall back to the old method of the build flag if the custom flag fails to register or isn't set
    • Fixes
      • Fixed calls to CoreAbility#isEnabled() causing NullPointerExceptions when a CoreAbility is not enabled
    • Changes
      • Changed CoreAbility#getAbility(..) Javadocs to state when it returns null
      • Formatted codebase
      • Changed GeneralMethods#getEntitiesAroundPoint() use spigot method for entities around point, should be more optimized
      • Optimizations to water and air spout to not continually set flying
      • Optimized revertchecker to not use block.getChunk; this will load the chunk on the server and instead use hashmap of coords
      • Optimized revertchecker to use paperlib to allow servers running paperspigot to load the chunk for a revert block async
      • Optimized tempblock revert to load chunk async before updating stateOptimize move event to ignore head movements without directional movement
      • Optimized physics event to check for air prior to checking for tempblocks
      • Optimized tempblock set/revert to not apply physics for blocks that don't emit light
      • Optimize isWater to check for actual water blocks first
      • Optimize PhaseChange list check, hot spot due to being called in physics event
    • Removals
      • Removed BindChangeEvent; never called or used
      • Removed HorizontalVelocityTracker that has lasted over 30 seconds, also don't create a tracker for non-living entities
General Notes (IMPORTANT!)
  • Due to the Spigot 1.13 update, internal names of block and item types have changed. Consequently, server owners should regenerate their configuration files to avoid errors. The main issue is the earth bendable blocks list in the config, several of the materials on the list had name changes and one is now a whole other type itself.
  • Failure to change config values (or delete the file so they can generate new defaults) will cause noticeable gameplay problems. It is the owner’s responsibility (or whoever is responsible) to take the necessary actions to avoid such problems.
  • If any errors present themselves when switching from PK on 1.12 to PK on 1.13, the first course of action needs to be to reset the config.
1.13 specific development changes

  • Changed the ParticleEffect API to make use Spigot’s Particle API. ParticleEffect values that had the same Particle value had any duplicates deprecated for future removal, leaving names that matched their Particle values. If you are an addon developer and use particles it will need to be updated.
  • A bug was fixed with database cooldowns, server owners will need to delete the pk_cooldowns table to properly apply this fix
  • Many Material types changed, updated references and config defaults to be accurate. Changed all uses of MaterialData to BlockData (which replaces the former in Spigot)
  • Added a new method, ElementalAbility#isWater(BlockData), checks for Waterlogged blocks primarily. Seagrass and Kelp block types are also added because they inherently have water and cannot exist without it, and also are not Waterlogged
  • Added a boolean parameter to GeneralMethods#isAdjacentToThreeOrMoreSources(Block), passing in true will check for lava source blocks, passing in false will check for water source blocks.
  • The method GeneralMethods#isAdjacentToThreeOrMoreSources(Block) still exists, and checks for water.
  • Maven setup was changed to properly use repositories with applicable dependencies. It is also possible to specify the jar output location with -Ddir=<directory>
  • With the addition of two new types of air blocks, a new methods for checking if a block is any air type was added, ElementalAbility#isAir(Block)
  • If a move throws an error while progressing, the user of the move will be notified and the full object for the move and player will be printed in console for easier debugging
Gameplay Changes

  • Using ice created by the Torrent ability as the source for Torrent, Surge, and WaterWave will now cause all the ice created by the same Torrent instance as the selected block to also revert when used. This is a test of this feature which can later be applied to other large-scale abilities that create ice blocks.
  • MetalClips now allows the user to throw the controlled entity at any clip amount, and will no longer reset when switching targets
  • Added configurable sitting animation for AirScooter, false by default
  • Added configurable gliding animation for FireJet, false by default
  • Added configurable dynamic cooldown for AirShield, any unused duration is removed from the cooldown, false by default
  • Improved EarthBlast and IceSpike targeting, won’t run into itself
  • WorldGuard dependency was updated, version 7.x required. ProtectionStones support removed until 1.13 update for that plugin. Support for the Factions plugin made by MassiveCraft was dropped as it is unclear if they will be updating to 1.13 and beyond. Support for FactionsFramework was added as a replacement. Added region protection checks for the PlotSquared and RedProtect plugins
  • Added core combo instructions to config
  • Lavaflow will now interact better with raised earth and shockwave, no longer leaving messes
  • A large number of moves have been updated to properly check for protection or if bending invincibility is toggled
  • Avatar title in chat will now require Earth, Air, Fire, and Water added, or the permission bending.avatar given
Hello everyone, I am happy to announce the release of ProjectKorra version 1.8.7!

It needs to be noted that this version of ProjectKorra is NOT made for Minecraft version 1.13 and most likely will not work on it.

That being said, this build has been exactly one year in the making. A lot of work has gone in to make it as stable as possible so big shoutout to the entire team! Let's look at some of the exciting new additions and fixes:

* Added Statistics API
* Added cooldown database
* Added database cooldown to AvatarState
* Added code to try a reconnect if the database connection is lost
* Added a check to ensure an entity is an instance of LivingEntity before casting in PKListener
* Added FireManipulation and Combo permissions to plugin.yml
* Added an isBender method to BendingPlayer
* Added an accessor for the Player object stored in BendingPlayer
* Added OFFHAND_TRIGGER to ClickType
* Added ElementalAbility#getEarthbendableBlocks(), returns String list from config
* Added GeneralMethods#getBlockFaceFromValue(int xyz, double value)
* Added GeneralMethods#checkDiagonalWall(Location location, Vector direction), to determine if there is a diagonal wall
* Added required variable to ComboAbilityInfo, Set of CoreAbility a Player must have active to use corresponding ComboAbility
* Added PassiveAbility#isProgressable(), checks for if the ability uses its progress() method
* Added overriding capabilities to CollisionManager
* Added TempArmorStand utility class
* Added new EarthGrab
* Added new Earth combo, EarthPillars.
* Added new Flight MultiAbility
* Added a "Sticky" feature to TremorSense that keeps the move running on the last earth block you were standing on
* Added “/b stats” command to display player statistics
* Added TimeUtil to convert millisecond times into human readable increments
* Added Dynamic Sourcing config option for Earth and Water
* Added enable/disable option to FireManipulation
* Added configurable duration values to AirShield, AirSpout, and Tornado, WaterSpout, HealingWaters`, and OctopusForm
* Added IceBlast and IceSpike blast to collisions
* Added mechanics to AirSuction to close doors
* Added configurable cooldown to “/b choose” located at “Properties.ChooseCooldown
* Added IRON_TRAPDOOR to FerroControl functionality
* Added new config option that can prevent the Updater from connecting to the website when disabled in the config
* Added more options to AirSwipe in AvatarState config portion

* Fixed “Abilities.Chi.Smokescreen.Instructions” spelling error in ConfigManager.java
* Fixed “Abilities.Water.Passive.HydroSink.Description” spelling error in ConfigManager.java
* Fixed “Commands.PermaRemove.Description” spelling error in ConfigManager.java
* Fixed “Extras.Fire.DayMessage” spelling error in ConfigManager.java
* Fixed QuickStrike causing an endless chain of itself that never stops chiblocking and does no damage
* Fixed Paralyze going indefinitely when it has a cooldown of 0
* Fixed damaging chi abilities not working in WarriorStance
* Fixed WarriorStance NPE
* Fixed AcrobatStance NPE when a user attempts to log out while the move is active
* Fixed paralyzing abilities canceling the sneak event if the player was sneaking
* Fixed Passives not being removed when a player has their bending changed
* Fixed Passives being activated in Spectator mode
* Fixed DensityShift softening your landing while you are an Airbender
* Fixed the passives that weren't working. This includes FerroControl, FastSwim, AirAgility and ChiAgility
* Fixed MultiAbility instances not being removed when a player has their bending changed
* Fixed player binds not being filtered properly if they are using a MultiAbility
* Fixed FireWheel going over air
* Fixed AvatarState sound causing the ability to not work
* Fixed bottlebending for Surge, WaterManipulation, and OctopusForm
* Fixed Bloodbending ConcurrentModificationException when attempting to bend non-living entities
* Fixed PhaseChange not working on blocks placed over already melted blocks
* Fixed IceBlast going on cooldown after sneaking after selecting a block
* Fixed Surge making TempBlocks revert
* Fixed WaterArms grapple ability not working
* Fixed WaterArms making TempBlocks revert
* Fixed WaterArmsSpear checking if a block is placeable after placing the block
* Fixed aiming bugs with WaterArmsSpear
* Fixed LavaFlow causing drop duplications when cooled by another move
* Fixed EarthArmor making people invincible
* Fixed EarthTunnel so that it will work through tall grass and other transparent blocks
* Fixed EarthTunnel not checking if a block it was trying to remove was in a protected region
* Fixed EarthSmash values being incorrect
* Fixed being able to remove the EarthArmor armor items from their slots
* Fixed EarthTunnel not being able to be used on fallen blocks
* Fixed FireManipulation being able to go through blocks
* Fixed FireSpin and FireKick not expanding to full size when hitting an entity
* Fixed HeatControl solidify not working on Minecraft version 1.9
* Fixed Illumination dropping a torch if water is placed on the user's feet via bucket
* Fixed FireCombos not working with AvatarState
* Fixed FireWheel not going down inclines
* Fixed FireWheel insane wall climbing
* Fixed FireShield duration
* Fixed FireWheel not always damaging due to an invalid entity selection range
* Fixed logic in GeneralMethods#displayColoredParticle() which caused random blips of other colors
* FIxed ClassCastException in PKListener.java caused by MetalClips
* Fixed typo in GeneralMethods which confused NETHER_WART_BLOCK with NETHER_STALK
* Fixed permission based limit on how many Presets players can create. "bending.command.preset.create.#"
* Fixed NPE in WhoCommand when performing offline lookups
* Fixed various bad Map#contains() checks throughout the plugin
* Fixed BendingPlayer#addCooldown() adding cooldowns even if their time is set to an invalid number.
* Fixed the PlayerCooldownChangeEvent being fired on an invalid case such as a cooldown of 0
* Fixed entity targeting methods in GeneralMethods registering dead players waiting to respawn as valid targets
* Fixed NPE caused by checking for Lunar Eclipse, Solar Eclipse, Full Moon or Sozins Comet when not in the Overworld
* Fixed AirBlast, AirSweep, FireBlast going through diagonal walls
* Fixed known fly glitches
* Fixed ability redirection breaking bottlebending for that player until server restart

* Changed instructions in “/bending help <ability>” to `ChatColor.WHITE`
* Changed “/bending help earth” message to match others
* Improved check for exhaustion in move event
* Changed CoreAbility#getDescription() to pull combos from the lang config as well
* Renamed Hydrosink.java to HydroSink.java
* Reduced combo cleanup delay to one minute
* Improved IceSpike blast animation
* Improved code in ProjectKorra.java
* Improved FireShield animation
* Changed passive classes to be more functional than previously
* Changed BendingPlayer#canBendPassive() and BendingPlayer#canUsePassive() to have CoreAbility param instead of Element
* Changed PassiveAbility#isInstantiable() to be a check if the ability must be activated by the player, not if it uses the constructor
* Improved CoreAbility#progressAll()
* Improved AirAgility and ChiAgility
* Changed death messages that say “experienced kinetic damage” to “experienced a fatal collision
* Changed AirShield to permit AirSwipe and AirSweep to pass through it
* Changed FireShield to permit FireBlastCharged to pass through it
* Changed AirBlast, AirSuction, Blaze, and Combustion so they do not collide with any other abilities
* Changed AirSwipe and AirSweep so they can respectively pass through other instances of themselves.
* Removed all active abilities for a given player when they quit the server
* Changed old EarthGrab to EarthDome combo
* Changed AirSwipe to cool lava temporarily instead of permanently
* Changed “/pk” to return the “/pk help” pages
* Changed InvincibleCommand to use `i` as an alias. “/pk i
* Changed Preset bind command to use branding
* Changed Preset list command to use pages
* Changed bending preview to persist while on an ability slot
* Changed moves that cool lava (AirBlast, AirBurst, AirSwipe, HeatControl) so that they revert LavaFlow blocks
* Changed LavaFlow click to only produce particles on blocks it has affected
* Updated the Updater URL
* Updated “/pk help <element>” to support Avatar as an argument
* Updated “/pk help <element>” to prompt users to enter “/pk display <element>” instead of “/pk h <elementcombos>
* Changed FireWheel default range in AvatarState config portion
* Changed AirStream default hold duration in AvatarState config portion
* Changed WaterArms to not go through TempBlocks
* Changed HealingWaters previous duration value to "PotionDuration" in order to accurately represent what the setting changed
* Increased the default number of creatable presets to 5
* Disabled FireManipulation by default

* Removed ImportCommand
* Removed AirSwipes capability to break blocks
* Removed metal ores (Iron, Gold, and Quartz) from the Earthbendable's list
* Removed AirPassive.java and WaterPassive.java, combos are in their own respective files.
* Removed redundant checks in PKListener
* Removed redundant Earthbendable checks in Extraction
* Removed redundant checks in BendingPlayer
* Removed unnecessary code from GeneralMethods#getTargetedEntity()
* Removed unnecessary SuppressWarnings for deprecation in various classes
* Removed unnecessary SpiritPlayer checks in BendingPlayer#canBind(CoreAbility ability)
  • Fixed Combos and possibly Passives appearing in /pk b <Ability> auto-tabbing.

  • Fixed Combos not loading properly on certain servers.

  • Fixed issue with PreciousStones by updating to the latest version to resolve API change issues.

  • Fixed RapidPunch damage.

  • Fixed incorrect summation of chiblocking chance.

  • Fixed possible issue in PKListener#onPlayerInteraction()

  • Fixed Earth.LavaSound.

  • Fixed Chi attempting to chiblock targets with any move.

  • Fixed hitting an entity with TempArmor not ignoring armor.

  • Fixed Immobilize config path.
  • Added "Contributing" section to the README to help guide active community members.

  • Added more detail to the PULL_REQUEST_TEMPLATE to allow for more uniform pull requests.

  • Added many new blocks to our ability block interaction.

  • Added check to combo collisions to discard dead entities.

  • Added functionality to allow chiblocking abilities to affect all entities.

  • Added exception handling to the configurable Sound options to prevent IllegalArgumentExcpetions.

  • Added sounds and ActionBar messages to being Bloodbent, Electrocuted, Immobilized, MetalClipped, and Paralyzed. (Abilities: Bloodbending, Lightning, Immobilize, MetalClips, and Paralyze)

  • Added sound and ActionBar message for being Chiblocked.

  • Added interval config option to RapidPunch. (time between each punch)
API Changes
  • Updated to Spigot 1.12.1.
    • Confirmed to be backward compatible with Spigot 1.12 and Spigot 1.11.2.
  • Renamed ElementalAbility#getTransparentMaterial() to ElementalAbility#getTransparentMaterials().

  • Converted most byte/int dependent Material logic to use Material instead.
    • ElementalAbility#getTransparentMaterialSet() now returns a HashSet<Material> instead of a HashSet<Byte>.

    • ElementalAbility#getTransparentMaterials() and GeneralMethods.NON_OPAQUE now return Material[] instead of Integer[].

    • GeneralMethods#getTargetedLocation() now takes a varargs Material[] instead of a varargs Integer[].
  • Removed ElementalAbility.TRANSPARENT_MATERIAL. It was outdated and became irrelevant after GeneralMethods.NON_OPAQUE was updated.

  • Removed Java 7 Travis-CI JDK check.

  • Updated pom.xml to build in Java 8.

  • Added new MovementHandler utility class to control entity movement. (currently only capable of stopping movement.
Note: Not tested with 1.12.1. Most likely won't work!


  • Fixed odd interactions between Bloodbending and AvatarState.
    • You can no longer be bloodbent while in AvatarState and going into the AvatarState while being bloodbent will break you free.
  • Fixed various errors in Bloodbending.

  • Fixed SubElements being saved incorrectly in the database.

  • Fixed a few cases where Surge would cause flooding.

  • Fixed various NoCheatPlus exemptions in our DamageHandler. (Thanks, RoboMWM)

  • Fixed ProjectKorra fire tick damage overriding other plugins fire tick damage.

  • Fixed FireSpin working underwater.

  • Fixed EarthArmor not properly obeying its cooldown.

  • Fixed Combo Abilities being displayed in /pk display <Element>.

  • Fixed Extraction cooldown being applied when the ability couldn't start.

  • Fixed EarthTunnel cooldown being applied when the ability couldn't start.

  • Fixed IceSpike field functionality not activating on PhaseChange blocks.

  • Fixed FireWheel hit location if used while looking down.

  • Fixed Lightning paralyze functionality.

  • Fixed DensityShift causing fall damage if used on other DensityShift blocks.

  • Fixed Flight cooldown being applied when the ability couldn't start.

  • Fixed Flight deactivating if used while on the ground.

  • Fixed RapidPunch cooldown being applied when the ability couldn't start.

  • Fixed WaterArms not returning water sources to bottles.

  • Fixed WaterArms not grabbing sources correctly.

  • Fixed CollisionManager attempting to detect collisions between abilities in different worlds. (Thanks, plushmonkey)

  • Fixed CollisionManager not resetting when a new manager is created.

  • Fixed JetBlaze and JetBlast not overriding FireJet duration.

  • Fixed PhaseChange not being able to melt snow blocks.

  • Fixed FastSwim being able to be used on a Catapult slot.

  • Fixed FireManipulation cooldown.

  • Fixed Collapse and RaiseEarthnot working in AvatarState.

  • Fixed Waterbending causing concrete powder to harden.

  • Fixed MetalClips magnetize not pulling iron ingots if players had them in their hand.

  • Fixed MetalClips not disabling passives such as FastSwim on its targets.

  • Fixed MetalClips armor absorbing damage.

  • Fixed MetalClips magnetize not pulling if the launching portion of the move is on cooldown.

  • Fixed MetalClips not dropping iron ingots once a held target is killed.

  • Fixed MetalClips duplicating iron ingots by repeatedly hitting and pulling entities.

  • Fixed MetalClips duplicating iron ingots by hitting blocks.

  • Fixed addon Passive abilities not registering.

  • Fixed /pk help <Element> displaying incorrect/old links.

  • Fixed /pk help <Element/Combo> being case sensitive.

  • Fixed /pk help not allowing players to auto tab all non-hidden abilities.

  • Fixed IllegalArgumentException being thrown if server owners put an incorrect ChatColor for the Chat.Branding.Color value in language.yml.

  • Fixed EarthArmor allowing players to use FastSwim while the armor is activated.

  • Fixed incorrect cancellation of BlockBreakEvent when players bending is toggled off.

  • Fixed multiple instances of the same CoreAbility being present in auto tabbing due to certain move functionalities being split up between files.

  • Fixed Passive abilities and Combo abilities showing up in /pk bind <Ability> auto tabbing.

  • Fixed WaterWave and WaterSpout cohesive movement.

  • Fixed DamageHandler applying DamageModifier.ARMOR where it is not applicable.

  • Fixed /pk check command URL.

  • Fixed Passive abilities breaking when choosing an element while bending is toggled.

  • Fixed WaterBubble removing blocks placed by players while the ability is active.

  • Fixed potential infinite loop in EarthGrab.

  • Fixed AirScooter not disabling when a player would sneak.
  • Added cooldown capability to AirShield, AirSpout, Tornado, FastSwim, WaterBubble, EarthTunnel, AcrobaticStance, and WarriorStance.

  • Added the clickable ProjectKorra branding message to the /pk help and /pk who commands.

  • Added radius config option to EarthGrab.

  • Added AvatarState configuration options for IceSpike, IceBlast, Torrent, OctopusForm, WallOfFire, WaterSpout, and all stock Combos.

  • Added aesthetic donation perk servers can give to their players in the /pk who <Player> command via the bending.donor permission. Requires Servers to define `server-name` in their server.properties file. Example: server-name=My Server

  • Added config option for the lightning bending sound and lava bending sound.

  • Added Pitch and Volume config options for all configurable sounds.

  • Added identifiers on Addon Abilities in /pk help <Ability> and /pk display.
General Changes
  • Reduced default config values of AvatarState ability modifiers.

  • Changed the way abilities display in /pk help <Ability>
    • Abilities now display whether they are Addons or not.

    • Abilities now display whether they are Combos or Passives.

    • Addon Abilities display their author and version.
  • Improved AirScooter behavior. It isn't perfect yet, but it is better.

  • Changed EarthArmor so it now breaks when a player teleports.

  • Changed cobblestone and obsidian created by AirBlast to TempBlocks.

  • Changed /pk add Avatar to add all four main elements.
API Changes
  • Added RevertTask which runs whenever TempBlock#revertBlock() is called.

  • Moved BendingPlayer creation to a separate thread.

  • Changed initial BendingPlayer database storage to insert default values.

  • Improved CollisionManager performance by removing unnecessary detections.

  • Put logic in place to remove ability instances causing exceptions without breaking all other running abilities. (Thanks, PhanaticD)

  • Changed PassiveManager storage so Passive abilities are be stored by name/class instead of by Element.

  • Removed PassiveManager#getPassivesByElement().

  • Added CoreAbility#unloadAbility(Class clazz) to unload an ability from a server.

  • Added CoreAbility#getAddonPlugins() to get the names and paths of all currently loaded addon plugins. Returned format: <plugin name>::<abilities path>

  • Changed /pk reload to add support for addon plugin reloading.
  • Removed the Minecraft version from the /pk version command.

  • Removed SandSpout.

  • Removed SandRun remnant from EarthPassive.

  • Removed AirBlast collisions with other basic moves.
Build Changelog:

- Updated to 1.12
> Tested backward compatibility with 1.11, should maintain compatibility with 1.10 and 1.9 as well.​

- Re-added Octopus Forms ability to freeze the water you walk on.
- Added missing descriptions and instructions for Paralyze and Rapid Punch.
- Added speed configuration option for Phase Change.
> Determines the speed at which Phase Change melts blocks.​
- Added Fire Manipulation. (Still a work in progress)
> Hold shift to draw a shield of fire that will protect you from oncoming attacks!
> After you draw that shield, click to fire them forwards towards your enemies!​
- Added a drop item configuration option for Earth Tunnel.
> Determines whether Earth Tunnel will drop items if Earth reversion is off.​
- Added angle configuration option to Catapult.
> Determines the max angle one can launch themselves at.​
- Added cancelWithAngle configuration option to Catapult.
> Determines whether an incorrect angle will cancel the move from happening as opposed to just correcting it.​
- Added additional melt functionality to Phase Change causing snow layers to melt one at a time.
- Added configuration options to customize elemental sounds.
> NOTE: Make sure you are only using sounds from your current game version! A list can be found here.​
- Added a proper README.md to the ProjectKorra GitHub repository.
- Added unbindable message to the '/projectkorra bind' command.
- Added duration configuration options for JetBlast and JetBlaze.
- Added height and radius configuration options for FireWheel.
- Added speed configuration options for FireSpin and FireKick.
- Added 'add [player]' subcommand to the '/projectkorra add' command.

- Fixed various NullPointerExceptions.
- Fixed a typo in the description for Shockwave.
- Fixed Water Spout not working on Packed Ice.
- Fixed Surge and WaterArms not properly removing plant source blocks.
- Fixed Passives not enabling after toggling all bending with the '/projectkorra toggle all' command.
- Fixed Spectator players being targetted by bending abilities.
- Fixed ParticleAPI having the 'dragonbreath' particle and the 'endrod' particle swapped.
- Fixed potential lag caused by lighting updates in Shockwave.
- Fixed Illumination not functioning.
- Fixed Catapult being usable on non-earth blocks.
- Fixed ability collisions.
- Fixed odd selection range with snow blocks.
- Fixed Ice Blast not working with Phase Change ice.
- Fixed Bending Preview not displaying Multiability moves.
- Fixed Density Shift passive affecting lava.
- Fixed AllowNaturalFlow configuration option for Lava Flow.
- Fixed auto tab mistake in the '/projectkorra add' command.
- Fixed many nonfunctioning AvatarState moves/configuration problems. (Still in the works)

- Changed our metrics system from PluginMetrics to bStats.
> ProjectKorra's page can be found here.​
- Changed Earth Armor so that being paralyzed/hit by a Chiblocker immediately disables the ability.
- Moved all Combo's into their own respective classes.

- Recoded Water Bubble. (Still a work in progress)
> Very similar in behavior to the old version but much for aesthetically pleasing.
> Added a requireAir configuration option to stop people from creating air pockets underwater.
> Added a clickDuration configuration option to determine how long the click burst will last.​

- Removed Air Bubble
- Removed Firebending passive which allowed firebenders to extinguish themselves faster.
Resolved Issues
  • Removed "revert" message.
  • Fixes various issues with passives not loading/enabling (toggling elements, getting bloodbent, reloading the server).
  • Fixes HeatControl melting ice in an odd pattern.
  • Fixes abilities with no Usage message displaying an empty Usage tab in /b help <Ability>.
  • Fixes HeatControl and PhaseChange being usable in protected areas.
  • Fixes DensityShift dropping sand blocks when the sand is broken.
  • Fixes Bloodbending cooldown not being applied when the max hold time is reached.
  • Fixes PhaseChange ice blocks not being usable as source blocks.
  • Fixes various moves like Torrent, WaterArms, and Surge replacing water with air when they revert/select.
  • Fixes being able to use EarthGrab while in the air.
  • Fixes bending breaking when someone toggles their bending.
  • Fixes bug memory leak issues in Torrent, LavaFlow, and IceSpike.
  • Fixes addon abilities not being shown in /b display <Element>
  • Fixes internal error being caused by entering a subelement into /b toggle <Element>
  • Fixed error caused by /b who not being able to connect to the ProjectKorra site.
  • Fixes water abilities not selecting most plant sources correctly.
  • Fixes some Chi moves damaging targets twice.
  • Fixes tons of NullPointerExceptions.
  • Adds FerroControl to the passives list. (metal benders being to open iron doors)
  • Adds Branding config options.
  • Adds IceWave auto revert time config option.
  • Adds /b display passives, displays all passives you have access to.
  • Adds /b display combos, displays all passives you have access to.
  • Adds new Catapult.
    • Catapult now has 4 tiers of charged power. Each tier boosts you Catapult's height and speed. With the exception of clicking, each tier is denoted by a sound and particles.
      • Click (Tier 1)
      • Sneak (Tier 2 / 4)
        • The 4th tier will automatically use the move.
Known Issues
  • Water Manipulation and Surge cannot use bottlebending.
  • Water is a little more "flowy" than it should be.
Introducing ProjectKorra 1.8.2!


@Coolade has completely reworked the ProjectKorra ability collision system and has made it possible for you to customize what abilities interact with one another. This means addon developers can customize their abilities collisions with stock moves and even create new events that occur when moves collide!

@Sobki created a new Passives API to match our Combo API. This means that addon developers will be able to easily create passive ability addons and we will be able to implement your passive ability suggestions! Passives have names and descriptions to help users. Additionally, passives are given by default but they can be removed via permission node.

EarthArmor will now reflect Stained Clay colors in its appearance and has a new Max Duration config option.

Torrent Ice, Surge Ice, and Ice Wave now have configurable timed revert options.

Flight now has a Cooldown config option and a Max Duration time config option.

AvatarState now has config options for the buff it applies to each Ability variable. Shoutout to @Loony

The bending help command now displays a usage message for all moves with a brief instructions of how to use the move in addition to the old move descriptions. Shoutout to @Loony

Added Kingdoms Support.

As many of you know, PhaseChange was one of the largest processes in ProjectKorra. This was due to a lot of faulty design that went into the original. @Simplicitee has completely reprogrammed the move from scratch to add new functionality and to make it much more efficient. Some of the biggest changes made to PhaseChange are the new thaw mechanic and freeze mechanic. Thawing is no longer instantaneous, instead, ice will gradually melt outwards from a center point. As for freezing, the ice generated by PhaseChange will only cover the outermost layer of water by default. The amount of layers can be changed in the config.

HeatControl has been completely reprogrammed by @Sobki to add new functionality and to make the move much more efficient. Cooling now spreads out initially as magma and then cools to stone or cobble.


Fixed WaterManipulation having the ability to select other water moves.
Fixed BottleBending issue which resulted in players being unable to waterbend.
Fixed issues with QuickStrike, SwiftKick, RapidPunch, and Immobilize.
Fixed FireWheel and AirSwipe being stopped by snow on the ground.
Fixed being able to go insanely fast with AirScooter via auto-run.
Fixed gold tools / weapons not being considered weapons in the "CanBendWithWeapons" config option list.
Fixed Combos being able to be used with weapons when "CanBendWithWeapons" was set to false for that Element.
Fixed EarthTunnel not reverting snow and plants.
Fixed EarthTunnel being able to "tunnel" through lava.
Fixed EarthTunnel removing earthbendables under snow without removing said snow.
Fixed LavaFlow incorrectly setting Double Plant blocks to air.
Fixed LavaFlow lava becoming permanent after a reload.
Fixed LavaFlow spawning particles on non-earth materials.
Fixed Flight getting a huge speed increase if you sprint.
Fixed being able to enable more than one stance.
Fixed various IllegalArgumentExceptions throughout the plugin.
Fixed various NullPointerExceptions throughout the plugin.
Fixed BloodBending's odd behavior when moving selected entities.
Fixed the bind command not catching second arguments that are not numbers.
Fixed WaterArms spear not work correctly when the "Sphere" config option is set to 0.
Fixed the red "null" message appearing when binding an ability whose element is toggled.
Fixed DamageHandler firing EntityDamageByEntityEvent an incorrect number of times and sets the cause of said event correctly.
Fixed HealingWaters being able to duplicate water bottles.
Fixed AirShield not properly blocking FireBlast, EarthBlast, and WaterManipulation.
Fixed various ability descriptions not using generic control names.
Fixed AirSwipe not properly respecting its cooldown.
Fixed BottleBending behavior which resulted in a bender not being able to bend.
Fixed Immobilize not being activated correctly.

Fixed SubElement moves not displaying the proper death message.
Hey you? Yeah you! What do YOU think WE here at ProjectKorra should work on next? Give a shoutout in the comments!
Hey, everyone! As promised in our last update here is a shiny new build! I know it may be a tad confusing but in order to maintain consistency between all our plugins we are going to be changing how we display version numbers for core. We will be using this format <Breaking Version>.<Major Version>.<Minor Version> For instance, this build is the first minor build of the 1.8 major release so it can be written as 1.8.1. This build takes care of a lot of issues and errors we found in the 1.8.0 release so I highly recommend you update to it ASAP. In addition, this build contains a few cool new changes that we hope you like! Be sure to comment the feature you like the most!

  • Fixes Spout movement
  • Fixes Tremorsense click ability activating constantly
  • Fixes SandSpout canceling flight on deactivation
  • Fixes Combos being executed too soon

Fixed Errors:
  • Fixes server crash caused by Nan velocity in MetalClips
  • Fixes IllegalPluginAccessException in HeatControl
  • Fixes IllegalPluginAccessException in LogFilter
  • Fixes IllegalArgumentException on setHovering() in AirFlight
  • Fixes IllegalArgumentException ParticleEffect.WATER_BUBBLE in Torrent
  • Fixes IllegalArgumentException when checking the distance between two locations
  • Fixes NullPointerException isAdjacentToThreeOrMoreSources() in GeneralMethods
  • Fixes NullPointerException on thaw() and remove() in SurgeWave

  • /bending help auto tabbing displays combos you have access to, not all of them
  • Particles are now only visible within the entity rendering radius

New EarthArmor
  • EarthArmor gives Absorption rather than Resistance and dampens fire damage!
  • Your EarthArmor remains on you until you either disable it manually by Shift-Clicking on your bound slot, or until you run out of absorption hearts. It does not time out on its own.
  • The color of your EarthArmor depends on the blocks used to source it!

New HealingWaters
  • HealingWaters can now be used outside of water if you have a bottle in your inventory.
  • To use you begin shifting in water or with a bottle in your inventory after the blue particles appear and begin circling around you, you will begin to be healed. At this point, you can right click entities within range to transfer the healing waters to them. You must continue to look in the general direction of your target for them to keep healing them. You can right click your current target again to deselect them and return the waters to yourself. Important note: Healing does not occur while the water is in transition from target to target, only once the healing particle effect begins.

New EarthGrab
  • In order to EarthGrab your target, shift and click on them. Alternately, look down and click the block you are standing on to EarthGrab yourself.
  • Fancy new particles as your EarthGrab goes to your target!

New AirScooter
New Look!
  • AirScooter now displays as a ball like in the show!

New LavaFlow
  • You can now select ceilings as well as floors to turn to lava! Keep in mind that this gif shows the feature with the AllowNaturalFlow option set to true to rain lava down on your enemies!

Known Issues:
  • As many of you know PhaseChange has been causing lag on a lot of servers. We are currently working to resolve this issue but felt we should stay on schedule and release this beta anyways. Expect a fix in the next build!