singinwhale - Tentacle - Dependency Injection Framework

Dependency Injection (DI) framework for Unreal Engine roughly inspired by Zenject


Also available on GitHub

The Tentacle framework is used to intentionally make certain objects or data available to other systems without the systems knowing about each other directly (loose coupling). An example would be a Game Time Manager that exists on some object (likely as a component on the GameState) and some other component of the game wants to use that component. Instead of trying to get the GameState from the World or GameMode (which might not exist on clients in multiplayer) you can just fetch it through the DI-Context hierarchy that you can construct with this plugin.

It supports both Blueprint and C++ usage and is designed to be non-intrusive. You can make any type work with it and also continue using it along systems that are not using it. It is very easy to write adapter code that bridges this gap.

See the full readme for other code examples and usage.

This is a source only plugin and requires a working compiler to use. It has been verified to compile on all current consoles.