Skip to content

Bootstrap Settings

Mika Notarnicola edited this page Jul 19, 2026 · 3 revisions

Bootstrap Settings

Editor > Project Settings > Bootstrap

This is where the pieces referenced elsewhere in the wiki, the default environments, the Edit Mode Services list, and Bootstrap's editor flow, actually get configured.

Project vs. User

The settings window has two tabs: Project and User.

  • Project is the shared baseline. It's saved to ProjectSettings/BootstrapProjectSettings.asset, so it's committed to source control and applies to everyone on the project by default.
  • User is per-machine. It's saved to UserSettings/BootstrapUserSettings.asset, which falls under Unity's default .gitignore rule for the UserSettings/ folder, so it never gets committed and never affects anyone else.

Every setting has its own checkbox next to it while on the User tab. Checking it lets you type in a value that overrides the Project setting, but only for that one setting, on your machine, everything else keeps using the Project value. Unchecking it greys the field back out and reverts to the Project value. On the Project tab there's no checkbox at all, since a Project value is always in effect unless a User override replaces it.

Changes on either tab save immediately, there's no separate save step.

Edit Mode

The top of the settings window also has an Edit Mode header with a Re-Bootstrap Edit Mode button, which tears down and reinitializes the currently running edit-mode app instance. This is useful after changing the Edit Mode Services list or any of its services, since edit mode doesn't otherwise restart on its own the way pressing Play does.

The User tab also tracks which environment is currently selected for edit-mode bootstrapping. This value doesn't have an override checkbox since it's inherently a per-user, edit-mode-only setting; it has no Project-scope counterpart.

Reading Settings from Code

Most of the time you don't need to think about scope at all, BootstrapEditorSettingsUtility.GetValue resolves it for you: it checks whether a User override is enabled for that setting, and falls back to the Project value if not.

BootstrapLogLevel minLogLevel = BootstrapEditorSettingsUtility.GetValue(asset => asset.MinLogLevel);

If you need a specific scope's value regardless of overrides, for example to compare a Project default against whatever the current user has overridden it to, GetWithScope returns the raw settings asset for that scope directly:

IBootstrapEditorSettingsAsset projectSettings = BootstrapEditorSettingsUtility.GetWithScope(SettingsScope.Project);
BootstrapLogLevel projectLogLevel = projectSettings.MinLogLevel.Value;

Clone this wiki locally