UPDATE (02/20/2024) - OrionAlpha now serves as a multi-purpose beta emulator with support for KMS v1.21, KMS v1.23, and JMS v0.20. As more beta clients get found, I'll try my best to add support for each of them.
OrionAlpha has been one of my favorite projects in MapleStory development by far. After I had found these old closed alpha videos, it was the one client of the game I really wanted to play around with. Luckily for me, a client somehow managed to exist!
This emulator was written from scratch with help from sunnyboy and Arnah -- and unlike other emulators here, this one is designed to replicate the structure of Nexon's official source files. While I didn't have the patience to build this into a truly multi-JVM environment, it's not too hard to convert because we already make use of it.
So, what makes KMS 1.23 different? Here's some interesting stuff:
The implementation for OrionAlpha is pretty much complete. With less than 100 opcodes that even exist in the client, all are implemented. Database operations, game functionality, cash shop functionality, etc. is all there. We use Nexon's standard for Field handling through use of FieldSplits. All packets are only sent to users within your split, not to the map. This is how users migrate between splits, making it look like they've left the map when they are out of range on your mini map. We also use Nexon's standard for Life handling as well. With the use of a HeapBase, we have 100% GMS-like controllers (how NPCs and Mobs aggro to your character), as well as the calculations to overall mob capacity. Throughout the entire source our names, functions, and class structure have all been based on Nexon's official server files and resources. If you ever need to update packets (or find them) in client PDB's and match it to ours, you will always find them in the exact same places -- easy to update, easy to maintain. Think of OrionAlpha as a modified barebones version of Orion -- I took most of the systems from Orion to use them here. Speaking of Orion, we are relaunching in 2020 -- feel free to visit us on
This doesn't mean OrionAlpha is perfect, it's far from it. Unfortunately, we never got around to fixing any bugs we overlooked or finished some behind the scenes features either. A lot remains that I had wanted to rewrite (our JVM architecture, DB handling, and data file loading), but never got around to it. I've also decided not to implement Orion's full damage calculations (CalcDamage) into this by a request. In regards to missing content, the only thing that's missing in OrionAlpha is the same thing that's missing in Orion -- my worst enemy, scripts! I've went around and modeled them for anyone who wishes to script them further. Every script has been documented and started. Since we weren't aware of how quests had worked (assumed they hadn't existed yet), we never wrote a backend implementation for them.
So, setting up OrionAlpha.. Well, if you know how to configure Nexon's official server files (hehe hi Darter xd), then setting up our server will be very easy! To make it easier, I've already included all the files you'll need along with all of the possible properties. If you intend to make a public server, all you'll need to do is change the IP configuration (and any other setting for rates, etc). Don't worry -- I've documented all of this on the git for your ease! All we recommend is that you have JDK 11 (or higher) installed. You will need to compile the source with an IDE (we prefer IntelliJ, but Eclipse or NetBeans works too). Finally, you will need a MySQL client. I just use the old MySQL Query Browser and refuse to change, but you can use whatever you like as long as it can create a new schema and execute queries.
Speaking of the git, here is all you need for OrionAlpha:
Since I'm basically the client hacker guy around here, what good is OrionAlpha without client edits? I've documented all of the client edits available for OrionAlpha on the git as well -- this explains what the edits do, their addresses in the client, and what to change them to. The following client hacks are available:
I believe that is all. Everything you need can be found on the git. I've included the full game client, my personally named IDB for whatever I used it for, and even LocaleEmulator so that you can view the text outside of broken ASCII (do remember, this is a Korean beta!)
Screenshots:
Merry Christmas,
Eric
OrionAlpha has been one of my favorite projects in MapleStory development by far. After I had found these old closed alpha videos, it was the one client of the game I really wanted to play around with. Luckily for me, a client somehow managed to exist!
This emulator was written from scratch with help from sunnyboy and Arnah -- and unlike other emulators here, this one is designed to replicate the structure of Nexon's official source files. While I didn't have the patience to build this into a truly multi-JVM environment, it's not too hard to convert because we already make use of it.
So, what makes KMS 1.23 different? Here's some interesting stuff:
Code:
- This client is so old that no protection had even existed yet. No security or antihack whatsoever.
- This is the only MapleStory client without any AES or Shanda encryption. In fact, this uses it's own special XOR encryption that does not exist in any other client I've found.
- StringPool did not exist yet. All strings are hard-coded directly into the application.
- Unlike GMS clients, this is truly the only 2nd job client out there. Other clients have 3rd job stuff implemented, even if it didn't exist for a long time.
- Character emotions do not exist yet. Functional keys (F1~F12) do nothing. Originally these keys were used for actions, before Nexon updated them. An emotion for Vomit exists, but is not functional in the client yet.
- Key configuration does not exist yet. All character keys are hard-coded. This means CTRL is attack, ALT is jump, Z is loot, and M is minimap.
- Party, Buddy, and Guild all do not exist yet. This was implemented in the earliest stages of GMS clients, but not here.
- Quests do not exist yet (technically). A UI window for them shows up in the system menu, but it's hard-coded to be disabled. No quest functionality regarding packets exist, so everything is NPC-based. Almost all NPC's in the game that are scripted are solely "scripted" because they are quests. Even so, in the game files there script property is defined through the key "quest" (later changed to script).
- Cash Items are ETC and USE items. This was still a thing in old GMS clients, but quickly changed.
- This is the only client to include Wizet's original Login UI. It features completely different login panel, world select, character select, and even creations. In fact, a few versions after this the UI was changed to the one you see in all other future versions.
- NPC shop data came directly from NPCs in the game files
- Names and descriptions exist on entities in the game files, not String.wz.
- This is one of the few clients to include Wizet's original hexagonal UI (my personal favorite).
- This client is one of the first (if not the first) to include the Cash Shop system. The UI hasn't changed much.
- Almost all other game UI is unique here, such as Trading too.
- In future versions of MapleStory, all old UI elements from this client are included in the WZ files. Nexon never removed these (or updated) elements. Furthermore, Mini Game UI's and stuff were based from this client's UI before the redesign.
- Plenty more nostalgia facts that I'm probably missing here, but you get it -- this version is unique!
The implementation for OrionAlpha is pretty much complete. With less than 100 opcodes that even exist in the client, all are implemented. Database operations, game functionality, cash shop functionality, etc. is all there. We use Nexon's standard for Field handling through use of FieldSplits. All packets are only sent to users within your split, not to the map. This is how users migrate between splits, making it look like they've left the map when they are out of range on your mini map. We also use Nexon's standard for Life handling as well. With the use of a HeapBase, we have 100% GMS-like controllers (how NPCs and Mobs aggro to your character), as well as the calculations to overall mob capacity. Throughout the entire source our names, functions, and class structure have all been based on Nexon's official server files and resources. If you ever need to update packets (or find them) in client PDB's and match it to ours, you will always find them in the exact same places -- easy to update, easy to maintain. Think of OrionAlpha as a modified barebones version of Orion -- I took most of the systems from Orion to use them here. Speaking of Orion, we are relaunching in 2020 -- feel free to visit us on
To view the content, you need to sign in or register
!This doesn't mean OrionAlpha is perfect, it's far from it. Unfortunately, we never got around to fixing any bugs we overlooked or finished some behind the scenes features either. A lot remains that I had wanted to rewrite (our JVM architecture, DB handling, and data file loading), but never got around to it. I've also decided not to implement Orion's full damage calculations (CalcDamage) into this by a request. In regards to missing content, the only thing that's missing in OrionAlpha is the same thing that's missing in Orion -- my worst enemy, scripts! I've went around and modeled them for anyone who wishes to script them further. Every script has been documented and started. Since we weren't aware of how quests had worked (assumed they hadn't existed yet), we never wrote a backend implementation for them.
So, setting up OrionAlpha.. Well, if you know how to configure Nexon's official server files (hehe hi Darter xd), then setting up our server will be very easy! To make it easier, I've already included all the files you'll need along with all of the possible properties. If you intend to make a public server, all you'll need to do is change the IP configuration (and any other setting for rates, etc). Don't worry -- I've documented all of this on the git for your ease! All we recommend is that you have JDK 11 (or higher) installed. You will need to compile the source with an IDE (we prefer IntelliJ, but Eclipse or NetBeans works too). Finally, you will need a MySQL client. I just use the old MySQL Query Browser and refuse to change, but you can use whatever you like as long as it can create a new schema and execute queries.
Speaking of the git, here is all you need for OrionAlpha:
To view the content, you need to sign in or register
Since I'm basically the client hacker guy around here, what good is OrionAlpha without client edits? I've documented all of the client edits available for OrionAlpha on the git as well -- this explains what the edits do, their addresses in the client, and what to change them to. The following client hacks are available:
Code:
* Multi Client
* Window Mode
* Custom Resolution
* Repeating Chat Bypass
* Chat Spam Bypass
* Infinite Chat Text
* Swear Filter
* Remove Nexon ADs
* Droppable NX
* Custom Damage Cap
* Custom Meso Cap
* Admin Client Restrictions Bypass
I believe that is all. Everything you need can be found on the git. I've included the full game client, my personally named IDB for whatever I used it for, and even LocaleEmulator so that you can view the text outside of broken ASCII (do remember, this is a Korean beta!)
Screenshots:






Merry Christmas,
Eric
Last edited: