Assets

Custom models

Original meshes and animations for towers and projectiles.

Start from the template

python tools/mod_model.py template mods/throwbot
python tools/modsdk.py build mods/throwbot/mod.py

Enable Throwbot and start a new game: a blue animated robot with a gold custom projectile and a release socket. Everything in it is original art; no game art is included.

Use a model

mod = Mod("my-mod", "My mod")
tower = mod.tower("robot", base="DartMonkey")
tower.model("robot")
tower.projectile(display=mod.model("bolt"), damage=3, pierce=4)

Put baked models in mods/my-mod/assets/robot/ and assets/bolt/; the folder name must match the mod ID. tower.model reads the baked socket and applies the primary muzzle and release lead to every inherited upgrade tier. Secondary weapons keep their original sockets.

Import an OBJ mesh

python tools/mod_model.py import robot.obj --texture atlas.png --out mods/my-mod/assets/robot --muzzle 4 8 6 --release 0.15

Bake a rigged Blender animation

blender --background robot.blend --python tools/blender_mod_model.py -- --out mods/my-mod/assets/robot --idle 1 60 --attack 61 90 --release 70 --texture atlas.png
Limit

At most 60,000 split vertices, 600 frames per clip and 128 MiB of uncompressed poses per model. Lower-poly models and fewer samples load faster.

Blender and Python never run during gameplay; meshes and poses go through the native renderer. Models don't add simulation behaviour: the cloned tower and weapon supply targeting and projectile rules. Custom models are local-only for now; co-op rooms reject custom-art mods with a clear message.

Unofficial fan project. Not affiliated with Ninja Kiwi. rusttd6.com