Ever wanted to host events on your server to engage your players?
Well here’s your chance to run a quiz!
True or False answers only..Get quizzing
Clickable messages
Optional arena support
Lots of customisation
Arena only chat
Arena holograms
Schedule games
Clickable join signs
Multi version support
PlaceholderAPI placeholders
Inventory backups (Can be disabled)
Fully customisable messages (Hex colour support)
Reward system (Give permissions, money, items, experience or even run commands)
Spectator system (Can be disabled)
Message me on Discord for support, feature requests or any other assistance you may need.
You can also send me a DM on spigot.
PLAYER COMMANDS
Permission: tfquiz.player (Default: all)
/game
Permission: tfquiz.player.* (Default: all)
Permission: tfquiz.player.list (Default: all)
/game list
Lists all the games available, along with its status and player count
Permission: tfquiz.player.join (Default: all)
/game join <ID>
Allows player to join the game
Permission: tfquiz.player.join (Default: all)
/game leave
Allows player to leave the game
ADMIN COMMANDS
Permission: tfquiz.admin (Default: OP)
/tf
Permission: tfquiz.admin.* (Default: OP)
/tf help
Access to the admin help command
/tf list
Lists all the games
/tf setspawn
Set the spawn point for logging in (can be disabled in config)
/tf game <gameID> setspawn
Sets the arena spawn point for the specified game
/tf game <gameID> open|close
Opens or closes the specified game
You cannot use this on games that have schedulers set up
/tf game <gameID> start
Starts the countdown, and the game will begin once the countdown gets to 0. This bypasses the minimum required players, but there must be atleast 1 player in the game.
You cannot use this on games that have schedulers set up
/tf game <gameID> end
This ends the game at the end of that round. It will announce all those who remain in play as winners.
Ending a game when its in the countdown stage, just stops the countdown, all players remain.
You cannot use this on games that have schedulers set up
/tf game <gameID> end -without
Use the flag “-without” to immediately end the game without any winners.
You cannot use this on games that have schedulers set up
Edits the text on the game sign you are looking at
/tf sign edit <signID> <lineNo> "Text..."
Edits the text on the game sign with that specified sign ID
Code (Text):
# Sends a message in console if there is an update available
update_notification: true
# These only apply if a game has an arena
arena_flags:
allow_fall_damage: false # Should players take fall damage
allow_pvp_damage: false # Can players deal damage to other players
allow_hunger: false # Will a player lose hunger (they also cannot be satiated)
allow_block_break: false # Can players break blocks
allow_block_place: false # Can players place blocks
allow_teleport: false # Should players be able to teleport
# Whether to save a backup of player inventories to a file when they are in an arena or not
save_player_inventories: false
# Whether to clear players inventories when they join an arena (it will be restored when they leave the arena)
empty_inv_on_arena_join: true
# Prevent players who are not in Survival mode to join games
enforce_survival_mode: true
# When a player joins the server, they are teleported here. NOTE: If false and your server crashes, players who were in arenas, will physically re-join inside the arena map/location
enforce_lobby_spawn: false
# Where you want players to be teleported to after they leave an arena, or where they spawn on server join (if the above setting is true)
lobby_spawn:
world: world
x: 0
y: 64
z: 0
yaw: -180
pitch: 0
# List commands that you want to be disallowed whilst the player is in an arena
disallowed_commands:
- '/example1'
#signs:
# 1: # EXAMPLE
# game_ID: 1
# material: OAK_WALL_SIGN
# world: world
# x: 2
# y: 65
# z: 2
# facing: south
# format:
# - '%game_ID%'
# - '%game_state%'
# - ' '
# - '%game_players%/%game_maxplayers%'
games:
# # EXAMPLE 1 (without an arena)
1:
# Options: Recruiting or Closed
state_on_startup: RECRUITING
minimum_players: 5
maximum_players: 20
countdown_seconds: 10
# Maximum amount of rounds to reach before ending the game. It will end earlier if there is 1 player remaining
maximum_rounds: 10
# Whether to announce the winner of a game to the whole server
broadcast_winners: true
reward:
type: none
# reward: # EXAMPLE
# type: 'command' # Options: permission, currency, experience, item, command, none
# reward: 'xp give %player% 100'
message: You gained some experience for winning
arena: false
# (in seconds) Only works when the arena option is false.
# How long to wait before the game is opened
# schedule_delay: 300
# (in seconds) How long the game remains open and in the recruiting state, before it closes again (will not close if the game is active).
# Make sure this is longer than your countdown_seconds option. Defaults to 60 if this isn’t set.
# schedule_resets: 120
# # EXAMPLE 2 (with an arena)
# 2:
# # Options: Recruiting or Closed
# state_on_startup: RECRUITING
# minimum_players: 5
# maximum_players: 20
# countdown_seconds: 60
# maximum_end_point: 20
# # Whether to announce the winner of a game to the whole server
# broadcast_winners: true
# reward:
# type: 'item'
# reward: oak_planks, 2
# message: 'You won 2 oak planks'
# arena: true
# arena_options:
# # Options: ‘both’, ‘chat’ or ‘hologram’
# desc_option: hologram
# # Enables the spectator system
# spectators: true
# # The spawn point for the hologram (Only works if desc_option is not ‘chat’
# holo_location:
# world: world
# x: -50
# y: 64
# z: 64
# # The spawn point where players get teleported to when they join the game/arena
# spawn_point:
# world: world
# x: -50
# y: 64
# z: 64
# yaw: -180
# pitch: 0
Code (Text):
# # # # ---> GENERAL MESSAGES <--- # # # #
console_usage_error: "&cYou must be a player to use this command"
no_permission: "&cYou do not have permission to use this command"
player_not_found: "&cPlayer not found"
# # # # ---> ADMIN COMMAND MESSAGES <--- # # # #
admin_command_usage:
- "#01d54a--------- Admin Help ---------"
- "#01d54a/tf reload &7- Reloads the plugin"
- "#01d54a/tf list &7- Lists all loaded games"
- "#01d54a/tf setspawn &7- Sets the lobby spawn"
- "#01d54a/tf game <gameID> setSpawn &7- Sets the spawn point of a specified game"
- "#01d54a/tf game <gameID> setHoloSpawn &7- Sets the hologram location of a specified game"
- "#01d54a/tf game <gameID> open|close &7- Manually opens or closes a game"
- "#01d54a/tf game <gameID> start &7- Starts the countdown of a game"
- "#01d54a/tf game <gameID> end "-without" &7- Ends a game. Use the flag "-without" to instantly end without winners."
- "#01d54a/tf game <gameID> addPlayer|removePlayer <player> &7- Adds|Removes a player from the game"
- "#01d54a/tf game <gameID> info &7- Displays information based on the games setup"
- "#01d54a/tf sign add <gameID> &7- Adds a new game sign for the specified game "
- "#01d54a/tf sign remove <signID> &7- Deletes a game sign"
- "#01d54a/tf sign edit <signID> <lineNo> text... &7- Edits the text on the game sign "
admin_reload_command_usage: "&cUsage: /tf reload"
admin_reload_success: "&aSuccessfully reloaded TFQuiz"
admin_reload_error: "&cError reloading the messages.yml"
admin_reload_inprogress: "&eReloading configuration..."
admin_list_command_usage: "&cUsage: /tf list"
admin_setspawn_command_usage: "&cUsage: /tf setspawn"
admin_lobby_spawn_set: "&aThe Lobby spawn has been set"
game_admin_command_usage:
- "#01d54a--------- Game Help ---------"
- "#01d54a/tf game <gameID> setSpawn &7- Sets the spawn point of a specified game"
- "#01d54a/tf game <gameID> setHoloSpawn &7- Sets the hologram location of a specified game"
- "#01d54a/tf game <gameID> open|close &7- Manually opens or closes a game"
- "#01d54a/tf game <gameID> start &7- Starts the countdown of a game"
- "#01d54a/tf game <gameID> end "-without" &7- Ends a game. Use the flag [-without] to instantly end without winners."
- "#01d54a/tf game <gameID> addPlayer|removePlayer <player> &7- Adds|Removes a player from the game"
- "#01d54a/tf game <gameID> info &7- Displays information based on the games setup"
game_force_started: "&aGame &e%game_ID%'s &acountdown has begun!"
game_force_start_error: "&cError trying to start this game. It is already in play"
game_start_scheduler_error: "&cYou cannot manually start a game that has an active scheduler"
game_start_closed_error: "&cError trying to start this game. It is closed. Use /tf game <ID> open"
game_start_empty_error: "&cError trying to start this game. There are no players in this game"
game_force_ended: "&aGame &e%game_ID% &ahas been ended"
game_force_ended_with_winners: "&aGame &e(%game_ID%) &awill end at the end of the round"
game_force_end_error: "&cError trying to end this game. It is not currently in play"
game_end_scheduler_error: "&cYou cannot manually end a game that has an active scheduler"
game_player_removed_target: "&cYou have been removed from game %game_ID%"
game_spawn_set: "&aThe spawn has been set for game %game_ID%"
game_holo_spawn_set: "&aYou set the hologram spawn point for game %game_ID%"
game_holo_spawn_removed: "&aYou have removed the hologram spawn point"
game_opened: "&aGame %game_ID% has been opened to players"
game_opened_error: "&cGame %game_ID% is already active"
game_opened_scheduler_error: "&cYou cannot manually open a game that has an active scheduler"
game_closed: "&cGame %game_ID% is no longer accepting players"
game_closed_error: "&cGame %game_ID% cannot be closed right now"
game_closed_scheduler_error: "&cYou cannot manually close a game that has an active scheduler"
game_player_added: "&e%player% &ahas been added to game %game_ID%"
game_player_added_error: "&cThis game is not currently accepting new players"
game_invalid_gamemode_error_other: "&cThe player must be in survival mode to join this game"
game_player_already_in_game: "&e%player% &cis already in a game"
game_player_removed: "&e%player% &ahas been removed from game %game_ID%"
game_player_not_in_game: "&e%player% &cis not in that game"
game_info:
- "#01d54a--------- &lGame %game_ID% Info #01d54a---------"
- "#01d54aCurrent Status: &7%game_players%/%game_maxplayers% - %game_status%"
- "#01d54aMin required players: &7%game_minplayers%"
- "#01d54aCountdown: &7%game_countdown%"
- "#01d54aMax rounds: &7%game_maxrounds%"
- "#01d54aBroadcasts winner: &7%game_doesbroadcast%"
- "#01d54aReward: &7%game_reward%"
- "#01d54a "
- "#01d54a&lArena Specifics"
- "#01d54aHas arena: &7%game_hasarena%"
- "#01d54aHas scheduler: &7%game_hasscheduler% %game_schedulerseconds%"
- "#01d54aDescription option: &7%game_desc%"
- "#01d54aSpectators: &7%game_doesspectators%"
- "#01d54aHologram: &7%game_holocoordinates%"
- "#01d54aSpawn point: &7%game_spawncoordinates%"
# # # # ---> GAME MESSAGES <--- # # # #
game_state_closed: "Not available"
game_state_recruiting: "Recruiting"
game_state_countdown: "Starting soon"
game_state_live: "Game is active"
game_list_header: "--------- Games List ---------"
game_list_format: "&e> %game_ID% &7(%game_players%/%game_maxplayers%) &e- %game_status%"
game_list_hover_text: "&eClick to join"
game_opened_scheduler: "&eA new quiz game has opened. Use &a/game join %game_ID% &e to join the fun"
game_open_scheduler_hover: "&eClick to join"
game_closed_scheduler: "&eThe quiz &7(%game_ID%) &eis now closed as not enough players joined."
game_join: "&aYou have joined game %game_ID% &7(%game_players%/%game_minplayers%)"
game_other_player_join: "&a%player% joined the game &7(%game_players%/%game_minplayers%)"
game_invalid_gameID: "&cYou must enter a valid gameID"
game_invalid_state_error: "&cThis game is not currently accepting players"
game_invalid_gamemode_error: "&cYou must be in survival mode to join this game "
forced_game_leave: "&aAn admin removed you from game %game_ID%"
game_full_error: "&cThis game is full"
already_in_game_error: "&cYou are already in a game"
game_leave: "&cYou have left the game"
game_other_player_left: "&c%player% left the game &7(%game_players%/%game_minplayers%)"
error_game_leave: "&cYou are not in a game "
game_countdown_start: "&aThe game is starting in %countdown%"
game_countdown_title_prefix: "&a%countdown%"
game_countdown_title_suffix: "&euntil the game starts"
game_started: "&a&lTrue/False Game started"
game_description: "Answer the questions correctly with either true or false."
game_hologram_desc:
- "&e-----------------------------------"
- "&eAnswer the questions correctly"
- "&eYou can only answer with True or False"
- "&e-----------------------------------"
game_round_countdown_message: "&aYou have %round_countdown% to answer the question"
game_round_countdown_title_prefix: "&a%round_countdown%"
game_round_countdown_title_suffix: "&euntil the round ends"
game_not_enough_players: "&cThere are not enough players. Countdown has stopped"
game_below_min_required: "&cThe game has ended as too many players have left"
game_disallowed_command: "&cYou cannot use that command when in a game with an arena"
game_prompt:
- "&e-----------------------------------"
- " "
- "&6&lTrue or False? %question%"
- " "
- "&e-----------------------------------"
game_true_outcome_message:
- "&e-----------------------------------"
- "&eThe correct answer was"
- " "
- "&aTRUE"
- "&e%correction_message%"
- " "
- "&e-----------------------------------"
game_false_outcome_message:
- "&e-----------------------------------"
- "&eThe correct answer was"
- " "
- "&cFALSE"
- "&e%correction_message%"
- " "
- "&e-----------------------------------"
game_eliminate_message:
- "&e-----------------------------------"
- " "
- "&cYou have been eliminated!"
- " "
- "&e-----------------------------------"
game_continued_message:
- "&e-----------------------------------"
- " "
- "&aWell done! You continue to the next round.."
- " "
- "&e-----------------------------------"
game_win_message:
- "&e-----------------------------------"
- " "
- "&aCongratulations! You have won!"
- " "
- "&e-----------------------------------"
game_multi_player_broadcast:
- "&e-----------------------------------"
- " "
- "&a%winners% have all won &7(Game: %game_ID%)&a!"
- " "
- "&e-----------------------------------"
game_single_player_broadcast:
- "&e-----------------------------------"
- " "
- "&a%winner% has won &7(Game: %game_ID%)&a!"
- " "
- "&e-----------------------------------"
game_no_winner_broadcast:
- "&e-----------------------------------"
- " "
- "&cThere were no winners as all players have been eliminated"
- "&cThe game &7(%game_ID%) &chas ended"
- " "
- "&e-----------------------------------"
game_item_win_error: "&cYou didn't have enough space in your inventory to receive your reward, so it was dropped on the floor."
game_command_usage: "&cUsage: /game <join | leave | list> <gameID>"
game_join_command_usage: "&cUsage: /game join <gameID>"
game_spectator_error: "&cThere was an error setting you as a spectator. You have been removed from the arena"
# # # # ---> SIGN MESSAGES <--- # # # #
sign_admin_command_usage:
- "#01d54a--------- Sign Help ---------"
- "#01d54a/tf sign add <gameID> &7- Adds a new game sign for the specified game "
- "#01d54a/tf sign remove &7- Deletes a game sign that you are looking at"
- "#01d54a/tf sign remove <signID> &7- Deletes a game sign with that specified sign ID"
- "#01d54a/tf sign edit <lineNo> \"Text...\" &7- Edits the text on the game sign you are looking at"
- "#01d54a/tf sign edit <signID> <lineNo> \"Text...\" &7- Edits the text on the game sign with that specified sign ID"
sign_list_header: "--------- Signs List ---------"
sign_list_format: "&e> (Game ID: %game_ID%) Sign ID: %sign_ID%"
sign_list_hover: "&eClick to teleport to sign"
sign_id_edit_command_usage: "#01d54a/tf sign edit <signID> <line> \"new text..\""
sign_edit_command_usage: "#01d54a/tf sign edit <line> \"new text..\""
sign_added: "&aYou added a new game sign &7(to game : %game_ID%)"
sign_removed: "&aYou removed a game sign &7(signID: %sign_ID%)"
sign_edited: "&aYou successfully edited a game sign &7(signID: %sign_ID%)"
sign_invalid_line_number_error: "&cEnter a valid line number (1-4)"
sign_invalid_signID_error: "&cYou must input a invalid signID. &7(Use /sign list to view all loaded signs"
not_looking_at_game_sign: "&cYou are not looking at a game sign"
not_looking_at_sign: "&cYou are not looking at a sign"
sign_already_exists: "&cThis sign is already a game sign"
## NEW/UNSPECIFIED MESSAGES WILL APPEAR AT THE BOTTOM OF THIS FILE (ABOVE THIS LINE)
Code (Text):
Questions:
1:
# Write the question in speech marks
Question: "'A' is the most common letter used in the English language"
# State whether the correct answer is "True" or "False"
Answer: False
# (Optional) Write an explanation for the correct answer. This will be shown once the answer is reveal.
Correction_Message: "'E' is the most common letter used in the English language"
2:
Question: "In the English language there is no word that rhymes with orange"
Answer: True
# (Optional) Leave the correction message blank if you do not want a message to be shown
Correction_Message: ""
3:
Question: "The unicorn is the national animal of Scotland"
Answer: True
Correction_Message: ""
4:
Question: "Goldfish have a two second memory"
Answer: False
Correction_Message: ""
5:
Question: "An octopus has two hearts"
Answer: False
Correction_Message: "An octopus has three hearts"
6:
Question: "An octopus has three hearts"
Answer: True
Correction_Message: ""
7:
Question: "An octopus has four hearts"
Answer: False
Correction_Message: "An octopus has three hearts"
8:
Question: "Cinderella was the first Disney princess"
Answer: False
Correction_Message: "The first disney princess was Snow White"
9:
Question: "Alexander Fleming discovered penicillin"
Answer: True
Correction_Message: ""
10:
Question: "The black box in a plane is black"
Answer: False
Correction_Message: "The 'black box' in a plane is actually orange"
PAPI:
%tfquiz_gameID% > Displays the game ID that the player is in. Will be “null” if the player isn't in a game.
%tfquiz_in_game% > Shows “true” or “false” whether the player is in a game.
%tfquiz_gamestate% > Shows the status of the game. Will be “null” if the player isn't in a game.
%tfquiz__countdown% > Displays the amount of seconds remaining on the countdown before a game starts.. Will be “null” if the player isn't in a game.
Game setup examples
Code (Text):
games:
1:
state_on_startup: RECRUITING # Options: Recruiting or Closed
minimum_players: 5
maximum_players: 20
countdown_seconds: 60
maximum_end_point: 20
broadcast_winners: true # Whether to announce the winner of a game to the whole server
reward:
type: 'item'
reward: oak_planks, 2
message: 'You won 2 oak planks'
arena: true
arena_options:
desc_option: hologram # Options: ‘both’, ‘chat’ or ‘hologram’
spectators: true # Enables the spectator system
holo_location: # The spawn point for the hologram (Only works if desc_option is not ‘chat’
world: world
x: -50
y: 64
z: 64
spawn_point: # The spawn point where players get teleported to when they join the game/arena
world: world
x: -50
y: 64
z: 64
yaw: -180
pitch: 0
Code (Text):
games:
1:
state_on_startup: 'RECRUITING' # Options: Recruiting or Closed
minimum_players: 5
maximum_players: 10
maximum_end_point: 10
countdown_seconds: 10
# Whether to announce the winner of a game to the whole server
broadcast_winners: true
reward:
type: 'currency'
reward: 500
message: You won $500
arena: false
# (in seconds) Only works when the arena option is false.
schedule_delay: 300
# (in seconds) How long the game remains open and in the recruiting state, before it closes again (will not close if the game is active). Make sure this is longer than your countdown_seconds option. Defaults to 60 if this isn’t set.
schedule_resets: 120
Rewards examples
Code (Text):
reward:
type: command
reward: xp give %player% 100
message: You won some experience # (Optional) Do not add this option if you don’t want a reward message
Code (Text):
reward:
type: command
reward:
- xp give %player% 100
- eco give %player% 500
- broadcast %player% won the game
Code (Text):
reward:
type: item
reward: apple, 5 # For item rewards, state the Bukkit material, followed by the quantity
message: ‘&aYou won 5 Apples’
Code (Text):
reward:
type: item
Reward:
- apple, 5 # For item rewards, state the Bukkit material, followed by the quantity
- oak_planks, 2
- ender_chest, 1
message: ‘#01d54aYou won some items’
Code (Text):
reward:
type: permissions
reward: test.permission
Code (Text):
reward:
type: permission
reward:
- test.permission
- test.permission2
- test.permission3
message: You have won some permissions
Code (Text):
reward:
type: 'currency'
reward: 500
message: You won $500
Code (Text):
reward:
type: experience
reward: 500
message: You won $500
Code (Text):
reward:
type: none
Sign examples
Code (Text):
signs:
1:
game: 1
material: OAK_WALL_SIGN
world: world
x: 2
y: 65
z: 2
facing: south
format:
- ' '
- 'Click me to join'
- 'game #1'
- ' '