Knokko's Custom Items
Note: this plug-in requires a different installation procedure than most other plug-ins. You really need to check the installation section or one of the tutorials.
Description
This plug-in allows the owners and developers of servers to create custom items with their own textures. (It requires a server resource pack.) Everyone who would like to use this plug-in needs to download the Editor and use that to create their own custom item set.
Installation
- Download and run the Editor. Editor.jar can be found in the Files section. If you have a working Java installation, you can just download and double-click this file. If not, you can either install Java or download a native version of the Editor from https://github.com/knokko/custom-items-gradle/releases
- Put this plug-in (CustomItems.jar) in your plug-ins folder
- Configure the items and textures you want (in the Editor)
- Click on the Export... button, and follow the steps (in the Editor)
- Optional: Install ActionBarAPI to display custom tool durability and wand/gun cooldowns. See https://knokko.github.io/custom items/compatibility/positive.html for details.
If you need more detailed information about these steps, you can ask for help on the Discord server.
Discord server
Invite link: https://discordapp.com/invite/bmF3Zvu
New tutorials:
https://www.youtube.com/watch?v=GsC-pNlBjwg
Old basic tutorials:
Text: https://knokko.github.io/custom%20items/index.html
Video: https://www.youtube.com/playlist?list=PLcc-tPs9PuADC-shEBRynL9s2j6slSWCa
Old advanced tutorials:
Custom containers (video): https://knokko.github.io/custom%20items/tutorials/containers/index.html
Wands and guns (text): https://knokko.github.io/custom items/tutorials/wands and guns/index.html
Troubleshooting
If you can, use /kci debug
If that doesn't work, check out https://knokko.github.io/custom items/troubleshooting.html
Supported minecraft server versions
Minecraft 1.8.x and earlier: impossible to support (at least without mods)
Minecraft 1.9.x, 1.10.x and 1.11.x: not supported, but could be if there would be enough interest
Minecraft 1.12.2: supported
Minecraft 1.13.2: supported
Minecraft 1.14.4: supported
Minecraft 1.15.2: supported, but misses custom tridents
Minecraft 1.16.4: supported, but misses custom tridents
Minecraft 1.16.5: supported, but misses custom tridents
Minecraft 1.17.0: supported, but misses custom tridents
Minecraft 1.17.0: supported, but misses custom tridents
Minecraft 1.18.2: supported, but misses custom tridents
Minecraft 1.19.4: supported, but misses custom tridents and special melee damage sources
Minecraft 1.20.4: supported, but misses custom tridents and special melee damage sources
Minecraft 1.21.x and later: didn't exist at the time of writing this
Notes when using alongside ViaRewind
Players will only be able to see the right textures, if the resourcepack format of their client version is the same as the resourcepack format of the server version. The following versions use the same resourcepack format:
Minecraft 1.8 and earlier (Note: this resourcepack format misses required features and therefor can't be supported)
Minecraft 1.9 to minecraft 1.12 (Note: even though this plug-in can't be used on servers with minecraft 1.11 or earlier, players from minecraft 1.9 to 1.11 may be able to join and see custom textures if you use a minecraft 1.12 server)
Minecraft 1.13 and minecraft 1.14
Minecraft 1.15 and minecraft 1.16
Features
-Custom items with their own display name, lore, attribute modifiers and textures
-Custom tools with their own damage and durability
-Custom bows with their own damage, speed and durability
-Custom armor with their own armor value and other attribute modifiers, unfortunately without model texture.
-Crafting recipes that can use vanilla ingredients and custom items (or combined)
-Block & mob drops for custom items
-Custom containers (like a custom furnace, but much more powerful, unfortunately without block texture)
-Custom projectiles with custom wands to launch them
-Custom blocks (but still in beta)
Commands
- /customitems damage <amount> [player name] will decrease the remaining durability of the custom tool in the main hand of the target player (the player with name player name) by amount. If the remaining durability is smaller than (or equal to) amount, it will be destroyed. Only players with the customitems.damage permission can use this command.
- /customitems debug will let the plug-in do check for installation problems and send the results in the chat to the player who executed the command. Note that this command will not work if the installation is too bad. Only players with the customitems.debug permission can use this command. Note: if you use a big server resourcepack, this command can freeze the server for multiple seconds, so anyone with this command has the power to freeze the server by repeatedly using this command.
- /customitems encode will create a text representation of the item in the main hand of the command executor and put that in the server console. This can be used for complex crafting ingredients in the Editor. Only players with the customitems.encode permission can use this command.
- /customitems give <item name> [player name] [amount] to give the custom item with that name to the player with the given name (by default the player that executes the command). Only players with the customitems.give permission can use this command.
- /customitems list sends the names of all custom items to the player who executed the command. This can be nice for testing or when you forgot the name of a custom item. Only players with the customitems.list permission can use this command.
- /customitems reload will reload the config.yml and the current .cis file (or .txt file). Only players with the customitems.reload permission can use this command.
- /customitems repair <amount> [player name] will increase the remaining durability of the custom tool in the main hand of the target player (the player with name player name) by amount. This command will not repair the tool beyond the maximum durability (if current durability + amount is larger than the maximum durability, the durability will be set to the maximum durability). Only players with the customitems.repair permission can use this command.
- /customitems setblock <custom block> [x] [y] [z] [world] will place a custom_block at location (x, y, z) in world. Only players with the permission customitems.setblock can use this command.
- /customitems take [page] [target player] lets the target player take custom items from an in-game GUI. The page is needed when you have more than 54 custom items. By default, this command will use the command executor as target player and page 1. This command requires the permission customitems.take
- /kci playsound <sound> [x] [y] [z] [world] [volume] [pitch] plays the given custom sound at the given location (or the location of the command executor when no location is specified). If no volume or pitch is given, they will get the default value of 1
- /kci tag is a debug command that sends the NBT tag of the item in your main hand via the chat
When you put disableoutput between /kci and the rest of the command, you can disable command feedback/output, which can be useful for commands that are executed automatically.
Source code (programmers only)
In reply to knokko:
That shop im traing to make is npc shop. When you click on npc, menu opens from there you can click on item and it will check if you have that item in eq and than execute some command like add money. I have done the check stage and cant get over taking item from player. If there is any command from minecraft that will possibly work with essentials Im open to that. Btw thanks for support!
In reply to Forge_User_66689104:
I think you can use the /clear command for this if you use the right item predicate. Unfortunately, it's too long ago I worked with complex commands, so you will have to figure out the exact command yourself.
I'm using this mod for making a roguelike dungeon crawler game on a server and it's the most AMAZING plugin I've used in a while. Currently I'm just using /customitem give when a player completes a room to give them the reward for that room but I was wondering if there was a way to drop the item on the floor so they have to walk to a pedestal to pick it up or something
In reply to santasspys:
The simplest way is to use some kind of dropper/hopper/chest system where you fill the chest in advance (the drawback is that you have to fill this manually every now and then). You can also take a look at the command block help (look at how to summon a zombie with custom equipment for instance) and try to use the /summon command to summon a dropped item. This requires some expertise with commands, but should be possible. (But unfortunately, I forgot how to use this command exactly.)
spotted a spelling mistake :p if you don't set a selection icon in a custom container it says "you must have a celection icon" also how do you actually open/place/use a custom container i created one and don't know how to use it in game
In reply to Forge_User_40465185:
Somehow, I didn't get a notification about this message, so I didn't read it until now. I just fixed the typo and you should see the correct message in the next major update (but that can take a while).
i just got on today it was working yesterday and everything stopped working the recipes are not working and doing /ci does nothing and i get the error [Server thread/ERROR]: Error occurred while enabling CustomItems v7.1 (Is it up to date?) still after changing from the latest beta to the latest release and there is no new version
In reply to Forge_User_40465185:
Please show the error stacktrace after [Server thread/ERROR]: Error occurred while enabling CustomItems v7.1 (Is it up to date?)
In reply to Forge_User_40465185:
By the way, the 2 most likely solutions are:
If neither of these help, I will really need to see the error stacktrace below that message you sent.
In reply to knokko:
I'm on 1.16.2 my core version is 1.16 3 my custom items version is 7.3 and the error is as follows
[11:21:31] [Server thread/ERROR]: Error occurred while enabling CustomItems v7.3 (Is it up to date?)[11:21:31] [Server thread/ERROR]: Error occurred while enabling CustomItems v7.3 (Is it up to date?)java.lang.IndexOutOfBoundsException: Current byte index is 0 and bound index is 0 at nl.knokko.util.bits.ByteArrayBitInput.readDirectByte(ByteArrayBitInput.java:68) ~[?:?] at nl.knokko.util.bits.BitInput.readByte(BitInput.java:110) ~[?:?] at nl.knokko.customitems.plugin.data.PluginData.loadData(PluginData.java:71) ~[?:?] at nl.knokko.customitems.plugin.CustomItemsPlugin.onEnable(CustomItemsPlugin.java:80) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:343) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:479) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugin(CraftServer.java:478) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugins(CraftServer.java:404) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at net.minecraft.server.v1_16_R2.MinecraftServer.loadWorld(MinecraftServer.java:426) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at net.minecraft.server.v1_16_R2.DedicatedServer.init(DedicatedServer.java:206) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:786) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:155) ~[craftbukkit.jar:git-Bukkit-43c7ff9] at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]
In reply to Forge_User_40465185:
It looks like the file plugins/CustomItems/gamedata.bin on your server exists, but is completely empty. Normally, this file is created and filled with data automatically, but apparently not last time. You should be able to solve this by deleting this file. (Doing this will clear all wand cooldowns and custom container inventories, but this doesn't matter if you aren't using any.)
If even this doesn't work, please show me the next error.
In reply to knokko:
thank you the file was blank have no idea how this could of happened seems to be a bug deleted it as you said and it fixed the problem :) i love this plugin so much it is amazing. but is there a way to make an item one use so that when you right click on it a command runs and it deletes the item? i know you can /clear a specific item type but that would delete all of the items that have the same internal type and even if i did target that custom item the player might have multiple in their inventory so it would delete all of them :/
In reply to Forge_User_40465185:
worked it out!
that will delete the current handheld item only downside is it means that you can't have the items stack otherwise it will delete all in your hand
replaceitem entity @s weapon.mainhand air
In reply to Forge_User_40465185:
Be careful if you are using the command function from this plug-in for this: this plug-in won't grant players the permission to execute the commands you specify: it is equivalent to letting players type that same command in chat (but right-clicking is much easier than typing a whole command).
Can something be added like creating and editing custom blocks?
By the way, it is a very successful plugin. Keep going this way
In reply to nitronik14:
I couldn't find a nice lagg-free and cross-version solution for custom blocks: Mushroom blocks aren't available before mc 1.14 and the other solutions are lagg factories
In reply to knokko:
thanks for answer. It would be great if there was a solution without lag. Also what program do you recommend for modeling etc.
In reply to nitronik14:
I would use the mr crayfish model creator, but note that it requires some minor changes before you can submit them to the editor (something with the texture).
I don't understand we can download the file editor for creating the texture and set but the plugin? Where is he? I cant find?
Or is knokko core the plugin is doing all the job??
In reply to dranard_:
Click on File at the top of this page and choose the second file.