Bitcoin Forum
August 27, 2026, 02:43:44 AM *
News: Latest Bitcoin Core release: 31.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [WARNING] potential scam casino fuplay.xyz  (Read 32 times)
Zwei (OP)
Legendary
*
Offline

Activity: 2128
Merit: 1377


Trêvoid █ No KYC-AML Crypto Swaps


View Profile
August 26, 2026, 07:27:48 PM
 #1

what happened:

the casino in question, fuplay.xyz, is faking their "live wins" and "top players stats" feed on their website to make it look like they have active players for no other reason than to mislead people.
their website is so poorly AI coded, and the numbers they were displaying just didn't make sense for such a new casino with the bad quality of games they have.

so, after further checking their code, i found those stats are simply hardcoded with randomly generated numbers, including the players usernames:



here is the code for anyone who want to check:
Code:
  , wo = ["cryptoCat", "tonWhale", "luckyPaw", "megaMeow", "satoshiFur", "purrKing", "neonNyan", "goldWhisk", "jetPaws", "moonCat", "diamondClaw", "tonKitty", "wildFang", "spinLord", "furyPurr", "bigMittens"]
  , ey = ["Slots", "Crash", "Roulette", "Blackjack", "Dice", "Mines", "Baccarat", "Video Poker", "Plinko", "Limbo"]
  , ty = `
.lw-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px;animation:lwIn .4s ease}
.lw-row:last-child{border-bottom:none}
@keyframes lwIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.lw-av{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;background:var(--card2);flex:0 0 auto}
.lw-name{font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lw-game{color:var(--muted);font-size:11px}
.lw-amt{font-weight:800;color:var(--green);font-variant-numeric:tabular-nums}
.lw-rank{width:22px;text-align:center;font-weight:900;color:var(--muted)}
.lw-tabs{display:flex;gap:6px;margin-bottom:8px}
.lw-tabs button{flex:1;background:var(--bg2);border:1px solid var(--border);color:var(--muted);border-radius:9px;padding:8px;font-weight:700;font-size:13px;cursor:pointer}
.lw-tabs button.on{background:var(--card2);color:var(--text)}
`
  , mf = e => e.length <= 4 ? e : e.slice(0, 3) + "***" + e.slice(-2)
  , ll = e => e[Math.floor(Math.random() * e.length)]
  , ny = () => {
    const e = Math.random();
    return e > .96 ? Math.floor(2e4 + Math.random() * 18e4) : e > .8 ? Math.floor(3e3 + Math.random() * 17e3) : Math.floor(150 + Math.random() * 2800)
}
;
function Sd(e) {
    return {
        id: e,
        name: mf(ll(wo)),
        emoji: ll(["😺", "😻", "🐱", "😸", "🐈", "💰", "🔥", "🚀"]),
        game: ll(ey),
        amount: ny()
    }
}
function ay() {
    const {lang: e} = se()
      , t = _d[e] || _d.en
      , [n,a] = d.useState("live")
      , [s,i] = d.useState( () => Array.from({
        length: 7
    }, (c, u) => Sd(u)))
      , l = d.useRef(7)
      , o = d.useRef(Array.from({
        length: 10
    }, (c, u) => ({
        name: mf(wo[u % wo.length]),
        wagered: Math.floor((22e5 - u * (14e4 + u * 9e3)) * (.9 + Math.random() * .2)) * 10
    })).sort( (c, u) => u.wagered - c.wagered)).current;
    return d.useEffect( () => {
        if (n !== "live")
            return;
        const c = setInterval( () => {
            i(u => [Sd(l.current++), ...u].slice(0, 8))
        }
        , 2600);
        return () => clearInterval(c)
    }
    , [n]),
    r.jsxs("div", {
        className: "card mt16",
        children: [r.jsx("style", {
            children: ty
        }), r.jsxs("div", {
            className: "lw-tabs",
            children: [r.jsxs("button", {
                className: n === "live" ? "on" : "",
                onClick: () => a("live"),
                children: ["🔴 ", t.live]
            }), r.jsxs("button", {
                className: n === "board" ? "on" : "",
                onClick: () => a("board"),
                children: ["🏆 ", t.board]
            })]
        }), n === "live" ? s.map(c => r.jsxs("div", {
            className: "lw-row",
            children: [r.jsx("span", {
                className: "lw-av",
                children: c.emoji
            }), r.jsxs("span", {
                className: "lw-name",
                children: [c.name, " ", r.jsxs("span", {
                    className: "lw-game",
                    children: ["· ", c.game]
                })]
            }), r.jsxs("span", {
                className: "lw-amt",
                children: ["+", G(c.amount)]
            })]
        }, c.id)) : o.map( (c, u) => r.jsxs("div", {
            className: "lw-row",
            children: [r.jsx("span", {
                className: "lw-rank",
                children: u === 0 ? "🥇" : u === 1 ? "🥈" : u === 2 ? "🥉" : u + 1
            }), r.jsx("span", {
                className: "lw-name",
                children: c.name
            }), r.jsx("span", {
                className: "lw-amt",
                style: {
                    color: "var(--gold2)"
                },
                children: G(c.wagered)
            })]
        }, u))]
    })
}
https://web.archive.org/web/20260807194041/https://fuplay.xyz/assets/index-CxNu_hAr.js

profile link: https://bitcointalk.org/index.php?action=profile;u=3763105
ANN link: https://bitcointalk.org/index.php?topic=5589219.0

i questioned them about this 2 weeks ago, but they just kept ignoring it.
the only thing they bothered to say is that they would ask their "tech team", and that was 5 days ago.

I will ask our tech team, for get more details about "Live wins" and "Top players this week".
i'm pretty sure there is no "tech team"... it's just a one man operation with AI, and they are up to no good. therefore i'm following the suggestion of @Bitcoin_Arena to create a flag againt them, hence the need for this topic.

flag: https://bitcointalk.org/index.php?action=trust;flag=3581

stay safe everyone.

Stalker22
Legendary
*
Offline

Activity: 2338
Merit: 1647



View Profile
August 26, 2026, 08:37:45 PM
 #2

~
so, after further checking their code, i found those stats are simply hardcoded with randomly generated numbers, including the players usernames:

Yeah. Looking at that snippet, it is blatantly obvious. They didnt even bothering to use a simple WebSocket to mask it, it is literally just a hardcoded array of cat-themed usernames (cryptoCat, satoshiFur, megaMeow, jetPaws) paired with setInterval firing every 2600ms to prepend a randomly generated win amount.

Whatever their explanation for this, their intention is clear - to deceive players with a fake "live" activity feed and trick people into trusting them. Pathetic.

█████████████████████████
██
█████▀▀███████▀▀███████
█████▀░░▄███████▄░░▀█████
██▀░░██████▀░▀████░░▀██
██▀░░▀▀▀████████████░░▀██
██░░█▄████▀▀███▀█████░░██
██░░███▄▄███████▀▀███░░██
██░░█████████████████░░██
██▄░░████▄▄██████▄▄█░░▄██
██▄░░██████▄░░████░░▄██
█████▄░░▀███▌░░▐▀░░▄█████
███████▄▄███████▄▄███████
█████████████████████████
.
.ROOBET.██████.IIIIICRYPTO'S FASTEST GROWING CASINO.██████.
|

█▄█
▀█▀
████▄▄██████▄▄████
█▄███▀█░░█████░░█▀███▄█
▀█▄▄░▐█████████▌▄▄█▀
██▄▄█████████▄▄████▌
██████▄▄████████
█▀▀████████████████
██████
█████████████
██
█▀▀██████████████
▀▀▀███████████▀▀▀▀
| 
.
    PLAY NOW    
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!