See Discord for full update notes
Adds new "unstackable" option for items
Fixed bug with message prefix not formatting color codes
Bug fixes with consumable items
Minor bug fixes with relativeProbability
This version fixes a few minor bugs with certain placeholders, and also prints better error messages for the GUI
This version fixes a bug that sometimes caused custom blocks to lose their location when moved by a piston
Support for 1.19. Read full update log on Discord server
Use {placeholders} for probability and relativeProbability
Bug fixes with item creation GUI
This version fixes some bugs with the API for breaking blocks
Minor improvements with startup messages
This version includes some minor bug fixes with the CustomItems API
This version adds support for MC 1.18.2, and requires CustomUniverse version 1.0.6
This version adds a new API action for block breaking for developers
In old versions, players would not be given items with /cui give if their inventory was full. Now, if the player's inventory is full, the item will be dropped on the ground next to them instead.
This version makes some bug fixes with block EXP drops, and is recommended for all users. Specifically, it makes it so EXP is no longer dropped when a custom block is mined using silk touch
Newly formatted startup messages
Minor bug fixes and improvements
This version fixes a minor bug with NBT (specifically for item attributes) on MC 1.18
This version makes some bug fixes with the automatic resource pack generator, including minor issues where sometimes errors were shown in console, or issues that happened to certain users with the CustomItems jar file had a space in the name
This version makes CustomItems give a more meaningful error message when you're missing the required 'item' section in an item yml file
This version makes some bug fixes with NBT for 1.18
This version makes custom block storage support the increased world hight in MC 1.18.
Everyone will likely see a bunch of messages that say "Upgrading the block storage file ... from version 1.1 to 1.2" as players explore existing chunks and the files are automatically updated to the new block storage format.
This version is built with 1.18
This version fixes a bug that sometimes caused error messages to show up in the console when using /cui create
This version fixes a bug with the playerRemoveItems action that could sometimes cause too many items to be removed
This version makes a few bug fixes and improvements with teleport actions, and also makes the error messages easier to understand
This version makes it so you can update only a single line of lore using the setItemLore action
Code (YAML):
action
: setItemLore
lore
:
"This is the new first line"
line
: 1
# the first lore line is 1
This version makes some minor bug fixes with the setItemLore action
This version brings some minor bug fixes and improvements with the resource pack generator
This version fixes some minor bugs with the item creation GUI that could sometimes cause "null" to show up below the item. This was annoying, but doesn't affect the performance of CustomItems at all
This version makes some minor bug fixes for potion effects in the item creation GUI for 1.8
This version adds a new "deleteGlobal" action, and also changes the name of CustomTriggers to CustomEvents
This version adds a new "deleteGlobal" action
This version makes a few minor bug fixes with blocks, and also makes some improvements for CustomEvents. You'll need to use CustomUniverse 1.0.3 to take advantage of the improvements with CustomEvents
This version brings a few improvements for people using CustomEvents
Minor bug fixes with adding potion effects from the GUI on 1.8
This version fixes a bug that could sometimes cause an error to be displayed when the server started
This version fixes some minor bugs that could sometimes cause certain vanilla items to not be craftable
You can now use the CustomTriggers "loop" trigger inside of CustomItems block files. Keep in mind that this will loop through all loaded blocks, so be extra careful to take server performance into account here.
This will only run on blocks that have been loaded into memory since the server was started, and won't run on blocks that haven't been loaded. For example, let's say you have two custom blocks placed in the world. One block at position 0, 0, 0, and one at position 20000, 100, 70000. You restart the server, and initially, none of the loops will run (because no blocks have been loaded, cause there's no players to load them). Let's now say a player joins at the location 3, 120, 2. They're close enough to 0, 0, 0 for Minecraft to load those chunks, so the loop will start running on that block only.
Then, if a new player joins and teleports to 20000, 100, 70000, the block there will also load, so now the loop will run on both of the custom blocks.
If you're trying to do stuff with time, it is recommended that you use the {time} placeholder to avoid situations where blocks might not be loaded into memory when you want them to.
Code (Text):
# Inside myCustomBlock.yml
handlers:
loop:
interval: 600 # run this action every 600 ticks = 30 seconds
actions:
-
action: console broadcastMessage # You should use CustomTriggers notation in your actions here
message: "Ran a loop on a block at {block.x}, {block.y}, {block.z}"
-
action: setGlobal
name: "block_{block.x}_{block.y}_{block.z}_last_loaded_time"
value: "{time}"
[code]
This version of CustomItems requires CustomUniverse to run:
https://www.spigotmc.org/resources/customuniverse.94544/
CustomUniverse is a bridge between CustomItems and other server customization plugins like CustomTriggers.
Updating will migrate all of your global variables to CustomUniverse. This can't be un-done!
Minor bug fixes with setDrops on MC 1.8
This version adds a new placeholder {time}, which is replaced with the current unix timestamp in seconds. This can be really useful to see how much time has passed between two things happening
This version brings a few minor bug fixes to MC 1.8 and 1.9
This version adds a few new API actions for accessing globals
This version makes a few minor bug fixes with the new item editing GUI
Minor bug fixes with custom block textures
Minor bug fixes with playerSetFlying
You can now enable/disable flight with the "setPlayerFlying" action
Code (YAML):
action
: setPlayerFlying
flying
: true
Set the "fallDamage" parameter to false to make it so the player won't take fall damage when they stop flying (only the first time they take fall damage will be blocked — any fall damage after that will still be allowed)
Code (YAML):
action
: setPlayerFlying
flying
: false
fallDamage
: false
This version fixes some minor bugs with /cui list if the item specified is invalid
This version makes it so you can use placeholders in item amounts
Code (YAML):
action
: givePlayerItems
items:
"diamond"
: 1
"gold_ingot"
:
"{player.level}"
"{global.third_item_to_give}"
:
"{variable.third_item_amount_to_give + 1}"
This version brings some minor NBT improvements for 1.17
More minor NBT improvements with 1.17
This version makes some minor bug fixes with NBT for 1.17
Minor improvements for 1.17
This version was built with 1.17
This version fixes a few minor bugs with certain recipes on 1.12 servers, and also fixes a few other minor bugs with certain recipes on 1.8 servers
This version fixes a minor bug that could sometimes cause crashes when the playerRemoveItem action was used to remove the same item that the player used in an interaction event
You can now use placeholders and item maps in more every action that uses items, like playerRemoveItem or targetGiveItem
Code (YAML):
action
: playerRemoveItem
item:
"magicStick"
: 7
# remove 7 magic sticks
"minecraft:DIAMOND"
: 1
# remove 1 diamond
"minecraft:DIRT"
: -1
# remove all dirt
This version also fixes some minor bugs with these actions when generated using the GUI, and fixes some bugs with 1.12
Minor bug fixes for 1.12 recipes
Minor improvements with number handling in the GUI
This version fixes a bug that would sometimes cause triggers to not be deleted when deleting them from the in-game GUI
This version makes a few minor improvements to the GUI trigger editor, including bug fixes for potion effects and particle effects
You can now edit particle actions from the trigger-editing GUI!
This version makes Speed Improvements for all recipes
This version brings some major speed improvements to crafting for servers that have a lot (hundreds) of items
You can now easily edit triggers from the in-game item editing GUI, including actions, conditions, and more! To try it out, just type /cui create or /cui edit
This version fixes a bug that would sometimes cause the console to be spammed with meaningless error messages on older versions of MC
This version makes some minor bug fixes with the destroyItemUsed action, which would sometimes cause the server to crash if used with the a "click" handler
This version fixes a few minor issues with recipe speeds
This version makes sure that the resource pack generator sets the correct pack_format for packs generated with /cui rp gen
This version makes it so you can use PlaceholderAPI placeholders anywhere you can use CustomItem's {placeholders}
This version makes even more improvements with placeholders
This version makes speed improvements with placeholders
This version makes some big speed improvements with particle actions
This version brings some performance improvements for actions that don't have any conditions attached to them
This version fixes an error that could sometimes pop up in the console when setting the blast strength of certain types of armor
This version makes a few minor bug fixes with actions that change the item in the inInventory handler (specifically destroyItemUsed)
This version makes some minor bug fixes with destroyItemUsed action
This version makes mostly behind-the-scenes improvements (mostly speed) to get CustomItems ready for some changes to come
This version adds a new "shearEntity" trigger that happens whenever a player shears an entity (like a sheep or mooshroom) with the item in their hand!
This version fixes a bug that sometimes caused CustomItems to say "ifStatementCombine" wasn't a valid condition
This version fixes some bugs with chat colors for users not using Spigot / Bungee
This version fixes a bug that sometimes caused the /cui list command to show the wrong page count
This version fixes some bugs that could interfere with block drops and other block/item characteristics when using the /cui reload command, sometimes causing drops to be doubled.
This version adds a new action for playing sounds to a target player: targetPlaySound
This version adds four new food/saturation actions for targets:
- targetAddFood
- targetSetFood
- targetAddSaturation
- targetSetSaturation
This version makes some minor bug fixes with the {entity.type.raw} placeholder for MC 1.12 & MC 1.13 that could sometimes cause errors to be printed to the console
This version makes it so the /cui edit command is properly case-insensitive (previously, it could cause two of the same item to be created if the incorrect CaSE For tHE IteM iD was used when using the /cui edit command)
Fixed a bug that could sometimes cause the server to become unstable and crash for certain users using the destroyItemUsed action
This version makes target.type.raw the same as the Vanilla Minecraft ID of the entity. For a magma cube, {target.type} would give "Magma Cube", whereas {target.type.raw} would give "magma_cube"
This version adds a new "target.type.raw" placeholder, which will return the raw target entity type instead of formatting it. For example, target.type.raw might return "MAGMA_CUBE" while target.type would return "Magma Cube"
This version makes some improvements with projectile hit detection for MC 1.8
This version makes it so you can use "nothing" or "null" in armor conditions to make sure that the player or target doesn't have anything in that armor slot. For example:
Code (Text):
ifPlayerHead: "nothing"
action: sendMessage
message: "You don't have anything on your head"
This version adds three new conditions for block locations: "ifBlockX", "ifBlockY", and "ifBlockZ"
This version makes some bug fixes with armor conditions like "ifPlayerHead"
This version fixes a bug that caused "throughBlockType" to not be recognized as a condition (only "throughBlock" and "throughType", both aliases, were recognized before)
This version includes three new API methods for getting and setting a CustomItem's durability:
Code (Java):
public
static
Integer getCustomItemDamage
(ItemStack stack
)
public
static
Integer getCustomItemMaxDamage
(ItemStack stack
)
public
static ItemStack setCustomItemDamage
(ItemStack stack,
int amount
)
Check the JavaDocs on the API methods for more info
This version brings a new setTextureId action — this is super useful for changing the texture of an item when something happens. You can even use {placeholders}!
Code (Text):
action: setTextureID
id: 7
This version stops a meaningless error message being logged when trying to create a recipe for a Custom Item in the GUI, without the item type being set
This version fixes a strange bug that would occur if "shootable" was set to true on a bow. You weren't supposed to be able to set "shootable" to true on a bow, so CustomItems flipped out.
This version fixes some minor bugs with actions that damage native MC items, as well as certain block triggers interacting with the player's inventory (for example, the "damageItemUsed" action in the "blockBreak" handler)
This version makes some bug fixes with ifPlayerHasItem and ifTargetHasItem
This version makes some minor bug fixes with ifSneaking, ifFlying, ifSwimming, and ifCrawling
This version brings some minor bug fixes with projectile handlers for throwable items like eggs, snowballs, and ender pearls
This version adds a new format for doing conditions, and also makes conditions way more powerful:
Code (YAML):
if:
playerHasPermission
:
"myPermission"
targetHasPermission
:
"myPermission"
if:
playerHasPermission
:
"anotherPermission"
targetHasPermission
:
"anotherPermission"
combine
: AND
combine
: OR
action
: sendMessage
message
:
"Either the you or the target has the permission 'cui.action.myPermission', or, you both have the permission 'cui.action.anotherPermission'. Conditions are fun!"
Of course, you can still use the old version of conditions, if you'd like.
This version adds a new "targetSpawnParticle" action, which is formatted exactly like the "playerSpawnParticle" action!
This version makes some minor improvements to the matching of Minecraft materials by their name
This version makes a few minor improvements with the ifVariable condition, as well as some improvements for the default block drops
This version fixes a few minor bugs with the startup messages
This version makes some bug fixes with global placeholders like {global.myGlobalName}
This version adds global variables to CustomItems, so you can now do things like store the total number of times all of your players have slain creepers with the "creeperSlayingSword", or even make quest books! An example of a quest book will be uploaded on the wiki soon.
To use global variables, just use the normal actions/handlers/placeholders for variables, but replace "variable" with "global" — it's that simple. You can also store per-player global variables by including {player.uuid} in the name of the global.
Check out the wiki page for more info:
https://github.com/jojodmo/CustomItems/wiki/Variables#globals
This version adds a new "slayMob" handler, that is triggered whenever a player slays a mob using a given item
Improvements for older versions of MySQL
You can now use operators in "ifPlayerHasItem" and "ifTargetHasItem".
Code (Text):
ifPlayerHasItem:
"minecraft:DIAMOND": ">= 3"
"minecraft:GOLD_INGOT": "< 2"
"myCustomItem": 9, # interpreted as ">= 9"
"anotherCustomItem": "between 3 and 4"
action: sendMessage
message: "You have at least 3 diamonds, less than 2 gold ingots, at least 9 myCustomItem, and between 3 and 4 anotherCustomItem"
This version allows damageable CustomItems to be repaired in crafting tables (just make sure that the item is both "damageable" and "repairable"), and also makes some minor improvements with the crafting system
You can now set the amount of items dropped using the drop command: /cui drop <item> <world> <x> <y> <z> [amount] [naturally]
This version allows you to use data values for items in recipes (for Minecraft 1.8, or any other version below Minecraft 1.13). For example:
Code (Text):
shaped: false
items:
"INK_SACK:4": 3 # 3 lapis lazuli
This version makes some bug fixes for handlers that involve entities, like hitMob, projectileHitMob, and hitPlayer
This version makes McMMO's treefeller ability compatible with the CustomItems plugin. More options for treefeller and items created using CustomItems will be coming soon!
This version adds support for PlaceholderAPI anywhere that CustomItems {placeholders} are accepted!
Support for ItemBridge 2.0. See the full update log on Discord.
This version brings some crafting improvements for shapeless recipes, especially on MC 1.8
Backed by popular request, this version adds a new "playerSpawnParticle" action!
Check out the wiki for info on how to configure this in your item yml file:
https://github.com/jojodmo/CustomItems/wiki/Handlers-and-Actions#playerSpawnParticle
Or, if you want, try adding this action to a new item:
Code (Text):
handlers:
rightClick:
actions:
-
action: playerSpawnParticle
particles:
- name: EXPLOSION_HUGE
- name: SMOKE_NORMAL
amount: 20
xSpread: 4
ySpread: 4
zSpread: 4
- name: REDSTONE
amount: 30
xSpread: 10
ySpread: 0
zSpread: 10
size: 4
color: 0077ff
This version brings some very minor improvements for SpigotMC
This version brings a few minor improvements with anvils and anvilRepairItems
This version brings some minor bug fixes with the runInterval option when dealing with multiple players, and also makes some bug fixes with variable placeholders like {variable.myVariable}
This version brings anvil support for repairing custom items (if you want to disable this, set "repairable": false in your item yml file).
This version also fixes a bug that sometimes caused items gotten with /cui give and /cui get to not show the durability bar correctly until they were used.
This version brings some minor bug fixes for the /cui repair command, which was sometimes causing it to not work, and also makes some improvements with smithing tables on Minecraft 1.16
This version fixes a few bugs with armor conditions like "ifPlayerHeadIs" and "ifPlayerWearing", and also fixes a few bugs when trying to use Skript with inventory-related handlers like "inInventory".
This version makes some improvements with item attributes for Minecraft 1.16.1, and also makes some minor bug fixes with the "playerRunCommand" action
This version makes a few bug fixes and improvements with {placeholders}, especially cooldown placeholders
This version makes fixes a bug introduced in version 3.2.3 that would sometimes cause items to lose their custom textures.
This version adds three new placeholders for cooldowns. {cooldown.elapsed}, {cooldown.remaining}, and {cooldown.total}, all measured in ticks
So, if you want to turn it into seconds, you could do something like {cooldown.remaining / 20} to go to seconds, and then {{cooldown.remaining / 20} round 0} to get rid of decimal points.
Check out the wiki for more info!
This version makes some minor compatibility improvements between CustomItems and some crafting-related plugins, and also makes some bug fixes with the "destroyItemUsed" action
This version makes some minor stability improvements with crafting, and also changes the behavior when CustomItems tries to store blocks in a world, but can't find the world.
This version makes some improvements to the way NBT is handled in item.yml files.
Along with fixing a few bugs, it also makes the /cui create command saves all item NBT into the item.yml file that's created.
This version also makes a few minor bug fixes with the /cui create command, including with a few options like "glow"
This version makes some minor bug fixes to bows and crossbows. Specifically, it fixes some bugs that would cause custom arrows to sometimes not work when shot from the off-hand
This version completely re-designs the crafting system of CustomItems, and brings a ton of bug fixes and speed improvements for crafting on all versions. It is recommended for all users.
This version brings even more improvements with crafting
This version brings some major improvements and bug fixes to crafting
This version makes some minor improvements for 1.16
This version officially supports Minecraft 1.16, although older versions should too
This version fixes a bug that sometimes caused a few users to get a long warning message in the console when starting up their server.
This version fixes some minor bugs with the playerRemoveItem and targetRemoveItem actions
This version brings some bug fixes when changing variables on items in the "pickup" handler
This version brings some bug fixes with actions that update items
This version makes some improvements with targeting actions, and adds a new "targetMaxDistance" option for actions, which sets the maximum distance that a targeted entity will be from the player (this is 4 by default, but can be a value up to 50).
This version makes some minor changes to the internals of how items are stored.
This version brings some speed improvements for block physics on custom blocks!
This version brings some bug fixes and improvements with block generation
This version brings some minor bug fixes with the automatic resource pack generator
This is a big update to CustomItems, which adds automatic resource pack generation for Minecraft versions 1.14 and up (older versions will be coming soon). This means that all you need to do is drop your texture images in a folder, and CustomItems will take care of making your resource pack for you!
After you add your textures to the CustomItems/textures folder (name them myCustomItemID.png), you can generate your resource pack with /cui rp gen
Check out the wiki page about Automatic Resource Pack Generation here:
https://github.com/jojodmo/CustomItems/wiki/Automatic-Resource-Pack-Generation
This version makes a few minor improvements & bug fixes with custom blocks
This version brings some minor bug fixes with the new /cui blockstorage verify command
This version adds a new /cui blockstorage verify command, which can be used to verify that your blockstorage database is not corrupted. It is recommended that you don't use this command unless you really know what you're doing.
This version adds a new "ifMemberOfRegion" condition, which can be used to check whether or not a player is a member of the world guard region they're in. Like this:
ifMemberOfRegion: true
It also makes a minor change to how other WorldGuard actions are handled — now, instead of always being checked at the player's current location, WorldGuard conditions are checked at the block that the player interacted with, if there is one, and the player's location if there isn't one.
This version brings some bug fixes and improvements with fallback block textures. Specifically, it fixed a bug that sometimes caused fallback block textures to not work for some users
This version adds support for shift-clicking in crafting, and also makes some bug fixes and speed improvements with all crafting mechanics!
This version brings pages to /cui list, so you can have multiple pages of items in a single category. It also makes some minor improvements when smelting custom recipes with a long cook time.
If you've had any issues with CustomItems, make sure to send me a PM or ask on the discord at
http://bit.ly/cui-discord. If you love CustomItems, take a second to review it! Your feedback really means a lot!
You can now use "none" or "nothing" as a Minecraft material for setting/checking block types!
This update makes some speed improvements with variables and minor security improvements
This version makes some improvements to help you find places where you made an error in handlers and actions!
You can now set and change custom variables on items using conditions and actions!
You can store either text, like "Hello, world!" in a variable, or a number!
This update adds four new actions: "setVariable", "deleteVariable", "addToVariable" and "subtractFromVariable"
Code (Text):
action: setVariable
variable: "myCustomVariable"
value: 64
It also adds new placeholders for variables! Just use {variable.variableName}
Code (Text):
action: sendMessage
messages:
- "The value of myCustomVariable is {variable.myCustomVariable}"
- "The value of myOtherVariable is {variable.myOtherVariable}"
- "If we add them together we get {{variable.myCustomVariable} + {variable.myOtherVariable}}"
It also adds a new condition, "ifVariables", that lets you check whether or not a variable meets certain conditions! You can even use placeholders here!
Code (Text):
action: sendMessage
ifVariables:
myCustomVariable: "> 10"
myOtherVariable: " = {variable.myCustomVariable}"
message: "This message will only send if myCustomVariable is > 10 and myOtherVariable is equal to myCustomVariable!"
Variables are unique to each item — one player's myCustomItem could have a variable set to 10, and another player's myCustomItem could be set to 5, so be careful when allowing players to stack items with variables on them!
More info will be added on the wiki soon:
https://github.com/jojodmo/CustomItems/wiki/Variables
This version adds some new actions and conditions for target EXP! It adds the actions "targetAddEXP", "targetRemoveEXP", and "targetSetEXP". It also adds a new "ifTargetEXP" condition and {target.exp} placeholder!
If the target isn't a player, the condition will be ignored and {target.exp} will be "null"
Check out the wiki for more info:
https://github.com/jojodmo/CustomItems/wiki/Handlers-and-Actions
Speed improvements for some of the updates added in 2.9
You can now combine multiple placeholders together, and run multiple operations on a single placeholder!
Before, you could only use one placeholder at a time, like {location.x + 5}
but now, you can nest placeholders and do things like {location.x + {location.y + {location.z}}}, or {{location.x / 2} round 0}
The wiki
https://github.com/jojodmo/CustomItems/wiki/Handlers-and-Actions#message-and-command-placeholders will be updated with more information about enhanced placeholders soon!
This version adds a new "force" option for the "placeBlock" action. Before, the placeBlock action would place the block regardless of a player's permission to build. However, now "placeBlock" will by default only place the block if the player could place the block themselves. This can be overrided by setting "force" to "true"
This version also makes some stability improvements to the "damageItemUsed" action
See the wiki for "placeBlock" here:
https://github.com/jojodmo/CustomItems/wiki/Handlers-and-Actions#placeBlock
This version makes some improvements to material matching for recipes
This version brings some improvements to material name matching, and also to to servers running MC 1.8
This version makes some minor improvements with handlers & actions, specifically actions that involved a non-player entity as a target, and cooldowns and delays!
This version now properly handles empty sections in handlers and actions (instead of sending a message, they're now just ignored)
This version brings some minor bug fixes for MC 1.15.1
This version makes some minor bug fixes with messages sent when crafting recipes
This version fixes an issue that caused BLUE_DYE to not be a recognized item
This version makes some minor bug fixes with material matching
This version adds a new "playerPlaySound" action!
Code (YAML):
handlers:
rightClick:
actions
:
-
action
: playerPlaySound
sound
: mySound
This version brings some bug fixes, and is recommended for all new users
This version adds a new "player.foodLevel" placeholder in actions!
Under-the-hood improvements, and MERRY CHRISTMAS!
Improvements and bug fixes
Under-the-hood improvements and bug fixes
Bug fixes [If you encountered issues in version 2.8 or 2.8.1, please PM me]
This version brings some bug fixes
This version brings under-the-hood improvements with recipes
This version brings under-the-hood updates for furnace recipes
This version adds custom smelting recipes!
Code (YAML):
recipes
:
-
type
:
"furnace"
ingredient
:
"myCustomIngredient"
# the CustomItem or Minecraft material to smelt this item
time
: 40
# cook time, in ticks (40 ticks = 2 seconds)
exp
: 2
# amount of EXP for smelting. 0 by default
This version brings some more under-the-hood improvements
This version brings under-the-hood and stability improvements
This version brings some more under-the-hood improvements
This version brings some minor improvements
This version adds a new "rightClickEntity" handler!
This version brings some minor improvements to the plugin!
This version brings some Bug fixes & Improvements
This version updates CustomItems for MC 1.15!
This version brings some minor improvements to Custom Items
This version brings some minor bug fixes
This version adds target.player.name as an alias for placeholder target.name, and player.name as an alias for the placeholder player
This version brings some more minor under-the-hood improvements!
This version makes "itemPickup" an alias for the "pickup" handler. The lack of this caused some confusion.
This version adds a new "player.health" placeholder which can be used in messages in triggers!
If the player's health has a normal scale then "you have {player.health} health" will be turned into "you have 20 health"!
This version makes "leftClickPlayer" an alias for the "hitPlayer" handler, so that there isn't confusion with the new "rightClickPlayer" handler
This version adds a new "rightClickPlayer" trigger!
More minor under-the-hood improvements
This version brings some minor under-the-hood improvements
This version adds a new "ifTargetFoodLevel" condition, formatted like the "ifPlayerFoodLevel" condition!
This version brings some improvements to recipe permissions
This version brings some minor bug fixes with damaging custom armor worn by players
This version makes some minor improvements to the stability of the /cui reload command. As a reminder, you really should restart your server when you're done editing your items — /cui reload really should only be used for testing things
This version makes some bug fixes that could have caused console spamming for a few users when enabling the plugin.
This version adds a new "ifTargetHealth" condition, formatted like the "ifPlayerHealth" condition
You can now use the new "ifFoodLevel" condition! Remember, this is measured in halves, so "10" will be half-full, and 20 will be completely full
ifFoodLevel: ">= 5"
This version brings some bug fixes with handlers. There was a minor bug that sometimes caused a few users to experience issues with certain handlers. This is fixed now — sorry to those effected!
You can now use the new "ifPlayerHealth" condition in handlers and actions! Just use it like this:
ifPlayerHealth: ">= 5" run only if the player's health is greater than or equal to 5 HALF-HEARTS
ifPlayerHealth: "< 18" run only if the player's health is less than 18 half hearts
This version adds new permissions! You can enable them by adding this in your inventories.yml file
Code (YAML):
# Whether or not item permissions should be enabled.
#
# if this is set to "true", players will need certain permissions to see certain categories or items
# customitems.list.category.myCategory | gives the player permission to view the "myCategory" category when rrunning /cui list
# customitems.list.category.* | gives the player permission to view all of the categories when running /cui list
# customitems.list.category.myCategory.items | gives the player permission to view ALL of the items in the myCategory
# customitems.list.item.myCustomItem | gives the player permission to see the myCustomItem item when running /cui list
# customitems.list.item.* | gives the player permission to see all of the items, or, if you're using categories, gives
# the player permission to view all of the items in the categories they're allowed to see.
#
# customitems.list.* | gives the player permission to see all items and categories
#
# It is recommended that if you set this to "true", you give all players who have the permission customitems.list.category.myCategory
# the permission customitems.list.category.myCategory.items as well, for all items. However, this isn't necessary -- it just might make things easier.
#
# Default: false
listPermissionsEnabled
: false
It also makes some minor bug fixes not fixed in version 2.5.19
This version adds new permissions! You can enable them by adding this in your inventories.yml file
Code (YAML):
# Whether or not item permissions should be enabled.
#
# if this is set to "true", players will need certain permissions to see certain categories or items
# customitems.list.category.myCategory | gives the player permission to view the "myCategory" category when rrunning /cui list
# customitems.list.category.* | gives the player permission to view all of the categories when running /cui list
# customitems.list.category.myCategory.items | gives the player permission to view ALL of the items in the myCategory
# customitems.list.item.myCustomItem | gives the player permission to see the myCustomItem item when running /cui list
# customitems.list.item.* | gives the player permission to see all of the items, or, if you're using categories, gives
# the player permission to view all of the items in the categories they're allowed to see.
#
# customitems.list.* | gives the player permission to see all items and categories
#
# It is recommended that if you set this to "true", you give all players who have the permission customitems.list.category.myCategory
# the permission customitems.list.category.myCategory.items as well, for all items. However, this isn't necessary -- it just might make things easier.
#
# Default: false
listPermissionsEnabled
: false
You can now use "targetAddEffect" as an alias for the "targetAddEffects" action! The lack of this made things a little confusing previously.
This version makes some bug fixes with custom block generation in Multiverse worlds!
This version makes some bug fixes with the "removeItem" action that could cause some instability
This version makes some bug fixes to the item creation GUI that sometimes caused things to be saved even though they wouldn't appear to be
You can now check if a target has the desired armor using the "ifTargetHeadIs", "ifTargetChestIs", "ifTargetLegsAre", and "ifTargetFeetAre"! Just set them either to a Minecraft material like "minecraft
IAMOND_HELMET" or a custom item id like "myCustomHelmet"!
This version brings even more performance improvements to MySQL!
This version makes some bug fixes with world guard
This version brings vast improvements to MySQL speed!
This version makes some bug fixes to block textures for MC 1.12 and below!
You can now use the new "printToConsole" action to debug your triggers and actions, as well as log when players do things with items! Just set "action": "printToConsole", and "messages" to a list of the messages you want to print to the console!
This version makes some bug fixes with the "exit" command not working correctly in the item creation GUI
This version brings some bug fixes with lore in the item creation GUI
This version makes some stability fixes for MC 1.12 and below, and is recommended for any server running a Minecraft version 1.12 or below.
It also makes some minor bug fixes with changing the color of leather armor in the item creation GUI
This version brings some bug fixes with armor that could sometimes cause armor to be duplicated under certain situations. It is recommended for all users.
This version brings some bug fixes that sometimes caused actions to not run
The "list" command will now list custom items when run from the console!
You can now set the color of armor in the create item GUI!
You can now set a block at a position using the /cui setblock command!
For example, to set the block at x: 2, y: 64, z: -4 in the world "world" to "myCustomBlock", just use
/cui setblock myCustomBlock world 2 64 -4
The permission for the command is customitems.setblock
This version makes some minor bug fixes with block storage
Leather armor color is now saved when using the item creation GUI!
Minor improvements to block storage migration
You will now only be asked to confirm exiting if you make changes to a recipe
This version brings some bug fixes with the "texture ID" button in the item creation GUI, and also makes some stability improvements to the GUI.
Minor bug fixes with NBT in the create item GUI
You can now set the texture ID of an item in the item creation GUI!
This version brings some minor bug fixes
This version brings some bug fixes with creating crafting recipes using the in-game GUI
This version makes some minor bug fixes with creating shaped recipes using the /cui create command
This version makes some minor bug fixes with creating shaped recipes using the /cui create command
This version makes some bug fixes with /cui list
This version makes some bug fixes with /cui list
This version fixes some bugs with the item creation GUI on paper spigot
This version brings some improvements to the recipe creator GUI — you can now see what the recipes are at a glance in the recipe list rather than needing to click each recipe and go back until you find the one you want!
This version brings some bug fixes with the items in the item creation GUI
This version fixes some bugs with MySQL defaulting to SQLite
This version now brings some improvements telling you about the status of connecting to MySQL while your server is starting up!
You can now design and edit recipes using the item creation GUI, /cui create!
You can now set the order of the categories in /cui list! Just add the following to your inventories.yml file:
Code (YAML):
# The order you want your categories to show up in the category inventory.
# Anything that isn't included here will be put at the end of the inventory,
# in an undefined order.
categoryOrder
:
-
"myCategory"
-
"miscellaneous"
This version brings improvements to MySQL Storage!
You can now sort items in the Custom Item list! Just set "itemOrder" under "categories" in your inventories.yml file:
Code (YAML):
# If you want to order the items in the category's item list view, you can
# set itemOrder. Items will be added in the order that they appear in itemOrder.
# Keep in mind that you STILL NEED TO REGISTER THE ITEM INTO THE CATEGORY IN THE
# ITEM'S YML FILE. Any items that aren't in the list but are in the category will
# be added to the inventory after the ordered items.
categories:
miscellaneous:
itemName
:
"&dMiscellaneous"
item
:
"minecraft:DIAMOND_PICKAXE"
itemOrder
:
-
"myFirstCustomItem"
-
"mySecondCustomItem"
-
"myThirdCustomItem"
This version brings some minor improvements to GUI item creation, and also makes some minor bug fixes!
This version brings some improvements to armor effects, and fixes a bug that caused effects like night vision to flash constantly.
This version brings some bug fixes with Drupi!
This version makes bug fixes with armor effects
You can now add effects to armor! To do so, just set "effects" under the "armor" to the effects you want, formatted like it is in handlers:
Code (YAML):
armor
:
effects
:
-
potion
:
"GLOWING"
-
potion
:
"INCREASE_DAMAGE"
strength
: 2
particles
: false
showIcon
: true
This version brings a Czech translation to the plugin, thanks to
uruhara98! It also makes some minor bug fixes
Instead of always falling back to YAML storage when there's an error, MySQL now falls back to SQLite when there is an error, and SQLite then falls back to YAML if there's an error.
This version brings SQLite support for block storage, and makes it the new default storage method!
If you were previously using YAML for storage, your yml file will still work, but, you should consider migrating to SQLite, as it is much faster than yml.
To migrate from yaml to SQLite, add the following to your config.yml:
Code (YAML):
# Information about the SQLite database for storing blocks
# This is only used when blockStorageFormat above is set to "sqlite"
# You don't need too change any of these values, if you don't want to
blockStorageSQLite:
database
: CustomItems
# You can change this if you want
table
: CustomItemBlocks
# You can change this if you want
and change blockStorageFormat to "sqlite". Then, in console type "cui blockstorage migrate yaml sqlite" to migrate from YAML to sqlite!
This version brings a few improvements and bug fixes to block textures!
You can now use a new attribute format to set the attributes on custom items, making it much easier! Just set the slot as a key under "attributes", and then under that slot key, add each attribute you want to add to for that slot and a number. For example:
Code (YAML):
item :
attributes :
head :
armor
: 2
speed
: 2
maxHealth
: 5
mainHand :
speed
: 5
armor
: 0.1
This version brings some minor bug fixes with item info GUIs
You can now use the new "round" operator for placeholders, like this {<placeholder> round <number>} for example, {location.x round 2}:
{location.x round 0} will round location.x to 0 decimal points (so, 17.753 will become 18)
{location.y round 1} will round location.x to 1 decimal point (so, 17.753 will become 17.8)
{location.y round 2} will become 17.75, etc.
This version brings some bug fixes with item inventories, which could sometimes cause some players to get errors when getting info about items that don't have recipes
More bug fixes with crafting — recommended for all users
This version brings a lot of bug fixes and improvements to the crafting system, and is recommended for all users of the plugin
This version fixes some minor bugs with setting the lore of items in the item creation GUI, as well as some other bugs in the item creation GUI
This version brings some improvements to Custom Item NBT tags and makes some bug fixes. Namely, custom items will now have NBT tags that record what version of the plugin they were created using, as well as what version of Minecraft they used!
This version brings drupi support! To use drupi with custom items, just use the action "runDrupi", and set "actionID"
Code (YAML):
action
: runDrupi
actionIDs
:
-
"drupiAction1"
-
"drupiAction2"
You can then listen for "onCustomItemsHandle", and check if event's actionID, event.getActionID, is equal to the action ids you provided in your item yml file — almost exactly like Skript integration!
This version makes some improvements to GUI item creation making it easier to see what can be further configured in the item yml file.
Also, thank you so much for 100 downloads! It means a lot!
This version brings some minor bug fixes with furnaces using Custom Items!
Now, when you set the base item in the GUI item creator, the custom item’s display name and lore will automatically be set!
You can now set an item’s NBT from the creation GUI! Whenever you set the item in the GUI to something that has custom NBT, it will automatically be set under the “item.nbt” key in the item yml file!
As a side note, I have very limited internet access right now — just enough to upload occasional updates — and likely won’t be able to respond to any PMs for about a week. I’ll respond to them as soon as I can, though!
You can now run actions if the "runInterval" isn't correct for your action:
Code (YAML):
runInterval
: 10
notRunIntervalActions
:
-
action
: sendMessage
message
:
"This will run every time except for every 10th time"
action
: sendMessage
message
:
"This will run every 10 times"
This version brings some improvements to block storage to make checking whether or not a block is custom much, much, (much) faster. Before, the plugin would check every block to see whether or not it was custom. However, now it will only check possible custom block materials
Introducing GUI item creation! You can now use a simple GUI to create items! Just use the /cui create command!
This version makes even more improvements to MySQL storage! Big improvements are coming soon to block storage!
This version brings EVEN more improvements to MySQL storage!
This version brings some major performance improvements to MySQL block storage!
This version brings some more improvements to MySQL block storage (with more to come!), and also lays the groundwork for SQLite support to be added in the future
This version brings some big improvements in migrating from YAML to MySQL!
This version brings some improvements to the /cui blockstorage migrate command!
You can now alter an item's base NBT tags!
Code (YAML):
item:
nbt:
myCustomTag1
:
"Value 1"
myCustomTag2
:
"Value 2"
myCustomMap:
mapTag1
:
"Map Value 1"
mapTag2
:
"Map Value 2"
myCustomList
:
-
"List Value 1"
-
"List Value 2"
The "blockStep" action will always be a little resource intensive, as it has to run every time a player changes blocks. However, this update makes some performance and memory improvements for that!
This version makes some minor improvements with the pluginStorage.yml file!
This version brings some improvements to the unbreaking enchantment algorithm on MC 1.13, making unbreaking enchantments work almost exactly like they do for non-custom items!
This version brings support for the unbreaking enchantment on custom textured items on servers running MC 1.13 and below!
You can now set an item's data value for a Custom Items! Just set "dataValue" under "item"
Code (YAML):
item:
material
:
"minecraft:WOOL"
dataValue
: 14
This version also adds some improvements to ore generation when using the YML block storage format!
This version brings some minor bug fixes with crafting recipes
This version brings some minor bug fixes with "armor" conditions
This version brings some bug fixes and improvements with custom block generation! You can now set the blocks that should be replaced in the "ore" method (in the past, ore would only generate in stone).
Code (YAML):
block:
generation
:
-
method
: ore
# Generate ore in both stone and netherrack
blockTypes
:
-
"stone"
-
"netherrack"
worlds
:
-
"world"
-
"world_nether"
continueChance
: 0.4
generationChance
: 1.0
amountPerChunk
: 5
This version also fixes some minor bugs with custom block generation
You can now use custom blocks with Skript! Just use the condition
if the block is a Custom Item with the id "myCustomBlock"
You can now check if a player is wearing armor using the "ifPlayerHeadIs"
", "ifPlayerChestIs", "ifPlayerLegsAre", and "ifPlayerFeetAre":
Code (Text):
ifPlayerHeadIs:
- "minecraft:DIAMOND_HELMET"
- "minecraft:GOLD_HELMET"
ifPlayerChestIs: "minecraft:IRON_CHESTPLATE"
# Set one of these to "nothing" to require the player doesn't wear armor in this slot
ifPlayerLegsAre: "nothing"
action: sendMessage
messages:
- "You are wearing either a diamond or gold helmet"
- "AND you are wearing an iron chestplate"
- "AND you are wearing nothing on your legs"
- "you could be wearing anything, or nothing, on your feet"
You can now repair an item when a user does something with it using the "repairItem" action!
Code (YAML):
action
: repairItem
amount
: 1
You can now check if a player is wearing a full set of your custom armor using the "ifWearingFullSet" condition!
Code (YAML):
ifWearingFullSet
:
-
"myArmorCategory"
-
"myOtherArmorCategory"
action
: sendMessage
message
:
"You're wearing a full set of either myArmorCategory or myOtherArmorCategory armor"
This version brings some minor bug fixes!
There was a minor bug that sometimes caused textured blocks to not be able to be placed if the item's material was not set — that's gone now!
You can now add armor categories to your items! This enables you to do things like give players potion effects when they're wearing a full set of your custom armor!
Code (YAML):
# This file configures your armor categories!
# To set custom armor's category, set "category" to the
# category under "armor" in the item's yml file, like this:
#
# # in items/myArmor.yml
# armor:
# category: myArmorCategory
# and then add the category in here, like this
#
# categories:
# myArmorCategory:
# #... options...
# myOtherArmorCategory:
# # ...
#
# See the wiki for more info on configuring this
categories
:
myArmorCategory
:
# handlers for this armor category
handlers
:
# if the player is wearing a full set of armor in this category, do this:
fullSet
:
# give the player the following potion effects while they are wearing the full set
# of armor
effects
:
-
potion
:
"GLOWING"
-
potion
:
"INCREASE_DAMAGE"
strength
: 2
particles
: false
showIcon
: true
myOtherArmorCategory
:
# ...
This version makes some minor bug fixes with durability that could have been introduced in version 1.12.8
You can now do math in placeholders like {player.location.x}! For example:
Code (YAML):
action
: sendMessage
messages
:
-
"Hey there, {player}!"
-
"Your y position is {player.location.y}!"
-
"If we add five to that, we get {player.location.y + 5}!"
-
"If we multiply it by two, we get {player.location.y * 2}"
-
"If we divide by three, we get {player.location.y / 3}!"
This version makes some improvements to damageable items for older MC items!
This version fixes some bugs that a few users sometimes experienced with attributes and durability!
This update fixes some minor bugs that could sometimes cause some older versions of Spigot to experience unexpected crashes!
This is also the 100th update! Yay!
This version brings new "rightClick" and "leftClick" handlers! "rightClick" happens when a player right clicks air or a block, and left click happens before a player left clicks air or a block.
These handlers are run BEFORE the more specific ones. For example, "rightClick" happens BEFORE "rightClickBlock" and "rightClickAir"
Code (YAML):
handlers :
rightClickAir
:
-
action
: sendMessage
message
"This will happen second"
rightClick
:
-
action
: sendMessage
message
:
"This will happen first"
This version brings a german translation to Custom Items! Just set "language" to "de" in the config.yml
You can now use the new "placeBlock" action when a player right-clicks a block or left-clicks a block to mimic block placing for unplaceable items!
Code (YAML):
# Place a diamond block on the block the player right-clicks
# with this item!
handlers :
rightClickBlock
:
-
action
: placeBlock
type
:
"minecraft:DIAMOND_BLOCK"
When a player joins your server without your resource pack installed, you can now show them a fallback Minecraft block instead of an untextured custom block!
Check out
https://github.com/jojodmo/CustomItems/wiki/Adding-Custom-Textures-to-Blocks#fallback-textures for more info!
Just add the following in your config.yml:
Code (YAML):
# Whether or not to enable fallback block textures
#
# Set this to true to and players who do not have your resource pack downloaded
# Will see the fallback Minecraft texture for custom textured blocks
#
# You can set a block's fallback texture under "fallback" in the "texture" section of the "blocks" section in your item yml file
#
# default: false
doFallbackTextures
: false
# The default fallback texture for blocks
#
# If "doFallbackTextures" is "true", and a custom-textured block doesn't have a fallback texture,
# players will see the block like this Minecraft block instead.
#
# You can ONLY set this to a Minecraft block (like "minecraft:GOLD_BLOCK" or "minecraft:COBBLESTONE") - can not be
# an non-placeable item.
#
# default: NULL
defaultFallbackTexture
: NULL
And set "doFallbackTextures" to "true" to enable fallback textures! You can then set "fallback" under "texture" of "block" in the item yml file to set the block's fallback texture:
Code (YAML):
block :
texture :
fallback
:
"minecraft:DIAMOND_BLOCK"
textureID
: 42
Players with your resource pack will see textureID 42, and those without it will see a diamond block!
You can now force users to download your servers resource pack, and kick them if they don't! Just add the following things to the config.yml:
Code (YAML):
# Whether or not to force the user to download your server's resource pack
#
# Set this to true to automatically kick players from your server if they
# decline or your resource pack or the download fails.
# Keep in mind that this may have an adverse effect on your playerbase.
#
# Players with the permission customitems.resourcePack.ignore will not
# be kicked
#
# default: false
forceResourcePack
: false
# The message to send when a player declines your server's
# Resource pack. You can use &color codes
#
# default: "You must accept the resource pack request"
resourcePackDeclinedKickMessage
:
"You must accept the resource pack request"
# The message to send when a player accepts your server's
# resource pack, but the download fails. You can use &color codes
#
# default: "The resource pack did not successfully download. Please check your internet connection and try again in a few seconds. If you believe this is an error, please contact the server administrators."
resourcePackDownloadFailedKickMessage
:
"The resource pack did not successfully download. Please check your internet connection and try again in a few seconds. If you believe this is an error, please contact the server administrators."
You can now choose to force enchantments and damage to show even when item flags are hidden!
Code (Text):
item:
hideFlags: true
hideDamage: false
hideEnchantments: false
You can now set blocks to custom items using the API! Developers, check out CustomItemAPI.setCustomItemIDAtBlock
You can now have a list of actions run if the conditions in your “if” conditions don’t run:
Code (YAML):
ifBlockType
: “minecraft:COBBLESTONE”
action
: sendMessage
message
: “You hit cobblestone”
elseActions
:
#elseActions is formatted a lot like “runActions” — It’s its own action list
-
action
: sendMessage
message
: “You hit something that isn’t cobblestone”
You can now put each Custom Item in a category, so when a player runs /cui list, they'll see a list of item categories! They can then click on one of those categories to get a list of items in that category.
Of course, you can disable this by keeping "enableCategories" as "false" in the inventories.yml file.
To enable it, set "enableCategories" to "true" in your inventories.yml, and then add your item categories:
Code (YAML):
# in inventories.yml
# Whether or not categories should be enabled. Set to "true" to enable categories
categoriesEnabled
: true
# Item Categories along with the items that represent them
# You can add items to categories by setting "category" in
# the item's YML file.
#
# Any item that doesn't have a category will be put in the
# "miscellaneous" category by default.
#
# The format is
#
# category:
# itemName: ...
# item: ...
#
# Where the item is the item that represents this category.
# This can be a Minecraft item or a Custom Item. See referencing
# items above.
#
# inventoryName is the name that appears in the Custom Item list inventory
# You can use &color codes in this name
categories :
miscellaneous :
itemName
:
"&dMiscellaneous"
item
:
"minecraft:DIAMOND_PICKAXE"
Then, in your item YML files, set "category" to whatever category you want the item to be in (make sure the category exists in your inventories.yml file), like this:
Code (YAML):
# in myCustomItem.yml
name
:
"My Custom Item"
category
:
"myCategory"
If you don't set "category", the item will automatically be put in the "miscellaneous" category.
This update also includes some minor bug fixes with potion effects in trigger actions
This version introduces some minor bug fixes with crafting and MC versions 1.8 and 1.12
Turns out custom crafting is way more complicated to do right than I thought it was... This version makes some bug fixes to crafting.
This version brings a few minor bug fixes with anvils
If you have "forceUpdate" set to "true", the item now updates whenever a player clicks on the Custom Item!
You can now set versions for your custom items! To do this, just set
Code (YAML):
#in myItem.yml
version
:
(number | default
: 1
)
By default, the version of every item is 1, including items that were created before this update.
If you then want to make a big change to the item, and automagically make the old item the new item when the player does something with it, just increment the version (preferably by one), and set "forceUpdate" to "true"
Code (YAML):
#in myItem.yml
version
: 2
forceUpdate
: true
WARNING: The only thing that will be transferred over to the new item will be the old item's enchantments. Other than that, the old item will be completely deleted, and the player will be given a new item in its place instead (so, the user would lose any custom name they gave to the item, etc)... If anyone has any feature requests pertaining to this, let me know!
This version brings improvements to some error messages, and also disables some un-necessary debug messages.
This version makes some minor bug fixes to recipes, and fixes a bug that could sometimes cause recipes to not allow the player to craft the item.
You can now allow players to enchant items with an anvil. To do so, just set “enchantable” to "true"!
You can now also calculate fortune drops by default! To do so, set “doFortuneDrops” to “true” under "block". You can also respect silk touch with your custom blocks — set “doSilkTouchDrops” to “true” under "block".
Code (YAML):
# in myItem.yml
enchantable
: true
block:
doFortuneDrops
: true
doSilkTouchDrops
: true
You can now require a player has a permission to use a recipe! Just set "permission" under the recipe, and the player will only be able to craft that recipe if they have the permission.
All permissions are prefixed with "customitems.recipe.", so if you set "permission" to "magicStick", the user will need the permission "customitems.recipe.magicStick" to use the recipe!
In addition, this update makes some minor bug fixes with matching native Minecraft materials
This version brings some improvements to item attributes and crafting recipes!
You can now modify native Minecraft item attributes! To do so, just add the "attributes" key under the "item" key:
Code (YAML):
item:
attributes
:
#Valid options are "maxHealth", "speed", "attackDamage", "armor", "armorToughness", "attackSpeed", "luck", "jumpStrength"
attackSpeed
:
# The decimal amount of this attribute
amount
: 0.5
# What operator should be used. You can also use the native MC operators "0", "1", and "2"
operator
: ADD
# The slots that this should take effect in. Options are "mainHand", "offHand", "feet", "legs", "chest", or "head"
slots
:
-
"mainHand"
-
"offHand"
You can find more info about what each option does at these pages:
attribute modifiers:
http://minecraft.gamepedia.com/Attribute#Modifiers
item attributes:
http://minecraft.gamepedia.com/Player.dat_format#Attribute_Modifiers
More info about this will be available on the wiki soon!
This update brings some improvements and bug fixes to custom recipes. Namely, it fixes a bug that could cause custom items to sometimes be allowed to be used in place of native items in recipes, and also fixed a bug that could cause the item amount requirement in recipes to not work!
Additionally, it fixes some bugs with Minecraft version 1.12 and below for custom block textures!
You can now add a cooldown for your actions! Just set "cooldown" in the action (in ticks), or "cooldownSeconds" in the action. If you want actions to run if the player hasn't cooled down, then add an action list under "notCooledDownActions":
Code (YAML):
action
: sendMessage
message
:
"This message requires a 10 second cooldown"
cooldown
: 200
# This is 10 seconds in ticks
# Or, you can just use this, which is equivalent to the above line
cooldownSeconds
: 10
notCooledDownActions
:
-
action
: sendMessage
message
:
"You haven't cooled down yet!"
This version also adds the placeholder "{cui.action.id}", which will be replaced with a unique number identifier for the action that was run — this will likely only have uses for advanced users.
This version makes some improvements to the way damageable items are handled, and makes some minor bug fixes with the teleportPlayer action, armors, damageable items, and glowing items.
It also fixes a bug that caused a few users to sometimes experience spam in the console
You can now set the blast resistance for custom armors! Keep in mind that this stacks with the armor's strength, but is only applied when the wearer is damaged by a blast
This update brings the ability to set the attributes of armor items! Just set "strength" under "armor":
Code (YAML):
# in myCustomArmor.yml
item:
material
:
"minecraft:DIAMOND_CHESTPLATE"
displayName
:
"My Custom Chestplate"
armor
:
# A number from 0 to 100.
# 0 does nothing and 100 makes the player invincible when
# wearing this armor piece.
#
# This adds up with armor pieces. So, if your custom chestplate, leggings, boots, and helmet each had
# strength: 25, wearing the full set would make the user
# invincible
strength
: 10
You can also now use parameters like {target.location.x} and {player.location.world} in the actions "teleportPlayer" and "teleportTarget":
Code (YAML):
action
: teleportPlayer
world
:
{target.location.world
}
locationX
:
{target.location.x
}
locationY
: 100
locationZ
:
{target.location.z
}
There's now an even better way of making block textures (although the other way still works! Just set "format" to "expanded" under "texture" of the block.
In the new way, you can make simple blocks by simply setting the "textureID" under "texture", and using the resource pack example which is available here:
https://github.com/jojodmo/CustomItems/wiki/Adding-Custom-Textures-to-Blocks
You can also now disable physics on your custom blocks (Make a new railroad block that doesn't do block physics, or gravel that doesn't fall)
All you need to do is set "physics" to "false" under "block"!
This version brings some minor bug fixes and improvements to enchantment matching and durability on custom items
This version fixes a minor bug that caused some custom items to be given to players without the correct enchantments applied.
This version includes some minor bug fixes, and also makes some improvements to the "items" parameter in handlers. You can now use "items" like this:
Code (YAML):
blockBreak
:
-
# Set the drops to 10 diamonds and 2 of "myCustomItem"
action
: setDrops
items:
"minecraft:DIAMOND"
: 10
"myCustomItem"
: 2
This version fixes some minor bugs that some users may have experienced with version 1.9.3
You can now specify a radius in the setBlock action to set all blocks in a radius! To do so, just set xRadius, yRadius, and/or zRadius!
You can now make actions run only if the item in the player's main hand has certain enchants! To do this, just use ifItemEnchants like so:
Code (YAML):
ifItemEnchants
:
# Only run if the item has the fortune enchantment at a level ABOVE 1
"minecraft:FORTUNE"
:
"> 1"
# AND Only run if the item has a silk touch enchantment at a level LESS THAN OR EQUAL TO 2
"minecraft:SILK_TOUCH"
:
"<= 2"
# AND Only run if the item has a sharpness enchantment at level 0 (doesn't have the enchantment)
"minecraft:SHARPNESS"
:
"= 0"
You can now make actions run only if the item in the player's main hand has certain enchants! To do this, just use ifItemEnchants like so:
Code (YAML):
ifItemEnchants
:
# Only run if the item has the fortune enchantment at a level ABOVE 1
"minecraft:FORTUNE"
:
"> 1"
# AND Only run if the item has a silk touch enchantment at a level LESS THAN OR EQUAL TO 2
"minecraft:SILK_TOUCH"
:
"<= 2"
# AND Only run if the item has a sharpness enchantment at level 0 (doesn't have the enchantment)
"minecraft:SHARPNESS"
:
"= 0"
You can now make an item hide enchantments and hide item flags by setting "hideEnchantments" and "hideFlags", respectively, under "item"
Introducing the Custom Items Developer API!
Other plugins can now hook into Custom Items! This allows other plugins to use and interact with your Custom Items!
If you want to use Custom Items with another plugin (for example, make your custom kill drops plugin, or your quests plugin use Custom Items), just ask the developer of that plugin to add the Custom Items API!
Developers can use the API by using the class
com.jojodmo.customitems.api.CustomItemsAPI
and the methods inside of it. Each method has JavaDocs attached so you can see the usage. The most important methods are
ItemStack getCustomItem(String id)
and
String getCustomItemID(ItemStack stack)
This update contains a new generator "replace", which will replace matching blocks in new chunks with your block. In addition, it adds a new "biome" option under generators that allows you to make your generator only work in certain biomes. For a list of valid biomes, visit
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Biome.html
Code (YAML):
name
:
"My Custom Grass"
item:
material
: GOLD_BLOCK
canBeUsedGenerically
: false
canBePlaced
: true
block:
generation
:
-
method
: replace
blockTypes
:
-
"minecraft:GRASS"
worlds
:
- world
biomes
:
-
"DESERT"
-
"FOREST"
generationChance
: 0.95
# If generationAmount isn't set, the generator will replace all of the matching blocks
minY
: 20
You can now add custom textures to your custom blocks!!!
To do so, just edit add the following info to your item .yml file:
Code (YAML):
name
:
"Compressed Cobblestone"
item:
material
:
"minecraft:gold_block"
displayName
:
"&bCUI Golden Block"
canBeUsedGenerically
: false
canBePlaced
: true
block:
drops:
"minecraft:diamond"
: 3
"minecraft:gold_ingot"
: 4
texture:
textureID
: 13
color
:
"444444"
You can use
https://codecrafted.net/blockdesigner to design your pack, also, and use the "layer" system like so:
Code (YAML):
block:
drops:
oreBlock
: 1
texture:
layer0:
textureID
: 13
color
:
"444444"
layer1:
textureID
: 31
color
:
"00AAFF"
layer2:
textureID
: 37
color
:
"33AAFF"
If you design your own resource pack: If you're using 1.14 or above, "texutureID" is the CustomModelData of whatever you set "material" to in that layer. If "material" is a leather armor item, "color" is the dye color of the layer. If you're using a version under 1.14, then "texutureID" will correspond to the damage on the item. By default the item is "minecraft:leather_boots"
This version brings Ore generation to Custom Items! It allows you to automatically generate your custom blocks when worlds are generated!
To make a block generate, just use something like this! Check out the plugin page for more information on generating blocks
Code (YAML):
name
:
"My Item Name"
item:
material
: GOLD_BLOCK
canBeUsedGenerically
: false
canBePlaced
: true
block:
generation
:
-
method
: ore
worlds
:
- world
continueChance
: 0.4
generationChance
: 1.0
amountPerChunk
: 5
minY
: 20
This version also brings some bug fixes with custom blocks.
This update adds a new configuration file that allows you to customize the items in item GUIs! Just change the entries in the new menuItems.yml file generated at startup, and you'll see the changes when you run /cui inspect or /cui info!
You could set these items to custom-textured ones to get some cool effects. For example, you could make a new custom item that looks like a back button, and use that for previousMenu.
This version brings an update that allows you to set the material of textured items. Just set both "material" and "textureID" under "item" in the item.yml — you should only do this if you know how to create your own resource packs. If you don't know how to make your own resource packs, stick with just setting "textureID" in the item.yml file. This only works for Minecraft 1.14+
This version also brings some bug fixes — namely, it fixes some bugs that were causing unwanted debugging messages to spam up the console
This version brings some minor bug fixes and improvements to the plugin, namely with localization and custom item creation
You can now give your custom items a damage bar, like for vanilla Minecraft tools!
If you're running Minecraft 1.14, you'll need to update your server resource packs. Check out the instructions of creating a resource pack on the main plugin page, and download these starter files:
amazonaws.com/projects.store/spigot/CustomItemsModelFiles.zip. If you don't want to migrate over to the new format, that's ok! Just set "useOldResourcePackFormat" to
true in the config.yml
This version brings some minor bug fixes with textures
This update brings the ability to add durability to any Custom Item — not just those with custom textures! Check out the previous update log for info on how to do that.
You can now make your custom items damageable! Just set "damageable" to true in your item yml file under "item", and then set
"maxDurability", and optionally "itemDamage"!
Currently, this is only supported with custom-textured items, but will be supported with all custom items soon!
Code (YAML):
item:
textureID
: 42
damageable
: true
durability
: 10
itemDamage
: 0
This version adds a new /cui edit command, which you can use to edit your custom items!
This version includes minor bug fixes and improvements
This version makes some minor bug fixes and improvements, but please make sure to read the previous update log as well.
This version brings updates to the way custom textures are made — it allows you to make over 1,000 custom textures!
However, because of this, you will need to update your texture packs in order for your custom items to keep having the correct textures. Otherwise, your custom textures will no longer work.
To do so, download this zip file:
https://s3.amazonaws.com/projects.store/spigot/CustomItemsModelFiles.zip
and place the two things in it into the assets/minecraft/models/item folder of the resource pack.
Do
not modify these files at all.
We're really sorry about making a breaking change, and will do our best to not make one in the future. However, this should be the final breaking change to textures.
If you need any help updating, please let us know!
This version brings some minor localization improvements
You can now make an action run only in intervals (for example, have an action run every other time it should run, or have it run only every other 10 times)
Note: this isn't saved over restarts, but if saving this number over restarts is desired, let me know and I'll add that feature.
This version brings 1.14 support to Custom Items!
It also brings some very minor bug fixes with /cui create on pre-1.13 versions.
This version adds a new "blockStep" handler, which is called whenever a player steps onto a custom block
Added "itemDrop" handler, which is called when the custom item is dropped by the player
You can now set the tick delay of an action running by setting "tickDelay" to the number of ticks! (20 ticks in one second)
This update fixes a minor bug that caused a few users to experience issues with custom textures
You can now turn off override permissions for the playerRunCommand action! Just set overridePermissions to false in the action, and the player will only run the command if they have permission (if overridePermissions is true, they'll run the command even if they don't have permission)
You can now set the probability that an action will run! Just set "probability" to a number between 0.0 and 1.0, and the action will happen randomly with that probability
This version brings minor improvements to compatibility mode and to the Chinese localization
This version adds a new compatibility mode, which could remove any issues you have with Custom Items interfering with other plugins. It's highly unlikely that this is the case, but if Custom Items does not work correctly, you can set "compatibilityMode" to "true" in the config.yml
But, in almost all cases, you shouldn't need to use compatibilityMode, and should only use it if you need to.
This version adds Chinese Localization, thanks to
yeban!
If your custom item is a skull, you can now change the skull owner to make skulls look like player heads! Just set either "skullOwner" or "skullUsername" under the item (if the item is a player head)
This version adds better localization to Custom Items, localizing more messages
By popular demand, this version adds a reload command to Custom Items! You can now type /cui reload to reload the plugin without restarting the server.
Although the command does work, it should really only be used for testing changes you make — you should still restart your server when you're done creating the items.
This update brings some vast improvements to the /cui command making it much easier to use!
This version adds Italian localization to Custom Items! Not all messages have been localized, but all important ones have been — All messages will be localized in an upcoming update!
This update adds a new handler "bowShoot", which is called whenever a custom bow is shot.
This version completely changes the /cui create command, and makes some minor bug fixes.
This version makes some minor improvements to the /cui create command. Namely, you can now edit the item's item ID
You can now create limited items using the /cui create command. This will be expanded on vastly in new versions
This update adds the ability for you to add custom textures to your custom items! You can set the new textures in a custom resource pack, and the steps for doing so are outlined in the description of the plugin.
This is a new feature, so if you find any bugs please let me know!
This version brings 1.11 support to Custom Items! 1.10 and 1.9 support are coming soon!
This version bring 1.8 support to Custom Items! This version should also work with 1.9, 1.10, and 1.11, but has not yet been tested in depth.
In this update, a few minor bugs with the /cui inspect and /cui info inventories were fixed (namely, there was a bug that could sometimes cause 3x2 recipes like repeaters to show up incorrectly, and another bug that sometimes caused clicks in the inventory to not open the correct info inventory). Those bugs have now both been fixed!
We'll be adding 1.8 support soon, so stay tuned!
This update brings some other improvements and bug fixes with shaped crafting recipes. The last version made some critical bug fixes, and is recommended for all users.
This update makes a critical bug fix with NBT tags (introduced when multi-version support was added). It is recommended for all users.
This version adds support for 1.12! No extra setup is necessary, just use the plugin on a 1.12 server as you would a 1.13 server, and you're golden!
This update should also work with some other earlier versions, but it has not yet been tested. I'll post another update once we've tested it and made adjustments with other versions.
You can now make your custom items glow without adding enchantments to them! Just set "glows" to "true" under the item key:
Code (YAML):
myCustomItem:
item:
glows
: true
If you downloaded the update that added enchantments, it is highly recommended that you download this update — there was a bug that could sometimes cause some items to not be registered.
You can now add non-native enchantments to your items (enchantments from other plugins)! To do so, place the plugin name in front of the enchantment name, and separate the two by a colon. For example if myCoolEnchants adds the enchantment superSharpness, you would use "myCoolEnchants:superSharpness". Make sure you use the correct plugin name!
You can now invert if statement results by setting "invertIfResult" to true. This will do exactly what it sounds like — if your action would normally run, and you set "invertIfResult" to true, your action will not run; and, if it would normally not run, and "invertIfResult" is true, the action will run.
This makes it possible to make "if-else" statements — so, you could run something if X, and run something else otherwise.
You can now use "xor" to combine if statements. This will make the action run if exactly one of the conditions is met. If none are met, or multiple are met, the action will not run.
This update fixes a minor bug with color codes not working in the lore of items.
This update makes it so that "destroyItemUsed" will only destroy one of the items used if no number is provided, rather than all of the items in the player's hand.
You can now use "ifTargetHasItem" to make "vampire" items, for example, when a player hits another player with your custom item, and the target an item in their inventory, that item could be remove from the target's inventory and given to the player!
You can now run an action only if a player has the specified items in their inventory! This makes it possible to make certain items require fuel to work.
You can now remove items from the target's inventory in action handlers. For example, you could remove a diamond from the target's inventory when a player hits them with your custom item. This makes it possible to do "vampire" style actions, so players could remove an item from the target inventory and it could be put in theirs.
Just use the action "
targetRemoveItem"
You can now remove items from a player's inventory in a handler — just use the "playerRemoveItem" action
You can now run the action "giveTargetItem" as a handler. It works almost exactly like "givePlayerItem", but will give the target of the action the item, instead (this only works if the target has an inventory, and the handler has a target — like hitEntity or hitPlayer)
You can now run the action "givePlayerItem" in handlers. You can specify both the type of the item and the amount. For example, you could do:
Code (YAML):
handlers:
rightClickAir:
actions
:
-
action
: givePlayerItem
type
: myCustomItem
amont
: 16
You can now run actions when an item is damaged! This makes it possible to make custom items that are unbreakable — just add the handler
Code (YAML):
itemDamage:
actions
:
-
action
: cancel
Some minor bug fixes for users that don't have Skript
You can now edit the color leather armor and potions! Just set the "color" attribute under "item" to a hexidecimal color code like "00AAFF" or "CB07E4"
You can now change the damage of custom items by setting
itemDamage under the item key
This update adds the onItemBreak handler to the plugin!
This update makes some minor bug fixes and improvements
This update adds support for Skript as detailed on the plugin's description page, adds new handlers and actions, and also adds support for storing custom blocks in a MySQL database!
Items are now in separate .yml files