Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

The Best v62 MapleStory Emulator - ArgonMS

Initiate Mage
Joined
Sep 2, 2018
Messages
2
Reaction score
1
Hi,

This source was built from scratch from the ground up by @GoldenKevin. Some of you might know him from the legendary KryptoDev forum or from his KiniroMS source.

Anyway. This is a v62 non-odinms based emulator that was made back in 2011 I believe with the latest revision being updated back in 2013 and has been open-source ever-since. I'm surprised no one has picked this up, forked it or even acknowledged this piece work.

I also believe this was the first if not one of the first publicly made from scratch source after OdinMS/Titan besides Vana. I've been following this source for quite sometime now and had my own fork which I unfortunately don't have access to anymore.

I suggest everyone to move on this as I believe is truly is the best v62 source out there. I'll list a couple of cool things about this below:

  • Uses Binary WZ and has support for MCDB (2.0) which means it doesn't have the awful overhead of XML/WZ parsing. The server takes less than a few ms to completely be loaded.
  • Center Inter-communication based design, GoldenKevin has written his own non-blocking socket operations protocol for networking. So everything interacts with the Center Server. This also means you can literally host each server (Login, Game, CashShop, Center) on different machines and it will communicate with each other remotely. This is the first publicly released (Java?) source to have Center Server communication.
  • Separate Server/Client for each Server,This makes it so each server is as light weight is possible as opposed to OdinMS. Each server has it's own client and character subclass that is solely used for it's server. Ex LoginCharacter & LoginClient for it's LoginServer, GameCharacter & GameClient for it's GameServer etc.
  • Memory and Performance efficient,The main goal for GoldenKevin was to improve the stability and performance that OdinMS lacked and has been able to achieve such through-out his development of this source. It's the most stable v62 source out here atm, probably even more stable than higher versions. It has no memory leaks as far as I've seen. Although keep in-mind he used Java 6-7 around this time so some code might appear "old" but that can all be changed and and refactored by a few clicks on any IDE. Anyway the server can be online for weeks without any issues.
  • Completely New and Efficient Scripting API he has had stateless NPC scripts for quite-some time now and I think everyone should move on to this API. It's way more memory efficient than the OdinMS scripting API especially for events and has no memory leaks (which OdinMS sources still have). Stateless NPC scripts means no more using Status++, or statuses for each new line of code, no more "Start" or "Action" functions as well. I'll shortly release and explain it on another thread. This API has made scripting 1000% more easy and the benefit is it's almost exactly how GMS officially does it.

I'm probably missing more neat and important things above. But here are some features I know of atm.

  • Fully Working GMS-Like Minigames (Has had this done for quite-some time now..)
  • GMS-Like Quests and NPCs (Every Quest/NPC added has been faithful to GMS)
  • Cash Shop (a unique Cash Shop implementation, able to add items under many different flags (HOT, SALE) as well as the ability to block items as well from the CS). Gifting works, Character/Item Inventory upgrading works and Storage.
  • Working Skill (I think almost every skill works, I know a couple that could have issues such as poison mist)
  • Fully Working Pets/MultiPets (And effects and stuff)
  • Nearly Every GMS-Like Boats Fully Working
  • Guilds
  • Trading
  • Unique Anti-Cheat system against Packet Editing and Exploits
  • Fully working Rings and Effects
  • Working Rankings (Login) (Updates accurately and frequently)
  • Proper Character Deletion
  • Fully Working Maple Messenger
  • Most Job Advancement Quests
  • Working Whisper/Buddy etc chats
Possibly more things I'm missing. Anyway aside from a bunch of NPC scripts and main bosses (Zakum, HT) and PQs this can be used to open a stable server. You'll have to also code some things such as megaphones but those can be done fairly easily. I think theres a few minor bugs here and there (easy fixes).

I do believe MapleLegends has referenced this source for their own server judging by the fact it has quite some similar things. ArgonMS was developed between 2011-2013ish. I think ML came out 2014ish. So who knows.

It'll take some time to get used to the way this source is structured but its best people start steering away from OdinMS and just use this as it fixes many problems OdinMS based sourced have till this day.

Anyway source:
GitHub:
Direct Download:

Binary WZ (Wz to Bin) Converter:
GitHub:
Direct Download:

The binary data format ArgonMS uses is KVJ (GoldenKevins own binary data format). Which can easily be updated to have more properties when updating versions. Fairly similar to updating packets. Also for those who wish to stick to their OdinMS Sources you can easily convert to KVJ bin format rather than use XML/SQL.

Anyway, take use of this great emulator and have fun.

Major Credits goes to GoldenKevin for this!

Tiger~
 
Last edited:
Joined
Aug 10, 2008
Messages
858
Reaction score
516
Tigerr - The Best v62 MapleStory Emulator - ArgonMS - RaGEZONE Forums
 
Newbie Spellweaver
Joined
Dec 25, 2015
Messages
8
Reaction score
1
>he has had stateless NPC scripts for quite-some time

This is dope. I was trying to do this around almost a year ago but there wasn't a nice way to use continuations if you're on the latest jdk. Had no idea rhino had continuations all along.
 
Newbie Spellweaver
Joined
Dec 7, 2015
Messages
68
Reaction score
2
I would like others opinion on this server for those that have set it up.

How is the accuracy? Do quests and party questing work fine? Do all NPCs work just fine?

I was following another v62 server development but unfortunately it went radio silence for several months. Thank you for making this possible.
 
Initiate Mage
Joined
Mar 6, 2020
Messages
4
Reaction score
0
I tried this source,i think it is surely the best one in performance and some other part npc quest etc..,but it has some problems,the sql script "account"table lack three col ,this is easy to fix and i fixed it. another problem i occoured is the map 104000000

. cannot go into it , i cannot find the reason ,other maps is perfect except Lith Harbor,can some one fix it...and tell me .
 
Newbie Spellweaver
Joined
Nov 28, 2007
Messages
99
Reaction score
0
I finally gave this source code a try.
After some trial and error, I finally logged into the game.
cashshop is not working due to missing columns in the database. Tigerr can you show me how did you get cash shop working ?

Code:
May 23, 2020 8:43:20 AM argonms.shop.character.ShopCharacter loadPlayer
WARNING: Could not load character 1 from database
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'a.paypalnx' in 'field list'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2683)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2144)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2310)
    at argonms.shop.character.ShopCharacter.loadPlayer(ShopCharacter.java:420)
    at argonms.shop.net.external.handler.EnterShopHandler.handlePlayerConnection(EnterShopHandler.java:49)
    at argonms.shop.net.external.ClientShopPacketProcessor.process(ClientShopPacketProcessor.java:39)
    at argonms.shop.net.external.ClientShopPacketProcessor.process(ClientShopPacketProcessor.java:32)
    at argonms.common.net.external.ClientListener$3$2.run(ClientListener.java:174)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
 
Newbie Spellweaver
Joined
Oct 30, 2020
Messages
7
Reaction score
1
This seemed like a good v62 source to get my feet wet (plus I think the architecture and server IPC is neat). It took a bit to figure out how to get everything set up since build instructions are missing. I added maven and docker configuration to make it easier to build and modify. My fork at this tag has the relevant changes: Run `docker-compose up` to get into a running state with a default account (username: testing, password: testing).

I used the clean v62 localhost client from this thread to dump and compile the wz into the kvj binary format. I also also had to replace `127.0.0.1` with `localhost` with a hex editor so it would stop crashing on boot. I recommend windowing the client by default (set address 008276B2 to MOV EAX, 0) and removing the ads on exit (set address 007C66E3 to NOP).
 
Junior Spellweaver
Joined
Sep 14, 2006
Messages
158
Reaction score
15
This seemed like a good v62 source to get my feet wet (plus I think the architecture and server IPC is neat). It took a bit to figure out how to get everything set up since build instructions are missing. I added maven and docker configuration to make it easier to build and modify. My fork at this tag has the relevant changes: Run `docker-compose up` to get into a running state with a default account (username: testing, password: testing).

I used the clean v62 localhost client from this thread to dump and compile the wz into the kvj binary format. I also also had to replace `127.0.0.1` with `localhost` with a hex editor so it would stop crashing on boot. I recommend windowing the client by default (set address 008276B2 to MOV EAX, 0) and removing the ads on exit (set address 007C66E3 to NOP).

This source is awesome. Im using your modified repo with docker support. Works like a charm. I used the master branch instead of the 0.0.1 one. Only had one issue where the game and shop could not connect to the center server.

I changed ARGONMS_GAME_0_HOST and ARGONMS_SHOP_HOST to ARGONMS_HOST in docker-compose.yml

Thanks for this release!
 
Back
Top