Skip to main content

The Dev Overlay

The dev overlay is a floating debug panel that appears in --dev builds. It's your primary debugging tool for Pulse scripts. It doesn't exist in regular builds — so there's no performance cost in your final output.


How to get it

Build with the --dev flag:

rb build --dev

Inject build/script.dev.lua (or build/script.dev.obf.lua). The overlay appears as a small pill button in the bottom-right corner labelled ◉ DEV.


Opening and moving it

Click the ◉ DEV button to open and close the panel.

Press Insert to toggle it from the keyboard.

Drag the ◉ DEV button to move it anywhere on screen — useful if it's covering the UI you're testing.

Drag the panel header to reposition the main window.


The LOG tab

The log tab shows every Pulse.Log call made since the script started, in real time.

Level filters — Click TRC, DBG, INF, WRN, ERR to show or hide each level. TRC is off by default (too noisy). Turn it on when you need per-frame detail.

Search — Type a tag or message keyword in the search box to filter. Only matching entries show. This is your fastest tool for isolating one component's behaviour.

ERR↑ — Jump directly to the most recent error entry.

COPY — Copies all visible log entries to clipboard for pasting into a bug report.

Collapsible entries

Each log entry shows a one-line summary. A dot means the entry has structured data attached.

Click ▶ on any entry to expand it. The expanded panel shows:

  • The full non-truncated message
  • Each data field on its own line: name = "Kastervon118", dist = 15
  • A COPY button that copies the full plain-text line to clipboard

Click again to collapse. This keeps the log readable when data payloads are large.


The FEAT tab

The FEAT tab shows every toggle in your script with its current state (ON/OFF). You can flip them without opening the main script window.

ALL ON / ALL OFF — Toggle all features at once.

This is useful when you want to isolate a feature: disable everything, then enable only the one you're investigating.


The CFG tab

The CFG tab shows a snapshot of everything:

  • All toggle states (ON/OFF)
  • All slider/dropdown values
  • All Monitor values (live runtime stats)

REFRESH — Rebuild the snapshot.

COPY — Copy the entire snapshot as plain text (useful for sharing your exact config in a bug report).


The TOOL tab

The TOOL tab gives you one-click launchers for common Roblox development tools. Each tool is fetched over HTTP and executed in an isolated task.spawn — the main script continues running normally.

ToolWhat it does
Infinite YieldAdmin commands and executor utilities — speed, noclip, fly, command bar
Dex ExplorerBrowse and inspect the live game tree; find instances, read properties
Remote SpyMonitor every RemoteEvent / RemoteFunction call in real time

LAUNCH — Fetches and executes the tool. The button shows on success or error (red) on failure. Errors are logged to the LOG tab under the dev-tools tag.

Each tool only launches once per session — clicking LAUNCH again shows "already running".


The monitor bar

The strip at the top of the overlay shows live Monitor values — updated every 0.25 seconds regardless of which tab is open:

players:3 titans:5 shifters:1 mode:Anarchy

These come from Pulse.Monitor.set(key, value) calls anywhere in your code.


Practical debugging flow

  1. Build --dev and inject
  2. Enable the feature you're testing
  3. Open the overlay, switch to LOG, filter by your component tag
  4. Watch what happens in real time
  5. If you see "no target in FOV" but there should be targets: check the candidates count in the log data field — if it's 0, your target list is empty (wrong folder path). If it's > 0, the FOV check is failing (try a larger radius).
  6. If you see throttled warnings: the loop is catching errors. Click ERR↑ or search "ERR" to find the error message.

What the overlay doesn't show

  • Errors that crash the script before logging is initialised
  • print() / warn() calls (those go to the executor's console, not the overlay)
  • Errors inside pcall blocks that you didn't log yourself

Runtime errors in on Event blocks do appear in the overlay at ERR level — they're logged via Pulse.Log.error automatically, so you don't need to wrap them yourself.

For everything else, check your executor's Roblox output window alongside the overlay.