Skip to main content
The CometChatBuilderSettings object controls everything the Android UI Kit Builder renders—messaging, AI helpers, calls, layout, theming, and more. This object is auto-generated by the CometChat Builder Settings Gradle plugin from your cometchat-builder-settings.json configuration file.
For developers customizing their chat UI: The CometChatBuilderSettings.kt file is generated automatically when you build your project. Edit the cometchat-builder-settings.json file to enable/disable features like messaging, calls, AI copilot, and theming. See the Integration Guide for setup.

Top-level Structure

The generated CometChatBuilderSettings object in Kotlin follows this structure:
object CometChatBuilderSettings {
    object ChatFeatures {
        object CoreMessagingExperience { /* Boolean constants */ }
        object DeeperUserEngagement { /* Boolean constants */ }
        object AiUserCopilot { /* Boolean constants */ }
        object UserManagement { /* Boolean constants */ }
        object GroupManagement { /* Boolean constants */ }
        object ModeratorControls { /* Boolean constants */ }
        object PrivateMessagingWithinGroups { /* Boolean constants */ }
        object InAppSounds { /* Boolean constants */ }
    }
    object CallFeatures {
        object VoiceAndVideoCalling { /* Boolean constants */ }
    }
    object Layout { /* Layout constants */ }
    object Style {
        object Color { /* Color constants */ }
        object Typography { /* Typography constants */ }
    }
}

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
Empower users with a seamless chat experience—reply to specific messages with quoted replies, mark conversations as unread for later, and search across all chats instantly. Learn more about Core Features.

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
Configure these features based on your app’s requirements. Learn more about Extensions.

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. Learn more about AI Features.

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)
To enable content moderation, set moderation to true in Core Messaging Experience and reportMessage to true in Moderator Controls, then configure your moderation rules in the CometChat Dashboard. See Rules Management for setup details.

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
These toggles control the default message sounds. To use custom audio files or manage sound playback programmatically, see the Sound Manager.

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
Learn more about Call Features.

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
Set withSideBar: false for embedded chat widgets or single-conversation views where navigation isn’t needed.

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)
Use theme: "system" to automatically match the user’s device preference. Preview your brandColor in both light and dark modes for contrast.Learn more about UI Kit Theming for additional customizations.

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"
Match brandColor to your app’s primary accent color. Use your app’s existing text colors for primaryTextLight and primaryTextDark to maintain brand consistency.

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
  • Enable the specific AI features you want to use
Stickers
  • Requires sticker packs to be configured in the Dashboard under Chat & Messaging > Stickers
  • Upload or select sticker packs for your users
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
  • Configure your preferred translation provider
Moderation
  • Requires moderation rules to be configured in the Dashboard under Moderation > Rules
  • Set up content filtering and blocking rules

Next Steps

Directory Structure

Understand the organization of the builder components and generated code.

Customizations

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