Home›Java›Mods›[1.16-1.26.x] ChatGamesPlus ❖ 7 Game Types · Configurable Rewards · Leaderboards [FREE]
ModsJava
[1.16-1.26.x] ChatGamesPlus ❖ 7 Game Types · Configurable Rewards · Leaderboards [FREE]
Java mod listed for Minecraft 1.16–26.x. Downloads from the MC Java Mods app on Android.
⬇ Download on Spigot
CHATGAMES+
Automatic chat mini-games — free
Spigot / Paper • Minecraft 1.16 - 1.21+ • No mandatory dependencies • Java 8+
★ 100% FREE ★
❖ DISCORD ❖ ❖ WIKI ❖
✔ Seven game types ✔ Every reward & message configurable ✔ Config error system ✔ Actively maintained
Automatic chat mini-games — free
Spigot / Paper • Minecraft 1.16 - 1.21+ • No mandatory dependencies • Java 8+
★ 100% FREE ★
❖ DISCORD ❖ ❖ WIKI ❖
✔ Seven game types ✔ Every reward & message configurable ✔ Config error system ✔ Actively maintained
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
Seven game types
Unscramble, type-it, math, trivia, first-to-type, letter reveal and cipher decode
Rewards you actually control
Items, commands, money, XP, titles — a different reward per game type, fully configurable
⚖ Fair by default
Answers before the start don't count, a winner cooldown, and no winning twice in a row
Unscramble, type-it, math, trivia, first-to-type, letter reveal and cipher decode
Rewards you actually control
Items, commands, money, XP, titles — a different reward per game type, fully configurable
⚖ Fair by default
Answers before the start don't count, a winner cooldown, and no winning twice in a row
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
Most chat-game plugins are old, ship two game types with hard-coded English text, and have no way to stop one fast typer from sweeping every round.
ChatGamesPlus was built from scratch to be fast, fully configurable and fair — and it's completely free.
It's part of the Plus Series, so its rewards can hand out CratesPlus keys, VoucherPlus vouchers, BattlePassPlus XP and RewardsPlus bonuses — all optional.
ChatGamesPlus was built from scratch to be fast, fully configurable and fair — and it's completely free.
It's part of the Plus Series, so its rewards can hand out CratesPlus keys, VoucherPlus vouchers, BattlePassPlus XP and RewardsPlus bonuses — all optional.
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ SHOWCASE ❖
❖ SHOWCASE ❖
A game in chat
Leaderboard GUI
Your Stats
One round, start to finish
Leaderboard GUI
Your Stats
One round, start to finish
- The timer fires and there are enough players online, so a round starts: "Unscramble: nedrag" drops in chat.
- A few seconds later a hint appears — the word length.
- A player types garden first — a win broadcast fires with their name and time, and their reward is paid: some money, a bit of XP, and a &#FF9E3DWeekly Crate Keya8a8a.
- Their win is counted on the daily / weekly / monthly / all-time leaderboard, and they can't win the next round.
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ GAME TYPES ❖
Each one is toggled on its own, with its own weight, time limit, hints and reward
❖ GAME TYPES ❖
Each one is toggled on its own, with its own weight, time limit, hints and reward
- ▸ Unscramble — a word from the pool with its letters shuffled; hint reveals the length
- ▸ Type It — be the first to type a phrase exactly (case sensitivity configurable)
- ▸ Math — a generated arithmetic problem; number range configurable
- ▸ Trivia — a question from the pool with a list of accepted answers; hint reveals the first letter
- ▸ First — the first to type a given word wins; pure speed
- ▸ Reveal — a hidden word, one more letter uncovered on every hint, first to guess it wins
- ▸ Decode — a short phrase behind a simple cipher (reversed, ROT13, letter-to-number)
Word, sentence and trivia pools live in pools/<lang>/ — swap or extend them freely. Ships with English and German.
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ FEATURES ❖
❖ FEATURES ❖
- ▸ Fully Configurable — every start / hint / win / timeout message, per game type; every interval, time limit and weight
- ▸ Rich Reward Bundles — items, console & as-player commands, Vault money, XP, permissions, titles, sounds and broadcasts
- ▸ Consolation Rewards — an optional smaller reward for 2nd and 3rd place if they answer in time
- ▸ Leaderboards — wins daily / weekly / monthly / all-time, in a GUI or chat, network-wide with MySQL
- ▸ Win Streaks — consecutive wins tracked and shown as a placeholder
- ▸ Three GUIs — stats, leaderboard and recent winners, every slot and item configurable
- ▸ Holograms — a DecentHolograms leaderboard, static or animated
- ▸ Discord — post the round start and / or the winner to a channel via webhook or DiscordSRV
- ▸ Multi-Language — pick lang/<code>.yml and a matching pool folder; English and German included
- ▸ Three Storage Backends — YAML, SQLite or MySQL; a missing driver falls back to YAML instead of failing to start
- ▸ Lightweight Chat Listener — only a string compare runs async, reward handling is scheduled back to the main thread; chat is never touched unless you opt in
- ▸ PlaceholderAPI Expansion — wins, streak, rank, the active game and its time left as placeholders
- ▸ Built-in Error Tracking — every config mistake caught with the exact file & line, kept in a full active / fixed history
- ▸ TabCompleter & Update Checker — every command and argument tab-completes; admins are told when a new version drops
- Hex & Gradient — full &#RRGGBB hex and <gradient> support in every message
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ FAIRNESS ❖
❖ FAIRNESS ❖
- ▸ Pre-Start Guard — a message sent before the round officially starts can't win the race against the broadcast
- ▸ Winner Cooldown — a player who just won can't win again for X seconds
- ▸ No Two in a Row — the last winner is locked out of the next round
- ▸ Disabled Worlds — players in listed worlds can't take part
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ CONFIG ERROR SYSTEM ❖
ChatGamesPlus tells you exactly what's wrong with your configs — and remembers it
❖ CONFIG ERROR SYSTEM ❖
ChatGamesPlus tells you exactly what's wrong with your configs — and remembers it
- ▸ Pinpoint Location — every problem is reported with the exact file and line number
- ▸ Reload Reports — /chatgames reload shows every issue instantly
- ▸ Full History — /chatgames errors lists every problem ever found, red for still active, green once fixed
- ▸ Never Fails Silently — an empty word pool or a trivia question with no answer is caught, not ignored at runtime
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ COMMANDS ❖
/chatgames · alias /cg
❖ COMMANDS ❖
/chatgames · alias /cg
- /chatgames — info and the time until the next round
- /chatgames top [daily|weekly|monthly|alltime] — the leaderboard
- /chatgames stats [player] — wins per period and current streak
- /chatgames start [type] — start a round now
- /chatgames stop · next — cancel the round, or end it and start the next
- /chatgames reward <player> — hand the current round's reward to a player manually
- /chatgames hologram create|remove top [period]
- /chatgames reload · errors · permissions · dependency
Every node is set in config.yml → permissions. "chatgamesplus.admin" is the parent for the admin commands; player commands are open by default. "chatgamesplus.play" (default true) — remove it to stop someone winning.
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ PLACEHOLDERS ❖
❖ QUICK START ❖
❖ PLACEHOLDERS ❖
Spoiler: Click to expand
Code (YAML):
%chatgamesplus_wins% total wins
%chatgamesplus_wins_<period>% day | week | month
%chatgamesplus_streak% current win streak
%chatgamesplus_streak_best%
%chatgamesplus_rank_<period>% your leaderboard rank
%chatgamesplus_active% true if a round is running
%chatgamesplus_active_type% the running game type
%chatgamesplus_time_left% seconds left in the round
%chatgamesplus_next_game% time until the next round
%chatgamesplus_last_winner% name of the last winner
%chatgamesplus_top_name_<period>_<n>%
%chatgamesplus_top_wins_<period>_<n>%
<period> = daily | weekly | monthly | alltime
%chatgamesplus_wins_<period>% day | week | month
%chatgamesplus_streak% current win streak
%chatgamesplus_streak_best%
%chatgamesplus_rank_<period>% your leaderboard rank
%chatgamesplus_active% true if a round is running
%chatgamesplus_active_type% the running game type
%chatgamesplus_time_left% seconds left in the round
%chatgamesplus_next_game% time until the next round
%chatgamesplus_last_winner% name of the last winner
%chatgamesplus_top_name_<period>_<n>%
%chatgamesplus_top_wins_<period>_<n>%
<period> = daily | weekly | monthly | alltime
❖ QUICK START ❖
- Drop ChatGamesPlus into /plugins and restart.
- It just works — rounds start automatically once min-players are online.
- Edit the rewards and messages in games.yml and lang/, then /chatgames reload.
❖ CONFIG FILES ❖
Spoiler: config.yml
Code (YAML):
language
: en
# also selects the pools/<language>/ folder
prefix : "&#FF9E3D&lChatGames&f&l+ &8» &7"
timezone : ""
daily-reset : "00:00" # when the daily / weekly / monthly win counters roll over
time-format : { show-seconds : true }
number-format : DEFAULT
auto-update-files : true
metrics : true
update-check : true
# --- game loop ---
interval-seconds : 300 # seconds between games (only when none is running)
min-players : 2 # a game only auto-starts with at least this many online
no-repeat-type : true
winner-cooldown-seconds : 0 # 0 = off
no-win-twice-in-a-row : false
disabled-worlds : [ ]
hide-correct-answer : false # true -> cancel the winning chat message so the answer stays hidden
consolation-window-seconds : 10 # places 2-3 within this many seconds get "consolation" (0 = off)
# --- branding footer under the game broadcast: OFF | START | WIN ---
brand-footer-mode : WIN
brand-footer : "&8» &7part of the &#FF9E3DPlus Series &8- &7chat games, crates, battle pass & more"
storage:
type : YAML # YAML | SQLITE | MYSQL
autosave-minutes : 5
table-prefix : "chatgamesplus_"
mysql : { host : localhost, port : 3306, database : chatgamesplus, username : root, password : "", use-ssl : false }
network:
mode : LOCAL # LOCAL | PLUGIN_MESSAGE | REDIS
server-name : ""
broadcast-all-servers : false
redis : { host : localhost, port : 6379, password : "", channel : chatgamesplus }
holograms:
enabled : true
update-interval-ticks : 200
animated : false
frame-interval-ticks : 20
top:
header :
- "<gradient:#FFC97A:#C96A15>▰▰▰ TOP WINNERS ▰▰▰</gradient>"
- "A3210&m "
line : "&#FF9E3D&l#<rank> &f<player> &8» &#FFC97A<value>"
leaderboard : { size : 10 }
recent-winners : { size : 10 }
discord:
enabled : false
announce-start : false
announce-win : true
start-message : "A new **<game>** chat game just started: <task>"
win-message : "**<player>** won the **<game>** game! (answer: `<answer>`)"
webhook-url : "" # blank -> DiscordSRV
username : ChatGamesPlus
avatar-url : ""
embed : true
embed-color : "FF9E3D"
discordsrv-channel : global
permissions:
admin : chatgamesplus.admin
top : ""
stats : ""
start : chatgamesplus.admin
stop : chatgamesplus.admin
next : chatgamesplus.admin
reward : chatgamesplus.admin
hologram : chatgamesplus.admin
reload : chatgamesplus.admin
errors : chatgamesplus.admin
permissions : chatgamesplus.admin
dependency : chatgamesplus.admin
# chatgamesplus.play (default true) is a plugin.yml node - a player
# without it cannot win a game.
prefix : "&#FF9E3D&lChatGames&f&l+ &8» &7"
timezone : ""
daily-reset : "00:00" # when the daily / weekly / monthly win counters roll over
time-format : { show-seconds : true }
number-format : DEFAULT
auto-update-files : true
metrics : true
update-check : true
# --- game loop ---
interval-seconds : 300 # seconds between games (only when none is running)
min-players : 2 # a game only auto-starts with at least this many online
no-repeat-type : true
winner-cooldown-seconds : 0 # 0 = off
no-win-twice-in-a-row : false
disabled-worlds : [ ]
hide-correct-answer : false # true -> cancel the winning chat message so the answer stays hidden
consolation-window-seconds : 10 # places 2-3 within this many seconds get "consolation" (0 = off)
# --- branding footer under the game broadcast: OFF | START | WIN ---
brand-footer-mode : WIN
brand-footer : "&8» &7part of the &#FF9E3DPlus Series &8- &7chat games, crates, battle pass & more"
storage:
type : YAML # YAML | SQLITE | MYSQL
autosave-minutes : 5
table-prefix : "chatgamesplus_"
mysql : { host : localhost, port : 3306, database : chatgamesplus, username : root, password : "", use-ssl : false }
network:
mode : LOCAL # LOCAL | PLUGIN_MESSAGE | REDIS
server-name : ""
broadcast-all-servers : false
redis : { host : localhost, port : 6379, password : "", channel : chatgamesplus }
holograms:
enabled : true
update-interval-ticks : 200
animated : false
frame-interval-ticks : 20
top:
header :
- "<gradient:#FFC97A:#C96A15>▰▰▰ TOP WINNERS ▰▰▰</gradient>"
- "A3210&m "
line : "&#FF9E3D&l#<rank> &f<player> &8» &#FFC97A<value>"
leaderboard : { size : 10 }
recent-winners : { size : 10 }
discord:
enabled : false
announce-start : false
announce-win : true
start-message : "A new **<game>** chat game just started: <task>"
win-message : "**<player>** won the **<game>** game! (answer: `<answer>`)"
webhook-url : "" # blank -> DiscordSRV
username : ChatGamesPlus
avatar-url : ""
embed : true
embed-color : "FF9E3D"
discordsrv-channel : global
permissions:
admin : chatgamesplus.admin
top : ""
stats : ""
start : chatgamesplus.admin
stop : chatgamesplus.admin
next : chatgamesplus.admin
reward : chatgamesplus.admin
hologram : chatgamesplus.admin
reload : chatgamesplus.admin
errors : chatgamesplus.admin
permissions : chatgamesplus.admin
dependency : chatgamesplus.admin
# chatgamesplus.play (default true) is a plugin.yml node - a player
# without it cannot win a game.
Spoiler: games.yml
Code (YAML):
# Per type: enabled / weight / time-limit-seconds / hint-seconds /
# case-sensitive (type) / math-range (math) / reward / consolation
# Reward bundle keys (all optional): name / money / xp / items / commands /
# messages / broadcast / permissions / title / sound / crate-keys / vouchers /
# battlepass-xp / rewardsplus placeholders: <player> <answer> <game> <time> <streak>
games :
unscramble:
enabled : true
weight : 20
time-limit-seconds : 45
hint-seconds : 15
reward:
name : "Unscramble win"
money : 50
xp : 10
messages : [ "<prefix>&aYou unscrambled it in <time>&a!" ]
sound : { enabled : true, sound : ENTITY_PLAYER_LEVELUP, volume : 0.7, pitch : 1.4 }
type:
enabled : true
weight : 18
time-limit-seconds : 40
hint-seconds : 0
case-sensitive : true
reward : { name : "Type win", money : 40, xp : 8, messages : [ "<prefix>&aFast fingers! +<streak> win streak." ] }
math:
enabled : true
weight : 18
time-limit-seconds : 40
hint-seconds : 20
math-range : { min : 1, max : 50, allow-multiply : true }
reward : { name : "Math win", money : 50, xp : 10 }
trivia:
enabled : true
weight : 16
time-limit-seconds : 50
hint-seconds : 15
reward:
name : "Trivia win"
money : 75
xp : 15
# crate-keys: [ "weekly:1" ] # needs CratesPlus
consolation : { name : "Trivia consolation", money : 20, xp : 4 }
first:
enabled : true
weight : 12
time-limit-seconds : 20
hint-seconds : 0
reward : { name : "First win", money : 35, xp : 6 }
reveal:
enabled : true
weight : 10
time-limit-seconds : 60
hint-seconds : 8
reward:
name : "Reveal win"
money : 80
xp : 16
# vouchers: [ "starter:1" ] # needs VoucherPlus
decode:
enabled : true
weight : 8
time-limit-seconds : 70
hint-seconds : 20
reward:
name : "Decode win"
money : 100
xp : 20
# crate-keys: [ "weekly:1" ] # needs CratesPlus
# battlepass-xp: [ "season1:100" ] # needs BattlePassPlus
# rewardsplus: [ "chatgame-bonus" ] # needs RewardsPlus
consolation : { name : "Decode consolation", money : 30, xp : 6 }
# case-sensitive (type) / math-range (math) / reward / consolation
# Reward bundle keys (all optional): name / money / xp / items / commands /
# messages / broadcast / permissions / title / sound / crate-keys / vouchers /
# battlepass-xp / rewardsplus placeholders: <player> <answer> <game> <time> <streak>
games :
unscramble:
enabled : true
weight : 20
time-limit-seconds : 45
hint-seconds : 15
reward:
name : "Unscramble win"
money : 50
xp : 10
messages : [ "<prefix>&aYou unscrambled it in <time>&a!" ]
sound : { enabled : true, sound : ENTITY_PLAYER_LEVELUP, volume : 0.7, pitch : 1.4 }
type:
enabled : true
weight : 18
time-limit-seconds : 40
hint-seconds : 0
case-sensitive : true
reward : { name : "Type win", money : 40, xp : 8, messages : [ "<prefix>&aFast fingers! +<streak> win streak." ] }
math:
enabled : true
weight : 18
time-limit-seconds : 40
hint-seconds : 20
math-range : { min : 1, max : 50, allow-multiply : true }
reward : { name : "Math win", money : 50, xp : 10 }
trivia:
enabled : true
weight : 16
time-limit-seconds : 50
hint-seconds : 15
reward:
name : "Trivia win"
money : 75
xp : 15
# crate-keys: [ "weekly:1" ] # needs CratesPlus
consolation : { name : "Trivia consolation", money : 20, xp : 4 }
first:
enabled : true
weight : 12
time-limit-seconds : 20
hint-seconds : 0
reward : { name : "First win", money : 35, xp : 6 }
reveal:
enabled : true
weight : 10
time-limit-seconds : 60
hint-seconds : 8
reward:
name : "Reveal win"
money : 80
xp : 16
# vouchers: [ "starter:1" ] # needs VoucherPlus
decode:
enabled : true
weight : 8
time-limit-seconds : 70
hint-seconds : 20
reward:
name : "Decode win"
money : 100
xp : 20
# crate-keys: [ "weekly:1" ] # needs CratesPlus
# battlepass-xp: [ "season1:100" ] # needs BattlePassPlus
# rewardsplus: [ "chatgame-bonus" ] # needs RewardsPlus
consolation : { name : "Decode consolation", money : 30, xp : 6 }
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
❖ PART OF THE PLUS SERIES ❖
❖ PART OF THE PLUS SERIES ❖
- ▸ CratesPlus — physical & virtual crates, eight opening animations
- ▸ VoucherPlus — fully customizable right-click vouchers
- ▸ BattlePassPlus — multi-pass, seasons, challenges, prestige
- ▸ VotePlus — network-ready vote handling, streaks, vote party
- ▸ RewardsPlus — playtime rewards, a daily login calendar, referrals
▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ❖ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰
Free forever. Drop it in and go.
Questions or ideas? The Discord is open.
❖ DISCORD ❖ ❖ WIKI ❖
Free to use on any server. Please don't reupload it — link this page instead.
Free forever. Drop it in and go.
Questions or ideas? The Discord is open.
❖ DISCORD ❖ ❖ WIKI ❖
Free to use on any server. Please don't reupload it — link this page instead.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.16, 1.17, 1.18
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
[1.16-1.26.x] ChatGamesPlus ❖ 7 Game Types · Configurable Rewards · Leaderboards [FREE] is a free Minecraft Java mod. Compatible with Minecraft 1.16, 1.17, 1.18, 1.19 and newer. Downloaded 36 times (via Spigot). Download it and open it directly in the game.