Everyday Life Edengrall has mod support, this guide will lead you through the proccess of creating simple and complex mods.
Creating a mod
To create a mod for Everyday Life Edengrall open the Mod options in the main screen and click on the “Create Mod” Button.
The game will ask if you wish to create a simple or complex mod.
Simple mods
Mods that add/modify Images, Text or XML files only are simple mods, they do not require compiling any code, just creating folders and dragging the files into them.
Simple mods can have more complex assets, but this will require the creation of an asset bundle through Unity, we explore this as a sample mod later on this guide;
When creating a simple mod a folder with the basics will be created in your mods folder, make sure you edit the manifest to add a description and replace the Preview.png with another image with the same dimensions.
The simple mod will come with an empty Language file for English, this is optional you can delete this or replace with any other language.
Complex mods
These are mods that add/modify scripts. Complex mods can change fundamental features of the game and require a lot more knowledge to create and maintain. These mods will require compiling code, so you will need an IDE.
We recommend using Visual Studio or JetBrains Rider as IDE.
When creating a complex mod the folder will start empty, the code to be compiled will instead be created in a different folder and only after compiled the content will be transfered to the actual mod folder, this way source files are not placed into the folder to be uploaded to Steam, but you can include them as a zip anyways if you wish to share source files so other modders can check them out.
Sample Mod: Simple furniture mod: Creating an Asset Bundle
Simple mods by default will only import text and image files. To add more complex assets like models, materials, sounds, animations, etc… we will need to create an asset bundle.
The asset bundle must be packed through Unity, so you will need to install the Unity engine, we recommend using the same version as we use for the game, you can see the Unity version on the top in the start screen after the game version.
Furniture items have meshes and materials assets, and therefore require you to create an asset bundle for it to work.
Asset Bundle File: Required on mods that add anything that is not text, image or code. It’s the only way to inject meshes, materials, audio files, etc
It must be created through the Unity Engine Editor
First lets create a new simple mod.
Keep the mod folder open, but you can close the game for now.
To create an Asset Bundle, open Unity and create a new unity 3D project:
First Create a new script to package the asset bundle. This script won’t be run by the game, only by Unity to package the assets, it won’t be part of the mod itself.
Copy the code below and replace the contents of the default script, also rename the script “AssetBundleExporter”
#if UNITY_EDITOR using System.IO; using UnityEditor; public class CreateAssetBundles { [MenuItem ("Assets/Build AssetBundles")] static void BuildAllAssetBundles () { Directory.CreateDirectory("Assets/AssetBundles"); BuildPipeline.BuildAssetBundles ("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); } } #endif
This script will pack our assets into a bundle that the game can import.
These are our assets, we have created the models in Blender, we also made the texture with Blender texture painting mode and the icons are based on screenshots of the models. We use 256×256 PNG for our icons.
Both the table and chair use the same texture, but you can make one for each if you want more detailed models.
Now Drag the contents of your mod into the project.
Create the material using the texture we made earlier, you can also add height and normal maps for a more detailed material.
Configure the meshes, our meshes have no animations or rigs to import, so make sure to set them to none, also do not import the mesh material, since we made our own in Unity instead.
The “Read/Write Enabled” is required, other settings are just a suggestion.
Previewing the models and materials on the scene view is optional.
Create a new asset bundle. Selecting any of the assets and find the asset bundle option in the bottom of the inspector
Assign the required assets to be part of an asset bundle, make sure all the blend files, images and the material are assigned to the same bundle.
We also recommend changing the icons into Sprites since they are UI elements.
Once all assets are assgined to the bundle, compile the asset bundle. A new folder will appear with the packed assets.
Copy the asset bundle and its manifest to the mod folder we created earlier. You can now close the Unity project, we don’t need it anymore.
The asset pack is done, now continue through the next section for content and essential mod files
Sample Mod: Simple furniture mod: Content and Finishing the Mod
We have the asset bundle in the mod folder. Now we need to edit the Localization File, the Content descriptor XML, edit the Manifest and make a nice image for the mod page.
Localization file – Any csv that begins with “Language;(your language here)” will be considered and read as a language file. It could have any name and be for any language, the game automatically adds new languages in the settings if there is at least one file for said language.
This is the file for this mod:
Language;English ExampleChairName;Softwood Chair ExampleChairDesc;A chair made out of softwood ExampleTableName;Softwood Table ExampleTableDesc;A table made out of softwood
Content description file – All files that ends with “.xml” will be checked for a content description file. Those are defined by xml files starting with:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <GameDefs>
To create a xml file just create a new text file, and change the file extension from .txt to .xml
You can split your mod content in as many files or folders you want or need. We recommend keeping a single file for each type of content, one for Furniture, other for building Materials for example, but you can keep everything in a single file if you wish.
This is this mod content file:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <GameDefs> <ItemDef> <Entity> <UniqueID>Game.Base.Items.Buildable.ExampleChair</UniqueID> <ItemDefinition> <name>$$ExampleChairName$$</name> <description>$$ExampleChairDesc$$</description> <icon> <path>$MODS$/Softwood Table and Chair/Assets/chairandtable./Softwood Chair</path> </icon> <noAmount/> </ItemDefinition> <Buildable> <Furniture/> <Position>Furniture</Position> <Mesh>$MODS$/Softwood Table and Chair/Assets/chairandtable./Normal_Chair</Mesh> <Collision>$MODS$/Softwood Table and Chair/Assets/chairandtable./Normal_Chair_COL</Collision> <Material>$MODS$/Softwood Table and Chair/Assets/chairandtable./Softwood Table</Material> <StaminaCost>1</StaminaCost> <BuildingCost> <ItemID>Game.Base.Items.Crafting.SoftWoodenSticks</ItemID> <Amount>100</Amount> </BuildingCost> <FurnitureHook> <x>0.3</x> <y>0</y> <z>0.3</z> </FurnitureHook> <FurnitureHook> <x>-0.3</x> <y>0</y> <z>0.3</z> </FurnitureHook> <FurnitureHook> <x>0.3</x> <y>0</y> <z>-0.3</z> </FurnitureHook> <FurnitureHook> <x>-0.3</x> <y>0</y> <z>-0.3</z> </FurnitureHook> </Buildable> </Entity> </ItemDef> <ItemDef> <Entity> <UniqueID>Game.Base.Items.Buildable.ExampleTable</UniqueID> <ItemDefinition> <name>$$ExampleChairTable$$</name> <description>$$ExampleTableDesc$$</description> <icon> <path>$MODS$/Softwood Table and Chair/Assets/chairandtable./Softwood Table</path> </icon> <noAmount/> </ItemDefinition> <Buildable> <Furniture/> <Position>Furniture</Position> <Mesh>$MODS$/Softwood Table and Chair/Assets/chairandtable./Softwood_Table</Mesh> <Collision>$MODS$/Softwood Table and Chair/Assets/chairandtable./Softwood_Table_COL</Collision> <Material>$MODS$/Softwood Table and Chair/Assets/chairandtable./Softwood Table</Material> <StaminaCost>10</StaminaCost> <BuildingCost> <ItemID>Game.Base.Items.Crafting.SoftWoodenSticks</ItemID> <Amount>50</Amount> </BuildingCost> <BuildingCost> <ItemID>Game.Base.Items.Crafting.SoftWoodenPlanks</ItemID> <Amount>80</Amount> </BuildingCost> <FurnitureHook> <x>0.5</x> <y>0</y> <z>0.3</z> </FurnitureHook> <FurnitureHook> <x>-0.5</x> <y>0</y> <z>0.3</z> </FurnitureHook> <FurnitureHook> <x>0.5</x> <y>0</y> <z>-0.3</z> </FurnitureHook> <FurnitureHook> <x>-0.5</x> <y>0</y> <z>-0.3</z> </FurnitureHook> </Buildable> </Entity> </ItemDef> </GameDefs>
Mod manifest – Must be named Manifest.xml and is required.
These are the possible values:
<Name> The name of the mod
<Description> The description of the mod
<ModVersion> The mod version
<Type> The type of the mod, any value is fine
<ForVersion> The game version this mod was made for, adding a + after the version means it is compatible with all future versions
<Requires> This mod dependencies and it’s version, if you are already using ForVersion there is no need to add the main module here, this is just an example
<Requires> Repeat for multiple requirements
This mod Manifest.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Manifest> <Name>Softwood Table and Chair</Name> <Description>Adds Softwood Table and Chair for decorating your home!</Description> <ModVersion>1.0</ModVersion> <ForVersion>V0.30.0.4+</ForVersion> <Type>Content</Type> <Requires>Everyday Life Edengrall:V0.30.0.4+</Requires> </Manifest>
Preview.png – The image that is uploaded to the steam workshop by default, the image size must be 636×358
Testing the Mod
The mod is ready for testing now, open the game and drag the mod from the available list to the active list and restart the game.
Now start the game and test your creation
Uploading to Steam
After testing and making sure your mod doesn’t break anything you can upload it to Steam, select it in the mod loader and press the Upload button, the first time you do so you will have to agree with Steam’s Subscriber Agreement.
If everything goes well the workshop page will open in a browser window so you can edit it further.
This is all about Everyday Life Edengrall – How to Create Mod/Config Tutorial Guide; I hope you enjoy reading the Guide! If you feel like we should add more information or we forget/mistake, please let us know via commenting below, and thanks! See you soon!
- All Everyday Life Edengrall Posts List
Leave a Reply