> ## Documentation Index
> Fetch the complete documentation index at: https://docs.headlesslabs.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Giveaways

> Giveaways creates button-entry drawings with a duration and one or more winners. Data and manager roles are stored per server; the ending process survives bot restarts.

## Who can manage them

The owner, `Administrator`, `Manage Server`, or a configured delegated role can create, end, reroll, and cancel. Only `Manage Server` can configure delegated roles with `giveaway roles`.

### `.giveaway roles add`

```headless-command Syntax theme={null}
.giveaway roles add [roles]...
```

```headless-command Example theme={null}
.giveaway roles add @Events
```

### `.giveaway roles remove`

```headless-command Syntax theme={null}
.giveaway roles remove [roles]...
```

```headless-command Example theme={null}
.giveaway roles remove @Events
```

### `.giveaway roles clear`

```headless-command Syntax theme={null}
.giveaway roles clear
```

```headless-command Example theme={null}
.giveaway roles clear
```

### `.giveaway roles list`

```headless-command Syntax theme={null}
.giveaway roles list
```

```headless-command Example theme={null}
.giveaway roles list
```

> [!WARNING]
>
> A delegated role can run giveaway actions without Manage Server. Review that list carefully and keep prize/participant information in intended channels.

## Duration and entries

Duration must be between 30 seconds and 30 days; the parser accepts values such as `30m`, `1h`, `2d`, or `1w`. One to 20 winners are supported, and the default is one. Creation confirms the channel, prize, and ID; use `.glist` to review active giveaways. Without arguments, `.giveaway` displays the quick reference.

> [!NOTE]
>
> A duration and prize are required. You can add a winner count and channel; omitting the channel uses the current one. The parser accepts a channel mention, `#name`, or ID. Commands are server-only, and there are no slash commands. The prefix parser does not provide a required-role option, so entries cannot be restricted by role.

### `.giveaway`

```headless-command Syntax theme={null}
.giveaway <duration> [winners] [#channel] <prize>
```

```headless-command Example theme={null}
.giveaway 1h Nitro Classic
```

Also works: `.giveaway 1d 2 #giveaways Nitro Premium`

### `.gstart`

```headless-command Syntax theme={null}
.gstart <duration> [winners] [#channel] <prize>
```

```headless-command Example theme={null}
.gstart 30m 1 #giveaways Roblox skin
```

## Commands

> **Complete command reference**
>
> * **`.giveaway <duration> [winners] [#channel] <prize>`** — **Description:** Creates a giveaway in the current or specified channel. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.giveaway start <duration> [winners] [#channel] <prize>`** — **Description:** Starts a giveaway using the same parser. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.giveaway end <id>`** — **Description:** Ends the giveaway and selects winners. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.giveaway reroll <id>`** — **Description:** Picks replacement winners, excluding previous winners. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.giveaway cancel <id>`** — **Description:** Cancels the giveaway without completing a winner draw. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.giveaway list`** — **Description:** Lists active giveaways. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.giveaway roles`** — **Description:** Shows delegated manager roles. · **Access:** Manage Server
> * **`.giveaway roles add <roles...>`** — **Description:** Adds trusted roles to the manager list. · **Access:** Manage Server
> * **`.giveaway roles remove <roles...>`** — **Description:** Removes delegated roles. · **Access:** Manage Server
> * **`.giveaway roles clear`** — **Description:** Clears the delegated-role list. · **Access:** Manage Server
> * **`.giveaway roles list`** — **Description:** Shows the current delegated roles. · **Access:** Manage Server
> * **`.gstart <duration> [winners] [#channel] <prize>`** — **Description:** Shortcut to create a giveaway. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.gend <id>`** — **Description:** Shortcut to end a giveaway. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.greroll <id>`** — **Description:** Shortcut to pick replacement winners. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.gcancel <id>`** — **Description:** Shortcut to cancel a giveaway. · **Access:** Server owner, Administrator, Manage Server, or delegated role
> * **`.glist`** — **Description:** Shortcut to list active giveaways. · **Access:** Server owner, Administrator, Manage Server, or delegated role

## Lifecycle

Headless's built-in buttons, confirmations, and notices use English labels. Server-authored prize names, notes, and custom ping templates are preserved as written. The former built-in ping template is converted to English only when it exactly matches that old default; custom templates are not changed.

`.gend` ends a giveaway, `.greroll` selects new winners, and `.gcancel` cancels it. Delegated managers can operate giveaways without server-level permissions, so only trust appropriate roles.

> **Delegation and isolation**
>
> Giveaway manager role IDs are stored per server, up to 80 role IDs. The server owner, Administrator, and Manage Server can always manage giveaways; delegated roles receive giveaway access only, not general server permissions. Manage Server is required to configure the list.

> **Entering and ending**
>
> Members enter with the message button. Adding the entry reaction also records a member; removing one leaves the entrant list. The watcher checks expirations every five seconds, so an automatic close may happen a few seconds after the displayed end time.

> **Winners and limits**
>
> The system allows 1–20 winners and selects randomly from eligible entrants. Prefix commands do not accept a required role; that option is not available in the syntax documented here.

### `.glist`

```headless-command Syntax theme={null}
.glist
```

```headless-command Example theme={null}
.glist
```

### `.gend`

```headless-command Syntax theme={null}
.gend <giveaway_id>
```

```headless-command Example theme={null}
.gend ABC123
```

### `.greroll`

```headless-command Syntax theme={null}
.greroll <giveaway_id>
```

```headless-command Example theme={null}
.greroll ABC123
```

### `.gcancel`

```headless-command Syntax theme={null}
.gcancel <giveaway_id>
```

```headless-command Example theme={null}
.gcancel ABC123
```

## Good practices

> **Create**
>
> Set a clear duration, name a specific prize, and use a dedicated giveaways channel.

> **Finish**
>
> `gend` ends and selects winners; `greroll` replaces the previous selection; `gcancel` cancels and logs the action.

> **Community**
>
> Make the rules visible and allow enough time to enter. Confirm the destination before publishing.

## Steps

**1. Configure managers**

With Manage Server, run `.giveaway roles add @Events` and inspect `.giveaway roles list`.

**2. Create a test giveaway**

Provide duration, optional winner count, optional channel, and prize; verify the destination.

**3. Review and close**

Check `.glist`, test the entry button, then end or cancel by ID when appropriate.

## Related pages

* [Logs](/docs/en/server/logging.md)
* [Roles](/docs/en/server/roles.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.