|
1 | | -[](https://modrinth.com/plugin/knockbacksync) |
2 | 1 |
|
3 | | -Tired of inconsistent knockback ruining your PvP experience? Our plugin recalculates knockback as if it were done clientside, leveling the playing field and ensuring every player enjoys a fair fight, no matter their connection quality. |
4 | | - |
5 | | -Minecraft doesn’t factor in network latency when determining a player's actions on the server. This causes the server to receive outdated information that doesn’t reflect the player's clientside position, leading to varying knockback effects based on connection quality. |
6 | | - |
7 | | -This plugin intercepts and adjusts knockback calculations to match what would occur clientside, effectively mitigating the disadvantages caused by high latency. By synchronizing knockback handling, we ensure that players experience consistent and fair knockback, providing a balanced and competitive environment for all." |
8 | | - |
9 | | -Showcase: https://www.youtube.com/watch?v=SVokpr3v-TA |
10 | | - |
11 | | -Official Discord: https://discord.gg/nnpqpAtyVW |
12 | | - |
13 | | -## Frequently Asked Questions (FAQ) |
14 | | - |
15 | | -### Does this change put high ping players at a disadvantage? |
16 | | -**It depends on the player.** Some may notice a difference if they're used to relying on high ping to reduce knockback. For others, it could actually be an advantage. |
17 | | - |
18 | | -### How does this change benefit high ping players? |
19 | | -**Knockback control.** For example, it will be easier to escape crit chains and punish crit. |
20 | | - |
21 | | -### Why was the configurability of ping offset removed? |
22 | | -**It promotes consistency across all servers.** Extensive testing with top players has shown that an offset of 25 provides a balanced experience for everyone. |
23 | | - |
24 | | -### How do I change the ping offset? |
25 | | -**You must run a modified build of KnockbackSync.** The variable can be changed inside of the [PlayerData](common/src/main/java/me/caseload/knockbacksync/player/PlayerData.java) class. |
26 | | - |
27 | | -## What servers are using this plugin? |
28 | | -| IP | Location | Region | Ping Offset | spike_threshold | |
29 | | -|------------------|-----------------------------------|--------|-------------|-----------------| |
30 | | -| `pvparcade.club` | Ashburn, Virginia, United States | NA | 20 | 15 | |
31 | | -| `stray.gg` | Ashburn, Virginia, United States | NA | 25 | 20 | |
32 | | -| `eu.stray.gg` | Frankfurt, Hesse, Germany | EU | 25 | 20 | |
33 | | -| `valed.gg` | Frankfurt, Hesse, Germany | EU | 25 | 20 | |
34 | | -| `eu.catpvp.xyz` | Frankfurt, Hesse, Germany | EU | 25 | 20 | |
35 | | -| `as.catpvp.xyz` | Singapore | AS | 25 | 20 | |
36 | | -| `na.catpvp.xyz` | New York, New York, United States | NA | 25 | 20 | |
37 | | -| `hyperium.pl` | Wrocław, Dolnośląskie, Poland | EU | 25 | 20 | |
38 | | - |
39 | | -## Commands |
40 | | ---- |
41 | | -### /knockbacksync ping [target] |
42 | | - |
43 | | -**Description:** |
44 | | - |
45 | | -This command allows you to check the ping of a player, including jitter. If no target is specified, it will check your own ping. |
46 | | - |
47 | | -**Permissions:** |
48 | | - |
49 | | -* `knockbacksync.ping` (defaults to true for players) |
50 | | - |
51 | | -**Examples:** |
52 | | - |
53 | | -* `/knockbacksync ping`: Checks your own ping. |
54 | | -* `/knockbacksync ping Steve`: Checks the ping of a player named Steve. |
55 | | - |
56 | | -**Output:** |
57 | | - |
58 | | -* If a pong packet has been received: "Your last ping packet took [ping]ms. Jitter: [jitter]ms." or "[Player]'s last ping packet took [ping]ms. Jitter: [jitter]ms." |
59 | | -* If a pong packet has not been received: "Pong not received. Your estimated ping is [estimated ping]ms." or "Pong not received. [Player]'s estimated ping is [estimated ping]ms." |
60 | | - |
61 | | -**Notes:** |
62 | | - |
63 | | -* The estimated ping is based on the player's platform reported ping. |
64 | | -* Jitter represents the variation in ping over time. |
65 | | ---- |
66 | | -### /knockbacksync status [target] |
67 | | - |
68 | | -**Description:** |
69 | | - |
70 | | -This command allows you to check the KnockbackSync status of a player or the server. If no target is specified, it will show both the global status and your own status. |
71 | | - |
72 | | -**Permissions:** |
73 | | - |
74 | | -* `knockbacksync.status.self` (defaults to true for players): Allows checking your own status. |
75 | | -* `knockbacksync.status.other` (defaults to op only): Allows checking the status of other players. |
76 | | - |
77 | | -**Examples:** |
78 | | - |
79 | | -* `/knockbacksync status`: Shows the global status and your own status. |
80 | | -* `/knockbacksync status Steve`: Shows the status of a player named Steve. |
81 | | - |
82 | | -**Output:** |
83 | | - |
84 | | -* **Global status:** "Global KnockbackSync status: [Enabled/Disabled]" |
85 | | -* **Player status:** "[Player]'s KnockbackSync status: [Enabled/Disabled]" (or "Disabled (Global toggle is off)" if the global toggle is off) |
86 | | - |
87 | | -**Notes:** |
88 | | - |
89 | | -* The player status will be "Disabled" if the global toggle is off, even if the player has individually enabled KnockbackSync. |
90 | | -* The messages displayed by this command are configurable in the `config.yml` file. |
91 | | ---- |
92 | | -### /knockbacksync toggle [target] |
93 | | - |
94 | | -**Description:** |
95 | | - |
96 | | -This command allows you to toggle KnockbackSync for yourself, another player, or globally. |
97 | | - |
98 | | -**Permissions:** |
99 | | - |
100 | | -* `knockbacksync.toggle.self` (defaults to true for players): Allows toggling KnockbackSync for yourself. |
101 | | -* `knockbacksync.toggle.other` (defaults to op only): Allows toggling KnockbackSync for other players. |
102 | | -* `knockbacksync.toggle.global` (defaults to op only): Allows toggling KnockbackSync globally for the server. |
103 | | - |
104 | | -**Examples:** |
105 | | - |
106 | | -* `/knockbacksync toggle`: Toggles KnockbackSync globally (if you have permission) or for yourself. |
107 | | -* `/knockbacksync toggle Steve`: Toggles KnockbackSync for a player named Steve. |
108 | | - |
109 | | -**Output:** |
110 | | - |
111 | | -* **Global toggle:** Sends a message indicating whether KnockbackSync has been enabled or disabled globally. The messages are configurable in the `config.yml` file. |
112 | | -* **Player toggle:** Sends a message indicating whether KnockbackSync has been enabled or disabled for the specified player. The messages are configurable in the `config.yml` file. |
113 | | -* **Ineligible player:** If a player is ineligible for KnockbackSync (e.g., due to permissions), a configurable message will be sent. |
114 | | -* **KnockbackSync disabled:** If KnockbackSync is disabled globally and you try to toggle it for a player, a message will be sent indicating that KnockbackSync is disabled. |
115 | | - |
116 | | -**Notes:** |
117 | | - |
118 | | -* If KnockbackSync is disabled globally, toggling it for a player will have no effect until KnockbackSync is enabled globally. |
119 | | -* Players can only toggle KnockbackSync for themselves if they have the `knockbacksync.toggle.self` permission. |
120 | | -* Operators can toggle KnockbackSync for other players and globally. |
121 | | ---- |
122 | | -### /knockbacksync reload |
123 | | - |
124 | | -**Description:** |
125 | | - |
126 | | -This command reloads the KnockbackSync plugin's configuration file. |
127 | | - |
128 | | -**Permissions:** |
129 | | - |
130 | | -* `knockbacksync.reload` (defaults to op only) |
131 | | - |
132 | | -**Examples:** |
133 | | -* `/knockbacksync reload` |
134 | | - |
135 | | -**Output:** |
136 | | - |
137 | | -* Sends a message to the command sender indicating that the configuration has been reloaded. The message is configurable in the `config.yml` file. |
138 | | - |
139 | | -**Notes:** |
140 | | - |
141 | | -* This command is useful for applying changes made to the configuration file without restarting the server. |
142 | | ---- |
143 | | -### /knockbacksync toggleoffground |
144 | | - |
145 | | - **Description:** |
146 | | - |
147 | | - This command toggles the experimental off-ground knockback synchronization feature. |
148 | | - |
149 | | - **Permissions:** |
150 | | - |
151 | | - * `knockbacksync.toggleoffground` (defaults to op only) |
152 | | - |
153 | | - **Examples:** |
154 | | - |
155 | | - * `/knockbacksync toggleoffground` |
156 | | - |
157 | | - **Output:** |
158 | | - |
159 | | - * Sends a message indicating whether the experimental off-ground knockback synchronization has been enabled or disabled. The messages are configurable in the `config.yml` file. |
160 | | - |
161 | | - **Notes:** |
162 | | - |
163 | | - * **This command currently does not do anything as off-ground synchronization has yet to be implemented.** |
164 | | - * This feature is experimental and may not work as expected. |
165 | | - |
166 | | -## License |
167 | | -GNU General Public License v3.0 or later |
168 | | - |
169 | | -See [LICENSE](https://www.gnu.org/licenses/gpl-3.0.en.html) to see the full text. |
0 commit comments