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

We always welcome contributors to the project. Before adding your contribution, please carefully read our [Code of Conduct](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
Jaida Wu's avatar
Jaida Wu committed
5

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

Jaida Wu's avatar
Jaida Wu committed
20
### Prerequisites
21
* Java SE Development Kit 16
Jaida Wu's avatar
Jaida Wu committed
22
23
24
* Mongodb (recommended 4.0+)
* Proxy daemon: mitmproxy (mitmdump, recommended), Fiddler Classic, etc.

25
### Starting up Grasscutter server (Assuming you are on Windows)
xmplay's avatar
xmplay committed
26
1. Setup the compile environment with `gradlew.bat`
27
2. Compile Grasscutter with `gradlew jar`
xmplay's avatar
xmplay committed
28
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
29
4. Run Grasscutter with `java -jar grasscutter.jar`. Make sure mongodb service is running as well.
Jaida Wu's avatar
Jaida Wu committed
30
31

### Connecting with the client
lunaticwhat's avatar
gran    
lunaticwhat committed
32
½. Create an account using *server console command* below
lunaticwhat's avatar
lunaticwhat committed
33
1. Run a proxy daemon: (choose either one)
WangYneos's avatar
WangYneos committed
34
	- mitmdump: `mitmdump -s proxy.py -k --allow-hosts ".*\.yuanshen\.com|.*\.mihoyo\.com|.*\.hoyoverse\.com"`
35
36
	- 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
37
38
39
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.
40
4. *yoink*
Jaida Wu's avatar
Jaida Wu committed
41

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

lunaticwhat's avatar
lunaticwhat committed
44
# Grasscutter commands
Jaida Wu's avatar
Jaida Wu committed
45
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
46
47
48

`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
49
`spawn [monster id] [level] [amount]`
Jaida Wu's avatar
Jaida Wu committed
50

memetrollsXD's avatar
memetrollsXD committed
51
`give [item id] [amount] [level]`
Jaida Wu's avatar
Jaida Wu committed
52

Jaida Wu's avatar
Jaida Wu committed
53
`givechar [avatar id] [level]`
SpikeHD's avatar
SpikeHD committed
54

Jaida Wu's avatar
Jaida Wu committed
55
`drop [item id] [amount]`
Jaida Wu's avatar
Jaida Wu committed
56

Jaida Wu's avatar
Jaida Wu committed
57
`killall`
Jaida Wu's avatar
Jaida Wu committed
58

xmplay's avatar
xmplay committed
59
`setworldlevel [level]` - Changes your world level, relog to see effects properly
SpikeHD's avatar
SpikeHD committed
60

Jaida Wu's avatar
Jaida Wu committed
61
`godmode` - Prevents you from taking damage
Jaida Wu's avatar
Jaida Wu committed
62

xmplay's avatar
xmplay committed
63
`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
64

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

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

xmplay's avatar
xmplay committed
69
`pos` - Gets your current coordinates.
alt3ri's avatar
alt3ri committed
70

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

xmplay's avatar
xmplay committed
73
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
74

75
76
*More commands will be updated in the [wiki](https://github.com/Melledy/Grasscutter/wiki/).*

lunaticwhat's avatar
lunaticwhat committed
77
# Quick Troubleshooting
lunaticwhat's avatar
gran    
lunaticwhat committed
78
* 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
79
* 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
80
* Startup sequence: Mongodb > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Client