This document describes all available application argument flags (AppArgsFlags) that can be passed to the Decentraland Unity Explorer. These flags control various features, behaviors, and configurations during application startup.
Flags can be passed via command line arguments using the format:
--flag-name
--flag-name valueOr embedded in deep links:
decentraland://?flag-name=value&other-flag=true
For embedded links you will need to place value after = sign, instead of space.
Description: Enables debug mode. When set, the application runs in debug mode. This flag is automatically added when running in Unity Editor. When enabled, many debug features and development tools become available.
Usage:
--debugDescription: Indicates that the application is running from the DCL Editor (Creator Hub). Used for analytics tracking to distinguish between Unity Editor, DCL Editor, debug builds, and release builds.
Usage:
--hubDescription: Skips the version check that normally runs on startup. Useful for development and testing scenarios where version validation should be bypassed.
Usage:
--skip-version-checkType: String Description: Simulates a specific version number for testing purposes. Overrides the actual version detection.
Usage:
--simulateVersion 1.0.0Description: Forces the minimum system specifications screen to be displayed, regardless of the actual system capabilities. Useful for testing the minimum specs screen UI.
Usage:
--forceMinimumSpecsScreenDescription: Skips the minimum system specifications screen on startup, even when the host hardware does not meet the minimum requirements. Also bypasses the automatic low-quality preset that is normally enforced on sub-spec hardware, so the user-selected preset (or --graphics) controls quality. Intended for visual tests and CI machines that may register as low-spec but should still render at the configured quality. The hardware check still runs and is recorded in analytics/Sentry. Ignored when --forceMinimumSpecsScreen is also passed.
Usage:
--skip-minimum-specs-screenDescription: Enables the scene console (the debug menu's log view of the scene's own output) for debugging and development. Works for any realm — local scene development enables it implicitly, and the flag itself is accepted from deep links against production realms and worlds too, so creators and QA can inspect a deployed scene.
Usage:
--scene-consoleType: String
Description: Sets the Decentraland environment (e.g., org, zone, today). Determines which API endpoints and services the application connects to.
Usage:
--dclenv orgType: String (URL) Description: Specifies a custom realm server URL to connect to. Used for connecting to local or custom Decentraland servers. The URL should include the protocol (http:// or https://).
Usage:
--realm=http://127.0.0.1:8000
--realm=https://peer-ap1.decentraland.zone/Type: Bool Description: Enables local scene development mode.
Usage:
--local-scene trueType: Bool (presence flag)
Description: Enables the use of remote asset bundles during local scene development (LSD). By default, local scene development relies on locally converted assets; with this flag the explorer can instead fetch already-deployed asset bundles from a remote content server. Only takes effect when local scene development is active (--local-scene true together with a valid --realm URL). Pair it with either --lsd-remote-ab-world or --lsd-remote-ab-server to choose where the remote asset bundles are sourced from.
Usage:
--lsd-use-remote-abType: String (world name)
Description: When remote asset bundles are enabled (--lsd-use-remote-ab), sources them from a specific deployed world. The value is the world name to pull the asset bundles from. Setting this flag implicitly selects the World content server, so it takes precedence over --lsd-remote-ab-server. Only effective during local scene development.
Usage:
--lsd-remote-ab-world my-world.dcl.ethType: String (Genesis, Goerli, case-insensitive)
Description: When remote asset bundles are enabled (--lsd-use-remote-ab), selects which deployed environment the asset bundles are sourced from — Genesis (Genesis City) or Goerli (Goerli Plaza). World is also accepted, but to target a world you should use --lsd-remote-ab-world instead, since it sets the world name as well. Invalid values are ignored. Only effective during local scene development.
Usage:
--lsd-remote-ab-server Genesis
--lsd-remote-ab-server GoerliType: String (coordinates)
Description: Sets the initial spawn position in the world. Format is typically x,y coordinates.
Usage:
--position 100,100Description: Skips the authentication screen on startup. When set, the user bypasses the login/auth flow.
Usage:
--skip-auth-screenDescription: Forces the dapp deep-link login to complete through the deep-link bridge only, by appending &bridgeOnly to the auth website URL. Without it, confirming the login on the website can make the launcher spawn a second Explorer instance. See issue #9524.
Only affects player builds — the Editor always behaves as if the flag were set.
Usage:
--login-bridge-onlyType: String
Description: Forces specific emotes to be available for preview. Accepts a comma-separated list of emote URNs (i.e. urn:decentraland:matic:collections-v2:0xa80aea22d0fe9d34ca72ce304ef427bbefee1f11:2 ).
The elements previewed are not visible for others, only for the tester.
Only works for PUBLISHED elements (thus having a URN that identifies them).
Usage:
--self-force-emotes emote1,emote2,emote3Type: String
Description: Enables preview mode for specific emotes. Accepts a comma-separated list of emote URNs (i.e. urn:decentraland:matic:collections-v2:0xa80aea22d0fe9d34ca72ce304ef427bbefee1f11:2 ) that will be available for preview.
The elements previewed are not visible for others, only for the tester.
Only works for PUBLISHED elements (thus having a URN that identifies them).
Usage:
--self-preview-emotes emote1,emote2Type: String
Description: Enables preview mode for specific wearables. Accepts a comma-separated list of wearable URNs (i.e. urn:decentraland:matic:collections-v2:0xc11b9d892e12cfaca551551345266d60e9abff6e:3 )
The elements previewed are not visible for others, only for the tester.
Only works for PUBLISHED elements (thus having a URN that identifies them).
Usage:
--self-preview-wearables wearable1,wearable2Type: String
Description: Enables preview mode for builder collections. Accepts a comma-separated list of collection IDs (e.g. 3062136a-065d-4d94-b28c-f57d6ef04860).
The elements previewed are not visible for others, only for the tester.
Only works for UNRELEASED elements, the tester has to either be the owner of the collection or be whitelisted to test it (e.g. Curators).
Make sure to use the COLLECTION ID (from the collection URL) and not the ITEM ID (from each item URL).
More detailed instructions on how to test can be found in the description of relevant PRs that have worked on the usage of this flag, for example #5309
Usage:
--self-preview-builder-collections collection1,collection2Description: Automatically opens the Backpack panel once the user lands in the world (after authentication and the loading screen). Presence-only: any value triggers it. Also works when a deep link reaches an already-running client — the Backpack opens immediately (or once loading completes).
Usage:
--force-open-backpackdecentraland://?force-open-backpack=true
Description: Disables the disk cache system. All cached assets will be loaded from network or memory instead. Useful for testing cache-related issues or ensuring fresh data loads.
Usage:
--disable-disk-cacheDescription: Disables automatic cleanup of the disk cache. Prevents the cache from being automatically cleared or managed.
Usage:
--disable-disk-cache-cleanupType: String (integer) Description: Simulates a specific amount of system memory (in MB). Overrides the actual system memory detection. Useful for testing memory-related features and constraints.
Usage:
--simulateMemory 4096Type: String (Low, Medium, or High, case-insensitive)
Description: Forces a graphics quality preset on startup, overriding whatever preset is saved in PlayerPrefs. The override is ephemeral — PlayerPrefs are not modified, so launching again without the flag restores the user's saved preset (including any Custom overrides). Custom is not accepted as a value.
Usage:
--graphics high
--graphics medium
--graphics lowType: String (integer, seconds) Description: Sets the duration (in seconds) before user identity expires. Overrides the default identity expiration time.
Usage:
--identity-expiration-duration 3600Description: Starts the embedded MCP (Model Context Protocol) server on http://127.0.0.1:8123/unity-explorer-mcp so coding agents can observe and drive the client (screenshots, player/scene state, scene logs, teleport/movement, chat commands). The listener binds to localhost only and rejects non-localhost browser Origins. See MCP Automation.
Usage:
--mcpType: String (integer port, 1024–65535)
Description: Starts the embedded MCP server on a specific port (implies mcp). Use distinct ports when running multiple instances via --multi-instance.
Usage:
--mcp-port 8124Type: Boolean Description: Launches the Chrome DevTools Protocol (CDP) monitor on application start. Enables remote debugging capabilities.
Usage:
--launch-cdp-monitor-on-startType: String (file path) Description: Enables logging to a matrix file. The value should be the path to the log matrix file.
Usage:
--use-log-matrix /path/to/log-matrix.txtType: Boolean Description: Forces the application to run in windowed mode instead of fullscreen.
Usage:
--windowed-modeType: String (WxH)
Description: Overrides the resolution on startup, taking precedence over both PlayerPrefs and the default resolution. Applies in both fullscreen and windowed modes. Format is width × height separated by x.
Usage:
--resolution 1920x1080
--resolution 2560x1440Type: Bool (true / false)
Description: Toggles the Pulse transport (an ENet-based UDP channel that runs alongside LiveKit), overriding the pulse remote feature flag. When specified, the value wins over the remote flag: --pulse true force-enables Pulse, --pulse false force-disables it (LiveKit-only, as if Pulse were never present). When not specified, Pulse is driven by the remote feature flag. Always ignored during local scene development.
Usage:
--pulse true
--pulse falseType: String (URL) Description: Overrides the default feature flags service URL. Used to connect to a custom feature flags server.
Usage:
--feature-flags-url https://custom-feature-flags.example.comType: String Description: Overrides the hostname used for feature flags requests. Used for custom feature flag configurations.
Usage:
--feature-flags-hostname my-custom-hostnameType: String Description: Sets a custom session ID for analytics tracking. Overrides the automatically generated session ID.
Usage:
--session_id=abc123xyzType: String Description: Sets the launcher anonymous ID for analytics tracking. Used to link analytics data between the launcher and the explorer.
Usage:
--launcher_anonymous_id user123Visual regression tests need a deterministic scene: a fixed window, no time-of-day drift, no procedural terrain, and no overlapping HUD UI on top of the rendered output. The flags below are the canonical set passed to the Explorer when capturing or comparing reference frames.
| Flag | Effect in visual tests |
|---|---|
--landscape-terrain-enabled false |
Disables the procedural landscape terrain so the empty/grid background is identical across runs. Requires --debug (the flag is gated to debug builds). |
--skybox-time-enabled false |
Freezes the skybox time-of-day cycle so lighting, sun position, and shadows stay constant frame-to-frame. |
--resolution 1024x768 |
Forces a fixed render resolution. Capturing at the same resolution that the reference frames were taken at avoids upscaler/MSAA differences. Only honored in fullscreen mode. |
--disable-hud |
Hides the HUD (chat, minimap, notifications, etc.) so transient UI doesn't pollute the captured frame. SDK UI from scenes remains visible. |
--skip-minimum-specs-screen |
Skips the "performance adjusted to your device" screen on sub-spec hardware and prevents the automatic low-quality preset from overriding --graphics. |
Example launch:
--landscape-terrain-enabled false --skybox-time-enabled false --resolution 1024x768 --disable-hud --skip-minimum-specs-screen- Most boolean flags are presence flags (they don't require a value). Simply including
--flag-nameenables the feature. - Some flags accept string values that can be boolean-like (
"true"or"false"). - Flags can be combined in a single command line invocation.
- Deep links can embed multiple flags:
decentraland://?realm=http://127.0.0.1:8000&local-scene=true&skip-auth-screen=true - The
debugflag is automatically added when running in Unity Editor. - Some flags are only effective when combined with the
debugflag or when running in Unity Editor.
--local-scene --skip-auth-screen true --position 100,100 --debug--realm=http://127.0.0.1:8000 --debug --scene-console --windowed-mode--simulateMemory 2048 --disable-disk-cache --debug--self-preview-wearables wearable1,wearable2,wearable3 --debug