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
* Friends list
xmplay's avatar
xmplay committed
13
* Co-op *partially* works
14
# Quick setup guide
Jaida Wu's avatar
Jaida Wu committed
15
### Note
xmplay's avatar
xmplay committed
16
* If you updated from an older version, delete `config.json` to regenerate it.
Jaida Wu's avatar
Jaida Wu committed
17

Jaida Wu's avatar
Jaida Wu committed
18
### Prerequisites
19
* Java 16
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)
xmplay's avatar
xmplay committed
24
1. Setup the compile environment with `gradlew.bat`
25
2. Compile Grasscutter with `gradlew jar`
xmplay's avatar
xmplay committed
26
3. Create a folder named `resources` in your Grasscutter directory, move your `BinOutput` and `ExcelBinOutput` folders there *(Check the wiki for more details on how to get those.)*
lunaticwhat's avatar
gran    
lunaticwhat committed
27
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)
WangYneos's avatar
WangYneos committed
32
	- mitmdump: `mitmdump -s proxy.py -k --allow-hosts ".*\.yuanshen\.com|.*\.mihoyo\.com|.*\.hoyoverse\.com"`
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

真心's avatar
真心 committed
40
* or you can use `start.cmd` to start Server & Proxy daemon with one click
Jaida Wu's avatar
Jaida Wu committed
41

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

xmplay's avatar
xmplay committed
57
`setworldlevel [level]` - Changes your world 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

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

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

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

xmplay's avatar
xmplay committed
67
`pos` - Gets your current coordinates.
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
xmplay's avatar
xmplay committed
74
When you want to teleport somewhere, use the in-game marking function on the Map, click Confirm. You will see your character falling from a very high spot at the exact location you marked.
alt3ri's avatar
alt3ri committed
75

lunaticwhat's avatar
lunaticwhat committed
76
# Quick Troubleshooting
lunaticwhat's avatar
gran    
lunaticwhat committed
77
* If compiling wasn't successful, please check your JDK installation (must be JDK 8 and validated JDK's bin PATH variable)
xmplay's avatar
xmplay committed
78
* My client doesn't connect, doesn't login, 4206, etc... - Mostly your proxy daemon setup is *the issue*, if you're using Fiddler make sure it's running on a port other than 8888
79
* Startup sequence: Mongodb > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Client