Dependencies
One runtime dependency, and nothing else reaches your install. The game data, the formulas and the save reader are all in the package — there is no service to call, no key to hold, and no optional extra that quietly becomes required.
The One Runtime Dependency
Runtime
zod — MIT
By Colin McDonnell. Declares the shapes the data tables must satisfy, so a catalog can be checked against its documented form at runtime and not only at compile time. Types vanish when TypeScript compiles; a table that has drifted does not.
Required Or Bundled
The distinction decides whose license has to travel with what you ship, so it is worth stating plainly rather than leaving to inference.
npm package
Requires zod
No zod source is inside the tarball. The build imports it and npm installs it alongside, the same as any other dependency in your tree.
WebAssembly build
Bundles zod
The .wasm is compiled from one bundle, so zod's code is inside the artifact. Redistributing
that file redistributes zod, and its MIT notice goes with it.
Build-Time Only
TypeScript, ESLint, Vitest, tsx and the Node type definitions build and check the package. None of them is installed by consumers, and none appears in the published tarball.
What Has No Dependencies At All
The save reader is the part most likely to be embedded somewhere awkward, so it is worth being
precise about. playerInfo.dat is gzip-compressed .NET Binary Format, and the reader for
it is a port of that format written against the record types themselves. It imports nothing — not zod,
not Node — which is why the same reader runs in a browser tab and in a Node process, and why decoding
a save never has to leave the machine it is on.
Checking For Yourself
The manifest is the authority, not this page.
npm view thetowersdk dependencies
npm ls --omit=devWork This Package Builds On
Separate from software dependencies, parts of the game data and several formulas came from community work — the original toolkit, the Effective Paths spreadsheets, the wikis and the guides. Those are credited by name on Contributions, and the licenses that apply are on Licensing.