# Slash commands

![](https://2866208395-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MgBu8pMq9JIzVAMYZqm%2Fuploads%2Fsim1XfjvRwA6bMAxzuBM%2Fafbeelding.png?alt=media\&token=232ab587-5c61-4d00-b338-7738343e76d7)

## Creating commands

{% hint style="info" %}
**Reminder:** Check the [Detritus Documentation](https://detritusjs.com/classes/interaction_command.interactioncommand) for more advanced settings.
{% endhint %}

A finished command looks like this:

```typescript
import { Interaction } from 'detritus-client'
import { BaseSlashCommand } from '../base'

export default class PingCommand extends BaseSlashCommand {
  constructor () {
    super({
      description: 'Ping',
      name: 'ping'
    })
  }

  async run (context: Interaction.InteractionContext): Promise<void> {
    await context.editOrRespond(context, 'Pong!')
  }
}

```

There are a few things to note with regard to how commands are constructed:

* All commands are new classes that extend a base class, in this example the command is a plain slash command.
* The resulting command is exported as the default export.
* The constructor with a super call is used to set properties of the class instead of directly assigning them, this avoids incompatibilities with Detritus.

## In practice

When restarting WildBeast, your newly created command will automatically be registered as a global command, and will be available within a few hours.

Rather want a guild-based command instead of a global one? Add guild IDs to the constructor of your command:

```typescript
constructor () {
  super({
    description: 'Ping',
    name: 'ping',
    guildIds: ['110462143152803840']
  })
}
```

## What's next?

There are more things you can do with commands, like adding options, creating subcommands, and adding buttons and select menus.

{% content-ref url="slash-commands/subcommands" %}
[subcommands](https://docs.wildbeast.guide/fundamentals/commands/slash-commands/subcommands)
{% endcontent-ref %}

{% content-ref url="slash-commands/options" %}
[options](https://docs.wildbeast.guide/fundamentals/commands/slash-commands/options)
{% endcontent-ref %}

{% content-ref url="slash-commands/buttons" %}
[buttons](https://docs.wildbeast.guide/fundamentals/commands/slash-commands/buttons)
{% endcontent-ref %}
