One-click horror chaos: random scary theme, red flashes, creepy browser audio, and ready-to-paste code
// ==UserScript==
// @name Scratch Insane Scary Game Chaos Button
// @namespace https://greasyfork.org/
// @version 0.4
// @description One-click horror chaos: random scary theme, red flashes, creepy browser audio, and ready-to-paste code
// @author Grok
// @match https://scratch.mit.edu/projects/editor/*
// @grant none
// @run-at document-end
// ==/UserScript==
(function () {
'use strict';
function addChaosButton() {
if (document.getElementById('scary-chaos-btn')) return;
const btn = document.createElement('button');
btn.id = 'scary-chaos-btn';
btn.innerHTML = '🩸🔪 INSTANT HORROR CHAOS MODE';
btn.style.position = 'fixed';
btn.style.top = '20px';
btn.style.right = '20px';
btn.style.zIndex = '99999';
btn.style.padding = '20px 35px';
btn.style.fontSize = '22px';
btn.style.fontWeight = 'bold';
btn.style.background = 'linear-gradient(#8B0000, #4B0000)';
btn.style.color = '#fff';
btn.style.border = '4px solid #ff2222';
btn.style.borderRadius = '15px';
btn.style.cursor = 'pointer';
btn.style.boxShadow = '0 8px 25px rgba(255,0,0,0.6)';
btn.style.transition = 'transform 0.2s, box-shadow 0.2s';
btn.onmouseover = () => {
btn.style.transform = 'scale(1.08)';
btn.style.boxShadow = '0 12px 30px rgba(255,50,50,0.8)';
};
btn.onmouseout = () => {
btn.style.transform = 'scale(1)';
btn.style.boxShadow = '0 8px 25px rgba(255,0,0,0.6)';
};
btn.onclick = triggerHorrorChaos;
document.body.appendChild(btn);
}
function triggerHorrorChaos() {
if (!confirm('⚠️ ACTIVATE HORROR CHAOS?\n\nThis will flood the editor with scary vibes + give you code to paste.')) return;
const themes = [
"🩸 BLOODY CHASE IN THE BASEMENT",
"😱 JUMP SCARE HAUNTED CABIN",
"🦇 SCREAMING FOREST MONSTER",
"🔪 POSSESSED VICTIM NIGHTMARE",
"💀 RED ROOM OF SCREAMS"
];
const theme = themes[Math.floor(Math.random() * themes.length)];
// Visual horror effects
const stage = document.querySelector('.scratch-stage, [class*="stage"]');
if (stage) {
stage.style.transition = 'filter 0.4s, background 0.4s';
stage.style.filter = 'brightness(0.4) contrast(1.8) hue-rotate(330deg)';
stage.style.background = '#220000';
setTimeout(() => {
stage.style.filter = '';
}, 1200);
}
// Browser creepy audio (plays immediately - use any public horror track)
const audio = new Audio('https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'); // replace with real creepy mp3 if you want
// Better: search "free horror ambient mp3 direct link" and swap the URL
audio.loop = true;
audio.volume = 0.6;
audio.play().catch(() => console.log("Audio blocked — allow autoplay"));
// Random scream burst
setTimeout(() => {
const scream = new Audio('https://www.soundjay.com/human/sounds/scream-1.mp3'); // fallback scream
scream.volume = 0.9;
scream.play().catch(() => {});
}, 800);
alert(`CHAOS ACTIVATED!\n\nTheme: ${theme}\n\nWhat to do now for a real scary game:\n\n1. Add a dark backdrop (search "night" or paint black/red).\n2. Keep Scratch Cat as "Victim" — add "when green flag clicked" + "forever" + "move 8 steps" + "if on edge bounce".\n3. Add a Monster sprite (Bat/Ghost/Monster from library).\n4. On Monster: forever point towards Victim + move 6 steps.\n5. On Victim: when touching Monster → start sound (upload scream) + change color effect by 50 (red flash) + create clone of "Blood Splat".\n6. Make a "Blood" sprite with red costume, hide it, and clone it on scream.\n\nPaste this into Victim sprite for basic chase + blood:\n\nwhen green flag clicked\nforever\nif then\nstart sound (scream v)\nchange [color v] effect by 100\ncreate clone of (Blood v)\nend\n\nRandomness each click: new theme + red flash + audio.\n\nFor real MP3: upload your own scream + creepy loop in Scratch sounds tab.`);
console.log(`%cHORROR CHAOS: ${theme} — go make it terrifying!`, 'color: #ff0000; font-size: 18px;');
}
// Add button when editor loads
const obs = new MutationObserver(() => {
if (document.querySelector('.blocklyWorkspace')) {
addChaosButton();
obs.disconnect();
}
});
obs.observe(document.body, {childList: true, subtree: true});
})();