Brazil's biggest MU Online portal — since 2003
Tutorial Intermediate Client

How to customize the crosshair and cursor in the MU Online client

Learn how to customize the crosshair and cursor in the MU Online client: textures, scale, per-class color, mouse sensitivity, and rolling out the change via the launcher without triggering the anti-cheat.

GA Gabriel · Updated on May 24, 2025 · ⏱ 13 min read
Quick answer

The crosshair (cursor) is one of the simplest interface elements to customize in the MU Online client, but it's also one that has the biggest impact on how "polished" the server feels — an ugly, misaligned cursor, or one with the wrong visual hitbox, makes the game look amateurish even behind a tech

The crosshair (cursor) is one of the simplest interface elements to customize in the MU Online client, but it's also one that has the biggest impact on how "polished" the server feels — an ugly, misaligned cursor, or one with the wrong visual hitbox, makes the game look amateurish even behind a technically flawless server. In this tutorial you'll learn where the cursor texture files live, how to swap the image, adjust scale and color, tie the cursor to the character's class, test mouse sensitivity, and roll out the change to every player without triggering a false positive in the anti-cheat.

What makes up the cursor in the client

In the MU client, the crosshair is normally a 2D texture (OZT/OZJ format, sometimes raw TGA before packing) drawn at the mouse position every frame, with an offset that visually centers the "click point." There are usually two states: the normal cursor (idle/walking) and the attack/target cursor (when the pointer hovers over an attackable monster or player, often changing color — e.g., white for neutral and red for hostile). Understanding these two states matters because replacing only the "normal" texture leaves the combat cursor looking outdated.

Prerequisites

  • A working MU client and a server already running.
  • An image editor that exports TGA/PNG with an alpha (transparency) channel.
  • A conversion/packing tool for OZJ/OZT matching your client (varies by season).
  • A launcher/patcher configured to distribute new files.
  • A backup of the client's Data/Interface/ folder before making any change.

Locating the cursor files

Exact names vary by season and by custom client, but the most common convention is:

FileFunction
Data/Interface/Cursor.OZT (or .OZJ)Cursor texture in normal state
Data/Interface/CursorAttack.OZTCursor texture over an attackable target
Data/Interface/CursorTarget.OZT"Target lock" texture (some seasons)
Client.exe / interface moduleCursor position and scale offsets

If your client was customized by a third party, search for strings like Cursor or Crosshair inside Data/Interface/ before assuming the names above are correct.

Step 1 — Extract and open the current texture

Use your client's unpacking tool to extract Cursor.OZT as a size/format reference. Note the exact resolution (usually 32x32 or 64x64 pixels) — the new cursor must match that ratio, or it will appear stretched or clipped inside the interface.

Step 2 — Create the new cursor artwork

Draw the new cursor in an editor with alpha channel support, keeping:

  • A fully transparent background outside the cursor's shape.
  • A clear "focal point" (a cross, circle, or dot) aligned to the center of the canvas, since that center is what the client uses as the click point.
  • Enough contrast to stay visible on both bright maps (Noria) and dark ones (Dungeon, Kanturu).

Export as 32-bit TGA (with alpha) before converting to the client's final format.

Step 3 — Pack it into the client's format

Convert the TGA to OZT/OZJ using your client's packing tool, keeping the same file name as the original texture (or a new name, if you're also editing the references in the executable). Replace the file inside Data/Interface/ on a test client, never directly on the production client.

Step 4 — Adjust scale and offset

If the cursor appears too big, too small, or offset from the actual mouse pointer, the fix lives in one of two places:

[Cursor]
Scale = 1.0
OffsetX = 0
OffsetY = 0

On clients that expose this setting via an interface file, adjust Scale in increments of 0.1 until the size looks natural. On clients without that file, the offset is usually hardcoded in the executable and requires resource editing (out of scope for this basic tutorial — in that case, just make sure the artwork is already centered).

Step 5 — Tie color/state to target type

To tell a neutral cursor apart from a combat cursor, keep both textures (Cursor.OZT and CursorAttack.OZT) with the same shape skeleton, changing only the dominant color — for example, white/gray for neutral and red for an attackable hostile. This preserves the player's instant visual read without requiring new client logic.

Step 6 — Per-class customization (optional)

Some servers give each class a themed cursor (e.g., a star-shaped cursor for Dark Wizard, a cross for Dark Knight). This requires extra client logic to swap the loaded texture based on the active character's class — usually a simple switch in the interface module that already checks the class for other HUD elements (skill bar, character icon). Without access to the client's source code, this step is limited to open-source clients or ones with developer support from the emulator team.

Step 7 — Adjust perceived sensitivity

Cursor "sensitivity" in MU is normally the operating system/mouse's own sensitivity, not something configured in the game. Still, the cursor's size and offset affect how precise it feels to the player: overly large cursors cover the target and get in the way of precise PvP clicks; overly small ones are hard to read at high resolutions. Test at least two resolutions (e.g., 1024x768 and 1920x1080) before locking in the final size.

Step 8 — Package and distribute via the launcher

  1. Copy the new files into your launcher/patcher's update folder.
  2. If the launcher does hash-based integrity checks, update the manifest to include the new files.
  3. Publish the update and monitor the support channel for crash reports or missing-cursor reports.
  4. Keep the old files versioned so you can roll back quickly if something breaks.

Step 9 — Test in game

Log in with a test account and confirm: the cursor renders correctly over the scenery, changes state when hovering over a monster, keeps its proportions across different resolutions, and shows no visible background rectangle (a sign of a poorly exported alpha channel).

Common errors and fixes

SymptomLikely causeFix
Cursor shows a square backgroundAlpha channel not exported in the TGARe-export with real transparency, not just a background color
Cursor offset from the actual clickOffset/scale not adjustedFix OffsetX/OffsetY or recenter the artwork
Cursor doesn't change over monstersCursorAttack.OZT not replacedAlso update the attack-state texture
Client crashes loading the interfaceCorrupted OZT/OZJ packingRepack with the correct tool for your season
Players still see the old cursorLauncher didn't distribute the fileConfirm the patcher's hash/manifest

Customization checklist

  • Original cursor dimensions and format identified.
  • New artwork created with alpha channel and centered focal point.
  • File packed in the correct format (OZT/OZJ) and tested on an isolated client.
  • Scale and offset adjusted and validated at two resolutions.
  • Attack state (CursorAttack) also updated.
  • Distribution done via the launcher with an updated manifest/hash.
  • Full in-game test with no crashes or visual artifacts.

With the custom cursor live, the natural next step is reviewing the rest of the HUD (health, mana, and skill bars) to keep the same visual identity across the whole client — and if your server still doesn't have this client base published, it's worth revisiting the server creation tutorial to make sure update distribution is correctly configured.

Frequently asked questions

Is a custom crosshair considered cheating?

No, as long as it's a purely visual change made in the client's official files and distributed through the server's own launcher. The problem arises when a player uses external injection (a third-party DLL) to overlay a crosshair — that's what the anti-cheat should block.

Can each class have a different crosshair?

Yes. Since the texture is loaded through an interface identifier, you can swap the texture dynamically based on the logged-in character's class, using the same logic the client already uses for class-specific HUDs (DL, Elf, etc.).

Does changing the crosshair affect the hitbox or attack range?

No. The crosshair is purely cosmetic — it indicates where the click will land on screen, but range and collision calculations stay on the server side and within the class's attack radius. You can make the cursor huge without gaining any real advantage.

Do I need to recompile the client to change the cursor?

Usually not. In most MU clients the cursor texture is loaded from an external file (OZJ/OZT/TGA) referenced by an index; replacing the file is enough. Recompiling is only needed if you want new logic (e.g., a cursor that changes color depending on the target).

How do I make sure every player gets the new cursor?

Roll out the update through the server's launcher/patcher, including the new texture file in the update package and, if your launcher does integrity checks, updating the corresponding hash/manifest.

GA
Guides & builds editor

Gabriel covers gameplay, class builds, PvP and progression. He tests every strategy on a live server before publishing.

Keep reading

Related articles