Apps Home
|
Create an App
Mayaloux
Author:
ubernerd
Description
Source Code
Launch App
Current Users
Created by:
Ubernerd
//Created by UBERNERD for Mayaloux //todo: voting system //test group invite show start //talk about pre show (kick out everyone under 25 tokens) ; (function () { var _ = { settings: { //initialTags: ["naughty", "lottery", "win", "femdom", "mistress", "dom", "JOI", "CBT", "SPH", "sissy", "ohmibod", "toys", "fetish", "hairy", "feet", "submissive", "balloons", "roleplay", "bondage", "lips", "dirtytalk", "balloons", "crazy", "bdsm", "friendly"] // initialTags: ["lottery", "hairy", "dom", "mistress", "joi", "cbt", "sph", "sissy", "femdom", "slaves", "submissive", "fetish", "feet", "boobs", "pussy", "balloons", "roleplay", "bondage", "lips", "dirtytalk", "balloons", "crazy", "bdsm", "naughty"] initialTags: ["crazy", "lottery", "tickets", "groupshow", "goddess", "dom", "mistress", "toys", "hitachi", "rabbit", "fetish", "feet", "bondage", "dirtytalk", "bdsm", "loveme", "horny", "lovable", "hawt", "sexy", "british", "asian", "spank", "bigass", "eatme", "smile", "filth"] // initialTags: ["app", "bot", "programming"] , tags: [] , drawInterval: 1000 , intialized: false } , secondsInMinute: 60 , panel: { dirty: false , rows: [] } , colors: { "alert": { fore: "red", back: "", weight: "bold" } , "shout": { fore: "green", back: "", weight: "bold" } , "say": { fore: "#000", back: "" } , "whisper": { fore: "purple", back: "" } , "think": { fore: "#000", back: "#DDD" } , "debug": { fore: "#000", back: "#FDD" } } , tips: 0 , goalTip: 0 , groupDuration: 0 , choices: { mood: 0 , group: 2000 } , shortcuts: {} , texts: { } , games: [ { name: "tribute" } ] , roomRules: [ "Welcome to my room." , "" , "Game rules:" , "Tip to play. Higher tips lead to better prizes. Tips from 10 tokens and up, can earn an invitation to the group show. Tips of 250 tokens will make sure you do. The group show starts once the target is reached. Other prizes include getting me naked, you enjoying being controlled by me as your Mistress, and much more." , "" , "Room rules:" , "Read my bio." , "Asking for PM or other requests can be done in a tip note of at least 5 tokens." ].join("\n") //, timeTable: ["No group"] }; cb.settings_choices = (function() { var choices = []; var createChoice = function (name, label, type, defaultValue, options) { var choice = { name: name , label: label , type: type , defaultValue: defaultValue != null? defaultValue: undefined } if (options) { for (var index = 0; index < options.length; index++) { choice["choice" + (index + 1)] = options[index] } } _.choices[name] = defaultValue choices.push(choice) } var options = ["-50", "-40", "-30", "-20", "-10", "0", "10", "20", "30", "40", "50"] //createChoice("mood", "How do you feel today?", "choice", "0", options) createChoice("group", "Required total amount of tokens for group show?", "choice", "2000", ["1000", "1500", "2000", "2500", "3000", "3500", "4000", "4500", "5000", "7500", "10000", "20000"]) return choices })() _.initialize = function () { //_.chat.think("Initialize") _.panel.dirty = true; _.resetTags(); _.forEach(cb.settings_choices, function (choice) { var value = cb.settings[choice.name] || choice.defaultValue; _.choices[choice.name] = value; }) _.groupDuration = Math.ceil(_.toInt(_.choices.group) / 500) * 5 * _.secondsInMinute //for (var index = 0; index < 24; index++) { // _.timeTable.push(_.leftPad(index, "0", 2), ":00") // _.timeTable.push(_.leftPad(index, "0", 2), ":30") //} } _.messageFilter = function (user, text) { if ((user.amount < 10) && (!user.isMod && !user.isFan)) { var words = text.replace(/([\s.,?!])+/g, "|").split("|") for (var index = 0; index < words.length; index++) { var word = (words[index] || "").toLowerCase() switch (word) { case "pm": return _.chat.whisper(user, ":pm10tokens") } } } return true } cb.onMessage(function (message) { var user = _.registerUser(message) var text = message.m || "" if (!_.messageFilter(user, text)) { message["X-Spam"] = true return } if (text.substr(0, 1) == "\/") { if (user.isMod || user.isAdmin) { _.doCommand(user, text.substr(1)); message["X-Spam"] = true } } // _.chat.think("message " + text) }) cb.onTip(function (message) { if (!_.isAdmin(message.to_user)) { return } var user = _.registerUser(message) var text = message.m || "" var command = text.toLowerCase() var amount = message.amount || 0 _.tips += amount _.goalTip += amount _.panel.dirty = true var gameIndex = 1 _.forEach(_.games, function (game, index) { if (game.name == command) { gameIndex = index } }) _.group.checkUser(user) _.commands.rollprize._value.call(this, user, amount) // _.chat.shout(message.from_user + " tipped " + message.to_user + " message: " + message.message) // _.chat.think("tip" + text + " : " + text) // _.chat.debug(message) }) cb.onEnter(function (user) { var user = _.registerUser(user) _.chat.whisper(user, _.roomRules) }) cb.onLeave(function(user) { var user = _.registerUser(user) }) //cb.tipOptions(function () { // var options = { // options: [], // label: "Select a game:" // } // _.forEach(_.games, function (game, key) { // options.options.push({ label: game.name }) // }) // return options //}) //********************************************************************* _.timers = { paused: false , timeLeft: 0 , level: 0 , levels: [ { name: "Fully clothed", timeLeft: 0, modifier: 1, timeMax: 0 } , { name: "Shoes countdown", onEnter: "Taking shoes off", onLeave: "Putting shoes back on", timeLeft: 0, modifier: 6, timeMax: 0 } , { name: "Shirt countdown", onEnter: "Taking shirt off", onLeave: "Putting shirt back on", timeLeft: 0, modifier: 5, timeMax: 0 } , { name: "Pants countdown", onEnter: "Taking pants off", onLeave: "Putting pants back on", timeLeft: 0, modifier: 4, timeMax: 0 } , { name: "Bra countdown", onEnter: "Taking bra off", onLeave: "Putting bra back on", timeLeft: 0, modifier: 3, timeMax: 0 } , { name: "Panties countdown", onEnter: "Taking panties off", onUpdate: "Staying naked a little while longer", onLeave: "Putting panties back on", timeLeft: 0, modifier: 2, timeMax: 3000 } // , { name: "Naked countdown", onEnter: "Staying naked a little while longer", onUpdate: "Staying naked a little while longer", timeLeft: 0, modifier: 1, timeMax: 3000, limit: _.naked } // , { name: "Hitachi", timeLeft: 0, modifier: .2, timeMax: -1, limit: _.toy } ] , initialize: function () { this.timeLeft = 0 this.level = 0 _.panel.dirty = true } , currentLevel: function () { return this.levels[this.level] } , update: function () { if (this.paused) { return } if (this.level == 0) { return } var level = this.currentLevel() if (level.timeLeft <= 0) { this.levelDown() } // _.chat.debug(level.name, level.timeLeft) level.timeLeft -= 1 if ((this.timeLeft == 0) && (this.level <= 0)) { this.initialize() } else { _.panel.dirty = true } } , addTime: function (time) { var level = this.currentLevel() // _.chat.debug("Add", level.name, level.timeLeft) if (level.timeLeft >= (level.timeMax * _.secondsInMinute)) { level = this.levelUp() } else { if (level.onUpdate) { _.chat.shout(level.onUpdate) } } var level = this.currentLevel() level.timeLeft += Math.floor(_.toInt(time) * _.secondsInMinute * level.modifier) // _.chat.shout("Adding " + time + " minutes to the countdown timer") } , pause: function () { this.paused = true } , unpause: function () { this.paused = false } , levelUp: function () { if ((this.level < this.levels.length - 1)) { this.level += 1 var level = this.currentLevel() if (level.onEnter) { _.chat.shout(level.onEnter) } //_.chat.shout("Remove " + level.name) return true } else { var level = this.currentLevel() if (level.onUpdate) { _.chat.shout(level.onUpdate) } } return false } , levelDown: function () { if (this.level > 0) { var level = this.currentLevel() if (level.onLeave) { _.chat.shout(level.onLeave) } //_.chat.shout("Put " + level.name + " back on") this.level -= 1 } } } //********************************************************************* _.onDraw = function (user) { _.panelRow(1, "Naughty lottery", "Tip to play") //_.panelRow(2, "-") var level = _.timers.currentLevel() _.panelRow(2, level.name, level.timeLeft ? _.formatTime(level.timeLeft) + " min" : "") if (_.group.running) { _.panelRow(3, "Group show", _.formatTime(_.groupDuration) + " min") } else { _.panelRow(3, "Group show " + Math.floor(_.groupDuration / _.secondsInMinute) + " min", _.goalTip + " / " + _.choices.group) } } _.panelRow = function (index, name, value) { _.panel.rows[index] = { name: name , value: value } //_.panel.dirty = true } cb.onDrawPanel(function (user) { _.onDraw(user); var template = 0; var result = {}; for (var rowIndex = 1; rowIndex <= 3; rowIndex++) { var row = _.panel.rows[rowIndex] || { value: "" } if (row.name) { result["row" + rowIndex + "_label"] = row.name; template = rowIndex; } result["row" + rowIndex + "_value"] = row.value; } result.template = [ "3_rows_11_21_31" , "3_rows_12_21_31" , "3_rows_12_22_31" , "3_rows_of_labels" ][template]; return result; }) //********************************************************************* _.Collection = function () { this.items = {} this.map = [] } _.Collection.prototype = { add: function (item) { var id = this.map.length + 1 item.id = id this.items[item.name] = item this.map[id] = item return item } , get: function (key) { if (key && key.id) { key = key.id } else if (key && key.user) { key = key.user } return this.map[key] || this.items[key] || null } , forEach: function (fn) { _.forEach(this.items, fn) } } //********************************************************************* _.users = new _.Collection() _.grey = 0; _.pay0 = 1; _.pay1 = 2; _.pay2 = 4; _.pay3 = 8; _.fan = 16; _.mod = 32; _.admin = 64; _.registerUser = function (cbUser) { var username = cbUser.user || cbUser.from_user var user = _.users.get(username) if (!user) { user = _.users.add({ name: username , amount: 0 , whispers: [] , group: false , vip: false , exclusive: 0 , inGroup: function (test) { return !!(test && this.rank) } , groupName: function () { return _.groupName(this.rank) } , checkRights: function (rights) { return !(rights & this.rank) } , checkMinRights: function (right) { return (right >= this.rank) } , groupText: function () { var result = "" if (this.group) { result += " group" if (this.vip) { result += " vip" } } if (this.exclusive) { result += " exlusive" } return result } }) } user.rank = _.userRank(cbUser) user.isAdmin = cb.room_slug === cbUser.user user.isFan = cbUser.in_fanclub user.isMod = cbUser.is_mod user.lastTip = cbUser.amount || 0 user.amount += user.lastTip return user } _.findUser = function (user) { return user? _.users.get(user) || _.users.get(user.name || user.user): null } //_.isUserOfGroup = function (user, test) { // return !!test & _.userRank(user); //} //_.isFan = function (user) { // return user && user.in_fanclub; //} //_.isMod = function (user) { // return user && user.is_mod; //} _.isAdmin = function (user) { return cb.room_slug === user; } _.userRank = function (user) { if (!user) { return 0; } var result = 0; result &= user.has_tokens ? _.pay0 : 0; result &= user.tipped_recently ? _.pay1 : 0; result &= user.tipped_alot_recently ? _.pay2 : 0; result &= user.tipped_tons_recently ? _.pay3 : 0; result &= user.in_fanclub ? _.fan : 0; result &= user.is_mod ? _.mod : 0; result &= _.isAdmin(user); return result; } _.groupName = function (group) { switch (group) { case _.grey: return ""; case _.pay0: return "darkpurple"; case _.pay1: return "lightpurple"; case _.pay2: return "darkblue"; case _.fan: return "green"; case _.mod: return "red"; } } _.resetTags = function () { _.settings.tags = _.settings.initialTags; _.setSubject(); } _.setTag = function (tag) { if (tag) { _.settings.tags.push(tag); _.setSubject(); } } _.delTag = function (tag) { cbjs.arrayRemove(array, object); _.setSubject(); } _.setSubject = function (subject) { if (subject == null) { subject = "" _.forEach(_.settings.tags, function (tag) { subject += "#" + tag + " " }) } //_.chat.think("Changing room name: " + subject); cb.changeRoomSubject(subject); } //********************************************************************* _.group = { running: false , runningLimitCam: false , addUser: function (user) { user.group = true if (_.cam.running() && !_.cam.hasAccess(user.name)) { _.cam.addUser(user.name) } } , removeUser: function (user) { user.group = false user.vip = false if (_.cam.running()) { _.cam.removeUser(user.name) } } , checkUserPreAccess: function (user) { return (user.group || user.amount >= 25 || user.isFan || user.isMod) } , checkUser: function (user) { if (this.checkUserPreAccess(user)) { if (!this.running && _.cam.running() && !_.cam.hasAccess(user.name)) { _.cam.addUser(user.name) } } } , clearUsers: function () { cb.limitCam_removeAllUsers() } , update: function () { if (this.running) { _.panel.dirty = true if (_.groupDuration > 0) { _.groupDuration -= 1 } } } , start: function () { var users = [] this.stop() _.users.forEach(function (user) { if (user.group && !_.cam.hasAccess(user.name)) { users.push(user.name) } }) this.running = true this.clearUsers() _.cam.addUser(users) _.cam.start() var message = "Group show has started. Buy-in 250 tokens." _.chat.shout(message) } , startLimitCam: function () { var self = this this.stop() // if (this.running) { return } // if (this.runningLimitCam) { return } var users = [] _.users.forEach(function (user) { if (self.checkUserPreAccess(user) && !_.cam.hasAccess(user.name)) { _.chat.debug("adding " + user.name) users.push(user.name) } }) this.runningLimitCam = true _.cam.addUser(users) _.cam.start() var message = "Pre-group show has started. Open to anyone who tipped over 25 tokens." _.chat.shout(message) } , startExclusive: function () { var users = [] if (_.cam.running()) { _.users.forEach(function (user) { if (user.exclusive && _.cam.hasAccess(user.name)) { _.cam.removeUser(user.name) } }) } else { _.users.forEach(function (user) { if (user.exclusive) { user.push(user.name) } }) _.cam.start() } } , stop: function () { this.running = false //this.runningLimitCam = false if (_.cam.running()) { var message = "Show has stopped." _.chat.shout(message) } _.cam.stop() this.clearUsers() } } //********************************************************************* _.cam = { addUser: function (user) { if (!_.isArray(user)) { user = [user] } if (user.length) { cb.limitCam_addUsers(user) } } , removeUser: function (user) { if (!_.isArray(user)) { user = [user] } cb.limitCam_removeUsers(user) } , hasAccess: function (user) { return cb.limitCam_userHasAccess(user) } , clear: function () { return cb.limitCam_removeAllUsers() } , list: function () { cb.limitCam_allUsersWithAccess() } , start: function (message) { if (!this.running()) { cb.limitCam_start() } } , stop: function (message) { cb.limitCam_stop() } , running: function () { return cb.limitCam_isRunning() } } //********************************************************************* _.chat = { message: function (type, message, user, group) { var color = _.colors[type]; message = "" + (message || ""); user = user ? (user.user || user.name) : "" //if (user) { // _.chat.debug(user) //} cb.sendNotice(message, user, color.back || "", color.fore || "", color.weight || "", _.groupName(group)); } , alert: function (message) { _.chat.message("alert", message); } , shout: function (message) { _.chat.message("shout", message); } , say: function (group, message) { var groups = _.isArray(group) ? group : [group]; groups.forEach(function (group) { _.chat.message("say", message, "", group); }); } , whisper: function (user, message) { var users = _.isArray(user) ? user : [user]; users.forEach(function (user) { _.chat.message("whisper", message, user); }); } , think: function (message) { _.chat.message("think", message, null); } , debug: function () { var message = "" for (var index = 0; index < arguments.length; index++) { var arg = arguments[index] message += (index ? ", " : "") + (typeof arg == "object" ? JSON.stringify(arg): arg) } _.chat.message("debug", message, null, _.admin); } } //********************************************************************* //_.format = function (template, vars) { // return (template || "").replace(/\{(\w*)\}/gi, function ($, found) { // return vars[found] || ""; // }); //} //_.isString = function (value) { // return !!(value && (value.constructor == String)) //} //_.isNumber = function (value) { // return !!(value && (value.constructor == Number)) //} _.log = function (value, base) { return Math.log(value) / Math.log(base || 10); } _.random = function (max) { return Math.floor(Math.random() * max) + 1; } _.val = function (value) { return _.isFunction(value) ? value() : value; } _.isArray = function (value) { return !!(value && (value.constructor == Array)); } _.isFunction = function (ar) { return !!(ar && (ar.constructor == Function)); } _.default = function (value, defaultValue) { return value != null ? value : defaultValue; } _.toInt = function (value) { return Math.round(value || 0) } _.toArray = function (value) { if (_.isArray(value)) { return value } if (value) { return [value] } return null } _.leftPad = function (str, fill, count) { str = String(str) if (str.length >= count) return str; return new Array(count - str.length + 1).join(fill) + str } _.forEach = function (obj, fn) { if (!obj) { return } if (_.isArray(obj)) { for (var index = 0; index < obj.length; index++) { fn(obj[index], index); } } else { for (var key in obj) { fn(obj[key], key); } } } _.formatTime = function (seconds) { return Math.floor(seconds / _.secondsInMinute) + ":" + _.leftPad(seconds % _.secondsInMinute, "0", 2); } _.optional = function(first, middle, last) { var result = "" if (first && middle) { result += first + middle; } if (last && middle) { if (!first) { result += middle; } result += last; } return result; } _.getJsonValue = function (json, name, delimiter) { if (!name) { return json } if (!json) { return undefined } if (json[name] !== undefined) { return json[name]; } delimiter = delimiter || "."; name = name.replace("[", ".").replace("]", ""); var path = name.split(delimiter); for (var index = 0; index < path.length; index++) { return json[path[index].toLowerCase()]; } return json; } _.jsonValues = function(obj, key) { var result = [] for (var index in obj) { var value = obj[index][key] if (value) { result.push(value) } } return result } _.programLoop = function () { if (!_.initialized) { _.initialize(); _.initialized = true } cb.setTimeout(function () { _.timers.update() _.group.update() if (_.panel.dirty) { cb.drawPanel() } _.panel.dirty = false _.programLoop() }, _.settings.drawInterval) } _.hasSubcommands = function (node) { for (var key in node) { if (key.substr(0, 1) != "_") { return true } } return false } _.programLoop() //for (var index in cb) { // _.chat.debug(index + ":" + cb[index]) //} //for (var index in cb.settings) { // _.chat.debug("SETTINGS " + index + ":" + cb.settings[index]) //} //for (var index in cb.settings_choices) { // _.chat.debug("CHOICES " + index + ":" + cb.settings_choices[index]) //} _.commands = { _command: "command" , help: { _params: null , _help: "Show command list" // _params: ["command"] , _shortcut: "h" , _value: function (section) { var node = _.getJsonValue(_.commands, section, " ") var user = this.user if (node._help) { _.chat.whisper(user, node._help) } if (_.hasSubcommands(node)) { _.chat.whisper(user, "Optional subcommands:") _.forEach(node, function ($, command) { if (command.substr(0, 1) != "_") { var commandNode = _.commands[command] var params = (_.isArray(commandNode._param) ? commandNode._param : _.optional(" {", (_.isArray(commandNode._params) ? commandNode._params.join("} {") : commandNode._params), "}")) _.chat.whisper(user, "/" + command + params + " - " + commandNode._help) } }) } } } , users: { _params: null , _shortcut: "u" , _rank: _.admin , _help: "Shows user list" , _value: function () { var self = this _.chat.whisper(self.user, "Username ID - Tip") _.users.forEach(function (user) { if ((user.amount > 0) || (user.isMod) || (user.isFan) || (user.isAdmin)) { _.chat.whisper(self.user, user.name + " #" + user.id + _.optional(" (", user.amount, " tokens)") + _.optional(" ", user.groupText())) } }) } } , whisper: { _params: ["user", "text"] , _shortcut: "w" , _help: "Whisper text to user" , _value: function (userid, text) { var userFrom = this.user var userTo = _.users.get(userid) if (!userTo) { return _.chat.debug("Unknown user") } _.chat.think("/w " + userTo.name + ": " + text) if (userTo && userFrom.name) { _.chat.whisper(userTo, userFrom.name + " whispers: " + text) } } } , rules: { _params: null , _rank: _.admin , _help: "Lists the room rules" , _value: function () { _.chat.alert(_.roomRules) } } , rollprize: { _params: ["user", "amount"] , _rank: _.admin , _help: "Tip amount as user" , _value: function (user, tipAmount) { // var user = _.findUser(userId) if (!user) { return _.chat.whisper(user, "Wrong user") } if (!tipAmount) { return _.chat.whisper(user, "Amount is missing") } var game = _.games[1] game.runGame(user, tipAmount) } } , prizes: { _params: ["tipAmount"] , _help: "Show prize chances based on tip amount" , _value: function (tipAmount) { var self = this var groupMinimum = _.toInt(_.choices.group) tipAmount = _.toInt(tipAmount) || 100 function debugprizes(prizes, count) { _.chat.whisper(self.user, "prizes: " + count) _.forEach(prizes, function (prize, index) { _.chat.whisper(self.user, index + ": " + ((prizes[index]) || 0)) }) } function averageprice(prizes, token) { var count = 1 prizes = prizes || {} for (var index = 0; index < count; index++) { var prize = _.games[1].runGame(null, token, true) var prizeText = prize.name switch (prize.action) { case "groupinvite": if (prize.min) { prizeText += " extended with " + prize.min + " minutes" } break case "amount": prizeText += " for " + prize.min + " times" break case "duration": prizeText += " for " + prize.min + " minutes" break } prizes[prizeText] = (prizes[prizeText] || 0) + 1 } //_.forEach(prizes, function (prize, key) { // prizes[key] /= prize[key] / count //}) return prizes } var tipamounts = [tipAmount] for (var tipIndex = 0; tipIndex < tipamounts.length; tipIndex++) { var tip = tipamounts[tipIndex] _.chat.whisper(self.user, "") _.chat.whisper(self.user, "Show total prizes for " + groupMinimum + " tokens based on tips of " + tip) var count = groupMinimum / tip var averagePrizes = {} for (var index = 1; index <= count; index++) { var prizes = averageprice(null, tip) _.forEach(prizes, function (prize, key) { if (!averagePrizes[key]) { averagePrizes[key] = 0 } averagePrizes[key] += 1 //prize }) } debugprizes(averagePrizes, count) } } } //, games: { // _params: null // , _help: "Show running games" // , _value: function () { // var user = this.user // _.chat.whisper(user, "List of games") // _.forEach(_.games, function (game, index) { // _.chat.whisper(user, index + ": " + game.name + " (" + (game.active? "on": "off") + ")") // }) // } //} //, showtags: { // _params: "" // , _help: "Show current room tags" // , _rank: _.admin // , _value: function () { // var user = this.user // _.chat.whisper(user, "Current tags:") // _.chat.whisper(user, _.settings.tags.join(" ")) // } //} //, addtag: { // _params: "" // , _help: "Add room tag" // , _rank: _.admin // , _value: function (tag) { // var user = this.user // _.chat.whisper(user, "Adding tag: " + tag) // _.setTag(tag) // } //} //, removetag: { // _params: "" // , _help: "Remove room tag" // , _rank: _.admin // , _value: function (tag) { // var user = this.user // _.chat.whisper(user, "Removing tag: " + tag) // _.delTag(tag) // } //} //, resettags: { // _params: "" // , _rank: _.admin // , _help: "Reset to original room tags" // , _value: function () { // var user = this.user // _.chat.whisper(user, "Resetting room tags") // _.resetTags() // } //} , addtime: { _params: "minutes" , _rank: _.admin , _help: "Adds minutes to countdown timer" , _value: function (minutes) { _.timers.addTime(minutes) } } //, shortcuts: { // _params: null // , _help: "Show shortcut list" // , _value: function () { // _.forEach(_.shortcuts, function (command, shortcut) { // if (_.checkrights(command, this.user)) { // var user = this.user // _.chat.whisper(user, "/" + key + ": " + command.name) // } // }) //} , setmood: { _params: "effect" , _rank: _.admin , _help: "Modifies effectiveness of tip, allowed values -50 to 100 (half to double effect)" , _value: function (mood) { mood = Math.floor(_.toInt(mood)) if ((mood < -50) || (mood > 100)) { return _.chat.whisper(this.user, "Effect should be a value between -50 and 100") } _.choices.mood = mood _.chat.whisper(this.user, "Changing mood to: " + _.choices.mood) } } , showmood: { _params: null , _rank: _.admin , _help: "Shows effectiveness of tip" , _value: function () { _.chat.whisper(this.user, "Mood: " + _.choices.mood) } } //, invitetogroup: { // _params: "user" // , _rank: _.admin // , _help: "Invites user to group" // , _value: function (user) { // var user = _.findUser(user) // user.group = true // } //} //, invitetovip: { // _params: "user" // , _rank: _.admin // , _help: "Invites user to group as VIP" // , _value: function (user) { // var user = _.findUser(user) // user.group = true // user.vip = true // } //} //, invitetoexclusive: { // _params: "user" // , _rank: _.admin // , _help: "Invites user to exclusive" // , _value: function (user) { // user.group = true // user.vip = true // user.exclusive = true // } //} , startshow: { _params: null , _rank: _.admin , _help: "Starts group show" , _value: function () { _.group.start() } } , stopshow: { _params: null , _rank: _.admin , _help: "Stops group show" , _value: function () { _.group.stop() } } , groupinvite: { _params: "user" , _rank: _.admin , _help: "Adds user or group to group show" , _value: function (user) { var user = _.findUser(user) _.group.addUser(user) } } , startpreshow: { _params: null , _rank: _.admin , _help: "Starts limited cam show" , _value: function () { _.group.startLimitCam() } } , stoppreshow: { _params: null , _rank: _.admin , _help: "Stops limited cam show" , _value: function () { _.group.stop() } } , resetgroup: { _params: "" , _rank: _.admin , _help: "Resets goal" , _value: function () { _.group.clearUsers() _.goalTip = 0 _.groupDuration = _.toInt(_.choices.group) _.panel.dirty = true _.chat.shout("Group show goal has been reset, next show will be when " + _.choices.group + " tokens are tipped") _.users.forEach(function (user) { _.group.removeUser(user) }) } } , setgoal: { _params: "goal" , _rank: _.admin , _help: "Sets group show goal" , _value: function (goal) { goal = Math.floor(_.toInt(goal)) _.choices.group = goal _.chat.whisper(this.user, "Changing group show goal to: " + _.choices.group) _.panel.dirty = true } } , showgoal: { _params: null , _rank: _.admin , _help: "Shows group show goal" , _value: function () { _.chat.whisper(this.user, "Group show goal: " + _.choices.group) } } //, extendedadd: { // _params: "user" // , _rank: _.admin // , _help: "Adds user or group to group show" // , _value: function (user) { // //todo: add user to group show // } //} //todo: //, show: { //} //, set: { //} //, ".": { // _params: "" // , _help: "Start the next won prize" // , _value: function () { // } //} //, "kick": { // _params: "userid" // , _value: function (userid) { // } // , week: { // _command: "userid" // , _value: function (userid) { // } // } //} } _.length = function (ar) { if (_.isArray(ar)) { return ar.length } if (ar) { return 1 } return 0 } _.doCommand = function (user, line) { var engine = { text: line || "" , pos: 0 , word: "" , commands: [] , argument: "" , arguments: null , current: null , user: user } var current = _.commands do { engine.current = current _.getNextWord(engine) current = current[engine.word] || current[_.shortcuts[engine.word]] } while (current) engine.argument = engine.word + _.optional(" ", engine.text.substr(engine.pos)) // engine.path = engine.commands.join(/\s/, " ") var command = engine.current if (command && _.isFunction(command._value)) { engine.arguments = [] if (command._params) { var params = _.toArray(command._params) for (var index = 0; index < params.length; index++) { var word = index == params.length - 1 ? engine.word + _.optional(" ", engine.text.substr(engine.pos)) : engine.word if (!word) { _.chat.whisper(user, engine.text + " failed. Argument " + params[index] + " is missing\n") var params = (_.isArray(command._param) ? command._param : _.optional(" {", (_.isArray(command._params) ? command._params.join("} {") : command._params), "}")) _.chat.whisper(user, "Usage: " + engine.commands.join(" ") + params) return } engine.arguments.push(word) _.getNextWord(engine) } } //engine.argument = engine.text.substr(engine.pos) //args.push(engine.argument) command._value.apply(engine, engine.arguments) } } _.getNextWord = function(engine) { var quoteMode = false var prev = "" var char = "" if (engine.word) { engine.commands.push(engine.word) } engine.word = "" for (engine.pos; engine.pos < engine.text.length; engine.pos++) { prev = char || "" char = engine.text.charAt(engine.pos).toLowerCase() switch (char) { case " ": engine.pos += 1 if (engine.word) { return engine } break default: engine.word += char } } return engine } _.loadGame = function (game) { game = _.val(game) _.games.push(game) _.val(game.initialize) } _.loadGame(function () { var game = { name: "naughtygf" , settings: { active: { text: "TheNaughtyGF Game active", options: "yesno", value: true } , group: { text: "Group start", options: ["no group", "1000", "1500", "2000", "2500", "3000", "3500", "4000", "4500", "5000"], value: "2000" } //, group: { text: "Private active", options: "yesno", value: true } } , prizes: [] , initialize: function () { var categories = [ [ /*Category 0 */ , { name: "A big thank you", category: 1 } ], [ /*Category 1 */ , { name: "Kiss" } , { name: "Smile" } , { name: "Wink" } ], [ /*Category 2 */ , { name: "Kiss" } , { name: "Smile" } , { name: "Lick lips" } , { name: "Wink" } , { name: "Show hand-horns" } ], [ /*Category 3 */ , { name: "Question", action: "question" } , { name: "Twirl" } , { name: "Pinch nipples" } , { name: "Play airguitar" } , { name: "Spank ass", min: 5, action: "amount" } , { name: "Strip piece of clothing", min: 1, action: "strip" } ], [ /*Category 4 */ , { name: "Naughty Question", action: "naughty question" } // , { name: "Push ups", min: 2 } , { name: "Lick and suck finger" } , { name: "Shake ass" } , { name: "Slap boobs", min: 5, action: "amount" } , { name: "Strip piece of clothing", min: 5, action: "strip" } ], [ /*Category 5 */ , { name: "Spank ass", min: 5, action: "amount" } , { name: "Play with boobs", min: 1, action: "duration" } , { name: "Spank ass", min: 5, action: "amount" } , { name: "Dance", min: 1, action: "duration" } , { name: "Strip piece of clothing", min: 7, action: "strip" } , { name: "Toy licking, sucking and teasing with mouth", min: 1, action: "duration" } ], [ /*Category 6 */ // , { name: "Slave of Mistress", min: 10, action: "duration" } , { name: "Tease", min: 1, action: "duration" } , { name: "Flogger Spank ass", min: 5, action: "amount" } , { name: "Toy licking, sucking and teasing with mouth", min: 1, action: "duration" } , { name: "lets have fun with my boobs toy boobs fucking", min: 1, action: "duration" } , { name: "Instruction [JOI/CBT/SPH]", min: 10, action: "duration" } , { name: "Strip piece of clothing", min: 10, action: "strip" } , { name: "Group invite", action: "groupinvite" } ], [ /*Category 7 */ // , { name: "Instruction [JOI/CBT/SPH]", min: 10, action: "duration" } // , { name: "Video send by mail" } , { name: "Group invite", action: "groupinvite" } // , { name: "Strip piece of clothing", min: 15, action: "strip" } ], [ /*Category 8 */ , { name: "Group invite", action: "groupinvite", min: 1 } //, { name: "Group VIP invite", action: "groupinvitevip" } ], [ /*Category 9 */ , { name: "Group invite", action: "groupinvite", min: 2 } //, { name: "Group VIP invite", action: "groupinvitevip" } ], [ /*Category 10 */ , { name: "Group invite", action: "groupinvite", min: 3 } //, { name: "Group VIP invite", action: "groupinvitevip" } //, { name: "Private", min: 10, action: "duration" } ], [ /*Category 11 */ , { name: "Group invite", action: "groupinvite", min: 4 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 10, action: "duration" } ], [ /*Category 12 */ , { name: "Group invite", action: "groupinvite", min: 5 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 15, action: "duration" } ], [ /*Category 13 */ , { name: "Group invite", action: "groupinvite", min: 6 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 20, action: "duration" } ], [ /*Category 14 */ , { name: "Group invite", action: "groupinvite", min: 7 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 25, action: "duration" } ], [ /*Category 15 */ , { name: "Group invite", action: "groupinvite", min: 8 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 30, action: "duration" } ], [ /*Category 16 */ , { name: "Group invite", action: "groupinvite", min: 9 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 35, action: "duration" } ], [ /*Category 17 */ , { name: "Group invite", action: "groupinvite", min: 10 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 40, action: "duration" } ], [ /*Category 18 */ , { name: "Group invite", action: "groupinvite", min: 11 } //, { name: "Exclusive Group invite", action: "groupinviteex", min: 45, action: "duration" } ] ] //game.prizes = [] //_.forEach(actions, function (action) { // var prizes = game.prizes[action.category] || (game.prizes[action.category] = []) // for (var index = 0; index < (action.weight || 1) ; index++) { // prizes.push(action) // } //}) game.prizes = categories } , runGame: function (user, tip, debug) { user = _.findUser(user) tip = _.toInt(tip) var tip = tip + (_.choices.mood / 100 * tip) var category = Math.round(1 + _.log((tip) / 5, 2) + 5 - (_.log(_.random(32), 2))) if (category >= this.prizes.length - 1) { category = this.prizes.length - 1 } if (category <= 0) { var prize = { name: "Thank you" , category: 0 } } else { var prizes = this.prizes[category] if (!_.isArray(prizes)) { return _.chat.debug("Error, missing prizes for category " + category) } var prizeIndex = _.random(prizes.length - 1) var prize = prizes[prizeIndex] } if (!prize) { return _.chat.debug("Prize is missing in category " + category + " prizeindex " + prizeIndex) } if (!debug) { this.doAction(user, prize) } return { tip: tip , category: category , name: prize.name , min: prize.min , action: prize.action } } , doAction: function (user, prize, tip) { var action = (prize.action || prize.name).toLowerCase() var prizeText = user.name + " wins: " //if (prize.invite) { // switch (prize.invite.toLowerCase()) { // case "groupinvite": // var extension = (user.group? 1 : 0) + (user.min || 0) // user.group = true // prizeText += prize.name + extension ? " and the group show will be extended with " + extension + " minutes.\nTotal group show duration is " + _.groupDuration + " minutes" : "" // break // case "groupinvitevip": // user.group = true // user.vip = true // prizeText += prize.name // break // case "groupinviteex": // user.group = true // user.vip = true // user.exclusive = (user.exclusive || 0) + prize.min // prizeText += prize.name // break // } //} else { switch (action) { case "question": var question = questions[_.random(questions.length) - 1] prizeText += "Asks for the truth: " + question break case "naughty question": var naughtyquestion = naughtyquestions[_.random(naughtyquestions.length) - 1] prizeText += "Ask for the truth: " + naughtyquestion break case "strip": _.timers.addTime(prize.min) // prizeText += prize.min + " minutes added to the strip timer." prizeText += "Remove piece of clothing" break case "groupinvite": var extension = _.toInt((user.group ? 1 : 0) + (prize.min || 0)) _.groupDuration += (extension * _.secondsInMinute) if (user.group) { prizeText += "The group show will be extended with " + extension + (extension == 1 ? " minute" : " minutes") + ".\nTotal group show duration is " + Math.floor(_.groupDuration / _.secondsInMinute) + " minutes" } else { prizeText += prize.name + (extension ? " and the group show will be extended with " + extension + (extension == 1 ? " minute" : " minutes") + ".\nTotal group show duration is " + Math.floor(_.groupDuration / _.secondsInMinute) + " minutes" : "") } _.group.addUser(user) _.panel.dirty = true break default: prizeText += prize.name } //} switch (action) { case "amount": prizeText += " for " + prize.min + " times" break case "duration": prizeText += " for " + prize.min + " minutes" break } prizeText += "." _.chat.shout(prizeText) } } _.panel.dirty = true return game }) // cb.message("/do 1 200") // cb.message("/addtime 20") var initialize = function () { _.forEach(_.games, function (game) { _.forEach(game.settings, function (setting) { }) //todo: find options }) _.forEach(_.commands, function (command) { if (command._shortcut) { _.shortcuts[command._shortcut] = command _.forEach(command, function (subcommand) { if (subcommand && subcommand._shortcut) { _.shortcuts[command._shortcut + subcommand] = command } }) } }) } initialize() var questions = [ "What is your biggest fear in a relationship?" , "What was your funniest first date ever?" , "What is your biggest turn off in a partner?" , "What is your weirdest habit?" , "How many kids would you like to have?" , "What is the perfect first date?" , "Can you tell one embarrassing fact about yourself?" , "What was your childhood nickname?" , "What is your favourite movie?" , "Describe your worst date ever?" , "If there was no such thing as money, what would you do with your life?" , "What is your favourite food?" , "What are your three favourite colours, and why?" , "What is your dream job?" , "If you were trapped on an island for 3 days, what would you take with you?" , "Who is your favourite person and why?" , "Do you prefer apple or android?" , "How do you put your toilet paper on the roll?" , "What is your best talent?" , "Do you believe in love at first sight?" , "Do you believe in love at all?" , "What is your dream wedding?" , "Would you ever consider being a nudist?" , "How do you feel about end pieces of a loaf of bread?" , "Can you touch your tongue to your nose?" , "If you could take away one bad thing in the world, what would it be?" , "What is your guilty pleasure?" , "What is the most exotic food that you have ever eaten?" , "What country would like to live in if you had the chance?" , "If you could change one thing on your body, what would it be?" , "What do you daydream about the most?" , "Describe the weirdest dream you've ever had?" , "Can you lick your elbow?" , "Is the dress Black and Blue or Gold and White?" , "How do you feel about social media?" , "What is your favourite season of the year?" , "Could you go a week without junk food?" , "How was your first kiss?" , "Describe your worst kiss ever?" , "Do you like to exercise?" , "What is your favourite color?" , "What is your favourite animal?" , "What is your favourite food?" , "What is your favourite school subject?" , "Who is your favourite teacher, and why?" , "What is your favourite song?" , "Who is your favourite Disney character?" , "What is your favourite TV show?" , "What is your pet's name?" , "What is your shoe size?" , "What is your favourite movie?" , "Who is your favourite singer?" , "Do you like bugs?" , "What is your favourite vegetable?" , "Would you rather be a chicken or duck?" , "Would you rather be a pig or snake?" , "What is your favourite game to play?" , "Do you like doing chores?" , "What is your favourite thing to do on the weekends?" , "Do you know how to dance?" , "Do you know how to cook?" , "Can you speak a different language?" , "What is your favourite thing to do after school?" , "Are you in any sports?" , "What is your favourite sport?" , "What animal are you scared of?" , "Are you scared of monsters?" , "Do you have an imaginary friend?" , "Who is your best friend?" , "When did you learn how to ride a bike?" , "Can you use a pogo stick?" , "What do you want to be when you grow up?" , "What is your favourite sport in the Olympics?" , "What is the capital of the state that you live in?" , "If you could go anywhere in the world, where would you go?" , "If you a million dollars, what would you do with all of your money?" , "If you could dye your hair any colour, what colour would you pick?" , "If you could be any animal, which one would you be?" , "What did you do on your first night of freshman year?" , "Would you ever have sex with one of your professors? If so, which one?" , "Have you ever blacked out from drinking too much?" , "What is the craziest thing that you have ever done while drunk?" , "Who is the best roommate that you have ever had?" , "What is the most annoying thing that your roommate has ever done?" , "Have you ever had sex in your roommate's bed?" , "Did you smoke or drink before college/university?" , "Have you ever slept with your roommate's bf/gf?" , "Have you ever had sex in your parent's bed?" , "Would you drop out of school if you were to win the lottery?" , "What is the best party that you've ever been to?" , "How many parties have you thrown at your house?" , "Have you ever had a threesome?" , "Have you ever wanted to have an orgy?" , "Have you used a toy while have sex?" , "What is the longest you've had sex in one session?" , "What is most amount of shots that you have taken in one night?" , "Have you ever thrown up in someone's car?" , "Have you ever wet bed from being too drunk?" , "What is the longest you have gone without sleep?" , "What is the longest you've gone without sex?" , "How many times have you skipped class for no reason?" , "Have you ever woken up to a stranger in your bed?" , "What is the earliest you have ever started drinking in the day?" , "Have you ever spent your parent's money on alcohol?" , "How many freshmen have you slept with?" , "Have you ever lied to your parents about if you were in classes or not?" , "Have you ever taken money from your roommate?" , "What is the most annoying thing your roommate does?" , "Have you been in any fights while in school?" , "Have you ever had someone write a paper for you?" , "Have you ever done a sex train?" , "When was your first time?" , "Who do you love?" , "Have you ever stolen anything?" , "Who is your best friend?" , "Have you ever had a threesome?" , "Who was your worst intimate partner? What did he/she do?" , "What has been your biggest lie?" , "Who do you like really bad?" , "What is the most that you would do for someone you love?" , "How was your first kiss?" , "How many girlfriends/boyfriends have you had?" , "What is the stupidest thing that you've ever done in your life?" , "What is the dumbest game you've ever played with anyone?" , "Name 10 body parts of your partner that you'd like to kiss." , "Tell about a few items or things that you bought and never used or regretted buying." , "What was the most embarrassing moment of your life?" , "Have you ever been humiliated? Explain what happened and how you felt." , "Describe the strangest dream you've ever had." , "What is the quality or features you would like to change about yourself?" , "Have you ever fallen in love with a friend of your partner? Did anyone notice?" , "What do you think about marriage?" , "What is the craziest thing that has happened to you in a mall?" , "Mention the most annoying experience you've ever had with a man/woman." , "What is the meanest thing you have ever done in your life?" , "Have you ever thought of cheating on your boyfriend / girlfriend?" , "Have you ever lied to your partner to avoid an intimate moment, for example, have said that you feel sick?" , "What is the worst rumor or gossip you said or repeated and at the end, found out that it was something wrong?" , "What is the most disgusting joke anyone has ever played on you?" , "What's your wildest fantasy?" , "What is the stupidest thing you've ever done in front of a crowd?" , "Have you ever peed in a pool?" , "Have you ever kissed someone of the same sex?" , "If you were marooned on an island with one person whom you know personally, who would like that person to be?" , "Mention something that you have done and that you've never wanted anyone to know." , "What is the dumbest thing you've ever said to your partner while having sex?" , "If you had to choose someone for a sexual trio, who would it be?" , "What is your most annoying habit?" , "What's that one silly belief which you know is not real, but you are still clinging to it?" , "What is your most embarrassing experience to date?" , "Name 10 things that you cannot do without and that always make you think about why you need to live." , "What are the qualities you think that your future husband should have?" , "What is the most romantic dream you've ever had?" , "What is your favorite romantic movie and why do you like it so much?" , "Who is your latest crush?" , "Have you ever had a crush on a teacher?" , "What do you think is the worst thing about being a girl?" , "What is the stupidest thing you've ever done in public?" , "What's your biggest fear?" , "What's the wildest or most daring thing you've ever done?" , "What were the sexiest clothes you once wore and for whom?" , "When was the last time you told a lie and what was it?" , "Have you ever cheated on your boyfriend or at least wanted to? Give details." , "What is the most embarrassing thing you've ever done to draw the attention of someone of the opposite sex?" , "What prejudice do you harbor? " , "If you had only 24 hours left to live, what would you do?" , "What music are you embarrassed about listing too?" , "What is your guilty pleasure? " , "What TV show are you embarrassed about watching? " , "What is the worst thing about being a grown-up?" , "What is the longest you have gone without taking a bath?" , "When have you been fired from a job?" , "What celebrity do you have a crush on? " , "If you were the opposite sex for one day, what would you look like and what would you do?" , "What talent do you have that is embarrassing to share?" , "If you will be given a chance to become invisible for one day, what would do with this ability?" , "What are you afraid of?" , "What fear keeps you up at night?" ] var naughtyquestions = [ "What was your best sexual experience?" , "What is the longest you've ever given head?" , "Would you ever do a 3-some?" , "How do you feel about sex in groups?" , "Would you ever watch your partner have sex with someone else?" , "How many partners have you had at one time?" , "Describe how your orgasim feels?" , "Where is your favourite place to be kissed?" , "Have you ever taken it in the butt or would you?" , "What is the longest time you've gone without sex?" , "Do you enjoy rough or slow sex?" , "Do you prefer to be on top or bottom?" , "What is your favourite position?" , "Do you like anal?" , "What is your least favourite position?" , "What is the worst sexual experience you've ever had?" , "Have you ever had sex outside?" , "Where is the strangest place you've ever had sex?" , "Have you ever performed oral on someone of the same sex?" , "Have you ever paid for sex?" , "Who was your first partner?" , "Who is your favourite porn star?" , "What is your favourite type of porn?" , "What is your favourite strip club?" , "Have you ever thought about being a stripper?" , "Do you prefer the lights on or off?" , "Does size matter?" , "Do you prefer to have music in the background, or for it to be be quiet?" , "Do you prefer for your partner to be silent, or do you like moans?" , "Do you like a lot of foreplay?" , "What is your favourite type of foreplay?" , "Have you done role-playing?" , "What is your role-playing fantasy?" , "What is your “sweet spot”?" , "What is your strangest sexual fantasy?" , "How flexible are you?" , "How many orgasms have you had in one sexual encounter?" , "Spit or Swallow?" , "Have you ever been uncomfortable aroused at work/school?" , "Has BDSM ever crossed you mind?" , "Would you be opposed to threesomes?" , "Are you into toys or straps during sex?" , "Have you ever had a one night stand?" , "Do you have same sex fantasies?" , "Would you ever walk around wearing men/women's underwear?" , "If you have had sex in a public place, where?" , "Have you ever made love to a man/woman?" , "What is your most embarrassing sexual experience?" , "Have you ever slept with a friend's mom or sister and they did not know?" , "Have you ever cried during/after sex?" , "What sex toy would you want to receive as a gift and how would you use it?" , "Have you ever had an orgasm without being touched?" , "What is your best sexual memory?" , "Who is the oldest person you've had sex with?" , "Who is the youngest person you've had sex with?" , "What is the shortest time it has taken you to orgasm?" , "Have you fallen asleep during sex?" , "Have you ever had a same-sex experience? How was it?" , "If you could have a threesome with me and someone else, who would you choose?" , "What's your favorite type of porn?" , "When was the last time you masturbated?" , "What do you fantasize about during sex?" , "If you were the opposite sex for a day, what would you do?" , "Have you ever found someone attractive who you knew was actually ugly?" , "Have you ever tried or wanted to try BDSM?" , "What's the biggest age difference between you and someone you've had sex with?" , "What's your most embarrassing sexual experience?" , "Would you rather watch porn, or read “50 Shades of Grey”?" , "Would you rather have sex with the lights on, or the lights off?" , "Would you rather cheat or bring another person into bed?" , "Would you rather have sex in the morning, or at night?" , "Would you rather give oral sex, or receive it?" , "Would you rather have sex while someone is watching, or would you prefer to watch someone having sex?" , "Would you rather be on top, or underneath?" , "Would you rather spit, or swallow?" , "Would you rather try out new and crazy kinky sex ideas, or just have romantic sex?" , "Would you rather have multiple sex partners, or just one?" , "Would you rather end a first date with a passionate kiss, or would you like to end a first date with sex?" , "Would you rather watch girl on girl porn, or guy on guy porn, to turn yourself on?" , "Would you rather have sex with your best friend, or your best friend's best friend?" , "When having sex, would you rather talk about someone you really fancy, or fantasize about it secretly in your mind?" , "Sexiest outfit you had ever wore? For what occasion?" , "How would you spend the last two hours of your life with your crush or partner?" , "Out of all the guys in this room, who is the best-endowed in your opinion?" , "If your partner has been inexplicably transformed into an animal, with the only way to dispel it is to have sex with him, what animal will you hope he will be?" , "The last time you change your undies?" , "Ever had a crush with your teacher? Who?" , "The last time you saw someone else naked?" , "Who was the first person that you touched his/her naked body?" , "If you could change the shape and size of any part of your body, what would you like to change?" , "The hottest person you think in the group is?" , "Your most favorite technique on bed ever used on you?" , "The first thing you notice in the member of an opposite sex?" , "The most cringe or embarrassing nicknames you ever heard someone tried to call you with?" , "An intimate moment that turns awkward?" , "Ever had sex anywhere outside of a bedroom?" , "The most stupid dare you agreed to do and actually did it?" , "The most erotic piece of literature or video you ever read or watch? What was it about?" , "What makes a person sexy in your eyes?" , "Ever did anything embarrassing when drunk? What did you do and how did it end?" , "Anyone ever caught you while you are getting intimate with someone in public?" , "Describe the perfect guy for sex? " , "Have you ever faked it?" , "Have you ever been peed on? " , "How old were you when you wore your first bra? " , "How old when you had your first erotic dream? " , "What is your favorite sexual position? " , "What is your least favorite sexual position? " , "What is the fastest you have ever had sex? " , "Have you ever been arrested?" , "If you were to create an original sex move, what would you call it?" , "If you could only have sex in one position for a month, what position would you pick?" , "If you could get, up close and personal with a Hollywood celebrity of your choice, whom would you pick?" , "What, according to you, is the weirdest place that you have done it in?" , "If you were to receive a sex toy as a gift, what would you prefer?" , "Have you ever had a one night stand?" , "What is your most favorite bedroom fantasy?" , "Has someone of the same-sex ever made a pass at you, or vice versa?" , "Have you ever climaxed when still fully clothed?" , "Have you ever cross-dressed or worn undergarments of the opposite sex?" , "What are the bedroom nicknames that you use, or have been bestowed upon you?" , "Have you ever seen a porno film and if yes, who did you watch it with?" , "What is your favorite way of doing it?" , "Have you ever gone commando and stepped out for a whole day?" , "Does size matter to you?" , "What is the maximum level of intimacy you have shared and with whom?" , "Have you ever given a thought to the idea of a threesome?" , "What attracts you most in a person of the opposite sex?" , "Have you ever used a flavored condom?" , "When changing in the locker room after a swim, have you ever peeked or secretly glanced at the person next to you?" , "What is the biggest object you have ever inserted into yourself? " , "What is the biggest object somebody else has inserted into you?" , "When was the last time you looked at someone and just thought about sex? Who was it?" , "What kind of “toy” have you always wanted to have used but haven't?" , "Are you turned on playing this game? (If yes what did it? If not, what could someone tell us right now that would make you instantly “hot”)." , "Tell us about a specific technique you enjoy/want from a lover performing oral sex on you." , "If you could change one physical feature about yourself, what would you change and why?" , "Describe yourself in five words" , "What quality about the person sitting to your right do you dislike the most? What quality about them do you like the best?" , "Have you ever fantasized about anyone in this room? If so, who and what is the fantasy?" , "What was the worst thing you ever did to get fired from a job? Or, what is the worst thing you did before quitting a job?" , "Have you ever snuck around to watch someone in the bathroom? Why?" , "There was a giant explosion. You and 2 other people of the same sex survived. Who would you want them to be, and why?" , "Which relationship appeals to you more, a wild passionate one, or a quiet calm one? Why?" , "What is your most romantic memory?" , "Which famous couple throughout history would you like to be a part of? Why?" , "What is your favorite thing to lick? Show us with actions!" , "What is your most favorite fetish? Why?" , "Have you ever used a flavored condom? Describe the experience." , "Has anyone ever told you to stop during sex? What was the reason?" , "What is your biggest pet peeve, having to do with a girl/boyfriend?" , "What is something you regret doing in school? What would you have done differently?" , "What is the stupidest thing you've done of your own free will?" , "It you were the opposite sex for one hour, what would you do?" , "If you are a female, which male in the room would you have sex with and why? If you are a male, which female would you have sex with and why?" , "Do you swallow or spit? Why?" , "Who has the biggest balls or pussy you've ever seen?" , "If you were a food what would you be and how would you be eaten?" , "Have you ever made an ass of yourself in front of someone you were interested in? Share the story." , "What is the stupidest thing you've done because someone dared you to?" , "What question would you most dread to be asked?" , "If you could have anyone here in the room to be your slave, who would it be and what would you make them do?" , "If you were forced to perform a sexual act totally against your will, what would it be?" , "Describe the most dangerous or scary place you've ever had sex?" , "What's the largest number of people that have ever touched you while you were naked? Describe." , "What vegetable do you find most erotic and why?" , "Describe a time you touched someone intimately that you didn't know." , "Name your favourite sex position, and why." , "Do you like face slapping? Why?" , "Tell about a time you had sex outside." , "Describe a time you flashed someone, intentionally or not." , "Stand up and without using words show us completely what body part you are most proud of." , "Tell us about a time you had sex with a vegetable." , "What is your hottest fantasy? Have you acted on it?" , "Have you ever worn the opposite gender's underwear, and did you like it?" , "What are the most orgasms you've had in an hour? What were you doing?" , "Largest number of people have you had sex with in a day?" , "What is the most embarrassing thing you have done while drunk?" , "Describe the first time you faked an orgasm." , "Do you take it up the ass? Do you want to?" , "Describe the place you most enjoyed sex in your life." , "Describe a time you've watched someone else have sex." , "Describe a time you had sex publicly. Were you interrupted?" , "Tell us about one of your sex regrets." , "Describe a time you had sex on an elevator, if not the whole thing, how far?" , "Any tatoos or piercings? Show us." , "Describe your most recent orgasm." , "Tell us about the craziest place you ever had sex." , "Tell us your favourite dirty joke." , "How old were you when you first had sex with another person, and describe it." , "What body part other than genitals and breasts do you fantasize about?" , "What do you feel like when you don't wear underwear?" , "Do you, or have you ever, dyed your pubic hair?" , "What is the largest number of people you have ever had sex with at one time?" ] })()
© Copyright Chaturbate 2011- 2026. All Rights Reserved.