HomeJavaModsBakeryAuth
BakeryAuth
ModsJava

BakeryAuth

by EyeCrasher · on Modrinth

A required NeoForge mod combining Discord authentication with manual client verification to help protect servers from unauthorized access.

⬇ Download on Modrinth
BakeryAuth — screenshot 1

BakeryAuth

Discord authentication and manual client verification for NeoForge servers.

BakeryAuth links Minecraft accounts to Discord, requires approval for every login, and provides client reports for administrator review.

Features

Discord Account Linking

Login Approval

Every login must be approved through Discord DM:

Client Reports

After a successful login, the client can submit information about installed mods and resource packs to the server.

Players are shown a consent screen before any data is collected. Declining the consent screen disconnects the player without sending a report.

Localization

Server Security


Requirements

Component Version
Minecraft 1.21.1
Loader NeoForge
Java 21

Installation

Server

  1. Download the latest bakeryauth-*-all.jar release.

  2. Place the JAR into the server's mods directory.

  3. Start the server once.

  4. Edit the generated configuration file:

    config/bakeryauth.properties
    
  5. Restart the server.

Client

Every player must install the same BakeryAuth version as the server.


Discord Setup

  1. Create a Discord bot.
  2. Enable the Server Members Intent.
  3. Invite the bot to your Discord server.
  4. Configure:
    • Bot token
    • Guild ID
    • Player role ID
    • /link channel ID
  5. Optionally create a webhook for client reports.

Commands

Commands require permission level 3.

/bakeryauth info <player>

Displays account-link, Discord-role, guild-membership, and login-session information.

/bakeryauth unlink <player>

Removes a player's Discord link and active login session.

/bakeryauth reload

Reloads supported server configuration settings.


Privacy

Data sent from the client to the server after consent:

SHA-1 hashes are submitted by the server to the Modrinth API for file identification. Reports can be sent to server administrators through a configured Discord webhook.

Before any report is collected, players are shown a consent screen explaining what is shared and why. Declining disconnects the player without sending a report.

Consent is stored locally for each server address and is requested again when the agreement version changes.

The client never receives:

BakeryAuth activates client reporting only when connected to a server running BakeryAuth and matching one of the addresses configured by that server.


Login Flow

Join server
     |
     |- BakeryAuth missing or incompatible?
     |      -> Connection rejected
     |
     |- Account not linked?
     |      -> Receive /link code
     |
     |- Missing Discord membership or role?
     |      -> Access denied
     |
     |- Login request created
     |      -> Discord DM sent
     |
     |- Approve
     |      -> Reconnect and join server
     |      -> Consent screen shown when required
     |      -> Client report sent after consent
     |
     `- Deny
            -> Access denied

Configuration Example

server.language=en

discord.token=BOT_TOKEN
discord.guildId=123456789012345678
discord.playerRoleId=987654321098765432
discord.linkChannelId=111122223333444455

bakery.webhookUrl=https://discord.com/api/webhooks/...
bakery.serverIps=play.example.net,127.0.0.1:25565

security.loginExpireMinutes=5
security.handshakeTimeoutSeconds=30

Player disconnect messages can also be customized using the message.* configuration options.


Open Source

Source code is available on GitHub. Issues and contributions are welcome.

License

GPL-3.0-only

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more