> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rodyne.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up member verification

> Connect Discord and Roblox identities with Cnect, verification embeds, and safe role reconciliation.

Verification proves which Discord and Roblox accounts belong to the same person, then reconciles eligible mapped roles.

## Member entry points

* `/verify` starts or refreshes first-party Cnect verification.
* `/link` is an alias for `/verify`.
* `/update` refreshes the caller; authorized staff can update another member.
* A published verification message opens the guild-specific Cnect flow.
* The Cnect home page lets a signed-in member review their own active links.

## Publish a verification message

Staff with **Manage integrations** can use:

```text theme={null}
/settings verification-embed channel:#verification title:Welcome message:Link your Discord and Roblox accounts using the button below. colour:#5865F2 button-label:Verify now
```

Optional `image` and `thumbnail` values must be HTTPS URLs. Omitted fields reuse the saved design, or the default design on first publication. The selected channel must be a text or announcement channel in the connected server, and the bot needs Send Messages and Embed Links.

Every verification message includes the fixed footer **Never Share your passwords with anyone**.

## What happens during verification

<Steps>
  <Step title="Bind the request to Discord">
    The member signs into Cnect with Discord. The short-lived request is tied to that Discord member and guild.
  </Step>

  <Step title="Confirm Roblox ownership">
    The member signs into the configured Roblox flow and reviews the exact accounts before confirmation.
  </Step>

  <Step title="Resolve group membership">
    Rodyne reads every bound Roblox group and finds matching rank mappings.
  </Step>

  <Step title="Reconcile Discord roles">
    Matching unprotected roles are added. Unmatched unprotected managed roles are removed. Unrelated, still-shared, and protected roles are preserved.
  </Step>
</Steps>

## Third-party discovery

Cnect is the authoritative first-party link. If no Cnect record exists, Rodyne can query configured Bloxlink and RoWifi integrations for the exact guild and Discord member.

* Results are validated as numeric Roblox IDs and cached briefly.
* Provider disagreement stops role changes.
* A discovery that conflicts with another member's Cnect link stops role changes.
* Third-party results are not silently converted into permanent Cnect ownership.

<Info>
  After `/unlink`, automatic discovery stays disabled until the member explicitly runs `/link` or `/verify`, or confirms a fresh Cnect request. Old requests cannot restore the unlinked account.
</Info>

## Unlinking

`/unlink` removes the caller's Roblox OAuth connection and Cnect links across Rodyne communities. Their Discord account and sign-in remain connected. Community records are not automatically deleted; members should follow the workspace's privacy process for record requests.

## Verification fails safely

No managed roles change when:

* Group membership lookup fails.
* Identity providers disagree.
* The Roblox identity conflicts with an existing first-party link.
* The mapped Discord role is protected or above the bot.
* The member is no longer in the bound Discord guild.

## Guided walkthrough

<Frame caption="Cnect keeps identity ownership and connected-community policy explicit.">
  <img src="https://mintcdn.com/rodyne/3VLEvtRzxXCeXuB_/assets/screenshots/cnect-network-main.png?fit=max&auto=format&n=3VLEvtRzxXCeXuB_&q=85&s=cd02ea995b90b47093e665d02ae2fb7e" alt="Rodyne Cnect network and linked identity controls" width="990" height="742" data-path="assets/screenshots/cnect-network-main.png" />
</Frame>

The screenshot above is from the live Rodyne product. Use it to orient yourself, but rely on the current record state and live provider checks when operating the workspace.

## Operating procedure

<Steps>
  <Step title="Publish one entry point">
    Place the verification message in a channel visible to the intended members.
  </Step>

  <Step title="Complete first-party proof">
    Use a controlled Discord and Roblox account to finish the complete Cnect flow.
  </Step>

  <Step title="Review mapped roles">
    Confirm that eligible unprotected roles are added and stale managed roles are removed.
  </Step>

  <Step title="Test conflict handling">
    Verify that provider disagreement or duplicate ownership stops reconciliation.
  </Step>

  <Step title="Test unlinking">
    Confirm that unlinking prevents silent third-party relinking until a new explicit request.
  </Step>
</Steps>

## Acceptance checks

| Check     | Ready when                                          | If it is not ready               |
| --------- | --------------------------------------------------- | -------------------------------- |
| Ownership | The exact Discord and Roblox accounts are confirmed | Restart the first-party link     |
| Mappings  | Group and rank IDs match live provider data         | Correct the mapping before retry |
| Safety    | Conflicts stop all managed role changes             | Review the identity conflict     |

## Failure recovery

When verification fails, do not assign roles manually as a substitute for ownership proof. Diagnose identity, group lookup, mapping, Discord hierarchy, and provider agreement in that order.

## Continue the workflow

<CardGroup cols={2}>
  <Card title="Cnect identity linking" href="/cnect/identity-linking" icon="link" />

  <Card title="Configure role mappings" href="/guides/roles-and-ranks" icon="layers" />
</CardGroup>
