Apps Home
|
Create an App
Missbriana_'s Dominatrix Dice
Author:
xpluckysubx
Description
Source Code
Launch App
Current Users
Created by:
Xpluckysubx
/*~~~~~~~~~~~~~~~~~ ~~Missbriana_'s Dominatrix Dice ~~Version: 0.3.0 ~~Author: xPluckysubx ~~Date: 2020-07-12 ~~~~~~~~~~~~~~~~~~~ */ cb.settings_choices = [ { name: 'theme', type: 'choice', label: 'Colour theme', choice1: 'Red', choice2: 'Blue', choice3: 'Pink', choice4: 'Purple', choice5: 'Green', choice6: 'Black' }, { name: 'p_tokens', type: 'int', minValue: 0, label: 'How much do you want to charge per punishment (0 to disable punishments)', defaultValue: 30 }, { name: 't_tokens', type: 'int', minValue: 0, label: 'How much do you want to charge per task (0 to disable tasks)', defaultValue: 35 }, { name: 'r_tokens', type: 'int', minValue: 0, label: 'How much do you want to charge per reward (0 to disable rewards)', defaultValue: 50 }, { name: 'App_add_time', type: 'choice', label: 'How often should the app advertise itself?', choice1: 2, choice2: 5, choice3: 10, choice4: 15, choice5: 20, choice6: 30, choice7: 45, choice8: 60, defaultValue: 10 }, { name: 'p_number', type: 'int', minValue: 0, maxValue: 20, label: 'How many punishments - all fields required, will only roll up to specified number', defaultValue: 20 }, {name: 'punishment_1', type: 'str', label: 'Punishment for rolling 1', default: 'Pinch Nipples'}, {name: 'punishment_2', type: 'str', label: 'Punishment for rolling 2', default: 'Pegs on Nipples'}, {name: 'punishment_3', type: 'str', label: 'Punishment for rolling 3', default: '2 Pegs on Balls'}, {name: 'punishment_4', type: 'str', label: 'Punishment for rolling 4', default: 'Peg on Glans'}, {name: 'punishment_5', type: 'str', label: 'Punishment for rolling 5', default: 'Slap Your Cock'}, {name: 'punishment_6', type: 'str', label: 'Punishment for rolling 6', default: 'Slap Your Glans'}, {name: 'punishment_7', type: 'str', label: 'Punishment for rolling 7', default: 'Slap Your Balls'}, {name: 'punishment_8', type: 'str', label: 'Punishment for rolling 8', default: 'Punch Your Balls'}, {name: 'punishment_9', type: 'str', label: 'Punishment for rolling 9', default: 'On Your Knees For 5 Minutes'}, {name: 'punishment_10', type: 'str', label: 'Punishment for rolling 10', default: 'On All Fours For 5 Minutes'}, {name: 'punishment_11', type: 'str', label: 'Punishment for rolling 11', default: 'Kneel In The Corner For 5 Minutes'}, {name: 'punishment_12', type: 'str', label: 'Punishment for rolling 12', default: 'Slap Your Face'}, {name: 'punishment_13', type: 'str', label: 'Punishment for rolling 13', default: 'Ass Spanks x10 Each Cheek'}, {name: 'punishment_14', type: 'str', label: 'Punishment for rolling 14', default: 'Ass Whipping/Paddling x10 Each Cheek'}, {name: 'punishment_15', type: 'str', label: 'Punishment for rolling 15', default: 'Inner Thigh Slaps x10 Each Leg'}, {name: 'punishment_16', type: 'str', label: 'Punishment for rolling 16', default: 'Inner Thigh Whipping/Paddling x10 Each Leg'}, {name: 'punishment_17', type: 'str', label: 'Punishment for rolling 17', default: 'Hot Wax on Nipples'}, {name: 'punishment_18', type: 'str', label: 'Punishment for rolling 18', default: 'Hot Wax on Balls/Labia!'}, {name: 'punishment_19', type: 'str', label: 'Punishment for rolling 19', default: 'Un-fucking-lucky, Whip That Cock, HARD!'}, {name: 'punishment_20', type: 'str', label: 'Punishment for rolling 20', default: 'Lucky You! 30 Seconds To Try And Cum! Punch Your Balls If You Fail!'}, { name: 't_number', type: 'int', minValue: 0, maxValue: 20, label: 'How many tasks? (all fields required, will only roll up to specified number)', defaultValue: 20 }, {name: 'task_1', type: 'str', label: 'task for rolling 1', default: 'Embarrassing Confession In Chat'}, {name: 'task_2', type: 'str', label: 'task for rolling 2', default: 'Put On Something Girly, Tell Us What It Is'}, {name: 'task_3', type: 'str', label: 'task for rolling 3', default: 'Wear A Chastity Cage Until Mistress Says So'}, {name: 'task_4', type: 'str', label: 'task for rolling 4', default: 'Stroke With 2 Fingers (No Thumb) for 5 Minutes'}, {name: 'task_5', type: 'str', label: 'task for rolling 5', default: 'Edge Then Go Soft'}, {name: 'task_6', type: 'str', label: 'task for rolling 6', default: 'Edge Twice Then Go Soft'}, {name: 'task_7', type: 'str', label: 'task for rolling 7', default: 'Edge 5 Times Then Go Soft'}, {name: 'task_8', type: 'str', label: 'task for rolling 8', default: 'Edge For 20 Times Then Go Soft'}, {name: 'task_9', type: 'str', label: 'task for rolling 9', default: 'Body Writing Mistress Chooses Wording: Chest'}, {name: 'task_10', type: 'str', label: 'task for rolling 10', default: 'Body Writing Mistress Chooses Wording: Ass'}, {name: 'task_11', type: 'str', label: 'task for rolling 11', default: 'Body Writing Mistress Chooses Wording: Cock'}, {name: 'task_12', type: 'str', label: 'task for rolling 12', default: 'Suck A Dildo For 5 Minutes'}, {name: 'task_13', type: 'str', label: 'task for rolling 13', default: 'Deephthroat A Dildo 5 Times'}, {name: 'task_14', type: 'str', label: 'task for rolling 14', default: 'Deephthroat A Dildo 20 Times'}, {name: 'task_15', type: 'str', label: 'task for rolling 15', default: 'Deephthroat A Dildo For 20 Seconds (Keep Trying!)'}, {name: 'task_16', type: 'str', label: 'task for rolling 16', default: 'Tease Your Boi-Pussy'}, {name: 'task_17', type: 'str', label: 'task for rolling 17', default: 'Finger Your Ass, 2 Fingers'}, {name: 'task_18', type: 'str', label: 'task for rolling 18', default: 'Fuck Your Ass With A Dildo Slow'}, {name: 'task_19', type: 'str', label: 'task for rolling 19', default: 'Fuck Your Ass With A Dildo Fast'}, {name: 'task_20', type: 'str', label: 'task for rolling 20', default: 'Super Unlucky, Mistress Will Give You 2 Tasks & A Punishment!'}, { name: 'r_number', type: 'int', minValue: 0, maxValue: 20, label: 'How many rewards? (all fields required, will only roll up to specified number)', defaultValue: 20 }, {name: 'reward_1', type: 'str', label: 'reward for rolling 1', default: 'Stroking Privileges'}, {name: 'reward_2', type: 'str', label: 'reward for rolling 2', default: 'Worship Mistresses Feet'}, {name: 'reward_3', type: 'str', label: 'reward for rolling 3', default: 'Worship Mistresses Armpits'}, {name: 'reward_4', type: 'str', label: 'reward for rolling 4', default: 'Worship Mistresses Strapon'}, {name: 'reward_5', type: 'str', label: 'reward for rolling 5', default: 'One Kiss From Mistress'}, {name: 'reward_6', type: 'str', label: 'reward for rolling 6', default: 'One Compliment from Mistress'}, {name: 'reward_7', type: 'str', label: 'reward for rolling 7', default: 'One Flash from Mistress (Mistresses Choice)'}, {name: 'reward_8', type: 'str', label: 'reward for rolling 8', default: 'PM Privileges'}, {name: 'reward_9', type: 'str', label: 'reward for rolling 9', default: 'Permission To Any One Question'}, {name: 'reward_10', type: 'str', label: 'reward for rolling 10', default: 'One Minute Public JOI'}, {name: 'reward_11', type: 'str', label: 'reward for rolling 11', default: 'Five Minutes Public JOI'}, {name: 'reward_12', type: 'str', label: 'reward for rolling 12', default: 'Five Minutes JOI via PM'}, {name: 'reward_13', type: 'str', label: 'reward for rolling 13', default: 'One Flash Request'}, {name: 'reward_14', type: 'str', label: 'reward for rolling 14', default: 'Permission To Ruin An Orgasm'}, {name: 'reward_15', type: 'str', label: 'reward for rolling 15', default: 'Permission To Ruin Two Orgasms'}, {name: 'reward_16', type: 'str', label: 'reward for rolling 16', default: 'Permission To Cum With Your Mouth Filled'}, {name: 'reward_17', type: 'str', label: 'reward for rolling 17', default: 'Permission To Cum With Your Ass Filled'}, {name: 'reward_18', type: 'str', label: 'reward for rolling 18', default: 'Permission To Cum With Mistresses Direction'}, {name: 'reward_19', type: 'str', label: 'reward for rolling 19', default: 'Permission To Cum With Full Countdown'}, {name: 'reward_20', type: 'str', label: 'reward for rolling 20', default: 'Booby Prize! Public CBT/SPH From Mistress'} ]; var price = cb.settings.tokens; var langTokens = (price > 1) ? 'tokens' : 'token'; var numberOfSides = (cb.settings.die_type == 'Traditional') ? 6 : 10; var multiRolls = cb.settings.multirolls; var lastRoller = '--'; var lastPrizeWon = '--'; var lastPunishmentWon = '--'; var lastTaskWon = '--'; var rollCounter = 0; var tipCounter = 0; var winners = []; var punishment = []; var task = []; var reward = []; var minimumRollsToGetRareDice = parseInt(cb.settings.minimum_rolls); var maxOutcome = (cb.settings.die_type == 'Traditional') ? 12 : 20; var dieImagePrefix = (cb.settings.die_type == 'Traditional') ? ':reddie' : ':cdie'; var rareChance = 10; // percent chance of rolling a RARE (minimum rolls must also be met) var total_tokens = 0; var msg = '--'; var font_size, font_weight, font_colour, light_colour, dark_colour; if (cb.settings.theme == "Red") { font_size = 11; font_weight = "bold"; font_colour = "#CE0000"; light_colour = "#FF5454"; dark_colour = "#990000"; } else if (cb.settings.theme == "Blue") { font_size = 11; font_weight = "bold"; font_colour = "#0013CE"; light_colour = "#b8beff"; dark_colour = "#000D89"; } else if (cb.settings.theme == "Pink") { font_size = 11; font_weight = "bold"; font_colour = "#ff61ab"; light_colour = "#ffdbec"; dark_colour = "#fa0578"; } else if (cb.settings.theme == "Purple") { font_size = 11; font_weight = "bold"; font_colour = "#8a0ac9"; light_colour = "#e0a1ff"; dark_colour = "#3a0057"; } else if (cb.settings.theme == "Green") { font_size = 11; font_weight = "bold"; font_colour = "#06c90d"; light_colour = "#abffae"; dark_colour = "#005203"; } else if (cb.settings.theme == "Black") { font_size = 11; font_weight = "bold"; font_colour = "#292929"; light_colour = "#b5b5b5"; dark_colour = "#000000"; } cb.onTip(function (tip) { var roll_1 = Math.floor(Math.random() * cb.settings.p_number + 1) var roll_2 = Math.floor(Math.random() * cb.settings.t_number + 1) var roll_3 = Math.floor(Math.random() * cb.settings.r_number + 1) var msg = " " if (tip['amount'] === cb.settings.p_tokens) { msg += ("Punishment! You rolled a " + roll_1 + "! " + cb.settings['punishment_' + roll_1]); cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } if (tip['amount'] === cb.settings.t_tokens) { msg += (" Task! You rolled a " + roll_2 + "! " + cb.settings['task_' + roll_1]); cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } if (tip['amount'] === cb.settings.r_tokens) { msg += (" Task! You rolled a " + roll_3 + "! " + cb.settings['reward_' + roll_1]); cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } { cb.drawPanel(); } }); cb.onDrawPanel(function (user) { if (cb.settings.p_tokens != 0 && cb.settings.t_tokens != 0 && cb.settings.r_tokens != 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': cb.settings.p_tokens + ' tokens', 'row2_label': 'Tasks:', 'row2_value': cb.settings.t_tokens + ' tokens', 'row3_label': 'Rewards:', 'row3_value': cb.settings.r_tokens + ' tokens', } }; if (cb.settings.p_tokens != 0 && cb.settings.t_tokens != 0 && cb.settings.r_tokens === 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': cb.settings.p_tokens + ' tokens', 'row2_label': 'Tasks:', 'row2_value': cb.settings.t_tokens + ' tokens', 'row3_label': 'Rewards:', 'row3_value': 'Disabled', } }; if (cb.settings.p_tokens != 0 && cb.settings.t_tokens === 0 && cb.settings.r_tokens != 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': cb.settings.p_tokens + ' tokens', 'row2_label': 'Tasks:', 'row2_value': 'Disabled', 'row3_label': 'Rewards:', 'row3_value': cb.settings.r_tokens + ' tokens', } }; if (cb.settings.p_tokens != 0 && cb.settings.t_tokens === 0 && cb.settings.r_tokens === 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': cb.settings.p_tokens + ' tokens', 'row2_label': 'Tasks:', 'row2_value': 'Disabled', 'row3_label': 'Rewards:', 'row3_value': 'Disabled', } }; if (cb.settings.p_tokens === 0 && cb.settings.t_tokens != 0 && cb.settings.r_tokens != 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': 'Disabled', 'row2_label': 'Tasks:', 'row2_value': cb.settings.t_tokens + ' tokens', 'row3_label': 'Rewards:', 'row3_value': cb.settings.r_tokens + ' tokens', } }; if (cb.settings.p_tokens === 0 && cb.settings.t_tokens != 0 && cb.settings.r_tokens === 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': 'Disabled', 'row2_label': 'Tasks:', 'row2_value': cb.settings.t_tokens + ' tokens', 'row3_label': 'Rewards:', 'row3_value': 'Disabled', } }; if (cb.settings.p_tokens === 0 && cb.settings.t_tokens === 0 && cb.settings.r_tokens != 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': 'Disabled', 'row2_label': 'Tasks:', 'row2_value': 'Disabled', 'row3_label': 'Rewards:', 'row3_value': cb.settings.r_tokens + ' tokens', } }; if (cb.settings.p_tokens === 0 && cb.settings.t_tokens === 0 && cb.settings.r_tokens === 0) { return { 'template': '3_rows_of_labels', 'row1_label': 'Punishments:', 'row1_value': 'Disabled', 'row2_label': 'Tasks:', 'row2_value': 'Disabled', 'row3_label': 'Rewards:', 'row3_value': 'Disabled', } }; }); cb.onEnter(function (user) { showAppAd(user['user']); }); cb.onMessage (function (msg) { var m = msg.m; var user = msg.user; var isMod = msg.is_mod; var isHost = user === cb.room_slug; var roll_1 = Math.floor(Math.random() * 20 + 1) // just check once if (m.charAt(0) === '/') { msg['X-Spam'] = true; } if (m === '*punishments' && cb.settings.p_tokens != 0) { if (isHost || isMod) { showPunishments(); } else { showPunishments(user); } } if (m === '*tasks' && cb.settings.t_tokens != 0) { if (isHost || isMod) { showTasks(); } else { showTasks(user); } } if (m === '*rewards' && cb.settings.r_tokens != 0) { if (isHost || isMod) { showRewards(); } else { showRewards(user); } } if (m === '<3punishment') { if (isHost) { msg = "Missbriana_ has rolled you a Punishment! " + cb.settings['punishment_' + Math.floor(Math.random() * cb.settings.p_number + 1)]; } else { msg = "Don't push your luck, Pig!"; } cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } if (m === '<3task') { if (isHost) { msg = "Missbriana_ has rolled you a Task! " + cb.settings['task_' + Math.floor(Math.random() * cb.settings.t_number + 1)]; } else { msg = "Don't push your luck, Pig!"; } cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } if (m === '<3reward') { if (isHost) { msg = "Missbriana_ has rolled you a Reward! " + cb.settings['reward_' + Math.floor(Math.random() * cb.settings.r_number + 1)]; } else { msg = "Don't push your luck, Pig!"; } cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } if (m === '*help') { if (isHost) { msg = "*punishments - a full list of punishments. \n"; msg += "<3punishment - to roll a punishment as host. \n"; msg += "*tasks - a full list of tasks. \n"; msg += "<3task - to roll a task as host. \n"; msg += "*rewards - a full list of rewards. \n"; msg += "<3reward - to roll a reward as host."; } else { msg += "*punishments - a full list of punishments. \n"; msg += "*tasks - a full list of tasks. \n"; msg += "*rewards - a full list of rewards."; } cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } return msg; }); function setPunishments() { for (var i = 1; i <= 20; i++) { punishment.push(cb.settings['punishment_' + i]); } } function setTasks() { for (var i = 1; i <= 20; i++) { task.push(cb.settings['task_' + i]); } } function setRewards() { for (var i = 1; i <= 20; i++) { reward.push(cb.settings['reward_' + i]); } } function showPunishments(username) { if (punishment.length) { var msg = "~~~ POSSIBLE PUNISHMENTS ~~~"; for (var i = 1; i <= cb.settings.p_number; i++) { if (punishment.indexOf(cb.settings['punishment_' + i]) >= 0) msg += "\nRoll " + i + " - " + cb.settings['punishment_' + i]; } } cb.sendNotice(msg, username, light_colour, dark_colour, 'bold'); } function showTasks(username) { if (task.length) { var msg = "~~~ POSSIBLE TASKS ~~~"; for (var i = 1; i <= cb.settings.t_number; i++) { if (task.indexOf(cb.settings['task_' + i]) >= 0) msg += "\nRoll " + i + " - " + cb.settings['task_' + i]; } } cb.sendNotice(msg, username, light_colour, dark_colour, 'bold'); } function showRewards(username) { if (reward.length) { var msg = "~~~ POSSIBLE REWARDS ~~~"; for (var i = 1; i <= cb.settings.r_number; i++) { if (reward.indexOf(cb.settings['reward_' + i]) >= 0) msg += "\nRoll " + i + " - " + cb.settings['reward_' + i]; } } cb.sendNotice(msg, username, light_colour, dark_colour, 'bold'); } function advertise() { showAppAd(); cb.setTimeout(advertise, parseInt(cb.settings.App_add_time) * 60000); } function showAppAd(username) { var msg = ""; if (username != undefined) { msg += "Welcome, " + username + ", come and be punished, or ask for a task! If you are lucky you may even be rewarded! \n"; } else { msg += "Missbriana_'s Dominatrix Dice by xPluckySubx \n"; msg += "Each roll requests a punishment, task, or reward! \n"; if (cb.settings.p_tokens != 0) { msg += "Tip " + cb.settings.p_tokens + " for a punishment. Type \"*punishments\" for a full list of punishments. \n"; } if (cb.settings.t_tokens != 0) { msg += "Tip " + cb.settings.t_tokens + " for a task. Type \"*tasks\" for a full list of tasks. \n"; } if (cb.settings.r_tokens != 0) { msg += "Tip " + cb.settings.r_tokens + " for a reward. Type \"*rewards\" for a full list of rewards. \n"; } msg += "Type \"*help\" for all commands."; cb.sendNotice(msg, light_colour, light_colour, dark_colour, 'bold'); } } function init() { setPunishments(); setTasks(); setRewards(); advertise(); } init();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.