NativeUIMaker

v0.0.4·Updated 2026-07-23

Silk Song native UI component library NativeUI

About this mod Machine translation

\# NativeUIMaker - Silk Song native UI component library

NativeUIMaker is a native UI component library provided for Silk Song module developers. By cloning the game's built-in UI prefab, it can achieve a visual and interactive style that is completely consistent with the game itself.

\## Features

\- \\Native Button\\ (NativeButton): Supports icon buttons, plain text buttons, and small buttons, and retains native behaviors such as in-game flash, sound effects, and navigation.

\- \\Native Label\\ (NativeLabel): Standard text label, automatically adapts to game fonts and localization.

\- \\Native option line\\ (NativeOption): A switch/option line with a description floating layer, switching the value left and right, and automatically displaying the description text.

\- \\Native Slider\\ (NativeSlider): A slider with numerical display, supports integer/floating point steps, and can freely adjust the offset.

\- \\Native Arrow\\ (NativeArrow): Left and right page cursor decoration, with rotation animation, supports permanent display and direction switching.

All controls dynamically obtain prefabs (such as NormalButton, MenuOptionHorizontal, etc.) from the game runtime, without the need for additional resource files, and perfectly replicate the Song of Silk menu style.

\## Installation method

1\. Make sure \BepInEx 5.4.23 or higher is installed.

2\. Place NativeUIMaker.dll into the BepInEx/plugins folder.

3\. Start the game and press \\F9\\ to open the debugging window to test all controls.

\## Usage examples (for mod developers)

using NativeUIMaker;

//Create an icon button

NativeButton btn = NativeButton.Create(parentRect, ButtonStyle.IconButton);

btn.SetTitle("Start Game");

btn.SetDescription("Click to start a new journey");

btn.AddClickListener(() => Debug.Log("Button was clicked"));

//Create a line option (switch)

NativeOption opt = NativeOption.Create(parentRect);

opt.SetLabel("Enable random seed");

opt.SetOptions(new\ { "off", "on" }, 0);

opt.OnValueChanged(index => Debug.Log($"Current value: {index}"));

//Create an arrow

NativeArrow arrow = NativeArrow.Create(parentRect, NativeArrow.Direction.Right);

arrow.SetPosition(new Vector2(100, 0));

arrow.SetClickable(true, () => Debug.Log("The arrow was clicked"));

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

File & checksum

Filename
NativeUIMaker-0.0.4.zip
File size
101.9 KiB