Skip to content

feat: add optional Icebreaker Black Division HH-60 visual replacement - #14

Open
larkloss wants to merge 2 commits into
Tylevo:release/1.3.13from
larkloss:feature/icebreaker-hh60-visuals
Open

larkloss wants to merge 2 commits into
Tylevo:release/1.3.13from
larkloss:feature/icebreaker-hh60-visuals

Conversation

@larkloss

Copy link
Copy Markdown

Summary

Hi Tylevo, thanks for TSC! We have implemented and tested an Icebreaker Black Division-associated HH-60 visual replacement for the helicopter used by TSC. Calling it, extracting, and cargo transfer all work in our local installation. The latest cockpit/door glass correction has also been tested successfully.

We think this HH-60 is a particularly good visual match for TerraGroup's helicopter services. Its equipped appearance, occupied cockpit, and door-gunner stations convey the special-operations/extraction character we associate with a covert corporate support service. This is our art-direction preference, not a claim that the lore canonically assigns this exact aircraft to TerraGroup or that the existing UH-60 is wrong.

The aircraft comes with five visible, non-interactive crew members:

  • Two pilots in the cockpit.
  • Two door gunners at their stations.
  • One cabin support crew member.

They are posed meshes sampled from the source cutscene, not AI: no dialogue, player interaction, firing, or live crew animation. Ropes/rappelling are deliberately excluded.

What this PR contains

An optional, source-only companion in extras/hh60-visual/, based on the exact runtime sources used in our working 0.2.1 installation, plus portable local export tools, tests, and documentation. This PR targets release/1.3.13, matching the tested TSC release rather than the older version on main.

It leaves the normal solution, base release package, and default UH-60 unchanged. The companion defaults to disabled and can be removed or disabled to restore the original visual. If you like the direction, it can later be integrated or packaged differently after your review.

Runtime design

  • A single postfix on UH60Behaviour.OnAwake, with a strict tested-Core hash guard.
  • No custom Unity AssetBundle loading or AssetLoader redirection. The offline tool decodes the source geometry/textures, validates them, and the companion creates ordinary Unity meshes/materials/textures at runtime.
  • One persistent shared resource cache reused by pooled aircraft, rather than a texture set per helicopter.
  • The new visual follows the original helicopter anchor and rotor transforms. The original TSC flight/arrival logic, extraction area, cargo interaction, colliders, sounds, Animator, and lights remain in place.
  • Original meshes are hidden only after the new visual is complete; managed construction failures restore the original renderer flags. This is not a guarantee against native Unity/GPU failures.
  • The three aircraft window material slots reuse the original MI_VH_BlackHawk_Glass / Global Fog/Transparent Reflective Specular material. This fixes the initial flat cyan-looking windows without modifying door metal, crew eyewear, or weapon optics.
  • No server/profile/inventory changes, service price changes, new day/night lighting system, or new helicopter interaction mechanics.

Observed validation

Local environment: TSC 1.3.13, SPT 4.1.5, EFT 0.16.9.5-40743.

The player explicitly confirmed in-game:

  • Correct HH-60 model appears.
  • Helicopter call and extraction complete normally.
  • Cargo transfer works.
  • Night navigation lights and visible aircraft animation work.
  • Cockpit/door glass is correct after the 0.2.1 correction.

Runtime logs also confirm five baked crew, two rotor bridges, and three native glass bindings. Private logs and photos are intentionally not attached.

Automated/local verification:

  • Existing upstream tools/verify-ci.ps1: passed with the pinned .NET 10.0.201 SDK. The same staged patch was tested in a clean ordinary-file checkout because OneDrive placeholder attributes trigger the existing reparse-point guard; that guard was not weakened.
  • Companion build against local game references: passed.
  • 30 synthetic payload validation tests; 45 synthetic glass-policy tests; 12 offline-export safety tests.
  • Additional 50 glass-policy checks against the actual locally generated scene.
  • Portable exporter reproduced all 283 mesh/texture binary files byte-for-byte; the changed scene/pose metadata only removes private source paths.
  • Local rollback to the previous working adapter was executed and its original DLL hash restored.

These are not claims of exhaustive compatibility: Fika/multiplayer, all-map clearance, long-session stability, and the UH-60-based UAV path remain untested. The UAV path can instantiate the same prefab and therefore needs explicit review of the shared hook. The original collision geometry is retained rather than rebuilt for the HH-60.

Asset provenance and distribution boundary

The local donor is the Icebreaker scene bundle supplied with ManimalIcebreaker 1.1.3; the aircraft/crew are Battlestate Games assets. Thank you to that project for its Icebreaker work, and to Tylevo, SamSWAT, and Arys for the service/controller foundation.

This PR includes no game models, textures, animations, bundles, decoded payload, proprietary reference assemblies, saves, or private logs. The tools require a user-supplied local donor with the documented SHA-256 and do not download assets. The repository's code license does not grant rights to redistribute those assets; no such permission is claimed here. Any asset-inclusive release needs a separate permissions decision.

The companion README explains reproduction, enabling/disabling, the five crew, the native glass fix, exact version pins, and the remaining limitations. We'd be happy for you to consider this staffed HH-60 as an optional TerraGroup helicopter appearance or as a direction for a future integration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant