API Integration
Integrate your addons into core bot logic, unlocking a new level of power.
β¨ Features
Event-driven architecture β React to Discord and bot events
Backward compatibility β Legacy addons still work
Priority system β Control execution order of handlers
Error isolation β One addon's error won't crash others
Rich context β Access client, config, and language data
Async support β Full
Promise/async-awaitsupport
π Quick Start
Example: HelloWorld Addon
A simple addon that responds to messages, welcomes new members, and reacts to tickets being created:
β
With this addon
Type
!helloβ Bot replies with a greetingNew members join β Welcome message in #welcome or #general
Ticket is created β Logged in console
π‘ Event Reference
Discord Events
Listen to Discord.js events with the discord: prefix:
discord:messageCreate
New message sent
message
discord:messageUpdate
Message edited
message, oldMessage
discord:messageDelete
Message deleted
message
discord:guildMemberAdd
User joins server
member
discord:guildMemberRemove
User leaves server
member
discord:guildMemberUpdate
User roles/nickname changed
oldMember, newMember
discord:voiceStateUpdate
Voice channel changes
oldState, newState
discord:channelCreate
Channel created
channel
discord:channelDelete
Channel deleted
channel
discord:roleCreate
Role created
role
discord:roleDelete
Role deleted
role
discord:guildBanAdd
User banned
ban
discord:guildBanRemove
User unbanned
ban
discord:interactionCreate
Slash command/button used
interaction
discord:ready
Bot started
client
Bot Business Logic Events
Ticket Events
ticket:created
New ticket opened
ticket, user, ticketType, questions
ticket:closed
Ticket closed/resolved
ticket, closedBy, closeReason, isAutoAlert
ticket:deleted
Ticket channel deleted
ticket, deletedBy, channelName
ticket:claimed
Staff member claims ticket
ticket, claimer
ticket:unclaimed
Staff member unclaims ticket
ticket, previousClaimer
ticket:reviewed
User reviews service
ticket, rating, feedback, reviewer
Suggestion Events
suggestion:created
New suggestion submitted
suggestion, author, text, message
suggestion:accepted
Suggestion approved by staff
suggestion, acceptedBy, reason, originalAuthor
suggestion:denied
Suggestion rejected by staff
suggestion, deniedBy, reason, originalAuthor
Leveling Events
level:up
User gains XP and levels up
user, newLevel, oldLevel, xpGained, userData
Auto-Moderation Events
autoReact:triggered
Bot auto-reacts to keyword
message, keyword, emoji, reaction
autoResponse:triggered
Bot sends auto-response
message, trigger, responseType, responseContent
moderation:antiSpam
Anti-spam/mass mention triggered
type, user, action, reason, duration
Music Events
music:trackStart
Track starts playing
track, requestedBy, queue
music:trackAdded
Track added to queue
track, requestedBy, queue
Giveaway Events
giveaway:created
New giveaway started
giveaway, prize, winnerCount, hostedBy
giveaway:ended
Giveaway finished, winners selected
giveaway, winners, prize, totalEntries
Invite Events
invite:memberJoined
Member joins via tracked invite
member, inviter, inviterInviteCount
Moderation Events (Slash Commands)
moderation:ban
A user is banned via slash command or audit log
type, target, moderator, reason, guild, dmSent, method
moderation:unban
A previously banned user is unbanned
type, targetUserId, moderator, reason, guild, method
moderation:kick
A member is removed from the server
type, target, moderator, reason, guild, dmSent, method
moderation:warn
A moderator issues a warning
type, target, moderator, reason, guild, warningCount, warning, method
moderation:unwarn
A warning is removed from a user
type, target, moderator, removedWarning, warningId, guild, remainingWarnings, method
moderation:timeout
A user is muted/timed out
type, subType, target, moderator, reason, duration, durationMs, endTime, guild, method
moderation:timeout_clear
Timeout or mute is lifted
type, target, moderator, guild, wasMuted, method
moderation:tempban
A moderator applies a timed ban
type, target, moderator, reason, duration, endTime, guild, dmSent, method
moderation:nickname_change
A moderator edits a userβs nickname
type, target, moderator, oldNickname, newNickname, guild, method
moderation:purge
A moderator bulk deletes messages
type, moderator, channel, guild, messageCount, purgeType, originalAmount, method
Addon Lifecycle Events
addon:loaded
Addon loaded successfully
name, path, type
addon:unloaded
Addon unloaded
name, path
addon:registered
Addon registered with event system
name, events
π§ Custom Events
Emit and listen for your own events:
π§° Context Object
Every handler receives:
βοΈ Advanced Features
Priority System
Control execution order:
Error Handling
Addons run independently:
Database Integration
Use Mongoose inside addons:
Conditional Event Handling
Run logic only in certain channels/users:
π Migration from Legacy Addons
Legacy Format (still works)
New Event API Format
Key Differences
Legacy β
runfunction, nonamepropertyNew β
namerequired, useseventsNew format benefits: event-driven API, hot reloading, enable/disable, error isolation, priorities
π Requirements Summary
Absolutely Required
name(string) β Unique addon identifier
Required (pick one)
events(object) β Event handlersrun(function) β Init function
Optional (defaults)
versionβ'1.0.0'descriptionβ''authorβ'Unknown'priorityβ0permissionsβ[]dependenciesβ[]
Minimal Working Addon
π‘ Practical Examples
Staff Notification System
Level Rewards System
Auto-Moderation Logger
Last updated