← back to browse
goat command

slot

๐Ÿ’– Ultra-stylish love slot machine

0
views
0
likes
0
installs

Aliases: spin

raw source
module.exports = {
  config: {
    name: "slot",
    aliases: ["spin"],
    version: "1.9",
    author: "Anik Islam Sadik",
    countDown: 3,
    role: 0,
    description: "๐Ÿ’– Ultra-stylish love slot machine",
    category: "game",
    guide: { en: "Use: {pn} [bet amount]" }
  },

  onStart: async function ({ message, event, args, usersData }) {
    const { senderID } = event;
    const bet = parseInt(args[0]);

    const formatMoney = (amount) => {
      if (isNaN(amount)) return "๐Ÿ’ฒ0";
      amount = Number(amount);
      const scales = [
        { value: 1e15, s: 'Q', c: '๐ŸŒˆ' },
        { value: 1e12, s: 'T', c: 'โœจ' },
        { value: 1e9, s: 'B', c: '๐Ÿ’Ž' },
        { value: 1e6, s: 'M', c: '๐Ÿ’ฐ' },
        { value: 1e3, s: 'k', c: '๐Ÿ’ต' }
      ];
      const sc = scales.find(x => amount >= x.value);
      return sc ? `${sc.c}${(amount / sc.value).toFixed(2)}${sc.s}` : `๐Ÿ’ฒ${amount.toLocaleString()}`;
    };

    if (isNaN(bet) || bet <= 0) return message.reply("โš ๏ธ ๐—˜๐—ฅ๐—ฅ๐—ข๐—ฅ: Please enter a valid bet amount! (Ex: slots 100)");

    const user = await usersData.get(senderID);
    if (user.money < bet) return message.reply(`โŒ ๐—œ๐—ก๐—ฆ๐—จ๐—™๐—™๐—œ๐—–๐—œ๐—˜๐—ก๐—ง ๐—™๐—จ๐—ก๐——๐—ฆ: You need ${formatMoney(bet - user.money)} more to play!`);

    const symbols = [
      { e: "๐Ÿ’–", w: 30 }, { e: "๐Ÿ’˜", w: 25 }, { e: "๐Ÿ’", w: 20 },
      { e: "๐Ÿ’ž", w: 15 }, { e: "๐Ÿ’“", w: 7 }, { e: "๐Ÿ’Ž", w: 3 }
    ];

    const roll = () => {
      const tot = symbols.reduce((s, x) => s + x.w, 0);
      let r = Math.random() * tot;
      for (const x of symbols) {
        if (r < x.w) return x.e;
        r -= x.w;
      }
      return symbols[0].e;
    };

    const [s1, s2, s3] = [roll(), roll(), roll()];
    let winnings = 0, outcome, winType = "", bonus = "";

    if (s1 === "๐Ÿ’Ž" && s2 === "๐Ÿ’Ž" && s3 === "๐Ÿ’Ž") {
      winnings = bet * 10;
      outcome = "๐Ÿ”ฅ ๐—จ๐—Ÿ๐—ง๐—œ๐— ๐—”๐—ง๐—˜ ๐——๐—œ๐—”๐— ๐—ข๐—ก๐—— ๐—๐—”๐—–๐—ž๐—ฃ๐—ข๐—ง!";
      winType = "๐Ÿ‘‘ ๐—Ÿ๐—˜๐—š๐—˜๐—ก๐——๐—”๐—ฅ๐—ฌ ๐—ช๐—œ๐—ก";
      bonus = "๐ŸŽ† +3% Balance Bonus Added!";
      await usersData.set(senderID, { money: user.money * 1.03 });
    } else if (s1 === s2 && s2 === s3) {
      winnings = bet * 5;
      outcome = "๐ŸŒŸ ๐—๐—”๐—–๐—ž๐—ฃ๐—ข๐—ง! 3 Matching Hearts!";
      winType = "๐Ÿ’Ž ๐—•๐—œ๐—š ๐—ช๐—œ๐—ก";
    } else if (s1 === s2 || s2 === s3 || s1 === s3) {
      winnings = bet * 2;
      outcome = "โœจ 2 Matching Hearts!";
      winType = "โšก ๐—š๐—ข๐—ข๐—— ๐—ช๐—œ๐—ก";
    } else if (Math.random() < 0.5) {
      winnings = bet * 1.5;
      outcome = "๐ŸŽฏ Lucky Love Spin Win!";
      winType = "๐Ÿ€ ๐—ฆ๐— ๐—”๐—Ÿ๐—Ÿ ๐—ช๐—œ๐—ก";
    } else {
      winnings = -bet;
      outcome = "๐Ÿ’” Heartbroken! Better Luck Next Time!";
      winType = "โ˜ ๏ธ ๐—Ÿ๐—ข๐—ฆ๐—ฆ";
    }

    await usersData.set(senderID, { money: user.money + winnings });
    const finalBal = user.money + winnings;

    const slotBox = `โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚  ๐Ÿ’ [ ${s1} โœฆ ${s2} โœฆ ${s3} ] ๐Ÿ’  โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ`;
    const resText = winnings >= 0 ? `๐ŸŸข ๐Ÿ† ๐—ช๐—ข๐—ก: +${formatMoney(winnings)}` : `๐Ÿ”ด ๐Ÿ’ธ ๐—Ÿ๐—ข๐—ฆ๐—ง: -${formatMoney(bet)}`;

    return message.reply(`${slotBox}\n\n๐ŸŽฏ ${outcome}\n${winType ? `๐Ÿ”ฅ ${winType}\n` : ""}${bonus ? `${bonus}\n` : ""}\n${resText}\n๐Ÿ’ณ ๐—•๐—”๐—Ÿ๐—”๐—ก๐—–๐—˜: ${formatMoney(finalBal)}`);
  }
};

View raw file