LobbyGames ✅ High Quality Minigames ⭕ 100% Customizable ⚡ Increase Player Retention icon

LobbyGames ✅ High Quality Minigames ⭕ 100% Customizable ⚡ Increase Player Retention -----

Create Pool Tables, Soccer / Football, Connect 4, Snake, 2048, Minesweeper, Tic Tac Toe, and more!



[​IMG]

Engage Your Players and Increase Retention

Adding new minigame arenas takes only seconds

Essential for Quality of Life

Featuring stunning visuals and animations without clunky GUIs or maps

[​IMG]
Soccer/Football
Punch the ball into the net!

[​IMG]
8-Ball Pool
Pocket all of the balls, then the 8-ball!


[​IMG]
Snake
Eat apples without crashing into a wall or yourself!

[​IMG]
Minesweeper

Use the numbers to find all the land mines!


[​IMG]
2048
Slide the tiles to combine them without running out of space!

[​IMG]
Connect 4

Connect 4 of your color in any direction!


[​IMG]
Clicker
Click as many green blocks as you can!


[​IMG]
Spleef
Be the last one standing in the arena!


You can download the schematics for these maps in the discord server!
Tic Tac Toe and Sudoku Not Shown


✨ Support ✨
Whether you have installed the plugin or not, you are welcome to join our discord server to get your questions answered:

https://discord.gg/yx9hUByTzq

Default Config File:
Code (Text):

no-permission: "&cYou don't have permission!"
interworld-teleportation-enabled: true #allow a player in world A to join a lobby game in world B (disable if you have multiple lobby worlds on the same server)

leaderboard-size: 5
leaderboard-title: "&2&l%game% Leaderboard:"
leaderboard-format: "&b%ranking%: &a%player% &6%score%"
leaderboard-entry-expiration: -1 #number of days a leaderboard entry will last, -1 for no expiry
merge-leaderboard-scores: true #if false, a new entry will be made for each time a player scores on the leaderboard
use-display-names: true #if true, shows scoreboard rank prefixes on the leaderboard
disable-holograms: false #if you plan on using PlaceholderAPI with a different holograms plugin

cooldown-msg: "&cYou must wait %seconds% second(s) to do this!"
cooldown-seconds: 3 #the number of seconds a player must wait until they can rejoin a game
afk-kick-seconds: 90 #simple afk check if player does not move for too long. Set to -1 to disable
return-to-game-spawn: true #if false, player is teleported to where they were standing before starting the game
countdown-format: "&eThe game will start in &c%seconds% &eseconds!"
waiting-players: "&cWaiting for more players to join..."
quit-item-title: "&c&lQuit"
quit-item-material: "ARROW"

error-already-in-game: "&4Error: &cYou are already in a game, use /lg quit"
error-must-be-in-game: "&4Error: &cYou must be in a game to do this!"
error-no-arenas-available: "&4Error: &cThere are no open arenas for this game!"
error-arena-in-use: "&4Error: &cThis arena is already in use!"
error-arena-not-exist: "&4Error: &cThis arena does not exist!"
error-wrong-world: "&4Error: &cYou cannot access this arena from this world!"
not-enough-balance: "&cThis game costs $%cost% to play!"
restart-confirmation: "&cAre you sure you want to restart?"
status-translate: "Open, Waiting, In Use" #Default (keep the commas): "Open, Waiting, In Use"
afk-kick-msg: "&cYou were kicked from %game% for being afk!"
yes-text: "&a&lYes"
no-text: "&c&lNo"
your-turn-msg: "&aYour Turn"
opponent-turn-msg: "&7Opponent's Turn"
not-your-turn-msg: ""

mysql: #Optionally set environment variables LOBBYGAMES_MYSQL_USERNAME, LOBBYGAMES_MYSQL_PASSWORD, LOBBYGAMES_MYSQL_HOST, LOBBYGAMES_MYSQL_NAME
  enabled: false
  username: "username"
  password: "password"
  host: "localhost:3306"
  name: "database"

#Blocked commands apply to players who are in a Lobby Game and don't have the lobbygames.command permission
command-blocked-msg: "&cYou cannot use this command while playing this game!"
command-block-mode: 1 #0: Command Blocking Disabled,  1: Only listed commands are blocked,  2: All commands blocked unless on the list
command-block-list:
 - "tpa"
 - "tpahere"
 - "tpaccept"

2048:
  game-alias: "" #translatable game name
  action-bar: "&aScore: &f%score%"
  start-msg: |
    &3&m----------------------------------------
    &b&l2048: &bUse the W, A, S, and D keys to merge tiles and get to the 2048 tile without filling the board!
    &3&m----------------------------------------
  end-msg: |
    &3&m----------------------------------------
    &b&lRan out of moves! &bScore:&f %score% Points
    &3&m----------------------------------------
  reset-on-end: false

clicker:
  game-alias: "" #translatable game name
  blocks-per-game: 40 #every game will create x blocks, each block is randomly green or red. Default: 40
  seconds-in-air: 2.5 #adjust the speed of the block. Default: 2.5s
  start-msg: ""
  green-blocks: "&aClick!"
  red-blocks: "&cDon't Click!"
  score-format: "&a&lScore: &f&l%score% &6(%remaining% Remaining)"
  win-msg: |
    &2&m----------------------------------------
    &a&lScore: &f%score%
    &2&m----------------------------------------
 
connect4:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-command-on-end for %winner%
  particles-enabled: true
  translatable-words: "Red, Yellow"
  side-msg: "&bYou are playing as %side%!"
  start-msg: |
    &3&m----------------------------------------
    &b&lConnect 4: &bAdd tiles to the top of the board and try to connect 4 of your color in any row, column, or diagonal!
    &3&m----------------------------------------
  draw-msg: |
    &2&m----------------------------------------
    &a&lThis game is a draw!
    &2&m----------------------------------------
  win-msg: |
    &6&m----------------------------------------
    &e&l%winner%&e won the Connect 4 game!
    &6&m----------------------------------------
  reset-on-end: false

minesweeper:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-xcommand-on-end for %winner%
  player-can-fly: true #Recommended, flying lets player see more clearly
  flag-armor-stands-enabled: true #Landmine flag decoration
  landmine-distribution: 0.1666 #Number of landmines per cell. Recommended between 0.14 (easy) and 0.2 (hard)
  wand-title: "&c&lSet Flag"
  action-bar: "&4&l%remaining_mines%&c mines remaining! &c&l%time%"
  start-msg: |
    &3&m----------------------------------------
    &b&lMinesweeper: &bThere are %starting_mines% landmines randomly spread through the grid! Right-click to open a cell, and use the flag tool to mark a landmine. The numbers represent how many mines a cell is touching!
    &3&m----------------------------------------
  end-msg: |
    &3&m----------------------------------------
    &c&lBOOM! You clicked a landmine!
    &bScore: &f%minutes% Minutes, %seconds% Seconds (%remaining_mines% Mines Remaining)
    &3&m----------------------------------------
  win-msg: |
    &2&m----------------------------------------
    &a&lYou win!
    &aScore: &f%minutes% minutes, %seconds% seconds
    &2&m----------------------------------------
  reset-on-end: false

pool:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-command-on-end for %winner%
  practice-mode-enabled: true
  proximity-joining: false #Players automatically join pool if they walk near the table
  same-color: false #if enabled, makes all balls of a given side the same color (Change "Wool" and "Terracotta" to the colors in the translatable-words entry)
  solids-color: 4 #if same-color is enabled. 1:orange, 2:magenta, 3:light-blue, 4:yellow, 5:lime, 6:pink, 7:gray, 8:light-gray, 9:cyan, 10:purple, 11:blue, 12:brown, 13: green, 14:red
  stripes-color: 14 #if same-color is enabled
  cue-blaze-rod: false #alternate cue item
  particles-enabled: true
  translatable-words: "Ball, Cue Ball, Pocketed, Wool, Terracotta" #Default (Keep the commas): "Ball, Cue Ball, Pocketed, Wool, Terracotta"
  translatable-power-words: "&aLow Power, &eMedium Power, &6High Power, &cHighest Power"
  pocketed-8ball: "&cThe 8-ball was pocketed!"
  pocketed-all-balls: "&aAll balls were pocketed!"
  redo-break: "&bThis break was not strong enough, try again!"
  side-designation: "&bYou need to pocket the &b&l%side%&b balls!"
  cueball-title: "&f&lCue Ball &7(Click anywhere on table)"
  cueball-description: "&7Hit this with the cue"
  cueball-inhand: "&b%player% has the cue ball in hand!"
  8ball-description: "&7Pocket this &conly&7 after pocketing\n&7all of your other designated balls!"
  cue-item-title: "&3Cue &7(Click the white cue ball)"
  open-gui-item-title: "&bOpen Pool Menu"
  gui-title: "Pool Ball Status"
  practice-mode-msg: "&aPractice while you wait for an opponent!"
  exit-practice-mode: "&cExit Practice Mode"
  pocketed-balls: |
    &3%name% pocketed %count% ball(s):"
    &b  Wool: &f%solids_pocketed%"
    &b  Terracotta: &f%stripes_pocketed%"
  start-msg: |
    &3&m----------------------------------------
    &b&lPool: &bHit the (white) cue ball to pocket other balls! Don't hit the (black) 8-ball until all of your designated balls have been pocketed.
    &3&m----------------------------------------
  win-msg: |
    &6&m----------------------------------------
    &e&l%winner%&e won the 8-Ball game!
    &6&m----------------------------------------

snake:
  game-alias: "" #translatable game name
  action-bar: "&b%score% Apple(s)"
  start-msg: |
    &3&m----------------------------------------
    &b&lSnake: &bEat apples to grow larger, but don't run into the walls or yourself! Use the W, A, S, and D keys to move!
    &3&m----------------------------------------
  end-msg: |
    &3&m----------------------------------------
    &c&l%reason%
    &bScore:&f %score% Apple(s)
    &3&m----------------------------------------
  hit-wall-msg: '&c&lYou hit a wall!'
  ran-into-self-msg: '&c&lYou ran into yourself!'

soccer:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-command-on-end for %winner%
  proximity-joining: true #Players automatically join soccer if they walk into the arena
  point-win-threshold: 5 #the number of goals a team needs to win
  game-max-time: -1 #Units of seconds. If this is set, the game will end on the timer INSTEAD of when the point-win-threshold is reached.
  player-join-threshold: 2 #the minimum number of players that the game will start at
  countdown-seconds: 20 #after the player threshold is met, how many seconds until the game starts
  boost-jump-enabled: true
  boost-jump-cooldown: 6 #seconds
  spectators-enabled: true
  ball-size: 3 #Minimum 2, maximum 12, default 3
  ball-speed: 2 #Minimum 1, maximum 6, default 2
  action-bar: "%score%" #add %timer% placeholder if you are using game-max-time entry
  boost-jump-title: "&a&lBoost Jump &7(Right-click)"
  ball-respawn-delay: 4 #number of seconds after a goal is scored for the ball to drop
  ball-respawn-msg: "&eThe ball will respawn in &c%seconds% &esecond(s)!"
  start-msg: |
    &3&m----------------------------------------
    &b&lSoccer: &bPunch the ball into your team's net to win points! Get 10 points to win!
    &3&m----------------------------------------
    &aThe game has started!"
  team1-join-title: "&bJoin blue team &7(Right-click)"
  team1-wool-title: "&bYou are on the &b&lBLUE&b team!"
  team1-score-msg: "&9&lBLUE team scored a goal! &7[ %score% &7]"
  team1-win-msg: |
    &3&m----------------------------------------
    &bBLUE team won the game!
    &3&m----------------------------------------
  team2-join-title: "&cJoin red team &7(Right-click)"
  team2-wool-title: "&cYou are on the &c&lRED&c team!"
  team2-score-msg: "&c&lRED team scored a goal! &7[ %score% &7]"
  team2-win-msg: |
    &4&m----------------------------------------
    &cRED team won the game!
    &4&m----------------------------------------
  score-format: "&9&l%team1_score%&7&l - &c&l%team2_score%"
 
spleef:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-command-on-end for %winner%
  countdown-seconds: 30
  melt-delay: 50 #how many seconds the game should wait until blocks start melting under players' feet (enter -1 for no melting)
  spectators-enabled: true
  start-msg: |
    &3&m----------------------------------------
    &b&lSpleef: &bUse the shovel to break the snow blocks and don't fall below the surface! The last one standing wins!
    &3&m----------------------------------------
  player-eliminated-msg: "&e%eliminated_player%&c was eliminated! &6%remaining% players remaining!"
  win-msg: |
    &6&m----------------------------------------
    &e&l%winner%&e won the Spleef game!
    &6&m----------------------------------------
  blocks-melting-msg: "&cBlocks are now melting!"
  blocks-melting-seconds-msg: "&eBlocks melting in &c%seconds%&e seconds!"
 
sudoku:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-command-on-end for %winner%
  player-can-fly: true #Recommended, flying lets the player see more clearly
  particles-enabled: true
  prefilled-count: 45 #set difficulty
  reset-on-end: false
  action-bar: "&aTime: &f%time%"
  invalid-solution: "&cInvalid Solution!" #if all spaces are filled but not a correct sudoku
  start-msg: |
    &3&m----------------------------------------
    &b&lSudoku: &bSet the numbers in the puzzle so every row, column, and 3x3 box has one of each digit from 1 to 9!
    &3&m----------------------------------------
  win-msg: |
    &2&m----------------------------------------
    &a&lYou finished the sudoku! &aTime: %time%
    &2&m----------------------------------------
 
tictactoe:
  game-alias: "" #translatable game name
  wager-cost: 0 #requires Vault, make sure to set an 'eco give' command in console-command-on-end for %winner%
  join-side-title: "&bSwitch to %side%&b's"
  now-playing-as: "&bYou will play as %side%&b's!"
  side-msg: "&bYou are playing as %side%&b's!"
  start-msg: |
    &3&m----------------------------------------
    &b&lTic Tac Toe: &bGet three X's or three O's in a row to win!
    &3&m----------------------------------------
  draw-msg: |
    &2&m----------------------------------------
    &a&lThis game is a draw!
    &2&m----------------------------------------
  win-msg: |
    &6&m----------------------------------------
    &e&l%winner%&e won the Tic Tac Toe game!
    &6&m----------------------------------------

join-sign-text: "JOIN"
#----------------------------------------------------------------------------------------------------------------------#
#
#  [JOIN] signs:
#  To create a clickable sign to join an arena, use the following format:
#    |                   |
#    |       [JOIN]      |
#    | <GameType>:<Data> |
#    |                   |
#  For the <Data> section, the following can be used:
#    Case A: Join the first available arena (Default, if <Data> is left blank)
#    Case B: Join the nearest arena relative to the sign location
#    [Number]: Join a specific arena id (Ex: "Tic Tac Toe:4")
#
#  Example: (Joins the nearest soccer arena)
#    |                   |
#    |       [JOIN]      |
#    |      Soccer:B     |
#    |                   |
#
#----------------------------------------------------------------------------------------------------------------------#
 
/lg join <game> [arena id]
/snake, /soccer, /2048, etc.
/lg restart
/lg quit

With permission lobbygames.command:
/lg list [game]
/lg tp <game> <arena id>

With permission lobbygames.kickplayer:
/lg kick <player>

With permission lobbygames.forcejoin
/lgjoinplayer <player> <game> [arena id]

With permission lobbygames.admin:
/lg reload
/lg leaderboard <create|clear|delete> <game>
/lg create <game>
/lg delete <game> <arena id>
LobbyGames supports PlaceholderAPI! No command is necessary to install the placeholders.

%lobbygames_game%
%lobbygames_score%
%lobbygames_time_played%
%lobbygames_opponent_name%
%lobbygames_arena_id%
%lobbygames_<game>_highscore%
%lobbygames_<game>_play_time%
%lobbygames_<game>_games_played%
%lobbygames_<game>_games_won%
%lobbygames_<game>_<arenaId>_score%
%lobbygames_<game>_<arenaId>_status%
%lobbygames_<game>_leaderboard%
%lobbygames_<game>_leaderboard_line<number>%
%lobbygames_<game>_leaderboard_line<number>_player%
%lobbygames_<game>_leaderboard_line<number>_score%
%lobbygames_<game>_leaderboard_line<number>_rawscore%
(For leaderboard placeholders, there must be at least 1 global leaderboard set up)
Code (Text):
#----------------------------------------------------------------------------------------------------------------------#
#
#  This is the LobbyGames rewards file. Use this to configure how games will handle running
#  commands after a player finishes a game.
#
#----------------------------------------------------------------------------------------------------------------------#

snake:
  any-reward-name-here:
    enabled: false
    min-score: 40
    console-commands:
      - "broadcast &2&l%player%&a got a score of %score% in snake!"
      - "eco give %player% 10000"
  first-time-reward-example:
    enabled: false
    one-time: true #A player can only ever get this reward once with this option
    msg: "&bYou completed your first snake game!"
    console-commands:
      - "eco give %player% 100"

pool:
  simple-multiplayer-example:
    enabled: false
    for-winning-player: true #only give this reward for the player who won (default is false)
    console-commands:
      - "eco give %player% 100"

soccer:
  teleport-to-spawn-example:
    enabled: false
    per-player: true #'true' runs this command on every player in the game (default)
    run-on-quit: true #if the reward/command should be given every time the player leaves the game, even if it has not started (ex. for teleporting player back to spawn)
    console-commands:
      - "minecraft:tp %player% 100 100 100 0 0"
  no-per-player-example:
    enabled: false
    per-player: false #run once when the game ends instead of for every player. Can not use %player% when this is set to false
    console-commands:
      - "broadcast &b%winners% won against %losers% in Soccer!"

2048:
clicker:
connect4:
minesweeper:
spleef:
sudoku:
tictactoe:

Also check out Dexterity, a plugin to create insanely detailed builds and custom items/furniture in-game!

You may not redistribute the software.
If you have any questions, concerns, bug reports, suggestions, etc., please join the discord server. Your feedback is appreciated!​
Resource Information
Author:
----------
Total Downloads: 450
First Release: May 19, 2023
Last Update: Aug 21, 2025
Category: ---------------
All-Time Rating:
28 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings