This is a guide for Forge Industry – How to create mod tutorial guide
Is the base game insufficient? Forge Industry was designed with modding in mind. In this article, we’ll look at the modding tools and show you how to create your own mod.
Intro
The goal of this guide is to help you understand how the Forge Industry modding tools work and to walk you through the process of developing your first mod.
We’ll be using Unity and the Forge Industry modding toolkit in this course. As a result, ensure that you have both Unity installed and the toolkit downloaded. This manual was created with Unity 2021.3.25f1.
While any other Unity version should work OK, it has not been tested, therefore we cannot guarantee the same outcomes.
For the time being, the mod tools may be found in the Forge Industry installation folder as “Forge Industry Mod Tools. unity package”.
This. unity package will be posted to a separate site later.
Project Setup
First things first. We need a to create a new Unity project that will in essence become our mod and contain all its components.
So we’ll just open Unity, and create a new project. For the template, we will use the “3D (URP)” template. You can find this in under the “Core” tab. Again, we are using 2021.3.25f1 in this example.
After that, just enter a name, and where you want to save the project files. In this guide we’ll be creating a new building that is a Train, so we’ll name the mod “Train Mod”, and give it a location that I can easily access.
Preparing the workspace
Now that we’ve got Unity open and loaded with a new project, we need to do a bit more setup before we are ready to start creating the mod.
Firstly, we’ll be removing all files that Unity created for us, such as the camera and lights, as we don’t need them going forward.
Now open the folder of the toolkit you downloaded, and drag the
Forge Industry Mod Tools.unitypackage
file into your Unity Assets.
At this stage, Unity might prompt you and ask if you want to Import the project or switch to it. Go ahead and click “Import”.
Next, Unity will ask you what you want to import. Press the “All” button, and then click “Import”. If you happen to spot any unchecked boxes even after clicking the “All” button, feel free to ignore them. Everything will work just fine.
Now the toolkit is ready to use. We have just 1 more step before we can create the actual mod.
Preparing the objects and sprites
Add all your Sprites and Models to your Unity Assets.
The first thing we’re going to do is turn the models into usable prefabs for our mod.
Since this is outside of the scope of our mod, and to keep the guide short, we’re not going to go in-depth on how to create prefabs in Unity.
But our toolkit does require certain settings and rules to be followed when creating them.
Each square in the game is a 10-meter by 10-meter object in your 3D modeling software (we use Blender).
If you have not created your own model but downloaded one from the internet. Then you might have to play around with the scaling a bit to get it all looking correct in the game.
Under your transform properties for the topmost object in your prefab, set the scale to “2” on all axis.
After that, you’ll also have to make some adjustments to your sprites. They won’t work just as-is.
Fortunately, it’s only a small change.
Make sure all your sprites are max 256×256, and set its Texture Type, no “Sprite (2D and UI)”
You’re now done with the setup!
Time to create your mod.
Making the mod – Buildings
Since we’re gonna be making a train mod, we have to add a new building to represent the train.
To add new elements to the mod, right-click your assets area, select “Create”, then “BiteMeGames”, and then “Modbuilding”. We’ll get to most of the other entries at a later point in this tutorial.
The new Scriptable Object that is created, will contain all the settings related to our building.
We’ll change both the Name and Localised Name to “Train“, and the Localised Description to “A simple train“.
In the Game Models list, we can define the models that will be linked to our building. A building can have multiple models, an example of this can be seen in-game with decorative buildings such as trees.
In there, we’re going to add a new entry that will link our new prefab and icon to the building. So go ahead and click the “+” icon, and then point the Icon to your Sprite, and the Model to your Prefab.
Parameters
– Gold cost: defines how much our building will cost to place in-game, so we’ll set it to 200 for demo purposes.
–Width, Height: Defines how many squares in the X and Y direction our building will use in the game. In this case, our train is 2 by 1 since there are 2 wagons of each 1 square grid.
– Workers Required: how many workers are needed for the building to be operational? As a train can be controlled by 1 person, we just need 1.
– Usable In Routes: defines whether the building can be used in our Routes.
– Placeable On Road and Walkable On Road: Controls if the building can be placed on Roads, and if so, if workers can walk on said Road.
– Is Decor: Says if the building is Decor or if it has a function.
– Is Connectable Decor: Controls if this decorative building has multiple variants that snap to each other. An example of this is the decorative flower perk in the game.
– Show In Building Bar: Defines if the building can be shown in the bottom building bar under the building tab.
– Can Be Removed and Can Be Renamed: Controls if the building can be removed or renamed respectively.
– Heat Source Required: Defines if the building required a heat source to run (such as coal).
– Animator: Allows you to link an animator to your building to give it an in-game animation that is respected by the game speed setting.
We skipped over Building Type Id as this field required a bit more explanation. This field is the unique identifier of your building across all mods. This value should be globally unique for that building type. As such, you can choose your own id and have a fun number, but we recommend just generating a random Long and pasting it in there.
You might also want to keep a separate document to help yourself keep track of what Id belongs to what Building/Road/Item of your mod. Especially when you create a bigger mod. You will still need to remember this number, however, since you will need it later to say what building your item recipe belongs to. Some IDs are reserved for internal use, so they are taken. But you will still need them to link to our existing in-game objects. You can find these IDs in that section of this guide.
Those are the main settings for our building. But now we need to tell the building what inputs it can accept. We can do that via the “Accepted Inputs” list. Ignore “Available Recipes” for now, we’ll come back to that later.
Material Item Type Ids is a list where you can define what material types are accepted for a certain item. Here we’re gonna say that we accept Coal as an input, signified by the 40000000003 Id. As shown in the list mentioned earlier, all Ids in the 4xxxxxxxxxxx range, specify Specific items without materials in the base game.
Since we’re referencing something from the base game and not a mod item, we have to check the “From Base Game” checkmark. “Count” is ignored here, but is shown since this object is reused throughout multiple mod components. And “Is Multiple Optional” is also ignored here, we’ll come back to that later.
Now that we’ve got the building, we can start creating our own items for it to create. You can find out how to do that in the next section.
Setting the positions of workers
You might have noticed that workers don’t appear in your buildings where you might want them and felt an immense wave of disappointment after all the hard work you already put into making your amazing new building.
But fear not! We can easily remedy this.
Go back into your mod project, and open the prefab.
Now just add an empty object for each worker location, and move it to where you want it in your building.
Open your new empty object, and set its Tag to “WorkerLocation”. Do this for each one.
Making the mod – Resources
Now that we have the Mod Building, we need items that it can create. That’s what we’re going to be creating next.
Go through the same Right Click Assets -> Create -> BiteMeGames motion that we did earlier for the building, but this time select “ModResource” instead. Just as we did with the building, we’ll walk you through each setting here.
Obviously, we want to give the item a name, we can do that with the “Name” field. In this case, I want to turn Coal into Ashes eventually, so I’ll create a new “Ashes” item.
–ItemTypeId: used to define an item that has a material that is not “None”. Whereas as you’ll remember from earlier, “Specific Item Type” is used to define an item without any materials. Since we don’t have any materials, we’re gonna enter a new randomly generated Id into the “Specific Item Type Id” field. Note that we still have to enter 50000000000 into the “Item Type Id” field, which signifies “None” for the Item Type. Again, refer to the part above and the Id list if you’re confused about these numbers.
– Combined: A checkbox that tells our game wheter to look at the Item Type + Material (when checked), or the Specific Item Type (when not checked).
– Difficulty To Create: Says how easy your item is to create, this is used in the supply & demand price calculations.
– Rarity Tier For Specific Item: Specifies how Rare your item is, this is used in the supply & demand price calculations.
– Is Possible Heat Source: Specifies if your item qualifies as a Heat Source. If you check this box, you must also specify how many Ticks of heat the item provides in the Provides Heat For Ticks field.
– Craftable: Specifies if the item is Craftable. If this is disabled, then the item can only be generated by the Generates section in the Modbuilding.
– Has Components: Marks the item as a finished/complex item. This means that the game will add all resources used to create the item as components, and this will influence the item’s sell price.
Now we specify how this item can be created. You’ll notice Mod Recipes is empty by default. Go ahead and add a new entry.
Start by entering the “Building Type Id”. Go ahead and enter the building id from earlier, to say this recipe can only be used by that building. Leaving this empty will make the recipe not work at all.
“Ticks to Complete Item” says how many in game ticks it should take to transform the input to the output. In this case I want Coal to be burned instantly so I’ll set this to 0.
– Heat Source Required: Will define if this recipe requires a Heat Source to be made. Only possible if the building allows heat sources.
– Output Quantity: The amount that is created. E.g. for 1 coal, we will get 4 ashes.
– Override Material: This is a special field. When disabled, the building will try to find an input item of the Material Type as one of the Materials in the output item. Ashes don’t have any material, so we will enable this box, which tells the game to ignore material matching checks. When this is enabled, you can specify the Material Item Type Id that the created item should have. Which is None in our case.
In the Mod Requirements, we choose what is required to create our item. We can choose what Material Item Type Ids we want to allow, and the same settings as we talked about previously. With a few exceptions.
Here, Countis not ignored and will define how many items we need to create x amount (x is defined by the Output Quantity) of our new item.
Is Multiple Optional is a more advanced setting that we’re going to ignore for now. Leave this unchecked.
Items have the ability to show a different icon based on the price, to mode visually signify their value over others of their kind.
We’ve only got 1 icon, so I’m just going to set the Minimum Price to 0 and the Sprite to the Sprite of our Ashes.
And with that, we have our new item configured!
Before the building knows that this is a recipe it can use, however, we have to go back to our ModBuilding, and add the Recipe to our “Available Recipes”. Here, since the item is not from the base game, we leave that unchecked and link the “Mod Resource” to “Ashes (Mod Resource Definition)
Believe it or not, that should be all!
If you’ve followed this tutorial, you should now have a working mod.
If this is not the case, retrace all your steps and go through the guide again, or create a post on the community forum, where we’ll further help you out.
In the final part, we will show you how to export your mod to use it in the game.
Exporting your mod
Exporting the mod is the easiest part. Yes, even easier than creating the project!
All we have to do is press “Tools” -> “ModTool” -> “Export Mod” in the top bar.
Now we just have to enter a “Mod Name”, “Author”, “Version”, and a simple “Description”. These are values that will be shown in-game.
For “Platforms”, leave that on “Everything”. And set the “Content” to “Assets, Code”.
Then just set your Output Directory. (Tip: you can directly set the output directory to the Mods folder of Forge Industry for quick testing).
And press “Export Mod”.
If you didn’t directly export your mod to the Mods folder in Forge Industry, move it there manually.
Now start the game, open the Mods menu, enable the mod, create a new world, and enjoy your new creation!
Mod Object Ids
Road Type IDs
Brick Road – 100000000000
Paved Road – 100000000001
Dirt Road – 100000000002
Wooden Road – 100000000003
Rail Road – 100000000004
Delete Road – 100000000005
Building Type IDs
Refinement Station – 200000000000
Forge Station – 200000000001
Woodsaw – 200000000002
Alloy Station – 200000000003
Fastener Station – 200000000004
Storage Crate – 200000000005
Jewelry Station – 200000000006
Workbench – 200000000007
Marketplace – 200000000008
Recreation Area – 200000000009
Decor – 200000000010
Mine – 200000000011
Fletcher Station – 200000000012
Armory – 200000000013
Harbor – 200000000014
Notice Board – 200000000015
Lumberyard – 200000000016
Recycling Station – 200000000017
Harbor Abandoned – 200000000018
Architect Atelier – 200000000019
Architect Atelier Abandoned – 200000000020
Bazaar – 200000000021
Bazaar Abandoned – 200000000022
Gondola – 200000000023
Gondola Abandoned – 200000000024
Railway Station – 200000000025
Quarry – 200000000026
Kiln – 200000000027
Material Foundry – 200000000028
Material Type IDs
None – 300000000000
Oak – 300000000001
Birch – 300000000002
Cedar – 300000000003
Mahogany – 300000000004
Iron – 300000000005
Copper – 300000000006
Silver – 300000000007
Gold – 300000000008
Tin – 300000000009
Platinum – 300000000010
Titanium – 300000000011
Bronze – 300000000012
Steel – 300000000013
Rose Gold – 300000000014
Silver Wood – 300000000015
Cinder Heart – 300000000016
Aracia – 300000000017
Skystone – 300000000018
Kiaxorite – 300000000019
Tungsten – 300000000020
Durasteel – 300000000021
Celestial Bronze – 300000000022
Acacia – 300000000023
Emberbark – 300000000024
Specific Item Type IDs
None – 400000000000
Gold Coin – 400000000001
Stone – 400000000002
Coal – 400000000003
Leather – 400000000004
String – 400000000005
No Item – 400000000006
Wild Card Any Ore – 400000000007
Wild Card Any Ingot – 400000000008
Wild Card Any Material – 400000000009
Wild Card Any Heat Source – 400000000010
Wild Card Any Finished Item – 400000000011
Wild Card Any Valid Item – 400000000012
Failed Alloy – 400000000013
Long Sword – 400000000014
Short Sword – 400000000015
Falchion – 400000000016
Cutlass – 400000000017
Claymore – 400000000018
Rapier – 400000000019
Broadsword – 400000000020
Scimitar – 400000000021
Zweihander – 400000000022
Saber – 400000000023
Tankard – 400000000024
Marble – 400000000025
Clay – 400000000026
Charcoal – 400000000027
Broadhead Arrow – 400000000028
Splayed Arrow – 400000000029
Single Barb Arrow – 400000000030
Whistle Head Arrow – 400000000031
Shortbow – 400000000032
Longbow – 400000000033
Recurve Bow – 400000000034
Crossbow – 400000000035
Heavy Crossbow – 400000000036
Hand Crossbow – 400000000037
Diamond – 400000000038
Ruby – 400000000039
Amethyst – 400000000040
Emerald – 400000000041
Fire Opal – 400000000042
Monazite – 400000000043
Onyx – 400000000044
Pearl – 400000000045
Peridot – 400000000046
Sapphire – 400000000047
Skymox – 400000000048
Topaz – 400000000049
Padded Armor – 400000000050
War Bow – 400000000051
Yumi – 400000000052
Repeater – 400000000053
Coke – 400000000054
Jian – 400000000055
Katana – 400000000056
Hand Axe – 400000000057
Logger Axe – 400000000058
Splitter Axe – 400000000059
Battle Axe – 400000000060
War Axe – 400000000061
Club – 400000000062
Flail – 400000000063
Mace – 400000000064
Warhammer – 400000000065
Fleshpounder – 400000000066
Nunchucks – 400000000067
Ice Pick – 400000000068
Simple Dagger – 400000000069
Sword Breaker – 400000000070
Narrow Dagger – 400000000071
Tanto – 400000000072
Sai – 400000000073
Horse Shoe – 400000000074
Chandelier – 400000000075
Boomerang – 400000000076
Hammer – 400000000077
Pickaxe – 400000000078
Nasal Helmet – 400000000079
Great Helm – 400000000080
Kettle Hat – 400000000081
Spangen Helm – 400000000082
Orcish Helmet – 400000000083
Cuirass – 400000000084
Chainmail – 400000000085
Breastplate – 400000000086
Scale Armor – 400000000087
Small Buckler – 400000000088
Tower Shield – 400000000089
Heater Shield – 400000000090
Nguni Shield – 400000000091
Spear – 400000000092
Glaive – 400000000093
Halberd – 400000000094
Poleaxe – 400000000095
Ring – 400000000096
Pendant – 400000000097
Diadem – 400000000098
Item Type IDs
None – 500000000000
Axe Head – 500000000001
Ball – 500000000002
Bar – 500000000003
Barb Head – 500000000004
Battle Axe Head – 500000000005
Bolt – 500000000006
Broad Head – 500000000007
Broadsword Blade – 500000000008
Butcher Blade – 500000000009
Chain – 500000000010
Chokuto Blade – 500000000011
Claymore Blade – 500000000012
Crossguard – 500000000013
Cutlass Blade – 500000000014
Dagger Blade – 500000000015
Dual Axe Head – 500000000016
Eastern Guard – 500000000017
Falchion Blade – 500000000018
Glaive Blade – 500000000019
Grip – 500000000020
Halberd Head – 500000000021
Handguard – 500000000022
Ingot – 500000000023
Jewelry Chain – 500000000024
Jian Blade – 500000000025
Katana Blade – 500000000026
Katar Blade – 500000000027
Katar Handle – 500000000028
Kukri Blade – 500000000029
Lath – 500000000030
Log – 500000000031
Longsword Blade – 500000000032
Mace Head – 500000000033
Machete Blade – 500000000034
Nails – 500000000035
Narrow Dagger Blade – 500000000036
Odachi Blade – 500000000037
Ore – 500000000038
Parring Crossguard – 500000000039
Planks – 500000000040
Pole Axe Head – 500000000041
Pommel – 500000000042
Rapier Blade – 500000000043
Rivet – 500000000044
Rod – 500000000045
Saber Blade – 500000000046
Sai Blade – 500000000047
Sai Grip – 500000000048
Scabbard – 500000000049
Scimitar Blade – 500000000050
Staff – 500000000051
Sheet – 500000000052
Shortsword Blade – 500000000053
Spear Head – 500000000054
Splayed Head – 500000000055
Splitting Axe Head – 500000000056
Stirrup – 500000000057
Swordbreaker Blade – 500000000058
Trigger – 500000000059
Wakazashi Blade – 500000000060
Warhammer Head – 500000000061
Whistle Head – 500000000062
Wrapped Grip – 500000000063
Wrapped Katar Handle – 500000000064
Zweihander Blade – 500000000065
Claymore Crossguard – 500000000066
Zweihander Crossguard – 500000000067
Limb – 500000000068
Heavy Lath – 500000000069
Stock – 500000000070
Broadhead – 500000000071
Single Barb Head – 500000000072
Scraps – 500000000073
Ring – 500000000074
Sword Breaker Blade – 500000000075
Tanto Blade – 500000000076
Pendant – 500000000077
Diadem – 500000000078
Hammer Head – 500000000079
Gem – 500000000080
Shaft – 500000000081
Thank you for joining us on this journey through Forge Industry – How to create mod tutorial guide, inspired by a captivating article by OpTic Applejack, Devvix. If you believe there are ways to enhance this post, please let us know in the comments. Have an excellent day, and make sure to check back daily for new updates!
- Check All Forge Industry Posts List
Leave a Reply