Hi, we're Okaniku, a small team of developers brought together by our passion for games! We're proud to present the Modulo Visual Scripting Framework for Unity, which we are currently using in our own projects. Modulo provides a method of visual programming in Unity by building state machines using logic nodes. Rather than being 'yet another visual scripting tool' aimed at making games without code, Modulo is specifically designed to help programmers and designers collaborate. It provides a simple but powerful framework for programmers to script logical building blocks that designers can then configure, combine, and experiment with. It is an effective tool for constructing and visualizing the flow of complex logic trees, such as dialog trees or behavioural AI. <<<Try the evaluation version of Modulo for FREE>>> Asset Store Official Website Online Documentation Contact Us Current version: 1.3 Unity version: 2017.1.1 or higher Features: System: A fully Unity-integrated editor is provided for editing visual scripts (called modules). Each module contains a number of state machines which act similarly to methods/functions in programming. Designers can define variables to pass around data within a module. These can be references to scene objects (via the built-in Persistent Object System). A sophisticated execution model supports multiple coroutines of execution, and keeps track of state machine invocations on a context stack. Transition conditions are state-machine nodes too, and these can be chained in AND/OR configurations to construct complex decision trees. Debugging features: Set breakpoints, log messages to the console, automatically follow execution of a module, modify and watch variables during play mode. Common usability features: zooming, panning, resizing of UI components, node grouping, copy/paste, tabs, annotations, undo/redo. Nodes and groups can be color-coded. Scripting: Creating new node types is simple and intuitive. A collection of base node classes are provided to hide the complexity of common use cases. The system can be easily extended to support additional types of Modulo variables, including ones that act as references to objects in scenes. Object allocation is kept to a minimum to avoid GC spikes. Custom editor scripts are defined for nodes in the usual Unity way, meaning that how a node is configured is entirely up to the programmer. A mechanism is provided for saving and loading the state of all module runners in a scene. A robust mechanism is provided for checking modules for errors. Get/set global variables, and run/pause module runners via scripting. Module runners can be instantiated during runtime. Please check out the store page for screenshots. All questions and suggestions are welcome!