The real hidden gem here is the hilarious 40 minute mermaid-themed true crime podcast parody that you'll only hear a portion of if you progress quickly. As far as I can tell, it's fully custom-made for this game? Can't find any references to the characters online.
https://stimulation-clicker.neal.fun/ sounds/true-crime.mp3 - it's hosted on Cloudflare, but even so I don't want to cost OP significant bandwidth, so join the two strings above for the direct link.
"Aww, he was all cat 'n tonic when he first saw her." An absolute classic. I would do anything to know more about how this came to exist.
for people that don't want to click a lot,
paste in "setInterval(() => document.querySelector('.main-btn').click(), 20)" into the browser console, clicks 50x per second for you :)
If you shrink the window down as small as possible the DVD logos collide super fast and earn a ton of stimulation.
In Safari, show the Web Inspector and then shrink the window so that the inspector takes up all of the space.
ah ! clever
Speed-ran the game using this (well, I injected jquery first to select the element using $() because I'm an absolute Baboon) in about 45 seconds, spam clicking all the upgrades, and clicks stopped going up after hitting "342,044,125,797,992,850,000,000,000,000 stimulation" with 10k clicks per second.
What a ride. Love the implied commentary on our over-stimulated lives!
Fun fact: browsers' devtools consoles have de-facto standardized convenience aliases for querying the DOM, similar to jQuery [0][1][2][3][4]. This means you could do something as simple as:
to create the simplest dependency-free cheat speed runner. (And, as mentioned earlier, shrinking -- or logically also zooming in -- the page results in more DVD bounces.)setInterval(()=>$('.main-btn')?.click(), 0) setInterval(()=>$$('.upgrade')?.forEach(_=>_.click()), 1000)
[0] https://devtoolstips.org/tips/en/query-dom-from-console/ [1] https://firefox-source-docs.mozilla.org/devtools-user/web_co... [2] https://developer.chrome.com/docs/devtools/console/utilities... [3] https://learn.microsoft.com/en-us/microsoft-edge/devtools-gu... [4] https://developer.apple.com/library/archive/documentation/Ap...
I get a reference error when I try this (chrome stable on linux)
Ah, thanks for the heads-up, apparently there is something borked in Chromium wrt $ / $$ encapsulation, as it seems they are nor reachable from the (global) context setInterval so doing `window.$ = $; window.$$ = $$;` fixes that in Chrome. Not sure why. (Yet again embarrassed myself by trying a snippet that "simply must work ® according all documentations ™" in single a browser only before posting. Sigh.)
I bet it's working as intended. The $ symbol is probably a special feature of the console and is not intended to be a property of window. Inside setInterval, the function is no longer being executed in the special console environment, which has access to that symbol.
Yes, I guess there could be some intention behind that, presumably some security precautions, but still: the fact that you can see $ in the globalThis (as a non-enumerable prop), and that globalThis you see from inside the timeout-ed function is strictly equal to globalThis seen directly from the console, that makes it somewhat spooky.
And it (`setTimeout(()=>{console.log(typeof $==="function")},0)`) works in Firefox. (Interestingly, you cannot get $'s descriptor in there, but you have it always available in timeout.)console.log(Object.getOwnPropertyDescriptor(globalThis, '$')) // {writable: true, enumerable: true, configurable: true, value: f} globalThis.globalThat = globalThis globalThat.$ === globalThis.$ // true setTimeout(()=>console.log(globalThis.globalThat === globalThis)) // true setTimeout(()=>console.log(Object.getOwnPropertyDescriptor(globalThis, '$'))) // undefined (!) $ = $ setTimeout(()=>console.log(Object.getOwnPropertyDescriptor(globalThis, '$'))) // { writable: true, enumerable: true, configurable: true, value: f}
> I injected jquery first to select the element using $()
In Chrome and Firefox, $ and $$ are available in the console as replacements for document.querySelector and document.querySelectorAll, respectively.
This doesn't work in scripts though; only in the console. In a script you can use this:
const $ = document.querySelector.bind(document);
I wonder what the limiting factor is here; I'm currently at
332,446,225,163,762,970,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 stimulation
131,903,042,042,866,960,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 stimulation per second
And there doesn't seem to be an end in sight.
going to the ocean is the end, I got there with only a couple dozen million stim
My brain has never been happier to see a credits screen
Nah, just remove the element and keep going.
I envy your rig - mine glitched a lot to get it in <3min. Might not be doing myself a service by actually answering the Duolingo questions via LLM... https://www.youtube.com/watch?v=I-J0ppP-H9s
Ah, a new yardstick for browser performance :-P
Sir that's true evil! That's evil you know?
Majestic.
Or for people who want to make money as a trader.
const lastPriceElement = document.querySelector('.last-price'); const buyButton = document.querySelector('.stock-btn.stock-buy'); const sellButton = document.querySelector('.stock-btn.stock-sell');
const buyPrice = 280; const sellPrice = 320;
function checkPriceAndTrade() {
}if (lastPriceElement && buyButton && sellButton) { // Get the price text and convert to number const priceText = lastPriceElement.firstChild.textContent.trim(); const price = Number(priceText.replace(/[$,]/g, '')); // Execute trade based on price if (price < buyPrice) { console.log(`Price ${price} is below $` + buyPrice ` - Executing buy`); buyButton.click(); } else if (price > sellPrice) { console.log(`Price ${price} is above $` + sellPrice ` - Executing sell`); sellButton.click(); } else { console.log(`Price ${price} is between thresholds - No action taken`); } }
// Run the check every 20 milliseconds setInterval(checkPriceAndTrade, 20);
The real answer to the web 2.0 appified social media hell hole is automation :D
thanks, u saved me few clicks ^^
Reminds me a bit of The Onion's "A Very Fatal Murder" podcast.
I noticed the podcast at one point mentions neal.fun, so definitely custom made!
The podcast makes a couple of winking references to other bits of the game, including a mention of "that time that poor boy was pushed into that hydraulic press".
Was the mukbang also custom?
Yes, the actor has a credit at the end.
Thanks for the direct link- this makes understimulated listening much easier & it was easy to miss within the cacophony of everything else.
This is an amazing podcast - I'm glad I took the time to listen
It's weird, it seems like it's the only custom made thing on the game, why only that one?
Loads of other stuff is custom made... All those emails for example.
Maybe someone made the podcast for some other reason and never released it?
Reaction streamer seems custom made as well
If I'm not mistaken, that's Ludwig! A friend of mine is a big fan; I was surprised to see him in this game("").
It's him, the name also appears in the credit roll at the end.
- [deleted]
Absolutely. Reminded me of all the effort GTA spent on radio, to much fanfare.
The entire production value is fantastic. Glad to see Neal expanding. This is only a half step away from something less jokey, and more marketable.
If that's the path he chooses, of course. But judging by his smiling face in the center of it all wearing a poor fitting crown, I think he's just in it for the lulz. And I may respect that even more.
Less jokey?
This great packaging has a critical social media tone for me. Absolutely amazing fun and addictive showing almost dark patterns. For a deep dive: "Ethics of the attention economy: The problem of social media addiction", [1]
[1] https://www.cambridge.org/core/services/aop-cambridge-core/c...
[flagged]
I say this as someone who's tried all the state-of-the-art voice generation systems: so far, nobody has trained an AI to "chew the scenery" nearly as effectively and effusively as these voice actors having the time of their lives playing southern belles and bean company owners who are blisteringly envious that a dead mermaid is stealing their spotlight by dying from a megalodon attack.
Haha, the problem is: we still haven't gotten AI to generate voices! "State of the art" just uses regular TTS engines and then adds extra inflection as "special sauce" or stretches it out, etc. At least, that is how it works for these AI generators that need to do it "at scale." When you can spend more on classic speech models, you can go well beyond that (see Siri, Google, Alexa, etc).
I started listening to the podcast at first, but then it just became impossible. Really awesome!
- [deleted]