promotional bannermobile promotional banner

R5 Mod Settings

Unlisted
R5 Mod Settings adds a Mods tab to the settings screen for UE4SS mods.

R5 Mod Settings 需要模组作者主动向管理器注册他们的模组才能正常显示。因此,看不到其他模组的设置是正常现象。如果你需要其他模组与之集成,请联系这些模组的作者,请求他们添加支持。

R5 Mod Settings requires mod authors to actively register their mod with the manager for it to display properly. So not seeing other mods' settings is expected behavior. If you need other mods to integrate with it, please contact those mod authors and ask them to add support.


说明:本描述为中英双语版本,中文内容位于英文内容下方。

Note: This description is bilingual. The Chinese section is provided below the English section.


Description

R5 Mod Settings adds a Mods tab to the Windrose settings screen for UE4SS mods.

Features

  • Adds a Mods page to the native game settings menu.
  • Uses native Windrose settings widgets for toggles, sliders, and dropdowns.
  • Supports per-mod descriptions in the right-side help panel.
  • Supports optional Nexus Mods buttons through nexus_id.
  • Includes R5ModSettingsExample, a small example mod showing how third-party mods can register and read settings.

For Mod Authors

Your UE4SS mod can register settings by writing a Lua manifest here:

Windrose\R5\Binaries\Win64\ue4ss\Mods\R5ModSettings\registrations\YourModName.lua

The manifest should return a Lua table like this:

return {
    name = "YourModName",
    display = "Your Mod Name",
    version = "1.0.0",
    nexus_id = "132",
    settings = {
        {
            key = "Enabled",
            title = "Enabled",
            description = "Turns the mod feature on or off.",
            type = "toggle",
            default = true,
        },
        {
            key = "Multiplier",
            title = "Multiplier",
            description = "Controls the strength of the feature.",
            type = "slider",
            default = 1.0,
            min = 0.1,
            max = 5.0,
            step = 0.1,
        },
        {
            key = "Mode",
            title = "Mode",
            description = "Selects the behavior mode.",
            type = "dropdown",
            default = "normal",
            options = {
                { value = "normal", label = "Normal" },
                { value = "fast", label = "Fast" },
            },
        },
    },
}

Supported setting types:

  • toggle
  • slider
  • dropdown

If nexus_id is present, R5 Mod Settings adds an Open Nexus Mods button for that mod.

Example:

nexus_id = "xxx"

Opens: https://www.nexusmods.com/windrose/mods/xxx

Reading Settings

R5 Mod Settings writes saved values here:

Windrose\R5\Binaries\Win64\ue4ss\Mods\R5ModSettings\saved\YourModName.lua

When a manifest is registered or loaded, missing saved values are automatically initialized from the default values in the manifest. Existing user values are not overwritten.

Primitive values are also published to UE4SS shared variables:

  • R5ModSettings/YourModName/Enabled
  • R5ModSettings/YourModName/Multiplier
  • R5ModSettings/YourModName/Mode

Recommended reading pattern for your mod:

local ModName = "YourModName"
local SAVED_PATH = "./ue4ss/Mods/R5ModSettings/saved/" .. ModName .. ".lua"
local SHARED_PREFIX = "R5ModSettings/" .. ModName .. "/"

local Config = {
    Enabled = true,
    Multiplier = 1.0,
    Mode = "normal",
}

local function read_lua_table(path)
    local f = io.open(path, "r")
    if not f then return nil end
    local content = f:read("*all")
    f:close()
    if not content or content == "" then return nil end
    if content:sub(1, 3) == "\239\187\191" then
        content = content:sub(4)
    end
    local loader = load(content)
    if not loader then return nil end
    local ok, data = pcall(loader)
    return ok and type(data) == "table" and data or nil
end

local function LoadConfig()
    local got_shared = false

    if ModRef then
        for key, old in pairs(Config) do
            local value = ModRef:GetSharedVariable(SHARED_PREFIX .. key)
            if value ~= nil then
                got_shared = true
                if type(value) == type(old) then
                    Config[key] = value
                end
            end
        end
    end

    if not got_shared then
        local saved = read_lua_table(SAVED_PATH)
        if saved then
            for key, value in pairs(saved) do
                if Config[key] ~= nil and type(value) == type(Config[key]) then
                    Config[key] = value
                end
            end
        end
    end
end

See R5ModSettingsExample for a complete working example mod.

Example Mod

This package includes R5ModSettingsExample. It demonstrates:

  • writing a registration manifest,
  • generating default saved values,
  • reading shared variables first,
  • falling back to the saved Lua file,
  • polling for runtime changes,
  • and adding a Nexus Mods button.

The example appears in the Mods tab as:

R5 Mod Settings Example - 0.1.0

Compatibility

This is a UE4SS mod for Windrose. Other UE4SS mods can use it as a shared settings menu.

For multiplayer, this is mainly a local UI/config helper. Gameplay mods still decide whether host, client, or both sides need to install their own mod.

Installation

Install UE4SS first. Place the R5ModSettings folder here:

Windrose\R5\Binaries\Win64\ue4ss\Mods

Optional example mod: Place the R5ModSettingsExample folder in the same Mods directory.

Bug Reports

Post on the mod page or contact me via email at 764884112@qq.com or ibox2333@gmail.com.


If you enjoy my mods, buy me a coffee! / 如果你喜欢我的模组,请我喝一杯咖啡吧!

Ko-fi


简介

R5 Mod Settings 会在 Windrose 的游戏设置界面中添加一个 Mods 标签页,用于集中管理 UE4SS 模组配置。

功能

  • 在游戏原生设置菜单中添加 Mods 页面。
  • 使用 Windrose 原生设置控件显示开关、滑条和下拉框。
  • 支持右侧说明面板显示每个选项的描述。
  • 支持通过 nexus_id 自动添加 Nexus Mods 页面按钮。
  • 包含 R5ModSettingsExample 示例模组,展示第三方模组如何注册和读取设置。

给模组作者

你的 UE4SS 模组可以写入一个 Lua manifest 来注册设置:

Windrose\R5\Binaries\Win64\ue4ss\Mods\R5ModSettings\registrations\YourModName.lua

示例 manifest:

return {
    name = "YourModName",
    display = "Your Mod Name",
    version = "1.0.0",
    nexus_id = "132",
    settings = {
        {
            key = "Enabled",
            title = "Enabled",
            description = "Turns the mod feature on or off.",
            type = "toggle",
            default = true,
        },
        {
            key = "Multiplier",
            title = "Multiplier",
            description = "Controls the strength of the feature.",
            type = "slider",
            default = 1.0,
            min = 0.1,
            max = 5.0,
            step = 0.1,
        },
        {
            key = "Mode",
            title = "Mode",
            description = "Selects the behavior mode.",
            type = "dropdown",
            default = "normal",
            options = {
                { value = "normal", label = "Normal" },
                { value = "fast", label = "Fast" },
            },
        },
    },
}

目前支持:

  • toggle
  • slider
  • dropdown

如果填写 nexus_id,管理器会给该模组添加 Open Nexus Mods 按钮。

例如:

nexus_id = "xxx"

会打开: https://www.nexusmods.com/windrose/mods/xxx

读取配置

R5 Mod Settings 会将配置保存到:

Windrose\R5\Binaries\Win64\ue4ss\Mods\R5ModSettings\saved\YourModName.lua

当 manifest 被注册或加载时,缺失的配置项会自动用 default 默认值补齐。 已有玩家配置不会被覆盖。

基础类型配置也会发布到 UE4SS shared variables:

  • R5ModSettings/YourModName/Enabled
  • R5ModSettings/YourModName/Multiplier
  • R5ModSettings/YourModName/Mode

推荐做法: 优先读取 ModRef:GetSharedVariable("R5ModSettings/YourModName/Key")。 如果读不到,再读取 saved\YourModName.lua

完整示例请看随包提供的 R5ModSettingsExample

示例模组

本包包含 R5ModSettingsExample。 它演示了:

  • 写入注册 manifest、
  • 生成默认 saved 配置、
  • 优先读取 shared variables、
  • fallback 到 saved Lua 文件、
  • 轮询运行时配置变化、
  • 以及添加 Nexus Mods 按钮。

它会在 Mods 标签页中显示为:

R5 Mod Settings Example - 0.1.0

兼容性

这是 Windrose 的 UE4SS 模组。 其他 UE4SS 模组可以把它作为统一设置菜单使用。

多人游戏中,本模组主要负责本地 UI 和配置读取。具体 gameplay 模组是否需要房主、客户端或双方安装,取决于该 gameplay 模组本身。

安装方法

需要先安装 UE4SS。 将 R5ModSettings 文件夹放入:

Windrose\R5\Binaries\Win64\ue4ss\Mods

可选示例模组: 将 R5ModSettingsExample 文件夹也放入同一个 Mods 目录。

Bug 反馈

在模组页面发布问题,或通过邮箱 764884112@qq.com / ibox2333@gmail.com 联系我。

The R5 Mod Settings Team

profile avatar
  • 2
    Followers
  • 22
    Projects
  • 82.0K
    Downloads

More from IceBoxStudioView all