README.md 3.83 KB
Newer Older
Jaida Wu's avatar
Jaida Wu committed
1
# Grasscutter
lunaticwhat's avatar
gran    
lunaticwhat committed
2
A WIP server reimplementation for *some anime game* 2.3-2.6
Jaida Wu's avatar
Jaida Wu committed
3

4
**Documentation**: [Grasscutter Wiki](https://github.com/Melledy/Grasscutter/wiki/)  
Jaida Wu's avatar
Jaida Wu committed
5
6
7
8
**Note**: For support please join the [Discord server](https://discord.gg/T5vZU6UyeG).
# Current features
* Logging in
* Combat
lunaticwhat's avatar
gran    
lunaticwhat committed
9
* Spawning monsters via console
Jaida Wu's avatar
Jaida Wu committed
10
11
* Inventory features (recieving items/characters, upgrading items/characters, etc)
* Gacha system
lunaticwhat's avatar
gran    
lunaticwhat committed
12
13
* Friends list
* Co-op *partially* work
14
# Quick setup guide
Jaida Wu's avatar
Jaida Wu committed
15
16
17
### Note
* If you update from an older version, delete `config.json` for regeneration

Jaida Wu's avatar
Jaida Wu committed
18
### Prerequisites
19
* JDK-8u202 ([mirror link](https://mirrors.huaweicloud.com/java/jdk/8u202-b08/) since Oracle required an account to download old builds)
Jaida Wu's avatar
Jaida Wu committed
20
21
22
* Mongodb (recommended 4.0+)
* Proxy daemon: mitmproxy (mitmdump, recommended), Fiddler Classic, etc.

23
### Starting up Grasscutter server (Assuming you are on Windows)
Jaida Wu's avatar
Jaida Wu committed
24
1. Setup compile environment `gradlew.bat`
25
2. Compile Grasscutter with `gradlew jar`
lunaticwhat's avatar
gran    
lunaticwhat committed
26
27
3. Create a folder named `resources` in your Grasscutter directory, bring your `BinOutput` and `ExcelBinOutput` folders into it *(Check the wiki for more details how to get those.)*
4. Run Grasscutter with `java -jar grasscutter.jar`. Make sure mongodb service is running as well.
Jaida Wu's avatar
Jaida Wu committed
28
29

### Connecting with the client
lunaticwhat's avatar
gran    
lunaticwhat committed
30
½. Create an account using *server console command* below
lunaticwhat's avatar
lunaticwhat committed
31
1. Run a proxy daemon: (choose either one)
Jaida Wu's avatar
Jaida Wu committed
32
	- mitmdump: `mitmdump -s proxy.py -k`
33
34
	- Fiddler Classic: Run Fiddler Classic, turn on `Decrypt https traffic` in setting and change the default port there (Tools -> Options -> Connections) to anything other than `8888`, and load [this script](https://github.lunatic.moe/fiddlerscript).
	- [Hosts file](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map)
Jaida Wu's avatar
Jaida Wu committed
35
36
37
2. Trust CA certificate:
	- mitmdump: `certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer`
2. Set network proxy to `127.0.0.1:8080` or the proxy port you specified.
38
4. *yoink*
Jaida Wu's avatar
Jaida Wu committed
39
40
41

* or you can use `run.cmd` to start Server & Proxy daemon with one click

lunaticwhat's avatar
lunaticwhat committed
42
# Grasscutter commands
Jaida Wu's avatar
Jaida Wu committed
43
There is a dummy user named "Server" in every player's friends list that you can message to use commands. Commands also work in other chat rooms, such as private/team chats.
Jaida Wu's avatar
Jaida Wu committed
44
45
46

`account create [username] {playerid}` - Creates an account with the specified username and the in-game uid for that account. The playerid parameter is optional and will be auto generated if not set.

Jaida Wu's avatar
Jaida Wu committed
47
`spawn [monster id] [level] [amount]`
Jaida Wu's avatar
Jaida Wu committed
48

Jaida Wu's avatar
Jaida Wu committed
49
`give [item id] [amount]`
Jaida Wu's avatar
Jaida Wu committed
50

Jaida Wu's avatar
Jaida Wu committed
51
`givechar [avatar id] [level]`
SpikeHD's avatar
SpikeHD committed
52

Jaida Wu's avatar
Jaida Wu committed
53
`drop [item id] [amount]`
Jaida Wu's avatar
Jaida Wu committed
54

Jaida Wu's avatar
Jaida Wu committed
55
`killall`
Jaida Wu's avatar
Jaida Wu committed
56

Jaida Wu's avatar
Jaida Wu committed
57
`setworldlevel [level]` - Relog to see effects properly
SpikeHD's avatar
SpikeHD committed
58

Jaida Wu's avatar
Jaida Wu committed
59
`godmode` - Prevents you from taking damage
Jaida Wu's avatar
Jaida Wu committed
60

Jaida Wu's avatar
Jaida Wu committed
61
`resetconst` - Resets the constellation level on your current active character, will need to relog after using the command to see any changes.
Jaida Wu's avatar
Jaida Wu committed
62

Jaida Wu's avatar
Jaida Wu committed
63
`setstats [stats] [amount]` - Changes the current character's specified stat.
Jaida Wu's avatar
Jaida Wu committed
64

Jaida Wu's avatar
Jaida Wu committed
65
`clearartifacts` - Deletes all unequipped and unlocked level 0 artifacts, **including yellow rarity ones** from your inventory
Jaida Wu's avatar
Jaida Wu committed
66

Jaida Wu's avatar
Jaida Wu committed
67
`pos` - Gets your current coordinate.
alt3ri's avatar
alt3ri committed
68

Jaida Wu's avatar
Jaida Wu committed
69
`weather [weather id] [climate id]` - Changes the current weather.
alt3ri's avatar
alt3ri committed
70

lunaticwhat's avatar
gran    
lunaticwhat committed
71
72
*More commands will be updated in the [wiki](https://github.com/Melledy/Grasscutter/wiki/).*

alt3ri's avatar
alt3ri committed
73
### Bonus
Melledy's avatar
Melledy committed
74
When you want to teleport to somewhere, use the ingame marking function on Map, click Confirm. You will see your character falling from a very high destination, exact location that you marked.
alt3ri's avatar
alt3ri committed
75

lunaticwhat's avatar
lunaticwhat committed
76
# Quick Troubleshooting
lunaticwhat's avatar
gran    
lunaticwhat committed
77
78
* If compiling wasn't successful, please check your JDK installation (must be JDK 8 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
79
* Startup sequence: Mongodb > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Client