So a little backstory to this project. A long time ago, in a virtual galaxy far, far away, an MMORPG was released, developed by Lager Interactive (Thai) and published by GamigoAG.
When the game first released, the level cap was 50. When I started playing, the cap was 140. In the end, the game died with a cap of 215, with a rumored Thai only version cap of 260 including more items, gear, and zones to explore.
Of course, as with any game, I wanted to hack it or cheat in some way. I was never successful while the game was still available.
However, I have a copy of the most recently updated game files, luckily I still had a copy on an old hard drive. I even have a copy of the 140 cap version of the game! When I first started playing, the community was amazing, staff were amazing, and even though the visual aesthetics weren't flashy-flashy, it was the community and content that made it one of a kind
. As the years went by, staff began to neglect the game, the developers over-developed
content and updates, and eventually the community started to evaporate, leaving behind only the most dedicated and hardcore fans. I was one of them. As the final month of the game's life approached, the publisher decided to have a "farewell" party for all the remaining players. Free in-game currency, massive level boosts and plentiful events made for one hell of a time, it also solidified a very fond spot in my heart as I was ultimately forced to accept the game's death as I was disconnected from the server due to it being shut down. They warned us with an in-game message box, a chilling message, "Server shutdown in 1 hour", and man did I party hard till the end. We all did. To be honest, not even breaking up with a girl hurt my heart as much as the "Failed to connect to server" message did when I tried to log in again. Ever since then, I swore I would bring the game back to life, however difficult.
So here we are. Right here. Right now (and however long it takes
I will make this known right now: I'm very determined. I have a decent knowledge of C++ and currently I'm looking in to DirectX development. I want this revamped version to support DX9, 10, and 11, along with OpenGL.
Things to note:
- I have access to all the game content. I've been working at this project for 2 weeks now as of this post and I have made a decent amount of progress. My biggest issues are dissecting the data files and writing the game engine.
- I have all the time in the world, if anyone here would like to help me in this project, it would be much appreciated. I do not know how to program a game server, however, as with learning to develop with DirectX, YouTube and Google are my best friends and I'm not afraid to search thoroughly before I ask.
- I do NOT want to make money off of this project. I want to develop a main server for everyone to connect to, along with a secondary, special "private" server application that allows people to download their character from the main server.
- I also want to develop a single-player mode with a different story line and Easy/Medium/Hard difficulties.
Section for Updates:
May 22 2018 - Including all work done previously:
- Identified file: (.dfm) "Form" file, unknown format, contains mixture of XML/HTML like structures
- Identified file: (.nut) "Squirrel" script file, C++ like syntax, found packed in LPQ files.
- Resources: 1 (.swf) Shockwave Flash file, I've never seen it in-game or during game operation, many (.LPQ) files (seem to be related to LagerPacketOMF.dll), many (.bhl) files (seem to relate directly to LPQ files)
- LPQ files seem to be packed data files, unknown format, in many places the data remains uncompressed and is still readable, Squirrel script can be identified in some places along with XML/HTML-like markup.
- If you corrupt an LPQ file and force-load WE.exe, it creates a crash report dump which reveals file names that could not be loaded. I am still working on creating dumps.
- I have a memory dump of WE.exe where various in-game text, objects, scripts and other data can be identified
- The string table that Cheat Engine creates of WE.exe reveals bits of strings that can be identified within LPQ files.
- When loading WEbug.exe in IDApro and running in a disassembler, various (.nut) files can be identified by name. WEbug.exe is also the debug form of the main WE.exe
- Within the LPQ files, if you look at the data it makes patterns within each line. Various string similarities can be seen such as:
- PlT*µ’! -- Without any data context, it's clear that these 4 distinct lines begin with similar string content (mind you there is much more to each line, those are just the first 7 characters of each line)
- I'm confident in my ability to decode the strings manually, however help would be awesome considering all the LPQ's add up to over 1GB
- There is also an internal "file system" so to speak, with folder roots and branches, which all have respective data, such as LIGHTS\, INTERFACE\, etc as root folders. I'm not fluent enough to understand how one might go about determining how to identify these paths.
May 23 2018
- Upon using PE Explorer and opening Login.exe (game client update application), I found a section identifying (.dfm) script. It seems to be line-based script, images within a (.dfm) are encoded as long strings of numbers. It's not base64 code, but I can't identify it yet. PE Explorer can view them fine and they're easily saved.
- String map of WE.exe while loaded is very useful, however, it doesn't help to have a file name without file data or knowing where I might find the data.
--- End Section ---
*** THIS IS A C++ PROJECT ***
I will be glad to share game data files/custom source files for research over some platform like Steam (preferred). PM me for my information.
Well, I hope this project gets rolling as quick as possible. I'm utterly DYING
with heartache to play this game again and I'd love to make anyone that helps part of the admin team
Thank you for reading my project!
*** I JUST FOUND A CHINESE WEBSITE HOSTING THE GAME FILES + SERVER + OPEN REGISTRATION ***
*** IM SO HAPPY RIGHT NOW YOU GUYS DON'T EVEN UNDERSTAND ***