Grasscutter Documentation

A server software reimplementation for a certain anime game.

16,831 stars Java Java 23 files · ~35,247 tokens #java#kcp#private-server#server
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy Grasscutter on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name grasscutter -p 80:80 --restart always grasscutters/grasscutter:latest

Technical Documentation: Grasscutters/Grasscutter

ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference

Overview (`README.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI

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)

Foreward

**Grasscutter beyond the latest release will have no handholding in terms of instructions.**

Grasscutter has not been actively maintained and currently (as of January 12th, 2025) only works up to version REL4.0.1 (introduction to Fontaine). If you have a beta version/unofficial version of Grasscutter, this guide should theoretically still work, however, we will not provide official support these versions. You can still try your luck in the Discord if you are stuck, but please don't act entitled.

Quick setup guide

Note: For support please join our Discord.

Quick Start (automatic)

  • Get Java 17

  • Get MongoDB Community Server

  • Get game version REL4.0.x (If you don't have a 4.0.x client, you can find it here and open any of the links to download it):
    4.0.x Client-github
    4.0.x Client-cloud drive

  • UPDATE JAN 12, 2025: YOU CANNOT MIX AND MATCH GAME VERSIONS AND SERVER VERSIONS, PLEASE DOWNLOAD THE CORRECT VERSION OF GRASSCUTTER FOR YOUR VERSION OF THE GAME.

  • Download the latest Cultivation version. Use the .msi installer.

  • After opening Cultivation (as admin), press the download button in the upper right corner.

  • Click Download All-in-One

  • Click the gear in the upper right corner

  • Set the game Install path to where your game is located.

  • Set the Custom Java Path to C:\Program Files\Java\jdk-17\bin\java.exe

  • Leave all other settings on default

  • Click the small button next to launch.

  • Click the launch button.

  • Log in with whatever username you want. Password can be anything.

Building

Grasscutter uses Gradle to handle dependencies & building.

Requirements:

Clone

shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter

Compile

Note: Handbook generation may fail on some systems. To disable the handbook generation, append -PskipHandbook=1 to the gradlew jar command.

Windows:

shell
.\gradlew.bat # Setting up environments
.\gradlew jar

Linux (GNU):

bash
chmod +x gradlew
./gradlew jar

Compiling the Handbook (Manually)

With Gradle:

shell
./gradlew generateHandbook

With NPM:

shell
cd src/handbook
npm install
npm run build

You can find the output jar in the root of the project folder.

Troubleshooting

For a list of common issues and solutions and to ask for help, please join our Discord server and go to the support channel.


Overview (`docs/quests/README.md`)

Quest Documentation

These are the Wiki Files from Grasscutter-Quests.\

Sections


Overview (`docs/events/windtrace/README.md`)

Hide and Seek!

Documentation on how the Hide and Seek game works.
Externally dubbed: Windtrace.

Map IDs

TODO: Document the map IDs of Windtrace.

TODO: Investigate ServerGlobalValueChangeNotify

Asking Players to Play in a Co-Op Game

  1. The client will send DraftOwnerStartInviteReq
  2. The server will send DraftOwnerInviteNotify to all clients.
  3. The server will send DraftOwnerStartInviteRsp

Matching in a Co-Op Game

  1. World owner talks to Gygax and begins a Windtrace game.
  2. The packet DraftOwnerInviteNotify is sent to clients.
  3. Clients will respond with DraftGuestReplyInviteReq (client-side)
  4. The server will respond with DraftGuestReplyInviteRsp
  5. The server will respond with DraftInviteResultNotify

Starting Windtrace

  1. If DraftInviteResultNotify is a success, the server will send a series of packets.
    1. A series of SceneEntityAppearNotify packets.
    2. NpcTalkStateNotify
    3. PlayerEnterSceneNotify
    4. MultistagePlayInfoNotify
  2. The players are then teleported to the Windtrace map in their locations.
  3. Server will send packets to clients. (this is server boilerplate)
  4. The server sends another MultistagePlayInfoNotify to clients.

Changing Avatars - Others

  1. The server will send a AvatarEquipChangeNotify packet to clients.
  2. The server will send a SceneTeamUpdateNotify packet to clients.
  3. The server will send a HideAndSeekPlayerSetAvatarNotify packet to clients.

Getting Ready

  1. The client will send HideAndSeekSetReadyReq to the server.
  2. The server will reply with HideAndSeekPlayerReadyNotify to clients.
  3. The server will send MultistagePlayInfoNotify to clients.
  4. The server will reply with HideAndSeekSetReadyRsp to the client.
  5. If all players are ready, the server will move on to start Windtrace.

Starting Windtrace

  1. When all players are ready, the server will send a series of packets to players.
    1. GalleryStartNotify
    2. SceneGalleryInfoNotify
    3. MultistagePlayInfoNotify
    4. MultistagePlayStageEndNotify
    5. This will only get sent at the 1. countdown.

Notes:

  • GuestReplyInviteRsp is sent after DraftInviteResultNotify.

`DraftOwnerInviteNotify`

  • invite_deadline_time - This is the time when the invite expires.
  • draft_id - The value is always 3001 for Windtrace.

`DraftOwnerStartInviteReq`

  • draft_id - The value is always 3001 for Windtrace.

`DraftOwnerStartInviteRsp`

  • draft_id - The value is always 3001 for Windtrace.
  • invite_fail_info_list - A list of players who weren't invited.
  • retcode - The response code.
  • wrong_uid - Always 0. (undocumented)

`DraftGuestReplyInviteReq`

  • draft_id - The value is always 3001 for Windtrace.
  • is_agree - A boolean value for whether the client accepts the invite.

`DraftGuestReplyInviteRsp`

  • draft_id - The value is always 3001 for Windtrace.
  • retcode - Response code for the request.
  • is_agree - A boolean value for whether the server acknowledges the client's invite acceptation.

`DraftInviteResultNotify`

  • draft_id - The value is always 3001 for Windtrace.
  • is_all_agree - A boolean value for whether all clients accepted the invite.

`NpcTalkStateNotify`

  • is_ban - This value is always true when entering Windtrace.

`PlayerEnterSceneNotify`

  • pos - This is where the player will be teleported to.
    • This value depends on if the player is a hunter or a runner.
    • This value is set by the server and must be hardcoded/read from a JSON file.

`MultistagePlayStageEndNotify`

  • play_index - Value picked by the server. (use 1)
  • group_id - This value is always 133002121 for Windtrace.

`MultistagePlayInfoNotify` - Initial + PostEnterSceneReq

  • Image Reference:
  • info - MultistagePlayInfo data.
    • group_id - The value is always 133002121 for Windtrace.
    • play_index - Value picked by the server. (use 1)
    • hide_and_seek_info - Information about Windtrace.
      • hider_uid_list - A list of UIDs (ints) of the hiders.
      • hunter_uid - The UID (int) of the hunter.
      • map_id - The ID of the Windtrace map.
      • stage_type - Windtrace state.
        • This will be HIDE_AND_SEEK_STAGE_TYPE_PREPARE.
      • battle_info_map - Contains a dictionary of UID -> HideAndSeekPlayerBattleInfo objects.
        • skill_list - Array of 3 values of skill IDs chosen by the player.
        • avatar_id - The ID of the avatar the player wants to use.
        • is_ready - The player's in-game ready state.
        • costume_id - The costume the player's avatar is wearing.

`MultistagePlayInfoNotify` - Picking Avatars

  • Image Reference:
  • Note: This packet matches the initial structure and data.
  • info.hide_and_seek_info.stage_type - This will be HIDE_AND_SEEK_STAGE_TYPE_PICK.

`MultistagePlayInfoNotify` - Starting Windtrace

  • Image Reference:
  • Note: This packet matches the initial structure and data.
  • info.hide_and_seek_info.stage_type - This will be HIDE_AND_SEEK_STAGE_TYPE_HIDE.

`MultistagePlayInfoNotify` - Seeking Time

  • Image Reference:
  • Note: This packet matches the initial structure and data.
    • info.hide_and_seek_info.stage_type - This will be HIDE_AND_SEEK_STAGE_TYPE_SEEK.

`MultistagePlayInfoNotify` - Finish Windtrace

  • Image Reference:
  • Note: This packet matches the initial structure and data.
    • info.hide_and_seek_info.stage_type - This will be HIDE_AND_SEEK_STAGE_TYPE_SETTLE.

`HideAndSeekPlayerSetAvatarNotify`

  • avatar_id - The ID of the new avatar the player wants to use.
  • uid - The UID of the player who changed their avatar.
  • costume_id - The costume the player's avatar is wearing.

`HideAndSeekSetReadyRsp`

  • retcode - Response code for the request.

`HideAndSeekPlayerReadyNotify`

  • uid_list - A list of UIDs (ints) of the players who are ready.

`GalleryStartNotify`

  • gallery_id - TODO: Check if this value is always 7056 for Windtrace.
  • start_time - This value is always 2444 for Windtrace.
    • This value is 200 when displaying game end statistics.
  • owner_uid - The UID of the player who started the Windtrace game.
  • player_count - The number of players in the Windtrace game.
  • end_time - This value is always the same as start_time.

`SceneGalleryInfoNotify` - Starting Windtrace

  • gallery_info - SceneGalleryInfo data.
    • end_time - This value is always the same as start_time.
    • start_time - This value is always 2444 for Windtrace.
      • This value is 200 when displaying game end statistics.
    • gallery_id - This value is always the same as gallery_id from GalleryStartNotify.
    • stage - The current stage of the gallery.
      • This will be GALLERY_STAGE_TYPE_START.
    • owner_uid - The UID of the player who started the Windtrace game.
    • hide_and_seek_info - SceneGalleryHideAndSeekInfo
      • visible_uid_list - List of UIDs (ints) of the players who were left alive.
      • caught_uid_list - List of UIDs (ints) of the players who have been caught.
    • player_count - The amount of players in the Windtrace game.
    • pre_start_end_time - This value is always 0 for Windtrace.

`HideAndSeekSettleNotify`

  • reason - The reason for the game ending.
  • winner_list - A list of UIDs (ints) of the players who won the game.
  • settle_info_list - HideAndSeekSettleInfo data.
    • This is a list of players who participated in the game.

`HideAndSeekSettleInfo`

  • card_list - A collection of ExhibitionDisplayInfo
    • If unknown: hardcode the specified values.
    • These values are repeated during testing.
  • uid - The UID of the player who participated in the game.
  • nickname - The player's nickname.
  • head_image - This value is always 0.
  • online_id - This value is always blank.
  • profile_picture - ProfilePicture object.
  • play_index - Value picked by the server. (use 1)
  • stage_type - The stage type. (inconclusive; TODO)
  • cost_time - The amount of time the player took to complete the game.
  • score_list - A list of player scores.

`ExhibitionDisplayInfo`

  • id - The ID of the reward.
  • param - The amount of the reward given.
  • detail_param - This value is mostly 0.
    • This value matches param when the reward is of the amount of time spent playing. (participation reward)

Overview (`src/handbook/data/README.md`)

Handbook Data

Use Grasscutter's dumpers to generate the data to put here.

Generating Data

When you have Grasscutter set up, you can use the following commands to generate the data:

  • Commands - grasscutter.jar -dump=commands,en-us
  • Items - grasscutter.jar -dump=items,EN
  • Avatars - grasscutter.jar -dump=avatars,EN
  • Quests - grasscutter.jar -dump=quests,EN
  • Entities - grasscutter.jar -dump=entities,en-us
  • Areas - grasscutter.jar -dump=areas,EN
  • Scenes - grasscutter.jar -dump=scenes,en-us

Grasscutter being "set up" means:

  • A Java runtime is installed
  • Resources are provided in the working directory

Language Locales

You can replace en-us or EN using the language locale which matches the format.

Grasscutter Language Locale Handbook Language Locale
en-us EN

Files Required

  • mainquests.csv
  • commands.json
  • entities.csv
  • avatars.csv
  • scenes.csv
  • quests.csv
  • items.csv

Item Icon Notes

  • Artifacts: https://bbs.hoyolab.com/hoyowiki/picture/reliquary/(name)/(piece)_icon.png
    • Alternate source: https://api.ambr.top/assets/UI/reliquary/UI_RelicIcon_(set)_(piece).png
    • xxxx4 - flower_of_life
    • xxxx5 - sands_of_eon
    • xxxx3 - circlet_of_logos/plume_of_death
      • Use circlet_of_logos with a complete set
      • Use plume_of_death with part of a set.
    • xxxx2 - plume_of_death
    • xxxx1 - goblet_of_eonothem
  • Miscellaneous Items: https://bbs.hoyolab.com/hoyowiki/picture/object/(name)_icon.png
    • Includes: materials, quest items, food, etc.
    • Alternate source: https://api.ambr.top/assets/UI/UI_ItemIcon_(id).png
  • Avatars/Avatar Items: https://bbs.hoyolab.com/hoyowiki/picture/character/(name)_icon.png
    • Avatar Items are between ranges 1001 and 1099.
  • Weapons: https://api.ambr.top/assets/UI/UI_EquipIcon_(type)_(name).png
  • Furniture: https://api.ambr.top/assets/UI/furniture/UI_Homeworld_(location)_(name).png
  • Monsters: https://api.ambr.top/assets/UI/monster/UI_MonsterIcon_(type)_(variant).png

Credits


Overview (`src/main/java/emu/grasscutter/game/managers/stamina/README.md`)

Stamina Manager


UpdateStamina

java
// will use consumption.consumptionType as reason
public int updateStaminaRelative(GameSession session, Consumption consumption);
java
public int updateStaminaAbsolute(GameSession session, String reason, int newStamina)

Pause and Resume

java
public void startSustainedStaminaHandler()
java
public void stopSustainedStaminaHandler()

Stamina change listeners and intercepting

BeforeUpdateStaminaListener

java
import emu.grasscutter.game.managers.StaminaManager.BeforeUpdateStaminaListener;

// Listener sample: plugin disable CLIMB_JUMP stamina cost.
private class MyClass implements BeforeUpdateStaminaListener {
    // Make your class implement the listener, and pass in your class as a listener.

    public MyClass() {
        getStaminaManager().registerBeforeUpdateStaminaListener("myClass", this);
    }

    @Override
    public boolean onBeforeUpdateStamina(String reason, int newStamina) {
        // do not intercept this update
        return false;
    }

    @Override
    public boolean onBeforeUpdateStamina(String reason, Consumption consumption) {
        // Try to intercept if this update is CLIMB_JUMP
        return consumption.consumptionType == ConsumptionType.CLIMB_JUMP;
        // If it is not CLIMB_JUMP, do not intercept.
    }
}

AfterUpdateStaminaListener

java
import emu.grasscutter.game.managers.StaminaManager.AfterUpdateStaminaListener;

// Listener sample: plugin listens for changes already made.
private class MyClass implements AfterUpdateStaminaListener {
    // Make your class implement the listener, and pass in your class as a listener.

    public MyClass() {
        registerAfterUpdateStaminaListener("myClass", this);
    }

    @Override
    public void onAfterUpdateStamina(String reason, int newStamina) {
        // ...
    }
}

README HE (`docs/README_HE.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

תשומת לב בבקשה: אנחנו מקבלים עזרה בפיתוח התוכנה. לפני שאתם תורמים לפרויקט בבקשה תקראו את תנאי השימוש.

אפשרויות זמינות כרגע

  • כניסה למשחק ומשתמש
  • לחימה
  • רשימת חברים
  • טלפורטים ברחבי המפה
  • מערכת הווישים להשגת דמויות
  • קו-אופ (אפשרות לשחק עם חברים) חלקית עובדת
  • זימון אויבים באמצעות פקודות
  • אפשרויות של מלאי ציוד במשחק (קבלת נשקים/דמויות, שדרוג נשקים/דמויות וכו'

הוראות הפעלה בסיסיות

חשוב מאוד: בשביל לקבל תמיכה תכנסו לשרת הדיסקורד שלנו.

דרישות להפעלה

  • Java SE - 17 (קישור)

    הערה: אם אתם רוצים רק להריץ את זה כבר מוכן אז jre בלבד זה בסדר

  • MongoDB (מומלץ 4.0 ומעלה)

  • Proxy daemon: mitmproxy (mitmdump מומלץ), Fiddler Classic, וכו'.

הפעלה עצמה

הערה חשובה: אם אתם מעדכנים את השרת מגרסה ישנה אז תמחקו את הקובץ config.json בשביל ליצור אותו מחדש מעודכן

  1. להשיג grasscutter.jar

  2. תצרו תיקייה בשם resources בתוך התיקייה איפה שהקובץ grasscutter.jar נמצא ותעבירו את התיקיות BinOutput ו- ExcelBinOutput לשם (תקראו את המדריך המלא בשביל לקבל יותר מידע לגבי אלה.)

  3. תריצו את השרת בעזרת פקודה java -jar grasscutter.jar. תדאגו שהשירות mongodb פועל באותו הזמן ברקע

התחברות עם המשחק

½. תצרו משתמש משחק על ידי שימוש בפקודות השרת.

  1. תעבירו את הניתוב: (תבחרו אחת מהדרכים)

    • שימוש בmitmdump: פקודת mitmdump -s proxy.py -k בשורת פקודה

    אישור שימוש החוזה שלהם:

    ​ הערה חשובה: החוזה בדרך כלל נמצא בתוך התיקייה %USERPROFILE%\ .mitmproxy, או שאתם יכולים להוריד את זה מהאתר http://mitm.it

    ​ תלחצו פעמיים בשביל הורדה או...

  • על ידי שימוש בשורת הפקודה
shell
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
  • שימוש בFiddler Classic: תריצו Fiddler Classic, תפעילו את ההגדרה Decrypt https traffic בהגדרות ותשנו את הפורט ברירת מחדל לכל מספר שהוא לא 8888, ותפעילו את הסקריפט הזה.

-עריכת קובץ הHosts

  1. תשנו את שרת בproxy שלכם ל127.0.0.1:8080

אתם יכולים גם להשתמש בקובץ start.cmd בשביל להפעיל את כל השרתים באופן אוטומטי אבל תצטרכו להגדיר JAVA_HOME בסביבות המחדל במערכת באופן ידני

בנייה

התוכנה משתמשת בGradle בשביל לבנות את כל השרת

דרישות:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # בשביל להוריד את כל חבילות הבנייה
.\gradlew jar # בשביל הבנייה עצמה

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # בנייה עצמה

אתם יכולים למצוא את קובץ התוצר הסופי grasscutter.jar באותה התיקייה שבו עשיתם את הכל

הפקודות הועברו ל[ויקיפדיה שלנו](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

פתרון בעיות מהיר:

  • אם בניית השרת לא הצליחה, תבדקו את מיקום ההתקנה של JDK שלכם (JDK 17 והPATH של הJDK בסביבות המשתנים במערכת)
  • המשחק לא מתחבר לי לשרת, לא נכנס למשתמש, 4206, וכו'... - לרוב המקרים התקנת הproxy שלכם היא הבעייתית, אם משתמשים בFiddler אז תדאגו שאתם משתמשים בכל פורט שהוא לא 8888
  • סדר ההפעלות: MongoDB, ואז Grasscutter, ואז שרתי הproxy שלכם (mitmpump, fiddler וכו'), ורק אז המשחק עצמו

README NL (`docs/README_NL.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Aantekening: We verwelkomen altijd bijdragers aan het project. Lees onze Gedragscode zorgvuldig door voordat u uw bijdrage toevoegt.

Huidige functies

  • inloggen
  • Combat
  • Vriendenlijst
  • Teleportatie
  • Gacha systeem
  • Co-op werkt (gedeeltelijk)
  • Monsters spawnen via console
  • Inventaris functies (ontvangen van items / karakters, upgraden van items / karakters, enz.)

Snelle installatie gids

Note: Voor ondersteuning kunt u lid worden van onze Discord.

Vereisten

Opstarten

Note: Als u vanaf een oudere versie heeft geupdate, verwijder dan config.json om het te regenereren.

  1. Verkrijg grasscutter.jar
  2. Maak een resources map aan in de directory waar grasscutter.jar staat en verplaats je BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap mappen daarheen (Check de wiki voor meer details hoe je die krijgt.)
  3. Start Grasscutter met java -jar grasscutter.jar. Zorg ervoor dat de mongodb service ook draait.

Verbinden met de client

½. Maak een account aan met server console command.

  1. Verkeer omleiden: (kies er een)

    • mitmdump: mitmdump -s proxy.py -k

      Vertrouw CA certificaat:

      Note: Het CA certificaat is meestal opgeslagen in %USERPROFILE%.mitmproxy, of je kan het downloaden van http://mitm.it

      Dubbelklik voor install of ...

      • Via de commandoregel

        shell
        certutil -addstore root %USERPROFILE%%%.mitmproxymitmproxy-ca-cert.cer
    • Fiddler Classic: Start Fiddler Classic, zet Decrypt https traffic aan in setting en verander de standaard poort daar (Tools -> Options -> Connections) in iets anders dan 8888, en laad dit script.

    • Hosts file

  2. Stel de netwerk proxy in op 127.0.0.1:8080 of de proxy poort die u heeft opgegeven.

U kunt ook start.cmd gebruiken om servers en proxy daemons automatisch te starten, maar dan moet u JAVA_HOME enviroment en start_config.cmd instellen.

Bouwen

Grasscutter gebruikt Gradle om afhankelijkheden en bouwen af te handelen.

Vereisten:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Instellen van omgevingen
.gradlew jar # Compileren

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compileer

U kunt de output jar vinden in de root van de project map.

Commando's zijn verplaatst naar de [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Quick Troubleshooting

  • Als het compileren niet succesvol was, controleer dan je JDK installatie (JDK 17 en gevalideerde JDK's bin PATH variabele)
  • Mijn client maakt geen verbinding, logt niet in, 4206, etc... - Meestal is je proxy daemon setup het probleem, als je
    Fiddler gebruik, zorg ervoor dat het op een andere poort draait behalve 8888
  • Opstart volgorde: MongoDB > Grasscutter > Proxy daemon (mitmdump, fiddler, enz.) > Game

Bijdragen aan het project

Let op: we hebben een gedragscode, volg deze alsjeblieft in al je interacties met het project. Als je nog vragen hebt, maak dan een issue aan of vraag het in de Discord server.

  • Repareer/toevoeg alleen de functionaliteit in kwestie OF pak wijdverspreide witruimte/stijl problemen aan, niet beide.
  • Pak een enkel probleem aan met zo min mogelijk gewijzigde regels.

Maak geen pull request om samen te voegen in stable tenzij het een hotfix is. Gebruik in plaats daarvan de development branch.

Pull Request Proces

  1. Zorg ervoor dat alle installatie- of build-afhankelijkheden verwijderd zijn voor het einde van de laag wanneer u een build doet.
    1. Werk de README.md en wiki bij met details van wijzigingen aan de interface, inclusief nieuwe omgevingsvariabelen, blootgestelde poorten, nuttige bestandslocaties en containerparameters.
  2. Schrijf met detail op je pull request beschrijving wat je hebt gecommit, om het makkelijker te maken voor de medewerkers om een changelog te maken.

README Es ES (`docs/README_es-ES.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Atención: Siempre damos la bienvenida a contribuidores del proyecto. Antes de añadir tu contribución, por favor lee cuidadosamente nuestro Código de conducta.

Funcionalidades actuales

  • Iniciar sesión
  • Combate
  • Lista de amigos
  • Teletransportación
  • Sistema Gacha
  • Cooperativo parcialmente funcional
  • Invocar monstruos desde la consola
  • Funcionalidades de inventario (recibir objetos/personajes, mejorar objetos/personajes, etc)

Guía rápida de configuración

Nota: Para soporte, únete a nuestro Discord.

Requerimientos

  • Java SE - 17 (link)

    Nota: Si solo quieres ejecutarlo, entonces jre es suficiente.

  • MongoDB (recomendado 4.0+)

  • Servicio de proxy: mitmproxy (mitmdump, recomendado), Fiddler Classic, etc.

Ejecución

Nota: Si actualizaste de una versión anterior, elimina config.json para que se genere de nuevo.

  1. Consigue grasscutter.jar
  2. Crea una carpeta resources en el directorio donde se encuentra grasscutter.jar y mueve las carpetas BinOutput y ExcelBinOutput ahí (Consulta la wiki para más detalles de como conseguirlos.)
  3. Ejecuta Grasscutter con java -jar grasscutter.jar. Asegúrate de que el servicio de mongodb está activo.

Conexión con el cliente

½. Crea una cuenta usando el comando correspondiente en la consola del servidor.

  1. Redirecciona el tráfico: (elegir uno)

    • mitmdump: mitmdump -s proxy.py -k

      Autoriza el certificado CA:

      ​ **Nota:**El certificado CA normalmente se encuentra en %USERPROFILE%\ .mitmproxy, o puedes descargarlo de http://mitm.it

      ​ Doble clic para instalar o ...

      • Con línea de comandos

        shell
        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Fiddler Classic: Ejecuta Fiddler Classic, activa Decrypt https traffic en las opciones y cambia el puerto por defecto ahí (Herramientas -> Opciones -> Conexiones) a alguno que no sea 8888, y carga este script.

    • Archivo Hosts

  2. Establece el proxy de red a 127.0.0.1:8080 o el puerto de proxy que pusiste.

También puedes usar start.cmd para iniciar el servidor y el servicio de proxy automáticamente, pero tienes que configurar el entorno JAVA_HOME

Construcción

Grasscutter usa Gradle para manejar dependencias y construcción.

Requerimientos:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Configuración de entornos
.\gradlew jar # Compilar

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compilar

Podrás encontrar el jar generado en la carpeta raíz del proyecto.

¡Los comandos han sido movidos a la [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Soluciones a errores comunes

  • Si la compilación falla, por favor comprueba tu instalación de JDK (JDK 17 y valida la variable bin PATH del JDK)
  • Mi cliente no conecta, no inicia sesión, 4206, etc... - Probablemente, tu configuración del proxy es el problema, si usas
    Fiddler asegúrate de que está usando un puerto distinto al 8888
  • Secuencia de inicio: MongoDB > Grasscutter > Servicio de proxy (mitmdump, fiddler, etc.) > Juego

README Fil PH (`docs/README_fil-PH.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Atensyon: Ang mga kontributor ay laging welcome sa proyektong ito. Bago mag-bigay ng kontribusyon, basahin muna ng mabuti ang Code of Conduct.

Ang mga kasalukuyang 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

Atensyon: Para sa mga nangangailangan ng suporta, maaari kang sumali sa aming server Discord.

Ang mga kailangan

Running

Atensyon: Kung nag-update ka galing sa lumang version, paki-delete ang config.json para mag-regenerate ulit.

  1. Get grasscutter.jar
  2. Gawa ka ng resources folder sa directory kung nasaan ang grasscutter.jar at ilagay ang BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap folders sa loob ng resources folder (Tingnan mo ang wiki para malaman mo kung saan mo makukuha yan)
  3. Paandarin ang Grasscutter gamit ang command na java -jar grasscutter.jar. Siguraduhin mo na ang mongodb service ay naka-open din.

Connecting with the client

½. Gumawa ng account sa server console gamit ang command na ito.

  1. Redirect traffic: (pumili lang dapat ng isa)

    • mitmdump: mitmdump -s proxy.py -k

      • Trust CA certificate:

        • Ang CA certificate ay nasa %USERPROFILE%\.mitmproxy, i-double click ang mitmproxy-ca-cert.cer para ma-install o...

        • Via command line (kailangan ng administration privileges)

          shell
          certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Fiddler Classic: Paadarin ang Fiddler Classic, turn on mo yung Decrypt https traffic sa (Tools -> Options -> HTTPS) at baguhin mo ang default port na nakalagay (Tools -> Options -> Connections) sa anumang numero maliban sa 8888, i-load ang script na ito (copy and paste ang script sa FiddlerScript tab) at i-click ang Save Script button.

    • Hosts file

  2. Set mo ung proxy sa 127.0.0.1:8080 or dun sa proxy port na iyong inilagay.

  • Para sa mitmproxy: Pagkatapos mong i-setup ang network proxy at sa pag-install ng certificate, tingnan mo sa http://mitm.it/ kung ang traffic ay dumadaan sa mitmproxy.

Pwede mo rin gamitin ang start.cmd to start the servers and proxy daemons automatically, pero kailagan mong i-setup ang JAVA_HOME environment at i-configure ang start_config.cmd file.

Building

Ang Grasscutter ay gumagamit ng Gradle para sa depedencies at building.

Mga kailangan:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile jar

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile jar

Pag-katapos mong i-compile, check mo yung project directory at makikita mo yung jar na kinompile mo. Usually pag-dev version, ang dapat nakalagay diyan ay grasscutter-<version>-dev.jar.

Ang mga server commands ay nasa [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands) na!

Quick Troubleshooting

  • Kung hindi nag-compile, paki-check ung JDK installation mo (JDK 17 at JDK's bin PATH variable).
  • Hindi ako maka-connect, ayaw mag-login, 4206, etc... - Mostly ang proxy setup mo ang may kasalanan niyan, kung gamit mo ay Fiddler, paki-sigurado na naka-set ung port sa kahit ano except sa 8888.
  • Ang pagkakasunud-sunod: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, etc.) > Game

README Fr FR (`docs/README_fr-FR.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Attention: De nouveaux contributeurs sont toujours les bienvenus. Avant d'ajouter votre contribution, veuillez lire le code de conduite.

Fonctionnalités actuelles :

  • Connection
  • Combat
  • Liste d'amis
  • Téléportation
  • Système de gacha
  • Le multijoueur fonctionne partiellement
  • Apparition de monstres via la console
  • Inventaire (obtention d'objets/de personnages, amélioration d'objets/personnages, etc)

Guide d'installation rapide

Note: Pour obtenir un support, rejoignez notre serveur Discord (en anglais).

Démarage rapide (Automatique)

Compilation

Grasscutter utilise Gradle pour la gestion des dépendances et la compilation.

Prérequis

Windows

shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile

Linux (GNU)

bash
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile

Vous pouvez trouver le jar de sortie dans la racine du dossier du projet.

Dépanage

Pour une liste des problèmes communs et leur solution et pour demander de l'aide, veuillez rejoindre notre serveur Discord (en anglais) et dirigez vous vers le salon de support.


README Hn IN (`docs/README_hn-IN.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

ध्यान: हम हमेशा परियोजना में योगदानकर्ताओं का स्वागत करते हैं।. अपना योगदान जोड़ने से पहले कृपया हमारा ध्यानपूर्वक पढ़ें आचार संहिता.

वर्तमान सुविधाएँ

  • लॉग इन करना
  • युद्ध
  • मित्रों की सूची
  • टेलीपोर्टेशन
  • गाचा प्रणाली
  • सह-ऑप * आंशिक रूप से * काम करता है
  • कंसोल के माध्यम से राक्षसों को जन्म देना
  • इन्वेंट्री सुविधाएँ (आइटम / वर्ण प्राप्त करना, आइटम / वर्णों को अपग्रेड करना, आदि)

त्वरित सेटअप गाइड

टिप्पणी: समर्थन के लिए कृपया हमसे जुड़ें Discord.

त्वरित प्रारंभ (स्वचालित)

ध्यान दें: बस सर्वर शुरू करने के लिए, आपको बस jre की आवश्यकता है।

  • प्रॉक्सी: मिटमडंप (अनुशंसित), मिटमप्रॉक्सी, फिडलर क्लासिक, आदि।
  • गेम संस्करण REL3.7 प्राप्त करें (यदि आपके पास 3.7 क्लाइंट नहीं है तो उसे यहां पाया जा सकता है):: https://github.com/MAnggiarMustofa/GI-Download-Library/blob/main/GenshinImpact/Client/3.7.0.md

  • डाउनलोड करें latest Cultivation version. उपयोग .msi इंस्टालरr.

  • कलिवेशन (एडमिन के रूप में) खोलने के बाद, ऊपरी दाएं कोने में डाउनलोड बटन दबाएं।

  • डाउनलोड ऑल-इन-वन पर क्लिक करें

  • ऊपरी दाएं कोने में गियर पर क्लिक करें

  • गेम इंस्टॉल पथ को उस स्थान पर सेट करें जहां आपका गेम स्थित है.

  • कस्टम जावा पथ को इस पर सेट करें C:\Program Files\Java\jdk-17\bin\java.exe

  • अन्य सभी सेटिंग्स को डिफ़ॉल्ट पर छोड़ दें

  • लॉन्च करने के लिए आगे छोटे बटन पर क्लिक करें.

  • लॉन्च बटन पर क्लिक करें.

  • आप जो भी उपयोगकर्ता नाम चाहते हैं उसके साथ लॉग इन करें। पासवर्ड कोई मायने नहीं रखता.

इमारत

ग्रासकटर निर्भरता और निर्माण को संभालने के लिए ग्रैडल का उपयोग करता है।

आवश्यकताएं:

विंडोज

shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile

लिनक्स (जीएनयू)

bash
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile

आप आउटपुट जार को प्रोजेक्ट फ़ोल्डर के रूट में पा सकते हैं।.

समस्या निवारण

सामान्य मुद्दों और समाधानों की सूची और सहायता मांगने के लिए कृपया शामिल हों our Discord server और सपोर्ट चैनल पर जाएं.


README Id ID (`docs/README_id-ID.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Perhatian: Kami selalu menyambut kontributor untuk proyek ini. Sebelum menambahkan kontribusi Anda, harap baca Kode Etik kami.

Fitur terkini

  • Logging in
  • Pertempuran
  • Daftar teman
  • Teleportasi
  • Sistem gacha
  • Co-op sebagian berfungsi
  • Memunculkan monster melalui konsol
  • Fitur inventaris (menerima item/karakter, meng-upgrade item/karakter, dll)

Panduan penyiapan cepat

Catatan: Untuk dukungan, silakan bergabung dengan Discord kami.

Requirements

  • Java SE - 17 (link)

    Catatan: Jika Anda hanya ingin menjalankannya, maka jre saja sudah cukup.

  • MongoDB (recommended 4.0+)

  • Daemon proksi: mitmproxy (mitmdump, direkomendasikan), Fiddler Classic, etc.

Menjalankan

Catatan: Jika Anda memperbarui dari versi lama, hapus config.json untuk membuatnya kembali.

  1. Dapatkan grasscutter.jar
  2. Buat folder resources di direktori tempat grasscutter.jar berada dan pindahkan folder BinOutput dan ExcelBinOutput ke sana (Periksa wiki untuk detail lebih lanjut tentang cara mendapatkannya.)
  3. Jalankan Grasscutter dengan java -jar grasscutter.jar. Pastikan layanan mongodb juga berjalan.

Connecting to the client

½. Buat akun dengan menggunakan server console command.

  1. Pengalihan traffic: (pilih salah satu)

    • mitmdump: mitmdump -s proxy.py -k

      Trust CA certificate:

      ​Catatan: Sertifikat CA biasanya disimpan di %USERPROFILE%\ .mitmproxy, atau anda dapat download dari http://mitm.it

      ​ klik dua kali untuk menginstall ataupun juga

      • melalui command line

        shell
        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Fiddler Classic: Jalankan Fiddler Classic, nyalakan Decrypt https traffic dalam setting dan ubah port default di sana (Tools -> Options -> Connections) ke apa pun selain 8888, dan muat skrip ini.

    • File host

  2. Atur proxy jaringan ke 127.0.0.1:8080 atau port proxy yang anda tentukan.

Anda juga dapat menggunakan start.cmd untuk memulai server dan proxy daemon secara otomatis, tetapi Anda harus mengatur JAVA_HOME enviroment

Membangun

Grasscutter menggunakan Gradle untuk menangani dependensi & pembangunan.

Requirements:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile

Anda bisa menemukan output jar di root folder proyek.

Commands telah dipindahkan ke [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Quick Troubleshooting

  • Jika kompilasi tidak berhasil, periksa instalasi JDK Anda (JDK 17 dan validasi variabel bin PATH JDK)
  • Klien saya tidak terhubung, tidak login, 4206, dan lain-lain - Sebagian besar pengaturan daemon proxy Anda adalah masalahnya, jika menggunakan
    Fiddler pastikan berjalan pada port lain kecuali 8888
  • Urutan startup: MongoDB > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Game

README It IT (`docs/README_it-IT.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Attenzione: Diamo sempre il benvenuto ai contributori del progetto. Prima di contribuire, leggi attentamente il nostro Codice di condotta.

Funzionalità attuali

  • Login
  • Combattimento
  • Lista di amici
  • Teletrasporto
  • Sistema Gacha
  • Cooperativa parzialmente funzionale
  • Evocazione nemici usando la console
  • Inventario (ricevi e aggiorna oggetti/personaggi, ecc.)

Guida rapida all'installazione

Nota: Se hai bisogno di aiuto, unisciti al nostro Discord.

Requisiti

  • Java SE - 17 (link)

    Nota: se vuoi solo eseguirlo, jre è sufficiente.

  • MongoDB (consigliato 4.0+)

  • Servizi proxy: mitmproxy (mitmdump, consigliato), Fiddler Classic, ecc.

Esecuzione

Nota: Se hai aggiornato da una versione precedente, elimina config.json in modo che venga generato di nuovo.

  1. Ottieni "grasscutter.jar".
  2. Crea una cartella chiamata resources nella directory in cui si trova grasscutter.jar e sposta lì le cartelle BinOutput ed ExcelBinOutput (Vedi il wiki per maggiori dettagli su come ottenerli.)
  3. Esegui Grasscutter con java -jar grasscutter.jar. Assicurati che il servizio mongodb sia attivo.

Connessione al client

½. Crea un account usando il comando corrispondente nella console del server.

  1. Reindirizza il traffico: (scegli uno)

    • Con mitmdump: mitmdump -s proxy.py -k

      Autorizza il certificato CA:

      ​ **Nota:**Il certificato CA si trova solitamente in %USERPROFILE%\ .mitmproxy, oppure puoi scaricarlo da http://mitm.it

      Fai doppio clic su installa o ...

      • Con riga di comando

        shell
        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Con Fiddler Classic: esegui Fiddler Classic, abilita Decrypt https traffic nelle opzioni e cambia la porta predefinita in (Strumenti -> Opzioni -> Connessioni) in qualcosa di diverso da 8888, e carica questo script.

    • File host

  2. Imposta il proxy di rete a 127.0.0.1:8080 o la porta proxy impostata.

Puoi anche usare start.cmd per avviare automaticamente il server e il servizio proxy, ma devi impostare l'ambiente JAVA_HOME

Compilazione

Grasscutter usa Gradle per gestire le dipendenze e le build.

Requisiti:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd grasscutter
.\gradlew.bat # Impostazioni dell'ambiente
.\gradlew jar # Compila

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd grasscutter
chmod +x gradlew
./gradlew jar # Compila

Puoi trovare il jar generato nella cartella principale del progetto.

I comandi sono stati spostati al [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Soluzioni agli errori comuni

  • Se la compilazione non riesce, controlla l'installazione di JDK (JDK 17 e convalida la variabile JDK bin PATH)
  • Se il tuo client non si connette, non accede, da errore 4206, ecc... - Probabilmente il problema sono le tue impostazioni proxy, se usi
    Fiddler assicurati di utilizzare una porta diversa da 8888
  • Sequenza di avvio: MongoDB > Grasscutter > Servizio proxy (mitmdump, fiddler, ecc.) > Gioco

README Ja JP (`docs/README_ja-JP.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | HI

Attention: 私たちはプロジェクトへのコントリビュータをいつでも歓迎します。コントリビュートする前に、私たちの 行動規範をよくお読みください。

現在実装されている機能

  • ログイン
  • 戦闘
  • フレンドリスト
  • テレポート
  • 祈願 (ガチャ)
  • マルチプレイ (一部)
  • コンソールを通したモンスターのスポーン
  • インベントリ機能 (アイテム/キャラクターの受け取り、アイテム/キャラクターのアップグレードなど)

かんたんセットアップガイド

Note: サポートが必要な場合はGrasscutterのDiscordサーバーに参加してください。

パパっとスタートアップ

  • Java (バージョン17以降) を用意する
  • MongoDB Community Server を用意する
  • ゲームバージョンがREL4.0.Xのクライアントを用意する (4.0.Xのクライアントを持っていない場合は右のリンクからダウンロード): Github, クラウド(123云盘)
  • 最新の Cultivationをダウンロードする。.msiインストーラを使ってください。
  • 管理者権限を付与して Cultivation を実行した後、右上端にあるダウンロードアイコンのボタンを押す。
  • Download All-in-One をクリックする
  • 右上端にある歯車アイコンのボタンをクリックする。
  • Game Install Path にゲームファイルのパスを指定する。
  • Custom Java Path に、自分が用意したJavaのパスを指定する。 (例: C:\Program Files\Java\jdk-17\bin\java.exe)
  • その他の設定には手を付けず次の段階に進む。
  • Launch の隣にある小さいボタンを押す。
  • Launchボタンを押す
  • 好きなユーザ名でログインする。ログインに関する設定がデフォルトの場合、パスワードは何を入れてもいい。

ビルド

Grasscutterは依存関係とビルドの処理にGradleを使用しています。

必要要件:

Clone

shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter

Compile

Note: 環境によってはハンドブックの生成が失敗する場合があります。ハンドブックの生成をさせない場合は gradlew jar コマンドに -PskipHandbook=1 を付け加えてください。

Windows:

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # コンパイル環境の構築
.\gradlew jar # コンパイル

Linux:

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # コンパイル

手動によるハンドブックの生成

Gradleを使用する場合:

shell
./gradlew generateHandbook

NPMを使用する場合:

shell
cd src/handbook
npm install
npm run build

生成されたjarファイルはプロジェクトのルートフォルダにあります。

トラブルシューティング

よく散見されるトラブルとそれに対する解決策のまとめリストや、質問し誰かの助けを得たい場合は、GrasscutterのDiscordサーバーに参加し、サポートチャンネルを参照してください。


README Ko KR (`docs/README_ko-KR.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

주의 : 우리는 항상 프로젝트에 기여하는 사람들을 환영합니다. 기여를 하기 전, 행동 지침을 주의 깊게 읽어주세요.

현재 기능들

  • 로그인
  • 전투
  • 친구 목록
  • 워프 (TP)
  • 기원
  • 다인 모드 (부분적으로 작동)
  • 콘솔을 통한 몬스터 스폰
  • 인벤토리 기능 (캐릭터, 아이템 수령 및 캐릭터, 아이템 업그레이드 등)

설치 가이드

각주 : 도움이 필요할 경우 Discord에 가입하세요.

빠른 설치 (자동)

  • Java 17 설치

  • MongoDB Community Server 설치

  • 게임 버전 REL4.0.x 다운로드 (만약 4.0.x 클라이언트를 가지고 있지 않다면, 여기서 찾을 수 있습니다.):
    4.0.x 클라이언트 - GitHub
    4.0.x 클라이언트 - 구글 드라이브브

  • 최신 Cultivation 다운로드하세요. .msi 설치파일을 사용하면 됩니다.

  • (관리자 권한으로) Cultivation을 실행한 후, 우측 상단에 위치한 다운로드 버튼을 클릭하세요.

  • 올인원 다운로드를 클릭하세요.

  • 우측 상단에 위치한 톱니바퀴 버튼을 누르세요.

  • 게임 설치 경로를 게임이 위치한 경로로 설정하세요.

  • 사용자 지정 Java 경로 설정을 C:\Program Files\Java\jdk-17\bin\java.exe로 설정하세요.

  • 다른 모든 설정은 기본값으로 두세요.

  • 게임 시작 버튼 옆에 위치한 작은 버튼을 누르세요.

  • 게임 시작 버튼을 누르세요.

  • 원하는 사용자 이름으로 로그인하세요. 비밀번호는 무엇이든 가능합니다.

빌드하기

Grasscutter는 종속성 및 컴파일 처리를 위해 Gradle을 이용합니다.

빌드하기 위해 필요한 것들 :

클론

shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter

컴파일

각주: 핸드북 생성은 일부 시스템에서 실패할 수도 있습니다. 핸드북 생성을 비활성화하려면, gradlew jar명령에 -PskipHandbook=1명령줄 스위치를 추가하세요.

윈도우:

shell
.\gradlew.bat # 환경 준비
.\gradlew jar

리눅스 (GNU):

bash
chmod +x gradlew
./gradlew jar

핸드북 컴파일 (수동동)

Gradle 사용:

shell
./gradlew generateHandbook

NPM 사용:

shell
cd src/handbook
npm install
npm run build

프로젝트 폴더의 최상단에서 jar 파일을 찾을 수 있습니다.

문제 해결

흔한 문제들의 해결방법과 도움을 요청하려면, 우리의 디스코드 서버에 참가하고 support 채널에 가보세요.


README Pl PL (`docs/README_pl-PL.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Uwaga: Zawsze jesteśmy otwarci na wasz wkład w projekt. Przed zaproponowaniem zmian przeczytaj zasady postępowania (ENG).

Obecne funkcje

  • Logowanie się
  • Walka
  • Lista przyjaciół
  • Teleportacja
  • System losowania
  • Częściowo działający co-op
  • Wzywanie potworów przez konsolę
  • Działający ekwipunek (otrzymywanie przedmiotów/postaci, ulepszanie przedmiotów/postaci, itp)

Poradnik uruchamiania

Uwaga: Dla dodatkowej pomocy dołącz na nasz Discord.

Wymagania

  • Java SE - 17 (link)

    Uwaga: Jeśli chcesz tylko uruchomić serwer, samo jre powinno wystarczyć.

  • MongoDB (rekomendowane 4.0+)

  • Aplikacja proxy: mitmproxy (mitmdump, rekomendowane), Fiddler Classic, itp.

Uruchamianie

Uwaga: Jeśli aktualizujesz ze starszej wersji, usuń config.json aby wygenerować go ponownie.

  1. Zdobądź grasscutter.jar
  2. Utwórz folder resources w tym samym folderze gdzie znajduje się grasscutter.jar oraz przenieś foldery BinOutput i ExcelBinOutput do folderu resources (Sprawdź na wiki skąd możesz je pozyskać).
  3. Uruchom Grasscuttera komendą java -jar grasscutter.jar. Upewnij się, że mongodb service działa w tle.

Łączenie się z klientem

½. Utwórz konto za pomocą komend konsoli serwera.

  1. Przekieruj połączenia: (wybierz jedno)

    • mitmdump: mitmdump -s proxy.py -k

      Certyfikat CA:

      ​ Uwaga: CA certyfikat zazwyczaj znajduje się w %USERPROFILE%\.mitmproxy, albo możesz pobrać go stąd http://mitm.it

      ​ Naciśnij podwójnie, aby zainstalować lub ...

      • Za pomocą wierszu poleceń (lub PowerShella) wpisz

        shell
        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Fiddler Classic: Uruchom Fiddler Classic, włącz Decrypt https traffic w ustawieniach oraz zmień domyślny port (Tools -> Options -> Connections) na dowolny inny niż 8888, i wczytaj ten skrypt (w polu FiddlerScript).

    • Plik hosts

  2. Ustaw serwer proxy na 127.0.0.1:8080 albo inny wybrany przez ciebie port.

Możesz także użyć start.cmd aby uruchomić serwer gry i proxy, ale do tego musisz ustawić środowisko JAVA_HOME

Budowanie

Grasscutter używa Gradle, aby zajął się wymaganymi pakietami i kompilowaniem.

Wymagania:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Konfigurowanie środowiska
.\gradlew jar # Kompilowanie

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Kompilowanie

Gotowy plik jar możesz znaleźć w głównym folderze Grasscuttera.

Komendy zostały przeniesione do [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Rozwiązywanie problemów

  • Jeśli kompilowanie się nie powiodło, sprawdź swoje zainstalowane JDK (JDK 17 oraz wartość ścieżki (PATH) folderu bin należącego do JDK)
  • Mój klient nie może się połączyć, nie działa logowanie, 4206, itp... - Prawdopodobnie twoje proxy jest problemem, jeśli używasz Fiddlera upewnij się, że działa na innym porcie niż 8888
  • Sekwencja, którą powinieneś uruchamiać: MongoDB > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Game

README Ru RU (`docs/README_ru-RU.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Внимание: Мы всегда рады новому вкладу в проект. Однако, перед тем, как сделать свой вклад, пожалуйста, прочтите наш кодекс делового поведения.

Реализованные функции

  • Авторизация
  • Система боя
  • Список друзей
  • Телепортация
  • Гача-система
  • Кооп работает частично
  • Спавн монстров через консоль
  • Функции инвентаря (получение предметов/персонажей, улучшение предметов/персонажей, и т.п.)

Краткое руководство по установке

Заметка: Если вам требуется помощь, присоединитесь к нашему серверу Discord (На Английском).

Зависимости

  • Java SE - 17 (link)

    Заметка: Для того, чтобы просто запустить сервер, достаточно только jre.

  • MongoDB (рекомендуются версии 4.0+)

  • Прокси: mitmdump (рекомендуется), mitmproxy, Fiddler Classic и т.п.

Запуск

Заметка: Для обновления с более старой версии, удалите файл config.json, чтобы сгенерировать его заново.

  1. Получите файл grasscutter.jar одним из следующих способов:
  2. Создайте папку resources в той же директории, что и grasscutter.jar, и переместите туда свои папки BinOutput и ExcelBinOutput (Посетите вики для получения более подробной информации о том, где их найти.)
  3. Запустите Grasscutter с помощью команды java -jar grasscutter.jar. Убедитесь, что в этот момент запущен сервер mongodb.

Соединение с клиентом

½. Создайте аккаунт, введя соответствующую команду в консоли сервера.

  1. Перенаправьте трафик: (воспользуйтесь одиним из способов)

    • mitmdump: mitmdump -s proxy.py -k

      Доверьтесь сертификату CA:

      ​ Заметка: Обычно, сертификат CA хранится в папке %USERPROFILE%\ .mitmproxy. Также, вы можете скачать его с http://mitm.it

      ​ Дважды нажмите для установки, или же ...

      • С помощью командной строки

        shell
        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Fiddler Classic: Запустите Fiddler Classic, включите настройку Decrypt https traffic в опциях и измените порт по умолчанию (Меню -> Tools -> Options -> Connections) на что-то не равное 8888, после чего запустите этот скрипт во вкладке FiddlerSrcipt.

    • Файл hosts

  2. Установите прокси сети в 127.0.0.1:8080, либо в тот порт прокси, который вы задали.

Также, вы можете использовать start.cmd для автоматического запуска прокси и серверов, но для этого необходимо задать переменную среды JAVA_HOME

Сборка

Для сборки и решения проблем с зависимостями, Grasscutter использует Gradle.

Требуется:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile

Получившийся файл .jar можно найти в корневой папке проекта.

Команды были перемещены на [вики](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Краткое руководство по решению проблем

  • Если скомпилировать не удается, то проверьте установку своего JDK (JDK 17 и валидность переменных JDK, bin, PATH)
  • Клиент не подключается, не входит, выдаёт ошибку 4206 и т.д. - Скорее всего, проблема в том, как именно вы настроили прокси. При использовании
    Fiddler убедитесь, что он запущен на любом порте, кроме 8888
  • Порядок запуска: MongoDB > Grasscutter > Прокси (mitmdump, fiddler и т.д.) > Игра

README Vi VN (`docs/README_vi-VN.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

Chú ý: Chúng tôi luôn chào đón những người đóng góp cho dự án. Trước khi đóng góp, xin vui lòng đọc kỹ "các quy tắc" (Code of Conduct) của chúng tôi .

Các tính năng hiện tại

  • Đăng nhập
  • Chiến đấu, giao tranh
  • Danh sách bạn bè
  • Dịch chuyển
  • Hệ thống cầu nguyện (gacha)
  • Một phần của tính năng chơi chung (co-op)
  • Gọi ra quái vật từ bảng điều khiển (console)
  • Vật phẩm/Nhân vật (nhận vật phẩm/nhân vật, nâng cấp vật phẩm/nhân vật)

Hướng dẫn cài đặt nhanh

Ghi chú: Để được hỗ trợ, vui lòng tham gia Discord.

Phần mềm cần thiết

  • Java SE - 17 hoặc cao hơn

    Ghi chú: Nếu bạn chỉ muốn sử dụng, vậy thì cài đặt jre là đủ.

  • MongoDB (khuyến khích sử dụng phiên bản từ 4.0 trở lên)

  • Proxy Daemon: mitmproxy (nên sử dụng mitmdump), Fiddler Classic, v.v.

Chạy chương trình (server)

Ghi chú: Nếu bạn đã cập nhật từ phiên bản cũ hơn, hãy xóa config.json để tạo lại.

  1. Tải grasscutter.jar
  2. Tạo một thư mục resources trong cùng thư mục với Grasscutter.jar và chuyển các thư mục BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap của bạn đến resources (Xem wiki để biết cách lấy các thư mục đó)
  3. Chạy Grasscutter với câu lệnh java -jar grasscutter.jar. Hãy chắc rằng mongodb của bạn đã được chạy

Kết nối với game (client)

½. Tạo một tài khoản từ bảng điều khiển máy chủ (server console), sử dụng câu lệnh (command).

  1. Chương trình chuyển hướng lưu lượng truy cập: (chỉ sử dụng 1)

    • mitmdump: mitmdump -s proxy.py -k

      • Chứng chỉ CA tin cậy:

        • Chứng chỉ CA thường được lưu trữ trong %USERPROFILE%\.mitmproxy, click đúp mitmproxy-ca-cert.cer để cài đặt hoặc...

        • Sử dụng với command line (cmd) (yêu cầu quyền quản trị viên)

          shell
          certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
    • Fiddler Classic: Mở Fiddler Classic, bật tùy chọn Decrypt HTTPS traffic trong (Tools -> Options -> HTTPS) và thay đổi cổng (port) mặc định (Tools -> Options -> Connections) khác 8888, chạy script này (sao chép và dán script vào trong FiddlerScript) và bấm Save Script.

    • Hosts file

  2. Cài đặt network proxy thành 127.0.0.1:8080 hoặc cổng proxy mà bạn đã chỉ định.

  • Với mitmproxy: Sau khi thiết lập proxy và cài đặt chứng chỉ, hãy kiểm tra http://mitm.it/ để xem liệu lưu lượng có đang thông qua mitmproxy hay không.

Bạn cũng có thể sử dụng start.cmd để tự động khởi động máy chủ (servers) và proxy daemons, nhưng trước đó bạn phải thiết lập biến môi trường JAVA_HOME và cấu hình tệp start_config.cmd.

Tự tạo server (Building)

Grasscutter sử dụng Gradle để xử lý các phần phụ thuộc và xây dựng.

Phần mềm cần thiết:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Thiết lập môi trường (Setting up environments)
.\gradlew jar # Biên dịch (Compile)

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Biên dịch (Compile)

Bạn có thể tìm thấy tệp jar đã được biên dịch tại thư mục gốc của dự án.

Các câu lệnh (commands) đã được chuyển đến [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!

Khắc phục nhanh các sụ cố

  • Nếu quá trình biên dịch (compile) không thành công, hãy kiểm tra cài đặt JDK của bạn (Đảm bảo rằng JDK phải từ phiên bản 17 trở lên và PATH của JDK đã được cài đặt).
  • Không thể kết nối, không thể đăng nhập, 4206, v.v. - Vấn đề thường là do cài đặt proxy (proxy daemon) của bạn. Nếu bạn đang sử dụng Fiddler, hãy đổi cổng (port) mặc định sang bất cứ cổng nào khác 8888.
  • Thứ tự khởi động: MongoDB > Grasscutter > Proxy Daemon (mitmdump, fiddler, v.v.) > Game

README Zh CN (`docs/README_zh-CN.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

注意: 我们始终欢迎项目的贡献者。但在做贡献之前,请仔细阅读我们的代码规范。

当前功能

  • 登录
  • 战斗
  • 好友
  • 传送
  • 祈愿
  • 多人游戏 部分 可用
  • 从控制台生成魔物
  • 背包功能(接收或升级物品、角色等)。

快速安装指南

注意: 如需帮助,请加入我们的Discord。

快速开始(全自动)

  • 获取Java 17:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

  • 获取MongoDB社区版

  • 获取游戏4.0正式版 (如果你没有4.0的客户端,可以在这里找到):
    123pan share
    github

  • 下载最新的Cultivation版本(使用以“.msi”为后缀的安装包)。

  • 以管理员身份打开Cultivation,按右上角的下载按钮。

  • 点击“下载 Grasscutter 一体化”

  • 点击右上角的齿轮

  • 将游戏安装路径设置为你游戏所在的位置。

  • 将自定义Java路径设置为C:\Program Files\Java\jdk-17\bin\java.exe

  • 保持所有其它设置为默认值

  • 点击“启动”按钮旁边的小按钮。

  • 点击“启动”按钮。

  • 随便想一个用户名登录,不需要密码。

构建

Grasscutter使用Gradle来处理依赖和构建。

前置:

Windows

shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # 设置开发环境
.\gradlew jar # 编译

Linux(GNU)

bash
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # 编译

你可以在项目的根目录找到输出的jar。

故障排除

获取常见问题的解决方案或寻求帮助,请加入我们的Discord服务器并进入“support”频道。


README Zh TW (`docs/README_zh-TW.md`)

EN | 简中 | 繁中 | FR | ES | HE | RU | PL | ID | KR | FIL/PH | NL | JP | IT | VI | हिंदी

請注意: 歡迎成為本專案的貢獻者。在提交 PR 之前, 請仔細閱讀程式碼規範。

當前功能

  • 登入
  • 戰鬥
  • 好友列表
  • 傳送系統
  • 祈願系統
  • 從控制台生成魔物
  • 多人遊戲 部分 可用
  • 物品欄相關 (接收物品/角色, 升級角色/武器等)

快速設定指南

注意: 如需幫助請加入 Discord

快速開始(全自動)

  • 下載 Java 17:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

  • 下載 MongoDB 社區伺服器

  • 下載遊戲版本 REL3.7(如果你沒有的話,可以在這裡找到 3.7 客戶端)

  • 下載 最新的 Cultivation 版本。使用 .msi 安裝程式。

  • 以管理員身分打開 Cultivation,按右上角的下載按鈕。

  • 點擊 Download All-in-One

  • 點擊右上角的齒輪

  • 將遊戲安裝路徑設置為你的遊戲所在的位置。

  • 將自定義 Java 路徑設置為 C:\Program Files\Java\jdk-17\bin\java.exe

  • 其他設置保持預設

  • 點擊啟動旁邊的小按鈕。

  • 點擊啟動按鈕。

  • 用你想要的用戶名登錄,密碼無所謂。

編譯

Grasscutter 使用 Gradle 來處理依賴及編譯。

依賴:

Windows

shell
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # 建立開發環境
.\gradlew jar # 編譯

Linux

bash
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # 編譯

編譯後的 JAR 檔案存放在根目錄

命令列表請到 [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands) 查看

快速排除問題

  • 如果編譯失敗, 請檢查 JDK 安裝是否正確 (要求 JDK 17 並確認 JDK 處於環境變數 PATH 中)
  • 客戶端無法登入/連線, 4206, 其他問題... - 大部分情況是因為代理設定本身就是問題。
    如果使用 Fiddler 請確認 Fiddler 監聽通訊埠不是 8888
  • 啟動順序: MongoDB > Grasscutter > 代理程式 (mitmdump, fiddler 等) > 客戶端

Quests Missing Scripts (`docs/quests/Missing-Scripts.md`)

World Bosses

  • Oceanid_Boss_1_4
  • V1_6/Oceanid_Boss_1_6
  • DrakePrimoRockBoss
  • V2_3/Boss_Hound

Dungeons

  • V2_1/Boss_Shougun_Beta
  • V2_1/Boss_LaSignora

Activities/Events

Aster (unreconciled stars)

  • AsterMiddle
  • AsterBig

FleurFair (windblume)

  • FleurFair_Parachute
  • FleurFair_BalloonShoot

NEW_ACTIVITY_DRAGONSPINE (The Chalk Prince and the Dragon)

  • IceFlowerBossBattle

NEW_ACTIVITY_WINTER_CAMP (Shadows Amidst Snowstorms)

  • V2_3/WinterCampDevice
  • V2_3/WinterCampGacha
  • V2_3/WinterCampMimik
  • V2_3/WinterCampMimik_Watcher
  • V2_3/WinterCampMimik_Quest
  • V2_3/WinterCampParkour
  • V2_3/WinterCampSnowman

NEW_ACTIVITY_TREASURE_MAP

  • TreasureMapEvent
  • V2_0/TreasureMapEventV2

unordered

  • Activity_ArenaChallengeSub
  • Activity_ArenaChallengeMain

Scene1

  • Fishing_EventTest
  • test_New_LuaCallType
  • V2_5/TEST_Require

Scene 500030

  • SGV_Test

Other/Unordered

  • Activity_Endora
  • AttachChildChallenge
  • BlackBoxPlay/ChargingPort
  • BlackBoxPlay/DrawOneLine
  • BlackBoxPlay/DrawOneLinePlus
  • BlackBoxPlay/EnergyAmplifier
  • BlackBoxPlay/LightResonanceStone
  • BlackBoxPlay/LightSquare
  • BlackBoxPlay/LightSquareV2
  • BlackBoxPlay/MagneticGear
  • BlackBoxPlay/TeleportHighway
  • BubbleGame
  • BulletGame
  • DragonSpineBlossomA
  • DragonSpineBlossomB
  • FlyChallenge
  • MonsterQuickDeath
  • SnowDungeon
  • TowerDefense_Challenge
  • TowerDefense_Gear
  • TowerDefense_Monster
  • TowerDefense_Monster02
  • TowerDefense_Trap
  • WindFlora
  • WindFlora_Arenashake
  • WindFlora_Boss_RandomList
  • WindFlora_Laser
  • WindFlora_Main
  • WindFlora_RecordFloorBreakable
  • WindFlora_RecordFloorMemory
  • WindFlora_RecordFloorTransparent
  • WindFlora_ReTrans
  • V1_5/Challenge_SetEyePoint
  • V1_5/HideAndSeek_Gallery
  • V1_5/HideAndSeek_Skill
  • V1_5/HilichurlLevel
  • V1_6/TuneStone
  • V1_6/BoatRace
  • V1_6/General_Watcher
  • V1_6/KeleeBombBattle
  • V1_6/Multi_Badminton
  • V1_6/Optimization
  • V1_6/ScoreChallenge
  • V1_6/TuneStone
  • V1_6/VehicleBattle
  • V2_0/BlitzRush_Watcher
  • V2_0/BlossomGroup
  • V2_0/DrawOneLine_TreasureMap
  • V2_0/ElectricCore
  • V2_0/ElectricCore02
  • V2_0/ElementFloor
  • V2_0/ExhibitionRoleElectricBomb
  • V2_0/ExhibitionRoleElectricPowerSource
  • V2_0/OreBlossomGroup
  • V2_0/PhotoTakenSuccessfully
  • V2_0/RaioCotter
  • V2_0/SetPerformanceOptimizationWithRegion_V2.0
  • V2_0/SetPerformanceOptimizationWithRegion_V3.0
  • V2_0/SetPerformanceOptimizationWithRegion_Event_V2.0
  • V2_0/TemariChallenge
  • V2_0/TemariChallengePreQuest
  • V2_0/ThunderFloor
  • V2_0/TowerDefense_Challenge_V2.0
  • V2_0/TowerDefense_Gear_V2.0
  • V2_0/TowerDefense_Monster_V2.0
  • V2_0/TowerDefense_MonsterWaveConfig_V2.0
  • V2_1/Boss_Raijin
  • V2_1/FightingStage
  • V2_1/FishingChallenge
  • V2_1/FishingChallenge_Moonfin
  • V2_1/ImmortalPot
  • V2_1/ImmortalPotEx
  • V2_1/Monster_Tide_Test
  • V2_1/MoonlitCamp
  • V2_1/PirateHelm
  • V2_1/PirateShoji
  • V2_1/Wakura
  • V2_1/WoodFloorPlayOrder
  • V2_1/WoodFloorPlaySame
  • V2_1/SeaGodStatue
  • V2_2/Ayesha
  • V2_2/Circuit
  • V2_2/DayFinishSuite
  • V2_2/DecalDecode
  • V2_2/Dig
  • V2_2/PillarMove
  • V2_2/SelfLoopSeeli
  • V2_2/ShowDecals
  • V2_2/RogueDungeon_BOSS
  • V2_2/RogueDungeon_ChestRoom
  • V2_2/RoqueDungeon_FirstRoom
  • V2_2/RogueDungeon_Main
  • V2_2/RogueDungeon_Require
  • V2_2/TsurumiBirdFather
  • V2_2/TsurumiStoneSeq
  • V2_2/TsurumiTorch
  • V2_3/EnergyDisk
  • V2_3/EnergyDisk_Dungeon
  • V2_3/HachiBattle
  • V2_3/HachiDungeon
  • V2_3/HachiSneak
  • V2_3/MistTrialV2
  • V2_3/MistTrialV2_BuffLog
  • V2_4/BoxPusher
  • V2_4/DeepSeaDrakeBoss
  • V2_4/EnvStateManage
  • V2_4/EnvState
  • V2_4/EnvStateControl
  • V2_4/EnvStateWorktop
  • V2_4/Firecracker
  • V2_4/HideAndSeek_Gallery_V2
  • V2_4/HideAndSeek_Skill_V2"
  • V2_4/MiniOsial
  • V2_4/Monster_CombatEnd_Handle
  • V2_4/PotionStage
  • V2_4/QunyugeDebris
  • V2_4/QunyugeDebris_Stop_Balloon
  • V2_4/SeaLamp_Challenge_Manager
  • V2_4/SealedAltar
  • V2_4/WallMaze
  • V2_5/DarkPressure
  • V2_5/DarkStair
  • V2_5/FightingStage_ByNum
  • V2_5/FightingStage_ByTime
  • V2_5/GiliGiliI_Boss
  • V2_5/GiliGiliI_Quest
  • V2_5/HM_BalloonGallery
  • V2_5/Huarongdao
  • V2_5/RecircleChallenge
  • V2_5/ReviveBoss
  • V2_5/ReviveCrystalEnergy
  • V2_5/UGCDungeon_Reforge
  • V2_5/UGCDungeon
  • V2_5/Watcher_Energy
  • V2_5/Watcher_Puzzle
  • V2_5/Watcher_Tower
  • V2_6/BW_LightRoadTrack
  • V2_6/BW_RandomLoadSuite
  • V2_6/CalculateBulletForward
  • V2_6/CrystalLink
  • V2_6/CYJY_Enter_Trans_Player
  • V2_6/DigPlay
  • V2_6/DropRockAbyssBulletTrigger
  • V2_6/HM_WoodenStakeChallenge
  • V2_6/IrodoriMaster
  • V2_6/PhotographActivity
  • V2_6/TowerDefense_Challenge_V3.0
  • V2_6/TowerDefense_Gear_V3.0
  • V2_6/TowerDefense_Monster_V3.0
  • V2_6/TowerDefense_MonsterWaveConfig_V3.0"
  • V2_6/TowerDefense_SpecialGears_V3.0
  • V2_7/rogue_rotate_whitebox
  • V2_7/Activity_GachaSync
  • V2_7/Activity_LumenArena
  • V2_7/Activity_LumenProtect
  • V2_7/Activity_LumenCharge
  • V2_7/Activity_LumenWipeout
  • V2_7/BW_NearBossAuthorityChange
  • V2_7/HM_FindTubby
  • V2_7/Rogue_Cell
  • V2_7/rogue_rotate_whitebox
  • V2_7/Rogue_Terrain_1
  • V2_7/Rogue_Terrain_2
  • V2_7/Rogue_Terrain_3
  • V2_7/YeLan_BoxPusher
  • TD_Lib

Resources World Locations (`docs/resources/World Locations.txt`)

Excels:

  • WorldAreaConfigData.json
  • scene3_point.json (BinOutput/Scene/Trans)

textmaps contain the names of the areas

if a world area has an 'AreaType' of 'LEVEL_1', it has the following properties:

  • there is not an 'AreaID2' field
  • there is an 'elementType' field
  • this is a PRIMARY region

if a world area has an 'AreaType' of 'LEVEL_2', it has the following properties:

  • there is not an 'elementType' field
  • the 'AreaID1' field is inherited from its parent area
  • this is a SECONDARY region

the textmap hash is of the secondary region's name, unless it's a primary region


Quests Lines The Outlander Who Caught The Wind (Prologue Act 1) (`docs/quests/lines/The-Outlander-Who-Caught-the-Wind-(Prologue-Act-1).md`)

The Outlander Who Caught the Wind (Prologue Act 1)

To start/enable quests run /quests enable or activate questing in the server settings.

Reading The Table

  • ✔️ Natural Progression possible; works as intended
  • ⚠️ Natural Progression possible; bugs occur, see note
  • ❌ Natural Progression not possible; see note(s)
  • ❓ Unknown Behavior
  • bw = 'big-world scripts' enabled
  • m = Main Quest
The Outlander Who Caught the Wind (Prologue Act 1) Works (bw-on) Works (bw-off) Log in/out Works Problems/Notes
m351 : Wanderer's Trail[500 CExp, 225 AExp, 975 Mora] ✔️ ⚠️ ✔️ completion possible without commands
35104 : Traveler and Paimon Intro Cutscene ✔️ ✔️ ✔️
35100 : Go to Paimon ✔️ ❓ ✔️
35107 : #QUEST_HIDDEN ✔️ ❓ ✔️
35101 : Follow Paimon ✔️ ❓ ✔️
35106 : Unlock the Teleport Waypoint ✔️ ✔️ ✔️
35105 : Go to the foot of the cliff ✔️ ❓ ✔️ If not relogging, Paimon will now be with you and move with you.
35103 : [N/A] 469284815 #QUEST_HIDDEN ✔️ ❓ ✔️
35102 : Climb to the top of the rock face ✔️ ❓ ✔️ Quest 35200 was automatically added to the In Progress list.
m352 : Bird's Eye View(Teyvat Archon Quest Prologue: Act 1 - 1)[500 CExp, 225 AExp, 975 Mora] ✔️ ❓ ✔️ completion possible without commands
35200 : Follow the path ✔️ ❓ ✔️ No new quest marker is automatically added. Opening the quest journal and selecting navigate will added it to the screen in the correct location.
35201 : Go to Paimon ✔️ ❓ ✔️ Paimon will stay with the player.
35202 : Talk to Paimon ✔️ ❓ ✔️
35203 : Follow Paimon ✔️ ❓ ✔️ After logout it resets the user to 35202
35204 : Swim to the island in Starfell Lake ✔️ ❓ ✔️
35205 : Bird's Eye View - Statue of The Seven (I) unlocked ✔️ ❓ ✔️ TODO check logout
m353 : Unexpected Power(Teyvat Archon Quest Prologue: Act 1 - 2)[20 Primo, 575 CExp, 250 AExp, 1100 Mora, 10 Sweet Madame, 10 Teyvat Fried Egg] ✔️ ❓ ✔️ completion possible without commands, but slime multiply every time you log out and back in #20
35301 : Unexpected Power - Talk to Paimon ✔️ ❓ ✔️
35312 : Unexpected Power - Exit area rollback failed ✔️ ❓ ✔️ Player exits area before triggering 35301, you can call add 35312 which will trigger cutscene, but you will have a UI bug
35302 : Unexpected Power - Unleash Your Elemental Skill ✔️ ❓ ✔️
35309 : Unexpected Power - Defeat the slimes ✔️ ❓ ✔️
35303 : Unexpected Power - Hold Elemental Skill ✔️ ❓ ✔️ holding progressbar is missing
35310 : Unexpected Power - Defeat the slimes ✔️ ❓ ✔️
35304 : Unexpected Power - Use Elemental Burst ✔️ ❓ ✔️
35311 : Unexpected Power - Defeat the slimes ✔️ ❓ ✔️
m355 : Forest Rendezvous(Teyvat Archon Quest Prologue: Act 1 - 3)[575 CExp, 250 AExp, 1100 Mora] ✔️ ❓ ✔️ natural progression possible
35501 : Go to Mondstadt ✔️ ❓ ✔️ Wait until Dvalin flies over.
36100 : #QUEST_HIDDEN ✔️ ❓ ✔️ Cutscene trigger for dvalin flying over the players head
36101 : #QUEST_HIDDEN ✔️ ❓ ✔️
35502 : Advance to the heart of the forest ✔️ ❓ ✔️
35503 : Talk to Paimon ✔️ ❓ ✔️
35504 : Investigate what Paimon has found ✔️ ❓ ✔️
35505 : Talk to Paimon ✔️ ❓ ✔️
m354 : Wind-Riding Knight(Teyvat Archon Quest Prologue: Act 1 - 4)[625 CExp, 275AExp, 1200 Mora] ✔️ ❓ ✔️
35401 : Keep heading towards Mondstadt ✔️ ❓ ✔️
35402 : Talk to the perky girl ✔️ ❓ ✔️
35404 : Use Amber to defeat the airborne slimes ✔️ ❓ ✔️
35405 : #QUEST_HIDDEN ✔️ ❓ ✔️ wait until the talk is finished
35403 : Go to the location designated by Amber ✔️ ❓ ✔️
m360 : Going Upon the Breeze(Teyvat Archon Quest Prologue: Act 1 - 5)[20 Primo, 972 CExp, 275 AExp, 1800 Mora, 8 EnOre, 1 Recurve Bow] ✔️ ❓ ⚠️ completion possible without commands, but with some smaller bugs
36001 : Defeat the nearby hilichurls ✔️ ❓ ⚠️ goal location might be wrong after logout. Monsters might multiply after logout
36003 : Clear out the nearby hilichurl camp ✔️ ❌ ✔️ There are more hillichurls then there should be. If bw script are disabled, changing the chest to open will break the script and hinder progress
36004 : Talk to Amber ✔️ ❓ ✔️
36005 : Keep heading towards Mondstadt ✔️ ❓ ✔️
m356 : City of Freedom(Teyvat Archon Quest Prologue: Act 1 - 6)[850 CExp, 250 AExp, 1625 Mora, 7 EnOre] ⚠️ ❓ ⚠️ completion possible, but with some smaller bugs
35601 : Talk to Amber ✔️ ❓ ✔️
35602 : [CHS] - (test)跟随安柏#QUEST_HIDDEN ⚠️ ❓ ⚠️ softlock during showing of tipps possible
35603 : Go to the location designated by Amber ✔️ ❓ ✔️
35604 : Talk to Amber ✔️ ❓ ✔️
35605 : [CHS] - (test)开始飞行教学#QUEST_HIDDEN ✔️ ❓ ✔️
35606 : Meet Amber at the fountain plaza ✔️ ❓ ✔️
m357 : Dragon Storm(Teyvat Archon Quest Prologue: Act 1 - 7)[20 Primo, 1250 CExp, 275 AExp, 2400 Mora, 2 FineEnOre] ✔️ ❓ ✔️ completion possible with smaller bugs
35721 : Dvalin's Assault #QUEST_HIDDEN ✔️ ❓ ✔️ Watch the cutscene and then wait to be airborne
35722 : Fend off Stormterror ⚠️ ❓ ✔️ Using the movement keys (W,A,S,D) in the Dvalin fight might kick you out of the instance. INVESTIGATE FURTHER
35725 : [CHS] - (test)地城内cs#QUEST_HIDDEN ✔️ ❓ ✔️ You will return to the main world
35723 : Talk to Amber ⚠️ ❓ ✔️ Weather is not stormy. Finish conversation with Amber and Kaeya, the go the KoF Headquarters
35724 : Go to the Knights of Favonius Headquarters ✔️ ❓ ✔️
m358 : Knights of Favonius(Teyvat Archon Quest Prologue: Act 1 - 8)[1025 CExp, 225 AExp, 1950 Mora, 43 EnOre] ✔️ ❓ ✔️ completion possible
35800 : #QUEST_HIDDEN ⚠️ ❓ ✔️ wait two day via time forward to progress
35801 : Enter the Knights of Favonius Headquarters ✔️ ❓ ✔️
35802 : Knights of Favonius - Talk to Jean ✔️ ❓ ✔️
m306 : Winds of the Past(Teyvat Archon Quest Prologue: Act 1 - 9.1)[20 Primo, 1550 CExp, 275 AExp, 3000 Mora, 3 FineEnOre] ✔️ ❓ ✔️ completion possible with two commands
30600 : Meet Amber at the temple ✔️ ❓ ✔️
30601 : Talk to Amber ✔️ ❓ ✔️
30602 : Enter the temple ✔️ ❓ ✔️ Use /dungeon 1001 to go inside the dungeon
30607 : [CHS] - (test)到教学点1#QUEST_HIDDEN ✔️ ❓ ✔️
30608 : [CHS] - (test)到教学点2#QUEST_HIDDEN (Tutorial on how to aim and fire using Amber) ✔️ ❓ ✔️
30609 : [CHS] - (test)到教学点3#QUEST_HIDDEN ✔️ ❓ ✔️
30612 : [CHS] - (test)到垂直风场#QUEST_HIDDEN (Tutorial on how to burn stuff with Pyro) ✔️ ❓ ✔️
30611 : [CHS] - (test)地城失败#QUEST_HIDDEN (Seems to be in case the dungeon is failed) ✔️ ❓ ✔️ Walk forward and detroy the Dragon's Breath
30603 : Explore the temple's depths ✔️ ❓ ✔️
30610 : Winds of the Past - Talk to Amber ✔️ ❓ ✔️
30604 : Winds of the Past - Leave Domain (Will not show on HUD) ✔️ ❓ ✔️
m307 : Crash Course(Teyvat Archon Quest Prologue: Act 1 - 9.2)[20 Primo, 1550 CExp, 275 AExp, 3000 Mora, 3 FineEnOre, 1 Traveler's Handy Sword, Kaeya lv1 c0] ✔️ ⚠️ ✔️ completion possible with smaller bugs
30700 : Meet Kaeya at the temple ✔️ ❓ ✔️
30701 : Talk to Kaeya ✔️ ❓ ✔️
30702 : Enter the temple ✔️ ⚠️ ✔️
30710 : Talk to Kaeya ✔️ ✔️ ✔️
30707 : [CHS] - (test)到教学点1#QUEST_HIDDEN ✔️ ✔️ ✔️
30708 : [CHS] - (test)到教学点2#QUEST_HIDDEN (Cryo freezing tutorial) ✔️ ✔️ ✔️ Freezing is not working, dashing though the fire works though
30712 : [CHS] - (test)到教学点4#QUEST_HIDDEN (Hydro Amber tutorial) ✔️ ✔️ ✔️
30711 : [CHS] - (test)地城失败#QUEST_HIDDEN (fail dungeon fallback) ✔️ ✔️ ✔️
30709 : [CHS] - (test)到教学点3#QUEST_HIDDEN ✔️ ✔️ ✔️
30703 : Explore the temple's depths ✔️ ✔️ ✔️ destroy the Dragons Breath
30715 : Talk to Kaeya ✔️ ✔️ ✔️
30713 : Kaeya cutscene ✔️ ✔️ ✔️
30704 : Leave Domain ✔️ ✔️ ✔️
m308 : Sparks Amongst the Pages(Teyvat Archon Quest Prologue: Act 1 - 9.3)[20 Primo, 1550 CExp, 275 AExp, 3000 Mora, 3 FineEnOre, 1 Otherworldly Story, Lisa lv1 c0] ✔️ ⚠️ ✔️ completion possible with a few commands
30800 : Meet Lisa at the temple ✔️ ❓ ✔️
30801 : Talk to Lisa ✔️ ❓ ✔️
30802 : Enter the temple ✔️ ❌ ✔️
30810 : Talk to Lisa ✔️ ✔️ ✔️
30807 : [CHS] - (test)到教学点1#QUEST_HIDDEN ✔️ ✔️ ✔️
30812 : [CHS] - (test)到教学点#QUEST_HIDDEN ✔️ ⚠️ ✔️
30809 : [CHS] - (test)到教学点3#QUEST_HIDDEN ✔️ ✔️ ✔️
30808 : [CHS] - (test)到教学点2#QUEST_HIDDEN ✔️ ✔️ ✔️
30811 : [CHS] - (test)地城失败#QUEST_HIDDEN (fail dungeon fallback) ✔️ ✔️ ✔️
30803 : Explore the temple's depths ✔️ ✔️ ✔️
30814 : Talk to Lisa ✔️ ✔️ ✔️
30804 : Leave Domain ✔️ ✔️ ✔️ no autoprogression

--- METRICS ---