Releases: GrizzlyOne95/Battlezone_BlenderToolKit
Release list
Release v1.4.10
BZ98R Blender Toolkit v1.4.10
Summary
This patch release brings the published toolkit up to the current main branch after v1.4.9. It adds the runtime semantic-verification evidence kit and tightens the experimental controls used to validate advanced Battlezone 98 Redux VDF/GEO behaviors against the game runtime.
Added
- Added
scripts/make_runtime_evidence_kit.py, a bpy-free generator for synthetic Phase A-F runtime-validation assets. - Added deterministic evidence manifests and runtime-session record templates that link authored state, exported bytes, and observed Redux behavior.
- Added automated tests for the runtime evidence-kit generator.
- Added strict enforcement of the Battlezone runtime's 8-character directly referenced asset-name limit in generated evidence assets.
Changed
- Expanded
docs/RUNTIME_SEMANTIC_VERIFICATION.mdwith normative session-identity, asset-integrity, transform, damage-threshold, and scope-of-conclusion controls. - Runtime verification now explicitly requires executable/configuration hashes, renderer/backend identity, deployed-asset hashes, cache-safe filename discipline, non-orthogonal transform cases, bidirectional threshold bracketing, and separation of AI-pathing evidence from direct traversal evidence.
- Bumped the Blender addon package version to 1.4.10 so installed builds can be distinguished from v1.4.9.
Validation
- The release workflow regenerates synthetic fixtures and runs the bpy-free semantic test suite before packaging.
- The release workflow verifies
bl_info["version"] == (1, 4, 10)before creating the release. - The runtime evidence-kit test coverage is included in the repository at this tag.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, open Edit > Preferences > Add-ons.
- Choose Install... and select
bz98tools.zip. - Enable the Battlezone toolkit addon if Blender does not enable it automatically.
Full changes: compare v1.4.9...v1.4.10 after the release tag is created.
Release v1.4.9
BZ98R Blender Toolkit v1.4.9
Summary
This release rolls the current Blender Toolkit work since v1.4.8 into a new packaged addon. It includes the advanced VDF/GEO semantic authoring work, new pilot-animation tooling, model-porting improvements, UI cleanup, stronger validation, and a much broader automated test suite.
Added
- Advanced GEO/VDF semantic authoring and preservation support, including engine part-class metadata, ObjectFlags handling, authored bounds, damage-band records, VLOC injection data, deck semantics, and unknown-chunk preservation.
- Dedicated Redux pilot-animation patch/reference tooling and UI.
- Additional model-porting support including 32-bit index buffers, Ogre edge-list handling, improved normal-porting behavior, and better duplicate-model tracking.
- Advanced authoring documentation, runtime-test tooling, synthetic fixtures, and expanded validation guidance.
- Automated bpy-free tests plus Blender-level integration coverage for import/export and semantic round trips.
Changed
- Refactored the addon bootstrap/core layout to reduce the historical monolithic entry point while retaining compatibility.
- Improved Animation and Quick Tools panel layout and general UI scannability.
- Improved texture conversion performance through NumPy-backed vectorized conversion paths.
- Expanded import/export handling for preserved section order, unknown data, advanced flags, bounds, damage records, and VLOC data.
Fixed
- Fixed addon registration issues involving missing normal-mode enum data.
- Fixed Blender runtime issues found by headless integration testing, including collection-property iteration and preserved section-plan handling.
- Fixed model-porting and texture-conversion regressions found during the code-health and TODO cleanup work.
Validation
- Existing CI runs the semantic test suite under Python 3.11 and 3.12.
- Synthetic fixtures exercise the advanced binary/semantic features.
- Blender integration testing covers addon registration, property handling, export/parse/import round trips, and validation behavior.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, open Edit > Preferences > Add-ons.
- Choose Install... and select
bz98tools.zip. - Enable the Battlezone toolkit addon if Blender does not enable it automatically.
Full changes: compare v1.4.8...v1.4.9 after the release tag is created.
Release v1.4.8
BZ98R Blender Toolkit v1.4.8
Summary
This release adds import-time texture source options so stock or stock-derived GEO/VDF/SDF imports can resolve referenced .map textures from an extra folder or a stock ZFS archive.
Added
- Added
.MAP Texture Folderto GEO, VDF, and SDF import options. - Added
.MAP Texture ZFSto GEO, VDF, and SDF import options. - Missing
.maptextures can now be extracted from a selected ZFS archive into the addon cache during import. - Added wiki documentation for importing models with stock
.maptexture sources.
Changed
- Texture lookup now checks the imported model folder first, then the optional texture folder, then the optional ZFS archive.
- Import texture source fields are plain pasteable paths to avoid Blender's nested file-selector limitation inside the import dialog.
Fixed
- ZFS extraction now creates needed output subfolders when archive entries include paths.
zfs_reader.pynow importsstructexplicitly.
Verified
- Python compile checks passed for
bz98tools/__init__.py,bz98tools/import_geo.py,bz98tools/import_vdf.py,bz98tools/import_sdf.py, andbz98tools/zfs_reader.py. - Git diff whitespace checks passed for touched addon modules.
- The Blender 4.5 AppData addon folder was synced during local testing.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.7
BZ98R Blender Toolkit v1.4.7
Summary
This hotfix makes the Legacy Object Animation mirror/copy tool open its settings dialog from the Animation Tools panel.
Fixed
- Fixed Animation Tools > Mirror Legacy Keys so it opens the operator dialog containing the explicit Mirror From and Mirror To object selectors.
- Added compact text in the Animation Tools panel noting that the button can be used for explicit source/target pairing.
Verified
- Python compile check passed for
bz98tools/__init__.py. - Git diff whitespace check passed for
bz98tools/__init__.py. - Synced the Blender 4.5 AppData addon folder from the repo copy.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.6
BZ98R Blender Toolkit v1.4.6
Summary
This hotfix corrects popup info buttons that could execute without opening their dialog from Blender panels.
Fixed
- Fixed What Gets Checked so it opens the validation coverage report from the selected GEO validation panel.
- Fixed related info popup buttons for Redux model system notes, pivot/dummyroot notes, and advanced VDF notes by invoking their dialogs explicitly from UI panels.
Verified
- Python compile check passed for
bz98tools/__init__.py. - Git diff whitespace check passed for
bz98tools/__init__.py.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.5
BZ98R Blender Toolkit v1.4.5
Summary
This release adds custom world atlas terrain painting support, removes the unsupported Game Playback tooling, and expands legacy Battlezone modeling validation based on the classic unit modeling guide.
Added
- Added Import Custom World in the map texture painting tools.
- Custom worlds can load their terrain material/atlas data from a world folder, using
.trnand atlas CSV data when available. - Stock terrain painting worlds remain available and unchanged.
- Added compact validation reports with a
What Gets Checkedpopup. - Added LOD2 cockpit validation for matching LOD1 counterparts, direct parent linkage, and matching pivot/origin/orientation.
- Added LOD3 validation for missing LOD1 counterparts, high-detail meshes, and material/texture usage.
- Added validation warnings for multiple exportable model roots in one scene.
- Added legacy animation validation for looping first/last pose mismatches, high animated-GEO counts, and legacy 10-20 frame range guidance.
- Added a
Pivot / Dummyroot Infopopup explaining Blender object origins, Battlezone pivots, local axes, hover/sink offsets, and dummyroot-equivalent authoring. - Added Redux export warning when headlights are enabled but no Type 38 headlight GEO exists.
- Added UI notes for LOD2 cockpit GEOs, LOD3 legacy fallback GEOs, multiplayer-only path point respawning, SDF-only automatic collision generation, and Redux dual-component model structure.
- Added advanced VDF helper notes for spinner helpers and raw transform scaling.
Changed
- The validation button now reports checked items and compact findings instead of only showing counts.
- GEO data, selected GEO info, object GEO info, and animation element display text now wraps more compactly in Blender side panels.
- VDF collision-helper validation is less broad for structure/producer-style exports while keeping vehicle checks available.
- Mirror Legacy Animation Keys now supports explicit
Mirror FromandMirror Toobject selectors with warning-only mesh similarity verification. - Map texture painting now uses a loaded custom atlas when active and falls back to stock worlds otherwise.
- The BZMapIO addon metadata now describes terrain, texture, object, and path data without Game Playback.
Removed
- Removed the unsupported Game Playback feature from active UI and registration.
Verified
- Python compile checks passed for
bz98tools/__init__.py,bz98tools/map_io.py, andbz98tools/validation.py. - Git diff whitespace checks passed for touched addon modules.
- Custom atlas parsing was tested against the Polar Mars world example, including
.trnmaterial discovery and atlas tile code mapping.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.4
BZ98R Blender Toolkit v1.4.4
Summary
This release adds experimental legacy GEO face-plane preservation/recompute controls, a best-effort DX Normal Distance Fix mode based on reverse engineering older Battlezone tools, and an experimental Redux walker cockpit stabilizer for first-person cockpit jitter.
Added
- Added
Face Plane Exportto GEO, VDF, and SDF export dialogs. - Added imported GEO face-plane preservation through per-face attributes:
bz_face_plane_xbz_face_plane_ybz_face_plane_zbz_face_plane_d
- Added
Preserve Imported,Recompute From Faces, andDX Normal Distance Fixface-plane export modes. - Added selected-face display for preserved face-plane floats.
- Added an experimental VDF auto-port option,
Experimental Walker Cockpit Stabilizer, for separate Redux cockpit output on walker units. - Added validation warning for GEO faces with more than 10 vertices, matching the fixed per-face capacity found in the unpacked legacy GEO viewer.
Reverse Engineering Notes
- Unpacked the legacy VDF, SDF, and GEO viewers with a run-and-memory-dump pass after confirming all three were Petite-packed.
- Confirmed the old GEO viewer reads the standard
OEG.GEO header and stores each face in a 216-byte in-memory record: 56 bytes of fixed face data plus ten 16-byte polygon vertex records. - Confirmed the old VDF viewer writes
VGEOasgeocount * 28 * 100. - Confirmed the old SDF viewer writes
SGEOasgeocount * 6 * 0x78. - Confirmed VDF/SDF
ANIM,COLP, andSPCSchunk sizes align with the toolkit serializer and existing experimental binary-field documentation. - Confirmed the old Max
GEOExport.dleexposes aDX normal distance fixintended to work around disappearing triangles; the toolkit's current mode recomputes the face plane normal/distance as a best-effort version pending byte-for-byte formula confirmation.
Fixed
- Direct GEO import no longer discards the four face-plane floats.
- VDF/SDF exports can now apply the same face-plane mode to referenced GEO files they write.
- Separate Redux cockpit output can now optionally root cockpit/POV bones in model space to reduce walker body-animation jitter in first person.
Verified
- Python compile checks passed for all touched addon modules.
- Tested the walker cockpit stabilizer against the Mauler conversion path and confirmed cockpit/POV bones are rooted when enabled.
- Confirmed the unpacked legacy viewers and Max plugins agree with the toolkit's VDF/SDF object record and animation record sizes.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.3
BZ98R Blender Toolkit v1.4.3
Summary
This release adds the Organic Redux Skin helper for turning legacy VDF/SDF/GEO control hierarchies into Redux-ready weighted armatures. It is intended for organic-looking Redux meshes that should flex between engine-driven control pieces while preserving the normal rigid GEO workflow for legacy VDF/SDF export.
Added
- Create Organic Redux Skin From VDF Hierarchy in the 3D View Battlezone sidebar.
- Generates an armature from selected valid GEO control pivots or an active GEO hierarchy.
- Creates bones with matching GEO names and deterministic
OGREIDvalues. - Binds a selected continuous mesh through an Armature modifier.
- Creates starter vertex groups with nearest-control weighting and optional parent/child blend zones.
- Supports up to three influences per vertex to match the native Redux export path.
- Added
docs/ORGANIC_REDUX_SKIN_WALKTHROUGH.mdwith setup, export, troubleshooting, andfvsentrytest guidance.
Clarified
- Organic Redux skins for ships such as
fvsentrydo not require exported skeleton actions. - The generated static skeleton should be driven by Redux runtime control motion through matching GEO-named bones.
- Blender actions are only useful as temporary local previews while checking or painting weights.
Verified
- Created an
fvsentryexample from the realfvsentry.vdf,fse*.geo,fvsentry.mesh, andfvsentry.skeletonfiles. - Joined the imported Redux submeshes into one visible mesh.
- Generated an 11-bone GEO-control armature from LOD1
fse11*controls. - Confirmed all 2289 vertices were weighted, with no bad weight sums and no more than three influences per vertex.
- Exported
.mesh,.skeleton, and.materialsuccessfully withExport Animationsdisabled.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.2
BZ98R Blender Toolkit v1.4.2
Summary
This patch tightens several legacy Battlezone binary fields based on reverse-engineering against Redux symbols and stock assets, and fixes the collision panel so automatic collision generation hides manual fields that are ignored on export.
Changed
- Legacy
SCLKEY/ANIMTranslation2now imports and exports Blender scale animation instead of location animation. - POSKEY location animation remains independent when scale keys are enabled.
- SDF
Defensiveis now exposed as the raw integerSDFC DDRfield. - VDF vehicle size/type and SDF structure type descriptions now document observed stock values and preserve imported values.
- GEO face byte tooltips now document flat/Gouraud shading, texture flag bytes, and translucency values.
- GEO header second int is now labeled as a preserved checksum/signature-like field rather than a general authoring control.
Fixed
- The GEO Collision panel now hides manual center, projectile box, sphere radius, and manual generation controls when Automatically Generate Collisions is checked.
- Legacy export validation now treats scale f-curves as supported for VDF/SDF animation export.
Notes
- The internal class name
ANIMTranslation2remains for compatibility with existing toolkit code, but the file slot is the legacySCLKEYscale-key track. - The
SDFC DDRfield is preserved as an integer. Stock structures commonly use500000; mine/powerup-like structures may use smaller values.
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
Release v1.4.1
Battlezone Blender Toolkit v1.4.1
Installation
- Download
bz98tools.zipfrom this release. - In Blender, go to Edit > Preferences > Add-ons.
- Click Install... and select the downloaded
.zipfile. - Ensure Battlezone GEO/VDF/SDF Formats is enabled.
See the README.md for full documentation and features.