| name | bl-core-config-vars |
| description | Use for BovineLabs Core ConfigVars, manager initialization, runtime values, editor bindings, or config-variable debugging. |
Core Config Vars
Resolve Core source from Packages/com.bovinelabs.core or its exact Library/PackageCache entry. Use the current source and editor code as the authority.
Read Order
BovineLabs.Core/ConfigVars/ConfigVarAttribute.cs
BovineLabs.Core/ConfigVars/ConfigurableAttribute.cs
BovineLabs.Core/ConfigVars/ConfigVarManager.cs
BovineLabs.Core.Editor/ConfigVars/ConfigVarsWindow.cs
BovineLabs.Core.Editor/ConfigVars/ConfigVarPanel.cs
- Example usages:
BovineLabs.Core/Debug/BLLogger.cs
BovineLabs.Core.Editor/ChangeFilterTracking/ChangeFilterTrackingSystem.cs
BovineLabs.Core.Extensions/Utility/BovineLabsBootstrap.cs
Build Pattern
- Add
[Configurable] to the owning type (class/struct).
- Add static
SharedStatic<T> field(s) with [ConfigVar(...)].
- Keep names lowercase and dot-separated (validated by
ConfigVarManager).
- Use logical prefix groups like
debug.*, app.*, network.*; the first segment becomes the panel group in ConfigVars window.
- Set
isReadOnly: true for values that should be immutable in play mode.
- Set
isHidden: true when values should stay internal and not appear in the window.
Supported Value Types
ConfigVarManager and ConfigVarPanel currently support:
SharedStatic<int>
SharedStatic<float>
SharedStatic<bool>
SharedStatic<Color>
SharedStatic<Vector4>
SharedStatic<Rect>
SharedStatic<FixedString32Bytes>
SharedStatic<FixedString64Bytes>
SharedStatic<FixedString128Bytes>
SharedStatic<FixedString512Bytes>
SharedStatic<FixedString4096Bytes>
If you add a new type, update both:
- container mapping in
ConfigVarManager.GetContainer(...)
- UI binding creation in
ConfigVarPanel.CreateVisualElement(...)
Value Source Precedence
- Command line
-<configVarName> argument (highest priority).
- EditorPrefs persisted value (editor).
- Attribute default value (fallback).
Failure Checklist
- Confirm owning type has
[Configurable].
- Confirm field is static
SharedStatic<T> with supported T.
- Confirm config var name passes validation (no uppercase, no invalid chars).
- Confirm duplicate names are not being registered.
- Confirm hidden vars are not expected in the UI (
isHidden: true).
- Confirm read-only vars are not expected to be editable during play mode.