RBXGOLD Slide Fairness


const crypto = require("crypto");


// COPY AND PASTE from rbxgold.com
const round = 65852652;
const clientSeed = "LODDHJ85GOWH";
const serverSeed = "c7e1578b2d438d85b6250502f1e70cdc";
// THEN press Run |> 


const roll = getRoundRoll(serverSeed, clientSeed, round);
const icon = getRollIcon(roll);

console.log(`Roll: ${roll}\nIcon: ${icon}`);


function getRoundRollFromHash(hash) {
  const subHash = hash.substring(0, 8);
  const spinNumber = Number.parseInt(subHash, 16);
  return Math.abs(spinNumber) % 15;
}

function getRoundRoll(serverSeed, clientSeed, round) {
  const seed = getCombinedSeed(serverSeed, clientSeed, round);
  const hash = crypto.createHmac("sha256", seed).digest("hex");
  return getRoundRollFromHash(hash);
}

function getCombinedSeed(serverSeed, clientSeed, round) {
  return `${serverSeed}-${clientSeed}-${round}`;
}

function getRollIcon(roll) {
  if (roll === 0) {
    return "green";
  } else if (roll <= 7) {
    return "red";
  } else {
    return "black";
  }
}