FJX Studios Dokumentation

Konfiguration

Alle Optionen der config.lua — Keybinds, UI, Zahlungen, Stationen, Diagnose und Minigames.

Zuletzt aktualisiert: 21. August 2026

FJX TÜV-System ist über die config.lua umfassend anpassbar. Diese Seite erklärt alle Optionen im Detail.

Sprache & Debug

config.lua
lua
Config.Locale = 'de'    -- 'de' oder 'en'
Config.Debug = false    -- true = Console-Ausgaben
Config.LocalestringStandard: 'de'

Sprache für alle Texte. Möglich sind 'de' und 'en'.

Config.DebugbooleanStandard: false

Console-Logs für die Entwicklung und Fehlersuche.

Keybinds

config.lua
lua
Config.Keybinds = {
    CheckTuev = 38,     -- E - TÜV prüfen
    Diagnose = 74,      -- H - Fahrzeugdiagnose
    RenewTuev = 26      -- C - TÜV erneuern
}

Häufige Key-Codes

Taste Code Taste Code
E 38 F 23
H 74 X 73
C 26 Q 44
G 47 R 45

Target-System

config.lua
lua
Config.Target = 'none'                  -- 'ox_target', 'qb-target', 'none'
Config.Use3DText = true                 -- 3D-Text über Fahrzeugen
Config.Interaction3DDistance = 3.0      -- Radius in Metern
Option Werte Beschreibung
Target 'ox_target', 'qb-target', 'none' Target-System
Use3DText true, false 3D-Text bei Target = 'none'
Interaction3DDistance Zahl maximale Distanz für 3D-Text

UI-Systeme

config.lua
lua
Config.NotifyType = 'ox_lib'    -- Benachrichtigungen
Config.ProgressType = 'ox_lib'  -- Progress-Bars
Config.MenuType = 'ox_lib'      -- Menüs
Bereich Mögliche Werte
Benachrichtigungen 'ox_lib' (empfohlen), 'esx', 'qb', 'chat', 'native'
Progress-Bars 'ox_lib' (empfohlen), 'progressBars', 'qb-progressbar', 'esx_progressbar', 'none'
Menüs 'ox_lib' (empfohlen), 'esx_menu_default', 'qb-menu', 'native'

TÜV-Einstellungen

config.lua
lua
Config.TuevGueltigTage = 14    -- Gültigkeit in Tagen
Config.WarnungAbTagen = 3      -- Warnung ab X Tagen vor Ablauf
Config.ErneuerungAbTagen = 7   -- Erneuerung möglich ab X Tagen vor Ablauf

Status-System

Tage übrig Status Farbe
mehr als 3 GÜLTIG Grün
1 – 3 WARNUNG Gelb
0 oder negativ ABGELAUFEN Rot
kein Eintrag KEIN TÜV Grau

Zahlungssystem

config.lua
lua
Config.Price = 750                      -- Preis in €
Config.PaymentMethod = 'bill'           -- 'direct' oder 'bill'
Config.PaymentTarget = 'society'        -- 'player' oder 'society'
Config.SocietyName = 'mechanic'         -- Society-Name
Option Werte Beschreibung
Price Zahl Kosten für die TÜV-Erneuerung
PaymentMethod 'direct', 'bill' Sofortzahlung oder Rechnung
PaymentTarget 'player', 'society' Empfänger der Zahlung
SocietyName String Name der Society, ohne society_-Prefix

Billing-Optionen

config.lua
lua
Config.EnableBilling = true             -- Rechnungssystem aktiviert
Config.BillingRadius = 15.0             -- Radius für Spieler-Auswahl
Config.AllowSelfBilling = true          -- Selbst abrechnen erlaubt
Config.BillingSystem = 'auto'           -- 'auto', 'esx_billing', 'qb-management'
Config.UseCharacterName = true          -- RP-Namen statt Steam-Namen

Jobs

config.lua
lua
Config.MechanicJobs = {
    'mechanic',
    'tuner',
    'bennys'
}

Config.PoliceJobs = {
    'police',
    'sheriff'
}

Beliebig viele Jobs möglich. Die Job-Namen müssen mit deinem Framework übereinstimmen.

TÜV-Stationen

config.lua
lua
Config.InspectionStations = {
    {
        coords = vec3(-339.85, -136.92, 39.01),
        heading = 70.0,
        blip = {
            enabled = true,
            sprite = 446,
            color = 5,
            scale = 0.8,
            label = 'TÜV Station'
        }
    }
}

Station hinzufügen

config.lua
lua
{
    coords = vec3(X, Y, Z),      -- Position
    heading = 0.0,               -- Fahrzeug-Ausrichtung
    blip = {
        enabled = true,          -- Blip anzeigen
        sprite = 446,            -- Blip-Symbol
        color = 5,               -- Farbe (5 = Gelb)
        scale = 0.8,             -- Größe
        label = 'TÜV Station'    -- Name
    }
}

Koordinaten ermittelst du mit /coords in der F8-Konsole.

Progress-Bars & Animationen

config.lua
lua
Config.DiagnosisDuration = 6000     -- Diagnose-Dauer (ms)
Config.RenewTuevDuration = 5000     -- TÜV-Erneuerung-Dauer (ms)

Zeit in Millisekunden — 1000 ms = 1 Sekunde.

Diagnose-Anforderungen

config.lua
lua
Config.MinimumEngineHealth = 700.0      -- Min. Motor (0-1000)
Config.MinimumBodyHealth = 800.0        -- Min. Karosserie (0-1000)
Config.RequireAllLights = true          -- Lichter prüfen
Config.CheckTireCondition = true        -- Reifen prüfen

Defekt-Kategorien

config.lua
lua
Config.DefectCategories = {
    critical = {
        engineHealth = {
            threshold = 700,
            message = 'Motor stark beschädigt - Nicht verkehrssicher'
        },
        bodyHealth = {
            threshold = 800,
            message = 'Karosserie stark beschädigt - Unfallschaden'
        }
    },
    warning = {
        engineHealth = {
            threshold = 900,
            message = 'Motor leicht beschädigt - Reparatur empfohlen'
        },
        bodyHealth = {
            threshold = 950,
            message = 'Karosserie Kratzer und Beulen'
        }
    },
    info = {
        tirePressure = { message = 'Reifendruck prüfen' },
        fluidLevels = { message = 'Flüssigkeitsstände kontrollieren' }
    }
}
Level Bedeutung
critical Fahrzeug besteht den TÜV nicht
warning Reparatur empfohlen
info Hinweise

Minigames

Diagnose-Minigame

config.lua
lua
Config.EnableMinigame = true
Config.MinigameType = 'sequence'        -- 'sequence', 'path', 'keyspam', 'random'
Config.MinigameDifficulty = 'medium'    -- 'easy', 'medium', 'hard'
Typ Beschreibung
sequence Tastenfolge merken und wiederholen
path Pfad mit der Maus folgen
keyspam Taste schnell drücken
random zufälliger Typ

Schwierigkeitsgrade

Schwierigkeit Sequence Path Keyspam
Easy 3 Tasten, 12 s 4 Schritte, 10 s 15 Klicks, 8 s
Medium 4 Tasten, 10 s 6 Schritte, 8 s 25 Klicks, 8 s
Hard 5 Tasten, 8 s 8 Schritte, 6 s 35 Klicks, 8 s
Detaillierte Einstellungen
config.lua
lua
Config.MinigameSettings = {
    sequence = {
        easy = { length = 3, time = 12 },
        medium = { length = 4, time = 10 },
        hard = { length = 5, time = 8 }
    },
    path = {
        easy = { steps = 4, time = 10 },
        medium = { steps = 6, time = 8 },
        hard = { steps = 8, time = 6 }
    },
    keyspam = {
        easy = { required = 15, time = 8 },
        medium = { required = 25, time = 8 },
        hard = { required = 35, time = 8 }
    }
}

Plaketten-Minigame

config.lua
lua
Config.EnablePlaketteMinigame = true    -- Plaketten-Auswahl aktivieren
Config.PlaketteMinigameOptions = 6      -- Anzahl Optionen (3-9)

Warnungen

config.lua
lua
Config.EnableReminders = true       -- Warnung beim Einsteigen
Config.ReminderDays = 30            -- Warnung ab X Tagen vor Ablauf

Der Spieler wird beim Einsteigen gewarnt, wenn der TÜV bald abläuft.

Admin-Einstellungen

config.lua
lua
Config.AdminGroups = {
    'admin',
    'superadmin'
}

Admin-Gruppen für Commands wie /tuevcheck [kennzeichen].

Beispiel-Konfigurationen

lua
Config.TuevGueltigTage = 365        -- 1 Jahr
Config.WarnungAbTagen = 14          -- 2 Wochen Warnung
Config.Price = 1500
Config.PaymentMethod = 'bill'
Config.PaymentTarget = 'society'
Config.AllowSelfBilling = false

Config.MinimumEngineHealth = 800.0
Config.MinimumBodyHealth = 900.0
Config.MinigameDifficulty = 'hard'
lua
Config.TuevGueltigTage = 730        -- 2 Jahre
Config.WarnungAbTagen = 60
Config.Price = 500
Config.PaymentMethod = 'direct'
Config.AllowSelfBilling = true

Config.MinimumEngineHealth = 600.0
Config.MinimumBodyHealth = 700.0
Config.MinigameDifficulty = 'easy'
Config.EnablePlaketteMinigame = false
lua
Config.Debug = false
Config.Use3DText = false
Config.Target = 'ox_target'
Config.ProgressType = 'none'
Config.EnableMinigame = false
Config.EnablePlaketteMinigame = false

Framework-spezifische Hinweise

config.lua
lua
Config.NotifyType = 'esx'
Config.ProgressType = 'esx_progressbar'
Config.MenuType = 'esx_menu_default'
Config.BillingSystem = 'esx_billing'

Wichtig:

  • esx_addonaccount für Society-Payments
  • Die Society muss in der Datenbank existieren
config.lua
lua
Config.NotifyType = 'qb'
Config.ProgressType = 'qb-progressbar'
Config.MenuType = 'qb-menu'
Config.BillingSystem = 'qb-management'

Wichtig:

  • qb-management für Society-Payments
  • Der Job muss in qb-core konfiguriert sein

Erweiterte Anpassungen

Eigene Übersetzungen

config.lua
lua
Config.Translations['de']['notif_tuev_success'] = 'TÜV erfolgreich erneuert!'
Config.Translations['en']['notif_tuev_success'] = 'MOT renewed successfully!'

Mehrere Mechaniker-Jobs

config.lua
lua
Config.MechanicJobs = {
    'mechanic',
    'tuner',
    'bennys',
    'lsc',
    'autohaus',
    'customshop'
}