Custom AssetBundles


This Unity project is for our advanced Tabletop Simulator modders that want to have complete control over their custom objects with additional features. Anything that Unity engine provides besides scripting can be exported as an AssetBundle and then reimported into Tabletop Simulator. This includes full shader / material support, animations, sounds, lights, particles, and much more.

We provide scripting support with a Lua api that can be found here.

Download the Modding Project on GitHub.

This project was made with Unity 5.6.2. You must download this exact version to use the AssetBundles.

This project contains
  • Example objects to provide scale (One Unity unit is 1 inch).
  • Scripts to enable advanced functionality.
Steps

1: Download and install Unity 5.6.2 (The installer) (do not update to any higher version unless we tell you to, or the AssetBundles will not work.)
2. When installing, make sure to check mark the Windows, Linux and Mac build support boxes.

Unity Installer

2: Download the Tabletop Simulator Modding Project from GitHub.

TTS Modding Project at GitHub

3: Unzip the file and place in your drive of choice.
4: Open up Unity, click OPEN and choose the folder from GitHub you just unzipped.

Open in Unity

5: Once open, you can see the list of Assets, which includes examples and scripts you can play around with.


6: Create your object using any built in Unity feature.

Create object

Create material

Make material

7: Attach any provided scripts in the “Scripts” folder for advanced functionality.
8: Create a prefab of that object.

Create prefab

9: Assign that prefab to a unique AssetBundle name.

Assign name

10: Build your AssetBundles by right clicking anywhere in the project view and then selecting “Build AssetBundles”.

Build AssetBundle

11: AssetBundles can be found in your ‘Tabletop-Simulator-Modding/AssetBundles’ folder.

AssetBundles folder

12: Upload your AssetBundle to a webhost or in-game to Steam Cloud and use with the Custom AssetBundle object.

In Game Custom AssetBundle

Secondary AssetBundles

Secondary AssetBundles are an additional assetbundle which are great for shared effects like sound or partical effects that you want to use on multiple objects without duplicating them in each individual asset bundle. Great for reducing memory and bandwidth usage.

Secondary AssetBundles

In the example below, the main assetbundle is the blue capsule and the secondary assetbundle is the explosion and light effect. This allows you to reuse the explosion and light effect on any one of your assestbundles for greater modularity and reduced memory and bandwidth usage.

Secondary AssetBundle Gif

Another great use of Secondary AssetBundles is shared materials between multiple other AssetBundles. Assign the material to an AssetBundle just like a prefab, then use that AssetBundle as your secondary slot for each object that needs it. This will keep you from duplicating any large textures that can be shared between your objects.

Best Practices
  • Avoid duplicating large assets like textures and sounds on multiple AssetBundles by using Secondary AssetBundles.
  • Don’t use legacy, mobile, or custom shaders because they will most likely show up as pink on other platforms.
  • Texture import settings
    — If your textures don’t need transparency, use RGB Compressed DXT1.
    — If your textures need alphas retained, highlight just those textures and change the format to RGBA Compressed DXT5.
    — NEVER use uncompressed textures.
    — Make sure the texture is the size that makes sense for it, but watch out for the size of the texture as that will eat up a lot of space.
    — Save 4k textures for large boards and other similar items.
Manuals/Tutorials