Skip to main content

Basic - Scene Mod

Here is a step by step tutorial for making a scene mod.

Phase 1: Define your mod#

1. New mod project#

Make sure you have the prerequirements for modding and download a fresh ModToolkit to start.

2. Remove unused content#

Make sure to remove the demo content so that we have a clean project to start with.

  • In the Unity toolbar; click Tools > Destructive > Cleanup All Content.

3. Product name#

Change the product name so that the mod folder name will not conflict with other mods.

  • In the Unity Toolbar: Go to Edit -> Project Settings -> Player.
  • Modify field Product Name to your new mod name. Use the format: YOURPREFIX_MyModName. Example: WMD_ChevalierWeapons

4. Prefix.#

Change the project prefix so that the mod files will not conflict with other mods.

  • In the Unity file browser: Open Assets -> Resources -> AddressableConfig.asset

  • Modify field Prefix to your new prefix name. Use the format: YOURPREFIX_MyModName_. Example: WMD_ChevalierWeapons_

    Note: The prefix used in the tutorial is WMD_. You will need to fill in your new prefix instead of every WMD_ in the tutorial.

5. Generate folder structure using the template wizard.#

  • In the Unity Toolbar: Go to Tools -> Template Wizard.
  • Make sure the inspector window is shown (Template Wizard will show there).
  • Enter a new mod folder name. Example: YourModName
  • Set the Mod Type to: Scene.
  • Fill in the desired ItemInfoConfig fields.
  • Click the Generate Template button to generate the Scene folder structure.

6. Place items in the scene#

  • Open the newly created scene file in the Scene folder. (for example: Build > YourNewModFolder > Scene)
  • Add collision to the items by adding MeshCollider.
  • Make sure to change the layer of the objects to: CharacterObstacle or else they will not collide with the player.

Extra: There are a couple of prefabs you can use the place special interactable objects.

PrefabDescription
HookRootAllows you to add a root that you can swing across gaps.
SlideWallAllows you to add a wall object that you can run along.
StoneGateA togglable gate.
SkeletonStatueA grabbable statue that can start waves.
WeaponPendantA grabbable weapon that will float in a location until grabbed.
RespawnTriggerA collider that will set the respawn point to the center of the collider when a player enters it.

placeItem

7. CharacterPos#

  • Adjust the CharacterPos (under SceneScriptNode) to adjust the character spawning position.

8. DeadZone#

  • Adjust the Transform's Y value to change the position of the DeadZone (under SceneScriptNode).
  • Place RespawnTrigger's to place respawn points.

9. PathFinder#

  • Adjust BoxCollider of the PathFinder (under SceneScriptNode) to enclose the whole scene.
  • Save the scene.

7. Bake the scene#

This step is not required, but it will increase performance, because it will not render objects that are currently not visible for the player.

  • Mark all objects that do not move Occluder Static.

  • Open the Occlusion window by going to Window > Rendering > Occlusion Culling.

  • In the Occlusion window, click the Bake button.

  • Save the scene again.

Extra - StabableObj#

Want some items to be stabbable (and also climbable)? You can do this as followed:

  • Find the object you want to be stabbable/climbable.
  • Give it a RigidBody component and mark it Is Kinematic.
  • Give it a StabableObj component.

Extra - Combat Room#

Phase 2: Prepare to export your mod#

You cannot use the icon generator on a Scene. So we will manually have to add a song icon.

Manually adding an icon

  • Open the newly created ICon folder and drag your .png file in there.
  • Click the image file, and make sure the setting: read/write enabled is enabled
  • Click the image file, and make sure size is set to 256px: read/write enabled is enabled
  • Set the Max size to `256` and click `Apply` to save (yes screenshot shows 128, my bad).

Phase 3: Build the mod#

1. Update all addressables.#

  • Go to AddressableConfig(Assets > Resources > AddressableConfig) or use shortcut: ctrl+shift+e.
  • Click Clear Addressables and Create And Refresh Addressable Name.

Then you will see this tool has already setup addressable path for you in the Addressables Groups window. (Window/Asset Management/Addressables/Groups to open this window)

3. Build#

Click BuildTools > BuildAllBundles to Build.

Once you build it successfully, then you will find your mod in the Assets/Mods. If something errors, please checkout the Console information, unity will tell you what's going wrong. And feel free to ask questions on our discord server.

Phase 4: Test & publish the mod#

1. Install on device#

For PC (Recommend for debugging):

  • Make sure you have Battle Talent installed (Steam).
  • In Unity: Click BuildTools > InstallModOnWindows.

For Quest:

  • Make sure you have Battle Talent installed on your Quest (Quest store).
  • Make sure you've connected your headset correctly.
  • Make sure you've allowed sideloading.(if you are not sure how to do this, you can follow this tutorial: https://www.youtube.com/watch?v=RoIXxIfRNTw)
  • In Unity: Click BuildTools > InstallModOnAndroid.

image-20220713173120535

2. Spot the issues via log panel#

Now that it's installed it's time to see if it's working correctly. See if the console gives you some errors. It'll be opened when you toggle Cheat Menu on.

image-20220713173120535

3. Upload your mod to mod.io#

  1. Zip your mod.
  2. Go to https://battletalent.mod.io/.
  3. Click Add mod.
  4. Authenticate (login).
  5. Fill in the required fields.