PipeWrench
PipeWrench is a set of TypeScript definitions for both the Java API and Lua codebase for the game Project Zomboid.
Advantages
- TypeScript provides type safety where Lua does not.
- Code with errors will not compile in most TypeScript environments for improper usages of types.
- Writing Lua works with PipeWrench. (Lua Interfaces & separate Lua files)
Caveats
- TypeScriptToLua Caveats: https://typescripttolua.github.io/docs/caveats
- Lua types are in BETA.
lua/client/Context
and a couple other design patterns aren't processed so these calls will need their own Lua interfaces built manually.
Development
Getting Started
Prerequirements
- steamcmd installed
- npm installed
Install PZ Server
MacOS
bash scripts/install_pz.sh
Windows
./scripts/install_pz.bat
Generate typescript definitions
npm run extract
Done!
npm install
Releases
Versioning
We automate the release process using github actions. Version numbers are based on PZ versions, with an additional patch release version at the end. For example 41.73.3
would be the 41.73
PZ version, but with 3 updates to correct typing issues. Note this is not strictly semver and there may be breaking fixes in a minor patch version.
Creating a release
To create a new release run
npm version 41.73.1
git push --tags && git push
Support
Discord Server
If you like what I do and helped your community a lot, feel free to buy me a coffee! https://ko-fi.com/jabdoesthings https://www.paypal.com/paypalme/JabJabJab