Server interoperable with the anime game client. Created for edyoucational purposes, support the anime games parent company if you like the game
Go to file
2023-01-26 21:26:29 +02:00
keys Feat: added password login suport. 2022-11-29 11:01:35 +08:00
src insignificant changes 2023-01-26 21:26:29 +02:00
.editorconfig ConfigAbility (#18) 2022-12-17 21:58:55 +02:00
.gitignore Fix bad packet error 2022-10-13 18:28:16 +05:30
CONTRIBUTING Update CONTRIBUTING 2022-12-15 23:15:07 +02:00
keystore.p12 Restructure solution, add root namespace 2022-09-18 15:56:01 +03:00
LICENSE change license to GPLv2 2022-11-20 20:44:28 +02:00
README.md update resources link 2022-12-11 15:33:38 +02:00
Weedwacker.sln ConfigAbility (#18) 2022-12-17 21:58:55 +02:00

Weedwacker

Private Server reimplementation of a certain anime game. Join us on our discord!

Features:

  • Ability Framework (funeral parlor director's health reduction works correctly, and as intended!)
  • Native Lua 5.3 integration
  • Independent and highly customizable WebServer powered by microsoft's kestrel with the necessary json data structures properly represented in the code
  • Authentication framework
  • Organized Avatar framework faithfully reflecting the data and the game design
  • A very organized inventory system with type safety
  • Use of the Official c# driver for mongodb (with godly documentation), the ability to update, save, delete documents as needed
  • Resource loading and management of $type polymorphism
  • Extensive debug logging and the option to save to disk (only in the DEBUG build)
  • Microsoft's System.CommandLine library to handle both shell and ingame commands (via the chat)

Contributing:

View our contributing guidelines.

Requirements:

  • .NET 6

  • MongoDB

  • Proxy Daemon: Fiddler Classic (recommended), mitmproxy (mitmdump, recommended), etc.

  • mhypbase patch (Optional): if you want to enable Server.Account.UsePassword, you need to patch yor cilent according to mhypbase project.

Building:

any .NET 6 compatible compiler

Running:

Weedwacker has 2 different executables. one for the HTTP web server, one for the UDP game server

    1. Download and put at the root of the project the resources folder
  • 1b) Check out DataParser if you're interested.
    1. Run both the WebServer and the GameServer executables (also generates the configuration jsons if not present).
  • 2b) If you plan to host multiple game server instances, or run over a network, make the appropriate changes/additions to the config jsons (each server should have its own MongoDB Database).

Connecting:

½. Make sure you've set up/modified your client correctly to connect to private servers.

  1. Create an account on the web server (NOT the game server) using the account create <username> command from the console, or set AutoCreate to true in WebConfig.json.
  2. Use your preferred method to proxy web traffic from official servers to the webserver.
  3. Launch the game and play!

FiddlerScript:

Go to Tools->Options->HTTPS enable Decrypt HTTPS traffic. use the following script with fiddler to proxy the traffic to your webserver:

import System;
import System.Windows.Forms;
import Fiddler;
import System.Text.RegularExpressions;

class Handlers
{
	static function OnBeforeRequest(oS: Session) {
		if(oS.host.EndsWith(".yuanshen.com") || oS.host.EndsWith(".hoyoverse.com") || oS.host.EndsWith(".mihoyo.com")) {
			oS.host = "localhost"; // This can also be replaced with another IP address.
            oS.port = 443; // Change to the port of the WebServer
		}
		
		if (oS.host.Equals("overseauspider.yuanshen.com:8888")) {
            oS.oRequest.FailSession(404, "Blocked", "Not Found");
        }
        
	}
};