Update 0.6.5 (Patreon)
Downloads
Content
🏁 Fluffy's Track Exporter — Update 0.6.5
With this update I set out to do some cleanup of the codebase, improve shaders, fix bugs and make this build a bit more stable as it's prepping for some big changes ;)
New Features
Real Physics Object Export (AC_POBJECT_*) — Fixes the "physics skewed / barriers flying around" bug. AC_POBJECT_* subtrees now properly wrap into a single physics-body Node with vertices written in body-local space (the way ksEditor does it). Child colliders parented under a visual mesh get flattened into the same body. - You can turn objects into collidable movable objects by using the button on the "Surface & Object Tools" panel.
ksGrass variation map — New optional txVariation slot, multiplied into diffuse in the viewport. Unassigned defaults to white = no effect.
Material import-lock toggle — New 🔒/🔓 padlock at the top of the AC material panel. Imported materials show up locked; click to unlock so viewport node edits sync back and Smart Export can auto-upgrade the shader.
Apply All Shader Defaults — New bulk operator in the sidebar (marked experimental). Resets every material's shader properties to canonical defaults for its current shader.
Fixed normal maps not being applied on export for some shaders
Export Pipeline Fixes
Direct Export now writes ext_config.ini — Previously only Smart Export did this, so SHADER_REPLACEMENT sections weren't reaching CSP on Direct Export.
Auto-saves modified images before export — No more silently losing unsaved Image Editor paint work (mask textures etc.).
Removed the "mesh has children" blocking error — Meshes with child objects now get auto-wrapped in an intermediate Node at export time.
Shader / Material Fixes
Massive shader defaults expansion — Almost every shader now ships with ksEmissive, ksAlphaRef, fresnelC/EXP/MaxLevel, sunSpecular/EXP, shadowBiasMult, nmObjectSpace, isAdditive etc. baked in, matching AC's stock values.
Fixed ksGrass scale property type — was incorrectly float, now vec2 to match ksEditor.
Fixed black/warped normals in viewport when a normal map slot is empty — now bypasses to flat (0.5, 0.5, 1.0) automatically.
Combined base + detail normals for fresnel-variant shaders in viewport (UDN-style add + normalize) — viewport preview now actually approximates AC's combined result.
Smart shader ladder respects dropdown choice — Explicitly picking a shader from the dropdown no longer gets "helpfully" downgraded during sync.
Preferences Rewrite
Dynamic preference injection — Preferences entries now auto-generated from SHADER_DEFAULTS. New shaders show up in prefs automatically - will make adding shaders easier in the future.
Vec2 / vec3 / vec4 preference overrides actually work — Previously only float values applied; the rest silently did nothing.
Import Improvements
Corrupt KN5s no longer kill the import — Bad file → console message, skip, continue.
Texture export errors now name the material(s) — Missing/linked/unpacked image warnings tell you exactly which material references them.
Compatibility
Blender 5.1+ fix — No more crash on texture export when an image has a format Blender's Python enum doesn't expose (e.g. DDS internal value 29 returned as ""). - hopefully!
Small Stuff
tree_skip_weld default flipped to False — Vertex welding now runs on trees by default. Flip back on per-project if your billboard trees have intentional co-located verts with different UVs.
Cleaner warning messages everywhere — silent-failure spots now log context (material name, object name) for faster debugging.
Bug reports and feedback in the Discord 🙏
As always - see you on the track, Fluffy <3