Configuration

Tout est dans config.lua, livré en clair, avec les textes dans locales/ (français et anglais). Chaque table se règle aussi en jeu, par le staff ou par son propriétaire, et c'est gardé en base.

Les blocs de config.lua

Bloc Ce qu'il règle
Config.Keys, Config.Command, Config.Permission Touches par défaut, commande /babyfoot, accès staff
Config.Tables Objet, tables par joueur et sur le serveur, distance de pose, route, eau, pente, zones interdites
Config.Match Buts et manches au choix, changement de côté, délais, relance d'une balle bloquée, revanche
Config.Rules Règles de la maison par défaut et si les joueurs peuvent les changer
Config.Npc, Config.Practice Ordinateur : niveau par défaut, réglages de Facile, Normal et Difficile, entraînement
Config.Stakes, Config.Bets Comptes acceptés, plafonds, durée des paris, commission
Config.Controls, Config.Camera, Config.Replay Sensibilité de départ, frappes, aide, contour de la barre en main, vues, ralenti des buts
Config.Physics Roulement de la balle, rebonds, gamelles
Config.Anims, Config.Sounds, Config.Ui, Config.Notify Animations, sons, thème sombre ou clair, taille, notifications
Config.Discord Logs et webhook des données impossibles, vides par défaut

Règles de la maison

Config.Rules = {
    Lobby = true,          -- les joueurs choisissent les règles avant chaque partie
    Gamelle = 'minus',     -- 'minus' (un point en moins), 'point' (compte comme un but) ou 'off'
    NoRoulette = true,     -- un but en faisant tourner la barre ne compte pas
    NoMidfieldGoal = false,-- pissette : pas de but direct des demis
    Engage = 'trap',       -- balle par la trappe sur le côté, ou 'center'
}

Une table peut imposer ses propres règles depuis ses réglages en jeu : les joueurs ne peuvent plus les changer.

Mises et paris

Config.Stakes = { Enabled = true, Accounts = { 'money', 'black_money' }, Max = 5000 }
Config.Bets = { Enabled = true, Accounts = { 'money', 'black_money' }, Min = 10, Max = 2000, OpenSeconds = 60, Commission = 0 }

La mise est retirée à chaque joueur au début et bloquée jusqu'à la fin : le gagnant prend tout, un match arrêté rend tout. Les spectateurs parient pendant OpenSeconds (une minute par défaut), jusqu'au premier but ; les gagnants se partagent la cagnotte selon ce qu'ils ont misé.

Sensibilité des barres

Config.Controls = {
    MouseSlide = 0.16,   -- glissement
    MouseSpin = 5.0,     -- rotation (un geste rapide fait une frappe forte)
    MaxSpin = 45.0,      -- rotation la plus rapide, plafonne aussi la force des tirs
    AssistDefault = true,
}

C'est le réglage de départ : chaque joueur ajuste le sien avec F7, gardé sur son PC.

Ralenti des buts

Config.Replay = { Enabled = true, Seconds = 1.5, Speed = 0.45 }

La balle suivante attend la fin du ralenti. Un joueur peut le couper dans ses réglages ou le passer d'un clic.

Réglages d'une table en jeu

Le staff (/babyfoot admin, « Réglages ») ou le propriétaire d'une table posée (viser la table, « Réglages de la table ») choisit : le nom affiché, les règles imposées, les mises et la mise max, les paris des spectateurs, la partie contre l'ordinateur. Un bar fixe ainsi ses règles maison.

Zones interdites

ForbiddenZones = {
    { label = 'Mission Row PD', coords = vector3(441.0, -982.0, 30.7), radius = 60.0 },
}

Les joueurs ne peuvent pas poser de table dans ces zones ; le staff, si.