You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+75-2Lines changed: 75 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,14 @@
1
1
# civrip
2
+
**100% open source**
3
+
2
4
GUI to create virtual network for civilization 6 and old school games in multiplayer mode.
3
5
4
6
简单GUI为文明6及老游戏联机提供虚拟组网。
5
7
6
8
[中文Readme](README_zh_CN.md)
7
9
10
+

11
+
8
12
## Motivation
9
13
Civilization 6 and other old school games only support LAN for multiplayer (if you cannot connect to Civilization 6 official server). The most common way is to create a virtual network to simulate a LAN.
10
14
@@ -13,7 +17,9 @@ Possible solution:
13
17
-[n2n](https://github.com/ntop/n2n): Similar to Zerotier, but it needs a coordinator server to connect different users and forwarding traffic (if P2P is disabled). It allows the user to force TCP connection instead of UDP.
14
18
- VPN: Also work for most cases, but it is too heavy and not allowed in some network environment.
15
19
16
-
Civilization 6 has another problem that it only scan the default NIC for local rooms, but most solutions based on virtual NIC. We need [WinIPBroadcast](https://github.com/dechamps/WinIPBroadcast) to send IP broadcast packets to all interfaces.
20
+
~~Civilization 6 has another problem that it only scan the default NIC for local rooms, but most solutions based on virtual NIC. We need [WinIPBroadcast](https://github.com/dechamps/WinIPBroadcast) to send IP broadcast packets to all interfaces.~~
21
+
22
+
Update: Inspired by @xaxys (https://github.com/xaxys/injciv6/tree/master), we now have a newer solution through function hook.
17
23
18
24
I developed this tool to automate the process for Civilization 6 multiplayer mode (and old school games), based on n2n to overcome network issues.
19
25
@@ -42,6 +48,29 @@ The server will have two community, `civsix` and `free`.
42
48
## Client
43
49
Download the latest release on the [release page](https://github.com/MXWXZ/civrip/releases).
44
50
51
+
### v2.0
52
+
53
+
1. Execute `civrip.exe`
54
+
2. Click `Install TAP` if status is `UNINST`.
55
+
3. Click `Restart TAP` if status is `STOPPED` or `UNKNOWN`.
56
+
4. Fill in `Server IP` with port, e.g., `1.2.3.4:7654`.
57
+
5. Fill in `Community` configured by server, e.g., `civsix`.
58
+
6. Fill in `Encrypt Key`, this can be arbitrary, e.g., `114514`.
59
+
7. Do not check any network setting and click `Connect`.
60
+
61
+
If you are game server:
62
+
1. Make sure server status is `CONNECT`.
63
+
2. Find the LAN IP in the output (e.g., 10.0.0.100).
64
+
3. Disable the firewall, create the game room and tell your IP to the others!
65
+
66
+
If you are joining others server:
67
+
1. Make sure server status is `CONNECT`.
68
+
2. Fill in `Game IP` with the LAN IP of the game server.
69
+
3. Click `Ping` to make sure you can touch the server.
70
+
4. Start the game. Click `Inject` when you are at the game menu.
71
+
72
+
### v1.0
73
+
45
74
1. Execute `civrip.exe`
46
75
2. Click `Install WinIPB` or `Install TAP` if status is `UNINST`.
47
76
3. Click `Restart WinIPB` or `Restart TAP` if status is `STOPPED` or `UNKNOWN`.
@@ -51,7 +80,32 @@ Download the latest release on the [release page](https://github.com/MXWXZ/civri
51
80
7. Do not check any network setting and click `Connect`.
52
81
8. If server status is `CONNECT`, go and play your game! Otherwise, please check the output by yourself.
53
82
54
-
### Troubleshooting
83
+
## Troubleshooting
84
+
85
+
### v2.0 FAQ
86
+
87
+
> I am the game server, but I cannot find the LAN IP.
88
+
89
+
Please check EDGE connection below.
90
+
91
+
> I am joining others game, but I cannot ping the server.
92
+
93
+
Please make sure you have the LAN IP, check EDGE connection below and disable the firewall on the game server.
94
+
95
+
> I see errors after clicking the `Inject`.
96
+
97
+
Please start the game first and wait for the main menu. There will be two logs about `Injector` (for DX11 and DX12). It is expected to have one error log and one success log. It is OK when any of them reports success.
98
+
99
+
> I want to change the Game IP. Do I need to restart the game?
100
+
101
+
No. Click eject, modify the Game IP and inject again is OK.
102
+
103
+
> I am using 32-bit system. How to run?
104
+
105
+
Unfortunately, we do not support 32 bit officially. You can compile the project by yourself (see below).
106
+
107
+
### EDGE connection
108
+
55
109
These only work if your server status is `CONNECT`, otherwise please solve the server connection problem first.
56
110
57
111
If you cannot find the room or cannot connect to the room, please follow the steps below. Please check the game to see if you solve the problem after complete each step:
@@ -68,5 +122,24 @@ If you cannot find the room or cannot connect to the room, please follow the ste
68
122
69
123
If you can connect, but the connection is not stable, please check `Disable P2P` (and `Force TCP` if possible).
70
124
125
+
## Compile
126
+
127
+
It is possible that the injector and the main program are marked as virus by anti-virus softwares. This software and third-party dependencies are 100% open-source. You can compile the program by yourself.
128
+
129
+
Environment:
130
+
- QT6
131
+
- Visual Studio (C++ Desktop support is the minimum)
132
+
133
+
Compile:
134
+
1.`cd detours/src` and run `nmake` (Please use VS x64 compile chains).
135
+
2. Open `hook/hook.sln` and compile for `x64 | Release`.
0 commit comments