Skip to main content
The CometChatBuilderSettings object controls everything the iOS UI Kit Builder renders—messaging, AI helpers, calls, layout, theming, and more. This object is loaded from your cometchat-builder-settings.json configuration file.
For developers customizing their chat UI: Edit cometchat-builder-settings.json to enable/disable features like messaging, calls, AI copilot, and theming. See the Integration Guide for setup.

Top-level Structure

The CometChatBuilderSettings object in Swift follows this structure:
CometChatBuilderSettings.shared.chatFeatures
CometChatBuilderSettings.shared.callFeatures
CometChatBuilderSettings.shared.layout
CometChatBuilderSettings.shared.style

All boolean settings follow the same pattern: true enables the feature and shows its UI elements, false hides them completely.

1. Chat Features (chatFeatures)

1.1 Core Messaging Experience (coreMessagingExperience)

Essential messaging features: typing indicators, media sharing, message actions, and presence.
SettingTypeWhat It Does
Typing indicator (typingIndicator)booleanShows “typing…” indicator when someone is composing a message
Thread conversation & replies (threadConversationAndReplies)booleanEnables threaded replies to specific messages, creating nested conversation threads
Photos sharing (photosSharing)booleanAllows users to share images from device or camera
Video sharing (videoSharing)booleanAllows users to share video files
Audio sharing (audioSharing)booleanAllows users to share audio files (mp3, wav, etc.)
File sharing (fileSharing)booleanAllows users to share documents (PDF, DOC, etc.)
Edit messages (editMessage)booleanLets users modify their sent messages; edited messages show “(edited)” label
Delete messages (deleteMessage)booleanLets users remove their sent messages
Message delivery and read receipts (messageDeliveryAndReadReceipts)booleanShows delivery (✓) and read (✓✓) status indicators on messages
User & friends presence (userAndFriendsPresence)booleanShows online/offline status dot next to user avatars
Conversation and Advanced Search (conversationAndAdvancedSearch)booleanEnables search across messages, users, and conversations
Moderation (moderation)booleanEnables blocked message feedback for messages blocked by moderation rules
Quoted Replies (quotedReplies)booleanLets users quote a message when replying, showing the original above their response
Mark as Unread (markAsUnread)booleanLets users mark a conversation as unread to revisit later

1.2 Deeper User Engagement (deeperUserEngagement)

Interactive features: mentions, reactions, polls, voice notes, and collaborative tools.
SettingTypeWhat It Does
Mentions (mentions)booleanLets users @mention specific people in a message to notify them
Mention All (mentionAll)booleanLets users type @all to notify every member in a group chat
Reactions (reactions)booleanLets users add emoji reactions (👍 ❤️ 😂 etc.) to messages
Message Translation (messageTranslation)booleanTranslates messages to user’s preferred language. Requires Dashboard setup
Polls (polls)booleanLets users create polls with multiple options for group voting. Requires Dashboard setup
Collaborative Whiteboard (collaborativeWhiteboard)booleanOpens a shared whiteboard for real-time drawing and collaboration. Requires Dashboard setup
Collaborative Document (collaborativeDocument)booleanCreates shared documents for real-time collaborative editing. Requires Dashboard setup
Voice Notes (voiceNotes)booleanLets users record and send voice messages
Emojis (emojis)booleanShows emoji picker in composer for browsing and inserting emojis
Stickers (stickers)booleanLets users send sticker images from available packs. Requires Dashboard setup
User Info (userInfo)booleanLets users tap on another user’s avatar to view their profile
Group Info (groupInfo)booleanLets users tap on group header to view group details and member list

1.3 AI User Copilot (aiUserCopilot)

AI-powered features to help users start and navigate conversations.
SettingTypeWhat It Does
Conversation Starter (conversationStarter)booleanShows AI-suggested opening messages when starting a new chat. Requires OpenAI API key
Conversation Summary (conversationSummary)booleanGenerates an AI-powered summary of the conversation. Requires OpenAI API key
Smart Reply (smartReply)booleanShows AI-suggested quick reply options based on conversation context. Requires OpenAI API key
AI User Copilot features require an OpenAI API key. Configure it in the CometChat Dashboard under AI > Settings.

1.4 User Management (userManagement)

SettingTypeWhat It Does
Friends Only (friendsOnly)booleanRestricts chat to friends list only; Users tab shows only friends

1.5 Group Management (groupManagement)

Control what users can do with groups.
SettingTypeWhat It Does
Create Group (createGroup)booleanLets users create new public or private groups
Add Members to Groups (addMembersToGroups)booleanLets group admins/owners invite users to join the group
Join/Leave Group (joinLeaveGroup)booleanLets users join public groups and leave groups they’re in
Delete Group (deleteGroup)booleanLets group owners permanently delete a group and all its messages
View Group Members (viewGroupMembers)booleanShows member list in group info

1.6 Moderator Controls (moderatorControls)

Admin tools for managing group members and content.
SettingTypeWhat It Does
Report Message (reportMessage)booleanLets users flag messages for moderator review in Dashboard
Kick Users (kickUsers)booleanLets admins/moderators remove a user from a group (they can rejoin)
Ban Users (banUsers)booleanLets admins/moderators permanently remove a user and prevent rejoining
Promote/Demote Members (promoteDemoteMembers)booleanLets group owners change member roles (member, moderator, admin)

1.7 Private Messaging Within Groups (privateMessagingWithinGroups)

Allow direct messages between group members.
SettingTypeWhat It Does
Send Private Message to Group Members (sendPrivateMessageToGroupMembers)booleanLets users start a 1:1 chat with a group member from their profile

1.8 In-App Sounds (inAppSounds)

Control sound notifications for incoming and outgoing messages.
SettingTypeWhat It Does
Incoming Message Sound (incomingMessageSound)booleanPlays a sound when a new message is received
Outgoing Message Sound (outgoingMessageSound)booleanPlays a sound when a message is sent

2. Call Features (callFeatures)

2.1 Voice and Video Calling (voiceAndVideoCalling)

Enable voice and video calling capabilities.
SettingTypeWhat It Does
1:1 Voice Calling (oneOnOneVoiceCalling)booleanShows phone icon in 1:1 chat header for starting voice calls
1:1 Video Calling (oneOnOneVideoCalling)booleanShows video camera icon in 1:1 chat header for starting video calls
Group Video Conference (groupVideoConference)booleanShows video camera icon in group chat header for starting group video calls
Group Voice Conference (groupVoiceConference)booleanShows phone icon in group chat header for starting group voice calls

3. Layout (layout)

Control the overall UI structure and navigation.
SettingTypeWhat It Does
With Sidebar (withSideBar)booleanShows navigation bar with tabs (Chats, Calls, Users, Groups)
Tabs (tabs)string[]Array of tabs to show: 'chats', 'calls', 'users', 'groups'
Chat Type (chatType)stringDefault conversation type on load: 'user' for 1:1 chats, 'group' for group chats

4. Style (style)

Customize colors, fonts, and theme appearance.

4.1 Theme

SettingTypeWhat It Does
Theme (theme)stringControls light/dark mode: 'light', 'dark', or 'system' (matches device preference)

4.2 Colors

SettingTypeWhat It Does
Brand Color (brandColor)stringPrimary accent color (hex) for buttons, links, active states. Example: "#6852D6"
Primary Text Light (primaryTextLight)stringMain text color in light mode (hex). Example: "#141414"
Primary Text Dark (primaryTextDark)stringMain text color in dark mode (hex). Example: "#FFFFFF"
Secondary Text Light (secondaryTextLight)stringSecondary text color in light mode (hex) for timestamps, subtitles. Example: "#727272"
Secondary Text Dark (secondaryTextDark)stringSecondary text color in dark mode (hex) for timestamps, subtitles. Example: "#989898"

4.3 Typography

SettingTypeWhat It Does
Font (font)stringFont family: 'roboto', 'arial', 'inter', or 'times new roman'
Size (size)stringText size and spacing: 'default', 'compact', or 'comfortable'

Settings Overview

Below is the complete settings structure with default values. Update these in your cometchat-builder-settings.json file to customize your chat experience.
{
  "builderId": "your-builder-id",
  "settings": {
    "chatFeatures": {
      "coreMessagingExperience": {
        "typingIndicator": true,
        "threadConversationAndReplies": true,
        "photosSharing": true,
        "videoSharing": true,
        "audioSharing": true,
        "fileSharing": true,
        "editMessage": true,
        "deleteMessage": true,
        "messageDeliveryAndReadReceipts": true,
        "userAndFriendsPresence": true,
        "conversationAndAdvancedSearch": true,
        "moderation": true,
        "quotedReplies": false,
        "markAsUnread": false
      },
      "deeperUserEngagement": {
        "mentions": true,
        "mentionAll": true,
        "reactions": true,
        "messageTranslation": true,
        "polls": true,
        "collaborativeWhiteboard": true,
        "collaborativeDocument": true,
        "voiceNotes": true,
        "emojis": true,
        "stickers": true,
        "userInfo": true,
        "groupInfo": true
      },
      "aiUserCopilot": {
        "conversationStarter": false,
        "conversationSummary": false,
        "smartReply": false
      },
      "userManagement": {
        "friendsOnly": false
      },
      "groupManagement": {
        "createGroup": true,
        "addMembersToGroups": true,
        "joinLeaveGroup": true,
        "deleteGroup": true,
        "viewGroupMembers": true
      },
      "moderatorControls": {
        "kickUsers": true,
        "banUsers": true,
        "promoteDemoteMembers": true,
        "reportMessage": true
      },
      "privateMessagingWithinGroups": {
        "sendPrivateMessageToGroupMembers": true
      },
      "inAppSounds": {
        "incomingMessageSound": true,
        "outgoingMessageSound": true
      }
    },
    "callFeatures": {
      "voiceAndVideoCalling": {
        "oneOnOneVoiceCalling": true,
        "oneOnOneVideoCalling": true,
        "groupVideoConference": true,
        "groupVoiceConference": true
      }
    },
    "layout": {
      "withSideBar": true,
      "tabs": ["chats", "calls", "users", "groups"],
      "chatType": "user"
    },
    "style": {
      "theme": "system",
      "color": {
        "brandColor": "#6852D6",
        "primaryTextLight": "#141414",
        "primaryTextDark": "#FFFFFF",
        "secondaryTextLight": "#727272",
        "secondaryTextDark": "#989898"
      },
      "typography": {
        "font": "roboto",
        "size": "default"
      }
    }
  }
}

Dashboard Feature Requirements

Some features require additional configuration in the CometChat Dashboard before they can be used:
AI Copilot Features (Conversation Starter, Conversation Summary, Smart Reply)
  • Requires an OpenAI API key configured in the Dashboard under AI > Settings
Stickers
  • Requires sticker packs to be configured in the Dashboard under Chat & Messaging > Stickers
Polls
  • Requires the Polls extension to be enabled in the Dashboard under Extensions > Polls
Collaborative Whiteboard & Document
  • Requires the respective extensions to be enabled in the Dashboard under Extensions
Message Translation
  • Requires the Message Translation extension to be enabled in the Dashboard under Extensions > Message Translation

Next Steps

Directory Structure

Understand the organization of the builder components and generated code.

Customizations

Modify component props, styling, and behavior for deeper customization.