Flux is a modular gameplay framework for Unity.
It started as a collection of systems that I found myself rebuilding in almost every project. Instead of copying the same code over and over, the goal became to create a clean foundation that could be reused, extended, and adapted to different games.
Flux doesn't try to replace Unity or force a specific architecture. It provides a small Core and a set of independent gameplay modules that can be used together or separately.
- Modular architecture
- Service Registry
- Typed Event Bus
- Save System
- ScriptableObject-based configuration
- Independent gameplay modules
- Examples and documentation
- Editor debugging tools
- EditMode tests
- Bootstrapper
- Module System
- Service Registry
- Event Bus
- Save System
- Configuration
- Movement
- Interaction
- Inventory
- Attributes
- Progression
- Quests
- Dialogue
- Object Pool
- Audio
- AI Foundation
- Crafting
- Add a
FluxBootstrapperto your scene. - Create a
FluxSettingsasset. - Add the modules you want to use.
- Assign the settings asset to the bootstrapper.
- Press Play.
using Flux;
FluxContext context = FluxBootstrapper.Current;
IInventoryService inventory =
context.Services.Resolve<IInventoryService>();
context.Events.Publish(new MyGameplayEvent());FluxFramework/
├── Runtime/
├── Editor/
├── Examples/
├── Tests/
├── Documentation/
├── package.json
├── README.md
└── CHANGELOG.md
Additional documentation can be found in the Documentation folder, including architecture, module development, API overview and usage examples.
Flux is actively evolving. The focus is on keeping the framework lightweight, modular and easy to extend while gradually expanding the available gameplay systems.