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
dragon d286f1628e Update install_without_dependencies.sh
adapt to pr #1605 .(because this pr remove '-handbook' and '-gachamap' launch arguments as these are generated on startup)
2022-08-11 14:41:22 +09:30
.github Make Lint_Commit not fail on no commit 2022-07-21 01:40:27 -07:00
gradle/wrapper Update gradle + Work gacha reload (gs broken atm) 2022-04-20 16:05:53 +08:00
lib Libs for RealPassword 2022-07-17 13:43:45 +09:30
src/main Handle Unlocking of Waypoints and Statues (#1608) 2022-08-10 19:33:47 +09:30
.editorconfig Introduce a new arguments parser (#1629) 2022-08-10 11:54:43 +09:30
.gitattributes Introduce a new arguments parser (#1629) 2022-08-10 11:54:43 +09:30
.gitignore Cache used strings from TextMaps 2022-08-09 20:59:11 +09:30
build.gradle Bump project version 2022-07-21 11:36:49 -04: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
format_whitespace.py Make whitespace formatter only target 8e3deb9 2022-07-12 12:11:15 +09:30
gradlew Make gradlew executable 2022-04-22 22:53:54 -04:00
gradlew.bat Initial commit 2022-04-17 05:43:07 -07:00
install_without_dependencies.sh Update install_without_dependencies.sh 2022-08-11 14:41:22 +09:30
install.sh Added support for arch linux 2022-05-23 15:46:12 -07:00
keystore.p12 Update the keystore 2022-04-22 22:34:00 -04:00
LICENSE Change LICENSE to GNU Affero 2022-05-08 13:09:22 -07:00
manage_languages.py Stop language linter from fighting the main linter on \n 2022-08-10 17:00:43 +09:30
plugin-schema.json Add loadAfter plugin setting 2022-06-22 00:19:43 -04:00
proxy_config.py Allow overriding config with ENV (#506) 2022-05-05 15:22:29 +02:00
proxy.py Censorship 2022-06-19 00:02:08 +08:00
README_es-ES.md Update README_es-ES.md 2022-08-07 08:09:51 +08:00
README_fr-FR.md Update README_fr-FR.md 2022-08-07 08:09:32 +08:00
README_HE.md Polish README and setConst translation (#1614) 2022-08-04 18:02:34 +09:30
README_id-ID.md fix typo 2022-08-07 08:05:14 +08:00
README_pl-PL.md Update README_pl-PL.md 2022-08-07 08:10:36 +08:00
README_ru-RU.md Update README_ru-RU.md 2022-08-07 08:10:17 +08:00
README_zh-CN.md Update README_zh-CN.md 2022-08-07 08:08:53 +08:00
README_zh-TW.md Update README_zh-TW.md 2022-08-07 08:09:12 +08:00
README.md Update README.md 2022-08-07 08:08:29 +08:00
settings.gradle Initial commit 2022-04-17 05:43:07 -07:00
start_config.cmd fix java search in start.cmd 2022-05-24 05:34:04 -07:00
start.cmd fix java search in start.cmd 2022-05-24 05:34:04 -07:00

Grasscutter

Documentation GitHub release (latest by date) GitHub GitHub last commit GitHub Workflow Status
Discord - Grasscutter

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID

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 (link)

    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.

  1. Get grasscutter.jar
  2. Create a resources folder in the directory where grasscutter.jar is located and move your BinOutput and ExcelBinOutput folders there (Check the wiki for more details how to get those.)
  3. 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.

  1. Redirect traffic: (choose one)

    • mitmdump: mitmdump -s proxy.py -k

      Trust CA certificate:

      **Note:**The CA certificate is usually stored in %USERPROFILE%\ .mitmproxy, or you can download it from http://mitm.it

      Double click for install or ...

      • Via command line

        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
        
    • 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. Set network proxy to 127.0.0.1:8080 or the proxy port you specified.

you can also use start.cmd to start servers and proxy daemons automatically, but you have to set up JAVA_HOME enviroment

Building

Grasscutter uses Gradle to handle dependencies & building.

Requirements:

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 (JDK 17 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