Version 0.2 uses persistent editor panels and menus. Start with the World Editor guide. The workflow details below describe the underlying import and deployment commands; the old workflow page headings now map to File, Resource, Terrain, Build and Window menus.
Pipeline details.
Button names below match Workbench 0.1. Save projects outside the extracted release folder so replacing the app does not replace your work.
1. Create or open a project
- Run
BrokenArrowWorkbench.exe. - Open PROJECT → New project. Choose an empty folder, for example
Documents\ThunderBuddiesProjects\MyRimal. Nonempty folders are deliberately rejected. - For Rimal authoring, click Import existing Rimal. Select the game's
UserData\ThunderBuddiesMaps\GazaCitydirectory—not the Scenarios directory. It must containmanifest.json,placements.json,roads.jsonand terrain F32 files. - Alternatively, copy the supplied
Examples\Rimalfolder to your own workspace and use Open project to select itsproject.baw. - Open CONNECTIONS, click Detect Steam installation, then Refresh scenarios.
- Select TBS Gaza City - Rimal District, or your existing TBS Rimal Assault - US Absolute Arsenal. The GUID field changes. Tick Use project terrain, roads and native buildings for map replacement. Only these two map templates are currently supported.
- Click Save connections and PROJECT → Save.
Imported map data is copied into the project model. The original game map data and your scenarios are not overwritten. At deployment, the revised Maps companion reads your selected project's map only for its selected scenario GUID.
2. Import a model
- In CONNECTIONS, choose
blender.exeif automatic detection did not find it. On this PC it isD:\SteamLibrary\steamapps\common\Blender\blender.exe. - Open MODELS & ANIMATION → Import FBX / GLB / blend. Choose the source file. FBX/blend runs background Blender. GLB is copied directly, then validated.
- Wait for the task to finish. If it fails, open the project
Logsfolder. Do not assume a failed import was added to the project. - Select the asset on the left, then click Validate. In BUILD & DEPLOY, read the report: meshes, vertices, bones, exact clip names, errors and warnings. A persistent report lives at
Assets\<asset-id>\validation.json. - Set X and Z in metres, Scale and Yaw in the property inspector. Use
X=500, Z=500for the centre of Rimal.Scale=1preserves the model's exported metre scale; no 100-metre automatic resize occurs. - Set Ground=true to sample terrain at X/Z. Y then becomes an added vertical offset. The model origin/pivot must be at its intended ground-contact point. The importer does not move its mesh bounds automatically.
- For animation, copy an exact name from the report into Clip. Set Loop=true for idle/walk; false for a single attack showcase. A nonlooping clip remains at its last pose.
- Save the project.
Playing an attack animation does not apply damage. Walk animation does not supply native pathfinding. Visual-only projects can target another installed local scenario by disabling map replacement; positions must lie on that scenario's terrain.
3. Edit in Blender and re-import
- Select a model in Workbench and click Open in Blender. Workbench creates
Assets\<id>\editable.blendif needed and opens it. - In Blender, set Scene Properties → Units → Metric. Inspect scale and the model's origin. For a ground prop, place the origin at the base. Do not indiscriminately apply transforms to an already animated armature; that can change animation/bind poses.
- Edit geometry/materials. Use a Principled BSDF with image textures for base colour. Procedural textures need baking to image files before export. Keep the rig and animation actions when editing an animated object.
- Check each intended action in Blender's Dope Sheet/Action Editor. Name them clearly, for example
Idle,Walk,Attack. Playback in Blender is the visual animation preview. - Press Ctrl+S to save
editable.blend. Unsaved editor changes cannot be read by background Blender. - Return to Workbench; click Re-import saved blend. A pending GLB is built and validated before replacing the last valid GLB. The previous file is kept as
model.glb.previous. - Click Validate again if action names changed; update the Clip field. Save.
- To export back to another DCC tool, click Export FBX. It exports the saved editable blend, not an extracted game asset.
- After edits, close Broken Arrow, then click Deploy to game and relaunch the local scenario. There is no live injection while the game is running.
Optional Blender sidebar add-on
- In Blender, open Edit → Preferences → Add-ons.
- In recent Blender versions, use the menu at the upper right and choose Install from Disk (older versions label it Install).
- Select
Bridge\thunder_buddies_workbench.pynext to the Workbench executable and enable Thunder Buddies Workbench. - Open a linked model through Workbench first. In Blender's 3D View press N, select the Workbench sidebar tab.
- Save & Export to Workbench saves the blend and writes
model.glb.blender-export.glbas a preview export. It deliberately does not overwrite the last validated model. - In Workbench click Re-import saved blend to validate and adopt changes, then deploy. The add-on does not launch the game.
4. Heightmap import, orientation and brushes
- Prepare 513 × 513 samples for a 1,000 m square map. Reproject/resample GIS data externally. Workbench does not infer a CRS, coordinates or a vertical datum.
- Supported sources: little-endian float32 metre elevations (
.f32), unsigned little-endian 16-bit headerless samples (.raw/.r16), or noninterlaced 16-bit grayscale PNG. RGB and 8-bit PNG are rejected. - Open MAP & TERRAIN → Import heightmap. For RAW16/PNG16 choose the minimum and maximum elevation corresponding to black and white. Example: minimum 20, maximum 80 means sample 0=20 m and 65535=80 m. F32 already contains metres, so those two fields are ignored.
- Rows internally progress from the map's south (Z=0) to north (Z=1,000). Typical north-up images start at the north; tick Flip north/south rows for those. Use a clearly asymmetric elevation landmark to resolve orientation.
- Select Raise/Lower/Flatten/Smooth. Set brush radius in metres; strength controls each mouse-move application. Flatten uses the selected target height. Click-drag in the map square. Brush speed therefore depends on dragging speed; use modest strength for controlled edits.
- Use Undo for the last map edit, up to 20 snapshots. Undo is not a permanent version history. Save checkpoints to copied project folders.
- Export RAW16 uses a fixed 0–255 m mapping. Keep that range when re-importing the exported RAW.
5. Draw roads and place native buildings
- Choose Road and set its width (2–30 m). Left-click consecutive centreline points. Right-click or click Finish road to commit the polyline. A one-point road is discarded.
- At a junction, end a road at the same world position as the intersecting road. The exporter rasterises each road's width and the shared mask into the imported surfaces. Flatten sharp terrain steps near junctions to reduce visual kinks.
- Choose Building. Pick an exact native family from the right-hand list. Those names come from the imported Rimal layout and must exist in Kaliningrad. Workbench does not fabricate missing native prefabs.
- Set footprint width/depth and yaw. Click to place. The runtime chooses/reuses the corresponding native initializer and ground-aligns its mesh bottom; it retains the game's building systems.
- In the right-side building list, select a placement, then open MODELS & ANIMATION to edit its numerical properties in the shared inspector. The list shows the first 500 entries; other placements remain visible/editable spatially through Erase and Blender.
- Choose Erase and click near a building or road control point. Radius determines proximity. Use Undo to restore an accidental deletion.
- Keep buildings outside vehicle corridors. Native navigation is rebuilt, but unusually tight geometry still requires a gameplay check.
6. Edit the map in Blender
- Save the Workbench project. Click Map → Blender. Wait while Blender creates
map-edit.blend, then opens it. - Terrain uses Blender XY for map ground and Blender Z for elevation. The named terrain object contains the original 513² grid. Move vertices vertically only. Do not subdivide, decimate, rotate, scale or translate it. The return job rejects changed XY coordinates or sample counts.
- Native buildings appear as proxy boxes. Move, rotate around Blender Z, duplicate or delete them. The
wb_familycustom property selects the native family. Their displayed 10 m height is only a proxy; it does not set native building height. - Roads are single POLY curve splines. Edit control points or duplicate whole road objects; preserve their
wb_type=roadtag. Set width using thewb_widthcustom property (metres), not bevel depth alone. Do not convert to a mesh or Bezier spline. - Save
map-edit.blendwith Ctrl+S. - Return to Workbench and click Blender → Map. The saved blend is read in a background process. Imported results update terrain/building/road data. A project/terrain checkpoint is placed in
Backups. - Save and deploy. Clicking Map → Blender again regenerates the blend from the current Workbench project and can replace unsaved/unreturned edits; return changes first.
7. Export, deploy and load
- Finish any pending road, save and check your chosen scenario GUID.
- Export game package creates a timestamped folder containing our Mods DLLs, the selected project's UserData, README and SHA256 checksums. This is suitable for a user who already has the required game/mod-loader/scenario. It is not a standalone Broken Arrow download.
- To use it locally, exit Broken Arrow fully. Deploy to game stages an export, validates its hashes and copies only the allowlisted TBS companions and project files. If the game is running, deployment stops.
- Read the backup path printed under BUILD & DEPLOY. Replaced files are saved under game
UserData\TBSWorkbench\Backups, with a deployment ledger. - Click Open Steam game page. In Steam explicitly choose Play - Anti-Cheat Disabled. Workbench does not choose a launch mode.
- Load the selected local scenario. Stay out of official servers. Only the selected scenario receives your custom project content.
- For model-import diagnostics inspect game
UserData\TBSWorkbench\Projects\<id>\runtime-status.jsonorUserData\TBSWorkbench\last-error.txt. Read MelonLoader logs for native-map import diagnostics. - For a manual playtest, check ground contact, animation, native unit movement through roads and native building interactions. Compilation alone does not establish these gameplay results.
8. Optional Unity bundle authoring
- Install and activate Unity 2022.3.62f3 through Unity's official licensing workflow. A license is required. Your previously downloaded Editor is not known to be activated.
- Set Unity.exe in CONNECTIONS.
- Click BUILD & DEPLOY → Unity bundle worker, select FBX. The tool creates a Unity project at
UnityWorker, imports the FBX and builds a Windows x64 bundle. - Collect
UnityBundles\workbench-model.bundle. ReadLogs\unity-editor.logif it fails. - This bundle is not consumed by the current GLB adapter. Do not put it in Mods and expect it to become a unit. Use the GLB/Blender route for the implemented in-game placement workflow.