Description:
Data manager for Unity with an Excel-like GUI and a relational database design. Runtime changes are automatically reverted, similar to Unity component values.
Features:
- Fast, in-memory database written in pure C# and fully integrated into Unity 3D (no SQL required).
- Configurable import/export from/to Excel/OpenOffice, Google Sheets(one limitation applies, see limitations section below for details), JSON, CSV, and scriptable objects
- Integration with visual scripting tools: Unity Visual Scripting (Bolt), Unity Behaviour, Playmaker, Flow Canvas, Node Canvas, Behavior Designer, UNode, Game Creator.
- Powerful code generation capabilities.
- Selective Save/Load during game session
- Supports approximately 90 field types, including relations, and nested tables. Includes support for loading Unity assets from Resources folders and Addressables system.
- Data binders with UI Toolkit support
- Graph editor for calculated and action fields and graph binders
- Connect any GameObject to a table row by adding a dedicated component or by referencing the row with C# field.
- Runtime data editor
- 2-way and 3-way merge tools for multi-user environment with Plastic SCM integration
- Live updates from Google sheets
- Modding support via the Modding addon
- Automatic data import from Excel files in the Editor and at runtime
- No runtime dependencies, DLL file size around 1Mb.
- Downloadable plug-ins and example projects
- Flexible event system
- Multithreading is partially supported. Some restrictions apply. Read more here and here
Limitations:
- BGDatabase is a client-side database that runs exclusively within Unity. It cannot be used in server environments.
- Export to Google Sheets in runtime (in builds) from multiple devices is not supported, here is why
- Database data is fully loaded into memory. Consequently, large databases can consume excessive memory. For example, a database with 10 tables, each containing 50,000 rows and 10 integer fields, can take ~27MB on disk and ~60Mb in memory. Partitioning addon can help mitigate this, but it's not a universal solution
Learning resources:
- GUI overview
- GUI tips and tricks
- How to use
- Code examples
- Basic 3D example project with text manual
- Basic 2D example project with video tutorial
- Advanced example project (Inventory system)
- API
News:
- 02/2025 BGDatabase v.1.8.16 Navigating relations in backward direction
- 08/2022 BGDatabase v.1.7.9 New navigation system
- 05/2022 BGDatabase v.1.7.5 Views and view relations
- 12/2021 BGDatabase v.1.7.1 Many tables relational fields
- 06/2020 BGDatabase v.1.5.9 What is new?
- 03/2020 BGDatabase v.1.5.6 What is new?