Apps Home
|
Create an App
XXXmas Naughty Roulette
Author:
garterxxx
Description
Source Code
Launch App
Current Users
Created by:
Garterxxx
// ====================================== // 🎅 SANTA'S NAUGHTY ROULETTE // Christmas Edition by bad Santa ❄️🎄 // Spin to win prizes or get Gift Wrapped! // ====================================== var rollCounter = 0; var tipCounter = 0; var lastRoller = ''; var giftWrappedUsers = []; // Settings cb.settings_choices = [ { name: 'tokens', type: 'int', minValue: 1, maxValue: 100, label: '🎁 Tokens needed to spin the wheel', defaultValue: 25 }, { name: 'notice_wait_time', type: 'choice', label: '⏰ Minutes between advertisements', choice1: 5, choice2: 10, choice3: 15, choice4: 20, choice5: 25, choice6: 30, choice7: 45, choice8: 60, defaultValue: 10 }, {name: 'prize_1', type: 'str', label: '🎄 Blue Prize'}, {name: 'prize_2', type: 'str', label: '🎄 Green Prize'}, {name: 'prize_3', type: 'str', label: '🎄 Yellow Prize'}, {name: 'prize_4', type: 'str', label: '🎄 Red Prize'}, { name: 'wrap_minutes', type: 'int', minValue: 1, maxValue: 30, label: '🎁 Gift Wrap duration if you lose (minutes)', defaultValue: 5 }, { name: 'unwrap_cost', type: 'int', minValue: 1, maxValue: 200, label: '🎁 Cost to get Unwrapped', defaultValue: 50 } ]; // Tip handler cb.onTip(function(tip) { var amount = parseInt(tip.amount) || 0; var user = tip.from_user || "Secret Elf"; tipCounter += amount; if (amount >= cb.settings.tokens) { roll(user); lastRoller = user; } cb.drawPanel(); }); // Festive panel cb.onDrawPanel(function() { return { "template": "image_template", "layers": [ {'type': 'image', 'fileID': 'ff51e44f-cb84-410d-be46-6c98c587e381'}, // ← Replace with your roulette wheel image ID {'type': 'text', 'text': '🎅 Santa\'s Naughty Roulette', 'top': 8, 'left': 20, 'font-size': 13, 'color': '#ff0000'}, {'type': 'text', 'text': 'Last Spinner:', 'top': 32, 'left': 20, 'font-size': 11, 'color': '#ffd700'}, {'type': 'text', 'text': lastRoller || '--', 'top': 32, 'left': 110, 'font-size': 11, 'color': '#ffffff'}, {'type': 'text', 'text': 'Tips / Spins:', 'top': 52, 'left': 20, 'font-size': 11, 'color': '#ffd700'}, {'type': 'text', 'text': tipCounter + ' / ' + rollCounter, 'top': 52, 'left': 130, 'font-size': 11, 'color': '#ffffff'}, {'type': 'text', 'text': 'Gift Wrapped: ' + giftWrappedUsers.length, 'top': 72, 'left': 20, 'font-size': 11, 'color': '#00ffcc'} ] }; }); // Roll the wheel function roll(username) { rollCounter++; var outcome = Math.random(); // ~75% win, 25% lose if (outcome < 0.75) { // Win prize var prizeNum = Math.floor(Math.random() * 4) + 1; var prize = cb.settings['prize_' + prizeNum] || "Naughty Christmas surprise!"; cb.sendNotice("🎄 " + username + " SPUN THE WHEEL & WON: " + prize + " ❄️", '', '#ff0000', '#ffffff', 'bold'); } else { // Lose → Gift Wrapped if (!giftWrappedUsers.includes(username)) { giftWrappedUsers.push(username); cb.sendNotice("🎁 Oh no! " + username + " got GIFT WRAPPED by Santa for " + cb.settings.wrap_minutes + " minutes! 🎅", '', '#ff6600', '#ffffff', 'bold'); // Auto unwrap cb.setTimeout(function() { unwrap(username); }, cb.settings.wrap_minutes * 60000); } } cb.drawPanel(); } function unwrap(username) { var index = giftWrappedUsers.indexOf(username); if (index > -1) { giftWrappedUsers.splice(index, 1); cb.sendNotice("🎄 " + username + " has been Unwrapped! Merry Christmas! ❄️", '', '#00ff00', '', 'bold'); cb.drawPanel(); } } // Show prizes function showPrizes(username) { var msg = "🎅 Santa's Naughty Roulette Prizes:\n\n"; msg += "🔵 Blue: " + (cb.settings.prize_1 || "Flash your tits") + "\n"; msg += "🟢 Green: " + (cb.settings.prize_2 || "Ass shake & spank") + "\n"; msg += "🟡 Yellow: " + (cb.settings.prize_3 || "Twerk for Santa") + "\n"; msg += "🔴 Red: " + (cb.settings.prize_4 || "Full naughty nude show") + "\n\n"; msg += "Tip " + cb.settings.tokens + " tokens to spin! 🎁"; cb.sendNotice(msg, username || '', '#DBFBFF', '#008596', 'bold'); } // Commands + block Gift Wrapped users from chatting cb.onMessage(function(msg) { // Block Gift Wrapped users if (giftWrappedUsers.includes(msg.user)) { msg['X-Spam'] = true; return msg; } var text = msg.message.toLowerCase().trim(); if (text === '/prizes') { msg['X-Spam'] = true; showPrizes(msg.is_mod || msg.user === cb.room_slug ? null : msg.user); } if (text.startsWith('/giftwrap ') && (msg.is_mod || msg.user === cb.room_slug)) { msg['X-Spam'] = true; var target = text.split(' ')[1]; if (target && !giftWrappedUsers.includes(target)) { giftWrappedUsers.push(target); cb.sendNotice("🎁 " + target + " has been Gift Wrapped by Santa!", '', '#ff6600', '', 'bold'); cb.drawPanel(); } } if (text.startsWith('/unwrap ') && (msg.is_mod || msg.user === cb.room_slug)) { msg['X-Spam'] = true; var target = text.split(' ')[1]; if (target) unwrap(target); } if (text === '/all' && (msg.is_mod || msg.user === cb.room_slug)) { msg['X-Spam'] = true; giftWrappedUsers = []; cb.sendNotice("🎄 Everyone has been Unwrapped! Merry Christmas!", '', '#00ff00', '', 'bold'); cb.drawPanel(); } }); // Auto advertisement function advertise() { var msg = "🎅 Santa's Naughty Roulette is LIVE! ❄️\n"; msg += "Tip " + cb.settings.tokens + " tokens to spin the wheel!\n"; msg += "Win prizes or get Gift Wrapped by Santa 🎄\n"; msg += "Type /prizes to see all rewards!"; cb.sendNotice(msg, '', '#ff0000', '#ffffff', 'bold'); cb.setTimeout(advertise, cb.settings.notice_wait_time * 60000); } // Init function init() { advertise(); cb.changeRoomSubject("🎅 Tip " + cb.settings.tokens + " tokens to spin Santa's Naughty Roulette! ❄️"); cb.sendNotice("🎄 Santa's Naughty Roulette is now active! Ho Ho Ho... spin to win or get Gift Wrapped! 🎁", '', '#ff0000', 'bold'); } init();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.