0b5329514b
* Deserialization support for tsv files * Benchmarking * Apparently moving the setter out of the lambda fixed the setAccessible issue * Thread it * Use AllArgsConstructor instead of field reflection * Clean up AllArgsConstructor TSV deserialization * Refactor TsvUtils * Remove AllArgsConstructors from Excels * Set field accessible * [WIP] TSJ improvements * [WIP] More TSV stuff * [WIP] More TSV stuff * Working TSV parser (slow) * Load Excels in TSJ > JSON > TSV priority |
||
---|---|---|
.github | ||
gradle/wrapper | ||
lib | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
build.gradle | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
format_whitespace.py | ||
gradlew | ||
gradlew-jar.bat | ||
gradlew.bat | ||
install_without_dependencies.sh | ||
install.sh | ||
keystore.p12 | ||
LICENSE | ||
manage_languages.py | ||
plugin-schema.json | ||
proxy_config.py | ||
proxy.py | ||
README_es-ES.md | ||
README_fil-PH.md | ||
README_fr-FR.md | ||
README_HE.md | ||
README_id-ID.md | ||
README_it-IT.md | ||
README_ja-JP.md | ||
README_ko-KR.md | ||
README_NL.md | ||
README_pl-PL.md | ||
README_ru-RU.md | ||
README_zh-CN.md | ||
README_zh-TW.md | ||
README.md | ||
settings.gradle | ||
start_config.cmd | ||
start.cmd |
EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT
Attention: We always welcome contributors to the project. Before adding your contribution, please carefully read our Code of Conduct.
Current features
- Logging in
- Combat
- Friends list
- Teleportation
- Gacha system
- Co-op partially works
- Spawning monsters via console
- Inventory features (receiving items/characters, upgrading items/characters, etc)
Quick setup guide
Note: For support please join our Discord.
Requirements
-
Java SE - 17 or higher
Note: If you just want to run it, then jre only is fine.
-
MongoDB (recommended 4.0+)
-
Proxy Daemon: mitmproxy (mitmdump, recommended), Fiddler Classic, etc.
Running
Note: If you updated from an older version, delete config.json
to regenerate it.
- Get
grasscutter.jar
- Download from releases or actions or build the server by yourself.
- Create a
resources
folder in the directory where grasscutter.jar is located and move yourBinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap
folders there (Check the wiki for more details how to get those.) - Run Grasscutter with
java -jar grasscutter.jar
. Make sure mongodb service is running as well.
Connecting with the client
½. Create an account in the server console using this command.
-
Redirect traffic: (choose one only)
-
mitmdump:
mitmdump -s proxy.py -k
-
Trust CA certificate:
-
The CA certificate is usually stored in
%USERPROFILE%\.mitmproxy
, double clickmitmproxy-ca-cert.cer
to install or... -
Via command line (needs administration privileges)
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
-
-
-
Fiddler Classic: Run Fiddler Classic, turn on
Decrypt HTTPS traffic
in (Tools -> Options -> HTTPS) and change the default port in (Tools -> Options -> Connections) to anything other than8888
, load this script (copy and paste the script in theFiddlerScript
tab) and click theSave Script
button.
-
-
Set network proxy to
127.0.0.1:8080
or the proxy port you specified.
- For mitmproxy: After setting up the network proxy and installing the certificate, check http://mitm.it/ if traffic is passing through mitmproxy.
You can also use start.cmd
to start servers and proxy daemons automatically, but you have to set up JAVA_HOME
environment and configure the start_config.cmd
file.
Building
Grasscutter uses Gradle to handle dependencies & building.
Requirements:
- Java SE Development Kits - 17 or higher
- Git
Windows
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile
Linux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile
You can find the output jar in the root of the project folder.
Commands have moved to the wiki!
Quick Troubleshooting
- If compiling wasn't successful, please check your JDK installation (Make sure its JDK 17 or higher 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 you're using Fiddler, change the default port to anything other than 8888.
- Startup sequence: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, etc.) > Game