Complete guide

Documentation.

Everything MultiBlox does, from first launch and multi-account workflows to settings, groups, scripts, stats, local data, and troubleshooting.

Overview

What MultiBlox does, what it needs, and how its main parts fit together.

What MultiBlox Is

MultiBlox is a Windows Roblox multi-instance manager. It watches Roblox processes, isolates each new client so another can start, identifies the account/game from Roblox logs, and presents every tracked client in one dashboard.

Process detection

MultiBlox continuously watches for RobloxPlayerBeta.exe. It does not require the Roblox process to be started from inside MultiBlox: website launches and Roblox Player launches can be detected too.

CORE

Multi-instance isolation

When a new Roblox process appears, MultiBlox uses the bundled handle64.exe utility to find and close the ROBLOX_singletonEvent handle. This removes the normal single-client restriction for the detected process. The optional Mutant Mutex Closer can also attempt to close ROBLOX_singletonMutex.

CORE

Account and game detection

MultiBlox reads the Roblox log associated with each process and looks for user ID, place ID and universe ID information. It then resolves the Roblox username, avatar, game name and game icon when those services are available.

CORE

Idle detection

If Roblox Player starts before a game session is available in the log, MultiBlox can display an orange Idle row with “Waiting for game session”. The row is replaced with the detected account once Roblox writes the session information.

ACTIVE

Requirements

These are checked during startup. Fatal requirements stop MultiBlox; warnings are shown as notifications/log messages.

Windows + administrator rights

MultiBlox must run as administrator because handle64.exe needs sufficient rights to inspect and close Roblox process handles.

REQUIRED

Roblox Windows Player

The standard Roblox Windows Player must be installed under the normal LOCALAPPDATA Roblox folder. MultiBlox checks the Versions folder and searches for RobloxPlayerBeta.exe.

REQUIRED

handle64.exe

The handle folder distributed with MultiBlox must contain handle64.exe. Removing or renaming it prevents the core multi-instance isolation step.

REQUIRED

Roblox logs

The LOCALAPPDATA Roblox logs folder must exist. MultiBlox relies on Roblox log content to associate a process with a user and game. An empty logs folder produces a warning; launching Roblox once normally can populate it.

REQUIRED

Internet access

Roblox itself needs network access, and MultiBlox also contacts Roblox APIs for account validation, authentication tickets, avatars, game information and public server listings.

REQUIRED

RobloxCookies.dat

If RobloxCookies.dat exists, MultiBlox attempts to lock it while running. Missing this file is only a startup warning; the core process manager can still start.

INFO

The Three Main Launch Paths

All three methods eventually enter the same CoreProcess detection/isolation pipeline.

1. Roblox website / browser

Keep MultiBlox open, sign into the desired Roblox account in your browser, then press Play on a game. MultiBlox detects the newly-created Roblox Player process and isolates it. After that instance is ready, switch account/browser session and repeat.

SUPPORTED

2. Roblox Player / app directly

Open Roblox Player normally. MultiBlox can detect the process even before a game starts; in that case the dashboard may temporarily show an Idle instance. Start/join a game in Roblox Player and MultiBlox will update the row when session data appears.

SUPPORTED

3. Saved Account launch

Save one of your own Roblox accounts in MultiBlox, configure a Place ID and optional Job ID/private server code, then use the offline account’s Launch button on the Dashboard. MultiBlox requests an authentication ticket and starts Roblox for that account.

SUPPORTED

Main Tabs

The sidebar is the main navigation for the application.

Dashboard

Shows active Roblox instances, temporary Idle processes, offline saved accounts that can be launched, and the live MultiBlox log panel.

Saved Accounts

Stores local account metadata, lets you validate/refresh saved accounts, configure launch targets, and create multi-account groups.

Settings

Controls core behavior, launch timing, performance flags, interface options, scripts, automation and advanced data actions.

Stats

Displays local lifetime statistics, play time, stability, launch counts, favorite account/game information, handle success and the local rank system.

Documentation

This offline guide. Its content is loaded from data/docs/documentation.json so the documentation can be expanded without adding more Python code.

Support / Donations

Support links the official MultiBlox Discord and multiblox.app. Donations provides optional Bitcoin, Ethereum, and Litecoin addresses to help fund hosting, site improvements, updates, and the small development team.

ACTIVE

Local Data & Privacy

MultiBlox is designed around local configuration files. Saved-account authentication material is handled differently from ordinary metadata.

Saved account cookies

When you add one of your own accounts, the .ROBLOSECURITY value is validated against Roblox and stored through Python keyring under the service name “MultiBlox”, keyed by the Roblox user ID. It is not written into accounts.json or account configs.

LOCAL

Account metadata

Username, user ID, avatar source, times used and date added are stored locally in data/accounts/accounts.json.

Launch configurations

Per-account Place ID, Job ID and private server code are stored in data/accounts/configs.json.

Groups and settings

Groups are stored in data/configs/groups.json and application settings in data/configs/configs.json.

Statistics and game cache

Lifetime statistics use data/stats/stats.json. Detected game metadata and seen counts are cached in data/stats/games.json.

Launching

Every supported way to open multiple Roblox accounts and how MultiBlox handles each one.

Method 1 — Launch From a Browser

This is the most natural method if you already use roblox.com. MultiBlox does not need to initiate the launch itself.

1. Start MultiBlox first

Run MultiBlox as administrator and wait until the startup splash finishes and the dashboard is ready.

2. Open the desired Roblox account

Sign in to the account you want to use on the Roblox website. MultiBlox does not manage your browser login; it only reacts when Roblox Player starts.

3. Press Play on a game

Use the normal Roblox website Play button. The Roblox protocol launches RobloxPlayerBeta.exe and MultiBlox detects the new PID.

4. Wait for isolation

Let MultiBlox close the singleton handle and identify the process. The dashboard/log should show the account as an online instance. If Block Overlapping Launches is enabled, do not start the next account while the previous launch is still being handled.

IMPORTANT

5. Repeat with another account

Switch browser account/session, choose a game and launch again. Each successfully isolated Roblox process can stay open while the next one starts.

Method 2 — Open Roblox Player Directly

MultiBlox can also follow a Roblox Player process that starts before it has joined a game.

Open Roblox Player

Start Roblox Player using its normal Windows entry point. MultiBlox detects RobloxPlayerBeta.exe exactly like a browser-created process.

Idle row is normal

If the Roblox log does not contain a user ID yet, the dashboard shows an orange Idle row marked “Waiting for game session”. This means the process is isolated and MultiBlox is waiting for Roblox to write session details.

TIP

Join a game

Once Roblox Player enters a game and the log includes the user ID/place information, MultiBlox removes the Idle row and replaces it with the detected account and game.

Launch the next client after isolation

As with browser launching, wait until the previous client is no longer in the launch/isolation phase before starting another when Block Overlapping Launches is enabled.

Method 3 — Saved Accounts

Saved Accounts lets MultiBlox initiate Roblox itself using a locally stored account credential and a configured destination.

1. Add your own account

Open Saved Accounts → Add Account and paste the .ROBLOSECURITY cookie belonging to your own Roblox account. MultiBlox validates it and shows an account preview before the Add Roblox Account button becomes available.

SECURITY

2. Open Config

On the saved account card, press Config. A launch configuration must include a valid numeric Place ID.

3. Choose the destination

You can launch the Place ID normally, add a Job ID for one specific public server, or enter a numeric private server link code. A private server code overrides Job ID, and typing either Job ID or private code clears the other.

4. Save the configuration

Press Save. The parameters are written to data/accounts/configs.json for that Roblox user ID.

5. Launch from Dashboard

Saved accounts appear as red Offline rows on the Dashboard. Press the Launch button on that offline row. The saved account card itself is for account management/refreshing, not the launch button.

TIP

Authentication flow

For a saved launch, MultiBlox reads the account cookie from keyring, requests a Roblox authentication ticket, constructs a roblox-player launch URL, and starts it through the selected launcher method.

Place ID, Job ID & Private Server Code

These fields decide exactly where a saved account or group will join.

Place ID

Required for saved-account and group launches. It is the numeric place identifier from a Roblox game URL, for example the number after /games/ in a roblox.com game link.

Job ID

Optional server-instance identifier. Use this when you want the account to join one specific public server instance. MultiBlox performs a basic length validation before saving.

Servers button

After entering a valid Place ID, press Servers to fetch public servers from Roblox. Each card can show player count, maximum players, ping and FPS when returned by the API. Clicking a server automatically fills its Job ID.

Private Server Code

Optional numeric privateServerLinkCode value. When present it has priority over Job ID. MultiBlox adds it as linkCode in the Roblox launch request.

Top 5 Favorite Games

Account and group config windows show the five games MultiBlox has observed most often. Clicking one fills its Place ID and clears Job ID/private code. These entries come from the local game cache in data/stats/games.json.

Group Launching

Groups launch several saved accounts to the same destination one after another.

Create a group

In Saved Accounts press + Create Group, select one or more saved accounts, and confirm. MultiBlox creates a local group card.

Open group configuration

Press Open on the group card. You can rename the group, add/remove members, set Place ID/Job ID/private server code, use Favorite Games, or open the public Server Picker.

Launch All

Press Launch All in the group configuration. MultiBlox requests an authentication ticket for each member and launches them sequentially.

Sequential safety

The launcher waits for a new Roblox process, then waits the configured Settle Delay before moving to the next member. Process Spawn Timeout decides when a missing Roblox process counts as a failed launch.

IMPORTANT

Missing or invalid account credential

The current group-launch path removes a saved account if its keyring credential is missing or Roblox rejects it, then continues with the remaining queue.

CURRENT BEHAVIOR

Default Protocol vs. Custom Bootstrapper

This setting only changes launches that MultiBlox initiates itself, such as saved-account and group launches.

Default protocol

With Use Custom Launcher disabled, MultiBlox asks Windows to open the generated roblox-player: URL using the registered Roblox protocol handler.

Custom launcher

With Use Custom Launcher enabled and a valid executable selected, MultiBlox starts that executable with “-player” followed by the Roblox launch URL.

Auto Detect Launcher

MultiBlox checks standard LOCALAPPDATA locations for Bloxstrap, Fishstrap, Voidstrap and Froststrap. You can also browse to another compatible executable manually.

Browser/manual launches

The custom-launcher setting does not intercept a Roblox process you start yourself from a browser or the Roblox app. Those processes are simply detected after they appear.

SCOPE

Accounts & Groups

Saving accounts, refreshing them, launch configuration, favorites, groups and local credential behavior.

Adding a Saved Account

Saved accounts make it possible to launch a specific account without switching browser sessions each time.

Add Account card

The first card in Saved Accounts opens the Add Account window. Paste the .ROBLOSECURITY value for an account you own into the cookie field.

Live preview

After enough cookie text is entered, MultiBlox waits briefly and validates the credential against Roblox. A valid, not-yet-saved account shows its username/avatar and enables Add Roblox Account.

Duplicate protection

If the validated user ID is already present in Saved Accounts, MultiBlox refuses to add the same account again.

Credential storage

The credential is stored with Python keyring using service “MultiBlox” and the numeric user ID as the key. Ordinary saved-account JSON contains metadata, not the cookie itself.

LOCAL

Use only your own credentials

A Roblox security cookie grants account access. Do not paste another person’s credential into MultiBlox and do not share your own cookie or credential store.

SECURITY

Saved Account Cards

Each card represents one locally saved Roblox account.

Account / Favorite badge

The card shows Account, and the saved account with the highest Times Used value receives the Favorite badge. Times Used increases when MultiBlox detects that saved account in a Roblox process.

Config

Opens the per-account launch target editor where Place ID, Job ID and private server code are managed.

Delete

Removes the account metadata, its saved launch config and its keyring credential. MultiBlox also removes that user ID from local groups.

Refresh confirmation

Clicking the body of a saved-account card shows a red “Refresh Account?” overlay for about three seconds. Clicking again validates the stored credential and updates profile information.

TIP

Offline Dashboard row

Every saved account also gets an Offline row on the Dashboard when it is not running. That row is where the Launch button lives.

Account Config Window

Configuration is required before the Dashboard Launch button can start a saved account.

Account information

Shows the account username, user ID, times used, date added and avatar.

Place ID

Required numeric destination. MultiBlox will not save an account config without it.

Job ID

Optional specific server instance. Entering a Job ID automatically clears the private server code.

Private Server Code

Optional numeric private server link code. Entering it automatically clears Job ID and it takes priority during launch.

Servers

Fetches public servers for the currently entered Place ID. Choosing one fills Job ID and clears the private code.

Top 5 Favorite Games

Uses the local detected-game history. Clicking a favorite fills Place ID and clears the server-specific fields.

Clear / Save

Clear empties the three launch fields. Save validates them and writes the account’s configuration to data/accounts/configs.json.

Groups

A group is a reusable set of saved accounts that can be launched to one shared target.

+ Create Group

Opens an account picker. Choose the saved accounts that should belong to the new group.

Group card

Shows a Group badge, member count, stacked account avatars, group name and creation date. Open launches the Group Config window; Delete removes the group JSON entry.

Group name

The group can be renamed directly from its configuration window. The saved group card is updated to reflect the new name.

Members

Use + Add Member to open the account picker. Individual member rows can also be removed from the group without deleting the underlying saved account.

Group destination

The group has its own Place ID, Job ID and private server code. These are shared by every member during Launch All.

Launch All

Validates the destination, saves the latest group settings, and sends members through the sequential GroupLaunching queue.

What Happens When Accounts Go Online/Offline

The Dashboard and Saved Accounts views stay linked to CoreProcess detection.

Saved account detected online

When a detected user ID matches a saved account, MultiBlox removes its offline Dashboard row, adds an Online saved-account row, increments Times Used, updates account metadata if Roblox reports newer information, and records the account in local stats.

Saved process closes

When the last running process for that saved user ID closes, MultiBlox restores one Offline row so it can be launched again.

Guest account

An account that was not added to Saved Accounts is still tracked as a Guest. It gets an online Dashboard row and contributes to account/game statistics, but there is no offline launcher row for it.

Dashboard & Instances

How to read the Dashboard, inspect Roblox processes, disconnect them and use manual Rejoin.

Dashboard Instance List

The top Dashboard panel mixes running processes with saved accounts that are currently offline.

Active Instances count

The Dashboard title counts rows marked Online. Idle rows and offline saved-account rows are not included in the active count.

Green Online row

A Roblox process has been identified and is running. The subtitle says Saved account when its user ID exists in Saved Accounts, otherwise Guest account.

Orange Idle row

RobloxPlayerBeta.exe is running and has been isolated, but MultiBlox is still waiting for user/game session data in the Roblox log.

Red Offline row

A saved account is not currently running. It includes a Launch button that uses the account’s saved launch configuration.

Ordering

Online and Idle rows are kept above offline saved-account rows so live activity remains visible first.

Opening Instance Information

Click a running Online/Idle row to open the detailed Instance Information window.

Account Information

Shows username, user ID, Times Used and whether the detected account is Saved or Guest, together with its avatar.

Game Playing

Shows the detected game name/logo, Place ID, a copy-Place-ID button, and Universe ID when available.

Process Information

Shows PID, CPU, RAM, thread count, handles/status fields and runtime. CPU, RAM, threads, status and runtime refresh while the process is open.

Stability Check

Every second the detail window derives a 0–100 stability score from the process CPU and memory percentages. Above 75 is shown as Stable, 41–75 as Unstable, and 40 or below as Critical.

Instance Actions

Actions operate on the selected Roblox process.

Disconnect

Kills the selected Roblox process and closes the information window. CoreProcess then detects the termination and updates the Dashboard.

Rejoin

This button is shown for Saved accounts. It kills the current process, waits briefly for it to close, then calls the saved-account launch flow again.

ACTIVE

Important Rejoin detail

Manual Rejoin uses the saved account’s current Config values. It does not dynamically clone whatever server/game the process happened to be in if that differs from the saved configuration.

IMPORTANT

Copy Place ID

Copies the detected Place ID to the Windows clipboard and briefly switches the copy icon to a check mark.

Dashboard Logs

The lower Dashboard panel shows application events generated during the current run.

Log levels

Entries are timestamped and colored by level such as SUCCESS, INFO, WARN and FAIL. Entries can also include PID and username context.

Common messages

Examples include successful process isolation, a process waiting for a game session, process termination, Anti-AFK actions and custom-script start/failure messages.

Current persistence limitation

In this build the Advanced Logs and Save Logs settings are visible in Settings but no runtime code currently writes the Dashboard log stream to disk. Treat the panel as an in-memory live log for now.

CURRENT LIMIT

How Detection Moves Through a Launch

This explains the states you may briefly see when opening several clients.

1. New PID appears

CoreProcess notices a RobloxPlayerBeta.exe PID it has not seen before and registers it as a new instance.

2. Singleton handle closes

handle64.exe searches for ROBLOX_singletonEvent and closes it. If enabled, the optional mutant mutex is handled as well.

3. Roblox log is identified

MultiBlox finds the log belonging to that process. If user information is already present, it immediately resolves the account. Otherwise it registers the process as pending and shows Idle.

4. Metadata resolves

Roblox user and thumbnail APIs provide username/avatar, while place/universe information is used to resolve and cache the game.

5. Dashboard becomes Online

The process is registered to the account, launch scripts can run, Saved Account usage is updated, and the final online row is shown.

Settings

Every control currently shown in the MultiBlox Settings tab, including implementation status.

Core → Runtime & Protection

Core behavior settings. Badges describe whether the current code actively reads the setting at runtime.

Low CPU Mode

Reduces CoreProcess polling frequency while no Roblox processes are active, then speeds polling back up when activity appears.

ACTIVE

Mutant Mutex Closer

In addition to the normal ROBLOX_singletonEvent isolation, attempts to locate and close ROBLOX_singletonMutex for each new Roblox process.

ACTIVE

Rename Roblox Windows

After account detection, attempts to rename the Roblox window title to the detected username for easier identification.

ACTIVE

Block Overlapping Launches

Marks MultiBlox as busy while a new Roblox process is being isolated. A second process started during that protected period can be terminated and a “Please wait” toast shown.

ACTIVE

Quarantine Installers

Moves RobloxPlayerInstaller.exe out of installed Roblox version folders into a temporary MultiBlox_Quarantine folder. Turning the setting off attempts to restore quarantined installers.

ACTIVE

Auto Remove Invalid Accounts

Intended to control automatic removal of saved accounts whose credential is no longer valid. In this build the toggle is stored, but the saved/group launch paths remove missing/invalid accounts directly without reading this setting.

CONFIG ONLY

Core → Graphics & Performance

These options are managed through Roblox ClientAppSettings.json. The master toggle removes/reapplies MultiBlox-managed keys, and a watcher applies them to newly-created Roblox version folders.

Enable Performance Client Settings

Master switch for MultiBlox-managed Roblox client flags. When disabled, MultiBlox removes its managed performance keys from ClientAppSettings.json while leaving unrelated keys intact.

ACTIVE

Disable Post Effects

Writes flags intended to disable post-processing such as bloom/effects to reduce GPU work.

ACTIVE

Disable Lighting

Writes the MultiBlox lighting-disable flag to reduce lighting-related rendering work.

ACTIVE

Disable Character Shadows

Turns off the managed character-shadow flag.

ACTIVE

Gray Sky

Enables the managed gray-sky debug flag to simplify sky rendering.

ACTIVE

Disable Telemetry Counters

Writes two managed flags that disable Roblox telemetry counter paths.

ACTIVE

Prefer Direct3D11

Sets the managed graphics flags to prefer Direct3D 11 and explicitly avoid disabling D3D11.

ACTIVE

Disable Vulkan

Writes the managed Vulkan-disable graphics flag.

ACTIVE

Disable Metal

Writes the Metal-disable flag. It is mostly irrelevant on Windows but exists for configuration completeness.

ACTIVE

Disable DPI Scale

Writes the DPI-scale disable flag to Roblox ClientAppSettings.

ACTIVE

Disable Anti-Aliasing

Sets the managed MSAA sample count to 0.

ACTIVE

Keep Texture Streaming Enabled

Writes the managed texture-streaming flag so Roblox is not told to disable streaming.

ACTIVE

Reduce Texture Compositor Jobs

Sets the managed texture compositor active-jobs value to 0.

ACTIVE

Target FPS

Numeric FPS value used when Target FPS Limit is enabled. MultiBlox writes the target to ClientAppSettings and also updates Roblox GlobalBasicSettings_13.xml when possible.

ACTIVE

Target FPS Limit

Enables/disables the custom FPS cap. Disabling it removes the MultiBlox-managed scheduler FPS key; the numeric Target FPS row is disabled in the UI while the toggle is off.

ACTIVE

Core → Logging

These controls are present in the current Settings UI, but the log persistence backend is not yet connected.

Advanced Logs

Intended to enable more detailed troubleshooting output. The current code stores the value but does not read it when generating logs.

CONFIG ONLY

Save Logs

Intended to persist logs under data/logs. The current add_log implementation only appends to the Dashboard QTextEdit and does not read this setting.

CONFIG ONLY

Launch

Launch timing and custom bootstrapper behavior.

Settle Delay After Spawn

For Group Launch All, waits this many milliseconds after a new Roblox process appears before checking that MultiBlox is idle and moving to the next account.

ACTIVE

Process Spawn Timeout

Maximum time GroupLaunching waits for a Roblox process to appear after sending a launch request before marking that member as failed.

ACTIVE

Launcher status row

Displays the launcher MultiBlox currently considers active based on Use Custom Launcher and the selected executable.

DISPLAY

Use Custom Launcher

When enabled with a valid path, saved-account/group launches call the selected executable with -player and the generated Roblox URL instead of asking Windows to open the default protocol handler.

ACTIVE

Custom Launcher Path

Stores the executable path used by the custom launcher mode. MultiBlox recognizes Bloxstrap, Fishstrap, Voidstrap and Froststrap names/icons when paths match them.

ACTIVE

Auto Detect Launcher

Searches common LOCALAPPDATA locations for Bloxstrap, Fishstrap, Voidstrap and Froststrap and opens a launcher picker when compatible installations are found.

ACTIVE

Interface

Visual settings. Some are already connected; others are stored for future UI-wide adoption.

Window Transparency

Enables opacity adjustment for the main MultiBlox window and for windows that use TransparencyMixin.

ACTIVE

Window Transparency Level

0% means fully opaque and higher values make the window more transparent. The UI allows up to 90%, while the runtime clamps opacity so the window never drops below 10% visible.

ACTIVE

Animations

Intended as a global switch for UI transitions. The setting is saved but current animation widgets do not read it globally yet.

CONFIG ONLY

Shadows

Intended as a global switch for card/window shadows. The setting is saved, but current cards create their shadow effects regardless of this value.

CONFIG ONLY

Avatar Loading

Intended to control account/game thumbnail network loading. The setting is saved but current avatar/game loading functions do not consult it yet.

CONFIG ONLY

Scripts

Custom launch/close hooks. MultiBlox can start Python, batch/cmd, JavaScript or executable files.

Enable Launch Script

Runs the configured launch script after MultiBlox has identified and registered a Roblox process/account.

ACTIVE

Launch Script Path

Path to the file started on a launch event. .py uses the current Python executable, .bat/.cmd use cmd.exe, .js uses wscript.exe, and other extensions are started directly.

ACTIVE

Enable Close Script

Runs the configured close script when a tracked Roblox process terminates and MultiBlox has account information for it.

ACTIVE

Close Script Path

Path to the file started on a close event. It uses the same extension handling as launch scripts.

ACTIVE

Script Timeout

A timeout value is passed into the helper, but the current implementation launches scripts asynchronously with subprocess.Popen and does not terminate them after this duration.

CURRENT LIMIT

Environment variables

Scripts receive MULTIBLOX_EVENT, MULTIBLOX_USERNAME, MULTIBLOX_USER_ID, MULTIBLOX_PID, MULTIBLOX_PLACE_ID and MULTIBLOX_UNIVERSE_ID. MULTIBLOX_EVENT is “launch” or “close”.

ACTIVE

Automation

Anti-AFK is implemented in the current worker. Auto-Rejoin settings are present in the UI but automatic rejoin is not yet connected to CoreProcess termination handling.

Enable Anti-AFK

Starts the real Anti-AFK worker for tracked, identified Roblox processes.

ACTIVE

Interval

Minimum time between Anti-AFK passes. Each pass gathers the currently tracked process/account targets.

ACTIVE

Click Count

How many clicks are sent to each Roblox window during an Anti-AFK pass.

ACTIVE

Click Delay

Pause between Anti-AFK clicks for a target Roblox window.

ACTIVE

Restore Previous Window

Saves the foreground window before the Anti-AFK pass and attempts to restore focus after all Roblox targets are processed.

ACTIVE

Randomize Click Position

Adds a small random offset around MultiBlox’s normal client click point before sending Anti-AFK clicks.

ACTIVE

Enable Auto-Rejoin

Intended to automatically relaunch a tracked account after an unexpected Roblox close. No termination handler currently reads this setting, so only the manual Rejoin button is functional.

NOT WIRED

Rejoin Delay

Intended delay before automatic relaunch. Stored in configs.json but currently not consumed by a runtime auto-rejoin worker.

NOT WIRED

Max Attempts

Intended maximum automatic rejoin attempts. Stored but currently not consumed.

NOT WIRED

Ignore Manual Closes

Intended to prevent automatic rejoin after an intentional close. Stored but currently not consumed.

NOT WIRED

Require Known Place

Intended to restrict auto-rejoin to sessions with a known place. Stored but currently not consumed.

NOT WIRED

Loop Interval

How often the Anti-AFK worker checks settings/state while it is running. The code clamps this between 250 and 10,000 ms.

ACTIVE

Pause While Launching

Pauses Anti-AFK while MultiBlox is in its protected account-launch/isolation state.

ACTIVE

Log Automation Actions

When enabled, successful Anti-AFK interactions are written to the Dashboard log.

ACTIVE

Show Automation Toasts

Intended to show automation notifications. The value is stored but the current Anti-AFK worker does not read it.

CONFIG ONLY

Advanced

Experimental flags and data-management actions.

Enable Beta Features

Stores whether beta features should be exposed. No current UI builder branches on this value, so toggling it does not hide/show features in this build.

CONFIG ONLY

Enable Anti-AFK (Experimental)

This is the separate legacy/experimental anti_afk_enabled key shown under Advanced. It is not the working Anti-AFK switch. Use Settings → Automation → Enable Anti-AFK for the active worker.

LEGACY

Export Settings

Saves the current state.settings dictionary to a JSON file you choose.

ACTIVE

Import Settings

Loads a JSON dictionary into state.settings and writes it to data/configs/configs.json. The current page is not automatically rebuilt after import, so restarting MultiBlox is the safest way to ensure every control reflects imported values.

ACTIVE

Reset To Defaults

Replaces the current settings dictionary with the hard-coded defaults in _reset_settings_defaults and saves configs.json.

ACTIVE

Automation & Scripts

Anti-AFK, manual rejoin, custom script hooks and what is or is not automated in the current build.

Anti-AFK Workflow

The active Anti-AFK worker lives in CoreProcess and only targets Roblox processes that MultiBlox has fully identified.

Target selection

The worker uses CoreProcess’s PID-to-account table, so unidentified Idle processes are not selected until account registration completes.

Window focus

For each target PID, MultiBlox finds a visible top-level Roblox window, restores/brings it to the foreground, and calculates a click position around the center/lower portion of the client area.

Clicks

It sends the configured number of mouse clicks, optionally with small position randomization and a delay between clicks.

Focus restoration

When Restore Previous Window is enabled, MultiBlox remembers the previously focused window and attempts to return to it after the pass.

Launch coordination

Pause While Launching prevents Anti-AFK from fighting window focus while MultiBlox is starting/isolation-processing another Roblox account.

Manual Rejoin vs. Auto-Rejoin

These are separate concepts in the current code.

Manual Rejoin works

Open the Instance Information window for an online Saved account and press Rejoin. MultiBlox kills that PID and then runs the saved-account launcher again.

ACTIVE

Manual Rejoin destination

The new process uses the account’s saved Place ID/Job ID/private code from Account Config. It is not a snapshot of the currently detected server unless those config values match it.

Auto-Rejoin UI is not wired

The Automation page contains Enable Auto-Rejoin, delay, max attempts, manual-close and known-place controls, but CoreProcess does not currently trigger an automatic relaunch when a PID disappears.

CURRENT LIMIT

Launch & Close Scripts

Hooks are useful for personal automation around your own local MultiBlox setup.

Launch event

Runs after MultiBlox resolves the user/game and registers the process. This means username, user ID, PID, place ID and universe ID can be provided to the script.

Close event

Runs when CoreProcess notices a previously registered Roblox PID has ended. It uses the account/game metadata saved for that PID.

Supported launch methods

Python files are started with the Python executable running MultiBlox. Batch/CMD uses cmd.exe /c. JavaScript uses wscript.exe. Executables/other directly runnable files are started as-is.

No console window

On Windows, scripts are started with CREATE_NO_WINDOW and stdout/stderr/stdin are redirected away from the MultiBlox interface.

Script timeout caveat

The visible Script Timeout setting does not currently enforce termination because the helper uses non-blocking Popen rather than a wait/timeout call.

CURRENT LIMIT

Script Environment Variables

Read these from your own script process to know why it was started.

MULTIBLOX_EVENT

Either launch or close.

MULTIBLOX_USERNAME

Resolved Roblox username when available.

MULTIBLOX_USER_ID

Resolved numeric Roblox user ID when available.

MULTIBLOX_PID

The Roblox process ID associated with the event.

MULTIBLOX_PLACE_ID

Detected place ID for the Roblox session when available.

MULTIBLOX_UNIVERSE_ID

Detected universe ID for the Roblox session when available.

Stats & Data

What every Stats value means, how ranks work, and where MultiBlox stores its local data.

Stats Overview

The Stats page refreshes while MultiBlox is open and reads from the local stats/game/account state.

Total Play Time

Cumulative Roblox-process time. Every tracked Roblox PID contributes its own duration, so two instances running for one hour at the same time contribute about two hours of total play time.

Longest Session

Longest duration recorded for one tracked Roblox process. Active sessions are committed when they close or when MultiBlox flushes sessions during shutdown.

Average Stability

Lifetime average of stability samples taken about every 10 seconds while tracked Roblox PIDs exist. Each sample averages the current instance stability values.

Instances Launched

Lifetime count of new RobloxPlayerBeta.exe PIDs detected by CoreProcess.

Peak Concurrent

Highest number of tracked Roblox PIDs present at the same time.

Account Joins / Unique Accounts

Join count is the sum of SeenCount across detected usernames; Unique Accounts is the number of distinct account entries in the local stats list.

Game Joins / Unique Games

Derived from data/stats/games.json. Seen count increases when MultiBlox resolves a detected place/universe; unique count is the number of cached game entries.

Handle Success

Event-handle close success rate calculated from successful ROBLOX_singletonEvent closures versus successful + failed event-handle closure attempts.

Handles Closed

Total successful event handles plus optional mutant mutex handles closed.

Saved Accounts

Current number of account metadata entries in state.accounts / data/accounts/accounts.json.

Activity Summary

The right side of the Stats header summarizes the most-used local data.

Top account

Detected account entry with the highest SeenCount and its join count.

Top game

Cached game entry with the highest seen_count and its join count.

MultiBlox runtime

Minutes accumulated while the CoreProcess runtime thread is alive, displayed as a formatted duration.

App launches

How many times mark_app_started has incremented the local MultiBloxLaunches counter.

Rank System

Ranks are cosmetic and entirely local. They are based only on cumulative Total Play Time.

Rookie

0 hours.

Explorer

2 hours.

Regular

10 hours.

Operator

25 hours.

Power User

50 hours.

Veteran

100 hours.

Elite

250 hours.

Legend

500 hours; maximum rank.

Rank images

MultiBlox looks in data/assets/ranks/ for rookie.png, explorer.png, regular.png, operator.png, power_user.png, veteran.png, elite.png and legend.png. If a rank image is missing, data/assets/stats.png is used as the fallback.

CUSTOMIZE

No competitive advantage

stats.json and rank thresholds are local. Editing local values changes only what that MultiBlox installation displays.

LOCAL

Local File Map

These are the main persistent files used by the current build.

data/configs/configs.json

Application settings.

data/accounts/accounts.json

Saved account metadata: username, user ID, times used, date added and avatar source.

data/accounts/configs.json

Per-saved-account launch configuration: Place ID, Job ID and private server code.

data/configs/groups.json

Saved account groups, group member IDs and group launch configuration.

data/stats/stats.json

Current local lifetime stats schema. This is the normal stats file used going forward.

data/stats/games.json

Detected game cache, game names/icons, universe IDs, seen counts and timestamps.

data/docs/documentation.json

All text/page definitions used by this Documentation tab.

Windows keyring / Credential Manager

Saved Roblox security credentials are stored via Python keyring under service “MultiBlox”; they are not stored in the JSON files above.

SECURITY

Legacy stats.txt

The Stats patch kept backward compatibility with older encoded statistics.

Normal operation

If data/stats/stats.json exists and contains a dictionary, MultiBlox loads it and uses it for all stats saves.

PRIMARY

Legacy fallback

Only when stats.json is missing/invalid does load_stats attempt to decode data/stats/stats.txt and migrate its values. It then immediately writes the resulting current schema to stats.json.

LEGACY

After migration

Once a valid stats.json exists, stats.txt is not required for normal operation and can be retained only as a personal legacy backup.

Performance-Settings Files

Core performance settings also modify Roblox-owned configuration files.

ClientAppSettings.json

MultiBlox creates/updates ClientSettings/ClientAppSettings.json inside installed Roblox version folders. It only removes/replaces the keys listed as MultiBlox-managed and preserves other JSON keys.

New Roblox versions

A background watcher checks for new Roblox version folders about every 10 seconds and reapplies the currently desired MultiBlox client settings.

GlobalBasicSettings_13.xml

Target FPS support also attempts to update Roblox’s global basic settings XML when the FPS limit changes.

Troubleshooting

Common startup, launch, detection, account and configuration problems.

Startup Stops With an Error

Fatal startup checks are intentionally strict because MultiBlox cannot reliably isolate Roblox without them.

“MultiBlox is not running as administrator”

Close MultiBlox and start it with administrator rights. handle64.exe needs those rights to inspect Roblox handles.

FIX

“handle64.exe is missing”

Restore the handle folder from the MultiBlox distribution so handle/handle64.exe exists beside the application files.

FIX

Roblox installation / Versions folder missing

Install or repair the standard Roblox Windows Player and launch it normally at least once so LOCALAPPDATA\Roblox\Versions is populated.

FIX

RobloxPlayerBeta.exe not found

Roblox may be missing, partially updated or installed in a layout this build does not recognize. Launch/update Roblox normally, then restart MultiBlox.

Roblox logs folder missing

MultiBlox requires LOCALAPPDATA\Roblox\logs. Launch Roblox normally to recreate its local folders/logs if needed.

Roblox outdated warning

The startup check compares the current WindowsPlayer version reported by Roblox with locally-installed version folders. Update Roblox if MultiBlox warns that the local version is outdated.

Launch Problems

Most multi-account launch issues are timing, configuration or credential related.

“Please wait a moment before launching another Roblox account”

Block Overlapping Launches is enabled and another process is still in the isolation phase. Wait until the first instance is identified/online before starting the next. For groups, adjust Settle Delay only if you understand the tradeoff.

FIX

Saved account says “No launch parameters set”

Open Saved Accounts → Config for that account and save a valid Place ID.

FIX

Roblox process did not appear after group launch request

The process did not appear within Process Spawn Timeout. Check Roblox/custom launcher health, increase the timeout if startup is unusually slow, and retry.

Custom launcher does nothing

Verify Use Custom Launcher is enabled and the selected path still points to an executable. Try Auto Detect Launcher or switch back to the default Roblox protocol to isolate whether the bootstrapper is the problem.

Private server launch joins wrong target

Check that the stored numeric private server link code is correct. Private code overrides Job ID; the Config UI clears Job ID when a private code is entered.

Idle / Detection Problems

An Idle row generally means the Roblox process exists but MultiBlox has not found a user ID in its associated log yet.

Idle immediately after opening Roblox Player

This is expected if the player has not entered a game. Join a game and wait for the log to provide userid/place data.

NORMAL

Idle never resolves

Confirm Roblox is actually entering a game and that its log file is being updated. Restart Roblox once normally if the logs folder was empty at MultiBlox startup.

Username/avatar/game says unknown

Roblox API requests may have failed or session log data may be incomplete. The process can still be isolated even when optional metadata requests fail.

Window rename did not happen

Rename Roblox Windows is best-effort. MultiBlox retries window lookup, but a Roblox window may not yet exist or Windows may reject focus/title operations.

Saved Account Problems

Saved-account launches depend on a still-valid locally stored credential.

Missing credential

If keyring no longer contains the account’s credential, current saved/group launch code removes the account from Saved Accounts and shows an error. Re-add the account with a current credential you own.

CURRENT BEHAVIOR

Invalid / expired credential

If Roblox refuses the authentication-ticket request, current saved/group launch code removes that saved account. Re-add it only after you have a current credential for your own account.

Refresh Account overlay

One click on the card only asks for confirmation; click the red overlay/card again before it disappears to actually perform validation/update.

Account was deleted from groups

Deleting a Saved Account intentionally removes its user ID from every local group so group membership cannot point at missing accounts.

Rejoin & Automation

The current build has a working manual Rejoin button and a working Anti-AFK worker, but not automatic rejoin-on-close.

No Rejoin button

Rejoin is only created in Instance Information when the row is classified as a Saved account. Guest accounts do not have saved credentials/configuration to relaunch.

Rejoin launches a different game/server

Manual Rejoin uses that account’s current Saved Account Config. Update Place ID/Job ID/private code if you want Rejoin to target something different.

Auto-Rejoin settings do nothing

This is a known current-code limitation: the Settings controls are stored but no CoreProcess close handler consumes them yet.

CURRENT LIMIT

Anti-AFK does not target Idle

Anti-AFK targets the registered PID-to-account table. An Idle process is not fully registered until its user information is detected.

Stats / Documentation Files

Both systems are local and human-editable in this build.

Stats look edited or unexpected

stats.json is intentionally plain local JSON. MultiBlox trusts the local values and does not treat ranks/stats as server-authoritative.

Documentation page is empty

Confirm data/docs/documentation.json exists and contains a pages array. The installer for this Documentation patch creates that file automatically.

Documentation text can be updated

Because documentation content is data-driven, you can edit titles, subtitles, sections and entries in documentation.json without changing the renderer in main.py. Keep the JSON valid.