PaulCLI logoPaulCLI

Settings reference

All Auto Role fields, defaults, and validation rules.

SettingTypeDefaultMeaning
JoinAutoRole.roleIdsnowflakerequiredRole to grant to new non-bot members. Unique per guild and role.
ReactionRolePanel.channelIdsnowflake or nullnull in schema; required when publishingText channel containing the panel message. Creation requires a valid channel belonging to the guild.
ReactionRolePanel.messageIdsnowflake or nullnull in schema; set after publishDiscord message ID for the live panel. Used for PATCH edits and best-effort DELETE cleanup.
ReactionRolePanel.contentstringPick your roles below!Message text shown above buttons. API requires 1–2000 characters for create and edit.
ReactionRoleButton.labelstringrequiredButton label, 1–80 characters.
ReactionRoleButton.emojistring or nullnullOptional Unicode emoji or custom emoji mention such as <:name:id>, maximum 64 characters.
ReactionRoleButton.styleprimary | secondary | success | dangersecondaryDiscord button style. Dashboard labels them Blurple, Grey, Green, and Red. Invalid input falls back to secondary.
ReactionRoleButton.roleIdsnowflakerequiredRole toggled by the button. Each role can appear only once per panel.
ReactionRoleButton.positioninteger0Button ordering inside the panel. The API assigns positions from the submitted array index.

Discord row limits

Discord allows at most 5 action rows with 5 buttons each. PaulCLI chunks the submitted buttons into rows of 5, so the API limit is 25 buttons per panel.