Security engine
Twenty detectors. Four stages. Nothing acts that you did not configure.
The engine depends on neither Discord nor the database, which is what makes testing a rule structurally incapable of touching your server rather than merely careful about it.
The detectors
Every one has a ceiling it cannot exceed.
Each detector contributes evidence up to a limit, and no further, however much it found. Where those limits sit is visible and tunable in your dashboard. It is not published here, for reasons that should be obvious.
Content
What the message actually says, once any disguise has been undone.
Behaviour
What this account has been doing lately. Editing a message is never counted as flooding.
Identity
Who is speaking. Age and profile are indicators, never a verdict on their own.
External
Off until you turn it on, never consulted when you are only testing, and metered rather than withheld.
What your moderators see
Every decision arrives with its evidence.
This is the engine’s own output, not a mock-up of it. The message below was put through the real engine, and what it posted is rendered here as it was returned: the band it landed in, what it did, why, and the four other signals that agreed.
Monitor mode says what it would have done.
The same message again, on a server that has not switched enforcement on. Nothing was deleted and nobody was timed out. The verdict is identical and the action is hypothetical, which is the point of watching first.
Safety of the platform itself
The engine has to survive what you configure.
A security tool that can be brought down by its own rules is a liability. These are the defences that point inward.
Your rules cannot hang your server
Patterns are checked for dangerous constructions before they can be saved, then run isolated and time bounded. One that would otherwise run away is stopped, and Wardnox can tell you which one it was rather than leaving you to bisect your own ruleset.
Domains are matched properly
A familiar name buried inside an unfamiliar domain is not that domain. Wardnox resolves what a domain genuinely is rather than comparing the end of a string, which is the single most common way naive filters get walked past.
A rule that misfires pulls itself
Wardnox watches how often each of your rules fires relative to what it is seeing. One that starts behaving like a mistake stops enforcing and your moderators are notified. It keeps logging, because silently disabling a rule somebody wrote is its own kind of surprise.
Following a link cannot be turned inward
When link resolution is enabled, every protection applies to every hop rather than only the first, and Wardnox refuses to be aimed at anything on your own infrastructure. It never reads, parses or executes what it finds. It only wants to know where the link ended up.
One failure is not an outage
Each stage settles independently. Something timing out or throwing removes that one opinion and nothing else. The message is still assessed, and the bot never falls over because Discord said no.
Your servers cannot see each other
Every stored row belongs to exactly one server, and every read is filtered by that on the row being read rather than somewhere upstream. The boundary is covered by tests that run against a real database, not by convention.
Optional, and doubly gated
Nothing goes to a third party by default.
AI review is off until an administrator of your server switches it on, andthe provider has to be configured on our side as well. Being on a paid plan does not turn it on: a plan decides what you may enable, never what runs. When it is on, what leaves is the minimum needed to ask the question, and never user IDs, usernames, channel IDs or guild IDs.
Several independent limits hold the AI stage down, and they are enforced outside it: a provider should not be trusted to police its own influence.

See it assess your own traffic.
Monitor mode first, always. Join the whitelist and we will be in touch when your server can be added.
