5 Commits

Author SHA1 Message Date
cfe36cb3b2 Despawn safes via server onResourceStop instead of client-side stop
onClientResourceStop doesn't fire reliably for a resource's own
client scripts when it stops itself, so props never got cleaned up.
The server now broadcasts safe:despawn (the same path already used
for pickup) for every known safe on onResourceStop, right before the
resource actually goes down.

Bump to 1.1.6.
2026-08-03 12:01:58 +00:00
9cb715fc34 Remove auto-restart from upgrade command, bump to 1.1.1
ExecuteCommand('restart ...') was restarting the whole FXServer
process in this environment instead of just the resource, so
/oixbupgrade now only downloads files and tells the admin to
restart manually.
2026-08-03 11:35:17 +00:00
825284d722 Scope PIN rate-limit to the safe instead of the player
A wrong PIN now only locks that specific safe, so the player can
still try opening other safes. Also surfaces remaining attempts and
lock duration in the notify messages.
2026-08-03 11:14:29 +00:00
781607a434 Improve notify messages and fix premature pickup success notice
Distance rejection now says exactly why, the PIN rate-limit shows
remaining seconds, and the client no longer announces pickup success
before the server validates it.
2026-08-03 11:05:37 +00:00
849663708a Add safe stash resource with security hardening
Adds distance validation on placement, PIN attempt rate limiting,
proximity checks on open/pickup, and prevents item loss on pickup
when the safe still has contents.
2026-08-03 10:57:14 +00:00