Juice-FanWars – Advanced Sports Betting System (ESX & QB)

:iphone::trophy: Juice-FanWars – Multi-Sport Betting Script for FiveM
Bring FanDuel-style sports betting into your city with a fully in-game betting phone.
Players can place bets on simulated games — moneylines, spreads, parlays, and player props — all without leaving the RP experience.

Perfect for: casinos, sportsbooks, bar TVs, or servers that want long-term, passive gambling content.


:dollar: CASH THE PARLAY !! GET A FULL REALISTIC SPORTS BETTING EXPERIENCE WITH Juice-FanWars !! :partying_face::dollar:

:sparkles: Features

:medal_sports: Multi-Sport Support

  • :basketball: Basketball
    • Moneyline
    • Point spreads









  • Player props: Points, Rebounds, Assists

image





image






  • :baseball: Baseball
    • Moneyline
    • Point Spreads







image

  • :slot_machine: Parlay VS Straight Bet system
    • Straight Bets - Wager 1 Leg and it will save as a straight bet.

image

  • Parlays - Wager more than 1 leg and it will save as a parlay, and the odds will increase as you add more legs. But the chance for it to hit goes down drastically. Just like in real life.


Keep in mind Parlays have a higher chance of losing than straight bets.

  • Realistic emote with Betting Phone prop when betting
    (TOS Friendly, Non Branded Phone prop)

    (TOS Friendly, Non Branded Phone prop)

    (When using the phone)
  • Wait for the games to finish automatically or do it manually to speed up the process.
    In game command to get the games list. /fanwarsgames

Once you do this. Press F8.


You will see all of the games and all of the game ids.

To simulate a game , all you have to do is /simulategame [GAMEID]

So for example. /simulategame BASKETBALL4290 would simulate the Phoenix Gators vs Denver Pythons game. Or you could wait until it Ends in: 93m 48s. Once that timer finishes the results /stats for the game will be pushed to the server and the active bets on that game will settle as a winner or loser.

  • Clear My Bets Button



:dart: Multiple Bet Types

  • :moneybag: Moneyline – Simple win/lose
  • :straight_ruler: Point Spreads – Basketball & Football
  • :bar_chart: Player Props – Stat-based bets per sport
  • :link: Parlay Bets – Combine bets across games and sports for higher payouts
  • :arrows_counterclockwise: Dynamic American Odds – e.g. +150 / -200

:iphone: Immersive Betting Phone NUI

  • :iphone: In-game Betting Phone UI for browsing games & placing bets
  • :hourglass_flowing_sand: Live countdown timers for upcoming and active games
  • :scroll: My Bets tab to track open bets and bet history
  • :framed_picture: Server logo support in the interface (brand it to your city)

:video_game: Game Simulation & Rotation

  • :arrows_counterclockwise: Configurable number of games per sport
    • Example: 15 basketball, 15 football, 15 baseball, etc.
  • :timer_clock: Each game has a random start time and duration within your configured ranges
  • :game_die: Games are auto-simulated server-side — no player interaction needed once scheduled
  • When a game finishes:
    • All bets on that game are graded & paid out
    • A new game is automatically generated for that sport to keep the board full

:hammer_and_wrench: Admin Tools

  • /simulategame [gameId] – Instantly simulate/finish a specific game
  • /fanwarsgames – View all active games + timers (per sport)
  • Optional logging to track who is using admin tools (configurable)

:package: Installation

  1. Add the BetPhone Item Image
  • Copy betphone.png into your inventory icon folder
    • Example (QBCore): qb-inventory/html/images/
    • Example (ox_inventory): your configured image path
  1. Register the BetPhone Item
    Example (QBCore-style item):
  • INSTALLATION STEP BY STEP DIRECTIONS ARE IN THE READ ME !!
['betphone'] = {
    label       = 'Betting Phone',
    weight      = 100,
    type        = 'item',
    image       = 'betphone.png',
    unique      = true,
    useable     = true,
    shouldClose = true,
    description = 'Opens the sports betting interface'
},
  • For ESX / other inventories, convert to your item format (shown in the documentation).
  1. Run the SQL
  • Execute the included .sql file to create all FanWars tables for:
    • Games
    • Players / stats
    • Bets & bet legs
    • Per-sport data (basketball, football, baseball, UFC, boxing)
  1. Add BetPhone to a Store / Shop
  • Add betphone to your shop config or black market so players can purchase it.
  1. Props & Animations
  • Uses prop_amb_phone for the betting animation.
  • Make sure this is included in your props pack and fxmanifest.lua:
data_file 'DLC_ITYP_REQUEST' 'prop_amb_phone.ytyp'
  1. Set Your Server Logo
  • Place serverlogo.png in html/img/logos/
  • File name and path configurable in config.lua.

:gear: Config Overview

Option Default Description
Config.NumGames 15 How many games to generate per sport at server start.
Config.MinGameDuration 3600 Minimum game length in seconds (1 hour).
Config.MaxGameDuration 10800 Maximum game length in seconds (3 hours).
Config.NewGameMinDuration 3600 Minimum length for newly created games.
Config.NewGameMaxDuration 10800 Maximum length for newly created games.
  • When a game ends, a new one is automatically created for that sport to keep the board full.

:movie_camera: Media

Video Preview:
Juice FanWars – Video Preview



:movie_camera: Discord

Video Preview:
Discord Support


:shopping_cart: Purchase

  • Tebex: https://tinyurl.com/juicefanwars
  • Version: v1.0
  • Frameworks: QBCore & ESX supported
  • Requirements: oxmysql, qb-core or es_extended
  • Support: :white_check_mark: Yes (Discord – link available on Tebex)

:bar_chart: Required Information

Code is accessible Yes
Subscription-based No
Lines (approximately) 3031
Requirements oxmysql, qb-core or es_extended
Support Yes (Discord)
1 Like