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
Nazrin 46c3ef8e6b Replace PacketOpcodes references with strings (#130)
Replace
session.send(new BasePacket(PacketOpcodes.Packet));
with
session.send(new BasePacket(session.getPackageIdProvider().getPacketId("Packet")));
2024-08-03 16:03:17 +02:00
.github [CI] Make sure gradle checks if the artifact cache is up to date 2024-02-07 22:41:11 +01:00
buildSrc/src/main/java/emu/grasscutter/gen feature: conditions calling base 2022-09-19 21:44:43 +02:00
gradle/wrapper [BuildTools] Update gradle version 2024-02-06 21:22:26 +01:00
lib [dependencies] Use the AGS mvn repo instead of local jar files for luaj and jnlua 2023-10-04 05:00:29 +02:00
src Replace PacketOpcodes references with strings (#130) 2024-08-03 16:03:17 +02:00
.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 Replace protos with generated protos 2022-08-21 00:37:36 -07:00
build.gradle [Fix] allow usage of multiple scriptengines by using shadow for the fat jar and merge service files 2024-02-02 16:16:20 +01:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2022-04-24 19:24:23 +06:00
CONTRIBUTING.md Update banners (closes #1760) 2022-09-11 21:05:16 +09:30
format_whitespace.py Fix lint commit reference 2022-08-22 01:49:50 +09:30
gradlew Update gradle wrapper (closes #1076) 2022-11-05 15:03:00 +10:30
gradlew-jar.bat Debug system (#1894) 2022-10-29 23:31:28 +10:30
gradlew.bat Update gradle wrapper (closes #1076) 2022-11-05 15:03:00 +10:30
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 added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_fil-PH.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_fr-FR.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_HE.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_id-ID.md Formalizing and changing untranslated words (#1973) 2022-12-10 10:26:46 +10:30
README_it-IT.md Added it-IT translaton (#1946) 2022-11-14 11:19:35 +10:30
README_ja-JP.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_ko-KR.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_NL.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_pl-PL.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_ru-RU.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_zh-CN.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README_zh-TW.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
README.md added IT redeirect on all ReadME and typo fix (#1954) 2022-11-20 22:45:43 +10:30
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 | 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

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, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap 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 in the server console using this command.

  1. Redirect traffic: (choose one only)

    • mitmdump: mitmdump -s proxy.py -k

      • Trust CA certificate:

        • The CA certificate is usually stored in %USERPROFILE%\.mitmproxy, double click mitmproxy-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 than 8888, load this script (copy and paste the script in the FiddlerScript tab) and click the Save Script button.

    • Hosts file

  2. 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:

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