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.
This project was made with Unity 5.6.5. 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.5 (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.
2: Download the Tabletop Simulator Modding Project from 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.
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.
7: Attach any provided scripts in the “Scripts” folder for advanced functionality.
8: Create a prefab of that object.
9: Assign that prefab to a unique AssetBundle name.
10: Build your AssetBundles by right clicking anywhere in the project view and then selecting “Build AssetBundles”.
11: AssetBundles can be found in your ‘Tabletop-Simulator-Modding/AssetBundles’ folder.
12: Upload your AssetBundle to a webhost or in-game to Steam Cloud and use with the Custom AssetBundle object.
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.
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.
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.