Brazil's biggest MU Online portal — since 2003
Tutorial Advanced Server

How to set up a MU Online server on Zhyper MuServer

Bring up a MU Online server with the Zhyper MuServer package from scratch: the database on SQL Server, restoring the MuOnline/Me_MuOnline databases, configuring IP and ports on ConnectServer, DataServer, JoinServer and GameServer, and testing your first login.

BR Bruno · Updated on Jan 20, 2025 · ⏱ 16 min read
Quick answer

Zhyper MuServer is one of the most widely used MU Online server files packages among newcomers, precisely because it delivers everything pre-assembled: the MuServer executables (Main), the database and a compatible client. Even so, "pre-assembled" is not "click and play" — you still need to restore

Zhyper MuServer is one of the most widely used MU Online server files packages among newcomers, precisely because it delivers everything pre-assembled: the MuServer executables (Main), the database and a compatible client. Even so, "pre-assembled" is not "click and play" — you still need to restore the databases on SQL Server, align the IP and ports across four different executables, and sync the client. Getting a single IP wrong or skipping the startup order makes the GameServer close with no explanation. This tutorial walks through the full setup, from the database to the first login, covering the points where beginners get stuck the most. If you do not yet have a broad overview, it is worth reading the how to create a MU Online server guide first.

What Zhyper MuServer is

Zhyper is not an emulator written from scratch: it is a distribution (a "files") that packages already-compiled MuServer binaries, SQL scripts to create/restore the database, and a client on the same season as the binaries. The architecture follows the standard of any MU server: four processes that talk to each other and a database behind them. Understanding this division is what turns configuration from "trial and error" into a clear process. The menu, file and folder-name details vary from one package release to another — treat the examples below as reference, not as fixed values.

Server components

ComponentRoleDefault port (example)
DataServerBridges the GameServer to SQL Server55960 / 55970
ConnectServerLists the servers and receives the client's first connection44405
JoinServerValidates login/account and manages the session55970
GameServerThe game world itself (maps, mobs, players)55901 / 44405

The ports above are examples and change depending on the Zhyper release. What never changes is the logic: the DataServer is the only one that talks to the database; the GameServer never accesses SQL directly.

Prerequisites

  • Windows (Server 2012+ or Windows 10/11) with administrator rights.
  • SQL Server 2008 R2 / 2012 / 2014 with SQL authentication enabled (the sa user).
  • SQL Server Management Studio (SSMS) to restore and inspect the database.
  • The Zhyper MuServer package (Main + Databases) and the matching client.
  • Visual C++ redistributables (2010/2013/2015) installed — their absence drops the executables at boot.
  • A defined IP: 127.0.0.1 for local testing or your VPS public IP for production.

Step 1 — Install and prepare SQL Server

  1. Install SQL Server choosing Mixed Mode Authentication (Windows + SQL) and set a password for the sa user.
  2. Open the SQL Server Configuration Manager and confirm that the TCP/IP protocol is Enabled.
  3. Restart the SQL Server service to apply the change.
  4. Open SSMS and connect using sa and the password you set — if it connects, the foundation for MuServer is ready.

> If you can only log in with Windows authentication, MuServer will not connect. It depends on a SQL username and password in the config files.

Step 2 — Restore the databases (MuOnline and Me_MuOnline)

Zhyper ships with two databases: usually MuOnline (game data: accounts, characters, items) and Me_MuOnline (ranking/events, depending on the release). You can restore from a .bak file or by running the .sql scripts.

Restoring from a backup in SSMS:

  1. Right-click Databases → Restore Database.
  2. Under Device, point to the package's .bak file.
  3. Confirm the target name (MuOnline) and finish.
  4. Repeat for the second database (Me_MuOnline).

If the package ships scripts instead of a .bak, open each .sql in SSMS and run it (F5), creating the databases manually. When done, confirm that both databases appear in the Databases tree.

-- Quick check: do the databases exist?
SELECT name FROM sys.databases
WHERE name IN ('MuOnline', 'Me_MuOnline');

Step 3 — Configure the DataServer's connection to the database

Inside Zhyper's Main folder, the DataServer has a connection file (commonly MuOnline.ini, Connection.ini or similar — the name varies by emulator/release). In it you provide the SQL instance, the database names and the credentials.

[MuOnline]
Server   = (local)
Database = MuOnline
User     = sa
Password = yourPasswordHere

[Me_MuOnline]
Server   = (local)
Database = Me_MuOnline
User     = sa
Password = yourPasswordHere
  • Server = (local) works for a default local instance; on a VPS it may be .\SQLEXPRESS or the instance name.
  • The username and password must be exactly those of sa (or of the user you created).

Save and open only the DataServer. If it lists the tables/queries with no connection error, the bridge to the database is up.

Step 4 — Align IP and ports across the executables

This is the step where 90% of beginners get stuck. The same IP must appear in every executable's configuration file and in the client. The file names vary (ConnectServer.ini, ServerList.dat, GameServerInfo.dat, IpList.dat, JoinServer.ini), but the logic is always the same:

  1. ConnectServer — defines the server list shown in the client. Point it at the GameServer's IP and port here (ServerList.dat / IpList.dat).
  2. JoinServer — configure the bind IP and the port the GameServer will use to validate login.
  3. GameServer — in GameServerInfo.dat (or its equivalent), fill in the IP of the ConnectServer, the JoinServer and the DataServer.
  4. Use 127.0.0.1 everywhere for local testing; switch to the public IP only when going live.

> Never mix 127.0.0.1 in one file and the public IP in another. It is either all local, or all the external IP. Mixing them produces a "server full" message or a disconnect right after login.

Step 5 — Start the executables in the correct order

Order matters because each process depends on the previous one being up:

  1. DataServer — connects to SQL Server (always open it first).
  2. ConnectServer — brings up the server list.
  3. JoinServer — becomes ready to authenticate accounts.
  4. GameServer — loads maps and mobs; it is the last to come up.

Many Zhyper packages include a Server Start.exe or a .bat that opens everything in the right order. If you open them manually, respect the sequence. A GameServer opened before the DataServer cannot find the database and closes.

Step 6 — Create the account and point the client

With the servers up:

  1. In SSMS, insert an account into the accounts table (commonly MEMB_INFO) or use the registration tool that ships with the package.
  2. In the Zhyper client folder, locate the file that defines the connection IP (often an encrypted .dat editable via a package tool, or a plain-text ServerList).
  3. Point the client at 127.0.0.1 (local) or at the public IP (production).
  4. Launch the client through Zhyper's own launcher/main, not through a loose main.exe from another season.

Step 7 — Test the first login

  1. Open the client and confirm that the server list appears (this validates the ConnectServer).
  2. Log in with the account you created — if it authenticates, the JoinServer is OK.
  3. Enter with a character: if the world loads, the GameServer and the DataServer are communicating.
  4. Create a new character and check that it persists after relogging (this confirms writes to the database).
  5. Test a GM command (e.g., creating an item) to validate permissions.

Common errors and fixes

SymptomLikely causeFix
GameServer closes on openDataServer not started or database not restoredRestore the databases and open the DataServer first
"Disconnected" right after loginMismatched IP/port across filesAlign the same IP in every .ini/.dat and in the client
Empty server listConnectServer without the GameServer IPAdjust ServerList.dat/IpList.dat
SQL connection errorsa disabled or wrong passwordEnable Mixed Mode and check the username/password in the config
Client crashes at loginClient from a different season than the MainUse the client that ships with the Zhyper release
Executable vanishes with no messageMissing Visual C++ RedistributableInstall the 2010/2013/2015 redistributables
"Server is full"Mix of local and public IPStandardize on local OR public across all files

Launch checklist

  • SQL Server in Mixed Mode, TCP/IP enabled and sa working.
  • Databases MuOnline and Me_MuOnline restored and visible in SSMS.
  • DataServer connecting to the database with no errors.
  • The same IP in ConnectServer, JoinServer, GameServer and the client.
  • Executables started in order: Data → Connect → Join → Game.
  • Account created and login validated in-game.
  • A created character persists after relogging (database writes OK).
  • Ports opened on the firewall (only for external hosting).
  • Backup of the Main folder and the databases before going public.

With Zhyper running and the first login tested, you have a stable base to build on: tuning experience and drop rates, configuring events, adding items and customizations. Before opening it up to players, make a full backup of the Main folder and both databases — that way, any future edit that breaks the server can be rolled back in minutes, without losing the setup work.

Frequently asked questions

What is Zhyper MuServer?

It is a MU Online server files package distributed by the community, already pre-assembled with the Main (MuServer executables), the database and a compatible client. It bundles ConnectServer, DataServer, JoinServer and GameServer into a ready-made structure, which cuts down the work of building everything from scratch. The exact season varies from one package release to another.

Which SQL Server version do I need?

Zhyper runs fine on SQL Server 2008 R2, 2012 or 2014 (Express is enough for local testing). What matters is that the instance accepts SQL authentication (the sa user) and not only Windows authentication, because the MuServer connection files use a database username and password.

Can I run Zhyper on my own machine to test it?

Yes. For local testing you use the IP 127.0.0.1 in every configuration file and in the client. To open it to the internet you need a public IP/VPS, to open the ports on the firewall and to point the client at the external IP. Always start locally before going public.

In what order should the executables be started?

Always DataServer first (it connects to the database), then ConnectServer, JoinServer and finally the GameServer. If you open the GameServer before the DataServer, it cannot find the database and either closes or hangs on the connection screen.

Does the Zhyper client work with any season?

No. The client must be exactly the one that ships with that Zhyper release (same season and revision). A client from a different season causes a connection error, a crash at login or invisible items. Always use the client from the package itself.

Why does the GameServer close by itself when I open it?

Almost always it is an unrestored database, wrong IP/port in the config files, or the DataServer not being open first. Check in this order: databases restored, DataServer running, matching IPs across every .dat/.ini, and free ports.

BR
Events, maps & items editor

Bruno specializes in MU Online events, maps, bosses and item economy. He documents every detail based on real gameplay.

Keep reading

Related articles