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!

[Development] MUnique OpenMU C# open source server project - MIT License

Joined
Aug 6, 2005
Messages
550
Reaction score
296
Hey guys,
I finally decided to push my project to GitHub. You can find it here:

This project aims to create an easy to use, extendable and customizable server in the mu version of Season 6 Episode 3 using the ENG (english) protocol. However, parts of the software can also be suitable for the development of other games, even for other kind of games.

The code is a complete rewrite from scratch - it's not based on any pre-existing projects, and it's also explicitly not based on the well-known decompiled server source of "Deathway" or one of its countless derivates.

About the current state:
It's not complete, and probably there are many bugs left. I didn't connect a real game client to it since years, until a few days ago - and then not again. So I don't recommend to try it out at the moment, if you're not a developer. However, I will try to fix them as soon as I have more time.
You can find the implemented game features here:
Apart of that, this server has some unique features, which I have never seen somewhere else at a MU Server:
  • Web user interface
  • Live map over web interface
  • Completely customizable character attributes (damage etc.); not just configurable multipliers of some formulas - you can change the whole calculation graph of any character attribute. And for example, you could add new attributes like strength, agility, etc. just by adding some configuration data.
  • All-in-One server executable: It's possible to start the whole server system (multiple game servers + cs etc.) in just one process. However there is no limitation to scale out - just some missing code :)
  • Possible support of multiple client versions working on the same game server (in Progress)
  • A working chat server :laugh:


As a result of my chat server research, I will release a ChatServer.exe replacement for existing mu servers soon - should be already finished :)

My next steps will adding GitHub issues to all the open points (known bugs) and missing features. So please, at the moment don't add such issues yourself.

PS: This project is in development since several years, so please don't write posts like "Is this project dead?" when there are no news for some weeks ;)
 
Joined
Aug 29, 2011
Messages
507
Reaction score
33
Could anyone please provide the already compiled project to test ?? I am not a programmer so I do not know how to compile, but I would like to contribute by doing tests

if anyone can make the chatserver available for this project already compiled I would appreciate it.
 
Joined
Aug 29, 2011
Messages
507
Reaction score
33
How do I find out the Xor32Key for my muserver?

If you want to test the ChatServer, it's released here: . The ragezone release thread is awaiting approval.

I'll try to create a nice easy-to-use Startup package for the actual game server :) It'll just take a few days more.
 
Joined
Aug 6, 2005
Messages
550
Reaction score
296
It's however not described how to retrieve this key... easiest would be if you would have server sources.

There is another easy trick (lol@webzen for this great protection): If you can capture packets (e.g. by wireshark), you can send a long chat message. The client will send this message encrypted by the XOR 32 byte key. The same message is sent back to you without encryption. Based on that, you can calculate the key.

Code:
private byte[] FindKey(byte[] decrypted, byte[] encrypted)
{
	byte[] xorkey = new byte[32];
	
	for (int i = 3; i < decrypted.Length; i++)
	{
		byte temp = (byte)(encrypted[i] ^ decrypted[i] ^ encrypted[i - 1]);
		if (xorkey[i % 32] != 0) //we do a comparison to verify the key
		{
			if (xorkey[i % 32] != temp)
			{
				MessageBox.Show("not valid method.");
				break;
			}

		}

		xorkey[i % 32] = temp;

	}

	return xorkey;
}
You can try it out here, you just have to insert the encrypted/decrypted packets accordingly:

I hope this helped!
 
Last edited:
Joined
Aug 6, 2005
Messages
550
Reaction score
296
Got the chat and the friend system working :)
nevS - [Development] MUnique OpenMU C# open source server project - MIT License - RaGEZONE Forums
 
Last edited:
Junior Spellweaver
Joined
Dec 19, 2012
Messages
148
Reaction score
135
Can u provide some information how to run /configure this, i think 99% ppl is not familiar with that new db(InMemory not work) and output folder look like disaster
 
Joined
Aug 6, 2005
Messages
550
Reaction score
296
Do you know this guide?


If something is unclear, please tell me what :)
I could make a detailed video tutorial, but this would probably take weeks until I have enough time. Installing postgres and modifying the connection string should not be too difficult, IMHO ;)
 
Joined
Aug 29, 2011
Messages
507
Reaction score
33
Where do I find the client??



Do you know this guide?


If something is unclear, please tell me what :)
I could make a detailed video tutorial, but this would probably take weeks until I have enough time. Installing postgres and modifying the connection string should not be too difficult, IMHO ;)




Enviado do meu iPhone usando Tapatalk
 
Joined
Aug 6, 2005
Messages
550
Reaction score
296
Added/tested group chat :)


I'm still working on a first playable release - maybe also a demo which doesn't require to install a database. However, that takes more time than I thought :scared:
 
Joined
Aug 29, 2011
Messages
507
Reaction score
33
this function would only be for your muserver or will work on anyone

Added/tested group chat :)


I'm still working on a first playable release - maybe also a demo which doesn't require to install a database. However, that takes more time than I thought :scared:
 
Joined
Aug 6, 2005
Messages
550
Reaction score
296
The ChatServer which I released supports this feature already... so yes, it works for both.

..............................

A small status update: Currently I'm refactoring the whole persistence interface to make it simpler to work with. I also implemented an in-memory persistence (no database required) and trying to get a first useable (demo) version out.

..............................

Thanks @fos83 for some contributions about map and gate data initialization :w00t:.

..............................

I still got a lot of work to do until I can release a first demo, e.g. testing the skill system in-game and fixing bugs. This takes longer than planned, however I can only spend about half an hour per day on this project :$:

..............................

Finished another milestone: Migrated the project to .net core/standard 2, so it works now on Windows, Linux and Mac OS :)

My next target is getting some game features to work, e.g. buff skills, combo skill(s) and the master skill tree.
 
Last edited by a moderator:
Joined
Aug 6, 2005
Messages
550
Reaction score
296
Thanks, I'm still working hard at it when my time allows it :)


...........................................


A small update of the last weeks:
Some buffs are working now and got the master skill tree sorted. Learning master skills works correctly now. However, not all skills have an effect yet. A lot of work ahead ;-)
 
Last edited by a moderator:
Joined
Aug 6, 2005
Messages
550
Reaction score
296
As I hit a point where I would need a lot of special logic for some skills, I’m currently working on a plugin system to make extensions easier to add. I think this opens up a lot of new possibilities, also for custom plugins. I’ll move some of the “default” game logic into plugins, too. This way they could be configured to be deactivated if required. For example, if someone is not happy how experience is calculated/distributed one could deactivate the default plugin and write its own to replace it.
In other use cases, someone may deactivate features to dumb a server down to a lower season.
I think it would take too much time to describe all my ideas and other people tend to come up with even with more ideas xD

However, you can read more about it here:



At mods: Please don’t merge my post again, thank you.
 
Back
Top