What goes wrong most often, what it actually means, and what to do about it. Most of these are configuration, not faults — check the matching entry before opening a ticket.
Installation and Access#
"You do not have permission." on /dartscreator
The ace in Config.Creator.permission — command.dartscreator by default — is not granted to you. Add add_ace group.admin command.dartscreator allow, put your identifier in that group with add_principal, and restart the server — aces are read when server.cfg is executed. Check that the identifier belongs to the account you are playing on. See Installation.
The creator window does not open, or is blank
The interface ships ready to use in web/build/. If that folder is missing or was only partly copied, the window cannot load and there is no error in game — copy the whole resource again from your download.
Nobody is charged for anything
Darts is running standalone: your framework starts after qs-darts, so it was not detected. Move its ensure above ensure qs-darts and restart. Standalone never takes money unless you define Config.CanAfford, Config.RemoveMoney and Config.AddMoney.
Boards placed with the creator disappear after a restart
They are not reaching the database. Look for [qs-darts] Loaded N board(s) from SQL. in the server console: if it is missing, or errors appear above it, oxmysql is not connected, or your database user cannot create the table — import database/sql.sql by hand once.
"Locale not found, falling back to en" in F8
Config.Locale is set to a code with no file in locales/. Use one of the 41 codes listed in Integrations, or add the file.
"Migrated N board(s) to the JSON coords column" in the console
Not an error. An update moved your boards from the old position columns into the new coords column. It happens once, and every board keeps its place.
Dartboards#
The [E] - Play Darts prompt does not appear
Either the board has a game on it — boards in use show no prompt — or you are too far: it appears within 3 m (Config.InteractDistance plus 1.5 m). It is also hidden while you are placing a board. A board more than 45 m away is not loaded at all until you come closer.
A board I deleted came back
It is also in Config.Boards, or it is a map dartboard and Config.AutoDetect is on. Delete the line from the config, or set AutoDetect = false so map boards are no longer registered.
A dartboard on my map cannot be played
Config.AutoDetect is off, or the map uses a different model from Config.Models.board. Boards are looked for around each player every four seconds, so give it a moment after arriving. A different model also needs its rings calibrated with /dartsdebug.
The board faces the wall, or the player throws from the wrong side
Reposition it in the creator. Aim at the wall itself rather than at an object in front of it, and turn it with Q or Z / X if needed. The script works out which side of a wall is open; on a freestanding board, or one with no wall behind it, it trusts the heading it was pinned with.
The throwing line is too close, or behind a counter
The line is 4.84 m from the board. When something blocks it, it is shortened — never below 1.2 m — so a board with little free space in front of it plays awkwardly. Pick a wall with room in front, or change Config.Oche.distance (set Config.Oche.autoClear = false to always use it as it is).
Darts land in one ring but score another
The rings in the config no longer match the board's texture — usually after changing Config.Models.board or the Config.Board values. Calibrate them with /dartsdebug; see Usage.
Playing#
"You do not have enough money to play."
The board's entry fee, or the stake, is more than the player has in that account. Entry fees come from the account chosen in the creator — Cash or Bank — and stakes from Config.Betting.paymentMethod. In a duel both players must be able to pay both.
"No players nearby to challenge."
Nobody else is within 15 m of the board. Raise Config.NearbyPlayerRadius for larger rooms.
"That player is busy right now."
They are in a game, or another challenge is already waiting for their answer.
"You already have a pending challenge."
Only one challenge can be out at a time. It expires after 30 seconds if it is not answered.
"That dartboard is no longer available."
Somebody started a game on that board before the challenge was accepted, the board was deleted, or the challenger could no longer pay when it was accepted.
The game ended on its own
One of the automatic endings: the player walked out of the play zone (the red circle on the floor, Config.LeaveZone), died, ran out of time on the turn clock (90 seconds, Config.Game.turnSeconds), or the opponent disconnected. Each one counts against the player it happened to.
My score went back up
That was a bust: a dart took you below zero — or, with double out on, to exactly 1, or to zero on a dart that was not a double or the bullseye. The score returns to where the turn began and the turn ends.
Nobody can finish a game
Double out is on: the finishing dart has to be a double or the bullseye. That is the real rule, but it makes games long for casual players — turn it off with Config.Game.doubleOut = false.
I cannot collect my darts
Walk right up to the board: the prompt shows from 5 m, but E only works within about 2.4 m of the bullseye. Only the player whose turn it is collects.
The entry fee was not given back
Entry fees are never returned — they are the price of using the board. Only stakes are refunded, and only when a game ends with no winner.
Calibration#
The calibration commands do nothing
Config.Debug is off — the commands are not even registered then. Set it to true and restart the resource. They also need the creator permission and a board within 15 m, and only one tool can be open at a time.
My calibration was lost after a restart
The tools change the values on your screen only. Press Enter, copy the block printed in F8 into config/config.lua, and restart the resource so every player gets it.
Messages#
The server sends locale keys, not sentences, so each player reads every message in the language set in Config.Locale. The ones that point at a problem:
Key | Message | Means |
|---|---|---|
| You do not have enough money to play. | The entry fee or the stake is more than the player has in that account. |
| You do not have permission. | The creator ace is not granted to that player. |
| It is not your turn. | A throw reached the server outside the player's turn — usually lag at the moment the turn changed. |
| The model could not be loaded. | The model in |
| Your challenge was declined. | The opponent declined, or could not afford the stake when accepting. |
| Your challenge expired. | Thirty seconds passed with no answer. |
| Your bet was refunded. | The game ended with no winner — the board was deleted mid-game. |
| You resigned. | Also shown when the player walks out of the play zone or dies. |
| You ran out of time. You lose. | The turn clock reached zero on the player's turn. |
Still stuck? Open a ticket and include the
[qs-darts]lines from your server console, your framework and its version, and the relevant part ofconfig/config.lua. A screenshot of the F8 console helps for anything about the interface.



