A Danse Macabre painted as an illuminated manuscript. Twenty-five symbols land on a five-by-five page and twenty-five lines pay from the left. Souls carry a prize and Scythes a multiplier, and when Death comes every Soul on the page is taken. Three Books open the Crypt, where the Scythes stay.
The Book of Hours is a five-by-five, twenty-five-line cash-collect slot on the same server-authoritative core as the other titles. The seven ranks, J to the Pope, pay left to right, three or more in a row. The Scythe stands in for any rank and multiplies the line it is in, ×2 to ×25; the Soul carries a prize of 1× to 500× the stake and pays only when Death lands; three Books open the Crypt, six free spins in which every Scythe holds its cell. RTP is 96.5%, solved in closed form, and a press pays at most 10,000× the stake.
Set the stake and press SPIN. The whole press, the crypt it may open included, is settled on the server before the first reel stops, and the client only plays it back. The reels stop in a ratchet from the left and every line is read from the first reel: three, four or five of a rank in a row pay its row on the bill, and a Scythe in the run stands in for the rank and multiplies the line by its own value. Two Scythes on one line multiply by each other.
A Soul lands carrying a prize of 1× to 500× the stake and waits. When Death lands with at least one Soul on the page, he takes them all, and each Soul pays its prize times the value of every Scythe in the three-by-three around it. At most one Death lands on any page, so the collect is one event, and a Scythe worth ×4 or more lands face down and turns over as he takes.
Three Books, one to a reel, open the Crypt for six free spins; four open the Sealed Crypt for nine, where no Soul is worth less than 5×. In a crypt a Scythe holds its cell for every spin left with a fresh multiplier each spin, Souls and Scythes land four times as often, Death nine times, and the Hourglass turns for one to six more spins. A run ends the moment the press reaches 10,000×. Every feature has a round price on the sheet: double the chance at ×1.75, Death on every press at ×4.50, the Crypt itself at ×225.

Twenty-five cells in ultramarine wells under Death in the clouds, with the two jesters at the frame. The balance and the take read in the corners, the sign above the display names the hour, and the stake, SPIN and BUY THE CRYPT sit under it. A ×3 Scythe and a Book are already on the page.

Two lines of three Queens, each 0.045 on a 1.00 stake, drawn one at a time as comets with the line's pay on each. A 100× Soul waits at the foot of the first reel: it pays nothing until Death lands, and on this press he did not.

Death lands on the first reel and the sign says so. The 4× Soul beside him sits inside the three-by-three of a ×2 Scythe, and the reach draws the box: the Soul pays 8×, 8.00 on a 1.00 stake, and flies to him. At most one Death lands on a page.

The door waits for the player's press, the one input a press ever takes, and it explains the six free spins with the game's own art: a Scythe that lands stays, with a new multiplier every spin; it multiplies every Soul in its three-by-three; the Hourglass buys spins.

Free spin eight of twelve: the run opened at six and the Hourglass has bought six more. A Scythe that landed earlier still holds its cell, now at ×4, and the page has moved to the crypt at night. The counter above the display carries the run's take so far.

Wins past 10× the stake take over the screen and the figure climbs one card at a time: A Good Hour at ×10, A Rich Hour at ×25, The Dance Quickens at ×60, The Gold Is Laid at ×150 and The Last Trumpet at ×400. This press paid 402× and the figure is on its way through the third card; SKIP lands it at once.
Every round is committed before it opens and verifiable after it ends. Operators do not have to take our word for it, and neither do their players.
Before a round opens, the server publishes sha256(server_seed). That hash pins the crash point in place before the first bet is taken.
The round runs. crash_at derives from HMAC-SHA256(server_seed, client_seed:nonce), so neither side can steer the outcome mid-round.
After the bust, the server reveals server_seed. Anyone can rehash it, recompute crash_at, and confirm both match the record.
THE REFERENCE VERIFIER AND FULL DERIVATION SHIP WITH THE INTEGRATION DOCS.
$ rara verify --game bookofhours --round 001042 # hash published before bets opened server_seed_hash sha256:9f2c71a84be…c30be81a client_seed bookofhours-demo-7f3a nonce 001042 hmac = HMAC_SHA256(server_seed, client_seed + ":" + nonce) = 7c2e4d09aa61b8e2…10f4b90f h = int(hmac[0:8], 16) crash_at = max(1.00, floor(99 * 2^32 / (h + 1)) / 100) = 3.47x $ rara reveal --game bookofhours --round 001042 server_seed 4b7dd21c09aae5…f133c2e9 sha256(server_seed) == server_seed_hash ok recompute(crash_at) == 3.47x ok verify == true
RaRa Studio is an independent game studio in Tbilisi, Georgia. Every title starts as a model: simulated, stress-tested, and documented before the art goes in. Spec sheets and verifiers are part of the product, and Vice Run is the first title through the pipeline.
Integration docs, the full math spec, and playable builds are available under NDA to operators, aggregators, and platforms.