Skip to content

asledgehammer/PipeWrench

Repository files navigation

PipeWrench

Test

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

https://discord.gg/u3vWvcPX8f

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

About

TypeScript typings for ProjectZomboid Java API.

Resources

License

Stars

Watchers

Forks

Languages