Log conditions, session completion, and MCP
This extended guide covers AND/OR, profile queues, HTTP, Studio, and AI clients. The simple phrase rule below remains available, but enabled Workflow takes priority.
Implemented behavior
Enable Session signals for the profile in Account settings → Account setup. A compatible runtime must execute the bridge and provide WebSocket.connect. Assign a script and enable auto-attach/submission.
In Close Roblox when a log matches, enter one message per line:
VIP: spawn completed
JOB: completed
Any match completes that profile session. Empty list disables the rule. Without Match phrase anywhere, full case-sensitive equality is required. With it, plain substring matching applies, not regular expressions.
Delay before closing: integer 0–86400 seconds. Use 0 for closure on the next launcher poll. Up to 32 phrases, each 512 bytes; non-ASCII characters may use multiple bytes.
Example script:
-- First verify your own server, character, or completed task condition.
-- Report only after that condition has actually been met:
print("VIP: spawn completed")
ExtraExecutor does not independently verify VIP membership from this message. Another script in the same client can print matching text; use unique messages. Lines printed before bridge listener installation are not replayed.
The bridge listens to LogService.MessageOut and forwards matching messages. Native code rechecks the rule, session capability, account ID, and specific PID/instance before closure. Recovery for that run is canceled, preventing automatic restart after completion. Close failures enter history; automatic close retry for this simple rule is not implemented. Vault locking cancels delayed completion.
Restart the managed session after changing rules: bridge settings are loaded at installation. The independent source VM lacks Roblox bindings; bridge/Dex delivery is not execution proof. Live verification of this rule remains outstanding.
Signal addresses
Roblox bridge default: ws://127.0.0.1:8224, overridden by POTASSIUMWSPORT. Per-session capability is generated/embedded automatically; do not copy it to other scripts or chat.
External programs can use authorized HTTP POST /signals on the MCP port. Workflow configures outgoing webhooks. See formats.
Local MCP
Enable MCP in integration settings. Default http://127.0.0.1:8225/mcp, HTTP POST JSON-RPC with Authorization: Bearer <local Potassium token>. This token grants server-tool access; do not publish it.
| Tool | Action |
|---|
| list_clients | Connected clients |
| execute_script | Send Luau; provide pid for a specific client |
| read_console | Recent messages; currently shared across clients |
| session_status | Heartbeat, Place/Job, target match; requires unlocked vault |
| open_dex | Send Dex++ loader to one explicitly specified pid |
Example tools/call body:
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"open_dex","arguments":{"pid":1234}}}
1234 is an example: obtain the real PID through list_clients. The client first performs initialize and tools/list. Stdio adapter/templates for Claude, Codex, Antigravity, and OpenCode are included; live connections remain unverified. The HTTP endpoint has no SSE GET.
Dex++
account-manager/examples/DEX-LOADER.luau can be saved into Scripts/Autoexec and assigned. Automatic launch requires auto-attach/submission. open_dex does not start or attach a client itself.
Loader uses upstream latest:
loadstring(game:HttpGet("https://github.com/AZYsGithub/DexPlusPlus/releases/latest/download/out.lua"))()
Project. latest content can change. Dex is a client inspection/debugging UI. AI data access uses a separate game bridge with gettree/getproperties/readscript/setproperty via game_request. It does not bypass Roblox permissions.
Extension status
- AND/OR groups, counters, timeout, completion/failure actions added.
- Profile chains with delays and confirmed old-instance exit added.
- Studio plugin and separate Player tree/property bridge added.
- HTTP signals, webhook, stdio adapter, AI templates added.
Implemented without tests/live confirmation at the user's request. The independent Luau VM is separate and supplies no Roblox bindings.