Codeware Lib
Features
- Global Registry
- Store and retrieve objects by name
- Localization System
- Translate the mod based on the game language settings
- Use different language packages for the interface and subtitles
- Vary translations based on player gender
- UI: Custom Widgets
- Create composite widgets with logic
- UI: Buttons
- Generic button template
- Simple and Hub buttons
- UI: Popups
- Generic popup template
- In-game style popup (like Radio, Call Vehicle, Messenger)
- UI: Button Hints
- Show action hints in your widgets
- UI: Text Input
- Prompt for user input
- UI: Resolution Watcher
- Apply scaling to widgets
- Make adaptive layouts
- Hashing
- TweakDBID
- FNV1a64 (Experimental and ineffective)
- Delay System
- Schedule events for UI controllers
- Native Extensions
- Access native things that are not accessible by default
In Progress
- Text Input: Keyboard layouts – For typing in any language supported by the game
- Text Input: Multiline – Writing personal notes?
- Freeform Widgets – Drawing vector icons from scripts
- Scroll Pane / Scroll Bar – Large content and lists, virtual scrolling
- Menu Style Popup – Like in the Hub menu
Usage
The lib can be used in two ways: as a shared or internal lib.
Shared
You can add the lib as a dependency.
❗ Not published on Nexus yet.
Internal
You can include a full or partial copy of the lib only with features you need in your mod.
To prevent conflicts with other mods and / or shared lib, you must give your copy a unique namespace.
For example, you can simply use your mod's namespace or prepend with it: Codeware
→ MyMod.Codeware
.