[GH-ISSUE #121] How Would I Include Havok Notes Without Discosing The Source? #29

Closed
opened 2026-10-15 20:52:37 +00:00 by bsakaguchi · 3 comments
Owner

Originally created by @Selene0623 on GitHub (Oct 6, 2026).
Original GitHub issue: https://github.com/rehan-remade/universal-modder/issues/121

For instance - the source is nearly mandatory unless one wants to do a ton of work on reversing the format. Sometimes it may take a very long time - and often AIs will block on it unless they have the source. So what kind of stuff would be permissible to disclose without leaking the source? There's also a lack of tooling for many SDK versions so the only answer is to scour github for leaked SDKs - which do exist on github.

Originally created by @Selene0623 on GitHub (Oct 6, 2026). Original GitHub issue: https://github.com/rehan-remade/universal-modder/issues/121 For instance - the source is nearly mandatory unless one wants to do a ton of work on reversing the format. Sometimes it may take a very long time - and often AIs will block on it unless they have the source. So what kind of stuff would be permissible to disclose without leaking the source? There's also a lack of tooling for many SDK versions so the only answer is to scour github for leaked SDKs - which do exist on github.
Author
Owner

@Selene0623 commented on GitHub (Oct 6, 2026):

Picked this apart from the enforcement side. The short answer: what is safe to disclose is the structure, and nothing about writing it up requires shipping or pointing at the material.

What the licence says

Microsoft owns the IP (Telekinesys was the original author, Intel bought it in 2007, Microsoft in 2015). The EULA is blunt: source code other than the headers and demo code shipped in the SDK is confidential and a trade secret, and disclosure, sublicensing, modification and reverse engineering/disassembly/decompilation are all forbidden, "even for purposes of interoperability or error correction". There is no interoperability carve-out to lean on, so on paper republishing SDK source or files is infringement.

What actually gets enforced

  • No published takedown names Havok. GitHub's public DMCA notice corpus has zero hits for Havok, Telekinesys, or representative header names, while the same queries hit hard for control terms (Nintendo, Unreal, and dozens of Microsoft notices). Microsoft's own published notices are about game piracy and derivative game clones, not middleware.
  • No litigation either. Public litigation databases list no case with Telekinesys or Havok as a party.
  • The mirrors survive regardless. Public trees of legacy SDK headers have been online for years and still get commits. One of them deliberately ships only .h files as self-imposed caution — that caution is a choice, not a response to a notice.
  • The one Havok source incident was a theft, not enforcement. In 2003 some engine components may have gone out with the Half-Life 2 source heist; Havok said it was investigating, and nothing public followed.
  • The real risk is platform and publisher policy. That is what stops projects — H2M in 2024 drew a C&D with a legitimate retail copy and no leaked assets.

Where the line is

  1. Write the structure in your own words: field names, offsets, ordering, semantics, version maps. That is the knowledge, and it is not the file.
  2. Never paste SDK code, attach headers, reproduce keys or keycodes, or link a mirror or torrent — and never write "get the SDK from X". Pointing at the material is what draws a notice, not knowing it.
  3. Saying where a fact came from is fine ("the class layout comes from the engine's own headers") without naming a route to it.
  4. A working-tree scrub is not enough: git history and generated deploy branches keep the old blobs. Either rewrite history or accept everything ever committed is published.

On "the source is mandatory"

Usually it is not, for reading shipped files. The packfile's own reflection registry carries the class layouts and member order a header would have given you, so the version question is answered by the file instead of by a header. Where a genuinely SDK-free path does not exist, write that down as an open question rather than a fetch instruction.

Two gaps worth stating: a second large notice database is behind a bot wall, so I could only search one corpus exhaustively, and private C&D letters are never published — a null result means "no public action", not "no letters ever sent". Not legal advice either.

I wrote this up as a technique note in #123 (knowledge/techniques/havok-sdk-derived-knowledge-and-enforcement-record.md) so it does not have to be re-derived next time.

<!-- gh-comment-id:6022893329 --> @Selene0623 commented on GitHub (Oct 6, 2026): Picked this apart from the enforcement side. The short answer: what is safe to disclose is the **structure**, and nothing about writing it up requires shipping or pointing at the material. ## What the licence says Microsoft owns the IP (Telekinesys was the original author, Intel bought it in 2007, Microsoft in 2015). The EULA is blunt: source code other than the headers and demo code shipped in the SDK is confidential and a trade secret, and disclosure, sublicensing, modification and reverse engineering/disassembly/decompilation are all forbidden, "even for purposes of interoperability or error correction". There is no interoperability carve-out to lean on, so on paper republishing SDK source or files is infringement. ## What actually gets enforced - **No published takedown names Havok.** GitHub's public DMCA notice corpus has zero hits for Havok, Telekinesys, or representative header names, while the same queries hit hard for control terms (Nintendo, Unreal, and dozens of Microsoft notices). Microsoft's own published notices are about game piracy and derivative game clones, not middleware. - **No litigation either.** Public litigation databases list no case with Telekinesys or Havok as a party. - **The mirrors survive regardless.** Public trees of legacy SDK headers have been online for years and still get commits. One of them deliberately ships only `.h` files as self-imposed caution — that caution is a choice, not a response to a notice. - **The one Havok source incident was a theft, not enforcement.** In 2003 some engine components may have gone out with the Half-Life 2 source heist; Havok said it was investigating, and nothing public followed. - **The real risk is platform and publisher policy.** That is what stops projects — H2M in 2024 drew a C&D with a legitimate retail copy and no leaked assets. ## Where the line is 1. Write the structure in your own words: field names, offsets, ordering, semantics, version maps. That is the knowledge, and it is not the file. 2. Never paste SDK code, attach headers, reproduce keys or keycodes, or link a mirror or torrent — and never write "get the SDK from X". Pointing at the material is what draws a notice, not knowing it. 3. Saying where a fact came from is fine ("the class layout comes from the engine's own headers") without naming a route to it. 4. A working-tree scrub is not enough: git history and generated deploy branches keep the old blobs. Either rewrite history or accept everything ever committed is published. ## On "the source is mandatory" Usually it is not, for reading shipped files. The packfile's own reflection registry carries the class layouts and member order a header would have given you, so the version question is answered by the file instead of by a header. Where a genuinely SDK-free path does not exist, write that down as an open question rather than a fetch instruction. Two gaps worth stating: a second large notice database is behind a bot wall, so I could only search one corpus exhaustively, and private C&D letters are never published — a null result means "no public action", not "no letters ever sent". Not legal advice either. I wrote this up as a technique note in #123 (`knowledge/techniques/havok-sdk-derived-knowledge-and-enforcement-record.md`) so it does not have to be re-derived next time.
Author
Owner

@rehan-remade commented on GitHub (Oct 7, 2026):

You don't need to hide where it came from. Knowledge from a leaked Havok SDK is fine in your own words, and saying so is fine too (for example, "layout from the leaked 2014.1 SDK headers"). What stays out is the SDK itself and every route to it:

  • no pasted code, header or struct dumps, and no SDK file listings;
  • no links or pointers to copies, and no "search GitHub for the SDK" instructions;
  • no license keys or keycodes, and nothing about where they sit in a file.

Write the note so an agent gets the layout it needs from the note itself. Where something can't be described without the source, leave it as an open question. Havok format notes written this way are welcome. I closed #123 because it's about enforcement rather than formats.

<!-- gh-comment-id:6027976661 --> @rehan-remade commented on GitHub (Oct 7, 2026): You don't need to hide where it came from. Knowledge from a leaked Havok SDK is fine in your own words, and saying so is fine too (for example, "layout from the leaked 2014.1 SDK headers"). What stays out is the SDK itself and every route to it: - no pasted code, header or struct dumps, and no SDK file listings; - no links or pointers to copies, and no "search GitHub for the SDK" instructions; - no license keys or keycodes, and nothing about where they sit in a file. Write the note so an agent gets the layout it needs from the note itself. Where something can't be described without the source, leave it as an open question. Havok format notes written this way are welcome. I closed #123 because it's about enforcement rather than formats.
Author
Owner

@rehan-remade commented on GitHub (Oct 10, 2026):

Closing, since this has been answered above. If you get stuck trying it, open a new issue with the game, what you tried and the last error.

<!-- gh-comment-id:6094555103 --> @rehan-remade commented on GitHub (Oct 10, 2026): Closing, since this has been answered above. If you get stuck trying it, open a new issue with the game, what you tried and the last error.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rehan-remade/universal-modder#29
No description provided.