RepoFSS

v1.1.1·Updated 2025-04-12

mod pack for Repo, Compiled and packaged by desciple6

About this mod Author’s original text

Menu Lib

A library for creating UI!

As REPOConfig gets updated, so will this library.

For Developers - VERSION 2.0.0

You can reference the REPOConfig GitHub.

Official documentation will come later (sorry), but here's a super quick code snippet:

MenuAPI.AddElementToMainMenu(parent =>

{

//parent in this scenario represents the MainMenu

//Buttons

var repoButton = MenuAPI.CreateREPOButton("A Button", () => Debug.Log("I was clicked!"), parent, localPosition: Vector2.zero);

//Labels

var repoLabel = MenuAPI.CreateREPOLabel("A Label", parent, localPosition: new Vector2(48.3f, 55.5f));

//Toggles

var repoToggle = MenuAPI.CreateREPOToggle("A Toggle", b => Debug.Log($"I was switched to: {b}"), parent, Vector2.zero, "Left Button Text", "Right Button Text", defaultValue: true);

//Avatar Previews

var repoAvatarPreview = MenuAPI.CreateREPOAvatarPreview(parent, new Vector2(48.3f, 55.5f), enableBackgroundImage: true, backgroundImageColor: Color.white);

//Sliders

//The precision argument/field is the number of decimals you want (0 = integers, 1 = 0.1, 2 = 0.01, etc.)

//The bar behavior argument/field is for the background bar visual, it doesn't affect functionality

//The rest should be self-explanatory

//Float Slider

var repoFloatSlider = MenuAPI.CreateREPOSlider("Float Slider", "Description", f => Debug.Log($"New Float Value: {f}"), parent, localPosition: Vector2.zero, min: -100f, max: 100f, precision: 2, defaultValue: 50f, "prefix-", "-postfix", REPOSlider.BarBehavior.UpdateWithValue);

//Int Slider (No precision argument)

var repoIntSliderSlider = MenuAPI.CreateREPOSlider("Int Slider", "Description", i => Debug.Log($"New Int Value: {i}"), parent, localPosition: Vector2.zero, min: -100, max: 100, defaultValue: 50, "prefix-", "-postfix", REPOSlider.BarBehavior.UpdateWithValue);

//String Option Slider - Alternatively, you can use an int delegate -----------------> (int i) => Debug.Log($"New String Index Value: {i}")

var repoStringSlider = MenuAPI.CreateREPOSlider("String Option Slider", "Description", (string s) => Debug.Log($"New String Value: {s}"), parent, stringOptions: ["Option A", "Option B", "Option C"], defaultOption: "a", localPosition: Vector2.zero, "prefix-", "-postfix", REPOSlider.BarBehavior.UpdateWithValue);

//Popup Page - These should be created and opened immediately (usually on a button press), trying to cache them will cause issues

var repoPage = MenuAPI.CreateREPOPopupPage("Page Header", REPOPopupPage.PresetSide.Left, shouldCachePage: false, pageDimmerVisibility: true, spacing: 1.5f);

//Popup Page Custom Position

var repoPage = MenuAPI.CreateREPOPopupPage("Page Header", shouldCachePage: false, pageDimmerVisibility: true, spacing: 1.5f, localPosition: Vector2.zero);

//Opens the page

//openOnTop:

//If true, the previous page will not be set to inactive

//If false, the previous page will be set to inactive

repoPage.OpenPage(openOnTop: false);

//Closes this page

//closePagesAddedOnTop:

//If true, all pages added on top will close too

//If false, only this page will close

repoPage.ClosePage(closePagesAddedOnTop: false);

//Sets the padding for the scroll box mask

repoPage.maskPadding = new Padding(left: 0, top: 0, right: 0, bottom: 0);

//Adds an element to the page

repoPage.AddElement(parent =>

{

//Create element, parent it using parent

});

//Adds an element to the page's scroll box

repoPage.AddElementToScrollView(scrollView =>

{

//Create element, parent it using scrollView

//Setting the Y position of an element in here is useless, it will be overwritten

//Additionally, this delegate requires a RectTransform to be returned:

//return newlyCreatedElement.rectTransform;

});

//Each element has access to its scroll view element, it will be null if it wasn't parented to a scroll box

var repoButton = MenuAPI.CreateREPOButton("A Button", () => Debug.Log("I was clicked!"), parent: scrollView, localPosition: Vector2.zero);

var scrollViewElement = repoButton.repoScrollViewEl

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.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPacketh9n-Mimicebkr-r2modmanloaforc-loaforcsSoundAPIHamunii-AutoHookGenPatcherHamunii-DetourContext_Dispose_Fixnickklmao-MenuLibYMC_MHZ-MoreHead

File & checksum

Filename
RepoFSS-1.1.1.zip
File size
26.5 KiB