Caution
This project is in an very early state. Most features were not tested properly (for now!). If you find any issues, feel free to report it!
Luau global type definitions for writing Roblox exploits, based on sUNC.
Bash (macOS/Linux, Windows via Git Bash or WSL):
curl -fsSL https://raw.githubusercontent.com/jacklebeignet/exploit-types/main/install.sh | bashPowerShell (native, same flags):
irm https://raw.githubusercontent.com/jacklebeignet/exploit-types/main/install.ps1 | iexThis installs the latest release to ~/.exploit-types/global.d.luau. It's a single copy for all your projects. Nothing else on your system is touched.
Then point luau-lsp at it once in VS Code settings.json:
{ "luau-lsp.types.definitionFiles": ["~/.exploit-types/global.d.luau"] }(use your absolute home path: run echo $HOME) and reload the window.
Re-run the script anytime to update. Options:
# Pin a version instead of latest
curl -fsSL .../install.sh | bash -s -- --version v1.2.0
# Per-project install (./global.d.luau, no editor config needed)
curl -fsSL .../install.sh | bash -s -- --local
# Custom directory
curl -fsSL .../install.sh | bash -s -- --dir ~/my-typesinstall.ps1 mirrors these flags (-Version, -Local, -Dir, -DryRun).
Note: collaborators get nothing automatically with the global install! Each machine runs the one-liner once.
src/*.luau— source of truth, one file per sUNC library (closures,debug, …).global.d.luau— generated single-file bundle (what users download).build.luau— bundler. After editingsrc/, run:
lune run build.luaurc maps the lune require alias to Lune typedefs at a machine-local path (~/.lune/.typedefs/…). It is editor-only (CI ignores it) — if your editor flags require("@lune/…"), update the path to your own typedefs or delete the file.
Versions are cut automatically by semantic-release from conventional commits on main (feat: → minor, fix: → patch). Each release attaches the built global.d.luau, which is what install.sh downloads.