Genshin Impact server emulator written in Rust
Find a file
2024-11-29 14:38:25 +03:00
assets 5.2.51 Server 2024-11-29 14:38:25 +03:00
crates 5.2.51 Server 2024-11-29 14:38:25 +03:00
.gitignore Hi 2024-10-31 01:52:19 +03:00
Cargo.lock 5.2.51 Server 2024-11-29 14:38:25 +03:00
Cargo.toml 5.2.51 Server 2024-11-29 14:38:25 +03:00
LICENSE 5.2.51 Server 2024-11-29 14:38:25 +03:00
README.md 5.2.51 Server 2024-11-29 14:38:25 +03:00
screenshot.png 5.2.51 Server 2024-11-29 14:38:25 +03:00

mavuika-rs

screenshot

About

mavuika-rs is an open source Genshin Impact server emulator. Built on top of Bevy ECS, it prioritizes performance and implementation completeness to provide a smooth and efficient gameplay.

Implementation Status

  • mavuika-proto: a version-agnostic library defining protocol structures with ability to convert their format between different protocol versions.
  • mavuika-data: a library for parsing game data, supporting their initial form of binary blobs, without having to rely on 3rd-party data providers.
  • Authentication and encryption protocols are implemented with the same specifications as the official server.
  • Extensible and easy-to-understand codebase with use of Bevy's plugin system.

Getting started

Requirements

Setup

a) building from sources (preferred)

git clone https://git.xeondev.com/mavuika-rs/mavuika-rs.git
cd mavuika-rs
cargo run --release --bin mavuika-sdk-server
cargo run --release --bin mavuika-dispatch-server
cargo run --release --bin mavuika-gate-server
cargo run --release --bin mavuika-game-server

b) using pre-built binaries

Navigate to the Releases page and download the latest release for your platform.
Launch all services: mavuika-sdk-server, mavuika-dispatch-server, mavuika-gate-server, mavuika-game-server

Configuration

You should configure each service using their own config files. They're being created in current working directory upon first startup.

Database section

You have to specify credentials to work with PostgreSQL

An example of database configuration:
[database]
host = "localhost:5432"
user_name = "postgres"
password = ""
db_name = "mavuika"

Data

All necessary assets are present in this repository. This includes ExcelBinOutput, BinOutput and regional keys & configuration.

Connecting

You have to get a compatible game client. Currently supported one is CNCBWin5.2.51, you can get it here. Next, you have to apply this patch, it allows you to connect to local server and replaces RSA encryption keys with custom ones.

Community

Our Discord Server is open for everyone who's interested in our projects!

Support

Your support for this project is greatly appreciated! If you'd like to contribute, feel free to send a tip via Boosty!