## Bug fixes
- Fixed rescue damage handling so active rescue sequences cancel void damage even when using `Y_THRESHOLD` mode.
- Changed `handleVoid` to return whether a rescue actually started, allowing listeners to avoid cancelling damage when rescue is blocked by cooldown or bypass.
- Reworked delayed rescues so the safe location is recalculated immediately before teleporting instead of being locked in before the delay.
- Stabilized players as soon as rescue begins, clearing fall distance and velocity during the teleport delay to reduce fall-speed and anti-cheat issues.
- Added delayed-rescue revalidation: if the player changes world or reaches a safe standing location before the delayed teleport runs, the rescue is cancelled cleanly.
- Improved safe-location scanning order to prioritize nearby vertical/horizontal candidates more naturally.
- Reduced the risk of chunk-loading lag during safe scans by requiring scanned candidate chunks to already be loaded. Only the explicit target/spawn rescue chunks may still be loaded synchronously, with a warning.
- Added world border validation to safe rescue checks.
- Added dynamic world auto-registration through `WorldLoadEvent` for worlds loaded after plugin startup.
- Improved runtime world handling so auto-register can also occur when protection logic first sees a new world.
- Changed `/vp setspawn` to save the custom rescue location and automatically set the world rescue mode to `CUSTOM`.
- Added `/vp enable` and `/vp disable` to the help output.
## Configuration
- Bumped internal `config-version` to `5`.
- Added all missing message keys for `ES`, `FR`, `DE`, and `IT`.
- Added the new `custom-location-saved-custom-mode` message key in all supported languages.
- Updated the comment for `update-last-safe-every-ticks` to clarify that it is evaluated on block movement samples.