Billard Scoreboard Dokumentation v4.0

Diese Dokumentation enthält alle Schritte zur Installation sowie Erklärungen zur Tischansteuerung, UI-Logik, Training-Features und OBS-Integration.

Neu in Version 4.0:

1 Voraussetzungen

2 System-Installation

sudo apt update
sudo apt install nginx php8.3-fpm php8.3-sqlite3 -y

3 Ordnerstruktur

/var/www/billard/ ├── index.php # Haupt-Anwendung ├── api.php # Backend API ├── monitor.php # Live-Monitor (Multi-Tisch) ├── obs_small.php # OBS Overlay klein (Style 1) ├── obs_small_2.php # OBS Overlay klein (Style 2) ├── obs_small_3.php # OBS Overlay klein (Style 3) ├── obs_small_4.php # OBS Overlay klein (Style 4) ├── obs_big.php # OBS Overlay groß (Style 1) ├── obs_big_2.php # OBS Overlay groß (Style 2) ├── obs_big_3.php # OBS Overlay groß (Style 3) ├── obs_big_4.php # OBS Overlay groß (Style 4) ├── help.html # Diese Dokumentation ├── scoreboard_logo.svg # Logo ├── billiard_data.db # SQLite Datenbank ├── tables.json # Live-Tischdaten │ ├── /assets/ │ ├── /css/ │ │ └── styles.css # Komplettes CSS │ └── /js/ │ ├── app.js # Basis-Logik │ ├── game.js # Spiel-Funktionen │ └── training.js # Training-Funktionen │ ├── /logos/ # Vereins-Logos für OBS │ ├── BC Berlin.png │ ├── BC Bremen.png │ └── [Vereinsname].png │ ├── /EO/ # Equal Offense Bilder │ └── EO_*.svg │ └── /regeln/ # Regel-Grafiken (SVG) ├── /8ball/ │ └── 8ball_1.svg # 8-Ball Aufbau ├── /9ball/ │ └── 9ball_1.svg # 9-Ball Aufbau ├── /10ball/ │ └── 10_ball.svg # 10-Ball Aufbau └── /14_1/ └── Aufbau_[1-7]_[1-2].svg # 14/1 Wiederaufbau-Beispiele
sudo mkdir -p /var/www/billard/assets/css
sudo mkdir -p /var/www/billard/assets/js
sudo mkdir -p /var/www/billard/logos

4 Rechte vergeben

Achtung: SQLite ist eine Datei. PHP muss im gesamten Ordner schreiben dürfen.
sudo chown -R www-data:www-data /var/www/billard
sudo chmod -R 775 /var/www/billard

oder z.B.:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 775 /var/www/html

je nachdem wo die Dateien liegen.

5 Nginx Konfiguration

Konfigurationspfad: /etc/nginx/sites-available/default

server {
    listen 80;
    root /var/www/billard;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
    }
}
sudo nginx -t
sudo systemctl restart nginx

6 URL-Übersicht

AnsichtURLBeschreibung
Scoreboard http://[IP]/ Haupt-Anwendung für Spieler
Monitor http://[IP]/monitor.php Live-Anzeige aller Tische
Monitor Dark http://[IP]/monitor.php?mode=dark Dark Mode für Monitor
OBS Small http://[IP]/obs_small.php?Tisch=1 OBS Overlay klein - Style 1
OBS Small 2 http://[IP]/obs_small_2.php?Tisch=1 OBS Overlay klein - Style 2 (schwarze Scores, roter Streifen)
OBS Small 3 http://[IP]/obs_small_3.php?Tisch=1 OBS Overlay klein - Style 3 (blaue Scores)
OBS Small 4 http://[IP]/obs_small_4.php?Tisch=1 OBS Overlay klein - Style 4 (Bordeaux/Maroon)
OBS Big http://[IP]/obs_big.php?Tisch=1 OBS Overlay groß - Style 1
OBS Big 2 http://[IP]/obs_big_2.php?Tisch=1 OBS Overlay groß - Style 2 (geteilte Streifen, Logos)
OBS Big 3 http://[IP]/obs_big_3.php?Tisch=1 OBS Overlay groß - Style 3 (Logos, blaue Scores)
OBS Big 4 http://[IP]/obs_big_4.php?Tisch=1 OBS Overlay groß - Style 4 (Bordeaux/Maroon, Logos)
Hilfe http://[IP]/help.html Diese Dokumentation

7 Tisch-Steuerung via URL

ParameterVerhalten
index.php Freie Auswahl: Tisch 1-8 wählbar im Setup
index.php?Tisch=0 Admin-Modus: Tisch-Auswahl ausgeblendet
index.php?Tisch=1 Fixer Modus: Tisch fest vorgegeben (1-8)

8 OBS Studio Integration NEU

Einrichtung in OBS

  1. In OBS: Quellen → + → Browser
  2. Name eingeben (z.B. "Scoreboard Tisch 1")
  3. URL eingeben: http://[SERVER-IP]/obs_big.php?Tisch=1
  4. Breite: 1400 (big) oder 700 (small)
  5. Höhe: 150 (big) oder 100 (small)
  6. "Benutzerdefiniertes CSS" leer lassen
  7. "Aktualisieren wenn Szene aktiv" aktivieren

Empfohlene Größen

VersionBreiteHöheVerwendung
obs_small.php 700 px 100 px Kompakte Anzeige, Ecke des Streams
obs_small_2.php 700 px 120 px Getrennte Felder, schwarze Scores, roter Streifen
obs_small_3.php 700 px 120 px Getrennte Felder, blaue Scores
obs_small_4.php 500 px 120 px Bordeaux/Maroon Design, kompakt
obs_big.php 1400 px 150 px Vollbreite, unterer Bildschirmrand
obs_big_2.php 1400 px 180 px Geteilte Streifen (Name/Verein), Logos, rote Akzente
obs_big_3.php 1400 px 150 px Logos, blaue Scoreboxen
obs_big_4.php 1200 px 150 px Bordeaux/Maroon Design, Logos, gelbe Akzente

Vereins-Logos einrichten

Logos werden automatisch angezeigt, wenn eine PNG-Datei mit dem exakten Vereinsnamen existiert:

# Logo-Ordner erstellen
sudo mkdir -p /var/www/billard/logos

# Logos hochladen (Beispiele)
/var/www/billard/logos/BC Berlin.png
/var/www/billard/logos/BC Bremen.png
/var/www/billard/logos/Imperium.png
Tipp: Logo-Dateien sollten quadratisch sein (z.B. 200x200 px) mit transparentem Hintergrund (PNG). Der Dateiname muss exakt dem Vereinsnamen entsprechen!
Problemlösung OBS: Falls das Scoreboard in OBS nicht vollständig angezeigt wird:

9 Winner-/Wechselbreak NEU

Bei 8-Ball, 9-Ball und 10-Ball kann im Setup der Break-Modus gewählt werden:

ModusVerhalten
Wechselbreak Der Anstoß wechselt nach jeder Aufnahme (+ oder -) zum anderen Spieler
Winnerbreak Der Gewinner eines Racks behält den Anstoß (wechselt nur bei +)

Ablauf

  1. Im Setup Disziplin wählen (8-Ball, 9-Ball oder 10-Ball)
  2. Break-Modus auswählen (Wechselbreak oder Winnerbreak)
  3. Beim Klick auf SPIEL STARTEN erscheint das Popup "Wer beginnt mit dem Anstoß?"
  4. Spieler auswählen - der aktive Spieler wird mit schwarzem Rahmen markiert
  5. Bei REMATCH wird erneut gefragt, wer beginnt
Tipp: Bei Spielende werden alle Eingabe-Buttons deaktiviert. Nur Undo und Restart bleiben aktiv.

10 Hilfe-Buttons (Regeln & Aufbau) NEU

Alle Disziplinen (14/1, 8-Ball, 9-Ball, 10-Ball) haben einen Hilfe-Button (blaues Fragezeichen) in der Steuerungsleiste.

Inhalte pro Disziplin

DisziplinSeitenBesonderheiten
14/1 Endlos 5 Regelseiten + 7 Beispiele Wiederaufbau-Beispiele mit Vorher/Nachher-SVGs
8-Ball 4 Regelseiten Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite
9-Ball 4 Regelseiten Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite
10-Ball 4 Regelseiten Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite
Tipp: Die Aufbau-SVGs liegen im Ordner /regeln/. Das Popup ist scrollbar und hat Vor/Zurück-Buttons zur Navigation.

11 GD (Gesamtdurchschnitt) NEU

Der GD (Gesamtdurchschnitt = Punkte / Aufnahmen) wird bei 14/1-Spielen an mehreren Stellen angezeigt:

OrtAnzeigeBeschreibung
Laufendes Spiel GD: X.XX Live-GD in der Stats-Zeile unter dem Score (Aufn | Serie | HS | GD)
Spielerbilanz Bester GD: X.XX Höchster jemals erreichter GD auf der Spielerkarte
Champions Bester GD Neue Champion-Karte für den Spieler mit dem höchsten GD
Historie Aufnahmen: X / HS: X / GD: X.XX GD pro Spieler in jedem 14/1-Eintrag der Spielhistorie
Berechnung: GD = Punkte / Aufnahmen (auf 2 Dezimalstellen gerundet). Der beste GD wird bei Spielende automatisch gespeichert.

12 14/1 Verlauf (Spieler-Statistik) NEU

Jeder Spieler hat nun ein Verlaufsdiagramm für seine 14/1 Spiele. Das Diagramm zeigt die Entwicklung von Höchstserie und GD über die letzten 20 Partien.

So öffnest du den Verlauf

  1. Navigiere zur Spieler-Datenbank
  2. Klicke auf eine Spielerkarte
  3. Im Popup auf "14/1 Verlauf" (blauer Button) klicken

Diagramm-Erklärung

ElementFarbeY-AchseBeschreibung
Höchstserie Grün Links (0-100) Beste Serie pro Spiel
GD Blau Rechts (0-20) Gesamtdurchschnitt pro Spiel
X-Achse - - Letzte 20 Spiele (-20 bis 0)

Statistik-Box

Unter dem Diagramm werden folgende Werte angezeigt:

Tipp: Der Verlauf zeigt nur 14/1-Spiele. Bei Spielern ohne 14/1-Historie erscheint "Keine 14/1 Spiele gefunden."

13 Mehrsprachigkeit (i18n) NEU

Das Scoreboard unterstützt nun vollständige Mehrsprachigkeit. Die Sprache kann jederzeit in der Sidebar umgeschaltet werden.

Unterstützte Sprachen

SpracheCodeDatei
Deutschde/assets/lang/de.json
Englischen/assets/lang/en.json

Sprachwechsel

  1. Sidebar öffnen (Burger-Menü)
  2. Unten auf DE oder EN klicken
  3. Die gesamte UI wird sofort übersetzt
Tipp: Die Spracheinstellung wird im Browser gespeichert und beim nächsten Besuch automatisch wiederhergestellt.

14 14/1 Live-Aufnahmen NEU

Während eines 14/1-Spiels kann jederzeit eine Übersicht aller bisherigen Aufnahmen angezeigt werden.

So öffnest du die Übersicht

  1. Während eines 14/1-Spiels
  2. Klicke auf den History-Button (Uhr-Symbol) in der Steuerungsleiste
  3. Ein Popup zeigt alle bisherigen Aufnahmen mit Punkten und Zwischenständen

Angezeigte Informationen

SpalteBeschreibung
Aufn.Nummer der Aufnahme
Punkte (links)Punkte von Spieler 1 in dieser Aufnahme
StandAktueller Zwischenstand nach der Aufnahme
Punkte (rechts)Punkte von Spieler 2 in dieser Aufnahme
Tipp: Ideal zur Kontrolle während des Spiels und für Schiedsrichter.

15 Neue Disziplinen NEU

Rotation

61 Punkte-Spiel mit der 3-Foul-Regel. Verliert ein Spieler 3 Fouls in Folge, verliert er das Spiel.

One Pocket

Kugeln in die eigene Tasche versenken. Standardziel: 8 Kugeln.

Bank Pool 9-Ball

Nur Bankshots erlaubt. Ziel: 5 Kugeln.

Bank Pool 15-Ball

Nur Bankshots mit allen 15 Kugeln. Ziel: 8 Kugeln.

Doppel-Modi

8-Ball, 9-Ball und 10-Ball können als Doppel (2 vs 2) gespielt werden. Die Teamnamen werden automatisch kombiniert.

16 Equal Offense Training

Pool 14/1 Level (1-4)

LevelFehlerGDZielMaximum
Level 124120150
Level 216120150
Level 3012120150
Level 4017170200
Level 4 - Besonderheiten (v3.5):

9-Ball Level (1-3)

LevelFehlerStartbälleZielMaximum
Level 1244090
Level 2166090
Level 3099090

Bowlliards NEU

Bowling-Wertung auf dem Pooltisch. Einzelspieler-Training mit klassischer Bowling-Punkteberechnung.

EigenschaftWert
Frames10
Kugeln pro Frame10
Max. Versuche pro Frame2 (Frame 10: bis zu 3)
Maximalpunktzahl300 (12 Strikes)

Wertung

ErgebnisSymbolPunkte
StrikeX (rot)10 + nächste 2 Würfe
Spare/ (blau)10 + nächster 1 Wurf
OpenZahlSumme der versenkten Kugeln

10. Frame Sonderregeln

Tipp: Die Bowling-Scorecard zeigt alle 10 Frames mit laufenden Summen. Der aktive Ball wird hervorgehoben.

17 PIN-System

PIN-TypStandardVerwendung
Master-PIN 12345 Spieler verwalten, Stats löschen, History-Einträge löschen
Spieler-PIN 000000 Training starten
Achtung: Master-PIN ändern in assets/js/app.js (Zeile 7): masterPin: "12345"

18 API-Endpunkte

EndpunktBeschreibung
api.php?action=load Alle Spielerdaten laden
api.php?action=save Daten speichern (POST)
api.php?action=get_tables Live-Tischdaten für Monitor/OBS
api.php?action=update_table Tisch-Update senden (POST)

19 Fehlersuche

ProblemLösung
HTTP 500 Schreibrechte prüfen (Schritt 4)
OBS zeigt nichts Browser-Quelle Breite erhöhen, CSS leer lassen
Logo nicht sichtbar Dateiname muss exakt dem Vereinsnamen entsprechen
Training-Buttons reagieren nicht Browser-Konsole (F12) prüfen, training.js vollständig?
Debug-Befehle:
sudo tail -f /var/log/nginx/error.log - Fehler-Log

20 Backup

# Backup erstellen
cd /var/www
sudo tar -czf billard-backup-$(date +%Y%m%d).tar.gz billard/

# Backup wiederherstellen
sudo tar -xzf billard-backup-20250127.tar.gz

Version History


Pro Billiard Scoreboard System v4.0 | Entwickelt für Billard-Spieler