Main Settings

Auto-Installation, Discord logging, the drop messages and rejection screens, the JSON editor, and how saving works.

Main Settings holds everything about the server that is not a detection rule. Detections live on Protection Rules, which shares the same editor chrome and the same save bar.

The header controls

  • Visual and Edit as JSON. The same configuration, two views. Switching between them keeps your unsaved edits.
  • Reset to default. Loads the recommended configuration for this server version. It is an edit like any other, so nothing is written until you press Save Changes, and Reset on the save bar puts your old settings back.

Reset to default only appears for someone holding the settings edit permission. Visual and Edit as JSON are always there, because reading the configuration either way is fine: with view only every control renders disabled and you can change nothing.

Auto-Installation

When on, Raven detects your resources and wires itself into them without you editing each one by hand. Ignored Resources is a list of resource names to leave alone. Add a resource here when Raven touching it causes a problem, for example a framework core you patch yourself. Adding the wrong name silently removes Raven coverage from that resource, so keep the list short and know why each entry is on it.

Discord Logging

On resource 1.5.9.4 and newer this card takes two webhook URLs, a Ban Webhook and a Kick Webhook. The logs are sent by the Raven cloud, not by your FiveM resource, and any screenshot or recording attached to the action is stored on the Raven CDN and added to the message automatically. There is no screenshot webhook to fill in any more.

The URL is validated before it is accepted. It has to be exactly this shape:

text
https://discord.com/api/webhooks/{id}/{token}

The host must be discord.com or discordapp.com and the scheme must be HTTPS. Anything else is rejected on save with the reason, and the save does not go through, so a typo never silently disables logging. Clearing a field removes that webhook and leaves the other one alone.

Both fields are masked like a password, with an eye toggle to reveal them, because a webhook URL is a credential. Anyone holding it can post into your channel.

On a server older than 1.5.9.4 the card is the legacy Discord Integration instead, with kick, ban and screenshot webhooks that live in the config and are sent by the resource itself. Discord logs walks through creating the webhook in Discord.

Connection Filters

Resource 1.7.3 and newer show the Connection Filters section here, and the Global Bans control lives inside it on those servers. Both have their own pages: Connection filters and Global bans.

Display Settings

This is everything a rejected player reads, in three parts.

Drop messages

What FiveM shows in its disconnect dialog. Three boxes: the kick reason, the ban reason, and the message shown when a player is dropped for missing client tokens. Variables you can use:

  • {reason} in the kick and ban messages
  • {banid} in the ban message
  • {link} in all three

Leaving {banid} out of the ban message is the most common mistake here. Without it a banned player opens a ticket with nothing you can look up.

Connection rejected screen

The card a banned player sees when they try to connect. The preview on the page is the editor: click any piece of text on it and type. Clearing a field puts the default wording back rather than leaving it blank. Two lines are not always on screen, the Global ban badge and the Evidence line, and the chips above the card reveal them so you can edit those too. The footer accepts {link}.

Connection filter rejection

The same idea for a player turned away by a VPN, name, country or Discord filter rather than a ban. Each filter has its own reason label and message, reachable from the chips on the card.

Support link

One URL, usually your Discord invite. It is the appeal button on both screens and the value {link} resolves to in the drop messages. Setting this is worth two minutes: it is the difference between a banned cheater going away and a wrongly banned player having no way to reach you.

Editing as JSON

The JSON view shows the whole configuration, including the cloud-only sections that have no card of their own. It is validated as you type against the template for your resource version. You can change values, but you cannot invent keys or change a value type, and a syntax error names the line. The Save button refuses an invalid configuration rather than storing it.

One section in the JSON is a view of values stored outside the configuration: GlobalBans. Editing it there works exactly like editing the card, and on save it folds back into the two server columns that own it rather than being stored twice. The Discord webhooks are not like that: they really do live in the configuration, under Discord.Webhooks, and a copy is mirrored onto an older column the cloud logger still reads.

Saving

Nothing on this page writes as you type. A bar appears at the bottom once something is dirty, with Reset, which throws your edits away, and Save Changes. It is only shown to someone who can actually save.

  • A save that changed the detections writes a protection rules row to the activity log. A save that changed anything else writes a config row. One save can write both.
  • The new configuration is pushed to a connected resource immediately. A save that only touched cloud-side settings is not pushed at all, because there is nothing in it for the resource to apply.
  • If someone else saved while you had the page open, your save is refused with a conflict message and the current configuration is loaded so you can reapply your change. Nothing is silently overwritten in either direction.

The proxy host field

There is no longer one. Since resource 1.5.9.5 the resource dials out to Raven over a WebSocket instead of the dashboard dialling in, so there is no inbound address to point at and nothing to configure. The field was removed from the panel and the endpoint behind it now refuses every request. If a guide tells you to set a proxy host, it predates that change. The activity log still carries a proxy host type for rows written before then.