KV / DOCUMENTATION

Set up Karvo.

Karvo is designed to be configured from the Control Centre without requiring Administrator. Use this guide for a clean first installation or when auditing an existing server.

01 / Install

Add Karvo

Invite Karvo with the standard install link. Keep its bot role above any roles it needs to grant, remove or use for verification.

Add Karvo
02 / Diagnose

Run the launch check

Use /setup status after installation. /setup permissions shows any missing Discord permissions based on enabled modules.

03 / Configure

Open the Control Centre

Use /dashboard or log in here with Discord. Start in Setup & launch check, then work through Modules, Logging, AutoMod, Tickets, Roles and Welcome.

04 / Test

Smoke-test before launch

Create a test ticket and form, run a moderation action, verify a test member, exercise a role menu and confirm events appear in the Audit Trail.

Permission model

Karvo uses a least-privilege installation set and does not request Administrator.

security

Depending on the systems you enable, Karvo uses channel/message access, Manage Messages, Manage Channels, Manage Roles, Manage Nicknames, Moderate Members, Kick Members and Ban Members. When Logging is enabled, View Audit Log is used to attribute supported configuration changes to the responsible user. The live setup check only reports permissions relevant to enabled Karvo systems.

If you change Karvo's Discord role permissions later, rerun /setup permissions.

Logging & persistent context

Karvo logging uses Components V2 and keeps useful context across restarts.

logging

Configure a fallback channel and per-event routes from the Logging tab or /logging. Message delete/edit logging can persist recent message text and attachment metadata so a later deletion still includes context even after Karvo restarts.

Persistent message history is enabled by default with a 7-day retention window. Use /logging history enabled:<true|false> days:<1-30> or the Control Centre to change it. Karvo automatically removes deleted-message cache entries after logging and prunes expired history.

Role, channel and server logs include detailed changed values. When Karvo has Discord's View Audit Log permission, supported native events also include the user responsible for the change.

Core staff workflows

Useful starting points once the server passes its launch check.

operations

Interaction reliability

Karvo 1.4 protects commands and components from Discord interaction expiry and permanent loading states.

reliability

Slow database or Discord API work is acknowledged automatically before the interaction expires. If an operation stalls unexpectedly, Karvo releases the deferred response instead of leaving Karvo is thinking… on screen indefinitely.

Storage operations are bounded by timeouts and secondary telemetry/audit work is isolated from the main command result. If the completion watchdog appears frequently for one command, check the bot console for the named interaction and investigate the underlying Discord permission, API or database delay.

Operational guidance

Keep Karvo predictable and recoverable as your server grows.

production

Review the Audit Trail after major configuration changes. Avoid placing Karvo's role above roles it never needs to manage. Test destructive automation actions before enabling them. Keep server staff permissions limited to the people who actually need dashboard access. If a ticket channel is manually deleted, staff can recover its record with /ticket close id:<ticket-id>.

Embed Builder

Create reusable branded messages without hand-writing Discord payloads.

content

Use /embed for quick template management in Discord, or open the Control Centre Embed Builder for a live preview and the full author, media, footer, timestamp, field and link-button controls. Saved templates are guild-scoped and dashboard sends are processed by the live Karvo bot with audit history.

Community & Engagement

Karvo upgrades existing community systems instead of running replacements beside them.

community / 1.1

Suggestions supports statuses, staff responses, optional anonymous submissions and discussion threads. Starboard supports self-star protection, ignored channels/roles and live count reconciliation.

Counting now includes contributor stats, reset history, configurable mistake behaviour and milestones. XP & Levels retains text/voice progression and can stack or replace reward roles. Reputation supports configurable cooldowns, optional required reasons and staff adjustments. Automation hooks are available for counting milestones and reputation events alongside the existing community triggers.

QOTD, Polls & Giveaways

Karvo extends the existing community event systems in place.

community / events

QOTD supports pause/resume, category routing, a manual queue, previews, recent history and a configurable no-repeat window. Polls support editing, scheduled closes, anonymous results and vote-switch controls. Giveaways support edit, pause/resume, cancel, eligibility requirements, rerolls and winner history.

The Control Centre can queue safe live-bot actions for active polls and giveaways, while Automations can react to QOTD posts, poll creation/close and giveaway creation/end/winner events.

Livestream notifications

Track Twitch, YouTube and Kick creators through one Live Pulse module.

streams

Use /livestream add or the Control Centre Livestreams page to choose a provider, creator, destination channel, mention mode and Karvo presentation preset. Karvo stores the last live session ID so restarts and brief provider outages do not spam the same stream twice.

Twitch and Kick require application credentials on the bot host. YouTube uses a Data API key and is cached more aggressively to reduce quota use. Provider secrets are never stored in a guild configuration. Custom livestream message editing is available with per-server Karvo Bot Premium. View monthly, quarterly and annual plans at /premium/. Open your server’s Livestreams tab to edit Twitch, YouTube and Kick message bodies, embed titles and descriptions. Variables: {creator}, {title}, {url}, {platform}, {game}, {viewers}, {server}. Selected notification mention settings remain authoritative. If Premium expires, saved copy is retained but the free presets are used.

Dynamic presence

Live Karvo network totals in Discord.

presence

Karvo rotates its bot activity between aggregate members served, guilds managed and karvobot.uk. The totals refresh automatically as Karvo joins or leaves servers.

The member figure is an aggregate membership count across connected guilds, so one person can contribute to more than one server total.

Karvo display-name style

Karvo carries the same visual identity into its Discord per-server profile.

identity

Karvo 1.3.1 automatically applies its configured display-name font, effect and colour palette to the bot member in each connected server. This is visual branding only: it does not request additional server permissions and does not affect commands, moderation or dashboard access.

Discord can render display-name styles differently depending on the client and surface. Individual users may also disable Display Name Styles in Discord accessibility settings.

Launch audit & permission parity

Karvo 1.0.3 hardens the public-install path with command-registration checks, dashboard permission parity and dependency-safe text handling.

launch / audit

Moderation case edits require both Manage Server access to the Control Centre and Discord's Moderate Members permission. Dashboard nickname changes additionally require Manage Nicknames. Role-management actions continue to require Manage Roles.

The bot package includes npm run audit:launch for release-time checks covering duplicate slash commands, production global command sync and accidental runtime secret files.

Community / birthdays

Birthdays.

Use /birthday set dob:<DD/MM> to register your birthday for the current server. Full dates are accepted for convenience, but Karvo retains only day/month for this feature. /birthday unset removes it, /birthday status shows your saved birthday, and /birthday next lists upcoming birthdays registered in the same server. Staff choose the announcement channel with /birthday channel.

Birthday announcements are standard Karvo embeds. There is no network-wide birthday feed, automated birthday-wish button or birthday DM system; members can choose to wish the person a happy birthday themselves.