How to Set Up a Custom Minimap in the MU Client
Learn how to create, convert, and register a custom minimap in the MU Online client — from the base art to positioning icons for NPCs, portals, and hunting spots.
The minimap is one of the most underrated interface elements in the MU Online client, but also one of the most effective at raising the perceived quality of a private server. When a player opens the orientation panel and sees the correct map layout, with well-placed icons for NPCs, portals, and hunt
The minimap is one of the most underrated interface elements in the MU Online client, but also one of the most effective at raising the perceived quality of a private server. When a player opens the orientation panel and sees the correct map layout, with well-placed icons for NPCs, portals, and hunting spots, the experience changes completely. This tutorial covers the full process — from preparing the base art to converting it to MU's internal formats, registering the icons, and validating the scale — so that your minimap lines up with the real coordinates the server sends to the client. It's advanced work because it involves image conversion, the tile coordinate system, and, on some clients, editing poorly documented configuration files.
Before you start, keep in mind that almost every client customization assumes you already have a running server and a compatible client in hand. If you're still building the base, start with the guide on how to create a MU Online server and come back here once you have a working client pointing at your server.
Prerequisites
Gather the environment before touching any file. Missing a single tool usually stalls the process halfway through.
- A MU client compatible with your server's season, already tested and connecting normally.
- An image editor — GIMP (free) or Photoshop, to draw and adjust the map layout.
- A MU image converter (MU Image Converter / OZJ-OZT Tools) to turn
.png/.jpginto the internal.ozjand.oztformats. - A code text editor — Notepad++ or VS Code, to edit the minimap's icon definition files.
- A coordinate-capture tool — the GM command
/posor the client's position overlay, to find the exact coordinates of NPCs and portals. - A full backup of the client folder before you start. Create an
_original/folder and copy everything you'll modify there.
.ozj conversion can leave the minimap panel with a black background for all players. Always edit a copy and validate before packaging.How the minimap works in the client
MU's minimap panel combines three independent layers that the client overlays in real time:
- The map's base art — a static image that represents the layout of that world (Lorencia, Devias, Noria, etc.), stored in MU's internal format.
- The character marker — an icon the client draws dynamically by converting the player's tile coordinate (X and Y from 0 to 255) into pixels within the art.
- The points-of-interest icons — NPCs, portals, shops, and spots defined in a configuration file, each with an icon type and a tile coordinate.
The critical part to understand is the coordinate system. Every map in MU is a 256×256 tile grid. The server always speaks in those coordinates. When the client draws the marker, it does simple cross-multiplication: pixel_x = (tile_x / 256) * art_width. If your art doesn't cover exactly the same logical area the server uses, the icons end up misplaced. That's why the image's dimensions and framing matter so much — more than how pretty the drawing is.
Minimap file structure
The exact location varies by season/client, but the typical layout follows this pattern:
MUClient/
├── Data/
│ └── Local/
│ ├── MiniMap/ ← minimap art per world
│ │ ├── MiniMap0.ozj ← Lorencia (world 0)
│ │ ├── MiniMap2.ozj ← Devias (world 2)
│ │ ├── MiniMap3.ozj ← Noria (world 3)
│ │ └── ...
│ └── MiniMapInfo.txt ← icon definitions (name varies)
├── Interface/
│ └── minimap_frame.ozt ← panel frame/border
└── Main.exe
Data/Interface/ or is numbered differently (for example map_00.ozj). Use the conversion tool to open the existing files and identify which index corresponds to which map before overwriting.Step 1 — Prepare the map's base art
The art needs to faithfully represent the world's navigable area. The most reliable approach is to start from the game's own layout:
- Enter the map with a GM character and enable the wide-view mode, or use a full map capture from that season's community.
- In the image editor, build the layout on a square canvas (for example 256×256 or 512×512 pixels) — MU's minimap assumes a 1:1 ratio with the tile grid.
- Align the drawing so the bottom-left corner represents tile (0,0) and the top-right corner represents tile (255,255). MU's Y axis is inverted relative to the image, so plan for that from the start.
- Give the background a solid color or a dark texture, and draw the paths, obstacles, and water/wall regions with good contrast.
- Export as
.jpgat 90% quality (art without transparency) or.png(if you'll use.oztwith an alpha channel).
Dimension reference table
| Element | Recommended dimension | Format | Note |
|---|---|---|---|
| Map base art | 256×256 or 512×512 | .ozj | 1:1 ratio required |
| Art with transparent borders | 256×256 | .ozt | Uses an alpha channel |
| Panel frame | Varies by season | .ozt | Overlaid on the art |
| NPC/portal icon | 8×8 to 16×16 | .ozt | Small sprite with alpha |
Step 2 — Convert to MU's internal format
The client doesn't read .png/.jpg directly for the minimap. Convert the final art:
- Open the MU Image Converter.
- Drag your
.jpgart into the window and select.ozjoutput (no transparency) — or.pngfor.oztoutput (with alpha). - Click Convert and check that the generated file has a sensible size (a corrupted
.ozjusually comes out at just a few bytes). - Rename it to exactly the index the client expects, for example
MiniMap2.ozjfor Devias. - Copy it into the client's minimap folder.
# PowerShell — quickly validate that the converted files exist and have a size
Get-ChildItem "MUClient\Data\Local\MiniMap\*.ozj" |
Select-Object Name, @{Name="KB";Expression={[math]::Round($_.Length/1KB,1)}}
.ozj comes out under 1 KB, there was almost always a conversion failure or the source image had an incompatible color profile. Re-export the .jpg as 8-bit RGB, with no embedded ICC profile, and convert again.Step 3 — Register the NPC and portal icons
This is where the minimap stops being just an image and becomes a navigation tool. The icons are defined in a text file that associates world + coordinate + icon type. The exact syntax varies by client, but the conceptual pattern is constant:
// MiniMapInfo.txt (illustrative format — varies by season/client)
// World X Y IconType Description
2 123 110 1 "Weapon Shop"
2 180 95 2 "Portal to Dungeon"
2 207 50 3 "Quest NPC"
0 135 128 4 "Safe Zone / Spot"
The step-by-step to fill it in accurately:
- Enter the map with a GM character.
- Walk up to each NPC or portal and use the
/poscommand (or the coordinate overlay) to read the exact tile X and Y. - Note the coordinate and pick the matching icon type from your client's type table.
- Add one line per point of interest, always with the correct world index.
- Save the file as ANSI/UTF-8 without BOM — some clients don't parse the BOM and ignore the whole file.
Common icon types
| Code | Typical icon | Common use |
|---|---|---|
| 1 | Shop | Trade NPCs (weapons, potions) |
| 2 | Portal | Warp between maps |
| 3 | Quest | Mission or event NPC |
| 4 | Spot | Recommended hunting point |
| 5 | Boss | Boss spawn location |
Step 4 — Adjust the frame and the panel position
The frame that wraps the minimap is a separate .ozt, with transparency, overlaid on the art. To give it your server's identity:
- Convert
minimap_frame.oztto.png. - In the image editor, redraw the border with the server's colors/logo, keeping the transparent areas exactly where they were.
- Reconvert to
.oztand replace it. - The panel's on-screen position is usually fixed in the client; on clients that expose it, the setting lives in an interface
.ini— the field and whether it exists at all vary by season/client.
Step 5 — Validate scale and positioning
This is the test that separates a professional minimap from an amateur one. Never rely on static appearance alone.
- Enter the map with your character and open the minimap (M or Tab key, depending on the season).
- Go to a known reference point — for example, an NPC's doorway — and check whether the character marker lands exactly on that NPC's icon in the panel.
- Walk to the four extreme corners of the navigable area and confirm that the marker reaches the edges of the art without "spilling" over or stopping too early.
- If the marker is consistently offset horizontally or vertically, the problem is the art's framing (it doesn't cover 0–255 on both axes). If it's mirrored, it's the inverted Y axis.
Common errors and fixes
| Error | Likely cause | Fix |
|---|---|---|
| Panel opens with a black background | Corrupted .ozj or wrong world index | Reconvert the art and check the file's name/number |
| Character marker offset | Art doesn't cover the 0–255 grid or ratio isn't 1:1 | Reframe the art on a square canvas, aligned to the tiles |
| Minimap mirrored vertically | The image's Y axis wasn't inverted | Flip the art vertically in the editor |
| Icons don't appear | Definition file has a BOM or wrong syntax | Save as ANSI/UTF-8 without BOM and review the columns |
| Icons in the wrong place | Coordinates captured in another map/world | Recapture with /pos inside the correct world |
| Frame covers part of the map | The .ozt's transparent areas were filled in | Redo the frame preserving the alpha channel |
Launch checklist
- Backup of the original client folder made in
_original/ - Base art created at a 1:1 ratio and aligned to tiles 0–255
- All
.ozj/.oztconverted and of a sensible size (> 1 KB) - File indexes matching the correct world for each map
- NPC and portal icons registered with coordinates captured via
/pos - Definition file saved without a BOM
- Four-corner calibration test passed
- Character marker lands exactly on reference points
- Custom frame applied with transparency preserved
- Client tested on at least three different maps
- Client repackaged and the verification hash updated
With the minimap calibrated and the icons in place, your server gains a layer of polish that most competitors ignore. The secret is to always treat the art as a faithful projection of the tile grid — when the scale is right, everything else falls into place naturally, and you can reuse the same process for any new custom map you add in the future.
Frequently asked questions
What is the minimap in the MU client?
It's the orientation panel shown in the corner of the screen (usually opened with the M or Tab key) that displays the current map's layout, the character's position, and icons for NPCs, portals, and points of interest.
Does every map need its own minimap image?
Yes — each map (world) has its own minimap art, usually named by a numeric index. Maps with no associated art show up with a black background or won't open the panel at all.
Does a custom minimap affect other players?
No. The art and the configuration live in each player's client. You distribute the client with the files already included, and everyone who downloads it gets your server's minimap.
Do I need to edit Main.exe to change the minimap?
On most seasons, no — the art lives in external files (.ozj/.ozt) and the icons are defined in the client's text files. An offset in Main is only needed on clients that embed the resource, which varies by season/client.
Why does my minimap look stretched or off-scale?
Almost always it's a wrong image dimension or a ratio that doesn't match the map's playable area. The minimap has to cover the same tile coordinates (0–255) the server uses for that world.