Igao-Ultimate_Server_Configuration_Manager icon

Ultimate Server Configuration Manager

✅ The LAST config mod you'll ever need. Edit ANY mod in-game with F1 — changes hit every player instantly. Admin-only controls, auto-translated descriptions, 15 languages, one-click undo. No more .cfg problems.

CHANGELOG

Changelog

Report bugs on Discord: https://discord.gg/aMkN89Cuas


1.0.3

  • On/Off toggles are easier to read: "Off" now shows in a soft dark red instead of grey, so a switched-off option no longer looks like a disabled (locked) button. Other buttons (Hidden / View only / Can edit, option lists) keep their look.
  • The panel now shows the right version number (v1.0.1).

1.0.0 — First release

Ultimate Server Configuration Manager — "Ultimate SCM" for short — is one in-game panel for the settings of every BepInEx mod, built for server owners, players and mod developers. This is everything it does at launch.

Discovery and display

  • Automatic discovery of the configs of all loaded BepInEx mods, including configs a mod creates late (after the world loads) and extra .cfg files a mod keeps outside its main Config.
  • The mod's own .cfg comments are shown under each config, together with default value, range, type and allowed options.
  • Respects the mod author: display names, ordering, advanced/hidden flags and read-only flags set through ConfigurationManagerAttributes.
  • Adaptive layout: up to 6 sections → collapsible sections; more than 6 → tabs.
  • Home screen with a one-sentence explanation of your situation (main menu, host, admin, player, server without Ultimate SCM), clickable counters, pinned configs and tips. Sidebar shortcuts: Home, Pinned, Changed (everything off its default, across all mods) and What's new.
  • Search across all mods: name, key, section, original comment and any translation already made. Filters: only changed, show advanced, show hidden (admins).
  • Pin favourite configs; they stay on Home and are remembered on this PC.
  • The window remembers position, size, last opened mod, collapsed sections, filters and draft mode (stored as screen fractions, so it survives a resolution change). Drag the top to move, bottom-right corner to resize.
  • Instant editors (on/off, choices, multi-select) apply when clicked and have no Apply button; text, number, colour, vector and shortcut fields keep it.
  • Yellow notices for non-fatal things (a translation service going down and the backup taking over); red is kept for real errors. Tooltips always stay inside the screen.
  • Single-player view: when nobody else can join (not a dedicated server, no other players, world not open), the server/admin tools and badges are hidden and you see only what a player would. Since everything is Hidden by default and nobody can release configs in a solo world, other mods' configs only show after you type devcommands in the console (F5).
  • Admin tools need devcommands: admins (on a server, as host or in single-player) are treated as normal players until they type devcommands in the console (F5) — hidden configs stay hidden and locked ones are read-only. Turn off Admin needs devcommands to always have the admin view.
  • Compact view for players: a player on a synced server sees name, editor, badges, admin note and comment. A Details toggle brings back the key, default, type and change history. Admins and hosts always see everything.
  • Opens from the ESC menu ("Mod Settings") and from a hotkey (F1 by default).
  • Keyboard shortcuts: Ctrl+F search, Ctrl+Z undo, Ctrl+S apply draft, Enter apply, layered ESC.

Editors

  • Toggle for booleans, slider + field for ranged numbers (accepts 1,5 and 1.5), buttons or list for choices, multi-select for flags.
  • Key capture for KeyboardShortcut and KeyCode configs: click, press the key (with Ctrl/Shift/Alt for combinations); ESC cancels.
  • Colour picker for Color configs: swatch, hex field and R, G, B, A sliders.
  • Vector editor with separate X, Y, Z (W) fields for Vector2/3/4.
  • Mods' own editors: if a mod defines ConfigurationManagerAttributes.CustomDrawer, Ultimate SCM draws it inside the card (local changes only; server-controlled configs use the standard editor so the server stays authoritative).
  • Inline validation: an invalid value is explained right below the field, with what is accepted; Enter does nothing until it is valid.
  • Human-readable value hints next to numbers (+50%, 5 min, 2× (+100%)).
  • Extreme-value protection: a confirmation is asked before applying an absurd value.
  • Open .cfg and Reload from disk buttons per mod (reload is disabled while connected to a synced server).

Reverting and applying

  • Default button per config; Reset section and Reset mod to defaults (with confirmation).
  • Undo for the last 50 changes (a section reset counts as one step).
  • Draft mode: collect several changes and apply them together in one batch, with a single server message, a single undo step and a single extreme-value confirmation.
  • "Copy changes" produces a Discord-ready summary of what changed (with <t:…> timestamps that show in each reader's own time zone).

Server synchronization

  • Server-authoritative: every config is Hidden and locked by default; only admins from adminlist.txt can change values, and the server validates everything again.
  • Admins choose, per config or per whole mod, one of three states for players: Hidden (default), View only (visible, server value enforced) or Can edit (each player keeps their own value). A config's own state wins over its mod's (e.g. mod View only with one config Hidden); changing the mod resets its configs to follow it. The value always applies to everyone, whatever the state.
  • Player-only configs (hotkeys, UI, sound, colours) can start unlocked automatically (option Auto unlock player-only settings, off by default: everything starts Hidden). The panel suggests them to the admin with Unlock suggested.
  • Restoring the player's own values when leaving the server, with a crash backup (client_backup.json) that recovers local values after a game crash.
  • Pre-apply: cached values of a server are applied before the world loads, so mods that read configs at start-up already see them.
  • Apply-mode detection: each config is labelled LIVE, RELOG or RESTART by analysing the mod's code, with the evidence explained on hover. Pending banners and a Relog now button.
  • Mirror mode for mods that already sync themselves (ServerSync, Jotunn, ConditionalConfigSync): Ultimate SCM mirrors instead of fighting them.
  • Mod version mismatch warning between server and player; server-only configs are visible to admins.
  • Secrets (tokens, webhooks, passwords, API keys) are never sent to ordinary players.
  • Protocol version 6, with a clear warning when server and client versions differ.
  • Server options: audit log (changes.log) of who changed what, excluded mods list, and more.

Notes and history

  • Admin notes on any config, visible to every player next to the value.
  • "Changed by … · 2 h ago (today, 18:47)" for admins (players only see "changed by an admin").
  • What's new since your last visit: configs the server changed since you last looked, tracked per server.
  • All times are stored in UTC and shown in each player's local time zone and panel-language date format, with a server clock-offset correction.

Translation of mod comments (local, per player)

  • Comments are translated into your Valheim language on your own PC — never through the Claude API.
  • English players: no translate button is offered for comments that are already English (only comments in another script, e.g. Chinese or Russian, are offered).
  • Redundancy: MyMemory → DeepL (last resort), with a Test translation button in Ultimate SCM's settings, with a circuit breaker (3 failures → 10-minute pause), cache, and community packs (translations/packs/<Language>/).
  • Original/translated toggle per config, per section or per mod.
  • Variable names are never translated.
  • Background translation (off by default, hidden under advanced settings): translates all configs slowly, one text every 30 s (min. 10 s), prioritising the mod you have open, pausing when offline or when services are down.
  • Friendly, translated error messages with a "what to do" line, and an error log.

Panel languages

  • The panel itself is available in 15 languages, named after Valheim's language names: English, Portuguese (Brazil), Portuguese (Portugal), Spanish, French, German, Italian, Dutch, Polish, Swedish, Turkish, Russian, Japanese, Korean, Chinese.
  • Falls back to English for missing keys; drop a <Language>.json into plugins/translations/ to add or override a language.
  • Ultimate SCM' own settings are shown in the panel language too (the .cfg stays in English).
  • Numbers and dates follow the panel language's culture.

Reliability

  • Every network handler and Harmony patch is guarded: a malformed message or an unexpected game version disables one feature, never the game.
  • Data files are written atomically; an unreadable file is kept as .bad instead of being overwritten.
  • Message sizes and item counts are limited.

Performance

  • The panel builds its lists only when something changes (not on every draw), and config cards far below the visible area are skipped, so huge mods (hundreds of configs) stay smooth.
  • Config values are converted to text only when they change; heavy reflection lookups (game language, admin check, server id, devcommands) are done once and reused.
  • Mod discovery only re-reads a .cfg that gained new entries, so periodic rescans and server syncs cost almost nothing.
  • Translations already looked up are remembered per config; translation services are reused instead of recreated.