R.E.P.O.
Install

Details

Last Updated
First Uploaded
Downloads
122
Likes
0
Size
70KB
Dependency string
redos7-LoadingWidgetREPO-1.1.0
Dependants

LoadingWidget

A panel on the R.E.P.O. loading screen — the one place the normal menus can't reach. Every player running the mod sees it while a multiplayer level load is in flight — between levels in the game itself, including through the scene-swap gap where even the game's own UI is gone; never on the boot/menu loads or in singleplayer. Works on its own; SharePermissions is an optional companion that unlocks its full moderation stack.

Everyone sees:

  • every connected player with their live load state — LOADING / BUILDING / LOADED / READY — so the one player hanging the load is visible at a glance. When a load is genuinely stuck (the game's own ~25s verdict, or the panel's own backstop for the Start/reload phases it misses), the header flags STUCK and the blocking rows burn red
  • a talking-volume bar per player
  • a per-player local voice volume slider (0–200%, this machine only, resets on room leave)

Moderators (the host — plus SharePermissions moderators when it's installed) additionally get:

  • Kick / Ban for stuck or misbehaving players
  • a Lobby button that brings the whole room back to the lobby even when a load is stuck — with the host-side QUEUED / FORCE rescue escalation for a wedged transition (the vanilla stuck prompt only offers leaving the room; this bail keeps the room intact)

Standalone vs. with SharePermissions

The mod detects SharePermissions at startup and uses all of it when found:

Standalone With SharePermissions v1.17.0+
Who sees the panel Everyone in the room running the mod Everyone in the room running the mod
Who gets moderation actions Host only Host and SharePermissions moderators
Kick / Ban The game's own kick & ban (host) SharePermissions rules & wire protocol — moderators can kick remotely, bans are audited
Role icons Host crown only Full tiers: host / moderator / mod user / no mod
Lobby + QUEUED/FORCE rescue Yes (host) Yes, plus moderator-initiated via wire command
Load states, talking bars, local volume Yes Yes
Panel on/off toggle This mod's config: UI / ShowLoadingPanel in BepInEx/config/RED.LoadingWidget.cfg SharePermissions' Settings tab "Loading panel" (config: UI / ShowLoadingPanel in SharePermissions' config file) — live, mid-load included

Note on older SharePermissions (≤ 1.16.x): those versions ship this panel inside SharePermissions itself, so LoadingWidget stays dormant (one log line, no double panel). Update SharePermissions to 1.17.0+ — or uninstall it — to activate LoadingWidget.

Quick start

  1. Install this mod. That's it — the panel appears on multiplayer loading screens for everyone running it; the kick/ban and lobby controls light up for the host.
  2. Optional: install SharePermissions v1.17.0+ (and set it up as usual, secret code etc.) to get moderator access, role tiers, and its kick/ban machinery on the panel.

For developers

This mod is the panel UI plus the native FORCE lobby rescue, talking to a backend picked once at startup (Plugin.ResolveBackend, soft [BepInDependency] so SharePermissions loads first when present):

  • Bridged — SharePermissions v1.17.0+ installed: moderation goes through its public facade SharePermissions.Api.LoadingWidgetBridge (additive-only stability contract).
  • Standalone — SharePermissions absent: host-only moderation fallbacks on the game's own machinery (native kick/ban wire events, replicated lobby-return, own PlayerVoiceChat postfix for talking bars and local volume — applied only in this mode so the two mods never double-apply volume factors).
  • FORCE is native in both modes (src/StandaloneLobby.cs): the wedged-transition restart acts on the game's pipeline, not on backend state, so it lives here; the backend that owns the queued return finishes the trip after the reboot.

src/SharePermissionsBackend.cs is the only file allowed to reference SharePermissions.* types (JIT isolation is what lets the mod run without the assembly on disk — keep it that way).

  • libs/SharePermissions.dll is the vendored compile-time copy of the bridge contract. It is not bundled at runtime (Private=false) — BepInEx loads the real installed mod. Whenever the bridge gains members this mod needs, rebuild SharePermissions and refresh the vendored DLL:

    dotnet build <SharePermissions repo>\SharePermissions.csproj
    copy <SharePermissions repo>\bin\Debug\netstandard2.1\SharePermissions.dll libs\
    

    ...then raise PluginInfo.SharePermissionsMinVersion if the new members are required — installs below the minimum fall back to standalone-or-dormant instead of crashing.

  • dotnet build deploys straight into the r2modman profile configured in Directory.Repo.props (per-machine overrides go in Directory.Repo.props.user, via the Linkoid.Repo.Plugin.Build SDK).

  • Design notes: the extraction spec lives in the SharePermissions repo (docs/superpowers/specs/2026-07-13-loading-widget-extraction-design.md); the optional-dependency design lives here (docs/superpowers/specs/2026-07-13-optional-sharepermissions-design.md).

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.