Skip to main content

1.2.23 — Build pipeline bug fixes

What changed

checker.py — crash on framework files outside project root

relative_to() threw ValueError when a syntax error's source file was in the rb install directory (~/.rb/bin/) rather than the project. The checker now handles this gracefully and suppresses errors from framework/vendor files — they use Luau-specific syntax (+=, etc.) that luac 5.x rejects as invalid, but which is correct for Roblox.

Before: build crashed with a Python ValueError traceback instead of showing the real error.
After: framework-file errors are silently filtered; only user-code errors fail the build.

Prometheus — += compound assignment not supported

Prometheus (Lua 5.x obfuscator) cannot parse Luau compound assignment operators (+=, -=, *=, etc.). Any project code that used += in init {} or local function blocks caused an obfuscation failure.

Fix: all compound assignments in project source files must use expanded Lua 5.x form (t = t + x instead of t += x). The framework compiler now documents this constraint.

guard keyword not transpiled inside nested local function blocks

The guard DSL keyword was only transpiled in handler bodies (on Heartbeat { }) and func {} blocks. When used inside a local function defined within init {}, it was emitted as-is into the compiled output, causing Prometheus to fail with a parse error.

Fix: use explicit Lua inside local function bodies in init {}:

-- instead of:
local function _scan()
guard r = hrp -- ✗ not transpiled here
end

-- use:
local function _scan()
local r = hrp; if not r then return end -- ✓
end