#gates-olympus-analytics {
--bg: #1e1b4b;
--card: #312e81;
--gold: #fbbf24;
--red: #ef4444;
--cyan: #06b6d4;
--text: #f8fafc;
--muted: #cbd5e1;
--border: #4338ca;
--panel: #1f1b5f;
--green: #10b981;
--blue: #3b82f6;
--purple: #a855f7;
--white: #f8fafc;
font-family: Arial, Helvetica, sans-serif;
background: var(--bg);
color: var(--text);
padding: 32px 16px;
border-radius: 18px;
box-sizing: border-box;
}#gates-olympus-analytics * {
box-sizing: border-box;
}#gates-olympus-analytics .go-wrap {
max-width: 1200px;
margin: 0 auto;
}#gates-olympus-analytics .go-header {
text-align: center;
margin-bottom: 40px;
}#gates-olympus-analytics .go-header h2 {
margin: 0 0 10px;
font-size: 42px;
line-height: 1.1;
color: var(--gold);
text-transform: uppercase;
letter-spacing: 2px;
}#gates-olympus-analytics .go-header h3 {
margin: 0 0 16px;
font-size: 22px;
color: var(--cyan);
font-weight: 700;
}#gates-olympus-analytics .go-header p,
#gates-olympus-analytics .go-section p,
#gates-olympus-analytics .go-card p,
#gates-olympus-analytics .go-note {
color: var(--muted);
line-height: 1.7;
margin: 0;
}#gates-olympus-analytics .go-section {
margin-bottom: 34px;
}#gates-olympus-analytics .go-section-title {
font-size: 26px;
color: var(--gold);
margin: 0 0 10px;
padding-bottom: 10px;
border-bottom: 1px solid var(--border);
}#gates-olympus-analytics .go-grid-kpi {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 16px;
margin-top: 22px;
}#gates-olympus-analytics .go-kpi {
background: var(--card);
border: 1px solid var(--border);
border-radius: 16px;
padding: 22px 16px;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,.18);
}#gates-olympus-analytics .go-kpi-value {
font-size: 34px;
font-weight: 700;
margin-bottom: 8px;
}#gates-olympus-analytics .go-kpi-label {
font-size: 13px;
text-transform: uppercase;
letter-spacing: 1px;
color: #a5b4fc;
}#gates-olympus-analytics .go-grid-2 {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 22px;
margin-bottom: 34px;
}#gates-olympus-analytics .go-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 16px;
padding: 22px;
box-shadow: 0 10px 30px rgba(0,0,0,.18);
}#gates-olympus-analytics .go-card h4 {
margin: 0 0 10px;
font-size: 24px;
color: var(--gold);
}#gates-olympus-analytics .go-card p {
font-size: 14px;
margin-bottom: 14px;
}#gates-olympus-analytics .go-chart-box {
width: 100%;
height: 340px;
position: relative;
}#gates-olympus-analytics .go-chart-box canvas {
width: 100%;
height: 100%;
display: block;
background: transparent;
}#gates-olympus-analytics .go-tumble {
background: var(--card);
border: 1px solid var(--border);
border-radius: 16px;
padding: 24px;
box-shadow: 0 10px 30px rgba(0,0,0,.18);
}#gates-olympus-analytics .go-flow {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-top: 22px;
flex-wrap: wrap;
}#gates-olympus-analytics .go-flow-step {
flex: 1 1 150px;
min-width: 150px;
background: #1b164f;
border: 1px solid var(--border);
border-radius: 14px;
padding: 18px 12px;
text-align: center;
}#gates-olympus-analytics .go-flow-step strong {
display: block;
font-size: 15px;
margin-top: 8px;
color: var(--text);
}#gates-olympus-analytics .go-flow-step span {
font-size: 28px;
display: block;
}#gates-olympus-analytics .go-arrow {
color: var(--gold);
font-size: 24px;
font-weight: bold;
}#gates-olympus-analytics .go-process-note {
margin-top: 14px;
text-align: center;
color: var(--cyan);
font-size: 13px;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 700;
}#gates-olympus-analytics .go-scatter-list {
list-style: none;
margin: 0;
padding: 0;
}#gates-olympus-analytics .go-scatter-list li {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 12px 0;
border-bottom: 1px solid rgba(255,255,255,.12);
color: var(--text);
}#gates-olympus-analytics .go-scatter-list li:last-child {
border-bottom: 0;
}#gates-olympus-analytics .go-badge {
color: var(--cyan);
font-weight: 700;
text-align: right;
}#gates-olympus-analytics .go-alert {
margin-top: 18px;
background: #1b164f;
border-left: 4px solid var(--red);
padding: 14px 14px;
border-radius: 10px;
color: var(--muted);
line-height: 1.6;
font-size: 14px;
}#gates-olympus-analytics .go-footer {
text-align: center;
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid var(--border);
color: var(--muted);
font-size: 13px;
}#gates-olympus-analytics .go-mini {
margin-top: 8px;
color: var(--cyan);
font-weight: 700;
letter-spacing: 2px;
}@media (max-width: 980px) {
#gates-olympus-analytics .go-grid-kpi,
#gates-olympus-analytics .go-grid-2 {
grid-template-columns: 1fr 1fr;
}
}@media (max-width: 700px) {
#gates-olympus-analytics .go-grid-kpi,
#gates-olympus-analytics .go-grid-2 {
grid-template-columns: 1fr;
}#gates-olympus-analytics .go-header h2 {
font-size: 30px;
}#gates-olympus-analytics .go-header h3 {
font-size: 18px;
}#gates-olympus-analytics .go-chart-box {
height: 300px;
}#gates-olympus-analytics .go-flow {
flex-direction: column;
}#gates-olympus-analytics .go-arrow {
transform: rotate(90deg);
}
}
The Core Metrics
These headline numbers summarize the base game structure. The slot is known for a strong RTP, a large max-win ceiling,
and an aggressive volatility profile that can produce long quiet stretches followed by sharp payout spikes.
Top Symbol Payouts
Premium symbols drive the strongest base payouts. This horizontal bar chart shows the top symbol values for
12 or more matching symbols landing anywhere on the 6x5 grid.
Multiplier Orb Distribution
Multiplier drops are heavily weighted toward low values, while large orbs are much rarer. This doughnut view
shows an estimated composition of multiplier frequency by tier.
The Tumble Feature Mechanics
The tumble feature is what makes one paid spin feel like a sequence rather than a single event. Winning symbols
disappear, new ones fall, and the process repeats until the grid stops forming new combinations. Multipliers then
amplify the chain total.
↻
1. Spin Initiated
→
★
2. Winning Combo (8+)
→
✕
3. Symbols Explode
→
↓
4. New Symbols Fall
→
Σ
5. Multipliers Apply
The sequence repeats until no new winning cluster appears.
Base Game vs Free Spins
The base game delivers most spins with modest outcomes, while the bonus round shifts more power into accumulated
multipliers and retrigger potential. This radar chart compares the two modes across five gameplay dimensions.
The Scatter Matrix
Scatter symbols unlock the feature round and also pay on their own. Their value rises sharply as more appear in
the same spin.
-
🏛️ 4 Scatters
3x Bet + 15 Free Spins
-
🏛️🏛️ 5 Scatters
5x Bet + 15 Free Spins
-
🏛️🏛️🏛️ 6 Scatters
100x Bet + 15 Free Spins
Ante Bet Feature:
Players can raise the stake by 25% to increase the chance of landing a bonus-triggering scatter setup.
Simulated Volatility Distribution (1,000 Spins)
This scatter plot models a high-volatility session. Most spins return zero or near-zero value, while a small number
of outliers produce much larger wins. That gap between common small outcomes and rare spikes is the defining risk profile
of Gates of Olympus.
(function() {
function fitCanvas(canvas) {
var ratio = window.devicePixelRatio || 1;
var rect = canvas.getBoundingClientRect();
var cssWidth = rect.width || canvas.width;
var cssHeight = rect.height || canvas.height;
canvas.width = Math.round(cssWidth * ratio);
canvas.height = Math.round(cssHeight * ratio);
var ctx = canvas.getContext('2d');
ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
return { ctx: ctx, width: cssWidth, height: cssHeight };
}function roundRect(ctx, x, y, w, h, r, fill, stroke) {
if (w < 2 * r) r = w / 2;
if (h < 2 * r) r = h / 2;
ctx.beginPath();
ctx.moveTo(x + r, y);
ctx.arcTo(x + w, y, x + w, y + h, r);
ctx.arcTo(x + w, y + h, x, y + h, r);
ctx.arcTo(x, y + h, x, y, r);
ctx.arcTo(x, y, x + w, y, r);
ctx.closePath();
if (fill) ctx.fill();
if (stroke) ctx.stroke();
}function drawTitle(ctx, text, x, y, color, size, align) {
ctx.fillStyle = color;
ctx.font = "bold " + size + "px Arial";
ctx.textAlign = align || "left";
ctx.fillText(text, x, y);
}function drawWrappedText(ctx, text, x, y, maxWidth, lineHeight, color, font) {
ctx.fillStyle = color;
ctx.font = font || "13px Arial";
ctx.textAlign = "left";
var words = text.split(" ");
var line = "";
for (var n = 0; n maxWidth && n > 0) {
ctx.fillText(line, x, y);
line = words[n] + " ";
y += lineHeight;
} else {
line = testLine;
}
}
ctx.fillText(line, x, y);
}function drawBarChart() {
var canvas = document.getElementById("goBarChart");
if (!canvas) return;
var f = fitCanvas(canvas);
var ctx = f.ctx, w = f.width, h = f.height;var labels = ["Golden Crown", "Hourglass", "Ruby Ring", "Chalice"];
var values = [50, 25, 15, 12];
var colors = ["#fbbf24", "#06b6d4", "#ef4444", "#f8fafc"];ctx.clearRect(0, 0, w, h);var margin = { top: 20, right: 40, bottom: 30, left: 130 };
var chartW = w - margin.left - margin.right;
var chartH = h - margin.top - margin.bottom;
var maxVal = 60;ctx.strokeStyle = "#4338ca";
ctx.lineWidth = 1;for (var i = 0; i <= 6; i++) {
var gx = margin.left + chartW * (i / 6);
ctx.beginPath();
ctx.moveTo(gx, margin.top);
ctx.lineTo(gx, margin.top + chartH);
ctx.stroke();ctx.fillStyle = "#94a3b8";
ctx.font = "12px Arial";
ctx.textAlign = "center";
ctx.fillText(String(i * 10), gx, margin.top + chartH + 18);
}var barGap = 18;
var barH = (chartH - (barGap * (labels.length - 1))) / labels.length;for (var j = 0; j < labels.length; j++) {
var y = margin.top + j * (barH + barGap);
var barW = (values[j] / maxVal) * chartW;ctx.fillStyle = colors[j];
roundRect(ctx, margin.left, y, barW, barH, 7, true, false);ctx.fillStyle = "#f8fafc";
ctx.font = "bold 13px Arial";
ctx.textAlign = "right";
ctx.fillText(labels[j], margin.left - 12, y + barH / 2 + 5);ctx.textAlign = "left";
ctx.fillText(values[j] + "x", margin.left + barW + 8, y + barH / 2 + 5);
}
}function drawDoughnutChart() {
var canvas = document.getElementById("goDoughnutChart");
if (!canvas) return;
var f = fitCanvas(canvas);
var ctx = f.ctx, w = f.width, h = f.height;var data = [
{ label: "Low Tier (2x-5x)", value: 70, color: "#10b981" },
{ label: "Mid Tier (10x-25x)", value: 20, color: "#3b82f6" },
{ label: "High Tier (50x)", value: 8, color: "#a855f7" },
{ label: "God Tier (100x-500x)", value: 2, color: "#ef4444" }
];ctx.clearRect(0, 0, w, h);var centerX = w * 0.34;
var centerY = h * 0.52;
var radius = Math.min(w, h) * 0.24;
var innerRadius = radius * 0.58;
var total = data.reduce(function(a, b) { return a + b.value; }, 0);
var angle = -Math.PI / 2;for (var i = 0; i < data.length; i++) {
var slice = (data[i].value / total) * Math.PI * 2;ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.arc(centerX, centerY, radius, angle, angle + slice);
ctx.closePath();
ctx.fillStyle = data[i].color;
ctx.fill();angle += slice;
}ctx.globalCompositeOperation = "destination-out";
ctx.beginPath();
ctx.arc(centerX, centerY, innerRadius, 0, Math.PI * 2);
ctx.fill();
ctx.globalCompositeOperation = "source-over";ctx.fillStyle = "#f8fafc";
ctx.font = "bold 18px Arial";
ctx.textAlign = "center";
ctx.fillText("Orbs", centerX, centerY - 4);
ctx.font = "13px Arial";
ctx.fillStyle = "#cbd5e1";
ctx.fillText("Distribution", centerX, centerY + 18);var lx = w * 0.62;
var ly = 70;
ctx.textAlign = "left";for (var j = 0; j < data.length; j++) {
ctx.fillStyle = data[j].color;
roundRect(ctx, lx, ly + (j * 48), 16, 16, 3, true, false);ctx.fillStyle = "#f8fafc";
ctx.font = "bold 13px Arial";
ctx.fillText(data[j].label, lx + 24, ly + 12 + (j * 48));ctx.fillStyle = "#94a3b8";
ctx.font = "12px Arial";
ctx.fillText(data[j].value + "%", lx + 24, ly + 29 + (j * 48));
}
}function drawRadarChart() {
var canvas = document.getElementById("goRadarChart");
if (!canvas) return;
var f = fitCanvas(canvas);
var ctx = f.ctx, w = f.width, h = f.height;var labels = [
"Hit Frequency",
"Average Win Size",
"Multiplier Accumulation",
"Feature Retriggers",
"Max Win Probability"
];
var dataA = [7, 3, 2, 1, 1];
var dataB = [5, 8, 9, 7, 9];
var maxVal = 10;ctx.clearRect(0, 0, w, h);var cx = w / 2;
var cy = h / 2 + 8;
var radius = Math.min(w, h) * 0.30;
var axes = labels.length;for (var ring = 1; ring <= 5; ring++) {
ctx.beginPath();
for (var i = 0; i < axes; i++) {
var a = -Math.PI / 2 + (Math.PI * 2 * i / axes);
var r = radius * (ring / 5);
var x = cx + Math.cos(a) * r;
var y = cy + Math.sin(a) * r;
if (i === 0) ctx.moveTo(x, y);
else ctx.lineTo(x, y);
}
ctx.closePath();
ctx.strokeStyle = "#4338ca";
ctx.stroke();
}for (var j = 0; j < axes; j++) {
var angle = -Math.PI / 2 + (Math.PI * 2 * j / axes);
var x2 = cx + Math.cos(angle) * radius;
var y2 = cy + Math.sin(angle) * radius;ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.lineTo(x2, y2);
ctx.strokeStyle = "#4338ca";
ctx.stroke();var lx = cx + Math.cos(angle) * (radius + 28);
var ly = cy + Math.sin(angle) * (radius + 28);
ctx.fillStyle = "#f8fafc";
ctx.font = "12px Arial";
ctx.textAlign = lx < cx ? "right" : "left";
if (Math.abs(lx - cx) < 20) ctx.textAlign = "center";
drawWrappedText(ctx, labels[j], lx, ly, 110, 14, "#f8fafc", "12px Arial");
}function drawDataset(values, fillColor, strokeColor) {
ctx.beginPath();
for (var i = 0; i < axes; i++) {
var ang = -Math.PI / 2 + (Math.PI * 2 * i / axes);
var rr = radius * (values[i] / maxVal);
var xx = cx + Math.cos(ang) * rr;
var yy = cy + Math.sin(ang) * rr;
if (i === 0) ctx.moveTo(xx, yy);
else ctx.lineTo(xx, yy);
}
ctx.closePath();
ctx.fillStyle = fillColor;
ctx.strokeStyle = strokeColor;
ctx.lineWidth = 2;
ctx.fill();
ctx.stroke();for (var k = 0; k < axes; k++) {
var ang2 = -Math.PI / 2 + (Math.PI * 2 * k / axes);
var rr2 = radius * (values[k] / maxVal);
var px = cx + Math.cos(ang2) * rr2;
var py = cy + Math.sin(ang2) * rr2;
ctx.beginPath();
ctx.arc(px, py, 4, 0, Math.PI * 2);
ctx.fillStyle = strokeColor;
ctx.fill();
}
}drawDataset(dataA, "rgba(6,182,212,0.20)", "#06b6d4");
drawDataset(dataB, "rgba(251,191,36,0.20)", "#fbbf24");ctx.fillStyle = "#06b6d4";
roundRect(ctx, 16, 14, 16, 16, 3, true, false);
ctx.fillStyle = "#f8fafc";
ctx.font = "13px Arial";
ctx.textAlign = "left";
ctx.fillText("Base Game", 40, 27);ctx.fillStyle = "#fbbf24";
roundRect(ctx, 130, 14, 16, 16, 3, true, false);
ctx.fillStyle = "#f8fafc";
ctx.fillText("Free Spins Mode", 154, 27);
}function drawScatterChart() {
var canvas = document.getElementById("goScatterChart");
if (!canvas) return;
var f = fitCanvas(canvas);
var ctx = f.ctx, w = f.width, h = f.height;ctx.clearRect(0, 0, w, h);var margin = { top: 20, right: 20, bottom: 44, left: 58 };
var chartW = w - margin.left - margin.right;
var chartH = h - margin.top - margin.bottom;var points = [];
for (var i = 1; i 0.99) y = Math.random() * 200 + 50;
else if (rand > 0.95) y = Math.random() * 30 + 10;
else if (rand > 0.75) y = Math.random() * 5 + 0.5;
else y = 0;
points.push({ x: i, y: y });
}var yMax = 300;ctx.strokeStyle = "#4338ca";
ctx.lineWidth = 1;for (var gx = 0; gx <= 5; gx++) {
var xx = margin.left + chartW * (gx / 5);
ctx.beginPath();
ctx.moveTo(xx, margin.top);
ctx.lineTo(xx, margin.top + chartH);
ctx.stroke();ctx.fillStyle = "#94a3b8";
ctx.font = "12px Arial";
ctx.textAlign = "center";
ctx.fillText(String(gx * 200), xx, margin.top + chartH + 18);
}for (var gy = 0; gy <= 6; gy++) {
var yy = margin.top + chartH - chartH * (gy / 6);
ctx.beginPath();
ctx.moveTo(margin.left, yy);
ctx.lineTo(margin.left + chartW, yy);
ctx.stroke();ctx.fillStyle = gy === 0 ? "#fbbf24" : "#94a3b8";
ctx.textAlign = "right";
ctx.fillText(String(Math.round(yMax * gy / 6)), margin.left - 8, yy + 4);
}ctx.fillStyle = "#94a3b8";
ctx.textAlign = "center";
ctx.font = "13px Arial";
ctx.fillText("Spin Number sequence (1 to 1000)", margin.left + chartW / 2, h - 10);ctx.save();
ctx.translate(16, margin.top + chartH / 2);
ctx.rotate(-Math.PI / 2);
ctx.fillStyle = "#94a3b8";
ctx.textAlign = "center";
ctx.fillText("Win Size (Multiplier of Bet)", 0, 0);
ctx.restore();for (var p = 0; p 50) {
color = "#ef4444";
size = 5;
} else if (points[p].y > 10) {
color = "#fbbf24";
size = 4;
}ctx.beginPath();
ctx.arc(px, py, size, 0, Math.PI * 2);
ctx.fillStyle = color;
ctx.globalAlpha = 0.8;
ctx.fill();
ctx.globalAlpha = 1;
}
}function renderAll() {
drawBarChart();
drawDoughnutChart();
drawRadarChart();
drawScatterChart();
}var resizeTimer;
window.addEventListener("resize", function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(renderAll, 150);
});renderAll();
})();