Skip to Content

Commands

Two commands, /tictactoe and /aquatac. Both accept every subcommand below, so the split is only about which one is easier to type. They differ in what the bare command prints: /tictactoe shows the player info, /aquatac shows the plugin banner.

CommandAliases
/tictactoe/ttt, /tic
/aquatac/atac, /aqtac

Playing

CommandPermissionWhat it does
/ttt invite <player> [bet]aquatac.playChallenges someone. Aliases challenge, duel
/ttt accept <player>aquatac.playAccepts and starts the match
/ttt decline <player>aquatac.playRejects it. Aliases deny, reject
/ttt cancelaquatac.playWithdraws the challenge you sent
/ttt rematchaquatac.rematchRe-challenges whoever you last played. Alias again
/ttt bot [difficulty]aquatac.botPractice match. Aliases ai, solo, practice
/ttt infoeveryoneYour current match
/ttt helpaquatac.helpCommand list. Aliases ?, commands

/ttt <player> is a shortcut for /ttt invite <player> whenever the first word is an online player name.

/ttt Senkex /ttt invite Senkex 500 /ttt accept Senkex /ttt bot impossible

The bet is optional. Without one, or with betting off, the match is played for free.

Stats

CommandPermissionWhat it does
/ttt stats [player]aquatac.statsWins, losses, draws, streaks and money
/ttt top [column]aquatac.topLeaderboard. Alias leaderboard

Columns: wins, losses, draws, games, streak, best_streak, earned. Defaults to wins.

Admin

CommandPermissionWhat it does
/aquatac reloadaquatac.reloadReloads every file
/aquatac end <player|all>aquatac.endForce ends a match, or all of them. Alias forceend
/aquatac reset <player|all confirm>aquatac.resetWipes stats
/aquatac debugaquatac.debugVersion, economy, storage, queue and active matches
/aquatac end Senkex /aquatac end all /aquatac reset Senkex /aquatac reset all confirm

reset all needs the literal word confirm after it. Without it the plugin only asks again.

Force ending refunds both bets when game.refund-on-force-end is on.

Permissions

NodeDefaultGrants
aquatac.playeveryoneChallenge, accept, decline, cancel
aquatac.helpeveryoneThe help list
aquatac.statseveryonestats
aquatac.topeveryonetop
aquatac.boteveryonebot
aquatac.rematcheveryonerematch
aquatac.broadcasteveryoneReceives win and draw broadcasts
aquatac.reloadopreload
aquatac.endopend
aquatac.resetopreset
aquatac.debugopdebug
aquatac.updateopThe update notice on join
aquatac.adminopAll of the above

In 1.0.0 these were tictactoe.play, aquatac.help and aquatac.admin. The root is now aquatac for everything, and tictactoe.play does nothing.

Taking aquatac.play from a player also stops others from challenging them: the challenger gets opponent-cant-play.

Bypasses

NodeDefaultIgnores
aquatac.bypass.cooldownopThe wait between challenges
aquatac.bypass.bet-limitsopbet.min and bet.max
aquatac.bypass.*opBoth

Why a challenge fails

ReasonReply
The target is offlineplayer-not-found
You challenge yourselfcant-challenge-self
The target lacks aquatac.playopponent-cant-play
You are already playingalready-in-match
They are already playingopponent-in-match
You challenged too recentlychallenge-cooldown
The bet is outside bet.min or bet.maxlimit message
Either side cannot cover the stakeno funds message
Last updated: September 16, 2026 bySenkexin2fc986d