A server software implementation, ineroperable with a certain anime game client. The code in this repository is fully custom made for edyoucational purposes and future preservation, no copyrighted code is allowed in this repository.
Go to file
Jaida Wu 54faab8f0d Add restart command
Signed-off-by: Jaida Wu <mlgmxyysd@meowcat.org>
2022-04-20 21:06:59 +08:00
data Updated Banners.json with the latest banners (19 Apr) 2022-04-19 13:23:57 +01:00
gradle/wrapper Initial commit 2022-04-17 05:43:07 -07:00
Grasscutter-Protos@0537e9cc4c Protos 2022-04-19 10:26:31 -07:00
keys Initial commit 2022-04-17 05:43:07 -07:00
lib Initial commit 2022-04-17 05:43:07 -07:00
src/main Add restart command 2022-04-20 21:06:59 +08:00
.gitignore Update .gitignore 2022-04-19 11:39:18 +08:00
.gitmodules Protos 2022-04-19 10:26:31 -07:00
build.gradle Initial commit 2022-04-17 05:43:07 -07:00
gradlew Initial commit 2022-04-17 05:43:07 -07:00
gradlew.bat Initial commit 2022-04-17 05:43:07 -07:00
keystore.p12 Initial commit 2022-04-17 05:43:07 -07:00
LICENSE Initial commit 2022-04-17 05:43:07 -07:00
proxy_config.py Optimize proxy scripts 2022-04-20 18:13:26 +08:00
proxy.py Optimize proxy scripts 2022-04-20 18:13:26 +08:00
README.md Merge pull request #22 from SpikeHD/level_setting_commands 2022-04-19 03:22:45 -07:00
run.cmd Add click to run cmd 2022-04-19 11:14:59 +08:00
settings.gradle Initial commit 2022-04-17 05:43:07 -07:00

Grasscutter

A WIP server emulator for Genshin Impact 2.3-2.6

Note: For support please join the Discord server.

Current features

  • Logging in
  • Spawning monsters via console
  • Combat
  • Inventory features (recieving items/characters, upgrading items/characters, etc)
  • Co-op does work, but movement is kind of buggy and some player ults do not spawn properly
  • Friends list
  • Gacha system

Quick setup guide

Prerequisites

  • JDK-8u202 (mirror link since Oracle required an account to download old builds)
  • Mongodb (recommended 4.0+)
  • Proxy daemon: mitmproxy (mitmdump, recommended), Fiddler Classic, etc.

Starting up Grasscutter server (Assuming you are on Windows)

  1. Setup compile environment gradlew.bat
  2. Compile Grasscutter with gradlew jar
  3. Create a folder named resources in your Grasscutter directory, bring your BinOutput and ExcelBinOutput folders into it (Check the wiki for more details where to get those.)
  4. Run Grasscutter with java -jar grasscutter.jar. Make sure mongodb is running as well.

Connecting with the client

½. Create an account using command below

  1. Run a proxy daemon: (choose either one)
    • mitmdump: mitmdump -s proxy.py --ssl-insecure
    • Fiddler Classic: Run Fiddler Classic, turn on Decrypt https traffic in setting and change the default port there (Tools -> Options -> Connections) to anything other than 8888, and load this script.
    • Hosts file
  2. Trust CA certificate:
    • mitmdump: certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
  3. Set network proxy to 127.0.0.1:8080 or the proxy port you specified.
  4. yoink
  • or you can use run.cmd to start Server & Proxy daemon with one click

Grasscutter commands

Server console commands

account create [username] {playerid} - Creates an account with the specified username and the in-game uid for that account. The playerid parameter is optional and will be auto generated if not set.

In-Game commands

There is a dummy user named "Server" in every player's friends list that you can message to use commands. Commands also work in other chat rooms, such as private/team chats.

!spawn [monster id] [level] [amount]

!give [item id] [amount]

!givechar [avatar id] [level]

!drop [item id] [amount]

!killall

!setworldlevel [level] - Relog to see effects properly

!godmode - Prevents you from taking damage

!resetconst - Resets the constellation level on your current active character, will need to relog after using the command to see any changes.

!sethp [hp]

!clearartifacts - Deletes all unequipped and unlocked level 0 artifacts, including yellow rarity ones from your inventory

Quick Troubleshooting

  • If compiling wasnt successful, please check your JDK installation (must be JDK 8 and validated JDK's bin PATH variable)
  • My client doesn't connect, doesn't login, 4206, etc... - Mostly your proxy daemon setup is the issue, if using Fiddler make sure it running on another port except 8888
  • Startup sequence: Mongodb > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Client
  • If 4206 error constantly prompt up, try to use jdk-8u202-b08 instead of other versions of JDK