Script ESX QBCore QBOX Standalone vRP

Airhockey rcore

$25.00

rcore Airhockey – Donnez vie à vos intérieurs avec un mini-jeu d'air hockey entièrement interactif pour FiveM. Compatible avec le framework ESX pour les serveurs FiveM.

Ajouter au panier
Miniature du mini-jeu rcore Airhockey FiveM
Airhockey rcore
$25.00

Détails du produit

Framework
ESX, QBCore, QBOX, autonome, vRP
Type de ressource
Script
Créateur / Marque
rcore
Fichiers inclus
1 fichier téléchargeable

Détails de l’achat

Accès aux mises à jour
Accès à vie aux fichiers publiés sur cette fiche produit Lire la politique d’accès aux mises à jour
Format de téléchargement
ZIP
Paquet vérifié
2026-07-25 · 63 fichiers dans le paquet livré

Fichier de configuration

Config = {
    -- send paddle position to your opponent every 33ms (30x/s)
    -- lower the value for faster sync sync between paddles
    PositionSendRate = 33,
    -- maximum time the puck can stay on one side in ms
    PenaltyTime = 10000,
    -- block these while playing
    RestrictedControls = {37, 157, 159, 160, 161, 162, 163, 164, 165, 158, 101, 337, 53, 54, 47, 140, 141, 263, 264,
                          142, 143, 24, 257, 44, 282, 283, 284, 285, 69, 70, 114, 99, 100, 102, 22, 74, 68, 25, 36, 345,
                          346, 347, 91, 92},
    BounceStrength = 0.05, -- camera bounce effect
    DrawTableScore = true, -- draw actual match score for viewers on top tables
    Framework = 0, -- 0: Standalone (no bets), 1: ESX, 2: QBCore
    EnableBets = true,
    MinBet = 1000,
    MaxBet = 10000,
    BetType = 2, -- 1: Choose the lower stake for both (P1 choose 1k, P2 choose 2k, stake will be 1k for both), 2: both can set their own stakes
    WinMultiplier = 2, -- winner gets 2x the stake
    SpawnDistance = 30.0,
    UIFontID = 0, -- fontId (used in menus)
    UIFontName = nil, -- name of the font (used in scaleforms and notifications)
    NotifySystem = 1, -- 1: native notify, 2: okokNotify, 3: esx_notify, 4: qb_notify, 5: ox_notify
    -- Enable rcore_stats? (https://store.rcore.cz/package/6273968)
    Rcore_Stats = GetResourceState("rcore_stats") ~= "missing"
}

Objects = {{
    pos = vector3(-1635.939453, -1052.837891, 12.148856),
    heading = 318.0
}, {
    pos = vector3(-1634.047485, -1054.425537, 12.148856),
    heading = 318.0
}}

Translation = {
    MATCH_SETTINGS = "Match Settings",
    SLOW = "Slow",
    MEDIUM = "Medium",
    FAST = "Fast",
    PUCK_SPEED = "Puck Speed",
    PUCK_SPEED_DESC = "The maximum speed of the puck.",
    MAX_SCORE = "Max Score",
    MAX_SCORE_DESC = "The match will end after someone reaches this amount of goals.",
    START = "Start",
    START_DESC = "Press this to save the rules & start the match.",
    LATENCY_HIGH = "Looks like your latency (%s) is too high. Your gameplay won't be that great.",
    LATENCY_NORMAL = "Your latency is %s",
    END_WINNER = "winner.",
    END_LOSER = "loser.",
    END_STATS_SAVES = "%s saves",
    END_STATS_SHOTS = "%s shots on goal",
    END_STATS_GOALS = "%s goals",
    END_STATS_PLAYER = "%s m player travel",
    END_STATS_PUCK = "%s m puck travel",
    END_STATS_TITLE = "Air Hockey",
    TIMERBAR_PENALTY = "PENALTY",
    WAITING_FOR_OP = "Waiting for opponent.",
    TABLE_USED = "This Air Hockey table is being used by someone else.",
    NOT_CLOSE_ENOGUH = "Seems like you're not close enough. Walk away and try again",
    NOT_ENOUGH_PLAYERS = "To start Air Hockey, ask one more player to come closer to the table.",
    WAITING_FOR_OP_TO_JOIN = "Waiting for your opponent to join the match.",
    PRESS_TO_PLAY = "Press ~INPUT_CONTEXT~ to play Air Hockey.",
    MATCH_CANCELLED = "Match Cancelled",
    MATCH_CANCELLED_DESC = "One of you have disconnected, or cancelled the match",
    STARTING = "Waiting for players...",
    WAITING_FOR_HOST = "%s is changing the rules",
    PRESS_TO_CONFIRM_BET = "Press Enter to confirm the bet %s on your win",
    READY = "Ready",
    READY_DESC = "Press Enter if you're ready to play.",
    WAITING_FOR_OP_READY = "Please wait until your opponent confirm they're ready.",
    BETTINGS_CAPT = "Bettings",
    BETTINGS_INFOPANEL = "STAKE: %s",
    BETTING_ACC = "Account",
    BETTING_STAKE = "Stake",
    BETTINGS_USE_ACC_DESC = "Use '%s' account to pay for the stake. Max: %s",
    -- Update 1.1.0
    PADDLE_SKIN = "Paddle Skin",
    PADDLE_SKIN_DESC = "Choose the skin of your paddle.",
    PUCK_SKIN = "Puck Skin",
    PUCK_SKIN_DESC = "Choose the skin of the puck.",
    COLOR_BLUE = "Blue",
    COLOR_GREEN = "Green",
    COLOR_RED = "Red",
    COLOR_ORANGE = "Orange",
    COLOR_GRAY = "Gray",
    COLOR_PURPLE = "Purple",
    COLOR_PINK = "Pink",
    COLOR_BLACK = "Black",
    
    Get = function(key)
        return Translation[key] or "Missing Translation: " .. key
    end
}

 

🔧 Intégration Plug & Play

  • Transforme les accessoires de table de hockey sur air existants en tables de jeu

  • Commandes fluides et réactives pour les deux joueurs

  • Idéal pour les salles d'arcade, les bars, les casinos, les salons ou les intérieurs personnalisés.

🎮 Matchs personnalisables

Configurez les matchs comme vous le souhaitez :

  • 3 options de vitesse de rondelle (lent, moyen, rapide)

  • Nombre maximal de manches configurable pour des duels courts ou des batailles plus longues

  • Configuration facile adaptée au rythme et à l'économie de votre serveur

👀 Spectateur en direct

  • Les joueurs à proximité peuvent regarder les matchs en cours en temps réel

  • Transforme n'importe quelle table de hockey sur air en un lieu de rencontre convivial.

  • Idéal pour les événements communautaires, les tournois ou les rivalités amicales.

📊 Statistiques détaillées du match

À la fin de chaque partie, les joueurs voient un récapitulatif complet :

  • Objectifs

  • Sauvegardes

  • Tirs au but

  • distance parcourue par le palet

  • distance parcourue par la pagaie

Idéal pour se vanter, établir des classements ou participer à des événements basés sur les statistiques.

🧤 Jeu basé sur les compétences : Sauvez ce palet

  • Les réactions rapides et le bon positionnement sont récompensés.

  • Défendre ses buts procure autant de satisfaction que de marquer.

  • Le niveau de maîtrise est suffisamment élevé pour maintenir l'intérêt des joueurs réguliers.

💸 Système de paris (facultatif)

Faites monter la température avec les paris en direct :

  • Les joueurs peuvent parier sur eux-mêmes avant un match

  • Le gagnant remporte la mise, en fonction de la configuration de votre serveur.

  • Ajoute du risque, de la récompense et une tension supplémentaire à chaque tour

  • Augmentations fidélisation des joueurs avec une activité annexe amusante

  • Encourage interaction sociale et la compétition amicale

  • S'intègre naturellement aux serveurs RP, occasionnels et axés sur l'économie

Guide d'installation

Le package expose une petite configuration modifiable et aucun README, l'installation peut donc rester concise.

Prérequis et préparation

  • Mode Standalone pour les jeux sans paris, ou ESX/QBCore pour les paris basés sur un framework.
  • Coordonnées de la table de air-hockey configurées.

Installation

  1. Extrait rcore_airhockey.
  2. Sélectionnez standalone, ESX ou QBCore dans config.lua et configurez les paris, les paiements, le taux de synchronisation et les tables.
  3. Démarrer après le framework uniquement lorsque les paris basés sur le framework sont activés.

Points de contrôle de configuration

  • Testez la connexion/déconnexion de deux joueurs, le score, la synchronisation des palettes et le nettoyage du match.
  • Avec les paris activés, vérifiez les montants minimum/maximum et les paiements avec des cas de fonds insuffisants.

Sécurité : Sauvegardez la ressource et les tables de base de données affectées, utilisez des identifiants appartenant à votre serveur, et effectuez un test de staging avant de remplacer une ressource en production. La configuration complète reste dans le package de téléchargement.

Informations complémentaires

Framework

ESX, QBCore, QBOX, autonome, vRP