Support and tickets

Updated Oct 15, 2026 Open the tool

Support on Zoov.dev happens in the Discord server. Members open a ticket from the ticket panel, and the support bot Syntax answers first from the knowledge base, then hands over to staff when it cannot help.

Opening a ticket

Support tickets are opened from the ticket panel that staff post in a channel. The panel is titled "Support Tickets", links the Knowledge Base at /kb and the Customer Portal at /api/v2/billing/portal?return=/app, and ends with a dropdown labelled "Select a ticket type...". There is no /ticket slash command for members; the /tickets command is staff only.

Picking a type creates a private channel named <type>-<username>-<4 characters> that only the member, the bot and staff can see. Three types open instantly with no form: Technical Support, General Inquiry and Billing Support. The welcome message asks the member to describe the issue in the channel: "Please describe your issue here in as much detail as you can, and the team (or our assistant) will help shortly." Partnership Request shows a form first with "Organization/Company name", "Partnership proposal" and "Discord Link - [Minimum 2.5k Members]".

A member can have only one open ticket at a time. Trying to open a second one replies "You already have an open ticket" with a link to the existing channel. If that channel was deleted without the ticket being closed, the old ticket is closed and the new one opens (since 2026-09-30; before that the member was stuck with a link to a channel that no longer existed). If the panel has not been set up, the reply is "Ticket system not configured. Ask staff to run /tickets setup."

Each ticket channel starts with a card showing "Created by", "Status: Open" and "Claimed by: Unclaimed", plus the buttons "Claim Ticket", "Close", "Bypass", "Escalate" and "Create Summary" (the last since 2026-09-30; tickets opened before that have four, and /tickets summary does the same). All of them are staff only; a member who presses Close sees "Only staff can close tickets."

What Syntax does in a ticket

Syntax is the AI support assistant. In a ticket it only answers the ticket owner, and only for ticket types staff have enabled for AI (the master switch and the type list are off by default, so a ticket may be staff only). Staff messages in a ticket do not trigger the bot.

When the owner sends a message the bot reacts with ๐Ÿ‘€ to show it was picked up, waits about 2.5 seconds for more messages (and at least 4 seconds more while the user is still typing), then replies once. The ๐Ÿ‘€ becomes โœ… when it has answered or ๐Ÿ™‹ when it handed the ticket to staff. Every reply ends with a small footer starting "AI-generated" that says the answer may be inaccurate and to double-check anything important with staff.

Syntax knows the ticket type and any form answers already given, so it should not ask for them again. It searches the knowledge base, glossary, FAQ, site links and roadmap before answering, and it never invents links. It can also look up the asking member's own account (plan, credits, recent transactions, past tickets, trial status, and since 2026-10-08 their recent runs in the workspace: which tool, the file, whether it failed and the error it gave, the credits it cost and any refund) but never anyone else's. A failed run that took credits with no refund is handed to staff as a billing fault. It cannot change credits, grant roles, reset trials or issue refunds.

Syntax also reads the game role you picked when you joined the server ("What game are you creating for?", since 2026-10-01). With only the Roblox role, a livery question is answered for ER:LC and a shirt question for Roblox clothing; with only FiveM, for GTA V; with both, it asks which game you mean. With neither (members who joined before the question), it works the game out from the message (a .ytd or FiveM means FiveM, ER:LC means Roblox), and asks "Is this for FiveM or Roblox?" only when nothing says which. Saying the game in your message always wins. This applies in tickets, public threads and when staff press Continue.

Asking before answering (since 2026-10-08). Before giving steps, Syntax makes sure it knows what the member is trying to make, for which game, with which tool, where it stopped, and whether their plan allows it. It works these out from the message, the ticket form, attachments, screenshots and roles. When something that changes the answer is missing, it asks one short question first (at most two), with the likely choices ("Is this for FiveM or Roblox?"), instead of guessing. It never asks for something the member already said.

Buttons (since 2026-10-08). When a reply sends the member to a tool or page, the bot adds a button under the message ("Open Props", "Open Image to YTD", "Read the guide"), up to three. A reply about a single tool also shows a small card with the tool's name and what it does. The links stay in the text too.

Tap to answer (since 2026-10-08). When Syntax asks something with a few clear answers ("Is this for FiveM or Roblox?"), the answers appear as buttons under its message. Tapping one is the same as typing it: the buttons lock with your answer marked, and Syntax carries on. Only the person who asked can tap them. If you typed an answer instead, the old buttons stop working.

What your plan allows (since 2026-10-08). In a ticket, Syntax can check what you can do with a tool right now: your plan, today's free limits, your rolling conversion and Optimize limits, your credits, and what a paid action would cost you. It uses this before telling you to use something, so it says plainly when a limit has been reached, when it resets (in UTC), and what a plan would change.

Invoices and receipts (since 2026-10-08). In a ticket, Syntax can find your recent invoices and receipts and give you the link to the one you need. It never shows card details.

Is it down? For "is the site down" or a run that failed for no clear reason, Syntax checks the status page first and says which tools an outage affects, with a link to the status page.

Syntax on the workspace Home (since 2026-10-09). Signed in at zoov.dev/app, Home asks "What do you want to make?" and the same Syntax answers there, privately: it names the tool, opens it set up with your words, and can check your plan, limits, runs and payments as it does in a ticket. When a person is needed it points you to a ticket on Discord.

One Syntax everywhere (since 2026-10-09). Syntax's answers now come from Zoov.dev itself rather than from the Discord bot, so it reads your plan, limits and runs the same way the workspace does. Nothing changes in how you ask: threads, tickets, buttons and handoffs work as before, and if that connection is ever down, the bot still answers on its own.

If the bot cannot generate a reply it says "Something went wrong on my end. Please try again in a moment, or ping a staff member."

Files, screenshots and game assets

Syntax can read text attachments posted in the conversation. The supported formats are .meta, .xml, .txt, .log, .json, .cfg, .ini, .lua, .yml, .yaml, .csv, .md, .toml, .conf, .gitignore, .env, .sql, .sh, .bat and .ps1, up to 512 KB. It only reads files that are already in the conversation, from Discord's CDN.

Screenshots (.png, .jpg, .jpeg, .webp, .gif) can be shown to the model when staff turn vision on. It is off by default, and when on at most 3 images per reply are used.

Binary game files .ydd, .ydr and .yft up to 32 MB can be inspected for structure, textures and LODs through the winapi inspector. This is off by default and, when on, restricted to paid users by default. A free user asking for inspection is told it needs a Pro subscription.

If a member uploads a file type the bot cannot open and adds no text, it replies: "I can see you uploaded a file, but I can't open that type directly." and lists the readable formats.

Escalation to staff

Syntax hands a conversation to staff when the member asks for a human, is clearly frustrated, needs an account or billing action the bot cannot do, raises a security or other-user matter, or when the bot has searched and cannot help. The bot posts a message starting "๐Ÿ™‹ Handing this over to our team", pings the staff roles with "(auto-escalated)" and a short reason, then stays silent in that channel until staff resume it.

Create Summary (since 2026-09-30) gives the staff member who presses it, and only them, a summary of the ticket in English whatever language the member and Syntax used: the issue, what was tried, the status, what to do next, the details worth having (file names, errors, plan, ids), and the member's language when it is not English. It takes a few seconds.

Every handover to staff in a ticket (since 2026-09-30) pauses the assistant, posts "๐Ÿ™‹ Handing this over to our team" with the staff roles and "(auto-escalated)", and adds the English summary under it for the team.

Staff can also take over by pressing "Claim Ticket". The bot then posts that the staff member "has taken over this ticket and will help you from here" and pauses. After claiming, the card shows "Claimed" (disabled), "Resume AI", "Close", "Bypass" and "Create Summary". "Resume AI" re-enables Syntax in that ticket.

For refunds Syntax follows a fixed policy: it explains that purchases are final, points to the terms, and only escalates if the member still wants a human or reports a real billing fault such as a duplicate charge. Cancelling a plan is done by the member in the Customer Portal at /api/v2/billing/portal?return=/app. For "I paid but got nothing" the bot verifies the purchase with Stripe and records an access re-assignment request for staff, once per day per member.

Follow-ups, resolving and closing

When follow-ups are enabled and the bot's last message asked the member something, Syntax may send one short check-in if the member goes quiet. Defaults: first nudge after 12 hours of silence, a second after 24 more hours, and then 36 hours later the ticket is auto-closed if auto-close is on. Nudges carry "Continue" and "Close" buttons for staff. Follow-ups are off by default.

When the member confirms the problem is fixed ("thanks, that worked"), Syntax marks the conversation resolved. In a ticket this closes it with the reason "Resolved (confirmed by user)". In a forum post it posts "โœ… Glad that's sorted" and archives the thread. Auto-close after silence uses the reason "Auto-closed after no response".

Closing a ticket (by staff or the bot) deletes the channel after 5 seconds, sends a transcript to the transcript channel, and DMs the owner a "Ticket Closed" card with the "Resolution Message" and buttons "Leave Review", "Knowledge Base", "Portal" and "Plans". The transcript is also staged for the knowledge base unless staff closed with "Bypass".

Public help outside tickets

Members can also get help from Syntax by mentioning the bot in a channel, by posting a real question in a configured support channel, or by posting in a configured support forum. The bot opens a thread named after the message (up to 90 characters) and answers there. From 2026-09-26 to 2026-10-02 the first answer in a #support thread never arrived (the thread opened, then nothing; a follow-up message inside the thread did get answered); fixed 2026-10-02. In a thread it focuses on the person who opened it; other people only get a reply if they mention the bot directly.

In the general chat channel (#chat) Syntax does not answer questions (since 2026-09-30). When a member asks something that reads as a support question there (help language plus something about Zoov.dev, a tool, a file type or billing, or a plain "can someone help" or "I got charged"), or mentions the bot, it replies once: "Hey! Need support? Ask in #support for faster help, or open a ticket in #tickets for anything account related ๐Ÿ™‚". It says this at most once per member every 6 hours and at most once a minute in the channel, and leaves ordinary chat alone.

In a support channel the bot ignores greetings, thanks and short chatter, and only engages with messages that look like a help request (a question mark, or words like "how", "error", "not working", "help"). It never reacts to @everyone or @here.

If a member is not allowed to use the assistant yet, mentioning it replies "You don't have access to this assistant yet." During testing mode the bot stays completely silent for non-testers.

From 2026-10-08, when Syntax moves you to a ticket from a public thread, its message has an Open a private ticket button. Pressing it opens your ticket straight away, with a summary of the thread posted at the top, and Syntax continues there without asking you to explain again. Only the person who asked can press it, and you can still have only one open ticket at a time.

The button opens the kind of ticket that fits what you asked: Billing for payments, charges, refunds, invoices or something you paid for that did not arrive; Technical for a tool or a run that is not working; General for anything else, such as a role that is not from a purchase or a question for staff. Syntax cannot open a ticket for you; only you can, with that button or from #tickets. Since 2026-10-09, if you already have a ticket open, Syntax links that ticket instead of showing the button, so you carry on where you were.

Public help is short and limited (since 2026-09-30). Syntax answers each member up to 4 times a day in public, briefly; the fourth answer ends with a pointer to open a ticket in #tickets, where it keeps helping in private. For the next 24 hours it does not answer that member in public: a new question gets "You've had my help here today, so let's move to a ticket" (at most every 2 hours, a ๐ŸŽซ reaction otherwise). It also moves a member to tickets straight away for anything about their own account (plan, balance, payments, refunds, trials), when they ask for a human, or when they troll or keep asking about things unrelated to Zoov.dev. It never discusses someone's account in a public thread and never pings staff from one; a ticket is the way to a human.

Limits and cooldowns

Syntax rate-limits requests per member: 8 requests per 60 minutes by default. When over the limit the bot replies "You're going a bit fast" and asks the member to wait. Paid subscribers get 4 times the allowance, and inside a ticket the allowance is multiplied by 3 again (a paid user in a ticket gets 12 times). Staff and bot admins bypass the cooldown.

Each conversation also has a token budget of 120,000 tokens per rolling 12 hours (the same multipliers apply). When it is used up the bot posts "I've helped a lot here already, so I'll pause for a bit to keep things fair." with a "Continue" button that staff can press to resume immediately; otherwise the limit resets on its own within about 12 hours.

These limits are in memory and reset when the bot restarts. The public allowance (4 answers a day, then tickets) is not: it is rebuilt from the bot's log on restart.

Known issues and corrections

When something is broken platform-wide, staff log it with /knownissue add. Syntax checks the active list before troubleshooting and will tell the member it is a known issue being worked on instead of sending them through setup steps. /knownissue resolve stops the bot citing it.

If Syntax gives a wrong answer, staff right-click the message and choose Apps then "Teach Syntax". The form asks for "Topic / question this applies to", "Correct answer Syntax should give" and optional tags. The correction goes live immediately and outranks older knowledge on the next reply. No restart is needed.

Slash commands for members

/credits view shows your own permanent, temporary and total credit balance, plus any temporary batches with their expiry. Viewing another user requires staff.

/claim claims invite credits you have earned. It needs your Discord account linked to your Zoov.dev profile; otherwise it replies "Account Not Linked". With nothing to claim it says "No Credits Available".

/optout on stops the AI assistant from reading, answering or storing your messages and excludes your tickets from transcript retention. /optout off reverses it, /optout status shows the current setting, and /optout delete-my-data deletes stored support logs and transcripts. Human staff can still help you in tickets.

/verify, /invoice, /feedback, /faq and /glossary are staff or admin only. A member who runs them sees "Access Denied" or "Admins only."

Common questions

How do I open a support ticket? Go to the channel with the "Support Tickets" panel and pick a type from "Select a ticket type...". A private channel opens for you. Describe your problem there.

Why is the bot not replying in my ticket? Either your ticket type is not AI-enabled, a staff member has claimed the ticket (the bot pauses), you hit the request or token limit, or you have opted out with /optout. Staff can resume the bot with "Resume AI" or "Continue".

Can I open two tickets? No. You get "You already have an open ticket" with a link to the open one. Close it first or add your new question there.

Can the bot see my screenshot? Only when staff have turned on image reading. Text files like .meta, .xml, .log and .json are always readable up to 512 KB. If in doubt, paste the error text.

Can the bot inspect my .ydr or .ydd file? Only when the inspector is enabled, and by default only for paid users. Free users are told it needs a Pro subscription.

The bot said it will hand me to staff. What now? Wait in the ticket. Staff roles were pinged and the bot stays quiet until a person takes over.

How do I stop the AI from reading my messages? Run /optout on. It takes effect immediately and you can undo it with /optout off.

The bot gave me a wrong answer. Tell staff. They use "Teach Syntax" on the wrong message to fix it for everyone.

Topics supportticketssyntaxdiscordbotescalationknown-issuesoptout

Something missing? Ask on Discord