InkWidgets
Changing and creating the User Interface
Summary
Created: ?? 2024 by Zhincore Last documented update: Mar 1 2025 by Zhincore
Thanks to Codeware we can fully access the game's UI programatically, even create our own. If you're not familiar with InkWidgets, check out the yellow wiki first: Interface definitions: .inkwidget files
Also check out the Codeware wiki for inkwidget scripting examples.
Basics of custom UI
Building custom UI programatically works by instantiating inkWidgets/components, setting their properties and parenting them to something. The following code is an example of flashbanging yourself by adding a rectangle to the in-game HUD. For more examples see the Codeware wiki.
If you call this code, for example, in the Session/Ready
event (Codeware), you'll be welcomed by a bright white screen upon loading a save.
You can also name your ink components using .SetName("name")
and the name will appear in RedHotTool's Ink Inspector, which is useful for debugging! RHT also allows you to change ink properties to find what's right for your UI.
For more complex UIs you probably want to build your custom components from the simple ones, refer to the Codeware wiki for more info.
Animating inks
You can have the inkWidgets animate themselves through .PlayAnimation()
, there are various predefined animations like scaling, sharing and fading, you can find them in NativeDB. Here is an example on how to make the flashbang more annoying:

Last updated