This is on 1.20.6, recently tried Pledge with a PacketEvents plugin to send transactions start/end of tick


Here is my configuration. Pledge is sending the pings and the client is responding and the server does recognize the receive (verified using PacketEvents) however Pledge won't handle the pong receive method (start/end) unless an entire cycle of the IDs have been sent first. This was found after using the PingTaskScheduler from Dusk which I used to track player ping by scheduling a task every start of server tick.

With ID range from -1 to -200, the ping is shown as ~5000ms. (200 ids / 2 per server tick * 50ms each tick = 5000ms)
With ID range from -1 to -2400, the ping is shown as ~60000ms. (2400 ids / 2 per server tick * 50ms each tick = 60000ms)
This is how I concluded that it takes an entire cycle of pings in the ID range to be sent first before Pledge actually can recognize receives.