Help & FAQ

Everything MarkSoft does — Twitch, Kick, Discord, YouTube, the music player, the puzzle game, the MMORPG, fishing, AI, TTS overlays and more — explained in one place.

Filter

Getting started

MarkSoft is an all-in-one community + creator platform that lives across Twitch, Kick, Discord and YouTube Live. Streamers run their channel through it. Viewers chat, play games, fish, beat puzzles and listen to music — all under one identity that follows them everywhere.

Pick your starting point

Is it free?

The core platform is free: sign-in, chat commands, fish basic gameplay, music browsing, puzzle play, AI per channel up to a fair-use limit, alerts, and the dashboard. Pro / Max+ / Ultra tiers unlock extra AI volume, premium TTS voices, custom personas, white-label overlays and more — billed via Revolut, cancel any time.

Sign in now Read the about page

Platforms — what works where

Twitch

Verified bot via Twitch EventSub — that's the badge in chat plus higher rate limits. We hybrid-route between EventSub and IRC, so a Twitch outage on either path doesn't take you down.

  • Chat commands, AI replies, watchtime tracking, clips (!clip, !myclips)
  • Bits-timeout system (1 bit = 1 second of timeout, with protection lists)
  • Subs / follows / raids alerts with custom TTS
  • Per-channel feature toggles
  • !nowplaying reads the streamer's MarkSoft music player or Spotify

Kick

Full first-class Kick integration — not an afterthought. Connects via Kick's official OAuth + WebSocket chat + webhook events.

  • Chat commands, AI, fish, watchtime, clips
  • Webhook alerts for follows, subscriptions, gifts (with gift-royalty tracking)
  • !song reads the streamer's music player or Spotify
  • Same per-channel toggle dashboard as Twitch

Discord

  • 200+ commands across moderation, info, fun, utility, AI, games
  • Welcome / leave messages, auto-roles, reaction roles, ticketing, suggestions, alt detector, audit logging
  • Stream alerts when your linked Twitch / Kick / YouTube goes live
  • Battleship, minesweeper, snake, hangman, wordle and more — playable in any channel
  • Cross-platform fish + achievements: catch on Twitch, see in Discord

YouTube Live

  • Sign-in identity for unified profile linking
  • Live-stream detection for the cross-platform alerts
  • Achievements, fish and leaderboards work with YouTube as your primary identity

Streamer setup

How do I add the bot to my channel?

  • Twitch: sign in with Twitch at /sign-in, then visit /twitch-dashboard. The bot joins instantly. (Or type !jointo <your-channel> from any channel the bot's already in.)
  • Kick: sign in with Kick. Visit /kick-dashboard to authorize. Bot joins via Kick's official OAuth.
  • Discord: click /invite, pick a server, grant permissions.

What can I configure?

  • Chat: commands on/off, custom prefix, AI persona settings, per-command toggles
  • Alerts: follow / sub / raid / cheer messages with custom TTS voice
  • Moderation: auto-mod, audit logs, warns, mutes, bans, alt detection
  • Welcome / leave: embed customisation, channel routing
  • Reaction roles & tickets & suggestions: all dashboard-driven
  • TTS overlays: add the OBS browser source, volume, voice routing
  • Music player: sharing settings, !song integration
  • Fish: drop rates, factory unlocks, marketplace toggles

Toggling features in chat

  • !toggle clips on/off
  • !toggle watchtime on/off
  • !toggle ai on/off
  • !toggle timeouts on/off
  • !toggle <commandname> on/off — disable any specific command
  • !features — show every feature's status at a glance
Twitch dashboard Kick dashboard

Chat commands

Discord has 200+ commands, Twitch and Kick share most of the same chat-side set. Use !help on Discord or !commands in chat to see the full live list.

Most-used cross-platform

  • !song / !nowplaying — what's the streamer listening to (MarkSoft player → Spotify fallback)
  • !fish — go fishing (5-min cooldown)
  • !myfish — your fish collection
  • !fishleaderboard — top collectors by total value
  • !clip — make a clip of the current moment
  • !myclips — your saved clips
  • !accountage — your platform account age
  • !69 / !naughty — random number game with rewards
  • !wins — your running wins counter
  • @MarkSoftAI <question> — talk to the AI (or trigger words you've set)

Twitch-only

  • !enabletimeouts / !ignoretimeout <user> — bits-timeout management
  • !bitsleaderboard — top bits-timeout users
  • !timeoutstatus — see who's currently timed out and why

Discord-only

  • !help <command> — detailed usage + examples
  • !battleship, !minesweeper, !snake, !hangman, !wordle
  • !ticket — open support ticket (server-config-dependent)
  • !rank, !leaderboard — server-side levelling

Music player & Spotify

A free, browser-based music player at /music. 100% royalty-free library you can stream while you stream. Also doubles as the source for !song / !nowplaying chat commands.

What can I do on /music?

  • Browse 1000s of royalty-free tracks across genres, with sort by plays / likes / title / recent
  • Curated rows: ✨ New (just added), 🔥 Trending (this month), ⭐ Popular (all-time)
  • Like tracks (cross-platform — your likes follow your unified profile)
  • Build playlists with custom names, sharing links, and play counts
  • View lyrics in a popup; share an individual track via /music/track/<id>
  • Public playlists are browsable; private ones are link-only

How does !song work?

While the streamer has the /music tab open and a track is playing, our heartbeat captures the current track. Any viewer typing !song on Kick or !nowplaying on Twitch gets the title, artist, and a share link in chat. The system survives bot restarts and works even when the music tab is in the background.

Spotify fallback

  • Connect your Spotify account at /music ("Connect Spotify")
  • If the bot doesn't see a track in the MarkSoft player, it falls back to your Spotify "currently-playing" endpoint
  • Reply tags the source: Now playing on Spotify: …
  • Spotify's API requires the listening account to have Premium for this to work — that's their policy, not ours
  • No ads / podcasts / private sessions are exposed; just title + artist + share link
Open the music player

Puzzle rooms

Multiplayer collaborative jigsaw puzzles at /puzzle. Streamers upload an image, get a 4-digit code, drop it in chat, and viewers race to assemble the puzzle together.

Quick start (streamer)

  • Tick the disclaimer ("my image becomes part of the public library — anyone can challenge my record")
  • Upload a JPEG / PNG / WebP up to 40 MB
  • Pick a difficulty: 4×3 (12 pieces) up to 40×25 (1,000) — or set a custom grid up to 40×40
  • Click "Create room" → get a 4-digit code → drop in chat
  • Optional: tick "private" to keep the room out of the public lobby

Quick start (viewer)

  • Sign in with any platform
  • Paste the 4-digit code on /puzzle or open marksoft.ro/puzzle/play/XXXX directly
  • Drag pieces. When a piece touches a correctly-adjacent neighbour, they snap together and merge into one rigid group
  • Side panel shows every player's contribution as a percentage

Sticky-merge physics

Every piece starts in its own group. When you drop a group within tolerance of a grid-adjacent piece in another group, the two merge and move as one piece from then on. Total merges to finish = pieces − 1, so each merge is 1 unit of progress. Whoever drops gets the credit. First-person to 100% wins individual contribution; the room as a whole goes for the fastest record time.

Image library & records

  • Every uploaded image becomes public on /puzzle
  • Each image keeps a record time per grid size (4×3 records don't outrank 12×9)
  • "Most played" and "Newest" tabs to discover images
  • Click "Easy / Medium / Hard" on any image card to challenge that record fresh
  • Right-click drag or Space+drag to pan; mouse-wheel to zoom (essential at 1,000 pieces)
Try /puzzle

3D MMORPG world

A persistent 3D city world at /game, built on Babylon.js (rendering) and Colyseus (multiplayer). Pick a character — name, sex, class — spawn into the world, and walk around with everyone else who's online.

Classes available

  • Warrior, Mage, Engineer, Scientist, Medic, Hunter, Smuggler, Necromancer
  • Cross-class spell learning is on the roadmap

What can I do right now?

  • Walk around with WASD, see other players moving in real time
  • Chat with other players in-world
  • Set waypoints on the world map (M)
  • Talk to NPCs (E to interact) — every NPC has a stable ID and dialogue trees
  • Open inventory (I), character sheet (C), property panel (P), settings

Coming soon

  • Combat & class abilities
  • Property & business management (own a building, run a shop, trade with players)
  • Mob spawning + DNA / monster lore arcs

Browser requirements

  • Modern browser with WebGL 2 (Chrome, Edge, Firefox, Safari current)
  • Sign in with any platform — no separate game login

Dev tools

There's a 🛠️ DEV button on the action bar — always visible. Behind a server-side allowlist (GAME_DEV_ADMINS env), so clicking does nothing for non-admins. Press F3 as a backup.

Enter the city

Fishing system

The flagship community game. 1,700+ species across 10 rarity tiers, with factories, marketplace, warehouses and achievements. Catch in chat, manage on the web.

How do I fish?

  • !fish in any participating Twitch / Kick channel (5-min cooldown)
  • Or click "Cast" at /fish from your unified profile
  • Channel-points redemptions with "fish" in the name also trigger a catch

Rarity tiers

  • Common · 50% drop · the bulk of the catalogue
  • Uncommon · 25% · still shows up regularly
  • Rare · 12% · noticeably better stats
  • Epic · 6%
  • Legendary · 3%
  • Mythic · 1.5%
  • Ethereal · 0.8% · glowing visuals
  • Cosmic · 0.4%
  • Divine · 0.2%
  • Ancient · 0.1% · the rarest tier — pre-extinction species

Factory, marketplace, warehouse

  • Factory (/fish/factory): process raw fish into fillets, oils and refined goods for higher value
  • Marketplace (/fish/marketplace): list catches for sale, browse other players' offerings, bid
  • Warehouse (/fish/warehouse): paid storage tiers for hoarding rare specimens
  • Home (/fish/home): your decoratable aquarium / dashboard
  • Coins: shared with the rest of the platform — same wallet across fishing, music tipping, future game economies

Where do I see my fish?

  • /fish — full collection with sort + search
  • !myfish in chat — quick stats summary
  • !fishleaderboard — top collectors by total value
Cast a line Marketplace

AI & personas

Context-aware chat AI on every platform with per-channel persistent memory, custom personas, function calling, web search, and configurable backends.

How do viewers talk to it?

  • Mention the bot or use a streamer-configured trigger phrase
  • The AI replies in chat — Twitch responses are capped at 400 chars to avoid mid-sentence cutoff; Discord gets full-length
  • It remembers your conversation context per channel (boltwire SQLite memory)

What can it do?

  • Web search: live information lookups (news, weather, scores, etc.)
  • Function calling: can run pre-approved bot commands on your behalf
  • Image gen: generate images from prompts
  • Code analysis: review snippets pasted into chat (Discord)
  • Lyrics generator: with style and theme prompts (/api/lyrics)

AI personas (streamer)

  • Create custom characters: name, personality, voice, trigger phrases
  • Each persona has its own memory bank — they don't bleed into each other
  • Switch personas mid-stream for different vibes
  • Per-channel toggling: enable an "evil" persona on the chaos channel, a "calm" one elsewhere

Custom AI backends

Default is DeepSeek. Set AI_API_URL per channel to point at any OpenAI-compatible endpoint — your own model, a private deploy, anything. We don't lock you in.

TTS overlays for OBS

Edge TTS-powered text-to-speech with a queue, per-platform browser-source overlays, and a WebSocket pipeline that pushes TTS events from the bot worker to your OBS scene in real time.

How do I add it to OBS?

  • Add a Browser Source in OBS
  • Twitch URL: https://marksoft.ro/twitch/<your-channel>/tts
  • Kick URL: https://marksoft.ro/kick/<your-channel>/tts
  • Set the source to ~600×100 px (it auto-fits) and tick "Refresh browser when scene becomes active"

What gets spoken?

  • AI persona replies (configurable per persona)
  • Donation / subscription / gift alerts (with custom voice + message templates)
  • Chat messages routed via !tts <msg> (subject to your toggle)
  • Custom alert sounds queued through the TTS pipeline

Voices & queue

  • Multiple Edge TTS voices per persona — male / female / language variants
  • EnhancedTTSQueueManager handles back-pressure so TTS never speaks over itself
  • Espeak-ng fallback if Edge TTS fails — overlay never goes silent
  • Premium tiers unlock additional voice models + faster synthesis

Remote control panel

A streamer-only panel at /remote-control where moderators (or trusted viewers) can trigger pre-approved actions — without you typing anything in chat.

How does it work?

  • You whitelist commands ahead of time on the dashboard
  • Whitelisted users get a control panel link they can keep open
  • Click a button → command runs on your channel → audit-logged
  • No keystroke logging, no screen recording, no shell access — just the buttons you set

What can it run?

  • Toggle features on/off (clips, fish, AI, alerts)
  • Trigger alerts ("manually fire the raid alert") for testing
  • Simple keyboard hotkeys for stream control (mute mic, toggle scene, pause music)
  • Pre-approved chat commands (e.g., a one-click !so <previous-streamer>)

Security: requires explicit per-user permission grants. All actions audit-logged. You can revoke any user instantly. The bot can't run anything you haven't whitelisted.

Achievements & leaderboards

Achievements track milestones automatically — based on your real activity, not opt-in checklists. Cross-platform: Twitch, Kick, Discord and YouTube share unlocks via your unified profile.

Examples

  • Catch your first cosmic fish
  • Hit 100 hours of watchtime on a channel
  • Place 100 puzzle pieces total
  • Finish 10 puzzles in under 5 minutes
  • Hit a 7-day login streak
  • Get 1,000 plays on a music track you uploaded
  • 1,000+ commands used
  • Win 50 wins

Where to see leaderboards

  • /leaderboard — overall cross-platform
  • /fish — top fish collectors by value
  • /puzzle — recent finishes + per-image best times
  • /music — most-played + most-liked tracks
  • !fishleaderboard / !bitsleaderboard — chat queries

Channel notifications (streamer)

Use !setachievementchannel <channel> in Discord to get a ping when a viewer unlocks an achievement.

Account linking

One profile, four platforms. Link Twitch + Kick + Discord + YouTube and your fish, achievements, music likes, puzzle records, coins and AI memory all follow you everywhere.

How to link

  • Sign in with one platform first (your "primary")
  • Visit your profile → "Linked accounts"
  • Click "Link [other platform]" → OAuth flow → done
  • Repeat for each platform you use

What syncs?

  • Coins, fish, achievements, watchtime totals
  • Music likes, playlists, play counts
  • Puzzle records and contribution stats
  • AI memory references (your unified profile, not username, is the key)
  • Cross-platform leaderboard placement

What stays per-platform?

  • Channel-specific stats (watchtime in this channel)
  • Platform-native badges (verified Twitch bot status, Kick OG, etc.)
  • Your platform display name / avatar (we show all of them)

Premium plans

Core platform is free. Premium tiers unlock more AI volume, premium voices, custom personas, white-label overlays, and dedicated resources.

Tiers

  • Free: chat, fish basics, music browse, puzzle play, AI per channel up to fair-use limit, all platforms
  • Pro: larger AI quota, custom personas, branded overlay theme
  • Max+: unlimited AI per channel, premium TTS voices, faster synthesis, factory tier-2 unlocks
  • Ultra: dedicated bot resources, white-label everything, priority support

How do I pay?

  • Native Revolut integration on /pricing
  • Monthly or annual; cancel any time, prorated
  • Webhook reconciliation handles upgrades / downgrades / refunds cleanly
  • No third-party widgets or pop-ups

Can I gift premium?

Not yet — gifting is on the roadmap. For now you can buy a subscription for someone by using their account login at checkout.

Privacy & data

What's stored?

  • MongoDB: profiles, achievements, fish, puzzle results, music plays, social stories, premium subscriptions
  • Redis (when configured): ephemeral cache + sessions
  • SQLite: chat statistics + AI conversation memory (boltwire)
  • JSON files: channel/streamer configs, channel mappings, watchtime snapshots
  • Encrypted OAuth tokens: Twitch, Kick, Discord, Google/YouTube, Spotify — only what we need to provide the service

What's NOT stored?

  • Spotify ads / podcasts / private session details
  • Your Spotify password (OAuth means we never see it)
  • Keystrokes or screen recordings (remote control logs the command, not the input)
  • Payment card numbers (Revolut handles those — we get a token)

Retention

  • Active user data: kept while the bot is in your server / channel
  • Inactive accounts: purged after 90 days of no activity
  • Moderation logs: 1 year for audit purposes
  • Analytics: aggregated indefinitely; per-row data points 6 months
  • Premium subscriptions: kept while active + 30 days post-cancellation for refund handling

GDPR rights

  • Access: request a JSON dump of everything we store about you
  • Portability: machine-readable, take it elsewhere
  • Deletion: immediate on valid request
  • Rectification: fix incorrect data on request
  • Where to ask: Discord support server, with your unified profile ID

Where's it hosted?

Romania. MARKSOFT LTD, EU jurisdiction, GDPR-compliant. Full Privacy Policy.

Troubleshooting

!song says "not playing" but I am

  • Make sure the /music tab is open and a track is currently playing
  • The heartbeat fires every 10 seconds; backgrounded tabs work, but if the laptop slept the heartbeat may have paused — refresh the tab
  • If you connected Spotify, confirm your Spotify account has Premium (their policy)

My TTS overlay isn't speaking

  • Confirm the OBS browser source URL exactly matches your channel slug
  • Check the dashboard — TTS toggle, master volume, persona-level voice routing
  • Right-click the OBS source → "Refresh cache of current page"
  • If you hear espeak instead of Edge TTS, the Edge synth probably crashed — falls back automatically; restart the bot to recover

AI isn't responding in my Kick chat

  • Bot connected? Visit /kick-dashboard and confirm channel status is green
  • AI enabled? !toggle ai on or check the dashboard
  • Did you trip a rate limit? Free tier has fair-use caps per channel — check the AI quota panel

OAuth / sign-in fails

  • Clear cookies for marksoft.ro and retry
  • Strict ad-blockers (uBlock medium+, Brave shields) can break Twitch / Kick callback redirects — try with shields off for this domain
  • Browser in private mode? Some platforms require third-party cookies on the OAuth callback

Puzzle: "wrong song / wrong piece" or stuck

  • The "wrong song" bug in the New / Trending / Popular music rows was fixed — refresh the page if you see it
  • If a puzzle piece looks stuck, try a small drag — local prediction sometimes drifts ahead of the server snapshot
  • Mouse-wheel zoom + right-drag pan if your view feels cramped on big grids

Bits-timeout isn't working

  • Bot must be a moderator in your Twitch channel
  • !enabletimeouts or dashboard toggle must be on
  • Cheers must include the @username tag
  • Protected users (mods, VIPs added via !ignoretimeout) won't be timed out

Image upload to /puzzle returned a JSON error

  • File must be ≤ 40 MB and JPEG / PNG / WebP
  • If your screen showed a generic "JSON.parse" error, the proxy was blocking the size — that's been fixed and the limit is now 50 MB at the proxy / 40 MB at the app

Get support

  • Discord support server: discord.gg/4Br57JmKYG — fastest path for help, bug reports, feature requests
  • Status page: /stats — real-time service health, uptime history, incident log
  • Privacy / GDPR requests: Discord support server with your unified profile ID
  • Business / press: contact via the support server admins
Join the Discord Status page

Still stuck?

The Discord support server is the best place to ask anything not covered here.

Marksoft Footer