top of page

Name

Email *

Subject

Message

Success! Message received.

What You Can Customize

There are 2 scripts in this project that you can edit:

  • CUI_Trivia 

  • CUI_SceneSelector

Change settings in property menu

in Horizon Desktop Editor

No Coding needed

  • Select the [CustomUI] Trivia Gizmo 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Then go to its property menu on the right and scroll down until you see the

CUI_Trivia (Custom UI) info.

Now you can change any of these settings:

  • Drag and drop audio SFX

  • Drag and drop Custom Background (Use size 1000 x 540)

  • Change the names of any of the colors of the UI

  • Enter numbers of players and questions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) Game Rules & Flow

  • questionDurationSeconds (number, default: 10)
    Per-question countdown in seconds.

     

  • totalQuestions (number, default: 10)
    How many questions per game. Automatically clamped to the size of your question bank.

     

  • randomizeQuestions (boolean, default: false)
    Shuffle question order each game if true.

 

 

2) Visual Theme (Colors & Background)

All color props accept CSS strings like "white", "#ffd700", "rgba(0,0,0,.5)".

  • Title & Buttons:
    titleTextColor, startButtonTextColor

     

  • Timers & Prompts:
    timerTextColor, pregamePromptTextColor, pregameCountdownNumberColor, questionProgressTextColor

     

  • Question & Answers:
    questionTextColor, answerTextColor, votedIndicatorTextColor, answerRevealNamesTextColor

     

  • Voter List:
    votersHeaderTextColor, votersListTextColor

     

  • Scoreboard:
    postgameTitleTextColor, leaderboardRankTextColor, leaderboardNameTextColor,
    leaderboardScoreTextColor, leaderboardHeaderTextColor

     

  • Background Image (optional):
    backgroundTexture: TextureAsset
    If provided, a full-bleed background image is drawn behind the UI.

3) Sounds (Optional, Per-Player Where Applicable)

Provide AudioGizmo entities for these moments:

  • pregameTickSfx – Plays at 5-4-3-2-1.
     

  • pregameGoSfx – Plays on “Go!”.
     

  • voteFinalTickSfx – Plays at 3-2-1 near the end of each question timer.
     

  • voteSfx – Plays only for the player who just voted.
     

  • correctAnswerSfx / wrongAnswerSfx – Played to each player based on their result after reveal.
     

  • winnersSfx – Played when the final leaderboard appears.

4) Scoreboard Layout

  • leaderboardMaxPlayers (number, default: 12)
    Controls how many winners to show on the postgame screen. The layout automatically scales fonts/row heights and splits into two columns. (Try to keep this under 22 players so the rows don't go off the screen.

 

 

 

 

5) Skybox (Custom UI - Scene Selector)

  • The game comes with 3 skyboxes that players can change via Custom UI.

  • Creators can add their own skyboxes and related images via fields in the Desktop Editor.

 

 

 

 

6) Environment Accent colors (Custom UI - Scene Selector)

  • The game is inside a 3D theater space that has 5 accent colors that players can change via Custom UI.

  • To change the set of available accent color objects in the Desktop Editor, a creator should make a new group folder on the left hierarchy with all of their new objects for which they want to change the accent color, than drag that folder to the public variable on the right that says Accent Color in the script. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Editing the TRIVIA Question Bank (Custom UI - Trivia)

Questions are located at  

private questions: TriviaQuestion[] array:

type TriviaQuestion = [

{

  question: string;

  options: string[];     // Exactly 4 options

  correctAnswer: number; // Index 0–3

};

 

Add or edit questions:

private questions: TriviaQuestion[] = [

  {

    question: "What year did the Miracle Mets win the World Series?",

    options: ["1965", "1969", "1973", "1986"],

    correctAnswer: 1,

  },

  // ...more questions

];

 

Rules & tips

  • Provide exactly 4 options per question.
     

  • correctAnswer must be within 0–3.
     

  • totalQuestions cannot exceed questions.length; overflow is clamped automatically.
     

  • Set randomizeQuestions: true to shuffle per game; otherwise order matches the array.

How Voting Works (Per-Player UX)

  • Players click one of the 4 Pressable answers.
     

  • Their personal selection is locally highlighted and they see “✔ Voted” under it.
     

  • The host UI shows “Voters this round:” as names vote in.

  • No one sees your answer but you until the correct answer is revealed. 
     

  • On reveal, the correct answer is highlighted and each answer displays a fallback list of voter names .

Game Timeline 

  1. Idle – Title + “Start Game” button.
     

  2. Pregame (5→Go) – Optional tick/go sounds.
     

  3. Question – Timer counts down; final 3 seconds can tick.
     

  4. Reveal – Scores update; per-player correct/wrong SFX play; shows who voted where.
     

  5. Next Question or Postgame – After a short pause.
     

  6. Postgame Scoreboard – Shows Top winners for a few seconds, plays winnersSfx, then resets so players can start a new game.

 

 

Layout & Sizing

  • Game panel canvas is set for 16:9 with:
     

    • panelWidth = 1000, panelHeight = 540 (protected fields)
       

  • To change size, update those fields in the class (or subclass and override).
     

The main scoreboard UI during gameplay is intentionally removed for clarity. Scores still track live under the hood.

 

Extending the UI (Common Tweaks)

  • Change fonts/colors: Update the style objects (e.g., fontFamily: 'Optimistic', fontWeight: 'bold').

  • Custom backgrounds by round: Swap backgroundTexture at phase changes (Drag and drop a different texture via CUI_Trivia property menu).
     

  • Longer reveals for tough rounds: Increase the delay before the next question inside QuestionDurationSeconds via CUI_Trivia property menu. 

 

 

Safety & Validation

  • All gizmo plays are guarded; missing or invalid SFX will not crash the game.
     

  • Votes outside the question phase are ignored.
     

  • The question order is calculated once per game and trimmed to maxPlayable.

 

 

Troubleshooting

  • My background isn’t showing.
    Ensure backgroundTexture is a valid TextureAsset and not undefined. 

     

  • Names don’t appear under answers on reveal.
    That list is built from the votes map at reveal time. Confirm players actually voted and that the phase reached reveal.

     

  • No sounds are playing.
    Confirm the correct SFX property is connected to an AudioGizmo entity. Test by triggering the phase that uses it (e.g., start game for pregame ticks).

     

  • Too many players to fit on leaderboard.
    Lower leaderboardMaxPlayers or increase panelHeight. The layout scales down automatically, but extreme counts will get tight. Try to stay under 22 players.

TriviaRemixPropertyPanel.png
Screenshot (963).png
Screenshot (961).png
Screenshot (965).png
Screenshot (966).png

Any questions, please reach out below:

Mike G Bio Pic small.JPG
  • Black YouTube Icon
  • Black Twitter Icon
  • Black Instagram Icon

© 2025 Mikey Ace Studios

bottom of page