Vindicta.print
Outputs a message to the executor console at a specified severity level.
function Vindicta.print(level: number, ...: string): voidSynopsis
How it works
A native C function (
printFn) registered on the Vindicta global table. It writes directly to the executor's internal console output buffer, which is rendered in the Vindicta UI. The level argument controls the severity styling of the message.Under the hood
Implemented as a
lua_CFunction that:- Reads the first argument as an integer severity level (0–3)
- Concatenates remaining arguments with space separators
- Dispatches the formatted string to the UI console's ring buffer
- Applies coloring based on severity: white (0), blue (1), yellow (2), red (3)
iscclosure(Vindicta.print) returns true because it is a genuine C closureClosureA function value that captures its lexical environment. In Luau, closures come in two types: LClosure (Luau bytecode + Proto + upvalues) and CClosure (native C function pointer + upvalues)..Usage
All severity levels
Vindicta.print(0, "Hello, World!") "cc">-- plain print
Vindicta.print(1, "Script loaded") "cc">-- info
Vindicta.print(2, "Deprecated API used") "cc">-- warn
Vindicta.print(3, "Failed to hook target") "cc">-- errorConditional logging helper
local function log(msg, isError)
local level = isError and 3 or 1
Vindicta.print(level, "[MyScript]", msg)
end
log("Initialized", false) "cc">-- info
log("Hook failed!", true) "cc">-- errorParameters
level number Severity level. 0 = print (plain), 1 = info (blue), 2 = warn (yellow), 3 = error (red).
... string One or more string values to log. Multiple arguments are concatenated with a space separator.
Log Levels
| Level | Name | Style | Use Case |
|---|---|---|---|
| 0 | Plain white | General output, debugging | |
| 1 | info | Blue label | Informational messages, status updates |
| 2 | warn | Yellow label | Deprecation notices, non-fatal issues |
| 3 | error | Red label | Fatal errors, hook failures, exceptions |
C Implementation
This function is implemented natively (printFn) and exposed through the Vindicta global table. It is not a Luau closure — iscclosure(Vindicta.print) returns true.