Skip to content

Discord.js compatibility ​

Altkit Discord v4 presents a Discord.js 14.27-compatible API while preserving user-account transport and fork-specific helpers. REST and Gateway defaults target Discord API v10 and Gateway v10. Compatibility is intentionally broad, but it is not identical to installing upstream discord.js.

What is compatible ​

  • Common v14 root exports, formatters, REST utilities, WebSocket utilities, API enums, and utility packages
  • Modern event names through Events
  • Numeric partial identifiers through Partials
  • Polls, attachments, and activity structures implemented by the fork
  • TypeScript declarations shipped with the package
  • Discord API v10 payload, enum, and REST types from the current discord-api-types release

The fork pins discord-api-types to the current v10 generation, so payload shapes and enums follow the Discord API reference as it evolves. Newer channel flags (for example IS_SPOILER_CHANNEL), attachment fields, application flags_new, and REST error codes appear on the types without a library major bump.

Aliases ​

Several modern names point to the fork's established implementation:

Preferred nameCompatibility implementation
AttachmentBuilderMessageAttachment
BaseChannelChannel
IntentsBitFieldIntents
MessageFlagsBitFieldMessageFlags
PermissionsBitFieldPermissions
UserFlagsBitFieldUserFlags

Both names currently work, so applications can migrate incrementally.

Events ​

Prefer constants over string literals:

js
const { Events } = require('@altkit/discord');

client.once(Events.ClientReady, readyClient => {});
client.on(Events.MessageCreate, message => {});
client.on(Events.WebhooksUpdate, channel => {});

Selected legacy event names continue to be emitted for older applications. New code should use the modern form listed in the event reference.

Where upstream examples differ ​

Upstream Discord.js documentation assumes a bot application and bot token. Bot-only features, privileged-intent setup, OAuth installation flows, and permission expectations may not apply to a user account. Conversely, Altkit's relationships, account settings, invite acceptance, user-app installation, rich presence, and certain voice/video helpers are fork-specific.

In particular, Altkit does not advertise bot-owned application command registration or the creation and handling of buttons, select menus, and modals as user-account features. sendSlash() only invokes a command exposed by an installed application.

When adapting an upstream example:

  1. Check that every imported symbol exists in the API catalog.
  2. Confirm the method is available to a user account.
  3. Check permissions and whether the target object is cached or must be fetched.
  4. Test against a non-critical account and resource.
  5. Handle API rejection without blindly retrying.

Version checks ​

js
const { version, discordJsVersion } = require('@altkit/discord');

console.log(`Altkit ${version}; Discord.js surface ${discordJsVersion}`);

For the complete v4 delta and upgrade checklist, read the Discord.js 14.27 migration guide.

Unofficial software. Not affiliated with or supported by Discord.