Skip to content
DinoD123 edited this page Jan 5, 2018 · 15 revisions

Overview

Architecture

UCR contains one or more Profiles, which contain one or more Plugins, which contain one or more GuiControls of various types:

UCR
Profile
Plugin
Standard GuiControl
IOControl

UCR Architecture

Standard GuiControls

(Outlined in Cyan in the image above)
These are normal GuiControls which are generally used to configure settings - eg an EditBox type control to specify a percentage value for sensitivity of a stick axis remapping.

IOControls

(Outlined in Cyan in the image above)
These are custom GuiControls that are used to configure inputs and outputs (eg Key bindings).

Plugins

(Outlined in Blue in the image above)
These are the meat of UCR. Each plugin performs a small task, such as remapping one key to another. Each plugin will contain one or more IOControls and/or Standard GuiControls that are used to configure it's functionality.

Profiles

(Outlined in Green in the image above)
Profiles are a way to group a collection of plugins together, such that when you change profile, the plugins in the old profile become inactive and the plugins in the new profile activate.
In the image above, Profile2 is a child of Profile1.
There are two profiles added by default in UCR - the Default profile and the Global profile, both of which cannot be deleted. The Global profile is always active, regardless of which profile is currently active.
You can add as many additional profiles as desired.
You can nest profiles - ie a profile can contain a child profile.
Child profiles can be configured to "Inherit" from their parent profile - ie all plugins in the parent profile will be active while the child profile is active.