๐จ Client UI & Regional Customization Guide
Because we successfully proxy the clientโs network traffic and control the launch arguments, we have immense power over the in-game User Interface (UI), region locking, and localization without ever needing to hack the game's actual executable file.
Here are all the direct UI and client customizations you can control from your server and launcher:
1. ๐ Region Unlocking & Custom Server Lists
Games like MU Origin 3 use different regional clients (China, NA, EU, SEA). The game determines which servers to show on the Login UI by making an HTTP request (e.g., GET /api/serverlist?region=NA).
Because our AuthServer intercepts this request, we control the UI Server Selection Screen entirely.
- Cross-Region Merging: We can configure our AuthServer to return a custom JSON payload that combines NA, EU, and China servers into one massive server list.
- Custom Categories: We can create new tabs in the UI (e.g., "Season 1", "High Rate Test", "Tournament Realm") simply by structuring the JSON categories correctly.
- Status Colors: We dictate whether a server says "Hot", "New", "Maintenance", or "Full" by altering the
statusinteger in our API response. The game's UI will instantly color-code the server dots based on our data.
2. ๐ค Localization & Culture Injection (Unreal Engine)
You can force a Chinese client to load English text, or vice versa, by injecting Unreal Engine localization flags into the launcher.
By adding these flags to your launcher's execution string, you can override the UI language instantly:
-CULTURE=en-US(Forces North American English)-CULTURE=zh-CN(Forces Simplified Chinese)-CULTURE=es-ES(Forces Spanish)
Note: This only works if the target language files (.locres) are present in the client's Content/Localization folder.
3. ๐ฅ๏ธ UI Scaling and Engine .ini Overrides
Mobile-to-PC ports often have terrible UI scaling on 4K monitors (huge buttons, blurry text). We can write a C# script in the launcher to automatically overwrite the GameUserSettings.ini and Engine.ini files before the game boots.
Customizations we can force via .ini:
r.ScreenPercentage=150(Supersamples the 3D world, making it crystal clear, while keeping the UI at native resolution).bEnableMouseSmoothing=False(Removes the terrible mobile "drag" feeling and makes PC mouse look 1:1).t.MaxFPS=144(Unlocks the game's framerate, replacing the hardcoded 60FPS mobile cap).
4. ๐ฐ Hijacking the In-Game WebViews (Notices & Cash Shop)
Most modern MMOs use embedded Chromium browsers (WebViews) to render the "Daily Login Events", "Patch Notes", and the "Cash Shop".
When the player clicks "Cash Shop", the UI is actually opening a webpage like https://shop.ourpalm.com/mu3/na.
- The Override: Because our launcher sets the
HTTP_PROXY, we can route that URL tohttp://127.0.0.1:8080/shop. - The Customization: You can build a custom HTML/React Cash Shop or GM Dashboard and serve it directly inside the game's UI. You can put your own server rules, Discord links, and custom item malls right into the native game window.
5. ๐ฆ UI Asset Modding (The "Patch Pak" Method)
If you want to change the actual images (e.g., removing the Ourpalm logo on the title screen) or change hardcoded item names, you use Unreal Engine's Patch Pak system.
- You extract the original game files using the
DataExtractortool we built earlier. - You edit the PNG files (Logos, UI frames, Button colors) or the
gametext.locres(changing the name of "Blood Castle" to "Death Match"). - You pack these edited files into a new archive named
MU3-WindowsNoEditor_99_P.pak(the_Pstands for Patch). - You drop it in the
Paksfolder. Unreal Engine automatically loads Patch paks last, overwriting the official UI assets in memory with your custom ones.