i broke this part

NEXO FURNITURE TUTORIAL

INTRO
This page is a guide on how to create furniture in the Minecraft plugin Nexo.
Before you begin this tutorial, please make sure you have purchased the plugin. Then, place the .jar file inside the "plugins" folder on your server.
Note that the free server host Aternos cannot accept custom-uploaded plugins, so please do not buy the plugin if you are on that host.

SUBSTITUTING

Throughout this tutorial, I will be attempting to create an oak table for my city server. However, you may use any item you want, so please replace all mentions of "oak_table" with whatever your desired object is.
For example: Replace "oak_table" with "rocketshiptoy" or "candy_machine32". It really doesn't matter, as long as you remember to do that name substitute for EVERY instance of "oak_table".

SKILL LEVEL & TIME
Estimated time to complete tutorial for first-timers: 15-20 minutes (EXCLUDING time spent modelling & texturing the actual furniture, which could either be hours or minutes lol)

MODELLING

WHAT PROGRAM?
To add a model to your Minecraft server, you first need an actual model that you want to add.
Most Minecraft creators use the 3D modelling tool Blockbench, however you may use another tool of your choice if you are already confident in it.
But for the sake of this tutorial, Blockbench is guaranteed to work in this case.

CLEARING SPACE
Next, Make sure to create a folder on your PC for your model and texture. For example, my PC's folder structure goes something like this:
Documents/Minecraft/Resource Packs/My Servers/Furniture/Table/(the place where we put all the files we are making today)

CREATING YOUR MODEL
If you already have a Blockbench model, skip this section.
So, here is a very brief Blockbench tutorial:
You can place cubes with the plus button near the bottom right of the screen. Select the move tool near the top left to move around these cubes. Next to the move tool is the scale tool, which you can use to re-scale the model. Try to keep your model 16 by 16 by 16 MAX. (You can check the properties of each cube in the top right properties section, so use a 16-long rectangle to measure your model size)
Once you have created the model, you then you press Ctrl+A to select them all - then press the create texture button on the left of your screen.
Now you can add colours. Go to the paint section near the top right to texture the model.
Sorry that's all I can give for now. Please save your model as a .bbmodel with ctrl+s, and save the texture as a .png alongside it too. Hopefully you know how to do this lol (I'm really sorry)
Make sure to save your files in the resource pack folder you created before!

SAVING & EXPORTING
Please open up your .bbmodel file. (If it is already open, you don't need to do anything)
If you don't have a .bbmodel file by this stage, but you saved the model earlier, you might have saved a .json file instead. This can still be loaded up, but you will have to select all cubes and right-click the texture and select "apply to all faces," or else your model will look textureless.
Now Now export your open model as a .json file, which in Blockbench is referred to as a "Minecraft Java Block/Item." And then make sure to save the texture as a .png.
Now you have your "model file" (the .json) and your "texture file" (the .png)! You will also have a .bbmodel, although the bbmodel isn't actually necessary for anything aside from re-editing the model in Blockbench. (Please continue now ONLY if you have these files!)

IMPORTANT JSON TWEAK

Now please use a text editor to open up your model's .json file, and check on the 4th and 5th lines of the text. If you were making an oak table, the text would look exactly like this.

{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"0": "oak_table",
"particle": "oak_table"

No matter what, your model (if exported validly as a json), will look something like this, but what we need to pay attention to is the textures:0 section. Basically, this is the texture your model is pulling from. In this tutorial, make sure the "0": and "particle": textures are set to the file name of your texture. For example, if the file name for your furniture item was "pinkpineapple.png" then you would make your json file like this:

{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"0": "pinkpineapple",
"particle": "pinkpineapple"

In this example, you would also NEED to make sure the json file (the file that you are editing, in which all of this code and model data is contained within) is called "pinkpineapple.json."

If you do not follow this consistent folder structure, Nexo will not understand your resource pack.

We will also be doing a little bit more tweaking. This is very important.

So please change the textures, instead of just being "oak_table" or "rocket_ship" or "pinkpineapple" or whatever else your files are called, prefix them with the FURNITURE folder (this is confusing now, but will become apparent later). So for example, I would have a section like this:

"textures": {
"0": "furniture/oak_table",
"particle": "furniture/oak_table"

We are technically doing this for organisation's sake- but for the purpose of this tutorial, which is built on organisation, we will be creating folders in the future and if you DON'T edit the json like this, then the Nexo plugin won't be able to find your model and texture files, which will cause your furniture to entirely break. So please prefix your textures with "furniture/".

We have come to the end of this modelling stage. Please make sure you have the following files:

A folder with the following files: A valid model json file, called oak_table.json, and a valid png texture file called oak_table.png. (Again, if you're not making an oak table, substitute these names for another thing, BUT BOTH FILES MUST HAVE THE S AME NAME!)

ADDING FURNITURE TO NEXO

Now, make sure you have the Nexo plugin on your server, and make sure you have rebooted the server at least once since you added the plugin.

This will mean your "plugins" folder in your server files will have a "Nexo" directory inside. Please open up this directory.

You will now be editing your files inside of server/plugins/Nexo.

We will first be writing our .yml file to define our furniture item, so inside the Nexo/items folder. Now, create a new folder called "furniture." Now enter this folder. You will now be in the directory server/plugins/Nexo/items/furniture.

Now create a new file. Depending on the way your server works, you may have to name this file before or after writing the code. If you are currently being prompted to name your file, please name it oak_table.yml. Technically you don't have to get the name accurate, though. No errors will happen if you name your file "i_hate_nexo.yml," but it's much easier to handle things in the future if you keep your naming consistent!

Now, inside this file you're creating, paste this text:

oak_table:
displayname: "Oak Table"
material: DIAMOND
Pack:
generate_model: false
model: furniture/oak_table
Mechanics:
furniture:
block_sounds:
place_sound: block.stone.place
break_sound: block.stone.break
hit_sound: my.custom.hitsound # Custom sound as defined in Nexo/sound.yml
step_sound: my.custom.stepsound # Requires a sound-file in the Nexo/pack-folder aswell
fall_sound: my.custom.fallsound
hitbox:
barriers:
- 0,0,0
drop:
silktouch: false
loots:
- { nexo_item: table, probability: 1.0 }

Save this file. If you're on a server host where you name the file after coding it, please follow the file naming rules mentioned a paragraph ago.

Inside this YML file you just made, the first line is the Nexo item name. Set this to whatever you want your item to be called. And then, the "model:" field should be set as furniture/yourfilenamehere. So for example if you were making a rocket ship, make that line model: furniture/rocket_ship

Now we need to upload our files to the server. The server needs to know how our model looks, so the players can load those textures in! (Also, we're in the home stretch now.)

What you need to do is to head to the Nexo/pack folder. This is where all the resource pack content is stored for your server.

Now, this is the most confusing part of the original Nexo documentation, so I will try my best to explain it for you.

Basically, what you want to do, is to head to Nexo/pack/assets/minecraft/textures, and create a new folder called "furniture." We are now creating furniture within the "Minecraft" namespace, inside a new custom folder. Inside this furniture folder, please add your oak_table.png file. Again, if you aren't making an oak table, upload your rocket_ship.png, or whatever else it's called.

Now, you need to upload your model file, which is the .json file we edited earlier.
So go back to the root "Nexo" plugin folder, and we'll find the models folder. Which is in... Nexo/pack/assets/minecraft/models
Inside of that models folder, create a "furniture" subfolder. And inside this new furniture directory we've made, upload your oak_table.json file (or whatever else it's called).

Now all your assets are on your server, and you should be able to obtain the item in the following section.

Make sure to run /nexo reload before continuing. This will make the plugin reload all of its files, and the new resource pack will be re-applied to all online players.

CRAFTING RECIPE & OBTAINING

You'll need a way for your players to get your furniture item.

COMMAND
First off, to make sure your model works in Nexo, I suggest you quickly run the command /nexo give @s oak_table. Note that the name "oak_table" is derived from the first line of the YML file we wrote. So if the first line of your yml file said "skob_bob" then you'd type /nexo give @s skob_bob

RECIPE
But for most servers, you would probably want to make a Minecraft crafting recipe to obtain the Nexo furniture item.
First, gather the items you want to make the recipe out of. For my table, I gathered 8 oak logs and 1 scaffolding.
Now get one of the block you're trying to give as the "recipe reward." So if you're trying to give the player an oak table, make sure to run /nexo give @s oak_table, etc etc.
Then run this command: /nexo recipes builder shaped
...And now you're presented with a GUI. Please place the items in the "crafting slots" of the gui to create the recipe. And then on the right "result slot," place the item you want to give as a reward.
Once you've done this, close the GUI with escape and type this in chat: /nexo recipes save oak_table
Note that you don't need to write "furniture/oak_table", even though the oak table IS in the furnitures subfolder. You just need oak_table, as its value is defined by the value in the table.yml file. Which does NOT have "furniture/oak_table" as its name. Its name was defined in the first line, which was simply "oak_table".
Now restart your server. You should be able to craft your lovely item!

I HOPE THIS HELPED

Yeah, I hope this helped - the tutorial is over now! I'm not even a Nexo expert, I started writing this tutorial the hour after I learned how to create furniture models. But I wanted to make a tutorial, and to update it once I get more knowledge. (Because the official Nexo docs are confusing)

COMMON ISSUES & QUESTIONS

When we created our .yml file to define the furniture item, why is it in "nexo/items" instead of "nexo/blocks"? Surely the furniture is also a block? Well, in Nexo, furniture is classed as an "item." In fact, ALL blocks are classed as an "item," as an item is something you can hold in your hand!

A common issue if you go back in later to edit your model: Make sure to edit the json to have the texture direct to furniture/texture.png instead of the default texture.png that blockbnch spits out.

my furniture can attach to walls! changed the "FIXED" text to "NONE"

my furniture is the wrong size! - adjust the "scale" property from 0.5,0.5,0.5 to 1,1,1

You can add seating to your Nexo model by (xxxxx)

This was covered earlier in the tutorial, but if you load up a .json file in Blockbench, you will need to re-apply the textures to all faces.