β Browser Wars: Netscape and Internet Explorer both request to be your default. [Allow] [Remind Me Later]
[ CD TRAY OPEN ]
CRAP2000 Master Hub
One screen to find them all.
Legacy Power-Ups
Widgets
Effects
Toggles
LEGACY
Legacy Deck
πΈ CRAPWRLD WEBRING
circa 1998 β’ node: [????]
πΎ Installing: RealPlayer Ultra Deluxe
Preparing components...
:( A problem has been detected and Windows has been shut down to prevent damage. CRASH_DUE_TO_TOO_MUCH_AWESOME
EFFECTS PAUSED
CHAOS DIAL
14s
900ms
14s
14s
`;
win.querySelector('iframe').srcdoc = doc;
win.querySelector('[data-x]').onclick=()=>win.remove();
});
// Chaos Dock controls
function setMarqueeSpeed(sec){
document.documentElement.style.setProperty('--c2k-marquee-speed', sec+'s');
$$('.ticker .track').forEach(t=>{ t.style.animationDuration = sec+'s'; });
}
function setGlitchInterval(ms){
document.documentElement.style.setProperty('--c2k-glitch-interval', ms+'ms');
restartGlitch();
}
function setFakeRate(ms){
document.documentElement.style.setProperty('--c2k-fakeuser-ms', ms);
if(fakeTimer){ clearTimeout(fakeTimer); fakeTimer=null; setTimeout(fakeLoop, 1000); }
}
function setDripSpeed(sec){ document.documentElement.style.setProperty('--c2k-drip-speed', sec+'s'); }
$('#c2kMarquee')?.addEventListener('input', e=>{$('#c2kMarqueeLab').textContent=e.target.value+'s'; setMarqueeSpeed(e.target.value)});
$('#c2kGlitch')?.addEventListener('input', e=>{$('#c2kGlitchLab').textContent=e.target.value+'ms'; setGlitchInterval(e.target.value)});
$('#c2kFake')?.addEventListener('input', e=>{$('#c2kFakeLab').textContent=(e.target.value/1000|0)+'s'; setFakeRate(Number(e.target.value))});
$('#c2kDrip')?.addEventListener('input', e=>{$('#c2kDripLab').textContent=e.target.value+'s'; setDripSpeed(e.target.value)});
// Alerts
function spawnAlert(){
const bots=["NetCrawler98","IndexGhost","YahooSlurp","AltaVistaRipper","MosaicPhantom"];
const el=document.createElement("div");
el.className="c2k-alert";
el.textContent ="β BOT DETECTED: "+bots[Math.floor(Math.random()*bots.length)];
document.body.appendChild(el);
setTimeout(()=>el.remove(), 5000);
}
$('#c2kAlert')?.addEventListener('click', spawnAlert);
// GIF swarm
const gifList=[
"https://upload.wikimedia.org/wikipedia/commons/2/27/Rotating_skull.gif",
"https://gifcities.org/gif/aolmail.gif",
"https://gifcities.org/gif/handcursor.gif",
"https://www.animatedimages.org/data/media/120/animated-button-image-0045.gif"
];
$('#c2kGIFs')?.addEventListener('click', ()=>{
for(let i=0;i<8;i++){
const img=new Image();
img.src=gifList[Math.floor(Math.random()*gifList.length)];
img.style.position="fixed";
img.style.zIndex=31000;
img.style.left=(Math.random()*(window.innerWidth-120))+"px";
img.style.top=(Math.random()*(window.innerHeight-120))+"px";
img.style.transform=`rotate(${(Math.random()*24-12).toFixed(1)}deg) scale(${(Math.random()*0.8+0.6).toFixed(2)})`;
img.style.transition="transform .8s linear, left 1.2s linear, top 1.2s linear";
document.body.appendChild(img);
setInterval(()=>{
img.style.left=(Math.random()*(window.innerWidth-120))+"px";
img.style.top=(Math.random()*(window.innerHeight-120))+"px";
img.style.transform=`rotate(${(Math.random()*40-20).toFixed(1)}deg) scale(${(Math.random()*1+0.6).toFixed(2)})`;
}, 2500+Math.random()*2000);
}
});
// Audio
const actx = new (window.AudioContext||window.webkitAudioContext)();
function tone(freq=880,dur=.06,type='square',vol=.05){
const o=actx.createOscillator(), g=actx.createGain();
o.type=type; o.frequency.value=freq; g.gain.value=vol;
o.connect(g); g.connect(actx.destination);
o.start(); o.stop(actx.currentTime+dur);
}
function beep(){ if(actx.state==="suspended") actx.resume(); tone(880,.06,'square',.05); }
$('#c2kBeep')?.addEventListener('click', beep);
function dialup(){
if(actx.state==="suspended") actx.resume();
let t=actx.currentTime;
function sweep(f1,f2,d){const o=actx.createOscillator(),g=actx.createGain();o.type='sawtooth';o.frequency.setValueAtTime(f1,t);o.frequency.exponentialRampToValueAtTime(f2,t+d);g.gain.value=.02;o.connect(g);g.connect(actx.destination);o.start(t);o.stop(t+d); t+=d+.02;}
function b(f,d){const o=actx.createOscillator(),g=actx.createGain();o.type='square';o.frequency.value=f;g.gain.value=.04;o.connect(g);g.connect(actx.destination);o.start(t);o.stop(t+d); t+=d+.02;}
sweep(400, 1800, .9); b(1200,.2); b(1400,.2); sweep(800, 2400, .7); b(1000,.15); b(1800,.15); sweep(600, 2200, 1.0);
}
$('#c2kDial')?.addEventListener('click', dialup);
// Fake user loop (piggyback on existing chat)
const fakeNames = ["DialUpDemon","PixelGhost","AnalogKnight","GlitchWitch","AOL_Goblin","404NotFoundSoul","CommodoreKid","VHS_Vigilante","CyberSphinx","FloppyOracle","SynthWraith","Y2KProphet","QuantumSheep","LaserLich"];
const fakeLines = ["buffer's looping itself","the IP has teeth now","who recompiled reality?","control panel turned red??","mouse trail's forming a glyph","background turned itself off","does anyone else hear the BEEP?","i clicked and it screamed","tab opened itself","source code was breathing"];
let fakeTimer=null;
function fakeLoop(){
if(!log) return;
const name = fakeNames[Math.floor(Math.random()*fakeNames.length)];
const line = fakeLines[Math.floor(Math.random()*fakeLines.length)];
addMsg("~", `${name}: ${line}`, "name");
if(Math.random()<0.15) beep();
fakeTimer = setTimeout(fakeLoop, Number(getComputedStyle(document.documentElement).getPropertyValue('--c2k-fakeuser-ms')) );
}
// Glitch ambient β toggle some class if present
let glitchId=null;
function restartGlitch(){
if(glitchId) clearInterval(glitchId);
const ms=parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--c2k-glitch-interval'));
glitchId = setInterval(()=>{
document.body.classList.toggle('crt-effect');
if(Math.random()<0.3) spawnAlert();
}, ms);
}
// Draggable windows helper
function makeDraggable(win){
const bar = win.querySelector(".c2k-title")||win.firstElementChild;
let sx=0,sy=0, ox=0, oy=0, dragging=false;
bar.addEventListener("pointerdown", e=>{
dragging=true; sx=e.clientX; sy=e.clientY; const r=win.getBoundingClientRect(); ox=r.left; oy=r.top;
win.setPointerCapture(e.pointerId);
});
bar.addEventListener("pointermove", e=>{
if(!dragging) return;
const nx = ox + (e.clientX - sx);
const ny = oy + (e.clientY - sy);
win.style.left = Math.max(4, Math.min(window.innerWidth - win.offsetWidth - 4, nx))+"px";
win.style.top = Math.max(4, Math.min(window.innerHeight - win.offsetHeight - 4, ny))+"px";
win.style.position="fixed";
});
bar.addEventListener("pointerup", e=>{ dragging=false; win.releasePointerCapture(e.pointerId); });
}
window.makeDraggable = window.makeDraggable || makeDraggable;
// Cursor stars
document.addEventListener("mousemove", e=>{
if(document.body.classList.contains('c2k-no-trace')) return;
const s=document.createElement("div");
s.className="c2k-trail"; s.textContent="*";
s.style.left=e.pageX+"px"; s.style.top=e.pageY+"px";
s.style.color = `hsl(${Date.now()%360},100%,70%)`;
document.body.appendChild(s);
setTimeout(()=>s.remove(), 500);
});
// Data storm blobs
for(let i=0;i<6;i++){
const b=document.createElement("div");
b.className="c2k-blob";
b.style.left = Math.random()*window.innerWidth+"px";
b.style.animationDuration = (8+Math.random()*8)+"s";
document.body.appendChild(b);
}
// Random alerts
setInterval(()=>{ if(Math.random()<0.25) spawnAlert(); }, 7000);
// Start loops
setTimeout(fakeLoop, 1200);
restartGlitch();
// Calm/Overdrive
let overdrive=false;
$('#c2kMode')?.addEventListener('click',()=>{
overdrive = !overdrive;
if(overdrive){
document.documentElement.style.setProperty('--c2k-drip-speed','6s');
document.querySelector('#c2kMarquee')?.value && (document.querySelector('#c2kMarquee').value=4, document.querySelector('#c2kMarquee').dispatchEvent(new Event('input')));
document.querySelector('#c2kGlitch')?.value && (document.querySelector('#c2kGlitch').value=300, document.querySelector('#c2kGlitch').dispatchEvent(new Event('input')));
document.querySelector('#c2kFake')?.value && (document.querySelector('#c2kFake').value=2200, document.querySelector('#c2kFake').dispatchEvent(new Event('input')));
addMsg("SYSTEM","β OVERDRIVE ENABLED β hold on to your modem.","sys");
(document.querySelector('#c2kDial')||{}).click?.();
}else{
document.documentElement.style.setProperty('--c2k-drip-speed','14s');
document.querySelector('#c2kMarquee')?.value && (document.querySelector('#c2kMarquee').value=14, document.querySelector('#c2kMarquee').dispatchEvent(new Event('input')));
document.querySelector('#c2kGlitch')?.value && (document.querySelector('#c2kGlitch').value=900, document.querySelector('#c2kGlitch').dispatchEvent(new Event('input')));
document.querySelector('#c2kFake')?.value && (document.querySelector('#c2kFake').value=14000, document.querySelector('#c2kFake').dispatchEvent(new Event('input')));
addMsg("SYSTEM","Calm Mode. (relatively).","sys");
}
});
})();
EVEN MORE
Spawn Win95 Popups
Trigger BSOD (Esc to exit)
Comets Burst
Toggle Screen Shake
Possess Chat
Recursive x3
GIF Gravity
ASCII Rain
Panic Burst (all)
A problem has been detected and Windows has been shut down to prevent damage
to your modem.
GLITCH_LOOP_NOT_HANDLED
If this is the first time you've seen this stop error screen,
restart your computer. (Just kidding, you're trapped here.)
Technical information:
*** STOP: 0x000000ED (0xBADF00D, 0xDEADC0DE, 0xC0FFEE00, 0x00000000)
Press ESC to attempt to feel normal again.
Focus
Moved elements live here in Focus Mode. Click Focus again to restore.