Troubleshooting Trace: Bans, Detections, and Panel Issues
Diagnose and fix common Trace problems including bans not working, detections not firing, the admin panel not opening, and webhook delivery failures.
Most Trace issues fall into a small number of categories: installation order, Roblox API settings that must be enabled before publishing, and permission configuration. Work through the relevant section below, and check the Studio Output window for any Trace error messages alongside each step.
Admin panel doesn't open
- Confirm the staff member's Roblox
UserIdis assigned to a role in Settings → Roles. A player with no assigned role has no panel access regardless of group rank. - Verify that Trace is correctly installed in
ServerScriptServiceorServerStorageand that the initialization script ran without errors. Check the Output window in Studio for any Trace-related errors on startup. - If you are testing in Studio, make sure you are using Play Solo or Team Test - the panel requires the Trace server runtime to be active.
Bans aren't working
Enable Players.BanningEnabled in your experience settings:
- Open Game Settings in Roblox Studio.
- Navigate to Security → Allow API Services.
- Enable the Banning API toggle.
- Publish your experience for the change to take effect.
Without this setting, the Roblox Ban API is inactive and Trace cannot apply or lift platform-level bans. This setting must be enabled before publishing - it cannot be toggled at runtime.
Detections aren't firing
- Open the Trace settings and check your Protection Preset. The Relaxed preset intentionally reduces detection sensitivity. Switch to a stricter preset if you need more aggressive coverage.
- Check the Output window in Studio for errors during Trace initialization. If Trace failed to load, no detections will fire.
- Confirm the player's character is fully loaded before testing movement detections - detections that depend on
HumanoidRootPartposition require a spawned character.
Discord webhook not receiving messages
- Open
TraceConfigand verify the webhook URL is correct and complete. - In Discord, navigate to your channel's Integrations → Webhooks settings and confirm the webhook has not been deleted or regenerated since you last copied the URL.
- Trigger a low-impact event from the admin panel (for example, add a staff note) and watch the Discord channel. If nothing arrives, check the Studio Output window for HTTP errors from the webhook request.
- If the webhook URL was recently regenerated in Discord, update
TraceConfigwith the new URL and republish.
False-positive detections for legitimate movement
Implement Movement Exceptions in a trusted server script to authorize the specific mechanic triggering the false positive - launch pads, portals, vehicles, and scripted flight are the most common causes.
local Trace = _G.Trace
assert(Trace, "Trace must be initialized before movement integrations")
-- Example: authorize a launch pad impulse
local token = Trace.BeginMovementException(player, {
Id = "launch-pad",
Duration = 8,
Reason = "Launch pad impulse",
Checks = {"Velocity", "Fling", "Fly"},
})
-- ... your launch pad movement code ...
Trace.EndMovementException(player, token)
See the Movement Exceptions guide for the full API.
Staff member can't access a feature
- Check the staff member's role in Settings → Roles and verify the relevant permission is enabled for that role.
- Open Settings → Systems and confirm the feature's Global System toggle is on. A disabled Global System turns off that feature for every role, including Experience Owner.
- If the system was recently disabled and you cannot re-enable it from the panel, edit
TraceConfiginServerScriptServiceto restore the setting and republish.
Replay won't load
Replay data is stored in your experience's Roblox DataStores. If replays are not loading:
- Confirm API Services are enabled: Game Settings → Security → Allow API Services.
- Check that the DataStore quota for your experience has not been exceeded - high-traffic experiences can hit DataStore request limits.
- If the replay was recorded in a previous version of Trace, it may use a schema that is no longer compatible. Check the Trace changelog for any replay format migration notes.
"Trace must be initialized" error in server scripts
This error means your script ran before Trace had finished initializing. Because Trace initializes asynchronously, scripts that access _G.Trace immediately on run can beat it to the punch.
Use a wait loop to defer until Trace is ready:
local Trace
repeat task.wait() until _G.Trace
Trace = _G.Trace
Alternatively, place your integration script after the Trace initialization script in the execution order, or use a script.Parent.ChildAdded pattern to detect when the Trace API table is available.