Skip to content

Repository files navigation

Acknowledgements:

None of this would be possible without the amazing work of Crypto137 and his MHServerEMU! It can be found at https://github.com/Crypto137/MHServerEmu

Many thanks go out to everyone that put so much time in reviving this game that meant so much to so many.

MHServerEmu Control Panel

A local web panel for running and configuring a MHServerEmu server. Settings, live tuning, accounts, and store prices, without opening Config.ini in a text editor or remembering which JSON file holds what.

Runs entirely on your own machine. No dependencies beyond Node.js, no build step, and no changes to the emulator — the panel reads and writes the same files you would edit by hand, and backs each one up before it does.

Installation instructions →

How this differs from MHServerEmu.Gui

The emulator ships with its own Avalonia GUI. This is a different take:

  • A sci-fi themed interface built on the colour scheme of the original dashboard that ships with the emulator, so it looks like part of the same toolset rather than a generic settings dialog.
  • No reverse proxy needed for client connection. The panel serves itself on localhost and talks to the emulator's existing web API directly.
  • Everything in one place — settings, live tuning, accounts, and store prices across all catalog files, rather than hand-editing four kinds of file.

Overview tab


Overview

Start, stop, and restart the server. On Windows the panel launches it in its own console window; on Linux it starts in the background. Either way it is tracked by process, so a server you started yourself is picked up too.

  • Status cards — uptime from the server's own clock, connected players, running games, connected clients, active sessions. Polled every three seconds from the emulator's /ServerStatus endpoint.
  • Works with the Windows release and the Linux (nightly) builds of the emulator; the server process is tracked by name, so a server you started yourself is picked up too.
  • Live log — the last 60 lines of the server's log file, updating as it writes.
  • Quick commands — one click copies a common command (server status, reloadlivetuning, reloadcatalog, reloaddashboard, reloadplayernameblacklist, whitelist) ready to paste into the server console.
  • Broadcast — type a message, click COPY, paste it in the server window to send it to everyone online.

The first time you press START, the panel enables file logging in ConfigOverride.ini so it has a log to read. A backup is written first.

Config

Config tab

The effective configuration — Config.ini merged with ConfigOverride.ini, override values winning, exactly the way the server loads them. Every setting is shown with the emulator's own inline documentation next to it — the same ; Key: description comments that are in the file.

  • Curated cards for the settings most people change, with plain-language descriptions.
  • Advanced view exposes all 13 sections and 118 settings.
  • Keys set in ConfigOverride.ini are marked with an OVR badge and show their Config.ini default on hover. Overrides survive server updates; Config.ini does not (the emulator replaces it on every update).
  • Every change is written to ConfigOverride.ini, never Config.ini — the same recommendation the emulator team makes. Config.ini stays untouched as a clean fallback, and because the override file is sparse, anything you don't pin automatically picks up new defaults after an update.
  • Preview changes shows exactly what will be written before you commit.
  • Comments, ordering, spacing, and line endings are preserved untouched. Only the value half of a changed line is rewritten.

Config changes need a server restart to take effect.

Live Tuning

Live Tuning tab

Global rates and the live event schedule, applied without a restart.

  • XP, credit, rare-drop, and other global multipliers as editable rows.
  • All 21 live events with per-event enable toggles.
  • Event schedule editing.
  • APPLY writes the JSON files and copies !server reloadlivetuning for you to paste. The line under the button names each file it wrote.

Accounts

Accounts tab

Account creation and management through the emulator's web API.

  • Create — email, player name, password. Works with no setup, and reports the server's actual answer ("that player name is already taken", and so on) rather than a generic failure.
  • Manage — set password, rename player, change user level, set and clear flags such as BypassLoginQueue.

Management needs a one-time API key. The panel shows the two commands to type in the server console, then finds the key in Data/Web/ApiKeys.json by itself when you press RECHECK. See INSTALL.md.

The emulator has no endpoint for listing or reading accounts, so the panel cannot show you an account list — you act on an account by email.

Command Reference

Commands tab

Every documented command, grouped by where it runs — server console, in game as an admin, in game as a player. Click one to copy it.

There is also a builder field for commands that take arguments, with history on the up and down arrows, and a PIN button for the ones you use constantly.

Why copy and not run? The emulator disables its command reader when its input is redirected, so a command sent from another program is silently ignored. There is no way around that from outside the emulator. The panel is honest about it and hands you the command instead.

Store

Store tab

Your real store catalog, with inline price editing.

  • Reads every Catalog*.json file in Data\Game\MTXStore, in the same alphabetical order the emulator does, so an entry overridden by a later file shows the price the server will actually use — and editing it writes to the file that wins.
  • Filter by title or type.
  • Prices are edited in place; changed rows are highlighted.
  • The panel works out your catalog's own field layout rather than assuming one, and price changes are mirrored across every language entry.
  • 19-digit item prototype ids are preserved exactly. A normal JSON round trip in JavaScript quietly rounds those off and breaks the item-to-SKU mapping; the panel parks them as text across the read and write.
  • APPLY backs the file up first, then copies !server reloadcatalog.

First-Run Setup

Setup tab

Five steps covering the choices that matter when standing up a new server — who can connect, whether new accounts are allowed, starting currency, and so on. Each option says which ConfigOverride.ini key it writes. A review page shows the full change set before anything is saved.


Requirements

  • MHServerEmu 1.0.1 — the Windows release or a Linux (nightly) build
  • Node.js 18 or newer (Windows and Linux)

Safety

Every write — ConfigOverride.ini, live tuning JSON, the catalog files — makes a timestamped copy in PanelBackups/ first. Nothing is ever deleted, and the emulator's own files and executables are never modified. In particular, Config.ini is never written: the panel only reads it, and all settings changes land in ConfigOverride.ini so they survive server updates.

The panel binds to localhost only. It is not exposed to your network.

Licence

MIT — see LICENSE.

Disclaimer

This project is an independent, unofficial tool. It is not affiliated with, endorsed by, or supported by Gazillion Entertainment, Marvel, Disney, or the MHServerEmu development team. Marvel Heroes and all related names and marks are the property of their respective owners.

MHServerEmu is a separate project, licensed under AGPLv3. This panel contains none of its code — it reads and writes the same configuration files you would edit by hand, and calls the emulator's public web API. You need your own working MHServerEmu installation and your own legally obtained game client.

About

Local web panel for running and configuring an MHServerEmu server — settings, live tuning, accounts, store prices

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages