Skip to main content

🧩 Bot Protection

Bot Protection puts a verification challenge between joining your server and participating in it. New members prove they're human by completing a captcha, and only then receive the verified role — keeping automated accounts out before they can post a single message.

Overview

When configured, the agent can:

  • Post a Verify button embed in a verification channel of your choice
  • Challenge members with one of three captcha types: Classic Text, Image Puzzle, or Visual Challenge
  • Grant a verified role to members who pass the challenge
  • Show a fully customizable verification message — text, embed, and button appearance
  • Display a rules agreement embed after the captcha, with your own title, rules text, and imagery
  • Hold welcome greetings until verification completes, together with Welcome & Goodbye

Configuration

To configure bot protection:

  1. Open your project in the Fren One webapp.
  2. Select the Discord server you want to configure.
  3. In the sidebar under Agent Configuration, select Onboarding, then the Bot Protection tab.
  4. Toggle "Protect this server from bots" on.

Challenge type

Choose how members prove they're human. Every member who joins gets the same challenge type.

OptionDescription
Classic TextDistorted text characters to type. Default.
Image PuzzlePick the correct cell in a shape grid.
Visual ChallengeFollow instructions embedded in the image.

Channels and roles

OptionDescription
Verification channelThe channel where the verification embed is posted. Required when bot protection is on.
Verified roleThe role granted after a member passes the challenge. Leave blank to skip role assignment.

Verification message

The Verification message block shows whether your server uses the stock message ("Using the default verification message.") or your own ("Customized — members see your edited message."), with a Reset to default button to discard customizations. Select Customize message to open the modal editor: the form sits on the left, and a live Discord-styled preview on the right shows exactly what members will see — rendered with your server's custom bot identity if one is deployed, otherwise as "Fren One".

OptionDescription
Message above embedOptional plain text posted above the embed. Max 2000 characters.
EmbedFull embed editor — title, description, color, images, author, footer, and fields.
Button labelThe text on the verification button. Required, max 80 characters. Default: "Verify".
Button emojiThe emoji shown on the button. Default: ✅. Can be cleared to None.
Button stylePrimary (blurple, default), Secondary, Success, or Danger.
The button is always functional

The button always starts verification when clicked — only its appearance can be changed. Selecting Apply stages your edits into the page's batched save; they aren't live until you save.

Rules agreement

Check "Show a rules agreement after captcha" to present a rules embed to members after they pass the challenge. Configure what the embed says and how it looks:

OptionDescription
TitleThe embed title. Max 256 characters. Placeholder: "Server Rules".
DescriptionThe rules text. Max 4000 characters, with a live character count.
Embed colorColor picker with hex input. Default: Discord blurple (#5865F2), with a Reset button.
ImageOptional image URL (http/https, up to 512 characters).
ThumbnailOptional thumbnail URL (http/https, up to 512 characters).

Posting the verification embed

The Verification embed card at the bottom of the page has a Post embed button that sends the Verify embed to your verification channel. The button is disabled — with the reason shown in a tooltip — until everything it needs is in place:

TooltipMeaning
"Enable bot protection first"The master toggle is off.
"Set a verification channel first"No verification channel is selected.
"Save your changes first"You have unsaved edits — save the page before posting.

On success you'll see "Sent to the agent — the embed should appear in your verification channel within a few seconds". Posting is idempotent: if the embed already exists in the channel, the agent edits the existing message instead of posting a duplicate — so you can safely repost after changing the verification message.

How it works in Discord

The agent posts the verification embed with its Verify button in the verification channel. When a new member selects the button, the agent issues the configured challenge; once they complete it, the agent grants the verified role.

Verification runs as part of the full join sequence — after blacklist screening and impersonation checks, and before the welcome message. If you enable bot protection without configuring a channel or role, the agent auto-creates them with the defaults "verify" and "verified".

Two other features interact with the captcha:

  • With "Wait for verification before greeting" enabled on Welcome & Goodbye, the welcome message and DM are held until the member passes the challenge.
  • During an Anti-Raid lockdown, the agent pauses the captcha so joins aren't auto-verified mid-raid.

Saving your changes

This page uses a batched save — edits stay local until you select Save in the bar that appears at the bottom of the page, including changes applied in the verification message modal. Leaving the page with unsaved changes shows a warning. Note that Post embed requires a saved state: save first, then post.

Best practices

Getting verification right
  • Keep "Wait for verification before greeting" on in Welcome & Goodbye so unverified accounts are never welcomed publicly.
  • Use the rules agreement to put your rules in front of members at the exact moment they join — it's more visible than a rules channel.
  • Customize the button label and embed to match your server's tone; the live preview shows the result before you commit.
  • After editing the verification message, save and then select Post embed — the agent updates the existing embed in place.
Troubleshooting

Members aren't receiving the challenge?

  • Check that "Protect this server from bots" is toggled on and a Verification channel is set.
  • Make sure the verification embed has been posted — select Post embed on the settings page.
  • During an anti-raid lockdown the captcha is paused; it resumes when the lockdown lifts.

The verified role isn't being granted?

  • If you've customized the agent's permissions, it needs Manage Roles, and its role must sit above the verified role in your server's role hierarchy.

The Post embed button is disabled?

  • Hover it for the reason: enable bot protection, set a verification channel, or save your pending changes first.