ItemsCore
Build fully custom items, armor sets and talismans for your server - with no Java and no recompiling. You design everything by clicking through an in-game editor: pick a trigger, add ready-made methods, fill in the blanks. There is no syntax to learn, and an AI can build items for you too. Works on Minecraft 1.8 - 26.2.
It also ships dupe detection, multi-server data sync and a player-inventory moderation tool for staff.
Installation
- Drop ItemsCore.jar into your server's plugins/ folder.
- Start the server once. The config and an items/ folder are generated in plugins/ItemsCore/.
- Run /itemeditor to open the item browser, or /itemeditor <name> to edit a specific item.
Optional integrations are detected automatically if installed: PlaceholderAPI, Vault and AuraSkills.
Try it free
You don't have to buy first. Launch your own hosted demo server straight from the browser - the full plugin with the official addons, no download and nothing to configure. Build items, test abilities and play with them in-game, then come back as many times as you like.
- The real plugin - not a cut-down trial. Everything on this page works on the demo.
- Instant - click once, get a join address, you're in. No account, no setup.
- AI-ready - the demo includes a file manager that works with the AI helper, so you can have an item written for you and import it live.
Editor basics
Open the editor with /itemeditor (or /itemeditor <name> to edit one). Everything below is set from a single item screen. Colours use & codes, and on supporting versions hex with &#rrggbb.
| Option | What it does |
|---|---|
| Item Material | Hold the item you want and click the button - it copies your held item. |
| Identifier | The internal id used in config files and commands. No spaces. Also stored on the item with a generated UUID for dupe detection. |
| Fancy Name | The coloured display name shown in-game. |
| Lore | Edit a line, right-click to remove it, shift-click for the next/new line, shift-right-click for the previous. |
| Enchantments | Opens a GUI of every enchantment; click one and enter a level. Click an added enchant to remove it. |
| Flags | Toggle Bukkit item flags on and off (e.g. hide attributes). |
| Custom Model Data | For resource-pack models. |
Click type & heads
The click type controls when click / right-click actions are allowed to run:
| Click type | Runs when the player clicks… |
|---|---|
| BLOCK | only a block |
| AIR | only air (empty space) |
| BOTH | either - the default |
This is set per action, so one item can have a right-click ability that only triggers in the air and a separate block interaction.
Skull owner
When the item is a player head, set Skull Owner to a username to use that player's skin as the texture.
Custom model data
Set Custom Model Data to a number to point the item at a model in your resource pack. Combined with a base material this is how most servers render fully custom item textures while keeping a normal Minecraft item underneath. The value is just an integer your pack maps to a model.
Actions
An action is behaviour attached to a trigger - for example "when the player right-clicks". You build it visually in three steps:
- Pick an action or event. Choose the trigger (left-click, right-click, etc). One item can have many actions. You can also click Create new custom event and build your own from 50+ supported server events, each with its player variables.
- Add methods. Click Click to add a method and pick from the categories. Right-click an empty method slot to load a saved template, right-click a built method to save it as a template, and right-click a category to set a method from it directly.
- Fill parameters. Simple types (text, numbers, booleans) are typed in directly. Right-click a parameter to open the methods menu and use another method's result as the value. Middle-click switches a parameter to chest mode for list/array values.
Methods run top to bottom. Between two methods you can drop an operator to build maths or conditions; leave it on None for the normal "run one after another" case. See the Triggers reference for what each trigger exposes, and Methods for everything you can call.
Keep going from a result
Some values only exist one step past a method. The player's height is not on the player, it is on the player's location. In the methods menu, right-click any method that returns something and the menu reopens on that result, so you can carry on from there.
Picking Get Location, then Add, then Get Y builds the whole thing as one step, with no code:
player.getLocation().add(0, 2, 0).getY()
Chains go as deep as you like, and a method in the middle keeps its own values: open the step's parameters and each earlier link with values of its own gets a row there, so nothing in a chain is ever stuck.
Name a value and reuse it
When several steps need the same value, click Set a variable, give it a name, and build its value like any other action. From then on that name appears in the methods menu next to The Player and the rest, with the right type, so you can pass it around or keep going from it exactly like a built-in.
This replaces the old workaround of saving a value to a player variable purely to read it back a line later.
Finding the right method
Long method lists open as areas first - Combat, Movement, Messaging, Items, Blocks and so on - so you pick what you are trying to do before you see any names. Bukkit's own methods, which have no categories, group into Read something, Change something and Show or send. Show everything gives you the full alphabetical list, and searching goes straight to results.
Methods read as plain words in the menu (Get Location rather than getLocation), with the real name shown underneath so it still matches what you would search for or write in an import file.
Crafting recipes
Give a custom item a shaped crafting recipe so players can craft it at a normal crafting table. Open the recipe GUI from the item editor and place ingredients in the 3x3 grid exactly as they should be laid out.
- Vanilla ingredients - any normal Minecraft material.
- Custom ingredients - another ItemsCore item can be required in a slot, matched by its identity, not just its material.
- Amounts - a slot can require more than one of an ingredient. Crafting consumes the exact amount you set, and the result only appears when enough is present.
Custom items now also show up correctly in the vanilla in-game recipe book - with their real name, lore and model - and are unlocked for players automatically.
Stats
Stats are named numbers you define once and then attach to items. Create and manage them with /stats (permission itemscore.stats). In an item's stats GUI you pick from your created stats and set the value for that specific item.
Read a stat inside an action with core.getItemStatValue(item, "strength") or a player's combined stat with core.getPlayerStatValue(player, "strength"), and expose stats through PlaceholderAPI.
Item types
An item's type decides when its stats and actions apply. Cycle it on the item screen - no code needed:
| Type | Effects apply while… |
|---|---|
| Normal | the item is held in hand |
| Talisman | the item sits anywhere in the inventory - or in the player's Accessory Bag, an optional feature you turn on with /ic accessorybag - perfect for passive bonuses that should not cost a hotbar slot. Each talisman counts only once, however many copies a player holds |
| Off-hand | the item is in the off-hand slot |
| Armor | the item is worn as armor |
| Equipment | the item is worn in an EquipmentCore slot (rings, necklaces and other custom gear) |
The type also drives how reforges, the wardrobe and equipment slots treat the item, so a stat or ability only counts when the item is actually in use.
Drops & loot
Every custom item has a Drops & Loot button in the item editor. It splits into two menus - Drop Effects and Randomized Loot - so a dropped copy can look special and the item can appear on its own in world loot.
Drop Effects
Style a copy of the item lying on the ground. Each is a simple toggle and all are off by default:
- Glow - the dropped item glows in a colour you pick. Needs MC 1.9+.
- Name tag - show a floating name above the drop.
- Invulnerable - survives fire, lava, explosions and cacti. Needs MC 1.10+.
- No despawn - the drop never disappears.
- No merge - stays a separate ground stack instead of merging into other item piles.
- No gravity - the drop floats in place. Needs MC 1.10+.
Randomized Loot
Let an item spawn on its own in naturally generated chests - dungeons, mineshafts, villages, desert and jungle temples, nether fortresses, bastions, end cities, buried treasure, shipwrecks, ancient cities, trial chambers and more. Set a percentage chance, a min/max amount, a per-chest cap, and pick which container types (or leave them all selected for every chest). Needs Minecraft 1.16+.
Both menus are fully configurable in-game with steppers and toggles - no config files or code.
How abilities work
You never write or read code. An ability is a stack of method tiles you assemble in the editor, and they run top to bottom when the trigger fires. To heal the player and message them, you add two tiles - heal and send message - and fill in their boxes. That is the whole ability.
Tiles come from categories like messaging, movement, combat, world edits, sounds, particles, projectiles, timing and player variables (plus economy with Vault). When a tile needs a value - a number, some text, or the player - you type it in, or right-click the box to drop in another tile's result instead.
Conditions, loops and maths
The "logic" is handled by tiles too, so there is still nothing to type:
- Conditions - doIf and doIfElse run their inner tiles only when a check passes. The check is just another tile, like chanceOf (a percentage roll), isHealthBelowPercent or isWearingFullSet.
- Delays & repeats - runCodeLater waits before running its tiles, and loopThrough repeats them over a list, such as every nearby entity.
- Maths - drop an operator between two tiles, or nest add / multiply / min tiles, to build a number without writing a formula.
Events
Events are the same idea as actions, but separated out because they react to things happening to the player rather than a direct click. Each exposes its own variables, and you can stop the event with core.cancelEvent(event).
| Event | Fires when | Key variables |
|---|---|---|
| DamageEvent | the item is used to attack an entity | attacker victim cause damage |
| PlayerDamageEvent | the holder/wearer takes damage | player cause damage |
| ProjectileHitEntityEvent | a shootProjectile projectile hits an entity | shooter victim lastLocation |
| ProjectileHitBlockEvent | that projectile hits a block | shooter lastLocation |
| ArmorEquipEvent | the armor is equipped | player item |
| ArmorUnEquipEvent | the armor is unequipped | player item |
| PlayerMoveEvent | the player moves holding/wearing the item | player item |
Beyond these, the Create new custom event button lets you react to any of 50+ Bukkit events directly, each with the player it resolves and the raw event object.
Cooldowns
Each action can have its own per-player cooldown. Open the cooldown clock in the action's GUI and type any duration - a number with a unit, like 5s, 90s, 2m or 1h (a bare number means seconds). While the cooldown is active that action will not run for that player.
On-cooldown message
You can also send the player a message when they try to use the action too soon. Shift-click the cooldown clock to set the message; shift-right-click clears it. The message supports & colours and these time-left placeholders:
| Placeholder | Becomes |
|---|---|
| %remaining_seconds% | whole seconds left, rounded up |
| %remaining_minutes% | whole minutes left, rounded up |
| %remaining_hours% | whole hours left, rounded up |
| %remaining% | formatted time, e.g. 1m 30s |
| %remaining_millis% | milliseconds left |
For example, a message of &cWait %remaining_seconds%s before using this again. shows the player a red countdown.
Examples
Each of these is a short stack of tiles on a trigger. You add the tiles, fill in the boxes, and you're done - no typing.
Fire burst - on left-click
- a filledCircle of FLAME particles at the player's location
- playSound - the blaze-shoot sound
- splashDamage - hurt every entity in a small radius around them
Homing particle bolt - on right-click
- shootProjectile made of coloured dust, fired from the player's eyes
- give the item a Projectile Hits Entity action so it does something when the bolt lands
25% chance to strike lightning - on hit
- a doIf tile with chanceOf (25) dropped in as its check
- inside it, a summonLightning tile at the victim's location
Official addons
ItemsCore is built around an open addon API, and these official addons plug straight in. Each one adds its own menus to the editor - there is nothing to script. Browse and install them in-game with /ic install addon browse, or grab them from their pages:
| Addon | What it adds |
|---|---|
| ReforgesCore | Custom reforges and reforge stones that add extra stats to items - with a manage menu, random and targeted rolls, and an advanced anvil to apply them. |
| EquipmentCore | Extra wearable equipment slots - rings, necklaces and more - whose stats and abilities only apply while the item is worn. Fully configurable slot menu. |
| SkinsCore | Cosmetic skins, runes, dyes and custom heads you apply to items, with worn animations and particle effects. |
| WardrobeCore | Save and toggle full armor sets from a wardrobe menu - dupe-proof, with per-set permission locks. |
| ProfileCore | Right-click or /profile to open a player's profile menu - live armor, held item, off-hand, equipment and a textured head with {stats} and PlaceholderAPI lore. Fully configurable layout and buttons. |
Integrations
ItemsCore also detects these third-party plugins automatically when they are installed:
| Plugin | What it unlocks |
|---|---|
| Vault | Connect to the server economy - core.balance, core.deposit, core.withdraw. |
| PlaceholderAPI | Parse placeholders in strings with core.parsePlaceholder(player, text), and expose item stats (see Placeholders). |
| AuraSkills | Skills, mana and stats - ItemsCore can push its own per-player stat totals straight into it. |
Placeholders
With PlaceholderAPI installed, ItemsCore registers the itemscore expansion so you can show item stats in scoreboards, holograms, tab lists and anywhere else placeholders are parsed.
| Placeholder | Returns |
|---|---|
| %itemscore_statValue_<stat>_<item>% | the raw stat value for that item, e.g. 50 |
| %itemscore_statFancyName_<stat>% | the stat's display name |
| %itemscore_statFancyValue_<stat>_<item>% | the formatted value (the stat's value template with the number filled in) |
| %itemscore_statFancyString_<stat>_<item>% | the display name and formatted value together |
Replace <stat> with the stat name and <item> with the item identifier, for example %itemscore_statValue_damage_magic_sword%.
AI helper
You can let an AI build and edit ItemsCore items for you, with no coding. To keep it in one place and always up to date, the whole thing - a one-paste setup prompt, the local MCP server, and the full guide - lives in the helper repo: github.com/Core-Pluginss/ItemsCore-Helper. Open it, copy the prompt into your AI, and it sets itself up and builds your item.
The AI reads this exact API, validates what it writes, and hands you a .import file. Importing it rebuilds a normal, GUI-editable item - so anything the AI makes you can still tweak by hand in the editor.
Commands
Run /ic (or its full alias /itemscore) on its own to see the command list. Run a subcommand on its own, like /ic database, to see just that group's commands. Every standalone command also works as an /ic subcommand (e.g. /ic stats, /ic playerinventory).
| Command | Description |
|---|---|
| /itemeditor [name] | Open the item browser, or edit a specific item. |
| /ic | Show the full command list. |
| /ic menu | Open the items menu. Left-click an item to edit it, right-click to give / set recipe / delete, or use the button to create a brand new item. (/ic gui still works.) |
| /ic editor [item] | Open the item editor. Same as /itemeditor. |
| /ic templates | Manage saved action templates: rename, delete and search. |
| /ic reload [items|stats] [name] | Reload from disk. No arguments reloads everything; a category (items or stats) reloads all of it; adding a name reloads just that one item or stat. Returns a success / error list and retries previously-failed items. |
| /ic export <item> | Export an item to clean JSON (exports/). |
| /ic import <file> | Import a clean JSON from imports/ as a live, GUI-editable item. |
| /ic adopt <item> | Make a code-only item editable in the GUI. |
| /ic install <item|template|stat> <url> | Download an item (.item/.import), template (.yml/.template) or stat from a direct link. Jars are refused on this path. |
| /ic install addon browse | Browse and install supported addons (PowerScrolls, PlaceholderAPI, Vault, AuraSkills) at their latest version, or /ic install addon <name>. |
| /ic delete <item> confirm | Delete a custom item (removes it from memory, its file, and the database if enabled). |
| /ic exportapi | Write the machine-readable API manifest (itemscore-api.json). |
| /ic database | Multi-server sync tools (see below): status, migrate, restore. |
| /ic libraries | Show the status of the runtime-downloaded MongoDB / Redis drivers. /ic libraries verify downloads or repairs them. |
| /ic animations | Build named particle animations entirely in the GUI - a categorized shape picker, stacked layers, colors and a live "Test on me". Play one from any item action with particles.playAnimation(player, "name", ticks), with no animation code. Saved to animations/, and reusable inside a rune skin. |
| /stats | Create and manage custom stats. Stats also live in stats/stats.yml as plain YAML and apply with /ic reload stats. |
| /addons | Open a menu of the ItemsCore addons loaded on the server, and says so clearly when none are loaded. |
| /playerinventory <player> | Open a player's inventory for moderation. |
| /toggledupealerts /tda | Toggle the dupe-detection alerts staff receive in chat when a duplicated item is found. |
| /accessorybag /accessories | Open your Accessory Bag: a personal bag that holds Talisman items and keeps them fully active, exactly as if they were in your inventory. Its size is permission-based (itemscore.accessorybag.slots.cap.<n>) and it is disabled by default - enable and size it under /ic accessorybag. /accessorybag <player> opens another player's bag. |
Permissions
| Permission | Grants |
|---|---|
| itemscore.admingui | /ic / /itemscore and every subcommand |
| itemscore.itemeditor | /itemeditor |
| itemscore.stats | /stats |
| itemscore.addons | /addons |
| itemscore.playerinventory | /playerinventory |
| itemscore.toggledupealerts | /toggledupealerts (/tda) |
| itemscore.accessorybag.self | Open your own Accessory Bag with /accessorybag (default: everyone) |
| itemscore.accessorybag.others | Open another player's Accessory Bag with /accessorybag <player> (default: op) |
| itemscore.accessorybag.slots.cap.<n> | Set a player's Accessory Bag size to <n> slots - the highest node a player has wins |
Multi-server sync
Running a network? ItemsCore can keep data consistent across servers using a shared MongoDB database, with optional Redis for instant propagation. Each category is configured independently in config.yml under database - keep it in files (the default) or make it database-wide:
| Category | What syncs |
|---|---|
| items | your custom items |
| global-variables | server-wide variables |
| player-variables | per-player variables |
| config | the whole config (except the database section, which stays local) |
- Set your MongoDB URI and database name, then enable the categories you want - or flip enable-all to turn on every category at once.
- The database stays fully off until you enable at least one category, so single-server setups are unaffected.
- Redis is optional. With it, changes propagate instantly; without it, servers poll on an interval. ItemsCore always falls back to files if the database is unreachable - a bad connection never takes the plugin down.
Migrating
| Command | Description |
|---|---|
| /ic database status | Show the connection state and which categories are database-wide. |
| /ic database migrate confirm | Push your current file data up into the database. |
| /ic database restore confirm | Pull the database data back down into files. |
Triggers
A trigger is when an action fires. Each one exposes the variables listed here.
| Trigger | Fires when | Variables |
|---|---|---|
| leftAction | A player left-clicks while holding the item. | playeritemevent |
| leftSAction | A player sneaks and left-clicks while holding the item. | playeritemevent |
| rightAction | A player right-clicks while holding the item. | playeritemevent |
| rightSAction | A player sneaks and right-clicks while holding the item. | playeritemevent |
| shiftAction | A player starts sneaking while holding or wearing the item. | playeritemevent |
| dropAction | A player drops the item (the drop is cancelled). | playeritemevent |
| onItemEquip | A player selects the item in their hotbar. | playeritemevent |
| armorEquipEvent | The item (armor) is put on. | playeritemevent |
| armorUnEquipEvent | The item (armor) is taken off. | playeritemevent |
| swapAction | A player swaps hands (F key) with the item. | playeritemevent |
| shootAction | A player shoots a projectile while holding the item. | shooteritemevent |
| pickupAction | A player picks the item up off the ground. | playeritemevent |
| arrowLandAction | An arrow shot while holding the item lands. | shooteritemarrowlandLocationevent |
| onConsumeAction | A player finishes eating or drinking the item. | playeritemevent |
| damageEvent | You hit something while holding this item (the on-attack trigger). Use the variable 'attacker' for yourself (the holder) and 'victim' for what you hit - there is NO 'player' variable here. | attackervictimitemcausedamageevent |
| projectileHitEntityEvent | A custom projectile from this item hits an entity. | shootervictimitemlastLocationevent |
| projectileHitBlockEvent | A custom projectile from this item hits a block. | shooteritemlastLocationevent |
| playerMoveEvent | A player moves while holding or wearing the item. | playeritemevent |
| playerDamageEvent | The holder or wearer of this item takes damage. 'player' is the one being hurt; 'cause' / 'causeName' is the damage cause and 'damage' is the amount. | playeritemcausecauseNamedamageevent |
| intervalAction | Runs again and again on a timer (set the period in ticks, 20 = 1s) for as long as the item is held or worn. Great for auras, passive particles, or keeping a potion effect topped up. | playeritemevent |
Variables
Values you can use directly inside an action.
| Variable | Type | Available |
|---|---|---|
| core | ActionCore$Core | Always available. |
| particles | ActionCore$Particles | Always available. |
| values | ActionCore$CustomValues | Always available. |
| api | ItemsCoreAPI | Always available. |
| item | Item | Always available (the custom item this action belongs to). |
| event | Event | Always available (the Bukkit event; cancel with core.cancelEvent(event)). |
| player | Player | Most triggers. |
| shooter | LivingEntity | shootAction, arrowLandAction, projectile hit events. |
| victim | Entity | projectileHitEntityEvent. |
| arrow | Entity | arrowLandAction. |
| landLocation | Location | arrowLandAction. |
| lastLocation | Location | projectile hit events. |
Methods
Everything you can call in an action, generated directly from the plugin so it always matches your version. Pick a binding, browse by category, or search.
coreMain toolbox. Most actions live here: damage, teleport, sounds, projectiles, variables, loops, conditionals.
▶Blocks17
Breaks a block naturally, dropping its normal loot.
Breaks a block naturally as if mined with the given custom item, dropping its loot.
Changes a block into the material with the given name.
Changes a block into the given material.
Gets the block at the given x, y, z coordinates in a world.
Gets the block at a given location.
Returns all blocks in a box around a location, reaching the given distance on each axis.
Returns the material (type) of a block.
Erupts the floor: turns the solid blocks one layer under the center into real falling blocks in a square of the given radius, launching them upward with the given power so they arc up and drop back into place. Works on every version. Great to call at a projectile's hit location.
Turns a block into air, making it disappear without drops.
Removes a whole list of blocks at once, turning them all to air.
Block animation: rips the solid blocks in a square (radius) and depth (layers) under the source out of the ground and hurls them as real falling blocks forward in the direction the source faces, with an upward and a random spread component. The blocks vanish where they land instead of placing. Pass onLand script code (with landLocation, and player when the source is a player, available) to run an effect at each landing spot, or an empty string for none.
Block animation (entity-relative): copies the solid blocks in a square (radius) and depth (layers) under the entity and lobs that whole patch as one moving island of real falling blocks in the direction the entity faces (forward) with an upward push (up), then it falls back down under gravity. The ground stays intact. Runs the onLand script once at the landing spot (landLocation, and player when the source is a player, are available). Keep forward and up small for a slow lob. For throws not tied to a player position use the location overload throwIsland(location, ...) or throwIslandOf(...).
Block animation (free): copies the solid blocks in a square (radius) and depth (layers) at and below the given center location and lobs that patch as one moving island of real falling blocks with the exact world velocity (vx, vy, vz), then it falls under gravity. Not tied to any player or facing, so the center and direction are entirely yours. The original ground stays intact. Runs onLand once at the landing spot (landLocation, and player if it is in scope, are available). If the center is mid-air with no blocks below it nothing is thrown - use throwIslandOf to build the island from a chosen material instead.
Block animation (built from a material): spawns a square (radius) and depth (layers) island made of the given block material at the center location (no terrain needed, so it works in mid-air or anywhere) and lobs it as one moving group of real falling blocks with the world velocity (vx, vy, vz), then it falls under gravity. Runs onLand once at the landing spot (landLocation, and player if it is in scope, are available). Unknown materials fall back to STONE.
Vein-mines straight from a block break event, shattering the rest of the connected vein around the block that was just broken. Same as veinMine on a block but takes the event so you can call it directly inside a block break handler.
Breaks the whole connected vein of blocks around a block you just mined, as if each one was mined with the given item so it drops its loot. Only blocks that share the start block's material are taken, the start block itself is left to whatever broke it, and the search stops at maxBlocks blocks or once the vein spans maxBox blocks across in any direction. Returns how many extra blocks were broken.
▶Combat12
Counts the living entities (mobs and players, not yourself) in the x, y, z box around the player. Combine with isAtLeast for a scaling condition.
Deals the given amount of damage to a living entity (half a heart = 1).
Damages a living entity and credits the damage to an attacker, so kills are attributed correctly.
True when at least one living entity (mob or player, not yourself) is in the x, y, z box around the player. Use it to check for a target before an ability with no code.
Heals a living entity by the given amount, capped at its max health (half a heart = 1). Works on the player, a victim, or any mob.
Knocks an entity away from a location, with extra strength set by the multiplier.
Knocks back every living entity in the x, y, z box around the player, away from the player, at the given strength. Skips the player.
Strikes every living entity in the x, y, z box around the player with lightning. Skips the player.
Pulls every living entity in the x, y, z box around the player toward the player at the given strength. Skips the player. Great for a black-hole or vacuum ability with no looping code.
Sets a living entity's health to an exact amount (half a heart = 1). Works on the player, a victim, or any mob.
Damages every entity near the given entity (except itself) within the given x, y, z range. The center can be the player, a victim, or any mob.
Deals splash damage to every living entity within the given x, y, z box around a location, crediting the attacker. Built for throwBlocks landing callbacks using landLocation.
▶Economy3
Returns a player's money balance (requires the Vault plugin).
Adds money to a player's balance and returns whether it succeeded (requires the Vault plugin).
Removes money from a player's balance and returns whether it succeeded (requires the Vault plugin).
▶Effects1
Gives a living entity a potion effect for a duration (in ticks) at the given strength level. Works on the player, a victim, or any mob.
▶Entities7
Finds an entity in a world by its numeric entity id, or nothing if not found.
Finds an entity in a world by its UUID text, or nothing if not found.
Returns the location of a living entity's eyes (their head, where they are looking from).
Returns all entities near an entity (player, victim, or any mob) within the given x, y, z distances.
Returns only the LIVING entities near an entity (players and mobs) within the given x, y, z distances. Skips dropped items, arrows, xp orbs and other non-living entities, so area effects only hit real targets.
Removes an entity from the world (kills it without drops).
Spawns an entity of the given type at the x, y, z position and returns its UUID as text.
▶Items40
Adds a colored firework effect to a held firework rocket or firework star. type is BALL, BALL_LARGE, STAR, BURST or CREEPER and the burst takes the given RGB color. Does nothing if the held item is not a firework.
Adds an amount to a numeric value stored on the held item (counting from 0 if it was never set) and returns the new total. Perfect for upgrade progress like blocks mined or kills.
Adds a potion effect to a held potion, splash/lingering potion or tipped arrow. type is an effect name like SPEED or STRENGTH, duration is in ticks (20 = 1s), amplifier 0 = level I. Does nothing if the held item has no potion data.
Empties a player's entire inventory.
Drops an item on the ground at a location.
Drops the given material on the ground at a location.
Returns the boots a player is wearing.
Returns the chestplate a player is wearing.
Returns the helmet a player is wearing.
Returns the item in a specific inventory slot of a player.
Returns how many ticks of vanilla cooldown are left on the item that triggered this ability (20 ticks = 1 second), or 0 if it is ready.
Builds the actual in-game ItemStack for one of your custom items.
Returns the value of one of a custom item's stats by name, or 0 if the item does not have it.
Reads a value stored on the player's held item with setItemVariable. Returns nothing if the item has no such value.
Reads a value stored on the held item as a number (0 if it was never set or is not a number). Use it to do math with item variables like a kill or soul counter.
Reads a value stored on the held item, or returns the given default if it was never set.
Returns the leggings a player is wearing.
Looks up a Minecraft material (block or item type) by its name.
Gives the player a fresh copy of a custom ItemsCore item by its id, amount times. Each copy is brand new and unique. Use it to hand out rewards from a voucher or crate.
Gives a player one of the given material as an item.
Checks whether an item is a custom ItemsCore item with the given id.
Returns true while the item that triggered this ability (held, or the worn armour piece) is still on a vanilla cooldown from setItemCooldown. Use it to block an action until the cooldown ends.
True when a numeric value stored on the held item is at least the given amount. Reads with getItemVariableNumber. Use it for a charge or soul counter condition with no code.
True when a numeric value stored on the held item is at most the given amount. The mirror of isItemVariableAtLeast, for an empty/low counter condition.
Checks whether a custom item is a talisman (a passive item kept in the inventory).
True when the player is wearing all four armour pieces of a set, matched by id prefix (e.g. "spirit" matches spirit_helmet, spirit_chestplate, spirit_leggings, spirit_boots). Perfect for a full-set bonus condition with no code.
Changes how the player's held item LOOKS by swapping its material, while it stays the exact same custom item (same id, lore and behavior) - it is now Morphed. The original material is remembered so unmorphHeldItem can restore it.
Creates a new player head item showing the given player's skin.
Sets an existing player-head item to show the given player's skin.
Redraws the held item's lore from its template, filling in placeholders like {var_level} with the values stored on that item. Call it after changing an item variable so the lore updates live. Write {var_yourKey} in the item's lore in the editor.
Removes one of the item the player is currently holding from their hand.
Puts a real vanilla cooldown on the item that triggered this ability (the held item, or the worn armour piece for an armour ability) for the given number of seconds. Held items grey out with the sweeping overlay, exactly like an ender pearl; worn armour cannot show the overlay, so gate armour abilities with the action's own cooldown field instead. Needs Minecraft 1.11 or newer.
Stores a value on the player's held item itself (not the player). The value travels with that exact item even when it is moved, dropped or traded. Use it for per item state like an upgrade level or a kill counter. Returns the updated item.
Dyes the held leather armor piece the given RGB color (each 0-255). Does nothing if the held item is not leather armor. Updates the look live, like a morph.
Dyes the held leather armor piece from a hex color like #ff0000. Does nothing if the held item is not leather armor.
Creates a player-head item showing the skin of the given player name.
Creates a player-head item from a base64 skin texture value (the kind sites like minecraft-heads give you).
Creates a player-head item from a base64 skin texture and its Mojang signature, for verified skins that need both.
Subtracts an amount from a numeric value stored on the held item and returns the new total. The mirror of addItemVariable, for spending a counter.
Restores a morphed held item back to the original material it had before morphHeldItem. Does nothing if the item was never morphed.
▶Logic17
True only when both conditions are true. Use it to combine two checks without writing code.
Cancels the current event so the normal action (like the block break or damage) does not happen.
Returns true with the given percent chance (0-100). Great for random ability procs.
Runs a piece of script code only if the condition is true.
Runs one piece of script code if the condition is true, otherwise runs the other piece.
True when the first number is at least (greater than or equal to) the second.
True when the first number is at most (less than or equal to) the second.
True when two numbers are equal.
True when the first number is greater than the second. Use it as a doIf condition instead of writing raw code.
True when the first number is less than the second.
Flips a true/false value. Use it to run something when a condition is NOT met.
True when either condition is true.
Picks one random entry from a comma separated list (or a real list) and returns it. Roll a random reward, message or command with it.
Returns a random whole number between min and max, both included.
Runs a piece of script code right now.
Runs a piece of script code after a delay measured in ticks (20 ticks = 1 second).
Runs an already-built runnable (from core.createRunnable) after a delay measured in ticks (20 ticks = 1 second). Prefer this over runCodeLater so the runnable is compiled once instead of evaluating a code string at runtime.
▶Loops5
Repeatedly runs a piece of script code a set number of times, waiting the given ticks between each run (-1 times means forever). The current loop number is available as tIndex.
Runs a piece of script code once for each item in an array, with the current item available as currentArrayObject.
Keeps running a piece of script code every few ticks while a condition stays true.
Turns a list (like getNearbyLivingEntities) into an array so you can pass it straight to loopThrough, with no .toArray() code.
Waits until a condition becomes true, then runs a piece of script code (the safe value limits how long it waits).
▶Math7
Adds two numbers. Use it to build a value out of nested calls, like a base plus a scaling part.
Keeps a number between a low and a high bound (returns the bound if it is outside the range).
Divides the first number by the second (returns 0 if dividing by zero).
Returns the larger of two numbers.
Returns the smaller of two numbers. Use it to cap a value, e.g. spend at most a limit of a counter.
Multiplies two numbers. Use it to scale an amount, like souls times a damage-per-soul value.
Subtracts the second number from the first.
▶Messaging3
Broadcasts a message to every player on the server.
Turns & color codes in a piece of text into real Minecraft colors.
Sends a chat message to one player, supporting & color codes and hex (&#rrggbb).
▶Movement12
Builds a direction/velocity vector from x, y, z math expressions.
Launches the player forward in the direction they are looking, with a horizontal power and an upward lift. Use it for a dash, leap or blink-step.
Stops a player from flying.
Lets a player fly.
Freezes an entity in place for the given duration (in ticks) by keeping it at its current spot.
Turns an entity to face the given yaw and pitch without moving it.
Pushes an entity (player, victim, or any mob) using x, y, z math expressions as the velocity direction and strength.
Pushes an entity (player, victim, or any mob) using a ready-made velocity vector.
Teleports an entity to the given x, y, z in its current world (keeps its facing direction).
Dashes a living entity forward in the direction it is looking, up to the given range (skipBlocks=true lets it pass through walls).
Teleports one entity directly to another entity's position.
Teleports an entity to a specific location.
▶Particle animations2
Creates an empty particle animation. Set its orientation (world/yaw/look), anchor (feet/body/eyes/above_head), speed and period, then add layers made with core.createAnimationLayer(). Play it with particles.playAnimation.
Creates one particle animation layer. Set its shape, particle or color1/color2, colorMode, radius, count, spin and more, then add it with animation.getLayers().add(layer).
▶Particles2
Spawns a particle effect at the x, y, z position every tick for the given number of ticks.
Spawns a particle effect at a location every tick for the given number of ticks.
▶Players13
Makes a player run a command as if they typed it in chat.
Finds an online player by their name, or returns nothing if they are offline.
Finds an online player by their UUID.
Finds an online player by their UUID written as text.
Returns the value of one of a player's custom stats by name.
Hides a player so no other online player can see them.
Hides a player from everyone, then makes them visible again after the given number of ticks.
True when the player's health is below the given fraction of their maximum (0.3 = below 30%). Great for a low-health proc with no code.
True when the player is barely moving (standing still). Use it to gate an effect that only runs while still, with no velocity math.
Returns the list of all players currently online on the server.
Changes a player's game mode (survival, creative, adventure, spectator).
Makes a hidden player visible to everyone again.
Makes a player visible to everyone, then hides them again after the given number of ticks.
▶Projectiles5
Builds a movement equation (using 't' for time in ticks) that shapes a custom projectile path. Axes are relative to the shooter's facing: X = forward (the way they look), Y = up, Z = left. A normal forward-flying projectile puts the motion on X, e.g. createEquationVector("t * 0.4", "0", "0"); use Y for arc and Z to curve sideways.
Builds an item projectile body from a material name, handy for flinging a block or any item as an ITEM projectile. Same chainable styling as the ItemStack version (small/visible/marker/rotation/spin/trail).
Builds an item projectile body: an invisible armor stand wearing the given item on its head. Pass it as the val of shootProjectile with type ITEM. Chain small(true) for a small stand, visible(true) to show the stand, marker(false) to give it a hitbox, rotation(x, y, z) to tilt the item in degrees, spin(degreesPerTick) to make it spin while it flies, trail(particleDisplay) to leave a particle trail, and trailEvery(ticks) to thin that trail out.
Makes a living entity shoot an arrow in the direction it is looking.
Fires a custom ItemsCore projectile from a player. The type is one of PARTICLE or ITEM, val is the body to fly (a ParticleDisplay, or a projectileItem(...) for ITEM), timeAliveTicks is how long it lives, splashHit keeps it going through entities, and the last argument is the flight path from createEquationVector.
▶Sound2
Looks up a Minecraft sound by its name.
Plays a sound to a player at a location with the given volume and pitch.
▶Utility2
Returns the current system time in milliseconds, handy for cooldowns.
Replaces PlaceholderAPI placeholders in text with their real values for a player.
▶Variables5
Reads a global (server-wide) saved variable by name, creating it empty if it does not exist.
Reads a saved variable stored on a player, creating it empty if missing (use temp=true for variables cleared on logout).
Reads a player's saved variable, or sets and returns a default value if it does not exist yet.
Saves a global (server-wide) variable by name so it persists and can be read later.
Saves a variable on a player (use temp=true for variables cleared when they log out).
▶World8
Returns a new location shifted by the given x, y, z amounts.
Makes a copy of a location so you can change it without affecting the original.
Creates an explosion of the given power at the x, y, z position in a world.
Creates an explosion of the given power at a location.
Builds a location object from a world and x, y, z coordinates.
Gets a world by its name, or nothing if no world has that name.
Strikes lightning at the given x, y, z position in a world.
Strikes lightning at a location.
particlesParticle shapes and displays (circles, helixes, custom particles).
▶Particle animations4
Plays a particle animation on a player for a number of ticks (20 = 1 second). The same orientation/anchor/shape-layer engine the runes use. Build the animation with core.createAnimation() and core.createAnimationLayer().
Plays a saved animation by name on a player for a number of ticks (20 = 1 second). This is the easy no-code way: build the animation in /ic animations, then just name it here. No core.createAnimation needed.
Plays a saved animation by name at a fixed world location for a number of ticks (20 = 1 second). The no-code way for block or hit-point effects: build it in /ic animations, then reference the name here.
Plays a particle animation at a fixed world location for a number of ticks (20 = 1 second). Use this for animations not tied to a player, such as on a block or a projectile hit point.
▶Particle Shapes48
Draws a static atom with orbit rings and a nucleus of particles at the display's location.
Animates an atom with spinning orbit rings of particles at the display's location for a number of ticks.
Draws a black sun shape made of shrinking circles at the display's location.
Animates a swirling blackhole of particles at the display's location for a number of ticks (mode changes the shape).
Draws a cage of vertical particle bars between two corner locations, useful for trapping effects.
Animates a chaotic double-pendulum swing of particles at the display's location for a number of ticks.
Draws a circle (or oval) of particles at the display's location.
Draws a moving beam of pulsing circles that travels forward in the display's direction for a number of ticks.
Continuously spawns a raincloud effect using the two given particle displays.
Draws a cone of particles standing up from the display's location.
Draws a crescent moon shape of particles at the display's location.
Draws a hollow cube (all six faces filled) of particles between two corner locations.
Draws a cylinder of particles standing up from the display's location.
Draws a diamond (rotated square) shape of particles standing up at the display's location.
Draws a DNA double-helix of particles rising from the display's location, with bond lines between the strands.
Animates a growing DNA strand with colored nucleotide bonds rising from the display's location.
Draws a straight line of particles out from a living entity's eyes in the direction it is looking.
Draws an ellipse (oval) arc of particles between the start and end angles at the display's location.
Animates an expanding explosion shockwave of particles at the display's location.
Draws an eye shape of particles at the display's location.
Draws a solid filled disc of particles at the display's location.
Draws a fully solid cube of particles between two corner locations.
Draws a flower-petal pattern, running the given task at each petal point around the display's location.
Draws a heart shape of particles at the display's location.
Animates a spiral helix of particles rising in the display's direction (fadeUp and fadeDown taper the ends).
Draws nested wireframe cubes connected like a 4D hypercube between two corner locations.
Draws an illuminati triangle-with-an-eye symbol of particles at the display's location.
Draws an infinity (figure-eight) symbol of particles at the display's location.
Draws a flat Julia-set fractal pattern of particles at the display's location.
Draws a jagged branching lightning bolt of particles from a start point in a direction.
Draws a straight line of particles between two locations.
Continuously draws growing magic circles that travel forward in the display's direction.
Draws a flat Mandelbrot fractal pattern of particles at the display's location.
Draws a pentagram star inside a circle at the display's location.
Draws a polygon outline of particles with the given number of points at the display's location (use connection to make stars).
Draws a multi-colored rainbow arc of particles at the display's location.
Draws a filled flat rectangle of particles between two corner locations.
Draws a ring (donut/torus) shape of particles at the display's location.
Draws a sword-slash arc of particles at the display's location (useWideSide makes the wider half of the swing).
Draws an animated sword slash that travels forward in the display's direction over a distance.
Draws a hollow sphere of particles at the display's location.
Draws a spiky ball of particles (a sphere with random spikes sticking out) at the display's location.
Animates scattering lines of particles from a start point toward a randomly spread end area.
Animates a spiky star burst of particles at the display's location.
Draws only the edges (wireframe) of a cube of particles between two corner locations.
Animates a rotating 4D tesseract of particles at the display's location for a number of ticks.
Animates a spinning vortex of spreading particles at the display's location for a number of ticks.
Draws a wavy rippling surface of particles at the display's location.
▶Particles8
Creates a colored dust particle display from red, green, blue (0-255) and a size.
Builds a fully customized particle definition (count, size, color, block/item data and more) to turn into a display.
Turns a custom particle definition into a particle display you can use in shapes.
Creates a particle display from a particle name, used as the look for particle shapes.
Returns a random whole number between the two values (both ends included).
Returns a random decimal number between the two values.
Sets the direction a particle display points in.
Sets the location where a particle display will be drawn.
valuesConstant and value helpers usable as method arguments.
▶Variables2
Turns a piece of text into its real type (number, true/false, or text) automatically.
Reads a script variable that is currently available by its name.
apiItemsCore API accessors usable from actions.
▶Economy1
Checks whether the Vault economy plugin is installed and available.
▶Items4
Finds one of your custom items by its name, or nothing if no item has that name.
Returns the custom name of an item stack.
Gives a player one of your custom items.
Returns the custom item a player is holding, or nothing if it is not an ItemsCore item.
▶Players1
Returns the helper used to ask a player for typed chat input.
▶Stats3
Returns a player's live total for a stat: its base value plus the stat from every held, worn, off-hand and talisman item (reforges included). Use it to calculate damage or feed another plugin.
Returns all of a player's live total stats as a map of stat name to value.
Forces an immediate recalculation of a player's live total stats. Call it right before reading a stat if you need a value that reflects a change made this same tick.
▶Uncategorized1
No description yet.