Examiner verified API
Complete reference for the deep-inspection and state-tracking engine.
Core Inspection
| Member | Returns | Behavior | Description |
|---|---|---|---|
| Examine | string, ctx | .noyield | Main entry point for full reports and context creation. |
| Dispatch | void | .noyield | Consolidates identical reports to prevent console flooding. |
| ExamineWithLogger | string, ctx | .noyield | Wraps Examine and routes output to a logger object. |
| Report | string | .noyield | Internal engine that formats the text report summary. |
| pipe | void | .noyield | Adds a middleware function to modify reports. |
| ReportToJSON | string? | .noyield | Uses HttpService to encode reports for external use. |
Intelligent Dispatching
The Examiner automatically handles "noise" by batching identical reports that occur within a 0.1s window.
-- If 50 parts call this at once, only ONE report prints with a (x50) badge.
Examiner.Dispatch(myReport)
Snapshots & Diffing
| Member | Returns | Behavior | Description |
|---|---|---|---|
| Snapshot | number | .noyield | Captures a deep-copy of a table; returns a unique ID. |
| DiffSnapshots | table? | .noyield | Compares a snapshot ID against a live table state. |
Examine Context (Ctx Object)
Returned as the second value from Examine().
| Method | Returns | Description |
|---|---|---|
:toJSON() | string? | Encodes the report linked to this context. |
:snapshot() | number | Snapshots the original target of this examination. |
:retry(fn) | Informer | Runs a new function wrapped in an Informer. |
Informer Class
| Method | Returns | Behavior | Description |
|---|---|---|---|
| Informer | Informer | yields | Creates a protected async wrapper for operations. |
:catch(fn) | self | .noyield | Executes if the informer's function fails. |
:finally(fn) | self | .noyield | Runs after the operation regardless of outcome. |
:Retry() | Informer | yields | Restarts the informer logic. |
Require Watchers (Manual Instrumentation)
| Member | Returns | Behavior | Description |
|---|---|---|---|
RecordRequire | void | .noyield | Notifies watchers that a module was required. |
WatchRequire | void | .noyield | Subscribes a callback to module require events. |
Reactive Tools
| Member | Returns | Behavior | Description |
|---|---|---|---|
ObserveVariable | void | yields | Polls a _G variable for changes. |
UnobserveVariable | void | .noyield | Kills the polling loop for a variable. |
Inject | boolean | .noyield | Forcefully inserts a value into a nested table path. |
BindPartToLogger | void | .noyield | Changes a Part's color based on Logger signals. |
Signal | table | .noyield | Internal pub/sub system for Examiner events. |
World & Logic Safety
| Member | Returns | Behavior | Description |
|---|---|---|---|
| Protect | boolean | .noyield | Validates table types against a schema. |
| TrackInstance | void | yields | Reports property changes on physical Parts. |
| Adorn | void | .noyield | Creates 3D visual indicators for errors in-game. |
Advanced Tools
| Member | Returns | Behavior | Description |
|---|---|---|---|
| SnapshotHistory | number | .noyield | Rolling buffer of last 10 states for time travel diffs. |
| DiffHistory | table? | .noyield | Diff against a historical snapshot index. |
| InterceptRemote | void | .noyield | Wraps RemoteEvents to log traffic size/frequency and flag oversized payloads. |
| WatchLeak | void | yields | Monitors table growth over time for potential memory leaks. |
| WatchInstanceLifecycle | void | .noyield | Alerts on destroyed instances with lingering references. |
| HeatmapAdorn | void | .noyield | Colors parts based on error heat (red=hot, blue=cold). |
| MapDependencies | void | .noyield | Analyzes require data for dependency graphs. |
| ConditionalBreakpoint | void | yields | Pauses execution on condition met. |
| SanitizeEnvironment | void | .noyield | Removes stale variables from environments. |
| RegressionTest | void | .noyield | Runs functions and checks against expected snapshots. |
| MonitorCollisions | void | .noyield | Tracks touch density on parts. |
| SyncToWeb | void | yields | Batches JSON reports and posts to a URL. |
| LockTable | void | .noyield | Locks tables to prevent modifications. |
| GetInputBuffer | table | .noyield | Returns recorded player inputs (client-side). |
| SearchTracked | table | .noyield | Searches snapshot data for values/keys. |
| StrictEnums | void | .noyield | Lock tables to only allow specific string values. |
| AntiGlobalPollution | void | yields | Watch _G and flag non-prefixed variables. |
| RecursiveLockdown | void | .noyield | Deeply freeze nested configuration trees. |
| ValueClampingSentinel | void | yields | Watch numbers and report out-of-range values. |
| NullPointerMocking | void | .noyield | Return dummy objects instead of nil. |
| TypeSwitchLogger | void | yields | Log type changes of variables. |
| ConstantGuard | void | .noyield | Protect specific keys in tables. |
| ArrayOnlyEnforcement | void | yields | Ensure tables remain arrays. |
| CircularReferenceDetector | void | .noyield | Flag circular references in tables. |
| JSONSchemaValidator | boolean | .noyield | Validate tables against JSON schema. |
| AutoDocumentationGenerator | void | .noyield | Build data maps from snapshots. |
| ModuleDependencyGraph | void | .noyield | Map module dependencies. |
| CrossServerLogSync | void | .noyield | Sync logs across servers. |
| EnvironmentComparer | void | .noyield | Diff server vs client states. |
| ExecutionTimer | function | .noyield | Wrap functions to log execution time. |
| TodoCommentExtractor | void | .noyield | Scan scripts for TODO comments. |
| HeartbeatBudgeting | void | .noyield | Warn on excessive frame time usage. |
| TableGrowthRate | void | yields | Log table growth per second. |
| RemoteRateLimiter | void | .noyield | Flag high-frequency remote calls. |
| MemorySnapshotDiffing | void | yields | Diff memory growth over time. |
| ConnectionLeaker | void | yields | Detect signal leaks. |
| HeavyLoopDetector | void | yields | Track long-running loops. |
| InstanceCountTracker | void | yields | Snapshot workspace instance counts. |
| DebrisSentinel | void | .noyield | Watch debris service. |
| GarbageCollectionPing | void | yields | Track weak table clearing. |
| InputHistoryPlayback | void | .noyield | Record input history. |
| APIVersionChecker | void | .noyield | Check module versions. |
| ServerAgeWarning | void | yields | Alert on long-running servers. |
| PlayerPingSnapshot | void | .noyield | Record player ping on dispatch. |
| DataStoreBudgetTracker | void | .noyield | Warn on DataStore limits. |
| ThirdPartyAPIGuard | void | .noyield | Log API errors. |
| AssetLoadObserver | void | yields | Report slow asset loads. |
| CrossGameTeleportLog | void | .noyield | Record teleport data. |
| ServerRegionLogger | void | .noyield | Group errors by region. |
| StateMachineValidator | void | .noyield | Validate state transitions. |
| UndoRedoBridge | void | .noyield | Use snapshots for undo/redo. |
| DependencyInjectionGuard | void | .noyield | Ensure required services. |
| EventChainTracer | void | .noyield | Log event breadcrumbs. |
| MetatableSpy | void | .noyield | Report metatable access. |
| RecursiveTypeChecker | void | .noyield | Deep type checking. |
| DeltaTimeMonitor | void | .noyield | Track frame rate consistency. |
| PriorityDispatch | void | .noyield | Sort logs by priority. |
| AutomaticFixer | void | .noyield | Auto-inject defaults. |
| LogicBlackBox | void | yields | Snapshot on crash. |
| ScriptEnvironmentDiff | void | .noyield | Check environment tampering. |
| TheFinalReport | void | .noyield | Summary on shutdown. |
| Guard | Guard | yields | Wrap functions with catch/default/finally chaining. |
| MetatableIntegritySentinel | void | yields | Check if metatables are tampered. |
| Compare | Compare | .noyield | Fluent comparison with logging. |
| useTrack | void | yields | Watch table value changes, run side effects. |
| AutomatedBreadcrumbs | void | .noyield | Track calls for error context. |
| SchemaRecovery | table | .noyield | Fix invalid tables with defaults. |
| TableDeepEqual | boolean | .noyield | Deep equality check for tables. |
| NilProtection | void | .noyield | Enable/disable nil protection mode. |
| PermissionGuard | void | .noyield | Enable/disable security permission checks. |
| LintingEnforcer | void | .noyield | Enable/disable strict type checking. |
| MetatableLock | void | .noyield | Enable/disable metatable purity monitoring. |
| CatchOrRetry | void | yields | Runs fn with retries on failure, snapshots state. |
| SucceedUntil | void | yields | Runs fn while condition is true, catches on failure. |
| SearchFor | table | .noyield | Searches scope for objects matching query. |
| ValidateMetatable | boolean | .noyield | Checks metatable against template. |
| Sync | void | yields | Keeps two tables in sync. |
| Expect | boolean | .noyield | Runtime type check for value. |
| TraceAttribute | void | .noyield | Monitors attribute changes with patterns. |
| ExpectReturn | function | .noyield | Wraps function to validate return type. |
| InterceptNil | void | .noyield | Wraps target to return fallback on nil access. |
| Gate | Gate | .noyield | Runs successFn only if condition is true. |
| MemoizeWithVerify | function | .noyield | Caches result but verifies periodically. |
| PollUntil | void | yields | Runs fn until condition is met or timeout. |
| ValidateMetatable | boolean | .noyield | Checks for shadowing in metatable. |
| Match | Match | .noyield | Pattern matching with catch-all. |
| Modify | Modify | .noyield | Fluent state editor with checks. |
| WaitUntil | WaitUntil | yields | Smart wait with timeout and snapshot. |
| ObserveReturn | function | .noyield | Wraps function to log returns. |
| WaitAndCompare | void | yields | Waits for value to match expected. |
| ModifyProperty | void | .noyield | Safely sets instance properties. |
| Limit | void | .noyield | Sets guardrails on tables/instances to cap values and dispatch warnings. |
| Extend | void | .noyield | Registers custom functions with Examiner's reporting. |
| Throttle | function | .noyield | Limits function calls per second, blocks excess. |
| SchemaAttribute | function | .noyield | Enforces type annotations from Roblox Attributes. |
| MustReturn | function | .noyield | Wraps function to ensure return within deadline. |
TableDeepEqual
Performs a deep equality check between two tables, recursively comparing all nested values.
NilProtection
Toggles nil protection mode, which returns dummy objects instead of failing on nil access.
PermissionGuard
Enables checks for RBXScriptSecurity restricted properties to prevent crashes.
LintingEnforcer
Verifies that function arguments match intended Luau types when enabled.
MetatableLock
Alerts if a script's metatable has been modified at runtime when purity check is enabled.
CatchOrRetry
Runs a function with automatic retries on failure, snapshots state, and dispatches fatal reports when retry limit is exceeded.
SucceedUntil
Continuously runs a function while a condition remains true, catching state and dispatching diagnostics when the condition fails.
SearchFor
Searches a scope for instances matching a query, with optional auto-sanitization of illegal objects.
ValidateMetatable
Validates an object's metatable against a template, catching any drift or unauthorized modifications.
Sync
Maintains synchronization between two tables, catching and reporting sync errors.
Expect
Performs runtime type checking on values, dispatching errors for type mismatches.
TraceAttribute
Monitors Roblox instance attributes for changes, enforcing strict value patterns.
ExpectReturn
Wraps a function to validate its return type, dispatching errors for mismatches.
InterceptNil
Wraps a table or instance to return a fallback value on nil access, preventing crashes.
Gate
Logic bouncer that runs a function only if a condition is met, with else handling.
MemoizeWithVerify
Caches function results for performance but verifies periodically for data drift.
PollUntil
Runs a function repeatedly until a condition is met or timeout occurs.
ValidateMetatable
Checks for metatable shadowing where table keys override metatable entries.
Match
Pattern matching system with catch-all handler for resilient logic.
Modify
Fluent state editor that applies changes only if all checks pass.
WaitUntil
Smart wait with timeout, snapshot on failure, and promise-like chaining.
ObserveReturn
Wraps functions to log their return values for debugging and history.
WaitAndCompare
Waits for a specific value to match an expected state.
ModifyProperty
Safely sets Roblox instance properties with error handling.
Limit
Sets guardrails on tables or instances. Intercepts assignments and caps values at min/max, dispatches warnings, and takes snapshots on violations.
Extend
Allows registration of custom debug logic into Examiner, automatically inheriting reporting and snapshotting capabilities.
Throttle
Limits how many times a function can be called per second. Blocks excess calls, dispatches warnings, and snapshots the calling context.
SchemaAttribute
Reads Roblox Attributes for type definitions (e.g., TypeAnnotation="Number") and enforces them on attribute changes, reverting invalid types.
MustReturn
Wraps a function to ensure it returns within a timeout. Catches infinite loops or stuck waits, dispatches errors, and snapshots arguments.
Example: Usage Pattern
local Examiner = require(path.to.Examiner)
-- Track state over time
local snapshotId = Examiner.Snapshot(playerData)
-- Later, check for mutations
local report, ctx = Examiner.Examine(playerData, nil, { snapshotId = snapshotId })
print(report)
-- Export to external monitoring
local payload = ctx:toJSON()