Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/discordplace/discord.place/llms.txt

Use this file to discover all available pages before exploring further.

The server configuration lives in server/config.yml. This YAML file controls everything from Discord OAuth scopes and bot behaviour to channel IDs, role permissions, and available locales.
Make sure to fill all fields ending in ChannelId with real Discord channel IDs from your base guild. Leaving them as placeholders will cause the bot to fail when it tries to post to those channels.

Full config structure

The file below shows the default values shipped with discord.place:
server/config.yml
discordScopes:
  - 'identify'
  - 'email'
  - 'guilds'
botPresenceStatus: 'online'
rateLimitWhitelist:
  - '957840712404193290'
trustProxy: true
frontendUrl: 'https://discord.place'
backendUrl: 'https://api.discord.place'
docsUrl: 'https://docs.discord.place'
supportInviteUrl: 'https://invite.discord.place'
emojis:
  loading: '<a:loading:1247786499076915252>'
  checkmark: '<:yes:1226129515718381568>'
  pink_heart: '<:heart:1211809043564339290>'
  badges:
    admin: '<:white_admin:1267620006183571530>'
    moderator: '<:white_moderator:1251538987592712345>'
    premium: '<:white_premium:1251538989312249947>'
    verified: '<:white_verified:1251538990524403793>'
  empty_badge_slot: '<:empty_badge_slot:1251541500282798090>'
port:
  frontend: 3000
  backend: 3001
guildId: '1200254872059121764'
guildInviteUrl: 'https://invite.discord.place'
permissions:
  canEditProfilesRoles:
    - '1206032198562742312'
  # ... (full permissions object — see source)
maxServerCountDifference: 50
roles:
  jrModerator: '1206355082883371049'
  moderator: '1267549562957205645'
  headModerator: '1206354879321210900'
  admin: '1206032198562742312'
  premium: '1252335063123628084'
  translator: '1275014710692941896'
excludeCollectionsInBackup:
  - 'botdenies'
  - 'botvotetimeouts'
  - 'servervoteremindermetadas'
  - 'servervotereminders'
  - 'servervotetimeouts'
  - 'evaluateresults'
  - 'githubcaches'
  - 'plans'
customHostnames:
  - 'dsc.lat'
  - 'dsc.gay'
  - 'dsc.wtf'
  - 'dsc.baby'
lemonSqueezy:
  variantIds:
    tripledVotes:
      servers: '421124'
      bots: '421125'
    standedOut:
      servers: '425991'
      bots: '425992'
availableLocales:
  - name: 'English'
    code: 'en'
    flag: '🇺🇸'
    default: true
    countryCode: 'us'
  - name: 'Turkish'
    code: 'tr'
    flag: '🇹🇷'
    countryCode: 'tr'
# Channel IDs (replace all with your own)
emojiQueueChannelId: ''
soundQueueChannelId: ''
reviewQueueChannelId: ''
themeQueueChannelId: ''
reportsQueueChannelId: ''
botQueueChannelId: ''
templateQueueChannelId: ''
webLogsChannelId: ''
testWebhookLogsChannelId: ''

Options reference

General

discordScopes
string[]
required
Discord OAuth2 scopes requested during login. The default set — identify, email, and guilds — is required for the full feature set. Only remove a scope if you are certain the features that depend on it are not used.
botPresenceStatus
string
default:"online"
Presence status displayed for the Discord bot. Accepted values: online, idle, dnd, invisible.
rateLimitWhitelist
string[]
Array of Discord user IDs that are exempt from all rate limits. Add IDs for your admin accounts here.
trustProxy
boolean
default:"true"
Express trust proxy setting. Set to true when running behind a reverse proxy (e.g. nginx, Cloudflare) so that req.ip reflects the real client IP instead of the proxy’s IP.

URLs

frontendUrl
string
required
Public URL of the Next.js client (e.g. https://discord.place). Used by the server to construct redirect URLs and CORS rules.
backendUrl
string
required
Public URL of the Express API server (e.g. https://api.discord.place). Used to construct self-referential API links.
docsUrl
string
required
URL of the documentation site, linked from bot messages and API responses.
supportInviteUrl
string
required
Invite URL for your Discord support server, linked from bot messages and error pages.

Bot emojis

emojis
object
required
Custom emojis used in bot messages and embeds. Each value is a Discord emoji string in the format <:name:id> (static) or <a:name:id> (animated). Replace all values with emojis from your own guild.
KeyDescription
loadingAnimated loading spinner
checkmarkSuccess / yes indicator
pink_heartDecorative heart emoji
badges.adminAdmin badge shown on profiles
badges.moderatorModerator badge shown on profiles
badges.premiumPremium badge shown on profiles
badges.verifiedVerified badge shown on profiles
empty_badge_slotPlaceholder shown when a badge slot is empty

Ports

port.frontend
number
default:"3000"
Port the Next.js client runs on. Should match NEXT_PUBLIC_PORT in the client’s .env.
port.backend
number
default:"3001"
Port the Express server listens on.

Base guild

guildId
string
required
Discord ID of your base guild. The bot uses this guild for role assignments, channel logging, and other administrative actions.
guildInviteUrl
string
required
Public invite URL for the base guild. Displayed in bot messages and on the website.

Permissions

permissions
object
required
Maps permission names to arrays of role IDs from the base guild. Permission names ending in Roles are role-based (checked against a user’s server roles). Permission names without a suffix are user ID-based.Replace all role IDs with those from your own guild. The following permission keys are available:
Permission keyDescription
canEditProfilesRolesCan edit any user’s profile
canDeleteProfilesRolesCan delete any profile
canDeleteServersRolesCan remove any server listing
canDeleteEmojisRolesCan remove any emoji
canDeleteBotsRolesCan remove any bot listing
canDeleteReviewsRolesCan delete any review
canDeleteTemplatesRolesCan delete any template
canDeleteSoundsRolesCan delete any sound
canDeleteThemesRolesCan delete any theme
canApproveEmojisRolesCan approve submitted emojis
canApproveBotsRolesCan approve submitted bots
canApproveReviewsRolesCan approve submitted reviews
canApproveTemplatesRolesCan approve submitted templates
canApproveSoundsRolesCan approve submitted sounds
canApproveThemesRolesCan approve submitted themes
canEditServersRolesCan edit any server listing
canEditBotsRolesCan edit any bot listing
canViewQuarantinesRolesCan view quarantined users/guilds in the dashboard
canCreateQuarantinesRolesCan add new quarantine entries
canDeleteQuarantinesRolesCan remove quarantine entries
canViewDashboardRolesCan access the admin dashboard
canDeleteBotDeniesRolesCan delete bot denial records
canRestoreBotDeniesRolesCan restore a denied bot
canViewTimeoutsRolesCan view user timeouts
canDeleteTimeoutsRolesCan delete timeouts
canSyncLemonSqueezyPlansCan trigger Lemon Squeezy plan sync (user ID-based)
canExecuteEvalCan run arbitrary eval commands via bot (user ID-based)
canExecuteFetchRolesCan trigger a role fetch
canExecuteRefreshCacheRolesCan trigger a cache refresh
canExecuteAddPremiumCan grant premium to users (user ID-based)
canVerifyProfilesRolesCan verify user profiles
canDeleteLinksRolesCan delete profile links

Server count validation

maxServerCountDifference
number
default:"50"
Maximum allowed discrepancy between the server_count value a bot reports via the stats API and the actual count observed by the Discord bot. Requests exceeding this threshold are rejected. Increase this value if you expect bots with large, rapidly-changing server counts.

Roles

roles
object
required
Maps logical role names to Discord role IDs from the base guild. Replace each ID with the corresponding role in your own guild.
KeyDescription
jrModeratorJunior moderator role
moderatorModerator role
headModeratorHead moderator role
adminAdministrator role
premiumPremium subscriber role
translatorCommunity translator role

Database backups

excludeCollectionsInBackup
string[]
MongoDB collection names to exclude from daily database backups. Use exact collection names as they appear in the database. The defaults exclude ephemeral or easily-regenerated collections such as vote timeouts and evaluation results.

Custom hostnames

customHostnames
string[]
required
List of custom vanity hostnames for user profiles (e.g. dsc.lat). Must match the customHostnames list in client/config.js. Each hostname must be DNS-pointed to your server and proxied to the correct port via a reverse proxy.

Lemon Squeezy

lemonSqueezy.variantIds
object
Maps internal product identifiers to Lemon Squeezy variant IDs. If you are using Lemon Squeezy for premium features, create these products/variants in your Lemon Squeezy store and update these IDs.
KeyDescription
tripledVotes.serversTripled votes product variant for servers
tripledVotes.botsTripled votes product variant for bots
standedOut.serversStand-out listing variant for servers
standedOut.botsStand-out listing variant for bots

Locales

availableLocales
object[]
required
Array of locale objects available on the server. Each object has the following fields:
FieldTypeDescription
namestringHuman-readable language name
codestringBCP 47 language code matching the JSON filename in server/src/locales/
flagstringFlag emoji
defaultbooleanSet to true on the default locale
countryCodestringISO 3166-1 alpha-2 country code
See Localization for instructions on adding new languages.

Channel IDs

All fields ending in ChannelId must be set to real channel IDs from your base guild.
FieldDescription
emojiQueueChannelIdChannel where emoji submission queue is posted
soundQueueChannelIdChannel for sound submission queue
reviewQueueChannelIdChannel for review moderation queue
themeQueueChannelIdChannel for theme submission queue
reportsQueueChannelIdChannel where user reports are posted
botQueueChannelIdChannel for bot submission queue
templateQueueChannelIdChannel for template submission queue
webLogsChannelIdChannel for general web server logs
testWebhookLogsChannelIdChannel for test webhook event logs

Build docs developers (and LLMs) love