oωo (owo-lib)
Overview
A general utility, GUI and config library for modding on Fabric. oωo is generally aimed at reducing code verbosity and making development more ergonomic. It covers a wide range of features from networking and serialization over GUI applications and configuration to data handling and registration.
Build Setup:
# https://maven.wispforest.io/io/wispforest/owo-lib/
owo_version=...
repositories {
maven { url 'https://maven.wispforest.io' }
}
<...>
dependencies {
modImplementation "io.wispforest:owo-lib:${project.owo_version}"
// only if you plan to use owo-config
annotationProcessor "io.wispforest:owo-lib:${project.owo_version}"
// include this if you don't want force your users to install owo
// sentinel will warn them and give the option to download it automatically
include "io.wispforest:owo-sentinel:${project.owo_version}"
}
Kotlin DSL
```kotlin
repositories {
maven("https://maven.wispforest.io")
}
dependencies {
modImplementation("io.wispforest:owo-lib:${properties["owo_version"]}")
// only if you plan to use owo-config
annotationProcessor("io.wispforest:owo-lib:${properties["owo_version"]}")
// include this if you don't want force your users to install owo
// sentinel will warn them and give the option to download it automatically
include("io.wispforest:owo-sentinel:${properties["owo_version"]}")
}
```
You can check the latest version on the Releases page
owo is documented in two main ways:
Features
This is by no means an exhaustive list, for a more complete overview head to https://docs.wispforest.io/owo/features/
- owo-ui, a fully-featured declarative UI library for building dynamic, beautiful screens with blazingly fast development times
- owo-config, a built-in, customizable configuration system built on top of owo-ui. It provides many of the same features as Cloth Config while many new conveniences, like server-client config synchronization, added on top
- A fully automatic registration system that is designed to be as generic as possible. It is simple and non-verbose to use for basic registries, yet the underlying API tree is flexible and can also be used for many custom registration solutions
- Item Group extensions which allow for sub-tabs inside your mod's group as well as a host of other features like custom buttons, textures and item variant handling
- A fully-featured networking layer with fully automatic serialization, handshaking to ensure client compatibility and a built-in solution for triggering parametrized particle events in a side-agnostic manner
- Client-sided particle helpers that allow for easily composing multi-particle effects
- Rich text translations, allowing you to use Minecraft's text component format in your language files to provide styled text without any code