| name | bl-core-settings |
| description | Use for BovineLabs Core settings assets, SettingsUtility retrieval, world-targeted settings, baking, or missing and duplicate settings issues. |
Core Settings
Resolve Core source from Packages/com.bovinelabs.core or its exact Library/PackageCache entry. Match the access path to how settings are authored and baked.
Read Order
Documentation~/Settings.md
BovineLabs.Core.Editor/Settings/EditorSettingsUtility.cs
BovineLabs.Core.Authoring/Settings/SettingsAuthoring.cs
BovineLabs.Core.Authoring/Settings/SettingsBase.cs
BovineLabs.Core/Settings/SettingsSingleton.cs
BovineLabs.Core.Editor/CoreBuildSetup.cs
Type Selection
- Use
ScriptableObject, ISettings for config that does not bake ECS data.
- Use
SettingsBase when data must be baked into ECS worlds.
- Use
SettingsSingleton<T> for global settings that must be available via T.I before gameplay logic.
Authoring Rules
- Add
[SettingsGroup("...")] to every settings type.
- Add
[SettingsWorld(...)] only for SettingsBase that should route to specific world authorings.
- Add
[SettingSubDirectory("...")] when settings assets should live in a subfolder under the settings root.
- Keep one asset instance per settings type.
- Keep
SettingsBase.Bake(...) deterministic and focused on baking data/components.
Access Rules
- Use
EditorSettingsUtility.GetSettings<T>() for editor tooling/setup.
- Use
AuthoringSettingsUtility.GetSettings<T>() for authoring-time retrieval.
- Use ECS singleton access (
SystemAPI.GetSingleton<TData>()) for baked runtime data.
- Use
MySettingsSingleton.I for SettingsSingleton<T> access.
Wiring Behavior
EditorSettingsUtility creates missing settings assets in the configured settings directory.
EditorSettingsUtility auto-adds SettingsBase assets to SettingsAuthoring.
SettingsWorldAttribute values map to EditorSettings world keys (case-insensitive).
- If no world matches, settings fall back to default settings authoring.
CoreBuildSetup includes SettingsSingleton assets in preloaded assets during build and reverts them after build.
Failure Checklist
- Verify correct base type (
ISettings, SettingsBase, or SettingsSingleton<T>).
- Verify attributes and world keys are valid.
- Verify only one asset exists for the settings type.
- Verify
BovineLabs -> Settings -> Core -> Editor Settings has valid authoring assignments.
- Verify target subscenes include
SettingsAuthoring with expected settings assets.
- Verify retrieval path matches how data is authored and baked.