E.E.R.I.E

E.E.R.I.E

Not enough ratings
"MutantWarzone" MOD development tutorial
By Sardine
a half-baked translation of the modding guide.
(all but the mapping and campaign section are done, and pictures from the PDF need to be added)

you can use the pictures in the PDF with it.
(PDF is with the development tools, and I have pictures are listed 'page#'-'picture on page', ie. [picture8-2] = page 8, second picture)

here's the Daiyousei picture-
https://danbooru.donmai.us/posts/419752
   
Award
Favorite
Favorited
Unfavorite
0. Preliminary Preparation
0.1-foreword
First of all, before you start making mods, it is highly recommended that you join the QQ group, group number: 948438056, so that you can keep in touch with the developer of this game and other developers, and remember to explain your purpose when adding a group.
The skills you need to master to develop mods are mainly Unity. You can add resources to the project, know the component system of Unity, and modify some parameters.
You don’t need to master the programming language. Of course, you need to add some unique functions and If you want to play, you still need to know some C#.
The entire project is completely open source, the volume is not large, and it will not be very complicated to learn.

0.2-for English speakers
I(the One translating this) do not speak Chinese nor do I know any who do, so take everything written with some skepticism if anything doesn't seem to work properly.

original text-
If you are an English speaker, I am sorry that this document only contains Chinese, but you can use translation software to translate this document, and you can share your translated version.
After the mod community grows, I will consider writing an official English mod development document some day.

0.3-installation of development tools[www.dropbox.com]
In fact, this mod development tool is a complete open source unity project, and it is easy to know this.

Step 1: Make sure you have unity hud and unity2019.4.14 version installed.
Step 2: Unzip eerie_osource.zip.
Step 3: Click Add Project in unity hud, then select the folder unzipped by eerie_osource, and start the project after adding it.
Now you should be able to open the dev tools, the first launch of unity will automatically complete the file, so it will take some time.
1.1-character texture preparation
You only need to do the following steps, and the texture of the mod character is ready.

Step 1:
Bind your character model to the bones used in the game: there is an fbx file called character_bone in the attachment, it contains a set of human skeletons, this is the standard skeleton used in the game, you need to bind your character model to it and configure the weights (general modeling software has automatic algorithms, as long as minor adjustments are required).
You can change the skeleton to suit your character, or change the character mesh to fit the skeleton, try to use the latter when the shape of the character mesh and bones are not much different.
Because changing bones requires re-importing a whole new set of skeletons, this would be tedious and pointless.
At the same time, it is recommended to merge the main body of the character into a mesh, which will appear more concise and improve efficiency.
If you can use blender, you can open the character_demod.blender file in the attachment, which contains the art materials of standard humanoid bones and Daiyousei. It will be more convenient to make character art materials in this project file.

Step 2:
Set the character's face(optional): The game will control the character's eye opening and closing and eyebrow movements by changing the shape keys. The first shape key is used to control the character's eye opening and closing. Eyes (0 means open eyes, 1 means closed eyes), the second shape key is used to control the action of the character's eyebrows, of course, you can give up the blinking and eye closing effects without setting the shape key.


Step 3:
Set the switchable details of the character(optional): The game will have options to select some character details in the character selection interface, such as the character's skirt, etc.
If you need to set an appearance object to be switchable, then this object should be a separate mesh, and it is recommended to bind this object to a bone and attach a simple weight, of course, you can also give up all Switchable details for characters.

Step 4:
The character's arm model(optional): The game will close the original character model (the one done in the first step) and display the character's arm model when the camera is opened and aimed, so as to prevent the camera from passing through the model into the head, produces a horrific picture.
The production of the arm model is very simple, that is, the part of the arms in the original character model is cut and copied, so that it has the original bone binding and weight. If the original character model has shape keys, remember to delete it in the arm model, because the game will not call the shape key of the arm model.
There is a situation where a character's arm model is not needed, and that is when the character is just acting as an AI character.


Step 5:
Export model material: After the above necessary steps are completed, you can export the fbx format texture of the character, the exported file should contain the following contents:
  1. The main mesh of the character.
  2. Character arm mesh.
  3. Matching bones.
  4. Other meshes such as skirts, objects that can be switched on and off in the detail panel, etc.
It is recommended to give each mesh a recognizable name for easy search in Unity, and then you can put the fbx file into the assets of the mod production project file(recommended to put it in Assets/Arts/Characters), then adjust the rig settings of this model to this in Unity.


Step 6:
Model textures and materials: After the model is imported, drag the textures matching the model into assets (recommended to be placed in Assets/Arts/Characters/Materials and Assets/Arts/Characters/textures), and create materials based on these textures, Material detail parameters are adjusted as needed.
It is recommended to give each material a recognizable name to facilitate finding it in Unity and attaching it to the object.
If you use blender to make art materials, before exporting, ensure that the rotation of the character mesh is zeroed, scaled to (1, 1, 1), and then select the mesh and bones to be exported, then export according to the settings shown in the picture.

1.2-new character settings(player)
1.2-new character settings(player)
The first step is to prepare a new character prefab and replace the art material. If the humanoid skeleton is not modified during the preparation of the character art material and the standard model is maintained, then the next step will be relatively simple, find it in the unity project Assets/IntenseTPS/Prefabs/Player/Players folder.
Choose a character with the most similarities to the mod character you want to make(similarities, such as both wearing skirts, both having ponytails, having a shared mesh, the same character, etc.), then copy one and change it to the name you need(preferably in English), so you have a new character prefab.
Open this new character prefab, because you have not modified the humanoid skeleton, so you can directly replace the mesh and material in the character Mesh renderer, such as replacing the old main model with the new main model, and replacing the old arm model with the new arm model, very simple.
Of course, you can also hang objects on the character bones, after all, this is Unity.
You can fill in the avatar in the Animator component as the avatar of this character model, but since the bones are actually unchanged, this step is not necessary.

But if you choose to change the skeleton to fit your character when making the texture, a simple mesh and material and material replacement will be useless, and the character import step will be complicated because you need to import new bones for the game.
Specific steps are as follows:

1-
First drag an original playable character prefab into the scene, this character prefab will act as an intermediary, and its components will be copied to the new character.
Then drag the new character into the scene (directly into the entire texture with skeleton), adjust the size, and set the position so that it basically matches the original operable character.
2-
Then hang EditorComponentCopy on the new role, then fill in the original operable role fromGo, fill in the new role in toGo, and then click the Copy Components button. At this time, the components should be copied to the new role, and the EditorComponentCopy component can also be deleted.

3-
Also create a physical ragdoll for the new character.
Open the GameObject/3DObject/Ragdoll in the Unity menu bar, set as shown in the figure (so the references of these bones should be those of the new character), and then click the Create button to create a physical ragdoll.
[picture8-1]
4-
Select the new character and find AgentHealth.
Open the Colliders menu.
Then click the following buttons in sequence:
i) Set All Child Rigidbodies to Kinematic
ii) Set All Child Colliders to Trigger
iii)Add Damage Receiver To All Colliders
In this way, the important parts of the character have a Damage Receiver, and then you can also set the parameters of the Damage Receiver, and then you also need to fill in Organic on the Collider Tag so that the character will have visual effects after being hit.
[picture8-2]
5-
Finally, we need to set the layer of the collision body for the player characters that can be manipulated:
Select a new character (that is, the gameobject whose name is the character's name and is on the top layer of the character's prefab), and then set the layer to player, a dialog box will pop up asking whether to change the child objects as well, select no.
Then select my character in the mixamorig: Hips (the topmost bone) in the bones, set the layer to playerBody, and a dialog box will pop up asking whether to change the sub-object as well, this time select yes.
AI character: Select a new character (that is, the gameobject whose name is the character name and is on the top layer of the character prefab), and then set the layer to solder, a dialog box will pop up asking whether to change the sub-object as well, select no.
Then select mixamorig: Hips (the topmost layer of bones) in the bones, set the layer to soldierBody, and a dialog box will pop up asking whether to change the sub-objects as well, this time select yes.
The layer settings for the collider are complete.
6-
Fill in the avatar in the Animator component as the avatar of this character model.
[picture9-1]

After the above 6 steps, you should get a brand new set of bones, and then you can reuse this set of bones to quickly create new characters by replacing meshes and materials.

The second step is to set various attributes of the character.
In this step, we start with the component attached to the character prefab.
The outlined components are important components that determines various attributes of the character, and I will introduce them one by one.
[picture10-1]
a)CharacterManager
[picture10-2]
1-
The character's code (string type), the purpose is to be recorded in the settings, so that the next time the game is opened, the last used character will be selected by default, this code must be unique, so you can use names that are not easy to repeat, or 16-bit garbled characters, it is recommended to use English and numbers.
2-
The character's archive name (string type), which is used as a file name to read and save the character's item archive (the character's item archive location is in Assets/StreamingAssets/characters_datas), this does not need to be unique, that is, multiple characters can use one archive (such as the school uniform Daiyousei and the stealth suit Daiyousei), and the archive name is also related to the plot and mission system.
It is recommended to use English and numbers.
3-
The English name of the character, the Chinese name of the character, the English introduction of the character, and the Chinese introduction of the character are only used for the display of the selection interface and have no actual function.
4-
The avatar of the character, used for display on the selection interface, is generally stored in (Assets/Arts/2D/face), and the recommended size is 256x256.
5-
Facial control, usually hung on the main mesh of the character (the one with the shape key), there is a parameter to control the blinking speed, if your character model does not have shape keys for eyebrows and eyes, this column should be left blank.
6-
Material switching, which is usually attached on the main mesh of the character, when the character is knocked down, the material set in it (mainly the face material is the effect of closing the eyes) will be used to replace the original material of the character, there is no need for shape keys to close the eyes, if you don't have a replaceable closed eye texture or you already have face controls, this field should be left blank.
7-
The sound effect when the active skill is triggered, press the b key(default) to trigger the sound effect when the active skill is triggered.
8-
Active skill icon, the skill icon displayed on the hud, if there is no skill, it can be set to empty.
9-
The picture of the active skill bar is displayed on the progress bar of the remaining time after the skill is triggered, the recommended size is 400x80, if there is no skill, it can be set to empty.
10-
Skill duration(in seconds), the duration of the skill, pressing the b key(default) will start timing after the skill is triggered, after the timing reaches this time, the EnableCharacterAbility(false) method of the CharacterAbility script will be called, this value is meaningless if there is no skill.
11-
Skill cooldown time(in seconds), press the b key(default) to start timing after the skill is triggered, after the timer reaches this time, the skill can be triggered again.
It is necessary to keep this number greater than the duration of the skill, otherwise there will be a phenomenon that the active skill can be continuously triggered, which is contrary to the design principle of the active skill.
1.2-part 2✓
12-
Bilingual skill introductions are only displayed on the selection page and have no practical significance, you can write them even if you do not have active skills, for example, if you want to introduce passive skills.
13-
Character details setting, a list containing the configurable details of the character.
The details are first with the common bilingual introduction and name, and then a bool value called def, which is enabled by default when it is checked (set to true), and vice versa.
After that, there are two lists of game objects, the first enable objects refers to the objects that will be displayed when the details are turned on (or the objects that will be hidden when the details are turned off), the second disable objects refers to the objects that will be hidden when the detail is turned on (or the objects that will be displayed when the detail is turned off).
When setting details, it is necessary to avoid different settable details referencing the same object, which will obviously cause confusion.
14-
The model of the character, these two lists are mainly related to the aiming perspective, the first main renders is the model(renderer) that will be hidden when switching to open the camera, this should include all the models that will cause bad visual phenomena when the mirror is opened, such as the main models that are easy to wear through the mold, night vision devices, etc.
The second arm renders is the model that will be displayed when switching to open mirror, generally only the arm model is needed here.
None of these lists must have empty objects.
15-
The logo and background color of the backpack interface are purely visual elements and have no special effects.

b)PlayerWeaponManager
[picture12-1]
1-
The sticking position of the morale badge is generally set as a sub-object of spine1 (waist bone). If you don't want to display the morale badge, you can set it to empty.
2-
The weapon carrying script, the pistol holder is where the secondary weapon is placed, and the back holder is where the main weapon is placed.
The position is arbitrary, and the weapon carrying script is required and cannot be set to empty.
3-
The larger the alarm coefficient, the easier it is to enter the alert state.
4-
The ending screen after being knocked down can be used to make a defeated CG. For details, please refer to plotending.

c)AgentHealth
[picture12-2]
1-
Character camps, red, blue and green are hostile to each other and can cause damage to each other, but the same camp cannot cause damage.
Natural objects are not hostile to AI.
2-
Current health and maximum health
3-
AI detects markers, AI will use these positions as markers to shoot you, generally speaking, there is no need to make too many changes here, of course, you can also mess around and see what happens.
4-
DamageReceiver, this script is hung on bones all over the body.
The first attribute of the damage receiver is the pointed AgentHealth, the second attribute is the damage coefficient, if the weapon damage is 100, the damage coefficient is 0.5, then, if you hit this damage receiver, the final damage passed to AgentHealth(that is, the actual amount of health deducted) is 50. By setting the damage coefficients of different damage receivers to be different, you can make different effects of hitting different positions.
However, the damage of explosives is directly affected by AgentHealth and will not be affected by the damage coefficient.

d)Grounded Manager
[picture13-1]
1-
The strength of the jump, a number between 300-350 is recommended.
2-
In order, the maximum stamina value and the current stamina value, the stamina value consumed by melee combat, the stamina value consumed by jumping, the minimum stamina value that can be run, the stamina value recovered per second when not sprinting, and the stamina value consumed per second when sprinting.
3-
There are three sound effects, which are the sound effects of melee hitting ordinary objects, the sound effects of melee hitting people, and the sound effects when melee is triggered.
4-
The special effects of hitting are generally short particle effects, regardless of whether it hits an object or a person.
5-
To know what this position means when you hit the detected point, you must first know the principle of melee check, there is a KickProcess(0) event on the melee animation, when this event is triggered, the kick check point will be the center of the ball, kick check radius is the radius of detection, the target in this ball will be hit, so if you change melee to boxing, you should set this position on the fist, and the punch animation is added to the event following the original kick animation, which will not be described in detail.
6-
Melee damage, melee strength, melee detection radius(mentioned above), and melee cooldown.
It's easy to understand, so I won't go into details.

e)ScriptGenerator
[picture14-1]
A very powerful component, the code added by the MutantWarzone mod is all implemented by it, which will be introduced in the code chapter.
Although there are many uses, the main function of ScriptGenerator on characters is to write active skills.
All character skill scripts must inherit from CharacterAbility, otherwise they will not be triggered.
EnableCharacterAbility(boolenable = true) is the main body of the script. When enable = true, the skill is triggered. When enable = false, the skill ends, the specific content of the skill can be whatever you can think of.
It should be pointed out that ScriptGenerator cannot directly reference objects in the inspector like general scripts, but ObjectReferencer can help scripts in ScriptGenerator to reference objects, you can directly see the code of these two components for the specific function implementation, or you can ask me directly, after all, this is an open source project, I will definitely support you.
1.3-new character settings(AI)✓
Step 1:
Prepare a new AI character prefab, replace the art material, and find the folder Assets/IntenseTPS/Prefabs/AI/Agents/Devils in the unity project.
Choose an AI character that is most similar to the mod character you want to make, then copy one and change it to the name you want(preferably in English), so that you have a new AI character prefab.
Open this new character prefab and directly replace the mesh and material in the character Mesh renderer, or create a new skeleton, as already mentioned.

Step 2:
Set various attributes of the AI character.
In this step, we start with the components attached to the character prefab.
The outlined components are important components that determine various attributes of AI characters, and I will introduce them one by one.
[picture15-1]
a)AIDirectorShooterWeaponManager
[picture15-2]
1-Character icons and bilingual names will only be displayed in the urea tool and have no practical effect.
2-Whether it can be generated by the enemy generator on the map, and the matching campaign code, you can check the chapters of the map and campaign for details, and I won't go into details here.
3-Weapon ID, the ID of the firearm used by AI, you can check the item chapter for details.
4-The firing rate (rounds per minute), the rate of fire when the AI is firing continuously.
5-For the ammo ID used by AI weapons, please refer to the item chapter for details.
Fill in 0 to automatically use the first available ammo for the firearm.
6-The objects dropped when the AI is knocked down, and the probability of dropping.
7-Material switching has been mentioned in the previous section.
b)AIDirectorThrowableManager
[picture16-1]
The only thing that can be adjusted is the Throwable ID, the ID of the throwable used by the AI, and if blank then throwables won't be used.
c)AgentHealth
[picture16-2]
1-The lines when being knocked down can be used to control the plot(for details, please refer to the chapters of maps and campaigns).
2-The number of points awarded after being knocked down by the player, the number is 100点 per 1, as such, 0.8 is 80点.
3-Whether it is a boss or not, if it is checked, the health bar will be displayed after being hit, it does not matter whether it determines the plot or not.

Others are the same as mentioned in the previous section.
1.4-new character test✓
Step 1:
Open the main interface scene. This scene is the first scene after the game starts, and contains all the important singletons, if you want to test, you must start from this scene, not a map scene.
[picture17-1]
Step 2:
Find the gameManager component attached to the manager, if you want to test manipulable characters, drag the character prefab into characters, if you want to test AI characters, drag the character prefab into All AI agents.
[picture17-2]
Step 3:
Play the game (make sure it is in the main interface scene), use the last column of the urea tool to open a map at will, if you want to test a manipulable character, you should be able to see and use the new character in the picker screen, and you can start the game for testing.
If you want to test AI characters, you should be able to find new characters in the urea tool, which can be dragged into the scene test.
Step 4:
After the character test is completed, and before the character mod is ready to be packaged, the tested characters should be removed in time to prevent confusion.
2. Map and Campaign Modding
3. Item Modding✓
Different from the above two chapters, this chapter will not detail the production methods of weapons, accessories and other objects, as well as the production of textures(in fact, the degree of freedom of textures for objects is also very high).
This chapter is more about the two different categories of items and their basic properties.

3.1-InventoryItem
3.1.1-Basic Attributes of Inventory Items
InventoryItem is a component common to items that can be put into a backpack, including weapons, accessories, ammo, food, medicine and other miscellaneous things, if you are trying to create a new item, it is recommended that you go to the Assets/IntenseTPS/Prefabs/Inventory/Inventory Items to find an item similar to the item you want to create, change the ID and other simple properties of the item in the InventoryItem component, and then research how to change the art material or change the properties or something.
[picture33-1]
1-The ID of the item, like the campaign ID, needs to be guaranteed to be an absolutely unique ID (unique in the entire game, even in all items in the creative workshop), which can be any int number,
However, I hope mod creators don't use item IDs in the 0-999 range, because this may take up the official update content.
2-Bilingual item names and descriptions.
3-The maximum number of overlaps in a single grid in the backpack, this can be any number, but weapons and accessories must be 1 (or they cannot overlap).
4-The length and width occupied by the item in the backpack.
After the adjustment, the item icons below will be changed at the same time, the main weapon must be 2 blocks long and one block high, and the secondary weapons and accessories must be 1 block in size.
5-The size when viewed.
6-The reward you get when you recycle, 0.05 is 5点 and 1 is 100点.
7-Select data name, at present, you only need to know the names of the files in
Assets/IntenseTPS/Prefabs/Inventory/Inventory/Items/Weapon/Projectiles/_ammoDatas
and
Assets/IntenseTPS/Prefabs/Inventory/Inventory/Items/Weapon/Accessory/0_PartDatas
For example, the item you want to make is the handguard of the ar15 rifle, then you should fill in the ar15Handguard, then the handguard slot of the ar15 rifle can use this item.

3.1.2-Inventory Item Testing
If you create a new inventory item and want to test it, then you just need to open Assets/IntenseTPS/Scenes/Empty.unity(main menu scene) first, drag this item prefab into the first column of the ItemPrefabDictionary as shown in the figure, and then play the game to find it in the urea tool.
[picture34-1]
I know you may still have some vague ideas, but that's all for inventory items, if you do have problems crafting a specific kind of item, first you should go to Assets/IntenseTPS/Prefabs/Inventory/Inventory/Items and find some examples to learn to imitate some(or simply copy some), if that can't meet your needs, then you can also come to me directly, I will definitely understand.

3.2-levelObject
3.2.1-Basic properties of scene objects
levelObject (scene object) is a common component of objects in the scene that can be called by the urea tool, in fact, the vehicle is also a type of scene object, there are many levelObjects in Assets/IntenseTPS/Prefabs/Level/levelObjects and Assets/IntenseTPS/Prefabs/Vehicle/vehicle/entrances that can be referenced and copied, it should be noted that items with levelObjects should preferably have colliders and Rigidbody.
[picture35-1]
1-
The ID of the scene object is the same as the ID of the inventory item, it is also hoped that mod creators will not use the ID in the range of 0-999, because this may overlap with official update content.
2-
Icons and bilingual names in the urea tool.

3.2.2-Scene Object Testing
If you create a new scene object and want to test it, then you just need to open Assets/IntenseTPS/Scenes/Empty.unity(main menu scene) first,
Drag this object prefab into the third column of the ItemPrefabDictionary as shown in the figure, and then play the game to find it in the urea tool.
[picture35-2]
Like inventory items, if you want to make new scene objects, you can find some examples to learn to imitate(or simply copy some), and if that doesn't meet your needs, you can also come to me directly.
4. Mod Packing✓
When you are satisfied with the test results of your mod, you can package the mod directly.
[picture36-1]
Step 1:
Open the AssetBundles Browser, drag the prefab or scene you want to package into the list on the left of the Configure page, and an AssetBundle containing the prefab or scene and dependent data will be automatically produced, which is equivalent to a mod file. To add another prefab or scene to this file, drag it to the right.
It should be noted that a mod file can only contain one kind of object, such as multiple characters in one mod file and multiple scenes in one mod file.
Step 2:
Change the name and suffix of the AssetBundle file according to the type and actual situation of your mod, the specific rules are as follows, the name must be named in strict accordance with the rules, otherwise the game cannot be read.
You can also change the name extension of mod files in the file explorer after the build, provided you know what these mod files contain.
Suffix
Content and Naming Rules
.efigure
A character file, containing one or more characters (both player and AI), the file name is arbitrary.
.estage
Map files, containing one or more scenes, whose filenames should have no capital letters, and the name is a set of scene names separated by English periods, for example, three scenarios, map1, map2, and map3 are packaged in an .estage file, then the name of this file should be map1.map2.map3.estage.
.ecampaign
Campaign files, containing one or more campaigns, are likely to rely on one or more estage map files to run, so are unlikely to appear in the upload folder alone, the file name is arbitrary.
.eitem
An item file, which contains one or more items, including inventory items(items that can be put into a backpack, such as weapons, accessories) and scene objects(movable objects in the scene, such as boxes, vehicles), it is possible to be depended on by characters and maps, the file name is arbitrary.
[picture37-1]
Step 3:
Click on the Build page(AssetBundles Browser's Build page, not Unity's), make sure the settings are as shown above, then click Build, wait for a while, once done you should be able to find your mod files in Assets/StreamingAssets/mods.
Step 4 (optional):
If your mod includes new scenes and you want the scenes to display custom thumbnails in the Urea tool and on load, you can put a png image in the mod folder.
The name should be the same as the name of the corresponding scene, the recommended size is 128x128, if the map does not have a corresponding thumbnail file, the default icon will be displayed.
When the game starts, the mod in Assets/StreamingAssets/mods will be read, which means that if you play the game now, and the mod is not removed from GameManager, ItemPrefabDictionary, etc, in time after the mod test is completed, then the mod will be deleted, repeated reading will cause confusion, so remove the mod tested in time after the mod test is completed.
5. Mod Uploading✓
5.1-mod uploading
In fact, all types of mods are uploaded the same way.
Unlike the previous steps, this time the operation will revolve around the distribution purchased on steam, because only this version has a network service that can link to the steam workshop service.
If you want to upload a mod but just don't want to buy "MutantWarzone"(E.E.R.I.E), then you can find someone who has purchased it to upload it for you.

Step 1:
Put all the files you want to upload into the E.E.R.I.E_Data\StreamingAssets\upload folder in the root directory of the game (you should empty this folder first to prevent uploading the last old files repeatedly), then, there should only be one or more of the five files efigure, estage, ecampaign, eitem, and png in the upload folder, it is not allowed to upload other unrelated files that cannot be directly read by the game.

Step 2:
Make sure the network is unobstructed, start the game in steam, press ~ in the main menu to open the console, enter the workshop_create command, press Enter, the game will automatically apply for a workshop ID, then upload the items in the upload folder, after a period of time, the console will display the successful upload information and the corresponding workshop ID, you can write down the ID for future updates.
[picture38-1]

Step 3:
Close the game, go to the steam platform to view the workshop item you just uploaded, and edit its information (you need to log in to the steam account that uploaded this mod), including cover, title, introduction, etc, or write a comment and like, there is a corresponding workshop ID on the URL of the workshop item page, you can keep an eye on it.
Step 4: You can also subscribe to the workshop items you just uploaded, wait for the download to complete, and then enter the game test. If there are any problems, you can fix them in the development version as soon as possible and upload the update in the release version.

Step 4:
You can also subscribe to the workshop items you just uploaded, wait for the download to complete, and then enter the game test. If there are any problems, you can fix them in the development version as soon as possible and upload the update in the release version.


5.2-mod updating
Mod updates are roughly the same as uploading, except that a workshop ID is required to determine which workshop item to update.

Step 1:
Put all the files you want to upload into the E.E.R.I.E_Data\StreamingAssets\upload folder in the game's root directory (you should clear this folder first to prevent re-uploading the old files from the last time).

Step 2:
Ensure that the network is unobstructed, start the game in steam, press ~ in the main menu to open the console, enter workshop_update 'the workshop ID', press Enter, if you have forgotten the workshop ID you want to update, the Workshop Item page has the Workshop ID for the item in its URL, you can keep an eye on it. After some time, the console will display a message that the upload was successful.

Step 3:
Close the game, go to Steam to check the workshop item you just updated, edit its information, and tell everyone what you have updated.