23f1298d6c
Fix whitespace [skip actions] [BREAKING] Item Usage Overhaul Updated MAX_FRIENDS (#1852) Refactor GameData, remove deprecated getGsonFactory - Fix day-of-week dungeons - AvatarSkill max level enforcement from excels - Partial fix to bonus levels (need packet on talent update) Lombokify and sort GameData Extend talent command "all" (#1850) fix: Solar Isotoma Elevator doesn't work in multiplayer mode (#1848) fix: ConcurrentModificationError by removing gadget (#1849) Add DynamicFloat class fix: albedo elevator doesn't work (#1845) Update GM Handbook with Spincrystal names and Monster strings feat: unlock homeworld bgm and set homeworld bgm. (#1844) Flatten language translation keys in-memory feat: set namecards in profile editing. (#1843) fix costumes are unable to be unlocked. (#1842) Fix food decreasing (#1834) Fix showing ban message box (#1826) Don't need full Java stacktrace on Lua errors Move Data, Plugin, Script, Packet access from Strings to Paths (#1839) Add `shutdown` alias to StopCommand Update Banners.json (#1813) [BREAKING] Deobfuscate codex field, slight refactor (#1809) 3.1 Support (#1808) refactor HandlerWidgetDoBagReq Update README.md Fixed a tons of errors to make the drop system to accord with that in the actual game Allow loading Resources from zip files Move Resources loading from String filenames to Paths Add zip support Add `-game` and `-dispatch` startup arguments that override the run mode in the config Use reflection to map database classes and add missing mapped classes to the dispatch datastore Version 1.3.2-dev [skip actions] |
||
---|---|---|
.github | ||
gradle/wrapper | ||
lib | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
build.gradle | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
format_whitespace.py | ||
gradlew | ||
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_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
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 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 using server console 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
enviroment 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 using Fiddler make sure it running on another port except 8888
- Startup sequence: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, etc.) > Game