> For the complete documentation index, see [llms.txt](https://docs.iynxdev.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iynxdev.com/configuration-files/management.md).

# Management

## <mark style="color:blue;">Introduction</mark>

The Management configuration file (`management.json`) controls various server management features including logging, welcome/goodbye messages, auto-roles, auto-responses, suggestions, and other automation features.

***

## <mark style="color:blue;">Logs</mark>

The logging system records various server events to designated channels.

### <mark style="color:yellow;">types</mark>

**Type:** Object

Enable or disable specific log types. Each log type can be toggled individually.

```json
logs: {
    types: {
        channel_create: true,
        channel_delete: true,
        channel_update: true,
        emoji_create: true,
        emoji_delete: true,
        emoji_update: true,
        member_join: true,
        member_leave: true,
        member_update: true,
        member_roles_update: true,
        invite_create: true,
        invite_delete: true,
        invite_update: true,
        message_delete: true,
        message_update: true,
        role_create: true,
        role_delete: true,
        role_update: true,
        sticker_create: true,
        sticker_delete: true,
        sticker_update: true,
        thread_create: true,
        thread_delete: true,
        voice_state: true,
        command_execute: true,
        direct_message: true,
    },
}
```

Set any log type to `false` to disable that specific log.

***

### <mark style="color:yellow;">exclude\_message\_logs</mark>

**Type:** Array of Strings

List of channel IDs to exclude from message edit/delete logging.

```json
exclude_message_logs: [
    "123456789012345678",
    "234567890123456789",
]
```

Messages edited or deleted in these channels won't create log entries.

***

### <mark style="color:yellow;">exclude\_channel\_edit\_logs</mark>

**Type:** Array of Strings

List of channel IDs to exclude from channel edit logging.

```json
exclude_channel_edit_logs: []
```

***

## <mark style="color:blue;">Welcome Message</mark>

Configure automated welcome messages for new members.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables the welcome message feature.

```json
welcome_message: {
    enabled: true,
}
```

***

### <mark style="color:yellow;">display\_type</mark>

**Type:** String

Type of welcome message to send.

**Available Options:**

* `"IMAGE"` - Welcome card/image
* `"EMBED"` - Text embed (configured in lang.json)
* `"BOTH"` - Both image and embed

```json
display_type: "IMAGE"
```

***

### <mark style="color:yellow;">image</mark>

**Type:** Object

Configuration for the welcome image. Only applies when `display_type` is `"IMAGE"` or `"BOTH"`.

```json
image: {
    title: "Welcome %user%",
    description_text: "Member #%member_size%",
}
```

**Available Placeholders:**

* `%user%` - Username
* `%member_size%` - Total member count
* `%user_created%` - Account creation date
* `%user_joined%` - Server join date
* `%invited_by%` - Who invited them
* `%invites_by_invitor%` - Inviter's invite count

{% hint style="info" %}
**Custom Images:** To change the welcome background image, upload new images to `./logs/images/welcome/` directory.
{% endhint %}

***

### <mark style="color:yellow;">mention\_user</mark>

**Type:** Boolean

Whether to mention the user in their welcome message.

```json
mention_user: true
```

***

### <mark style="color:yellow;">emoji</mark>

**Type:** Object

Auto-react to welcome messages with an emoji.

```json
emoji: {
    enabled: false,
    emoji: "👋",
}
```

**enabled** - Whether emoji reactions are active\
**emoji** - Emoji to react with (Unicode or custom emoji ID)

***

### <mark style="color:yellow;">send\_after\_verification</mark>

**Type:** Boolean

Whether to wait until the user verifies before sending the welcome message.

```json
send_after_verification: false
```

**When `true`:** Welcome message only sent after verification\
**When `false`:** Welcome message sent immediately on join

***

### <mark style="color:yellow;">dm\_message</mark>

**Type:** Boolean

Whether to send an additional welcome message to the user's DMs.

```json
dm_message: false
```

DM message content is configured in the lang.json file.

***

## <mark style="color:blue;">Goodbye Message</mark>

Configure automated goodbye messages when members leave.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables the goodbye message feature.

```json
goodbye_message: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">display\_type</mark>

**Type:** String

Type of goodbye message to send.

**Available Options:**

* `"IMAGE"` - Goodbye card/image
* `"EMBED"` - Text embed (configured in lang.json)
* `"BOTH"` - Both image and embed

```json
display_type: "IMAGE"
```

***

### <mark style="color:yellow;">image</mark>

**Type:** Object

Configuration for the goodbye image.

```json
image: {
    title: "Goodbye %user%",
    description_text: "Member #%member_size%",
}
```

**Available Placeholders:**

* `%user%` - Username
* `%member_size%` - Total member count

{% hint style="info" %}
**Custom Images:** To change the goodbye background image, upload new images to `./logs/images/goodbye/` directory.
{% endhint %}

***

### <mark style="color:yellow;">emoji</mark>

**Type:** Object

Auto-react to goodbye messages with an emoji.

```json
emoji: {
    enabled: false,
    emoji: "👋",
}
```

***

## <mark style="color:blue;">Auto Role</mark>

Automatically assign roles to new members when they join.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables auto-role assignment.

```json
auto_role: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">roles\_to\_add</mark>

**Type:** Array of Strings

List of role IDs to automatically assign to new members.

```json
roles_to_add: ['804354038987882588', '123456789012345678']
```

Common use cases:

* Member role (if verification is disabled)
* Unverified role (if verification is enabled)
* Notification roles

***

## <mark style="color:blue;">Auto Thread Reaction</mark>

Automatically react to new threads in forum channels.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables auto thread reactions.

```json
auto_thread_reaction: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">parent\_id</mark>

**Type:** String

Forum channel ID where this feature applies.

```json
parent_id: "1155463362377961615"
```

***

### <mark style="color:yellow;">emojis</mark>

**Type:** Array of Strings

List of emojis to react with on new threads.

```json
emojis: ["✅", "❌"]
```

Supports both Unicode emojis and custom emoji IDs.

***

## <mark style="color:blue;">Auto Message Response</mark>

Automatically respond to messages containing specific keywords/patterns.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables auto-response system.

```json
auto_message_response: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">keywords</mark>

**Type:** Array of Objects

List of keyword patterns and their responses.

```json
keywords: [
    {
        regex: "ip|server address",
        predefined_message_id: "server_ip",
        auto_delete_after_seconds: 20,
        permission_role: "everyone",
        ticket_only: false,
    },
]
```

**regex** - Regular expression pattern to match (e.g., `"store"`, `"ip|server"`)\
**predefined\_message\_id** - ID of message created with `/sendmsg` command\
**auto\_delete\_after\_seconds** - Auto-delete response after X seconds, or `false` to keep permanently\
**permission\_role** - Permission level required (from permission config)\
**ticket\_only** - Whether response only triggers in ticket channels

{% hint style="info" %}
**Creating Responses:**

1. Use `/sendmsg` to create a custom message
2. Save it with a predefined message ID
3. Reference that ID in `predefined_message_id`
   {% endhint %}

***

## <mark style="color:blue;">Auto Crosspost</mark>

Automatically publish messages in announcement channels.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables auto-crossposting.

```json
auto_crosspost: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">channel\_ids</mark>

**Type:** Array of Strings

List of announcement channel IDs to auto-publish.

```json
channel_ids: ["123456789012345678"]
```

**When empty:** All announcement channels are affected\
**When populated:** Only specified channels are affected

***

## <mark style="color:blue;">Scheduled Messages</mark>

Send predefined messages at scheduled times.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables scheduled messages.

```json
scheduled_messages: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">messages</mark>

**Type:** Array of Objects

List of scheduled messages to send.

```json
messages: [
    {
        channel_id: "1266773588619427840",
        predefined_message_id: "daily_announcement",
        weekly: {
            monday: ["12:00", "18:00"],
            tuesday: ["14:22"],
            wednesday: ["14:00"],
            thursday: ["10:00"],
            friday: ["12:00"],
            saturday: ["20:00"],
            sunday: [],
        },
    },
]
```

**channel\_id** - Channel where message is sent\
**predefined\_message\_id** - ID of message created with `/sendmsg`\
**weekly** - Schedule with 24-hour time format in UTC timezone

{% hint style="warning" %}
**Important:** Use `"0:00"` for midnight, not `"24:00"`. Times are in your set timezone.
{% endhint %}

***

## <mark style="color:blue;">Suggestions</mark>

Configure the suggestion system behavior.

### <mark style="color:yellow;">disable\_suggestion\_threads</mark>

**Type:** Boolean

Whether to disable automatic thread creation for suggestions.

```json
suggestions: {
    disable_suggestion_threads: false,
}
```

***

### <mark style="color:yellow;">seperate\_suggestion\_channels</mark>

**Type:** Boolean

Move approved/denied suggestions to separate channels.

```json
seperate_suggestion_channels: false
```

**When `true`:** Approved/denied suggestions move to dedicated channels\
**When `false`:** All suggestions stay in the pending channel

***

### <mark style="color:yellow;">allow\_message\_suggestions</mark>

**Type:** Boolean

Allow users to submit suggestions by simply typing in the suggestion channel.

```json
allow_message_suggestions: false
```

**When `true`:** Messages in suggestion channel create suggestions\
**When `false`:** Must use `/suggest` command

***

### <mark style="color:yellow;">category\_based\_colors</mark>

**Type:** Boolean

Use different colors for suggestion embeds based on category.

```json
category_based_colors: false
```

Requires `suggestion_categories` to be configured.

***

### <mark style="color:yellow;">suggestion\_categories</mark>

**Type:** Array of Objects

Define suggestion categories with custom colors.

```json
suggestion_categories: [
    {
        name: "General",
        color: "#3498DB",
    },
    {
        name: "Discord",
        color: "#E74C3C",
    },
]
```

**name** - Category name\
**color** - Hex color code (leave empty for default)

***

## <mark style="color:blue;">Role Saving</mark>

Save and restore user roles when they leave and rejoin.

### <mark style="color:yellow;">enabled</mark>

**Type:** Boolean

Enables or disables role saving.

```json
role_saving: {
    enabled: false,
}
```

***

### <mark style="color:yellow;">bypass\_auto\_roles</mark>

**Type:** Boolean

Whether to skip auto-roles if saved roles exist.

```json
bypass_auto_roles: false
```

**When `true`:** Auto-roles won't apply if user has saved roles\
**When `false`:** Both saved roles and auto-roles are applied

***

### <mark style="color:yellow;">blacklisted\_roles</mark>

**Type:** Array of Strings

Roles that should not be saved or restored.

```json
blacklisted_roles: ["123456789012345678"]
```

Common use cases:

* Temporary roles (muted, etc.)
* Event-specific roles
* Roles that should be earned again

***

## <mark style="color:blue;">Custom Boost Message</mark>

### <mark style="color:yellow;">enable\_custom\_boost\_message</mark>

**Type:** Boolean

Send a custom message when someone boosts the server.

```json
enable_custom_boost_message: true
```

Message content is configured in the lang.json file.

***

## <mark style="color:blue;">Support Voice Call Notification</mark>

Ping staff when someone joins a support voice channel.

### <mark style="color:yellow;">support\_voice\_channels</mark>

**Type:** Array of Strings

List of support voice channel IDs.

```json
support_voice_call_notification: {
    support_voice_channels: ["123456789012345678"],
}
```

**When empty:** Feature is disabled

***

### <mark style="color:yellow;">mention\_roles</mark>

**Type:** Array of Strings

Roles to mention when someone joins a support voice channel.

```json
mention_roles: ["804354037662220289"]
```

***

## <mark style="color:blue;">Complete Configuration Example</mark>

Here's a production-ready management configuration:

```json
{
    config: {
        logs: {
            types: {
                channel_create: true,
                channel_delete: true,
                member_join: true,
                member_leave: true,
                message_delete: true,
                message_update: true,
                // Enable only the logs you need
            },
            exclude_message_logs: [],
            exclude_channel_edit_logs: [],
        },

        welcome_message: {
            enabled: true,
            display_type: "IMAGE",
            image: {
                title: "Welcome %user%",
                description_text: "Member #%member_size%",
            },
            mention_user: true,
            emoji: {
                enabled: true,
                emoji: "👋",
            },
            send_after_verification: false,
            dm_message: false,
        },

        goodbye_message: {
            enabled: true,
            display_type: "IMAGE",
            image: {
                title: "Goodbye %user%",
                description_text: "We'll miss you!",
            },
            emoji: {
                enabled: false,
                emoji: "👋",
            },
        },

        auto_role: {
            enabled: true,
            roles_to_add: ['804354038987882588'],
        },

        auto_thread_reaction: {
            enabled: false,
            parent_id: "",
            emojis: [],
        },

        auto_message_response: {
            enabled: false,
            keywords: [],
        },

        auto_crosspost: {
            enabled: false,
            channel_ids: [],
        },

        scheduled_messages: {
            enabled: false,
            messages: [],
        },

        suggestions: {
            disable_suggestion_threads: false,
            seperate_suggestion_channels: false,
            allow_message_suggestions: false,
            category_based_colors: false,
            suggestion_categories: [],
        },

        role_saving: {
            enabled: false,
            bypass_auto_roles: false,
            blacklisted_roles: [],
        },

        enable_custom_boost_message: true,

        support_voice_call_notification: {
            support_voice_channels: [],
            mention_roles: [],
        }
    }
}
```
