Troubleshooting
Common issues and implementation notes for gcm_storms.
Admin command does not open panel
Possible Causes
- The command name configured in
config/general.lua(openStormCommand) is incorrect. Custom.isAdmin(source)is not returningtruefor your user/group.- ACE permissions or framework group mappings are incorrect.
Fix
- Verify command name in
config/general.lua. - Confirm your user/group is recognized by
Custom.isAdmin. - Review ACE permissions and framework group configuration.
Storm starts but players are not moved correctly
Possible Causes
- Routing buckets are being overridden by another resource.
- Join state is missing before storm start (
Player(source).state.stormData). - Inventory hooks fail during confiscation or kit distribution.
Fix
- Check that no other resource modifies routing buckets during storms.
- Confirm
stormDataexists before start. - Review server logs for inventory hook errors.
Storm does not start automatically
Expected Behavior
A storm requires at least 2 players when start timer expires.
If fewer than two players are present, the storm is automatically cancelled by design.
Zone marker or shrinking circle not visible
Possible Causes
- Server does not write
GlobalState['storm_<id>_marker']. - Clients cannot read GlobalState/statebags.
- Marker rendering options are disabled.
Fix
- Confirm server updates
GlobalState['storm_<id>_marker']. - Ensure OneSync and statebags are enabled.
- Check:
config/entrypoint.lua -> showMarkerconfig/zones.lua -> ZoneColor
HUD players / kills / lives do not update
Possible Causes
- Server does not update
stormDatastatebag. - Kill feed is disabled.
- Another resource is blocking NUI focus.
Fix
- Verify
stormDatastate updates on server. - Ensure
enableKillFeed = trueif kill tracking is expected. - Check for NUI focus conflicts.
Presets not loading or saving
Possible Causes
gcm_storm_presetstable does not exist.- JSON columns contain invalid data.
Affected columns include:
kitrewardcoordsentryCoords
Fix
- Confirm schema import completed successfully.
- Validate JSON values in preset rows.
Webhook logs not sent
Possible Causes
- Logging is disabled in config.
- Webhook URL is invalid.
Fix
- Ensure
config/logs.lua -> enabled = true. - Verify webhook URL matches
https://discord.com/api/webhooks/...format. - Replace sample values with real URLs.
Implementation Risk Notes
These notes highlight potential edge cases or improvements in the current implementation.
Kill Feed State Mismatch
In server/storms.lua, one kill-feed payload writes name = storm.name while other state writes use self.data.name.
This can produce inconsistent statebag payloads.
Storm Cancel Permission Check
In server/adminactions.lua, storm cancel callback does not perform explicit Custom.isAdmin(source) check before stopping a storm.
Consider adding the guard to ensure only authorized users can cancel storms.
GlobalState Cleanup
Long-running zone loops depend on proper GlobalState cleanup.
If storm flow is interrupted by third-party scripts, stale marker state can remain active temporarily.