Note
Kickdot is in early development (0.x). Character assembly, colors, the editor dock, and facial animation are working and tested, but the API may still change. Back up your scenes.
Kickdot is a Godot editor plugin that turns Synty's Sidekick assets into a modular
character creator inside the editor - pick a species, a preset outfit, and a part for
every slot, shape the body with sliders, and repaint the palette, all on a real node in
your scene that updates as you edit. Characters are stored as .sk files, the Sidekick
character format, and every choice is driven by the official Sidekick metadata database.
Kickdot is not on the Asset Library yet. Until then:
- Copy
addons/kickdotinto your project'saddons/folder. - Enable Kickdot in Project -> Project Settings -> Plugins.
- Open the Sidekick dock and follow the setup panel.
That's the whole install. The setup panel handles the rest: it installs the godot-sqlite
dependency if needed (asking for an editor restart), fetches the Sidekick base model and
metadata database from Synty's public release, and imports the .unitypackage content
packs you own. Then press New Character to add a character node to your scene and
shape it live from the dock - species, parts, sliders, and colors all apply as you
change them. There is no build step.
Requires Godot 4.7 or newer. Synty content is not included - you bring your own (see Licensing).
Tip
No content packs yet? Synty's Sidekick Modular Characters Starter Pack is free, and it's enough to create complete characters and try everything here.
This repository is the full development project (test scripts, render harnesses). The addon itself is entirely contained in
addons/kickdot.
- Character assembly driven by the official metadata database: species, preset outfits, a picker per part slot, body sliders, wrap-slot automation, and randomize buttons, all filtered to the content packs you actually have.
- Palette coloring with per-group presets and per-property swatches; edits repaint the character live, no rebuild.
- An editor dock bound to the selected
SidekickCharacternode, with proper undo/redo, and.skfiles that round-trip losslessly. - Scenes stay small and editable: the node stores the recipe, generated meshes live once in a binary cache, and the skeleton survives rebuilds so animations keep working.
- Facial animation: a
SidekickFacialControllernode with an expression dropdown, 48 semantic sliders, a baked face pose/cycleAnimationLibrary, and.fcppreset round-trip. - Body animation: Sidekick-rig clips drop straight into an
AnimationPlayer; other humanoid clips (Mixamo etc.) retarget with generated bone maps - seedemos/animations/README.md. - Export as GLB, or bake to a static
.scn/.tscnwith the material baked in.
Everything lives under Project Settings -> Kickdot.
| Setting | Default | What it does |
|---|---|---|
paths/asset_scan_root |
res://synty_assets |
Where Synty content is imported to and scanned from |
paths/database |
res://synty_assets/db/side_kick_data.db |
The Sidekick metadata database |
paths/base_model |
res://synty_assets/meshes/SK_BaseModel.fbx |
The shared rig |
paths/textures_dir |
res://synty_assets/textures |
Base palette maps |
paths/generated_cache |
res://addons/kickdot/cache |
Binary cache for generated meshes and baked data |
build/combine_meshes |
false |
Merge all parts into a single mesh |
build/combine_body_blend_shapes |
true |
Keep body blend shapes when combining |
build/combine_facial_blend_shapes |
true |
Keep facial blend shapes when combining |
build/own_generated_meshes |
true |
Show and save generated meshes in the scene tree |
build/material_override |
(empty) | Use your own material instead of the built-in shader |
build/animation_library |
(empty) | Animation library to attach to new characters |
options/show_all_color_properties |
false |
Show color rows for cells the current parts don't use |
options/show_missing_parts_warning |
true |
Warn when a recipe references parts you don't have |
Test scripts live in tests/ (assembly checks, exports, retargeting, visual
renders). Run any of them like:
godot --headless -s res://tests/smoke_test.gd --path .
Render tests need a window; drop --headless for those.
The addon code is an original clean-room GDScript implementation, released under the MIT License.
Synty's meshes, textures, and metadata database are not included - they are covered by the Synty EULA. You need your own Sidekick licence to use this addon for anything.
godot-sqlite by 2shady4u is MIT-licensed and installed as a dependency.

