LockerGnomeFor serious tech professionals with a silly side.
Subscribe

Search

Drama & Failuresgamesmobileads

Block Blast deals an unwinnable 'lethal puzzle' when you beat your high score and the loaded ad is worth 3.5x your last one, a decompile shows

Data scientist Ayo Omolewa took apart Block Blast on Android and iPhone and published the code: a downloaded rule waits for three good rewarded ads, a loaded ad priced at 3.5 times the last one, and a score 1,000 past your record, then asks for a hand no placement can finish.

Chris, arms folded, frowns up at a floating grid of flat coloured squares where three oversized block shapes hang that cannot fit, beside a tall stack of gold coins.
Illustration: LockerGnome

Block Blast is the block puzzle that made an estimated $127 million from ads between January and May 2026, against $81.1 million for Candy Crush Saga over the same months, Omolewa writes, citing Sensor Tower estimates. Omolewa, a data scientist and app developer, had already posted a video about the game “that got over 15 million views”. The breakdown is the code behind it.

The rule is called RewardHighValueAdHarvestTrait. Omolewa’s write-up says the game downloads it as encrypted JavaScript from its own server, so it isn’t in the app Apple or Google reviewed, and the server decides which players get which version. Decoded, its constructor sets HIGH_PRICE_MULTIPLIER = 3.5 and MIN_HISTORY_AD_WATCH_COUNT = 3.

The three checks, as the breakdown reads them. An ad only counts as finished when AppLovin MAX’s onUserRewarded callback fires, “so an ad you close early stays false.” The price check reads the best rewarded ad currently loaded and compares it with the value of your last one. The score bar is your high score plus a step of 1,000 on Omolewa’s install, with other players’ versions at 500 and 750, and a revive after the rule fires raises the bar so it can fire again in the same game.

When all three hold, the rule replaces the game’s list of piece generators with one: algorithm 24001, algo_must_death. Omolewa’s excerpt shows it searching for two pieces that fit the board now and one that doesn’t, and keeping the set only when no order and no placement fits all three. “Two of the three fit when they’re dealt, so the hand doesn’t look impossible until you try it,” the breakdown says. On the test board in its evidence bundle, “we tried all 171 placements, and none of them finish it.”

Omolewa ran the downloaded rule unmodified with test values: “It requests the lethal puzzle exactly when all three conditions hold,” across 28 cases including two ads instead of three, one closed early, a score 1 point short and an ad just under 3.5x.

On a test copy of the iPhone app in Apple’s simulator, the ad rule was armed and waiting: the loaded AdMob ad was priced at 72.39 against 37.41 for the last one, 1.94x, short of the 3.5x it needs. A different rule fired on camera instead. PersonalMarginBreakTrait, per the breakdown, rolls on every deal once you’re 10% past your record and asks for the same lethal puzzle 20% of the time. At 3,356 points, against a reset record of 1,304, the game dealt a five-long bar, a five-tall bar and a zigzag, each labeled 致死题. “Two separate exhaustive searches agree: zero.”

The write-up goes further than the one rule. It describes a downloaded XGBoost regression model with 27 inputs that estimates what a player is worth in ads, which the code calls finalEcpm; in Omolewa’s port, moving the same made-up US player to Brazil cuts that value to about a third. A separate 500-tree classifier picks where in a level-mode stage the lethal puzzle shows up. And a rule named MultiClearBoostThenKillTrait, per the breakdown, asks a server for labels the code names “not sensitive to being forced to die.”

Omolewa lists the limits. The findings are for Android 10.8.2 and iOS 7.4.9. On iPhone, half of the 12 versions of a second rule, RewardHighValueAdHarvestV2Trait, switch off the three-ad check, so “a single rewarded ad you closed early is enough.” The ad rule can’t fire offline or behind a phone-wide ad blocker, because no rewarded ad is loaded. The decryption key and the steps past the apps’ protection are withheld from the bundles, offered to journalists and researchers by email. “The one thing that stops this rule everywhere is not having a rewarded ad loaded,” the breakdown says.

Whether a rule like this passes review is still open. Apple allows downloaded JavaScript updates that don’t change what an app is, the breakdown notes: “Whether changing your pieces based on ad prices fits that is up to Apple.”

Free-to-play games have always tuned difficulty to keep players paying. What a decompile adds is the input list. A player who loses the hand right after a new record has, until now, had no way to tell bad luck from a rule, and the people who could tell were the ones holding the server.

The ad rule also prices the moment, which is where the money is. A player on a record run is the most invested they’ll be all session, and a revive costs one rewarded ad. Pairing that moment with the most expensive ad in memory is the arithmetic the code spells out.

The breakdown names who gets which version only as “the server.” Which share of Block Blast’s players run the 1,000-point arm, the 500 or the 750, isn’t in it.

More Drama & Failures

Every Drama & Failures story →