Skip to content

Bootstrap Settings

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

Bootstrap Settings

Bootstrap's settings, the default environments, the Edit Mode Services list, and Bootstrap's editor flow, are split into two scopes, Project and User, edited from the Bootstrap Settings Window. This page covers what the two scopes mean and how to read settings from code; see Editor Windows for the window itself.

Project vs. 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.

Any User-scoped setting can individually override its Project-scoped counterpart. A setting with no override in effect falls back to the Project value.

The User scope also tracks which environment is currently selected. This is the highest-precedence override when resolving which environment to boot when entering play mode (see Choosing an Environment). This value has no Project-scope counterpart, since it's inherently a per-user, edit-mode-only setting.

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