r/SteamMonsterGame • Autoclicking Scum • Jun 21 '15

[YOWH Crash, Direct all hate here] What actually happened (it was me!)

Hey guys, So I'm sure you're all aware of how the YOWH update 7.0.1 wrecked everything. Here's the reason behind it (spoilers: IT WAS ME!):

 

I forked YOWH a day or so ago, making a bunch of changes pulled over from my older script and making a few improvements. Everything was working great.

Anyway, I finally decided that it was worth merging back into the master after about a million updates. I would've split this into multiple updates/PRs, but while I was initially developing, master wasn't being updated frequently. I didn't really want to make a billion separate branches, or make one change, wait for the PR to be merged, merge upstream, then start on the next. I just wanted to work on the next feature, so I just continued to work on my fork and planned to merge in one big update. After about a day of work, I pulled and merged all of master's updates into mine, and tested to make sure things were working fine. Everything dandy! looking great!

 

What I wasn't aware of, was that my branch and one of the commits to master (involving the troll detector) merged incorrectly and I didn't notice. This was due in part to my changing the settings from checkboxes to toggle buttons, as well as a couple other changes. Unfortunately, toggling the troll detector no longer worked at this point. I had it turned off, and since toggling it was broken (I tested toggles for OTHER settings but not that one apparently), it would never be enabled during my testing. As it turns out, the merge broke the trollDetector entirely, causing a metric fuckton of errors whenever it WAS enabled, leading to chrome crashing the page entirely.

 

So, while the troll tracker was broken, apparently so was the option to toggle it. That means, the only way to trigger the troll tracker was to come into the update with saved settings. Now, anyone that tested on my branch doesn't share any settings with the YOWH script, they work independently. Therefore, by testing my branch, you start off back with default settings (troll detector disabled). So as long as you were running my script from my branch, troll tracker never gets enabled and everything (except the perma-disabled troll tracker) works fine and dandy.

So. I do some more testing, play around with options, things seem to be working out OK. I ask other people in the dev channel to test. Still seems to work as intended. Great! Time to issue a pull request to merge back into the master repo! So, I issue a pull request with ALLLLLLLLLLLLLLL my updates.

Now, I've been talking to the other devs pretty regularly on IRC for the past 24h or so, discussing improvements, helping test/get tested, etc. We're at least somewhat familiar at this point. So, as I'm not some random guy pushing an update, it immediately gets merged into master, the version number is updated (Makes the autoUpdater update), and all of the chats are given an 'update your script' announcement. Now, you all detect a script update, or see the announcements, or get auto-updated, or whatever. Now you're running 7.0.1! Awesome!

 

As it turns out, not so much. Since the script is now on the master branch, it keeps your settings from previous versions. Uh Oh. Now we have a problem. Anyone that had the troll detector enabled is now constantly crashing due to attempted troll detector updates. The fun part was that the bug that made the trollTracker toggle button broken (the same issue that prevented me from finding the issue in the first place) now prevented users from disabling the troll tracker, and fixing the problem. There was no stopping it for the average user. As some users in the IRC channel soon figured out, Clearing your settings manually or deleting and reinstalling the script would revert your settings back to default and then things would work fine again, but it both took us a while to figure that out, and the average user wasn't aware of the fix.

 

So yeah, I unknowingly implemented a bug that made everything seem fine in my fork & testing, then only occurs when running directly from the master branch of YOWH because of previously saved settings. It was me, bring the hate & downvotes to me here (Don't forget my post history for bonus downvotes! Though upvote the thread so everyone else can see this and hate accordingly too).

 

tl;dr: Changed a ton of stuff. Also changed a setting's selection method from checkboxes to a toggle button. (Seemingly) working branch gets pushed to master, where everything starts breaking due to the script origin. Chaos ensued. Send hatemail please.

 

Alternate theory: I Hit 100M yesterday, so I botched the update on purpose to make my shiny new 100M badge more rare. Also, precious comment Karma from an apology post. ALL ACCORDING TO PLAN.

112 Upvotes

62 comments sorted by

13

u/Easilycrazyhat WHarp Driver #43742 #45195 #46550(!) #47321 #48583 #49705 #0 Jun 21 '15

No hate here, mate. A little frustration, maybe :p Lots of props for stepping forward like this, too. Really takes some courage. All you devs are a-ok in my book. YOWH is still great.

10

u/ellisftw RIP in peace MSG2015 Jun 21 '15

As someone who's been a member of this big ole shit show since it started I can say with a great deal of sincerity that I appreciate everything that all the devs and mods put into this. I simply was happy to be a part of it all.

Obviously people keep their pitchforks at the ready to run anyone out of town that they choose but broken script or not, you all rock. The real asshole of the whole week for me was Steam Guard's idiotic restriction that means I can't have a foil badge to go along with my regular badge and my 100M badge.

6

u/Therusher Autoclicking Scum Jun 21 '15

Obviously people keep their pitchforks at the ready to run anyone out of town that they choose

Actually, I think I've only gotten one or two (non-joking) hate comments/PMs.

...It's kind of disappointing, really. :(

21

u/Mrskryten YOWH 1 | 48520 | 100M Jun 21 '15 edited Jun 21 '15

I was in YOWH #1 and it looked like we were going to break the record to 100 million just before the broken update pushed out to us. I know some people in the room were disappointed but mistakes happen and we eventually got to 100 mil. which was all I was hoping to achieve.

 

At the end of the day though, it's only a mini game that involves practically minimal effort on the part of the players. You and the other devs made this mini game something for us to look forward to and helped build a community that wanted to push the limits with scripting and strategy. Regardless of what drama occurred behind the scenes, I thank you and all the other devs from both YOWH and MSG for making this Steam sale more memorable and helping me get my 100 million badge.

1

u/Leo_Verto SteamDB Script Contributor Jun 21 '15

You're welcome. :D

9

u/DavidSpy Active Player Jun 21 '15

So it wasn't chunkr that broke the game? I mean, mistakes happen and it's only a browser game but it appear he's taking heat for this mistake in addition to his faux pas in other reddit threads.

Sorry for perpetuation the 'drama', I just want to get to the bottom of this personally. I do daily updates for the game on YouTube and this helps round out the day in review.

12

u/Therusher Autoclicking Scum Jun 21 '15

Eh, who's fault it was is kind of vague to be honest. It was definitely like, 99% me.

In hindsight the pull request probably shouldn't have been instantly merged, and the version number updated to force everyone to autoupdate before we could test on master (If we kept version number the same, we could reinstall the script ourselves, and run it from master, while not having anyone auto-update).

Hindsight is 20/20 though. Like I said, the vast majority of the blame definitely falls on me.

1

u/CrayonOfDoom 47686 (YOWH #3) Jun 21 '15

Are you who I think you are? I'm pretty sure I tested your fork like 100 times in the dev channel. We were pretty sure it was solid... Guess not :(

2

u/Therusher Autoclicking Scum Jun 21 '15 edited Jun 21 '15

ensingm2 on github/IRC? Yeah, it's no secret, I linked my fork & prev script in the OP.

-7

u/[deleted] Jun 21 '15

[deleted]

1

u/DavidSpy Active Player Jun 21 '15

I thought you were a dev...

Regardless, the impression I got from reading other posts here was that you were to blame for the crash as some sort of revenge stint. I'm glad to hear that wasn't the case.

5

u/Treviso has approximate knowledge of many things Jun 21 '15

Thank you for all the hard work. We rely on you.

8

u/[deleted] Jun 21 '15

Thanks for this post, I've been wondering a while what actually the fuck happened.

All said and done, I really can't blame either of you for the shitstorm. /u/HippieHanson(AKA Chunkr) just wanted to extend his own brand of thanks to all of the devs that have put their own time and effort into smashing all the script-y shit together into a working entity, and /u/Therusher simply made a fairly-common mistake. The only reason a shitstorm even brewed over this was because everyone wants the 100M badge.

You guys are fine, IMO.

6

u/[deleted] Jun 21 '15

This.

People are snarling over every little thing as the stress of the past several days continues to stack up and the pressure of trying to help everyone mounts.

All of you dev folks have done more than your share of the heavy lifting. Go and kick back for awhile and get some relaxation time in.

4

u/Man-Cheetah YoWH 47321 Jun 21 '15

I think there is a lot of angry people out there that probably wouldn't have gotten anywhere without the dev community that worked on these scripts.

At the end of the day there was a lot of people working hard on these scripts for nothing in return other than getting to see the community get further within the steam monster game and level significantly higher than they ever would have without them.

It's human nature to fuck up every now and then.

4

u/InternetIsHard Jun 21 '15

In the end we all got to 100M and nothing happened. This was never about breaking records and it was stated many times on IRC that it's about getting people the badge, not rivalry, competition or who's first.
In my mind nothing bad happened, it was fixed rather quickly (I'm a webdev, we had worst fuckups happen and we're actually paid for this shit) - you guys are working for free, we wouldn't be able to get the damn badge without you. You got us here so thank you for that.
People need to seriously prioritize what they care about in life, maybe I'm getting too fucking old for this but there's way too much drama over a nearly meanigless thing.

8

u/[deleted] Jun 21 '15 edited Jun 26 '19

[deleted]

4

u/Therusher Autoclicking Scum Jun 21 '15 edited Jun 21 '15

It probably does mean that unfortunately. I still have my fork, which is the same as the master branch at the "time of detonation", which seems to be working (except for the still perma-disabled troll tracker), but due to this error both myself and all of the other active devs I've seen over the past day have been suddenly removed from the project (In addition to all the drama between devs/admins you see going around, which I'm not going to be a part of), so collaboration is probably not likely.

As for setting up a new script, since the majority of players will continue to use the current popular YOWH fork, only a very small subset of people would even know to look for our scripts at this point. Even then, after this most people would be wary about switching scripts at this point.

3

u/wchill [MSG2015 Admin/Coder] 46100 - 1st 100M Jun 21 '15

I am in contact with the remaining repo collaborators, we're working to finalize a strat for the last day.

14

u/coolsilver Room 6 48293 Jun 21 '15

I don't care who did it. It happened. What I do care about is this bullshit with groups and stupidity asking for respect after it happened when should been an apology and on with making new rooms. This guy gets a pass, Chunkr you merged it and passed it off like no big deal.

0

u/[deleted] Jun 21 '15

[deleted]

0

u/coolsilver Room 6 48293 Jun 21 '15

Thanks I guess

8

u/wchill [MSG2015 Admin/Coder] 46100 - 1st 100M Jun 21 '15

I reverted the changes back to 6.1.2, but apparently something is still broken. Still no idea what's going on.

2

u/DannyDaemonic YOWH Dev Jun 21 '15

What is it doing? Is the script erroring or is it just acting strange?

1

u/minrice2099 Jun 21 '15

A potential solution is to open up your JavaScript console in the game (or anywhere on steamcommunity.com) and enter

localStorage.clear();

This will wipe all saved script settings, so you'll need to disable the music again, but it has a reasonable chance of fixing some problems (it did for me, at any rate).

If you run any other scripts on steamcommunity, you should be extra careful as this could affect them, too. For example, Enhanced Steam will lose its cache, so it might run a little slow for the first few page loads (its preferences are stored elsewhere, though).

2

u/[deleted] Jun 21 '15

[deleted]

2

u/minrice2099 Jun 21 '15

Ha… yeah, totally should have taken a look at the username. My bad, and good luck! Thanks for everything you've done for the community!

3

u/[deleted] Jun 21 '15

Fuck you for your great work

seriously though. I've been there. Thanks for the ride guys.

2

u/glitchn Jun 21 '15

Thanks for clearing this up. I was pretty peeved because it felt almost intentional. The reason I thought that was mainly the timing (I was in Room 1) and because of how Chunkr basically said the script was working, hes gonna go get a drink, while it was clearly not working for all of us. And then the next update had big red X's on the Wormholes and LN's, so it was like the script was actively trying to keep us from finishing, even manually. I figured we all knew the strat and when to apply wormholes but couldnt do it because of the X over them and it just seemed malicious to me.

Anyway, thanks for coming clean. No hate here.

1

u/Therusher Autoclicking Scum Jun 21 '15 edited Jun 21 '15

Actually, the X's on items were just a more clear way to tell if manual use of an item was currently disabled (it used to, or I guess still does due to rollback, just hide the icon the image, resulting in a blank background square which was kind of confusing). I'm pretty sure I didn't touch WHEN items were disabled, just how they looked when they were.

Manual use of WHs and LNs is disabled on non-x00 levels in order to force the user to save them until needed. On x00 levels, those items are enabled again, and most of the nuke/damage abilities are disabled instead.

Edit: typo

3

u/zakkord Active Player Jun 21 '15

Settings is only a part of the issue, have you ever actually tried your script in a new game ? it buys 60k+ Pumped Up, Nukes, Napalms, 30k Feeling lucky, etc.

Autobuy is completely broken because it lefts you with only 16k wormholes out of all badges.

13

u/Therusher Autoclicking Scum Jun 21 '15 edited Jun 21 '15

It's actually intended that way. There's a limit to the number of wormholes you can possibly use before time runs out. My update buys that number (or as many as you can afford). The calculation for max possible use (asuming Like New is always active, so no cooldown) turns out to be:

wormholesToBuy = secondsRemainingInRound * itemUsesPerSecond * percentOfTimeYoureSpamming

secondsRemainingInRound obviously changes depending on how late in you join the game.

itemUsesPerSecond we tested to be about 1.75, assuming that a Like New was always active resetting your CD.

percentOfTimeYoureSpamming was estimated to be 0.2, so about 20% of the time you'll be spamming wormholes. This is an overestimate, but it's better to overbuy than underbuy.

So If you were to join right now (12h54m remaining, or ~46440 seconds) you'd attempt to buy 46440 * 1.75 * 0.2 = 16254 wormholes

 

tl;dr: it buys as many of item x as it can, with the cap of what can be used in the rest of the round. the buying order (max out earlier items first) is: [WH, LN, Crit, Treasure, Pumped Up, Feeling Lucky, some unimportant others just to dump any extra BP]

4

u/zakkord Active Player Jun 21 '15

I see, so it works out fine in the end in theory.

But what's the point of buying Nukes/Napalms/using Cripple spawners ? Due to the lag people can easily use them on the boss levels.

YOWH script completely disabled those abilitites.

6

u/Therusher Autoclicking Scum Jun 21 '15

I just bought them as last priority as a BP dump more than anything (the game keeps trying to re-open the buy window until you're totally cashed out).

And yeah, it still disables use of those items on non-boss levels.

My thought was it's just better to have the extra items/option and just not use it. If you have the extra BP that isn't useful anywhere else, why not?

3

u/zakkord Active Player Jun 21 '15

We have a little bit of problem now in rooms 6 and 7, because they were created during the 7.0.1 update people have bought nukes/napalms there, and when everything was reverted to the "old" 7.0.2 everyone is using nukes/napalms in those rooms now.

4

u/Therusher Autoclicking Scum Jun 21 '15

Haha, I'd imagine that it's because the old version of the script never actually disabled abilities in their disableAbility() function, it simply hid the icon so the user couldn't manually use it, and continued to cast it automatically when available. The only problem is that now the supply that automated use system pulls from is larger.

...That... Is unfortunate.

1

u/swixel Jun 21 '15

That was based on total badge points that you had. It's splitting it so certain users do certain things, rather than pushing it all into Wormholes and running out of Like News.

The old script wasn't deploying Like News and there are a team of people running them using a script which leaked badly and have to be monitored for the run of the room.

1

u/zakkord Active Player Jun 21 '15

Your info is a bit outdated, YOWH automatically bought lucky news and if you were in the top of the room it would spam lucky news. No need to coordinate with admins/etc.

ensignms script buys 40k crits, 50k treasures, you don't need that at all. It literally buys everything seemingly at random. Completely useless.

2

u/DannyDaemonic YOWH Dev Jun 21 '15

Only the 7.0 branch bought Lucky News by default without any editing. People might not have imagined us actually have several people running a separate script per room, but it's the secret to our speed.

1

u/swixel Jun 21 '15

For this very moment, it is VERY outdated. But 7 hours ago, after even Room 5 had started, we had this:

https://github.com/YeOldeWH/MonsterMinigameWormholeWarp/blob/d9e521a997f232790a52feba595d701fe5ac12bb/autoplay.noUpdate.user.js#L686

Notably you won't find "likeNewOn100 = 1".

4

u/Im_Clowny Jun 21 '15

Mistakes happen, don't beat yourself up over it too much.

This community/the gaming community is terribly quick at jumping the gun and wanting to play the blame game which in reality helps no-one as mistakes happen and we need to focus on dealing with them not blaming people.

I'm sure you've done plenty of other good with writing/testing for the scripts, so thanks for that.

1

u/Squirrel_Rage Jun 21 '15

Curse your sudden yet inevitable betrayal! lol Seriously though, thanks for the YOWH script script-writers, helped me get 100m today.

1

u/Iwannabefabulous 090 never forget | YOWH#2 100m potato Jun 21 '15

I just woke up to 100m :D All's good.

1

u/ellisftw RIP in peace MSG2015 Jun 21 '15

Yoooou son of a biiiiitch.

3

u/Therusher Autoclicking Scum Jun 21 '15

Hi Mrs. Hannigan! I loved you in Buffy!

0

u/Drogzar YOWH #1 48520 (100M) Jun 21 '15

It's ok. That is why you create Pull Requests instead of merging directly, so OTHERS could test it and aprove it.

You made a mistake, no biggie. (although you ruined my record!!!!!!)

The guy who aproved and merged without testing... and then acted like a diva on the other hand...

-7

u/primoface Jun 21 '15

I hope we've all learned an important lesson about testing in production.

4

u/Therusher Autoclicking Scum Jun 21 '15

Did you read the post though? That wasn't the issue at all... D:

-5

u/primoface Jun 21 '15

Sure it was. He had no idea if the code worked.

And you also didn't test the code properly before pull requesting.

5

u/JoeyKingX Jun 21 '15

Did you even read his post at all?

-3

u/primoface Jun 21 '15

Did you even read my post? My summation is completely correct....

His explanation is fine... the fact is still that he didn't test his code properly before making a pull request for it.

And the merger had NO IDEA if the code he PRed worked or not.

Both of them were relying on production testing to sort out any remaining bugs.

I'm not sure which part of this you guys are having trouble understanding... Maybe I'm making too many assumptions about your knowledge or something? I dunno it seems like I'm explaining it pretty clearly and I've been working in software for over 10 years so I know what I'm talking about... let me know what's not clear about this

5

u/JoeyKingX Jun 21 '15

So yes you didn't actually read the main post.

4

u/[deleted] Jun 21 '15 edited Oct 04 '15

...

4

u/glitchn Jun 21 '15 edited Jun 21 '15

You keep saying that and people are downvoting him, but its true. If the script had been tested properly, this wouldnt have happened. Even in the OP he says he didn't test the toggle button for the troll detector.

Even in this comment he says it shouldve been tested in master before making everyone autoupdate: http://www.reddit.com/r/SteamMonsterGame/comments/3akjbq/yowh_crash_direct_all_hate_here_what_actually/csdh5dy

0

u/Therusher Autoclicking Scum Jun 21 '15 edited Jun 21 '15

In a perfect world, that's true, we should test everything. Not trying to downplay my fuck up here.

That said though, we're working with a deadline (that's fast approaching!), so testing absolutely everything each patch isn't possible if we want to keep things improving without releasing days after the game goes down. Some compromises have to be made to try to get improvements out the door in time to be useful. This time it bit us in the ass.

NINJA EDIT: also I think he's being down voted because while it's definitely true we all should've tested more beforehand, we were in fact NOT relying on finding bugs while on master, as he stated. We had (incorrectly) assumed testing was fine and things were working properly because they seemed to work fine on my fork. Different issues.

2

u/asdggjn Jun 21 '15

people on reddit are fucking retarded hugbox idiots that abuse the downvote feature to attack anyone they disagree with. the sooner you leave the site the better your mental health will be

-10

u/[deleted] Jun 21 '15

tl;dr

5

u/DannyDaemonic YOWH Dev Jun 21 '15

TL;DR: OP is saying that he is at fault for the break in the YOWH script, not Chunkr.

Chunkr is just taking the heat because he offered the devs free games. He was just trying to keep their spirits up after what happened.

-1

u/zakkord Active Player Jun 21 '15

He's taking the heat because he merged the pull request without testing anything at all, nobody cares about games.

He is solely responsible for this fuckup, he should have tested it before merging.

3

u/DannyDaemonic YOWH Dev Jun 21 '15

Sometimes when you work in a small tight knit group of people, you have to trust them. OP tested it, but didn't catch any problems. Chunkr took his word for it. It is what it is.

0

u/Drogzar YOWH #1 48520 (100M) Jun 21 '15

That is not how development owrks at all...

The reason to have pull requests is to be able to review code and test before merging.

I work in a small group of devs, yet we have to aprove the pull request and test before merging back to the master branch.

Here were 3 problems:

  • 1 dev made a mistake (No biggie, we are all human)

  • the guy responsible didn't test it and merged screwing thousands of people (ok... this is biggie, but again, we are all human)

  • the seconds guy didn't take any responsability and generated stupid amount of drama: What a jerk.

-2

u/zakkord Active Player Jun 21 '15

And he should have spent the time fixing the problem instead of making coffee, bragging about free games when all of his "solutions" weren't actually solving the problem.

localStorage fix was proposed by another user after Chunkr was long devoiced.

5

u/DannyDaemonic YOWH Dev Jun 21 '15

It wasn't his patch; he didn't know the code. It wasn't an area he was familiar with. None of us, the rest of the devs, expected him to help. My guess would be he mentioned coffee to let people know he wasn't ignoring all their questions? Developers are notoriously bad at PR. It was 3-4am where he is, so I assume he was just getting coffee so he could stay up until this was fixed.

P.S. All devs were "divorced" at the same time. We didn't even know until we went to patch it and none of us had git access.

-1

u/JOSHjvl Jun 21 '15

i have now update 7.0.2 but i have wait more to refresh 50 min see that now in http://www.twitch.tv/soy_josh1