Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
866f0e4
Fix oblong fig_leader PNG URLs missing _stadium suffix
May 20, 2026
a5a361c
Add apple_logo.png UI sprite for the Mac patch toggle button
Aug 11, 2026
495c450
Add silhouette_mac_fallback_v2.unity3d: Unlit/Transparent hologram
Aug 11, 2026
3f20dfe
Add collider_null.obj: degenerate collider for non-physical spawns
Aug 11, 2026
6a41acd
Add stadium silhouette meshes for oblong bases (long/snail)
Aug 11, 2026
3ce7ddd
Stadium meshes: smooth normals + cylindrical UVs
Aug 11, 2026
df82ec7
Rename stadium meshes to _2 (TTS caches by URL, smooth-normal rebuild)
Aug 11, 2026
a942325
Stadium meshes v3: split-and-stretch of the marker cylinder mesh
Aug 11, 2026
c4cd234
Overlays: filter ground raycasts through macHitIsGround
Aug 11, 2026
b49099f
Add the vanilla oblong silhouette meshes extracted from the bundles
Aug 11, 2026
1624b24
Silhouette meshes: strip baked normals, add cylindrical UVs
Aug 11, 2026
e2ad8e1
Stadium meshes: keep the marker topology, adopt the vanilla outline
Aug 11, 2026
48931c3
Silhouette meshes: vanilla geometry with smoothing-angle normals
Aug 11, 2026
30b1e3f
Order Token: make the Mac range and cohesion toggles deterministic
Aug 11, 2026
ae0a904
Declare the Mac toggle's apple logo as a CustomUIAsset
Aug 11, 2026
ef3f36b
Overlays: make Windows mode render the original mod again
Aug 11, 2026
7ec8cb1
mac-patcher: single global toggle, ground-only raycasts, coalesced re…
Aug 11, 2026
3505b11
Add the functional spec for the four overlay families
Aug 11, 2026
50c72c7
Sign the overlay toggle with the Iron Squadron logo
Aug 12, 2026
1b6c3a2
Take deployment zones out of the toggle
Aug 12, 2026
a818442
Reframe the Iron Squadron button sprite
Aug 12, 2026
afaad1a
Write down what we would offer upstream, before building it
Aug 12, 2026
5c7d4b6
mac-patcher: render overlays with real Projectors
Aug 12, 2026
d26ce40
Add the Mac bundle procedure the PR was already pointing at
Aug 12, 2026
3ce28eb
Add the Mac repair toolchain, and fix the unlit glow effects
Aug 12, 2026
c445ca6
mac-patcher: stop dropping forceFigMode on the way to gToggleRange
Aug 13, 2026
bcf616a
Add the range 0.5 band to the Iron Squadron rulers
Aug 13, 2026
d97eaba
Stop the oblong arcs leaking over the base, and see it without TTS
Aug 13, 2026
0000711
Make the oblong arcs start at the base edge again
Aug 13, 2026
865b33c
Put the oblong arcs back against the base edge
Aug 14, 2026
3c1f980
Find what actually made the snail arcs break, and set it
Aug 14, 2026
39f50a1
Cut the rear arcs at their own apex, and leave _ArcOffset alone
Aug 14, 2026
d381748
Give cohesion a ring on the base sizes the mod has none for
Aug 14, 2026
9fc473c
Give the oblong bases a cohesion ring too
Aug 14, 2026
d3caa91
Fix the oblong cohesion size: the base is two radii wide, not one
Aug 14, 2026
7ee96ee
Give the Objective token's R button a range 1/2 ring
Aug 14, 2026
41f692a
Range 1/2 on the Condition token too, and one ring for both
Aug 14, 2026
84e82e0
Mark the attack chain out of scope rather than broken
Aug 14, 2026
f0223dd
Route the attack chain after all, as a stopgap
Aug 14, 2026
8269cc5
Return mod/src to upstream, and drop the dead per-seat remnants
Aug 14, 2026
13bcd12
Drop what the PR no longer needs to carry
Aug 14, 2026
c1b328f
Ship our docs as .txt, and correct what they claimed
Aug 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion mac-patcher/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,3 @@ __pycache__/
*.pyc
*.bak
*.bak-*
scan_bundles_*.out
74 changes: 0 additions & 74 deletions mac-patcher/README.md

This file was deleted.

78 changes: 78 additions & 0 deletions mac-patcher/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
mac-patcher
===========

A Python patcher that injects the Iron Squadron overlay module into a SWL TTS
save file. It is optional, it sits behind a single table-wide button that is off
by default, and with the button off the mod behaves exactly as it does today.

It has nothing to do with the magenta bug any more. That one is fixed in the
bundles themselves, which is the mergeable part of this branch; see
mac-support-package/ and mac-patcher/tools/. This module is the separate offer
described in proposals-upstream.txt, kept here so you can look at it before
deciding whether you want any of it.


WHAT IT ADDS

Cohesion on the five base sizes the mod does not cover. getCohesionLinks()
ships 27, 50 and 70 mm, so on 100, 120 and 150 mm bases and on the two oblong
ones, spawnCohesionRuler returns early and nothing appears. 35 units are in
that case.

Cohesion that follows a model while it is being dragged, instead of
disappearing on pickup and coming back stale on drop.

Deterministic toggles. The vanilla range and cohesion buttons respawn their
Projector rather than toggling it, so a double click leaves two of them.

A maximum-move template anchored where the move started, rather than one that
follows the model as it goes.

A white cohesion band at range 0.5 on the eight unit-leader range templates,
and matching rings on objective and condition tokens.

Rendering goes through real Projectors, in bundles built the same way as the
repaired ones. Nothing is drawn in Lua.


USAGE

# Setup once
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Patch a save
python3 patch_save_for_mac.py <vanilla_save.json> <output_path.json> [--reload]

The patcher writes only to <output_path.json>. Point that at a slot under
~/Library/Tabletop Simulator/Saves/ if you want TTS to pick it up in
Games -> Save & Load.

--reload hot-pushes the patched scripts to a running TTS instance via the
External Editor API, so there is no need to restart TTS.


IDEMPOTENCE

All patches are idempotent. A re-run on an already patched save strips the
previous block from Global via a marker regex and re-injects a fresh one.
Per-object wrappers are stripped before re-injection too.


ONE KNOWN STOPGAP

The Order Token's ATTACK chain is routed through this module so that it does not
leave two overlapping rulers on screen. The feature itself dates from V1 and its
measurements are not accurate under V2 rules, so treat it as a stopgap to be
replaced or removed, not as a design.


FILES

patch_save_for_mac.py the patcher
proposals-upstream.txt what we are offering to build, for the maintainers
tools/ the bundle repair chain, documented in tools/README.txt:
build, merge the per-platform SubShaders, graft a Metal
SubShader into a 2019.1 bundle, inventory the mod's
bundles, install the result into the local TTS cache
59 changes: 0 additions & 59 deletions mac-patcher/SHADER_INVENTORY.md

This file was deleted.

Loading