Jump to content

Trivia 2.0 2.0.140

$19.95
   (0 reviews)

18 Screenshots

  • 14.7k
  • 20
  • 20.02 kB

About Trivia 2.0

Engage your players like never before with a trivia minigame right in the chat! Designed to be fully customizable and packed with exciting prizes, this game is perfect for keeping your server lively and interactive. Trivia minigames not only enhance community engagement but also liven up quieter moments, ensuring your server always feels vibrant and bustling. This interactive feature fosters communication and friendly competition among players, maintaining an active and thriving community atmosphere as they enjoy answering trivia questions and earning rewards.

Introducing the highly anticipated Trivia 2.0! As the sole Trivia plugin currently available, and a significant improvement over its predecessor (also developed by me), this complete overhaul is born from years of experience. Having managed the original Trivia plugin on servers with weekly traffic of over 1,500 players, I've gained invaluable insights into what elements truly enhance the design of this plugin. Trivia 2.0 is crafted from these lessons, offering a refined, player-centric experience that revolutionizes in-game trivia.

Key Features:

✦ Customizable Interaction: Tailor every aspect of the trivia experience with custom chat icons, and the use of both native Rust and server-specific item emojis for a personalized touch.

✦ Dynamic Event Control: Flexibility at your fingertips - toggle the display of correct answers, set automated trivia events, and manage answer delays to cater to all player types.

✦ Advanced Configuration: Dive into detailed settings like custom currency displays, answer match sensitivity, and color schemes, ensuring a trivia experience that aligns perfectly with your server's vibe.

✦ Reward System: Spice up the competition with customizable rewards. Set currency prizes for various difficulties and surprise players with custom items, even command arrays, ensuring every correct answer feels like a victory.

✦ Comprehensive Stats Tracking: Keep the competition fierce with detailed stat tracking. From all-time scores to specific wipe stats, players can vie for the top spot, pushing engagement to new heights.

✦ Seamless Integration: Our plugin works harmoniously with popular APIs, enhancing your server's capabilities without hassle.

✦ Innovative Question Sources: Keep content fresh with questions pulled from an open-source trivia database or your custom data file, or both, offering a vast array of topics to challenge players.

✦ Admin-friendly Tools: Effortlessly manage trivia with admin commands, from question creation to player stat wipes, all designed for ease of use.

Feature Details:

✦ Custom chat icon for all chat messages

✦ Ability to use native Rust emojis for in-chat item icons

✦ Use custom server emojis for custom item icons

✦ Turn on/off the display of the correct answer when an event ends

✦ Set custom currency emoji for chat display (RP, Eco, XP, etc.)

✦ Turn on/off automated periodic trivia events

✦ Set the time between trivia events (if using automated)

✦ Set a delay (or not) before players can submit their answers (gives slow typers time to try)

✦ Set the total time players have to get the question correct

✦ Set the milliseconds delay between commands (used in rewards) to prevent command spam

✦ Turn on/off the rewards for answering questions right

✦ Set the maximum number of guesses for multiple-choice questions

✦ Built-in logic to detect admins erroneously setting this to lower than 1 or higher than 3 (multiple choice has 4 answers to pick from)

✦ Configurable answer match sensitivity (see below for more description)

✦ Toggle on/off the use of /redeem plugin

✦ Set the specific /redeem container name

✦ Turn on/off pulling Questions/Answers from an online free opensource Trivia database API

✦ Turn on/off pulling questions from the local data file

✦ Configurable categories in data file

✦ Configurable character replacement in the data file for replacing special characters with their HTML equiv

✦ Color Scheme: Fully configurable color scheme for all aspects of the plugin

✦ Can set HTML color codes for the following: Warnings, Errors, Main, Secondary, Quantity, Items, Question, Answers, Correct, Incorrect, Commands, Timers, Usage statements, Easy, Medium, Hard

✦ debug mode that instantly enables hundreds of debug feedback lines throughout the plugin

Rewards:

✦ Currency rewards for each difficulty (given out for correct answers if greater than 0, regardless of item loot roll)

          ✧Eco, RP, XP, and Score are all configurable per question difficulty

✦ Complete "Loot Table"

          ✧Custom Items supported as rewards

          ✧Min/Max RNG for quantity

          ✧Rarity per item

          ✧shortname and optional skinID per item

          ✧Multiple commands support as reward "item"

✦ Rarity is affected by question Difficulty.

          ✧The harder the question tier the better dice roll you get for obtaining more rare items

✦ Error with dice roll reward logic: If something goes wrong with the RNG for the prize, it will just default to the least rare item. This is a very rare case scenario if something goes wrong the player will always get a prize no matter what.

Statistics:

✦ Tracks total questions correctly answered for all players for all time

✦ Tracks total questions correctly answered for all players for the wipe

✦ Keeps a running score per all time

✦ Keeps a running score per wipe

          ✧Score is difficulty based and configurable (points definition for each tier)

✦ Command /trivia stats shows top 3 wipe top 3 all time and personal stats

Logic:

✦ When creating new questions via commands, logic to "close enough" for category selection (e.g., If you type "Celebrity" for the category "Celebrities" it will set it correct. Or plural versus singular)

✦ Advanced answer comparison logic to eliminate players missing the correct answer when they should have been credited with getting it right:

          ✧Plugin aborts this advanced comparison for true/false types automatically

          ✧First logic comparison just ignores all upper/lower case and compares

          ✧Second logic ignores what order the words are in and just checks the actual words themselves if the answer has more than 4 words

          ✧Third logic the plugin 'squishes' the answer phrase by removing all white spaces, special characters, and punctuation

          ✧Final logic counts all characters in both the correct answer and the player's guess while comparing each one. It then uses a configuration threshold for acceptable mistakes

Commands & Permissions:

Permissions

trivia.manage - This permission allows full access to all administrative functions

✦ (coming next release) - Not yet implemented:  Permission to ban players from participating

✦ (coming next release) - Not yet implemented: Permission to blacklist players from the statistics

Testing

trivia.test [function] [arguments]
Chat command that takes arguments depending on which function you are testing

trivia.test cheat
Using this command will automatically make you win the current trivia question.  Prints to chat to prevent abuse of the feature.  Used for testing purposes.

trivia.wipe
Wipes all statistics for the [Wipe] statistics. Does not remove [All time] statistics.

trivia.random
Initiates a random question Trivia event. Will fail if no source is set to [True] in the configuration file.

Creating new questions via in-game commands
(it is good practice to have "/trivia.add " copied into your clipboard as it will preface each subsequent command you use in the creation wizard. Having the command and trailing space copied to your clipboard streamlines the process)
/trivia.add

Step 1: /trivia.add This is your question, be sure to include punctuation?

Step 2: /trivia.add Correct answer
Note: If you enter one of the following as the correct answer, the plugin will automatically detect a True/False question type and will skip the Incorrect Answer section

Step 3: /trivia.add Incorrect answer #1
The correct and incorrect answers all get shuffled every time a question gets asked. So the order you save them does not matter.

Step 4: /trivia.add Incorrect answer #2

Step 5: /trivia.add Incorrect answer #3

Step 6: /trivia.add Category
Pick the desired category for this question. The available categories (saved in your oxide/data/Questions.json) will be listed during this step in alphabetical order. You can add more categories as you wish. Trivia questions pulled from the opensource API will pick the best matching category from your configuration.

Step 7: /trivia.test Difficulty
Pick from Easy, Medium, or Hard. Keep in mind these influence the loot RNG roll when awarding prizes. The harder the question, the better chance for the more rare prizes.

The plugin will then print to chat a verification of the complete Questions/Answers. This question is now saved in your data file and is enabled.

Listing trivia questions

/trivia.list
This console command requires the trivia.manage permission and lists all trivia questions to the F1 console

Deleting trivia questions

/trivia.delete ##
This console command requires the trivia.manage permission and will delete the question number specified

Trivia Statistics

/trivia stats
This chat command will display Trivia stats in chat to the user that types it.

Configuration:

✦ Enabled Debug Mode
Enables diagnostic data being sent to the server console.
WARNING: This can get extremely spammy.  It would be wise to only do this during testing or on a testing server.  It will print a lot of information to the console for everything the plugin does.  I highly recommend leaving this to false unless performing tests.

✦ Reward players for correct answers
Toggle the rewards players players receive for answering correctly

✦ Use open database questions and answers
Pull questions from the free to use open source online Trivia database.
Note: We have no control over the content from this site.  We have used it for years on our own servers and it works fine.  There are situations where some responses will result in an error, and this plugin is coded to attempt 3 tries and if all 3 fail it reverts to a local question from your Questions.json file so be sure to populate at least a few questions in there just in case.  In years of use we have never come across any inappropriate questions.  But as a disclaimer we have no control over the content coming from this open database.  The results are retrieved in a simple JSON format so no malicious data can be retrieved.

✦ Use local questions and answers (data/Questions.json)
Enable pulling questions from your locally stored data file.  If both this option and the former option are enabled the plugin will flip a coin each time and then decide where to pull from.

✦ Max guesses allowed for mult choice (1-3)
Maximum allowed guesses for multiple choice questions to prevent players from spamming answers to win.  Boolean (True/False) questions automatically allow 1 guess.  The default for multiple choice is 2.  Setting it higher than 3 or lower than 1 will result in an error in the console warning you to fix the config and it will temporarily set this option back to the default value.  Multiple choice questions always have 4 possible answers.

✦ Levenshtein Distance (sensitivity for mistakes.  Lower = require more accurate)
This is the core logic used to process guesses and see if they are close enough to count as correct.  The best way to think of this setting is "How many mistakes do we allow and still count it as correct".  See Logic section for more details on how this works.

✦ Minimum characters in an answer before allowing Levenshtein Distance mistakes
This is a minimum baseline for allowing the special "close but not quite" logic to kick in.  It dynamically adjusts the Distance setting from the previous config option.  This is done because very short answers can become too easy when you can get a few characters wrong.  In a full sentence answer getting 2 characters wrong is still good enough.  But in one word answers that would make any chat be seen as a correct answer.  Every character under this baseline subtracts one from the Distance setting.

Example: If the correct answer is "The dog barked" that would be 14 characters long.  If your threshold is set to 10 and your distance is set to 2, you could get two of those characters wrong and still win.  But with those same settings, if the correct answer is "abcdefghi" that would be 9 characters.  This is under our baseline threshold by a factor of 1 (threshold 10 minus 9 characters).  This reduces our :evenshtein Distance by 1 meaning we can only get one character wrong in that answer.  If the answer was "abcdefgh" we could not get any characters wrong in this scenario (threshold 10 minus 8 characters = adjustment of 2.  Levenshtein Distance is set to 2.  2 - 2 = 0 meaning we have zero wiggle room in our answer.)

✦ Use RedeemStorageAPI plugin for full inventory (optional plugin)
Enabled the use of an optional plugin to handle situations where player inventory is full and they win an event.  Their physical prizes will be transfered into this virtual holding box for them to retrieve later.

✦ Storage Name (If using RedeemStorageAPI)
The 3rd party plugin allows you to create separate configuration settings per 'profile' if you use this plugin for multiple situations.  This allows you to define which profile to use for Trivia items when inventory is full.

 

Chat configuration:

✦ Steam ID for chat icon
The steamID for the icon you'd like the Trivia plugin to use in chat

✦ Use Rust emojis for item icons
This enables the display of item icons for vanilla Rust items as prizes utilizing the built in Rust emoji feature

✦ Use custom emoji for currencies
Upload your own custom server emojis (instructions here) and then use them as icons for currency rewards.

✦ Show the correct answer in chat when the event ends
Toggle the display of the correct answer in chat after each event ends

✦ Eco emoji
Custom server emoji name to use as an icon for this reward type (eg. "eco" for the emoji ":eco:")

✦ RP emoji
Custom server emoji name to use as an icon for this reward type

✦ XP emoji
Custom server emoji name to use as an icon for this reward type

Timers configuration:

✦ Enable automatic periodic trivia
This toggles the automated question asking.  Some servers (my own included) want as little background tasks as possible and chose to not use automated event running.  In those situations, set this to FALSE, and then use an external utility to periodically send the trivia.random command.
(For Battlemetrics users, set up a basic schedule with a Raw Command)

✦ Periodic trivia interval (seconds)
Interval between automated trivia events.  This value cannot be set lower than the duration of the trivia event to prevent overlapping events.

✦ Delay before players can start answering (0 to turn off)
Allow players to instantly submit answers or make them wait a few seconds to allow the slow typers a chance to get in on the action.

✦ Time to allow players to answer the question
Duration of the event before it automatically ends regardless of someone answering correctly.  It is wise to keep this number low (eg. 30 sec or so) to dissuade players from cheating by utilizing the internet to find the answers.  This duration does not count the previous configuration option.  If you set the delay to 10s and the duration to 30s then your total event time would be 40s and your periodic interval must be greater than that.

✦ Delay between rewards commands (default 0.25s)
This typically does not need to be changed and is included for lower end server set ups.  If you configure more than one command in a reward this is the delay between those commands to prevent them from all being sent instantly.   Very rare situations in which this setting needs to be changed from default.

Color Scheme configuration:

Each color type is used throughout the plugin for chat feedback.  Set up your own custom color scheme with the options below:

Warnings
Errors
Main
Secondary
Quantity
Item
Question
Answers
Correct
Incorrect
Command
Timers
Usage
Easy
Medium
Hard

Rewards Table:

✦ CustomName
For use with custom items or with commands.  This is the name that will be printed to chat as the prize awarded.  Leave blank to use the default friendly name of an item based off its shortname.  If using a normal Rust item as a prized there is no need to fill this out.

✦ Minimum
The minimum quantity of this prize given at once (random amount between min and max)

✦ Maximum
The maximum quantity of this prize given at once (random amount between min and max)

✦ Rarity
Enter a number between 0.01 and 1.00 with the higher numbers being more common and lower numbers being more rare.

✦ Shortname
Specify the shortname of an item.  Leave this blank for "Commands" type rewards.

✦ SkinID
SkinID of the item.  Leave as 0 if using an unskinned item.  Leave 0 if the reward is a "Commands" type.

✦ Commands
This is an array of commands.  Can be as many as you wish.  The plugin will iterate through them in the order they are listed with a configurable delay between each.
Placeholders:  {id} = SteamID / {name} = Player Name
These placeholders replace the tag with the winner's data.  Example commands are included in the default configuration file.

Developer API

private void OnTriviaQuestionCorrect(BasePlayer player, string difficulty) 
{ 
  Interface.CallHook("OnPlayerTriviaQuestionCorrect", player, difficulty); 
}

This is the default configuration file:

{
  "Configuration": {
    "Chat": {
      "SteamID for chat icon": 76561198960218042,
      "Use Rust emojis for item icons": true,
      "Use custom emoji for currencies (Use :text: from server emojis)": false,
      "Show the correct answer in chat when the event ends": true,
      "Eco emoji": "",
      "RP emoji": "",
      "XP emoji": ""
    },
    "Timers": {
      "Enable automatic periodic trivia": false,
      "Periodic trivia interval (seconds)": 600,
      "Delay before players can start answering (0 to turn off)": 10.0,
      "Time to allow players to answer the question": 30.0,
      "Delay between rewards commands (default 0.25s)": 0.25
    },
    "Color Scheme": {
      "Warnings": "#ffcc00",
      "Errors": "#ff6666",
      "Main": "#99ccff",
      "Secondary": "#6699cc",
      "Quantity": "#ffffff",
      "Item": "#b3e6ff",
      "Question": "#66ccff",
      "Answers": "#cceeff",
      "Correct": "#33cc33",
      "Incorrect": "#ff5050",
      "Command": "#ffcc66",
      "Timers": "#FBDEF6",
      "Usage": "#ffd699",
      "Easy": "#7FFF7F",
      "Medium": "#FBFF7F",
      "Hard": "#FF7F7F"
    },
    "Enabled Debug Mode": true,
    "Reward players for correct answers": true,
    "Use open database questions and answers": false,
    "Use local questions and answers (data/Questions.json)": false,
    "Max guesses allowed for mult choice (1-3)": 2,
    "Levenshtein Distance (sensitivity for mistakes.  Lower = require more accurate)": 1,
    "Use RedeemStorageAPI plugin for full inventory (optional plugin)": false,
    "Storage Name (If using RedeemStorageAPI)": "default"
  },
  "Rewards": {
    "Difficulty Currencies (Always included)": {
      "Easy": {
        "Eco": 0,
        "RP": 0,
        "XP": 0,
        "Score": 1
      },
      "Medium": {
        "Eco": 0,
        "RP": 0,
        "XP": 0,
        "Score": 2
      },
      "Hard": {
        "Eco": 0,
        "RP": 0,
        "XP": 0,
        "Score": 3
      }
    },
    "RewardsTable": [
      {
        "CustomName": "",
        "Maximum": 1,
        "Minimum": 1,
        "Rarity": 0.55,
        "Shortname": "hazmatsuit",
        "SkinID": 0,
        "Commands": []
      },
      {
        "CustomName": "",
        "Maximum": 20,
        "Minimum": 5,
        "Rarity": 0.8,
        "Shortname": "scrap",
        "SkinID": 0,
        "Commands": []
      },
      {
        "CustomName": "Free pants",
        "Maximum": 0,
        "Minimum": 0,
        "Rarity": 0.95,
        "Shortname": "",
        "SkinID": 0,
        "Commands": [
          "giveto $id pants",
          "say There you go $name!"
        ]
      }
    ]
  },
  "Config version (Do NOT edit)": "2.0.126"
}


Discord: discord.gg/ZombieLand


User Feedback

1.5m

Downloads

Total number of downloads.

7k

Customers

Total customers served.

105.3k

Files Sold

Total number of files sold.

2.1m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.