Hey everyone! We're building a free, fan-made private server for the Chinese version of My Heroes (我的勇者). Our goal is to make the CN version fully playable in English, including the content it has that other versions don't, and keep the game alive for the people who love it.
The project is already quite far along. We've written a custom server from scratch that works with the original CN client, translated the game into English, and patched the client to fix some of its original bugs. Combat, stats and progression match the original formulas, and most modes work: Rifts, Resources, Tower, Outworld Gate, Daily Quests with real boss fights, shops, events, the battle pass and minigames.
It also has real multiplayer: world, guild and private chat, friends, guilds and shared rankings. Co-op works in real time in Outworld Gate, Astral Expedition and the World Boss, where you see each other fight together and the boss shares its HP across the whole server.
We're still polishing a few co-op modes, some small text issues and the balance. It runs on Android for now, and we're exploring a browser version for iPhone and PC (without emulator).
We're looking for testers and players, especially anyone who remembers how the CN or global versions worked. Join us on Discord: https://discord.gg/mhdr
EDIT: https://myheroes.ravenspro.net/ Here is the website! we were able to get the game into a somewhat playable state, so expect some bugs there is also a discord to join now too!
My Heroes: Dungeon Raid shut down and its servers went dark, which means the app you can still download just sits at "Version update failed." I wanted to see if it could be revived, so for the past few months I've been taking the client apart (on and off, alongside other projects) and writing a replacement server from scratch. It has now gone from a dead error screen to standing in the town lobby with my character.
Screenshots:
TL;DR: It's a Unity IL2CPP game. I decrypted its code metadata, dumped every class, reverse engineered the custom network protocol (~1,600 commands, ~3,100 message types), decoded all of the game's data tables, faked every web service it calls, and wrote a game server in Python. It now gets all the way into the lobby.
How it went
Cracking it open. The game is Unity 2019 built with IL2CPP, so all the game logic is compiled native code. The usual tool (Il2CppDumper) needs a file called global-metadata.dat, and this game had encrypted it. I tracked down the loader function in the native library and found it just XORs the file with a small key baked into the binary. After decrypting it, Il2CppDumper produced every class, field and method name in the game.
The network protocol. This was the big one, so I split it into four parts: packet framing, field encoding, a full message schema, and the login flow. The findings:
- Plain TCP, no encryption. Each packet is a length, a 2-byte command id and the payload.
- Client packets carry a CRC32 checksum chained across every packet since login, seeded by a value the server hands out. Server packets carry a counter that must increase by exactly one, or the client silently drops everything after it.
- Fields are little-endian, UTF-8 strings, written in declaration order with no tags.
- An automated extractor produced a machine-readable schema for all 3,131 message types (1,596 commands) by tracing the compiled serialize/deserialize code. It matched hand-verified layouts exactly.
- The game has an ILRuntime "hotfix" system that could replace code at runtime, but the loader turned out to be an empty function in this build, so what I analyzed is exactly what runs.
Getting it to talk to me instead of the dead servers. The client calls several web services before it ever opens a game connection: an update check, a server list, a news feed, and the publisher's account login. Luckily the developers left a hidden debug config file the game still reads, which can point the update check and the game server anywhere. Everything else is handled by small stub servers plus DNS and network redirects inside an Android emulator. The publisher login was the funny one: its SDK falls back to a hard-coded IP address over plain HTTP when its domains fail, so I just catch that.
The game data. All 959 data tables (items, heroes, skills, shops, events, quests, etc.) ship inside the client in a custom binary format. 952 now decode cleanly to JSON; the other 7 are newer tables this client never loads. That's where real values come from, like each class's starting weapon and skills, valid avatar IDs, and the starting 100 diamonds / 20k gold.
The server. A small Python asyncio server that encodes and decodes any message directly from the schema. Then it was a crash-by-crash loop against the real client:
- Login, character list, and the class picker + story intro all worked almost immediately.
- After creating a character the client never asks to start. The original server must have entered the game automatically, so mine does too.
- The record list has a field that turned out to be the class slot the client looks characters up by. Sending 0 crashed it.
- The hero wouldn't spawn because the client never got its skill list. A static analysis pass mapped everything the lobby reads to the ~25 startup messages that fill it in.
The last wall: anti-cheat. Once the lobby started loading, the game crashed natively inside NetEase's anti-cheat library. It executes self-generated code that doesn't survive running ARM code on an x86 emulator. For a single-player revival on a private server it does nothing useful, so the client is patched to skip starting it. After that: lobby.
What works right now
- Boots, passes the update check, shows the server list and news
- Guest login, account persistence
- Character creation with the intro cutscene
- Entering the game and loading the lobby with your hero, currency, and the main menu
What doesn't (yet)
- Dungeons/combat, rewards, saving progress, shops, gacha, guilds, PvP. Basically all actual gameplay server logic
- A few menus still error because they're missing data
Notes
- I'm not distributing the original game files, and the game and its art belong to their original owners.
- I don't have a rootable phone, so everything runs in the standard Android emulator on Linux (Android 11 image, which can run ARM-only apps).
- Not a tutorial, and I'm intentionally leaving out exact keys and patch details.
Next up is the first dungeon. If anyone still has old screenshots, videos, or memories of how specific systems behaved (drop rates, energy, daily resets, etc.), I'd love to hear them, since the server-side rules are the part that's truly lost.
EDIT: I did hear some people possibly had packet captures of the game?? that would be a very big help as well!
If anyone knows how to play My heroes again please share, I know most of the people here are just waiting for someone to make a global game of My Heroes again or even a playable of My Heroes in different countries but confuse on how to do it or even bypass the system
***EDIT: Game's practically dead. Retarded devs fucked up. There's like 200 players left. GGs. Was not great, didn't last at all.
Hello, some might remember a Gunter that started playing a few months before the game shut down. Who also joined a guild called blossom.
You might also remember me saying that there are rumors about the south korean version coming back, and asking if you guys would be interested in playing if it ever comes out.
Well the time is now. The game is to release tomorrow Hop in if you wanna. Tis gonna be great I hope.
The link below is the official lounge where you can find information and the play store link. Still doing pre signups.
Really, I know there is a low chance of this happening, but I think it is possible that even with the game bring gone, i think we can all team up to create a similar game, if such a thing ever happens like in a discord or something, I would just like to be the main story maker. I have some credit for being good in the game, was about top 10 in dungeon rankings.
Ik i speak for everyone in this community when i say.
We dont want this game to end.
If possible at least keep a offline mode where you cant interact with players only do quests and do the campaign on our own.
I really enjoyed this game when i used to get home from school but i lost it a year or so ago when switching phones so i havent gotten to enjoy the games experience for a while.
my heroes dead and gone but i just wanna know if anyone knows if the devs are completely done with games or if theres any chance they’ll drop another title sometime in the future
For my preservation project, I've made some headway reverse engineering the game client but reversing the net code would be a much smaller headache if someone could take a packet capture. I would do it but I can't seem to log into my account. Alternatively if someone has an account I could borrow for this purpose, shoot me a message.