20 fixed paylines · Pays left to right · All awards are multiplied by the line bet (total bet ÷ 20).
Line payouts
Symbol
5
4
3
🏆 Trophy
120.00×
35.00×
8.00×
👟 Bowling shoe
80.00×
24.00×
6.00×
▣ Scorecard
60.00×
18.00×
5.00×
A
35.00×
12.00×
4.00×
K
30.00×
10.00×
3.00×
Q
25.00×
8.00×
2.50×
J
20.00×
6.00×
2.00×
Wild & scatter
Bowling Ball WILD substitutes for all line symbols except the Pin Scatter. It rolls across a winning lane.
Bowling Pin SCATTER pays anywhere: 3 = 2.00×, 4 = 10.00×, 5+ = 25.00× total bet, and triggers Strike Bonus.
Jackpots
A strike in the bonus can randomly drop SPARE 10×, STRIKE 50×, TURKEY 500×, or the ultra-rare PERFECT 300 10,000×. Max win: 10,000× total bet.
Strike Bonus
Tap BOWL to lock the moving aim meter. You get two balls, like a real frame. Good timing knocks down more pins. A spare pays 8.00× total bet. A strike pays 12.00× and may drop a jackpot.
Pin prizes are added for every pin knocked down. The feature is designed to appear about once every 30–60 spins over long play, but random results vary.
Game profile
Target RTP: 96.5% — design target, not certified
Volatility: Medium-high Max win: 10,000× total bet Paylines: 20 fixed
Virtual credits only — no real money.
Every outcome is generated in your current play session. This prototype is for entertainment and demonstration.
BIG WIN
0.00
TAP ANYWHERE TO CONTINUE
STRIKE BONUS
BALL 1 · TIME YOUR SHOT
STRIKE!
Tap BOWL when the marker hits center.
on every goldodd.com page.
Sends: pageview on load; on /games// pages also game_start,
a heartbeat every 30s, and game_end when the tab closes.
No cookies, no fingerprinting. Visitors with Do Not Track on send nothing. */
(function(){
"use strict";
if (navigator.doNotTrack === "1" || window.doNotTrack === "1") return;
var EP = "https://goldodd.com/api/collect";
var sid = "na";
try {
sid = sessionStorage.getItem("go_sid") || "";
if (!sid) {
sid = Math.random().toString(36).slice(2) + Date.now().toString(36);
sessionStorage.setItem("go_sid", sid);
}
} catch (e) {}
var device = /Mobi|Android|iPhone|iPad/i.test(navigator.userAgent || "") ? "mobile" : "desktop";
function send(type, game) {
var d = { type: type, path: location.pathname, ref: document.referrer || "",
session: sid, device: device };
if (game) d.game = game;
var body = JSON.stringify(d);
try { if (navigator.sendBeacon && navigator.sendBeacon(EP, body)) return; } catch (e) {}
try { fetch(EP, { method: "POST", headers: { "Content-Type": "application/json" },
body: body, keepalive: true }); } catch (e) {}
}
var m = location.pathname.match(/^\/games\/([^\/]+)/);
var game = m ? m[1] : null;
send("pageview");
if (game) {
send("game_start", game);
var hb = setInterval(function(){ send("heartbeat", game); }, 30000);
var done = false;
var end = function(){
if (done) return; done = true;
clearInterval(hb); send("game_end", game);
};
window.addEventListener("pagehide", end);
document.addEventListener("visibilitychange", function(){
if (document.visibilityState === "hidden") end();
});
}
})();