Items dropped to jumppads have desynced client and server state
Sometimes when the strength is dropped to the jumppad near the megahealth of finalrage it can get stuck in the jumppad while its waypoint bounces to the jumppad destination. The item can be picked up where the waypoint is, not where it appears to be.
Here is is how to reliably reproduce it:
Define these commands that allow setting a specific player position and view:
These commands are now available in Xonotic
alias posview_load "_posview_set \"$_posview_pos\" \"$_posview_angles\""
alias posview_save "_posview_save_to_cvars _posview_pos _posview_angles"
alias _posview_set "prvm_edictset server 1 origin \"$1\"; prvm_edictset server 1 fixangle 1; prvm_edictset server 1 angles \"$2\""
alias _posview_save_to_cvars "prvm_edictget server 1 origin ${1 ?}; prvm_edictget server 1 v_angle ${2 ?}"
set _posview_pos "0 0 0"
set _posview_angles "0 0 0"
Then follow these steps:
sv_cheats 1
g_powerups_drop 1
map finalrage
join
give strength
_posview_angles "21.9342041 43.9233398 0"
_posview_pos "628.391418 -572.880859 -71.96875"
posview_load
drop the powerup with f (+use)
This issue happens even if I set the very same size for both client-side and server-side Strength and compile code of bones_was_here/sv_legacy_bbox_expand (with sv_legacy_bbox_expand 1). In this case the bug can be reproduced from a different position:
_posview_angles "14.7161865 22.7252197 0"
_posview_pos "611.743591 -493.156006 -71.96875"
Edited by terencehill