# Game Customization
You have near complete control over how you can make your trivia game look in terms of embeds and buttons.
# Overriding Embeds
The following embeds can be overridden entirely:
queue: (players:Player[]) => EmbedBuilder;gameStart: () => EmbedBuilder;playerJoin: (player: Player) => EmbedBuilder;gameQueueTimeout: () => EmbedBuilder;question: (question:GameQuestion) => EmbedBuilder;leaderboardUpdate: (leaderboard: Collection<string, Player>, lastQuestion: GameQuestion) => EmbedBuilder;playerNotInMatch: (user:User) => EmbedBuilder;playerAlreadyAnswered: (player:Player) => EmbedBuilder;playerAnsweredStats: (player:Player, timeElapsed:number) => EmbedBuilder;playerAlreadyQueued: (player:Player) => EmbedBuilder;filterReject: (user:User) => EmbedBuilder;gameEnd: (leaderboard: Collection<string, Player>, lastQuestion: GameQuestion) => EmbedBuilder;
Here's a simple example of overwriting an embed:
game.config.embeds.playerJoin = player => {
return new EmbedBuilder()
.setDescription(`Welcome, ${player.user}!`)
}
# Overriding Buttons
Buttons can be overwritten in a similar fashion.
join: ButtonBuilder;questionOptionA: ButtonBuilder;questionOptionB: ButtonBuilder;questionOptionC: ButtonBuilder;questionOptionD: ButtonBuilder;questionOptionTrue: ButtonBuilder;questionOptionFalse: ButtonBuilder;
import { ButtonStyle } from 'discord.js'
game.config.buttons.join = new ButtonBuilder()
.setLabel('Join In!')
.setStyle(ButtonStyle.Success);
Keep in mind: Button custom IDs will be overwritten by the library for internal functionality, no need to provide one.