Go to file
github-actions 155501058f Version 1.3.0
Update languages [skip actions]
Fix whitespace [skip actions]
Add version increments to lint branch
Plugin Manager localisation
Update ru-RU.json
fix serenitea pot main building
Add command targeting by account username
Fix elementless Traveler depotValue
[BREAKING] dummy commit for Express -> Javalin
Update contributing guidelines
Move the remaining `HttpUtils` function over to `Router`
Clean up http server content types
Replace express with javalin in logger
Update HttpServer & AuthenticationSystem to use Javalin
Remove ``java-express``. Add javalin as dependency
Custom Teams (#1731)
Console output player command (#1722)
Clean up adding extra embryo logic in Avatar::recalcStats
Clean up OpenStateData onLoad logic
Update default Banners.json (#1719)
fix serenitea pot (#1726)
fix: avatar energy transform in proudskill
Update README.md Sequel (#1717)
Add permission clear and list commands (#1715)
Fix offline account deletion (fixes #1716)
maybe drop my dev domain and use `grasscutter.io`
Fix up some japanese references
add dendro resonance
Update README_NL.md
Update readme interlinks
Jp support (#1712)
Update translation (#1711)
Merge pull request #1710 from pfyy/development
fix dungeon
Dutch language updates For README (#1709)
Fix weird conditional in `EquipAffixData`
partial fix of dungeon
Update `AvatarCostumeData` naming
Fix `ReliquarySetData` naming
Update README_zh-CN.md
Show accessAddress in bold yellow on startup This should make it easier to help people troubleshoot networked setups. Consider telling people to try connecting to the address with a web browser on the client's machine.
Update SetPropCommand strings, send cmd usage on target fail
refactor some itemdepot lookups for later
Fix account deletion
Fix HelpCommand missing aliases
Prevent material type from being null
Move vehicle fightprop hacks
Consolidate random point offsets
De-hardcode ChestBatchUse
Remove asset names from json and comments
Actually fix RegionHandler
Add new 3.0 Reliquary and SkillParticleGeneration data
versionFix must be >= 50 not == 50 in RegionHandler
Update game version to 3.0.0
Add Sumeru expeditions.
Add scene tag for Vanarana.
Make PointData compatible with alternative PointData
Fixed Gadget Spawning
3.0 Opcodes
Fix RegionHandler versions
Update classes to match protos
Update 3.0 protos
Fix QuestEncryptionKeys Path (#1696)
Update README.md (#1695)
More literate README_ru-RU.md
Avoid potential NPE on WL0 (#1693)
Make lint workflows ignore generated folder But run them on linter and workflow changes
Clean up some Position usage to avoid unneccessary unpacks
Fix healing skills being able to heal dead characters
Fix null pointer in `Avatar` if skill level map didnt already contain skill id
Delete quests from the player if there are errors loading them from the db
update zh-CN.json (#1684)
Update ru-RU.json
Rename lint_commit's job, don't fail on no changes
Fix lint commit reference
Allow adding constellations to playerless avatars Fixes #1682
Fix whitespace [skip actions]
Don't lint src/generated
Make TalentCommand show off new Translate function
Improve translate function Make commands pass ints and floats instead of manually casting them to string first
Hide resin from map when disabled
Replace protos with generated protos
small quest fixes (#1677)
Blossom Implement (#1606)
Merge pull request #1680 from 4Benj/development
Remove uncompiled protos from compiled jar
Remove crazy high AEXP drops from default chest rewards
Fix talentcommand message key
Refactor avatar skilldepot and constellation/talent changing Ensures Traveler retains talent levels and constellations on inactive elements when switching elements. Relevant for any other skillDepot-changing activities like Windtrace too, though keeping those in the db might not be as useful.
Add README_fil-PH.md (#1675)
Avoid allocations on Map::putIfAbsent usage Map::computeIfAbsent only runs the passed constructors when it needs to
Add iterable payItems methods Shame they could never be fully generic, but oh well
Change unlocked scenes from lists to sets
Handbooks: use some sorted maps
Stop vendoring fastutil
Lombokify some more getters
Remove erroneous references to excel skilldata instead of avatar skilldata Refactor team resonances and correct login behaviour and less-than-full-party behaviour
Add README_ko-KR.md (#1673)
Don't use UIDs as initial capacity for chat history
ChatSystem nitpick
Fix chat welcome messages and some slight refactoring.
Fix deprecated chat references
update zh-CN.json (#1662)
Refactoring (#1660)
chore: typo fix
Bump config version.
Update ConfigContainer.java (#1646)
make fishhook_tp configurable
Refactor Json helper functions to JsonUtils
Funnel all gson calls into helper functions
Remove beta message
Fix TalentCommand for Traveler
fix:command player said to server won't be shown at chat history (#1643)
Update install_without_dependencies.sh
Fixed install_without_dependencies.sh script
Handle Unlocking of Waypoints and Statues (#1608)
Stop language linter from fighting the main linter on \n
Fix an edge case that breaks embryos if resources are loaded early
Introduce a new arguments parser (#1629)
Fix Claiming BP Reward Chests (#1634)
Make missing languages not throw warnings
Unify gacha mappings generation
Remove vestigial references to gacha_mappings
Remove language hack from handbook generation
Generate handbooks on every launch, fix html docs
Refactor handbook generation, remove singular handbook
Cache used strings from TextMaps
Load in all the textmaps!
Implement working* burst/ultimate invincibility
Added Indonesian README
Added install_without_dependencies.sh file
Add invoke-level invulnerability for bursts.
Invoke `AbilityManager#onSkillStart` and `AbilityManager#onSkillEnd`
Add a method to be invoked on skill perform and end
Update README_pl-PL.md
Update README_ru-RU.md
Update README_es-ES.md
Update README_fr-FR.md
Update README_zh-TW.md
Update README_zh-CN.md
Update README.md
fix typo
Added Indonesian language
Added install_without_dependencies.sh file
Improve some documentation and JSON (#1618)
Add `EntityDamageEvent` and implementations
Add more events
Update HandlerSceneTransToPointReq.java
Update src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java
Update src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java
Update src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java
Polish README and setConst translation (#1614)
Update ru-RU.json
Create ko-KR.json
Add `PlayerUseFoodEvent` and implementations
Move `PlayerTeleportEvent` occurrences into `World`
Merge branch 'development' into more-events
Clean-up the energy manager
Explicitly declare the charset of a `FileReader` in `ConfigContainer`
Update zh-CN.json
Changed charset of FileReader in ConfigContainer from default to utf-8.
Add files via upload
Auto language lint
Add explicit encoding on manage_languages.py for windows users
Add lock function to SetStatsCommand
Improve message formatting to clients Replaces tab indents with an extra linebreak. Also adds / to the start of command usage. Neither of these changes affect messages to the server console log.
Update zh-CN.json
Update zh-CN.json
Merge pull request #1586 from Birdulon/development
Suppress stacktrace on missing questkeys file
Change loading quest keys from `info` to `debug`.
Update zh-CN.json
Fix an NPE in `EntityGadget` when `draft_id` isn't set
SceneScriptManager fix nullPointer error
Move `QuestEncryptionKeys` to `resources/`
Traditional Chinese | Translation Patches
fix nullPointer error
small nullpointer fix in EntityGadget, in case meta gadget is not set
Update ru-RU.json
Add spanish translation for constellation commands
Merge pull request #1553 from akatatsu27/questing
token fix
Merge branch 'development' into questing
Update ru-RU.json
[Bug] New avatars always created with C0 constellation Fixes #1552
2.7+ prerendered cutscene support
two small activity/event fixes * fixed GetAcitivityInfoReq proto * added draft to gadget Scene gatget, to let the client know the propper minigame for some entities
Set Constellation Command (#1565)
Update French translation
Fix remaining traces of `Player#getPos`
Attempt to fix the `teleport` command.
Add `PlayerTeamDeathEvent` and implementations
Add `EntityDeathEvent` and implementations
Add a `Location` class (Scene + Position)
Remove deprecated class
Merge branch 'development' into more-events
call deregisterRegion appropriately
Merge branch 'development' into questing
Read Open States from Excels (#1557)
and misc bug fixes
Major questing improvements
Merge branch 'development' into more-events
Translated new changes in languages files to Spanish
Fix taking battle pass rewards
Add `unlockall` command to unlock all openstates
Fix battle pass manager saving with 0 id
Set `setChooseAvatarGuid` properly
Implement food buffs
Use sorted containers for commands & aliases
Change commands to use new usage message method.
Refactor Command usage and description strings
Updated Russian localization (#1543)
Refactor excel datas (Mainly item data)
Add `kcpInterval` to the config
Rename `hasSentAvatarDataNotify()` to `hasSentLoginPackets()`
Fix host team size not changing when a player joins their world for the first time
Lower kcp interval to 20
Bump project version
Add `PlayerTeleportEvent`
Update to support `PlayerMoveEvent`
Remove `Cancellable` from `PlayerMoveEvent`
Implement `PlayerMoveEvent`
2022-09-03 03:36:52 +00:00
.github Add version increments to lint branch 2022-09-03 13:06:18 +09:30
gradle/wrapper Update gradle + Work gacha reload (gs broken atm) 2022-04-20 16:05:53 +08:00
lib Remove `java-express`. Add javalin as dependency 2022-09-01 13:20:42 -07:00
src Update languages [skip actions] 2022-09-03 03:36:52 +00:00
.editorconfig Introduce a new arguments parser (#1629) 2022-08-10 11:54:43 +09:30
.gitattributes Introduce a new arguments parser (#1629) 2022-08-10 11:54:43 +09:30
.gitignore Replace protos with generated protos 2022-08-21 00:37:36 -07:00
build.gradle Version 1.3.0 2022-09-03 03:36:52 +00:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2022-04-24 19:24:23 +06:00
CONTRIBUTING.md Update contributing guidelines 2022-09-02 02:22:39 -04:00
format_whitespace.py Fix lint commit reference 2022-08-22 01:49:50 +09:30
gradlew Make gradlew executable 2022-04-22 22:53:54 -04:00
gradlew.bat Initial commit 2022-04-17 05:43:07 -07:00
install_without_dependencies.sh Update install_without_dependencies.sh 2022-08-11 14:41:22 +09:30
install.sh Added support for arch linux 2022-05-23 15:46:12 -07:00
keystore.p12 Update the keystore 2022-04-22 22:34:00 -04:00
LICENSE Change LICENSE to GNU Affero 2022-05-08 13:09:22 -07:00
manage_languages.py Stop language linter from fighting the main linter on \n 2022-08-10 17:00:43 +09:30
plugin-schema.json Add loadAfter plugin setting 2022-06-22 00:19:43 -04:00
proxy_config.py Allow overriding config with ENV (#506) 2022-05-05 15:22:29 +02:00
proxy.py Censorship 2022-06-19 00:02:08 +08:00
README_es-ES.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_fil-PH.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_fr-FR.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_HE.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_id-ID.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_ja-JP.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_ko-KR.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_NL.md Update README_NL.md 2022-08-26 21:46:42 +09:30
README_pl-PL.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_ru-RU.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_zh-CN.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README_zh-TW.md Update readme interlinks 2022-08-26 18:15:51 +09:30
README.md Update README.md Sequel (#1717) 2022-08-27 21:54:38 +09:30
resources_koko Update readme interlinks 2022-08-26 18:15:51 +09:30
settings.gradle Initial commit 2022-04-17 05:43:07 -07:00
start_config.cmd fix java search in start.cmd 2022-05-24 05:34:04 -07:00
start.cmd fix java search in start.cmd 2022-05-24 05:34:04 -07:00

Grasscutter

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

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

Attention: We always welcome contributors to the project. Before adding your contribution, please carefully read our Code of Conduct.

Current features

  • Logging in
  • Combat
  • Friends list
  • Teleportation
  • Gacha system
  • Co-op partially works
  • Spawning monsters via console
  • Inventory features (receiving items/characters, upgrading items/characters, etc)

Quick setup guide

Note: For support please join our Discord.

Requirements

Running

Note: If you updated from an older version, delete config.json to regenerate it.

  1. Get grasscutter.jar
  2. Create a resources folder in the directory where grasscutter.jar is located and move your BinOutput, ExcelBinOutput, Readables, Scripts, Subtitle, TextMap folders there (Check the wiki for more details how to get those.)
  3. Run Grasscutter with java -jar grasscutter.jar. Make sure mongodb service is running as well.

Connecting with the client

½. Create an account using server console command.

  1. Redirect traffic: (choose one)

    • mitmdump: mitmdump -s proxy.py -k

      Trust CA certificate:

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

      Double click for install or ...

      • Via command line (needs administration privileges)

        certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
        
    • Fiddler Classic: Run Fiddler Classic, turn on Decrypt HTTPS traffic in (Tools -> Options -> HTTPS) and change the default port in (Tools -> Options -> Connections) to anything other than 8888, and load this script (copy and paste the script in the FiddlerScript tab).

    • Hosts file

  2. Set network proxy to 127.0.0.1:8080 or the proxy port you specified.

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

Building

Grasscutter uses Gradle to handle dependencies & building.

Requirements:

Windows
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile
Linux
git clone https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile

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

Commands have moved to the wiki!

Quick Troubleshooting

  • If compiling wasn't successful, please check your JDK installation (JDK 17 and validated JDK's bin PATH variable)
  • My client doesn't connect, doesn't login, 4206, etc... - Mostly your proxy daemon setup is the issue, if using Fiddler make sure it running on another port except 8888
  • Startup sequence: MongoDB > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Game