A server software reimplementation for a certain anime game.
Go to file
66Leo66 6b81b888a1 Allow overriding config with ENV (#506)
Allow overriding config with ENV (handy when running with docker or debugging without modifying script)
Also log proxy config for easier debugging (when sharing screenshots)
2022-05-05 15:22:29 +02:00
.github Merge pull request #386 from Grasscutters/memetrollsXD-patch-1 2022-04-30 17:38:28 -04:00
Grasscutter-Protos@0537e9cc4c Revert "Drowning packets handled" 2022-04-23 04:36:34 -07:00
data Fix Ayaka and weapon banner titles not showing up 2022-04-21 14:01:51 +07:00
gradle/wrapper Update gradle + Work gacha reload (gs broken atm) 2022-04-20 16:05:53 +08: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 Update Grasscutter.java 2022-04-27 11:33:36 +02:00
.gitignore Update .gitignore 2022-04-19 11:39:18 +08:00
.gitmodules Protos 2022-04-19 10:26:31 -07:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2022-04-24 19:24:23 +06:00
CONTRIBUTING.md Fix another weird line break 2022-04-24 00:06:56 +02:00
LICENSE Initial commit 2022-04-17 05:43:07 -07:00
README.md Update README.md 2022-04-22 11:46:55 +08:00
build.gradle update org.reflections 2022-04-27 01:24:19 +02: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
proxy.py Add port & SSL options to proxy script 2022-04-21 21:41:07 +08:00
proxy_config.py Allow overriding config with ENV (#506) 2022-05-05 15:22:29 +02:00
settings.gradle Initial commit 2022-04-17 05:43:07 -07:00
start.cmd Allow configuration overrides 2022-04-22 11:34:22 +08:00
start_config.cmd Allow configuration overrides 2022-04-22 11:34:22 +08:00

README.md

Grasscutter

A WIP server reimplementation for some anime game 2.3-2.6

Documentation: Grasscutter Wiki
Note: For support please join the Discord server.

Current features

  • Logging in
  • Combat
  • Spawning monsters via console
  • Inventory features (recieving items/characters, upgrading items/characters, etc)
  • Gacha system
  • Friends list
  • Co-op partially work

Quick setup guide

Note

  • If you update from an older version, delete config.json for regeneration

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 how to get those.)
  4. Run Grasscutter with java -jar grasscutter.jar. Make sure mongodb service is running as well.

Connecting with the client

½. Create an account using server console command below

  1. Run a proxy daemon: (choose either one)
    • mitmdump: mitmdump -s proxy.py -k
    • 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

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.

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.

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.

setstats [stats] [amount] - Changes the current character's specified stat.

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

pos - Gets your current coordinate.

weather [weather id] [climate id] - Changes the current weather.

More commands will be updated in the wiki.

Bonus

When you want to teleport to somewhere, use the ingame marking function on Map, click Confirm. You will see your character falling from a very high destination, exact location that you marked.

Quick Troubleshooting

  • If compiling wasn't 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