BovineLabs Core
May 9, 2026 ยท View on GitHub
BovineLabs Core provides extensions, containers, and tools for building games with Unity DOTS (Data-Oriented Technology Stack).
For support and discussions, join Discord.
If you want to support my work or get access to a few private libraries, Buy Me a Coffee.
Installation
The latest version of the library is available on GitLab. The project is actively worked on daily in various branches.
Once installed, the library provides utilities, custom containers, and high-performance extensions without disrupting your existing workflow.
Core
| Feature | Description |
|---|---|
| Change Filter Tracking | Allows you to track how frequently a component triggers a change filter and warns you if it is happening too frequently |
| Collections | Specialized collection types with performance optimizations, thread safety, and ECS-focused functionality |
| Debug | Comprehensive debugging and assertion utilities with Burst compatibility and ECS-specific debugging support |
| DynamicHashMap | Adds HashMap support to entities |
| EntityCommands | Provides a shared interface between EntityManager, EntityCommandBuffer, EntityCommandBuffer.ParallelWriter and IBaker |
| Facets | Source-generated IFacet helpers that provide aspect-like access via lookups and chunk iteration |
| Extensions | Extension methods that enhance Unity's DOTS APIs with performance optimizations and convenience methods |
| Functions | Extensible way to add support for extending jobs to other developers or modders |
| Inspectors | UI Toolkit base classes for custom editors and property drawers with prefab-aware variants and fallback field rendering |
| Iterators | High-performance iterator utilities for ECS applications with Burst-compatible enumeration capabilities |
| Jobs | Custom jobs (IJobForThread, IJobParallelForDeferBatch, IJobHashMapDefer, IJobParallelHashMapDefer) |
| K | K is a type-safe, Burst-compatible alternative to Enums and LayerMasks that allows you to define key-value pairs in settings files |
| Settings | Settings framework for managing and creating settings |
| Singleton Buffers | Merge dynamic buffers from many sources into a single runtime singleton buffer entity |
| Singleton Collection | Easily set up a Many-To-One container singleton with minimal boilerplate and syncless job support |
| Spatial | Fast spatial hashmap generation |
| States | Provides states on entities by mapping a bit field to components automatically |
| Utility | Description |
|---|---|
| BurstTrampoline | Invoke managed delegates from Burst code with reusable trampolines and optional out parameters |
| Global Random | A static random usable from everywhere, even parallel burst jobs |
| PooledNativeList | High-performance, thread-safe pooling system for Unity's NativeList collections |
| Utility | Comprehensive collection of utility classes and helpers for high-performance Unity DOTS development |
Extensions
The Core library maintains the status quo in your project by default. However, there are powerful features that can be manually enabled, which may require changes to your workflow. To enable these features, navigate to the BovineLabs -> Manager menu.
| Feature | Description |
|---|---|
| Analyzers | Automatic Roslyn analyzer integration infrastructure for seamless code analysis and style enforcement |
| EntityBlob | Memory-efficient storage of multiple BlobAssetReferences in a single blob using perfect hash maps |
| Life Cycle | Framework for managing entity initialization and destruction |
| Object Management | Automatic ID, category and group management |
| Pause | World-level pause system with fine-grained control over system updates during pause states |
| PhysicsStates | Stateful collision and trigger event tracking with Enter/Stay/Exit states for Unity Physics |
| PhysicsUpdate | Ensures Unity Physics spatial data remains current at high frame rates above fixed timestep |
| SubScenes | Enhanced SubScene loading with world targeting and editor tools |