Fun
Configure fun features including leveling, counting game, starboard, and daily content
Introduction
The Fun configuration file (fun.json) controls entertainment and engagement features including the leveling system, counting game, starboard, birthdays, and daily question/quote systems.
Counting Game
The counting game is a channel activity where users count sequentially (1, 2, 3, etc.). You can configure rules and penalties for mistakes.
enabled
Type: Boolean
Enables or disables the counting game feature.
enabled: truealternating_users
Type: Boolean
When enabled, consecutive numbers must be sent by different users.
alternating_users: falseWhen true:
User A sends "1"
User A cannot send "2" (must be a different user)
User B must send "2"
When false:
Any user can send any number in sequence
reset_on_failure
Type: Boolean
Whether the counter resets to 0 when someone sends the wrong number.
When true: Counter resets on mistakes
When false: Counter stays at current number
timeout_user_on_failure
Type: Boolean
Whether to timeout users who send the wrong number.
When true: User is timed out for the duration specified in timeout_length
When false: No timeout penalty applied
timeout_length
Type: String
Duration of timeout when a user fails. Only applies if timeout_user_on_failure is true.
Format: "15m", "1h", "30s", etc.
Level System
enabled
Type: Boolean
Enables or disables the entire leveling system.
level_up
Type: String (Formula)
Formula to calculate XP required to reach the next level.
Placeholder: %level% = Current level
Example Calculations:
Level 0 β 1:
0 * 5 + 20 = 20 XPLevel 1 β 2:
1 * 5 + 20 = 25 XPLevel 5 β 6:
5 * 5 + 20 = 45 XP
You can use basic math operators: +, -, *, /, ()
XP Gain Settings
Controls how much XP users earn per action.
min & max
Type: String (Number)
Random XP range awarded per message or voice activity.
Users gain between 1-3 XP randomly with each eligible action.
cooldown_in_seconds
Type: Number
Cooldown period between XP gains from messages.
Users can only gain XP from messages once every 5 seconds (prevents spam).
voice_support
Type: Boolean
Whether users can gain XP from being in voice channels.
When true: Users gain XP while in voice channels
When false: Only message XP is awarded
Note: Voice channel requirements (minimum users, etc.) are configured in the Core configuration file under calltime_requirement_users.
voice_time_in_seconds
Type: Number
How many seconds a user must spend in voice to gain XP.
Users gain XP (random between min/max) every 20 seconds in voice.
Blacklists
Type: Object
Exclude specific users, channels, or categories from gaining XP.
users - Array of user IDs who cannot gain XP channels - Array of channel IDs where XP gain is disabled categories - Array of category IDs where XP gain is disabled
Notification
Type: Object
Configure how level-up notifications are sent.
reply - When true, bot replies to the user's message with level-up notification
channel - When true, sends notification to a specific channel (configured elsewhere)
Tip: Enable reply: true for immediate feedback. Use channel: true if you want all level-ups posted to a dedicated channel.
Role Rewards
Type: Object
Automatically assign roles when users reach specific levels.
enabled
Type: Boolean
Whether role rewards are active.
keep_all_roles
Type: Boolean
Determines if users keep all earned roles or only the highest.
When true: User has all roles they've earned (Level 5 role + Level 10 role)
When false: User only has their highest level role (Level 10 role only, Level 5 role removed)
roles
Type: Array of Objects
Define which roles are awarded at which levels.
level - Level required to earn the role role_id - Discord role ID to assign
Starboard
The starboard feature reposts popular messages to a dedicated channel when they receive enough reactions.
enabled
Type: Boolean
Enables or disables the starboard feature.
emoji
Type: String
The emoji users must react with to add messages to the starboard.
Can be any Unicode emoji or custom emoji ID.
reactions
Type: Number
Number of reactions required before a message is added to the starboard.
Once a message receives 10 β reactions, it's posted to the starboard channel.
whitelisted_channels
Type: Array of Strings
List of channel IDs where starboard is active. Leave empty to allow all channels.
whitelisted_categories
Type: Array of Strings
List of category IDs where starboard is active.
Only messages in channels within these categories can be starred.
Note: If both whitelisted_channels and whitelisted_categories are empty, starboard works in all channels. Use these to limit starboard to specific areas of your server.
Birthday
birthday_set_cooldown
Type: String
Cooldown period for setting or changing a birthday.
Format: "1y" (1 year), "6m" (6 months), etc.
Recommendation: Keep this at "1y" to prevent abuse. Users should only be able to set their birthday once per year.
channel_notification
Type: Boolean
Whether to send birthday notifications to a specific channel.
When true: Bot posts birthday messages to the configured birthday channel
When false: No automatic birthday messages
special_role
Type: Object
Assign a special role to users on their birthday.
enabled - Whether birthday role is active role_id - Role to assign on user's birthday
The role is automatically removed at the end of their birthday (24 hours).
Quote of the Day
Automatically post inspirational quotes at scheduled times.
enabled
Type: Boolean
Enables or disables the quote of the day feature.
weekly
Type: Object
Schedule when quotes are posted for each day of the week.
Format: 24-hour time ("HH:MM")
Timezone: UTC
Multiple times: Add multiple times per day as array elements
No quotes: Use empty array [] for days without quotes
Important: Use "0:00" for midnight, not "24:00". Time is based on your set timezone.
mention_roles
Type: Array of Strings
List of role IDs to mention when a quote is posted.
Leave empty for no mentions, or add role IDs to ping specific roles.
create_thread
Type: Boolean
Whether to create a discussion thread for each quote.
When true: A thread is created where users can discuss the quote
When false: Quote is posted without a thread
Question of the Day
Post daily questions to engage your community.
enabled
Type: Boolean
Enables or disables the question of the day feature.
weekly
Type: Object
Schedule when questions are posted for each day of the week.
Same format as quote of the day. Time is based on your set timezone.
mention_roles
Type: Array of Strings
List of role IDs to mention when a question is posted.
create_thread
Type: Boolean
Whether to create a discussion thread for each question.
dataset
Type: Array of Strings
List of questions to randomly choose from when posting.
The bot randomly selects one question from this list for each scheduled post. Add as many questions as you like.
Activity Check
activity_check_disable_mention
Type: Boolean
When the activity check command is used, this controls whether the targeted user is mentioned.
When true: User is not mentioned in the activity check message
When false: User is mentioned (@username) in the activity check
Customized Dick Size
The /dicksize command generates random sizes, but you can set custom values for specific users.
customized_dicksize
Type: Array of Objects
List of users with custom dick sizes.
user_id - Discord user ID size - Custom size value (number)
When these users use the /dicksize command, they'll always get their configured value instead of a random one.
Complete Configuration Example
Here's a complete, production-ready fun configuration:
Last updated