Skip to main content
Native Compose components give you full Jetpack Compose access when replacing or wrapping Aether’s built-in UI. They surround the Script component pipeline — a Native Replace is decisive over Script-level replacements, and Native Wrap components sit on the outside of all Script component wrappers.

API

Call context.registerComponent() inside onLoad:

AetherNativeComponentMode values

Built-in component targets

AetherNativeComponentRenderer interface

The context parameter provides: The next parameter is a @Composable () -> Unit representing the downstream content — either the built-in Compose implementation, Script component replacements, or the next Native component. Call next() inside Wrap mode renderers to render the wrapped content.

Example — Replace mode

Replace the action tray with custom Compose content:
MyNativeMod.kt

Example — Wrap mode

Surround the existing action tray with additional content:

Example — Hide mode

Suppress the skill picker entirely (no renderer required):
Compose renderers must be compiled with the Compose compiler version matching the Aether build they target. A version mismatch can cause crashes at class loading time. See the Safe Mode page for recovery options.