docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Project settings commands

    Read and change a representative slice of Unity's project-wide settings (Audio, Graphics, Input, Physics, Player, Quality, Runtime Pipeline, Tags & Layers, Time). Each area is a settings.<area> group (settings.audio, settings.graphics, …) with a get and a set command. get reads the current values into a ProjectSettingsResponse, under the same kebab-case keys set accepts in its settings object, so a value read by get can be edited and sent back; set mutates them through the shared confirm/dry-run convention, so confirm=true is required to apply and dry-run=true previews the change without applying it. Every command in these groups is MainThreadRequired = true. On a set, omitted fields are left unchanged, and the group is re-read after the write so the response reflects the resulting state. Settings writes are not undoable via Ctrl+Z.

    A ProjectSettingsResponse is one object:

    {
      "group": "time",
      "applied": true,
      "dryRun": false,
      "requiresDomainReload": false,
      "requiresReimport": false,
      "values": { "fixed-delta-time": 0.02, "maximum-delta-time": 0.3333333, "time-scale": 2.0 }
    }
    

    applied is true only when a set changed the project; dryRun marks a preview. requiresDomainReload and requiresReimport describe the change, so a dry run reports them too. What happened (the change applied, the dry-run preview, "No changes specified") is logged at the info level on stderr, not part of the result.

    A set that can't go ahead writes no result and exits non-zero with the reason on stderr:

    Exit When
    InvalidUsage No settings object; confirm missing (and not a dry run); a value out of range or of the wrong kind; a removed field.
    NotFound The named input axis, or the render pipeline asset reference, doesn't exist.
    Failed The change threw while being applied; the group couldn't be read; the change is refused in Play Mode (settings.multiplayer_roles, settings.runtime_pipeline).

    A get exits Failed when the group can't be read.

    settings.audio get

    Read project Audio settings (volume, rolloff scale, doppler factor).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.audio set

    Change project Audio settings. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    volume no – Global audio volume (0..1).
    rolloff-scale no – Global rolloff scale.
    doppler-factor no – Global doppler factor.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run.

    settings.graphics get

    Read GraphicsSettings (default render pipeline).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.graphics set

    Set the default render pipeline asset. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    render-pipeline-asset no – Reference (path / guid / globalId) to a RenderPipelineAsset to set as the default. Pass an empty reference ({}) to select the built-in pipeline; omit to leave unchanged.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run.

    settings.input get

    Read the legacy Input Manager axes (names and count).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.input set

    Tune a legacy Input Manager axis (sensitivity/gravity/dead) by name. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Axis change. 'axis' selects the axis by name; omitted numeric fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    axis yes – Name of the axis to modify (e.g. 'Horizontal').
    sensitivity no – New sensitivity.
    gravity no – New gravity.
    dead no – New dead-zone size.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run.

    settings.multiplayer_roles get

    Read Multiplayer Roles settings (enabled, safety-checks, strip-audio, strip-rendering, strip-ui). Unity 6000.6+ only.

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. The Editor's role and per-object roles are in the Multiplayer Roles commands.

    settings.multiplayer_roles set

    Change Multiplayer Roles settings. Requires confirm=true; use dry-run to preview. Unity 6000.6+ only.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    enabled no – Enable Multiplayer Roles for the project. Nothing is stripped for any role until they are enabled.
    safety-checks no – Warn on entering Play Mode or building about stripped objects that other objects still reference.
    strip-audio no – Strip common audio components from the server.
    strip-rendering no – Strip common rendering components from the server.
    strip-ui no – Strip common UI components from the server.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run. Refused while in Play Mode, where roles have already been applied.

    settings.physics get

    Read Physics settings (gravity, solver iterations, bounce threshold).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.physics set

    Change Physics settings. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    gravity-x no – Gravity X component.
    gravity-y no – Gravity Y component (e.g. -9.81).
    gravity-z no – Gravity Z component.
    default-solver-iterations no – Default solver iteration count.
    bounce-threshold no – Bounce threshold velocity.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run.

    settings.player get

    Read PlayerSettings (company/product/version, scripting backend, API level).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.player set

    Change PlayerSettings. Requires confirm=true; use dry-run to preview. Scripting backend / API level changes trigger a domain reload.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    company-name no – Company name.
    product-name no – Product name.
    bundle-version no – Bundle/application version string.
    scripting-backend no – Scripting backend (e.g. Mono2x, IL2CPP). Triggers a domain reload.
    api-compatibility-level no – API compatibility level (e.g. NET_Standard_2_0, NET_Unity_4_8). Triggers a domain reload.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run. Changing scripting-backend or api-compatibility-level triggers a domain reload (requiresDomainReload); scripting-backend / API-level changes are read and written against the active build target.

    settings.quality get

    Read QualitySettings (current level, level names, vSync, anti-aliasing).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.quality set

    Change QualitySettings. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    level no – Quality level index (see level-names from settings.quality get).
    vsync-count no – VSync count (0 = off, 1, 2).
    anti-aliasing no – MSAA sample count (0, 2, 4, 8).

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run.

    settings.runtime_pipeline get

    Read Pipeline Runtime settings (enable-in-development-builds, enable-in-release-builds, port, enable-audit-logging, auto-start, max-work-items-per-frame). Reports the settings in effect, falling back to built-in defaults when none have been authored; never creates the settings file. The two toggles are reported for the active build target.

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.runtime_pipeline set

    Change Pipeline Runtime settings. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    enable-in-development-builds no – Compile the Pipeline into development builds. Writes a scripting define symbol for every installed build target, so it triggers a recompile.
    enable-in-release-builds no – Compile the Pipeline into release builds. SECURITY WARNING: a release build carrying the Pipeline exposes code execution over a local HTTP server.
    port no – HTTP port for the Pipeline server. 0 = auto-assign from range 7900-7999.
    enable-audit-logging no – Log every remote request for security auditing.
    auto-start no – Start the server automatically when the Player boots (or Play Mode is entered).
    max-work-items-per-frame no – Maximum work items the dispatcher processes per frame.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run. Changing enable-in-development-builds or enable-in-release-builds triggers a domain reload (requiresDomainReload). Refused while in Play Mode — the running driver already loaded its own settings, so a change would silently not apply until the next Play session or build. port (0-65535) and max-work-items-per-frame (1-50) are rejected outright (exit InvalidUsage) if outside these bounds — the same ones the Project Settings page enforces — rather than being clamped or silently applied.

    settings.tags_layers get

    Read the project's tags and (named) layers.

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.tags_layers set

    Add/remove tags and assign user layer names (index 8-31). Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Tag/layer changes to make (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    add-tags no – Tag names to add.
    remove-tags no – Tag names to remove.
    set-layers no – User layer assignments (index 8-31); array of layer-assignment objects (fields below).

    setLayers[] (layer-assignment) fields:

    Field Required Default Description
    index yes – Layer index (8-31 for user layers).
    name yes – Layer name (empty string clears the slot).

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run. User layers are indices 8-31 (0-7 are reserved).

    settings.time get

    Read Time settings (fixed-delta-time, maximum-delta-time, time-scale).

    No parameters.

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true.

    settings.time set

    Change Time settings. Requires confirm=true; use dry-run to preview.

    Parameter Required Default Description
    settings no – Fields to change; omitted fields are left unchanged (fields below).
    confirm no false Apply the change. Without it the call is refused.
    dry-run no false Preview the change without applying it.

    settings fields:

    Field Required Default Description
    fixed-delta-time no – Fixed timestep in seconds (e.g. 0.02).
    maximum-delta-time no – Maximum allowed timestep in seconds.
    time-scale no – Time scale (1 = real-time).

    Returns: ProjectSettingsResponse Notes: MainThreadRequired = true. confirm=true required to apply; supports dry-run.

    See Creating commands and Connectivity.

    In This Article
    Back to top
    Copyright © 2026 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)