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 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 driveUPDATE 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
.msiinstaller.After opening Cultivation (as admin), press the download button in the upper right corner.
Click
Download All-in-OneClick 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.exeLeave 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:
- Java Development Kit 17 or higher
- Git
- NodeJS (Optional, for building the handbook)
Clone
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd GrasscutterCompile
Note: Handbook generation may fail on some systems. To disable the handbook generation, append -PskipHandbook=1 to the gradlew jar command.
Windows:
.\gradlew.bat # Setting up environments
.\gradlew jarLinux (GNU):
chmod +x gradlew
./gradlew jarCompiling the Handbook (Manually)
With Gradle:
./gradlew generateHandbookWith NPM:
cd src/handbook
npm install
npm run buildYou 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
- Missing Scripts - These are Lua scripts which are required for functionality of certain game elements.
- The Outlander Who Caught the Wind (Prologue Act 1)
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
- The client will send
DraftOwnerStartInviteReq - The server will send
DraftOwnerInviteNotifyto all clients. - The server will send
DraftOwnerStartInviteRsp
Matching in a Co-Op Game
- World owner talks to Gygax and begins a Windtrace game.
- The packet
DraftOwnerInviteNotifyis sent to clients. - Clients will respond with
DraftGuestReplyInviteReq(client-side) - The server will respond with
DraftGuestReplyInviteRsp - The server will respond with
DraftInviteResultNotify
Starting Windtrace
- If
DraftInviteResultNotifyis a success, the server will send a series of packets.- A series of
SceneEntityAppearNotifypackets. NpcTalkStateNotifyPlayerEnterSceneNotifyMultistagePlayInfoNotify
- A series of
- The players are then teleported to the Windtrace map in their locations.
- Server will send packets to clients. (this is server boilerplate)
- The server sends another
MultistagePlayInfoNotifyto clients.
Changing Avatars - Others
- The server will send a
AvatarEquipChangeNotifypacket to clients. - The server will send a
SceneTeamUpdateNotifypacket to clients. - The server will send a
HideAndSeekPlayerSetAvatarNotifypacket to clients.
Getting Ready
- The client will send
HideAndSeekSetReadyReqto the server. - The server will reply with
HideAndSeekPlayerReadyNotifyto clients. - The server will send
MultistagePlayInfoNotifyto clients. - The server will reply with
HideAndSeekSetReadyRspto the client. - If all players are ready, the server will move on to start Windtrace.
Starting Windtrace
- When all players are ready, the server will send a series of packets to players.
GalleryStartNotifySceneGalleryInfoNotifyMultistagePlayInfoNotifyMultistagePlayStageEndNotify- This will only get sent at the
1.countdown.
Notes:
GuestReplyInviteRspis sent afterDraftInviteResultNotify.
`DraftOwnerInviteNotify`
invite_deadline_time- This is the time when the invite expires.draft_id- The value is always3001for Windtrace.
`DraftOwnerStartInviteReq`
draft_id- The value is always3001for Windtrace.
`DraftOwnerStartInviteRsp`
draft_id- The value is always3001for Windtrace.invite_fail_info_list- A list of players who weren't invited.retcode- The response code.wrong_uid- Always0. (undocumented)
`DraftGuestReplyInviteReq`
draft_id- The value is always3001for Windtrace.is_agree- A boolean value for whether the client accepts the invite.
`DraftGuestReplyInviteRsp`
draft_id- The value is always3001for 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 always3001for 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 always133002121for Windtrace.
`MultistagePlayInfoNotify` - Initial + PostEnterSceneReq
- Image Reference:
info- MultistagePlayInfo data.group_id- The value is always133002121for 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.
- This will be
battle_info_map- Contains a dictionary of UID ->HideAndSeekPlayerBattleInfoobjects.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 beHIDE_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 beHIDE_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 beHIDE_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 beHIDE_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 always7056for Windtrace.start_time- This value is always2444for Windtrace.- This value is
200when displaying game end statistics.
- This value is
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 asstart_time.
`SceneGalleryInfoNotify` - Starting Windtrace
gallery_info- SceneGalleryInfo data.end_time- This value is always the same asstart_time.start_time- This value is always2444for Windtrace.- This value is
200when displaying game end statistics.
- This value is
gallery_id- This value is always the same asgallery_idfromGalleryStartNotify.stage- The current stage of the gallery.- This will be
GALLERY_STAGE_TYPE_START.
- This will be
owner_uid- The UID of the player who started the Windtrace game.hide_and_seek_info- SceneGalleryHideAndSeekInfovisible_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 always0for 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 ofExhibitionDisplayInfo- 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 always0.online_id- This value is always blank.profile_picture-ProfilePictureobject.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.csvcommands.jsonentities.csvavatars.csvscenes.csvquests.csvitems.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_lifexxxx5-sands_of_eonxxxx3-circlet_of_logos/plume_of_death- Use
circlet_of_logoswith a complete set - Use
plume_of_deathwith part of a set.
- Use
xxxx2-plume_of_deathxxxx1-goblet_of_eonothem
- Alternate source:
- 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
1001and1099.
- Avatar Items are between ranges
- 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
...List.jsonfiles - Grasscutter Command Helper- Internal Asset API - Project Amber
Overview (`src/main/java/emu/grasscutter/game/managers/stamina/README.md`)
Stamina Manager
UpdateStamina
// will use consumption.consumptionType as reason
public int updateStaminaRelative(GameSession session, Consumption consumption);public int updateStaminaAbsolute(GameSession session, String reason, int newStamina)Pause and Resume
public void startSustainedStaminaHandler()public void stopSustainedStaminaHandler()Stamina change listeners and intercepting
BeforeUpdateStaminaListener
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
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 בשביל ליצור אותו מחדש מעודכן
להשיג
grasscutter.jar- להוריד אחד מוכן מתוך מוכנים
- לבנות אחד בעצמך
תצרו תיקייה בשם
resourcesבתוך התיקייה איפה שהקובץ grasscutter.jar נמצא ותעבירו את התיקיותBinOutputו-ExcelBinOutputלשם (תקראו את המדריך המלא בשביל לקבל יותר מידע לגבי אלה.)תריצו את השרת בעזרת פקודה
java -jar grasscutter.jar. תדאגו שהשירות mongodb פועל באותו הזמן ברקע
התחברות עם המשחק
½. תצרו משתמש משחק על ידי שימוש בפקודות השרת.
תעבירו את הניתוב: (תבחרו אחת מהדרכים)
- שימוש בmitmdump: פקודת
mitmdump -s proxy.py -kבשורת פקודה
אישור שימוש החוזה שלהם:
הערה חשובה: החוזה בדרך כלל נמצא בתוך התיקייה
%USERPROFILE%\ .mitmproxy, או שאתם יכולים להוריד את זה מהאתרhttp://mitm.it תלחצו פעמיים בשביל הורדה או...
- שימוש בmitmdump: פקודת
- על ידי שימוש בשורת הפקודה
certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer- שימוש בFiddler Classic: תריצו Fiddler Classic, תפעילו את ההגדרה
Decrypt https trafficבהגדרות ותשנו את הפורט ברירת מחדל לכל מספר שהוא לא8888, ותפעילו את הסקריפט הזה.
-עריכת קובץ הHosts
- תשנו את שרת בproxy שלכם ל
127.0.0.1:8080
אתם יכולים גם להשתמש בקובץ start.cmd בשביל להפעיל את כל השרתים באופן אוטומטי אבל תצטרכו להגדיר JAVA_HOME בסביבות המחדל במערכת באופן ידני
בנייה
התוכנה משתמשת בGradle בשביל לבנות את כל השרת
דרישות:
Windows
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # בשביל להוריד את כל חבילות הבנייה
.\gradlew jar # בשביל הבנייה עצמהLinux
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
-
Note: Als u het alleen wilt draaien, dan is jre alleen prima.
MongoDB (aanbevolen 4.0+)
Proxy Daemon: mitmproxy (mitmdump, aanbevolen), Fiddler Classic, enz.
Opstarten
Note: Als u vanaf een oudere versie heeft geupdate, verwijder dan config.json om het te regenereren.
- Verkrijg
grasscutter.jar- Download van actions of bouw de jar zelf
- Maak een
resourcesmap aan in de directory waar grasscutter.jar staat en verplaats jeBinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMapmappen daarheen (Check de wiki voor meer details hoe je die krijgt.) - 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.
Verkeer omleiden: (kies er een)
mitmdump:
mitmdump -s proxy.py -kVertrouw CA certificaat:
Note: Het CA certificaat is meestal opgeslagen in
%USERPROFILE%.mitmproxy, of je kan het downloaden vanhttp://mitm.itDubbelklik voor install of ...
Via de commandoregel
shellcertutil -addstore root %USERPROFILE%%%.mitmproxymitmproxy-ca-cert.cer
Fiddler Classic: Start Fiddler Classic, zet
Decrypt https trafficaan in setting en verander de standaard poort daar (Tools -> Options -> Connections) in iets anders dan8888, en laad dit script.
Stel de netwerk proxy in op
127.0.0.1:8080of 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
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Instellen van omgevingen
.gradlew jar # CompilerenLinux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # CompileerU 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
- Zorg ervoor dat alle installatie- of build-afhankelijkheden verwijderd zijn voor het einde van de laag wanneer u een build doet.
- Werk de README.md en wiki bij met details van wijzigingen aan de interface, inclusief nieuwe omgevingsvariabelen, blootgestelde poorten, nuttige bestandslocaties en containerparameters.
- 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.
- Consigue
grasscutter.jar- Descarga desde actions
- Constrúyelo tu mismo
- Crea una carpeta
resourcesen el directorio donde se encuentra grasscutter.jar y mueve las carpetasBinOutputyExcelBinOutputahí (Consulta la wiki para más detalles de como conseguirlos.) - 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.
Redirecciona el tráfico: (elegir uno)
mitmdump:
mitmdump -s proxy.py -kAutoriza el certificado CA:
**Nota:**El certificado CA normalmente se encuentra en
%USERPROFILE%\ .mitmproxy, o puedes descargarlo dehttp://mitm.it Doble clic para instalar o ...
Con línea de comandos
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Fiddler Classic: Ejecuta Fiddler Classic, activa
Decrypt https trafficen las opciones y cambia el puerto por defecto ahí (Herramientas -> Opciones -> Conexiones) a alguno que no sea8888, y carga este script.
Establece el proxy de red a
127.0.0.1:8080o 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
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Configuración de entornos
.\gradlew jar # CompilarLinux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # CompilarPodrá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
Java SE - 17 or higher
Atensyon: Kung gusto mo lang paganahin ang server, pwede naman ang jre.
MongoDB (recommended 4.0+)
Proxy Daemon: mitmproxy (mitmdump, recommended), Fiddler Classic, etc.
Running
Atensyon: Kung nag-update ka galing sa lumang version, paki-delete ang config.json para mag-regenerate ulit.
- Get
grasscutter.jar- I-download mo sa releases o sa actions o bumuo ng iyong sariling server.
- Gawa ka ng
resourcesfolder sa directory kung nasaan ang grasscutter.jar at ilagay angBinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMapfolders sa loob ng resources folder (Tingnan mo ang wiki para malaman mo kung saan mo makukuha yan) - 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.
Redirect traffic: (pumili lang dapat ng isa)
mitmdump:
mitmdump -s proxy.py -kTrust CA certificate:
Ang CA certificate ay nasa
%USERPROFILE%\.mitmproxy, i-double click angmitmproxy-ca-cert.cerpara ma-install o...Via command line (kailangan ng administration privileges)
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Fiddler Classic: Paadarin ang Fiddler Classic, turn on mo yung
Decrypt https trafficsa (Tools -> Options -> HTTPS) at baguhin mo ang default port na nakalagay (Tools -> Options -> Connections) sa anumang numero maliban sa8888, i-load ang script na ito (copy and paste ang script saFiddlerScripttab) at i-click angSave Scriptbutton.
Set mo ung proxy sa
127.0.0.1:8080or 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:
- 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 jarLinux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile jarPag-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)
Téléchargez Java 17: https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
Téléchargez MongoDB Community Server
Téléchargez la version du jeu REL3.7 (Le client de jeut peut être obtenu ici si vous ne l'avez pas): https://github.com/MAnggiarMustofa/GI-Download-Library/blob/main/GenshinImpact/Client/3.7.0.md
Téléchargez la dernière version de Cultivation. Ulilisez l'installateur en
.msi.Après avoir ouvert Cultivation (en administrateur), appuyez sur le bouton de téléchargement en haut a droite.
Cliquez sur le bouton
Téléchargez tout-en-unCliquez sur l'engrenage dans le coin en haut a droite.
Définisez l'emplacement d'installation du jeu.
Définisez le chemin Java personnalisé à
C:\Program Files\Java\jdk-17\bin\java.exeLaissez tous les autres paramètes par défauts
Appuyez sur le bouton a coté de Lancer.
Appuyez sur le bouton Lancer.
Connectez vous avec le nom d'utilisateur que vous voulez. Le mot de passe n'a pas d'importance.
Compilation
Grasscutter utilise Gradle pour la gestion des dépendances et la compilation.
Prérequis
- Java SE Development Kits - 17 ou plus récent
- Git
Windows
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # CompileLinux (GNU)
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # CompileVous 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अन्य सभी सेटिंग्स को डिफ़ॉल्ट पर छोड़ दें
लॉन्च करने के लिए आगे छोटे बटन पर क्लिक करें.
लॉन्च बटन पर क्लिक करें.
आप जो भी उपयोगकर्ता नाम चाहते हैं उसके साथ लॉग इन करें। पासवर्ड कोई मायने नहीं रखता.
इमारत
ग्रासकटर निर्भरता और निर्माण को संभालने के लिए ग्रैडल का उपयोग करता है।
आवश्यकताएं:
- Java SE Development Kits - 17 or higher
- Git
विंडोज
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compileलिनक्स (जीएनयू)
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.
- Dapatkan
grasscutter.jar- Download dari actions
- Bangun sendiri
- Buat folder
resourcesdi direktori tempat grasscutter.jar berada dan pindahkan folderBinOutputdanExcelBinOutputke sana (Periksa wiki untuk detail lebih lanjut tentang cara mendapatkannya.) - Jalankan Grasscutter dengan
java -jar grasscutter.jar. Pastikan layanan mongodb juga berjalan.
Connecting to the client
½. Buat akun dengan menggunakan server console command.
Pengalihan traffic: (pilih salah satu)
mitmdump:
mitmdump -s proxy.py -kTrust CA certificate:
Catatan: Sertifikat CA biasanya disimpan di
%USERPROFILE%\ .mitmproxy, atau anda dapat download darihttp://mitm.it klik dua kali untuk menginstall ataupun juga
melalui command line
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Fiddler Classic: Jalankan Fiddler Classic, nyalakan
Decrypt https trafficdalam setting dan ubah port default di sana (Tools -> Options -> Connections) ke apa pun selain8888, dan muat skrip ini.
Atur proxy jaringan ke
127.0.0.1:8080atau 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
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # CompileLinux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # CompileAnda 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.
- Ottieni "grasscutter.jar".
- Scarica da azioni
- Compilalo tu stesso
- Crea una cartella chiamata
resourcesnella directory in cui si trova grasscutter.jar e sposta lì le cartelleBinOutputedExcelBinOutput(Vedi il wiki per maggiori dettagli su come ottenerli.) - 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.
Reindirizza il traffico: (scegli uno)
Con mitmdump:
mitmdump -s proxy.py -kAutorizza il certificato CA:
**Nota:**Il certificato CA si trova solitamente in
%USERPROFILE%\ .mitmproxy, oppure puoi scaricarlo dahttp://mitm.itFai doppio clic su installa o ...
Con riga di comando
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Con Fiddler Classic: esegui Fiddler Classic, abilita
Decrypt https trafficnelle opzioni e cambia la porta predefinita in (Strumenti -> Opzioni -> Connessioni) in qualcosa di diverso da8888, e carica questo script.
Imposta il proxy di rete a
127.0.0.1:8080o 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
git clone https://github.com/Grasscutters/Grasscutter.git
cd grasscutter
.\gradlew.bat # Impostazioni dell'ambiente
.\gradlew jar # CompilaLinux
git clone https://github.com/Grasscutters/Grasscutter.git
cd grasscutter
chmod +x gradlew
./gradlew jar # CompilaPuoi 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を使用しています。
必要要件:
- Java SE Development Kit 17以降
- Git
- NodeJS (任意、ハンドブックの生成に必要)
Clone
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd GrasscutterCompile
Note: 環境によってはハンドブックの生成が失敗する場合があります。ハンドブックの生成をさせない場合は gradlew jar コマンドに -PskipHandbook=1 を付け加えてください。
Windows:
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # コンパイル環境の構築
.\gradlew jar # コンパイルLinux:
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # コンパイル手動によるハンドブックの生成
Gradleを使用する場合:
./gradlew generateHandbookNPMを使用する場合:
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 설치
게임 버전 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을 이용합니다.
빌드하기 위해 필요한 것들 :
- Java SE 개발 키트 - 17
- Git
- NodeJS (선택, 핸드북을 빌드하기 위해 필요함.)
클론
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter컴파일
각주: 핸드북 생성은 일부 시스템에서 실패할 수도 있습니다. 핸드북 생성을 비활성화하려면, gradlew jar명령에 -PskipHandbook=1명령줄 스위치를 추가하세요.
윈도우:
.\gradlew.bat # 환경 준비
.\gradlew jar리눅스 (GNU):
chmod +x gradlew
./gradlew jar핸드북 컴파일 (수동동)
Gradle 사용:
./gradlew generateHandbookNPM 사용:
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.
- Zdobądź
grasscutter.jar- Pobierz z akcji
- Lub zbuduj to samemu
- Utwórz folder
resourcesw tym samym folderze gdzie znajduje się grasscutter.jar oraz przenieś folderyBinOutputiExcelBinOutputdo folderuresources(Sprawdź na wiki skąd możesz je pozyskać). - 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.
Przekieruj połączenia: (wybierz jedno)
mitmdump:
mitmdump -s proxy.py -kCertyfikat CA:
Uwaga: CA certyfikat zazwyczaj znajduje się w
%USERPROFILE%\.mitmproxy, albo możesz pobrać go stądhttp://mitm.it Naciśnij podwójnie, aby zainstalować lub ...
Za pomocą wierszu poleceń (lub PowerShella) wpisz
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Fiddler Classic: Uruchom Fiddler Classic, włącz
Decrypt https trafficw ustawieniach oraz zmień domyślny port (Tools -> Options -> Connections) na dowolny inny niż8888, i wczytaj ten skrypt (w polu FiddlerScript).
Ustaw serwer proxy na
127.0.0.1:8080albo 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
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Konfigurowanie środowiska
.\gradlew jar # KompilowanieLinux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # KompilowanieGotowy 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, чтобы сгенерировать его заново.
- Получите файл
grasscutter.jarодним из следующих способов:- Скачайте напрямую со вкладки Actions
- Соберите самостоятельно
- Создайте папку
resourcesв той же директории, что и grasscutter.jar, и переместите туда свои папкиBinOutputиExcelBinOutput(Посетите вики для получения более подробной информации о том, где их найти.) - Запустите Grasscutter с помощью команды
java -jar grasscutter.jar. Убедитесь, что в этот момент запущен сервер mongodb.
Соединение с клиентом
½. Создайте аккаунт, введя соответствующую команду в консоли сервера.
Перенаправьте трафик: (воспользуйтесь одиним из способов)
mitmdump:
mitmdump -s proxy.py -kДоверьтесь сертификату CA:
Заметка: Обычно, сертификат CA хранится в папке
%USERPROFILE%\ .mitmproxy. Также, вы можете скачать его сhttp://mitm.it Дважды нажмите для установки, или же ...
С помощью командной строки
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Fiddler Classic: Запустите Fiddler Classic, включите настройку
Decrypt https trafficв опциях и измените порт по умолчанию (Меню -> Tools -> Options -> Connections) на что-то не равное8888, после чего запустите этот скрипт во вкладке FiddlerSrcipt.
Установите прокси сети в
127.0.0.1:8080, либо в тот порт прокси, который вы задали.
Также, вы можете использовать start.cmd для автоматического запуска прокси и серверов, но для этого необходимо задать переменную среды JAVA_HOME
Сборка
Для сборки и решения проблем с зависимостями, Grasscutter использует Gradle.
Требуется:
Windows
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # CompileLinux
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.
- Tải
grasscutter.jar- Tài về từ releases (bản phát hành) hoặc actions (các hoạt động) hoặc tự tạo của chính bạn.
- Tạo một thư mục
resourcestrong cùng thư mục với Grasscutter.jar và chuyển các thư mụcBinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMapcủa bạn đếnresources(Xem wiki để biết cách lấy các thư mục đó) - 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).
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 -kChứng chỉ CA tin cậy:
Chứng chỉ CA thường được lưu trữ trong
%USERPROFILE%\.mitmproxy, click đúpmitmproxy-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)
shellcertutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
Fiddler Classic: Mở Fiddler Classic, bật tùy chọn
Decrypt HTTPS traffictrong (Tools -> Options -> HTTPS) và thay đổi cổng (port) mặc định (Tools -> Options -> Connections) khác8888, chạy script này (sao chép và dán script vào trongFiddlerScript) và bấmSave Script.
Cài đặt network proxy thành
127.0.0.1:8080hoặ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:
- Java SE Development Kits - 17 hoặc cao hơn
- Git
Windows
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
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
获取游戏4.0正式版 (如果你没有4.0的客户端,可以在这里找到):
123pan share
github下载最新的Cultivation版本(使用以“.msi”为后缀的安装包)。
以管理员身份打开Cultivation,按右上角的下载按钮。
点击“下载 Grasscutter 一体化”
点击右上角的齿轮
将游戏安装路径设置为你游戏所在的位置。
将自定义Java路径设置为
C:\Program Files\Java\jdk-17\bin\java.exe保持所有其它设置为默认值
点击“启动”按钮旁边的小按钮。
点击“启动”按钮。
随便想一个用户名登录,不需要密码。
构建
Grasscutter使用Gradle来处理依赖和构建。
前置:
Windows
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # 设置开发环境
.\gradlew jar # 编译Linux(GNU)
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
下載遊戲版本 REL3.7(如果你沒有的話,可以在這裡找到 3.7 客戶端)
下載 最新的 Cultivation 版本。使用
.msi安裝程式。以管理員身分打開 Cultivation,按右上角的下載按鈕。
點擊
Download All-in-One點擊右上角的齒輪
將遊戲安裝路徑設置為你的遊戲所在的位置。
將自定義 Java 路徑設置為
C:\Program Files\Java\jdk-17\bin\java.exe其他設置保持預設
點擊啟動旁邊的小按鈕。
點擊啟動按鈕。
用你想要的用戶名登錄,密碼無所謂。
編譯
Grasscutter 使用 Gradle 來處理依賴及編譯。
依賴:
Windows
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # 建立開發環境
.\gradlew jar # 編譯Linux
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 ---
- Files Extracted: 23
- Estimated Token Budget: ~35161 tokens
- Canonical Reference: https://codewiki.google/github.com/Grasscutters/Grasscutter