Trucker JobYeni

Trucker Job: Ayarlar

Config dosyalarındaki tüm seçenekler; rotalar, araçlar ve teslimat puanından kira, kredi, filo aşınması, NPC işçiler, yetkiler ve Discord loglarına kadar.

v1.0.0Escrow korumalıQBox · QBCore · ESX

İpucu

Değişiklikten sonra sadece kaynağı ensure hype-truckerjob ile yeniden başlat; sunucuyu tamamen yeniden başlatmana gerek yok.

Seçenekler beş dosyaya dağılmıştır. config/server/*.lua sadece sunucuda yüklenir; bu yüzden webhook adresleri ve kelime listesi oyunculara hiç ulaşmaz.

bad-words.lua
discord.lua
config.lua
fleet.lua
npc-workers.lua

Süreler seçeneğin adında geçen birimdedir; aksi belirtilmedikçe mesafeler metre, hasar ve yakıt yüzde (0-100), para tam dolar cinsindendir.

Genel

config/config.lua
Config.Debug = false
Config.NumberAndDateFormat = "en-US"
Config.DateFormat = "DD/MM/YYYY"
Config.Currency = "USD"
Config.SpeedUnit = "kmh"
Config.DistanceUnit = "km"
Config.PaymentType = "bank"

Seçenek

Tür

Deneyim ve seviyeler

Hem oyuncular hem işletmeler her teslimattan XP kazanır. Seviye floor(xp / XPPerLevel) + 1 olarak hesaplanır.

config/config.lua
Config.PlayerXPPerLevel = 10000
Config.BusinessXPPerLevel = 30000

Config.ExperienceDetails = {
    enable = true,
    fixed = 50,
    random = { enable = true, min = 10, max = 50 },
}

Seçenek

Tür

Rota kuralları

config/config.lua
Config.CancelRoute = { enable = true, command = "cancelroute", penalty = 0 }
Config.RouteTimeLimit = { enable = true, baseMinutes = 10, minutesPerKm = 2.5 }
Config.RouteAbandon = { failOnDeath = true, maxDistance = 300.0, graceSeconds = 60 }
Config.RouteAntiCheat = { enable = false, maxTravelSpeed = 45.0, pointRadius = 150.0 }

Seçenek

Tür

Ödeme ve puanlama

Bir teslimatın ödemesi rotanın totalPay değerinden hasar kesintisi çıkarılıp puan bonusu eklenerek bulunur. Şoför bunun komisyonu kadarını alır, kalanı işletme kasasına gider.

config/config.lua
Config.DamagePayCut = { enable = true, truckFactor = 1.0, trailerFactor = 0.5, maxPercent = 50 }

Config.DeliveryRating = {
    enable = true,
    truckDamage = 0.04,
    cargoDamage = 0.05,
    speedLimit = 130,
    overspeedSecondsPerPoint = 45,
    maxSpeedPenalty = 2.0,
    slowAfter = 0.75,
    timePenalty = 1.5,
    randomness = 0.75,
    bonusPercent = { [1] = 0, [2] = 0, [3] = 0, [4] = 5, [5] = 10 },
}

Seçenek

Tür

Görevler

Günlük ve haftalık görevler bir havuzdan seçilir. Herkese aynı görevler gelir ve ödül (PaymentType hesabına para ve oyuncu XP'si) hedefe ulaşıldığı anda ödenir.

config/config.lua
Config.Challenges = {
    enable = true,
    resetHour = 6,
    daily = {
        count = 3,
        completionBonus = { money = 2500, xp = 100 },
        pool = {
            { id = "d-deliveries-3", type = "deliveries", goal = 3, reward = { money = 1500, xp = 50 } },
            { id = "d-fuel-2", type = "deliveries", deliveryType = "Fuel", goal = 2, reward = { money = 2000, xp = 60 } },
            { id = "d-stars-2", type = "stars", minStars = 4, goal = 2, reward = { money = 2000, xp = 70 } },
            -- ...
        },
    },
    weekly = {
        count = 3,
        completionBonus = { money = 15000, xp = 500 },
        pool = { --[[ ... ]] },
    },
}

Seçenek

Tür

TipHedefin anlamı
deliveriesTeslimat sayısı (deliveryType varsa sadece o tip)
earningsTeslimatlardan kazanılan para
distanceTeslimatlarda sürülen kilometre
starsEn az minStars yıldız alan teslimatlar
no-damageHiç hasarsız teslimatlar

Varsayılan günlük havuzda 9, haftalık havuzda 8 görev vardır.

Animasyonlar

config/config.lua
Config.Effects = {
    animations = {
        boxPickup = { dict = "pickup_object", clip = "pickup_low", duration = 900, flag = 0 },
        boxPutDown = { dict = "pickup_object", clip = "putdown_low", duration = 900, flag = 0 },
        fillTrailer = { scenario = "PROP_HUMAN_PARKING_METER" },
        loadMaterials = { scenario = "WORLD_HUMAN_CLIPBOARD" },
        unload = { scenario = "WORLD_HUMAN_CLIPBOARD" },
    },
}

Her kayıt ya bir animasyondur (dict, clip, duration, flag) ya da bir scenario. Bir kaydı false yaparsan o an için animasyon oynatılmaz.

Yönetici paneli

Seçenek

Tür

Kira

Her işletme her dönem için kira öder. Fatura, son ödeme tarihinden dueSoonHours saat önce Faturalar sayfasında görünür ve işletme kasasından ya da oyuncunun bankasından ödenebilir.

Seçenek

Tür

İşletme sahipliği

Sahibin tabletteki Ayarlar sayfasından yapabilecekleri.

Seçenek

Tür

Krediler

Kredi parası işletme kasasına geçer. Araçlara, tamire veya işçilere harcanabilir ama ödenmemiş kısmı kilitli kalır ve çekilemez. Her intervalDays günde bir taksit faturası kesilir.

config/config.lua
Config.Loans = {
    enable = true,
    intervalDays = 3,
    closeAfterOverdue = 3,
    maxActiveLoans = 1,
    amounts = { 250000, 500000, 750000, 1000000 },
    plans = {
        { installments = 4,  interest = 5 },
        { installments = 8,  interest = 10 },
        { installments = 12, interest = 15 },
        { installments = 20, interest = 25 },
    },
}

Seçenek

Tür

Ehliyet

Seçenek

Tür

Satılık işletmeler

Satın alınabilen işletmeler. Her kaydın bir NPC'si (oyuncular tableti onun üzerinden target ile açar) ve rota araçları için spawn noktaları olmalı.

config/config.lua
Config.BusinessLocations = {
    {
        businessId = 1,
        price = 10000,
        ped = {
            enable = true,
            model = `s_m_m_dockwork_01`,
            coords = vec4(1207.43, -3122.66, 4.54, 358.8),
        },
        blip = { show = true, sprite = 477, color = 5, scale = 0.7 },
        locations = {
            truckSpawn = vec4(1196.74, -3100.49, 4.98, 359.86),
            trailerSpawn = vec4(1189.930298, -3102.080566, 5.956488, 358.058289)
        }
    },
    -- 2 ile 5 arası işletmeler
}

Seçenek

Tür

2 ile 5 arası işletmelere spawn noktası ekle

Sadece 1 numaralı işletme locations ile gelir. Diğer dördü satın alınabilir ama truckSpawn ve trailerSpawn ekleyene kadar rota başlatmak This business has no vehicle spawn location configured hatasıyla başarısız olur. Bir tır ve dorseye yetecek kadar geniş, boş bir yer seç.

Teslimat tipleri

Tipler ve arayüzdeki renkleri. label, rotalardaki delivery.type ve araçlardaki deliveryTypes ile birebir aynı olmalı.

config/config.lua
Config.DeliveryTypes = {
    { label = "Standard",     color = "#94a3b8" },
    { label = "Express",      color = "#10b981" },
    { label = "Fragile",      color = "#fb7185" },
    -- Heavy, Refrigerated, Fuel, Chemical, Liquid, Vehicle, Cargo, Box Cargo, Construction, Agricultural
}

Rotalar

Los Santos ve Blaine County'de 34 rota hazır gelir. Her rota işletmede başlar ve biter: tır truckSpawn noktasında spawn olur, yük location.from noktasında yüklenir, location.to noktasında teslim edilir ve tır geri getirilir. Rotalar tek bir işletmeye bağlı değildir; businessName sadece tablette görünen müşteri adıdır.

config/config.lua
{
    id = 5,
    title = "Box Cargo Transport",
    businessName = "Los Santos Cargo Transport",
    description = "Carry the boxes into the truck by hand and deliver them to the distribution center in Vinewood.",
    delivery = { type = "Box Cargo", amount = "10" },
    location = {
        from = {
            coords = vec4(501.16, -638.62, 23.85, 260.17),
            label = "Warehouse",
            spawn = {
                isObject = true,
                objects = {
                    hash = `hei_prop_heist_box`,
                    amount = 10,
                    coords = vec3(501.16, -638.62, 23.85),
                    rotate = "left",
                    perRow = 4,
                    heading = 260.17,
                    gap = 1.0
                }
            }
        },
        to = { coords = vec4(68.1, 124.19, 78.17, 161.63), label = "Cargo Distribution Center" }
    },
    totalPay = 4800,
    requirements = {
        truck = { name = "Mule III", hash = `mule3`, image = "https://docs.fivem.net/vehicles/mule3.webp" },
    },
    minLevel = 1,
},

Seçenek

Tür

Yükleme tipleri

Yükleme tipi, dorse gereksinimine ve location.from içindeki spawn tablosuna göre belirlenir. Dorsesiz rotaların bir spawn tipi olmalı.

DorsespawnŞoförün yaptığı
YokisTrailer = true, vehicle = { hash, name }Alış noktasında bekleyen dorseyi bağlar ve teslim eder
YokisObject = true, tek bir objects grubuKutuları elle kasalı kamyona taşır (Mule, Benson...)
YokisConstruction = trueİşaretçiye park eder ve kamyonu yükler (damperli, mikser...)
Varyokİşaretçiye park eder ve dorseyi doldurur (tanker, kapalı dorse...)
VarisObject = true, forklift ve objects listesiDüz dorseyi forkliftle yükler, en fazla 4 obje
VarisVehicles = true, vehicles listesiArabaları araç taşıyıcıya sürer, en fazla 3 araç

Elle yüklenen kutularda objects tek bir gruptur: hash, amount, coords, heading, perRow, gap ve rotate ("left" veya "right") kutuları sıralar hâlinde dizer. Düz dorsede objects bir { hash, coords, rotation } listesidir; forklift ise hash, name ve bir spawnCoords listesi içerir (ilk boş yer kullanılır). Araç taşıyıcıda vehicles bir { hash, coords } listesidir.

Araçlar ve dorseler

İşletme mağazası. Config.Vehicles içindeki ilk kayıt her yeni işletmeye ücretsiz verilir.

config/config.lua
Config.Vehicles = {
    {
        id = 1,
        vehicle = { hash = `mule`, name = "Mule", image = "https://docs.fivem.net/vehicles/mule.webp" },
        description = "Compact cargo truck suited for small to medium deliveries.",
        minLevel = 1,
        price = 0,
        stats = {
            deliveryTypes = { "Standard", "Express" },
            capacity = "4,000 kg",
            speed = "125 km/h",
            category = "Box Truck",
        },
    },
    -- ...
}

Seçenek

Tür

Tırlar (14)Dorseler (11)
Mule, Mule II, Mule III, Benson, Pounder, Rubble, Tip Truck, Tip Truck XL, Mixer, Mixer XL, Phantom, Phantom Custom, Hauler, PackerTanker, Trailer, Flatbed Trailer (iki adet), Car Carrier, TV Trailer, TV Trailer XL, Flatbed Trailer II, Flatbed Trailer III, Log Trailer, TR3 Trailer

Yetkiler

Role göre tablet yetkileri. Sahip her zaman her şeyi yapabilir. Çalışanlar, Çalışanlar sayfasından kendilerine özel yetki verilmediyse rollerinin varsayılanlarını kullanır.

Yetkiİzin verdiğiDriverSenior DriverManagerBoss
view-dashboardİstatistik, son işler ve sohbetli gösterge paneliEvetEvetEvetEvet
view-vehiclesAraç mağazasıEvetEvetEvetEvet
view-garageAraç durumunu gösteren garajEvetEvetEvetEvet
view-routesRotaları görme ve başlatmaEvetEvetEvetEvet
view-dispatchSevkiyat kaydı ve canlı takipEvetEvetEvetEvet
view-employeesÇalışanlar sayfasıHayırEvetEvetEvet
view-npc-workersNPC işçiler sayfasıHayırHayırEvetEvet
view-invoicesFaturalar sayfasıHayırEvetEvetEvet
deposit-balanceİşletme kasasına para yatırmaHayırHayırEvetEvet
withdraw-balanceİşletme kasasından para çekmeHayırHayırHayırEvet
manage-vehiclesAraç alma, satma, tamir etme ve yakıt doldurmaHayırEvetEvetEvet
manage-settingsİşletme adını ve blip rengini değiştirmeHayırEvetEvetEvet
manage-employeesAlt rütbedeki çalışanları işe alma ve düzenlemeHayırHayırEvetEvet
fire-employeesAlt rütbedeki çalışanları kovmaHayırHayırEvetEvet
manage-npc-workersNPC işçi alma ve iş vermeHayırHayırEvetEvet
pay-invoicesFatura ödemeHayırHayırEvetEvet
take-loansİşletme kredisi almaHayırHayırHayırEvet
config/config.lua
Config.DefaultPermissions = {
    ["Default"] = { ["view-dashboard"] = false, --[[ tüm yetkiler false ]] },
    ["Driver"] = { ["view-dashboard"] = true, ["view-vehicles"] = true, --[[ ... ]] },
    ["Senior Driver"] = { --[[ ... ]] },
    ["Manager"] = { --[[ ... ]] },
    ["Boss"] = { --[[ ... ]] },
}

Roller sırasıyla Driver, Senior Driver, Manager ve Boss olarak sıralanır. Çalışanlar sadece kendi rollerinin altındaki rolleri işe alabilir, düzenleyebilir veya kovabilir; Boss sahibe ayrılmıştır. Default, kaydı olmayan bir rol için yedek settir.

Filo

config/fleet.lua sahip olunan araçların durumunu yönetir. Tırlarda yakıt, hasar ve kilometre; dorselerde hasar ve kilometre tutulur.

config/fleet.lua
Config.Fleet = {
    minFuelToStart = 10,
    maxDamageToStart = 50,
    refuel = { pricePerPercent = 15, fullTankSeconds = 10 },
    repair = { truckPricePerPercent = 40, trailerPricePerPercent = 25, seconds = 10 },
    wear = { base = 2.0, perThousandKm = 0.8, max = 10.0, trailerMultiplier = 0.5 },
    maxRouteDistanceFactor = 3.0,
    npc = { roadFactor = 1.3, fuelPerKm = 1.5, failDamage = 5.0 },
    resale = { startRate = 0.90, ratePerThousandKm = 0.05, minRate = 0.10, damagePenalty = 0.0 },
}

Seçenek

Tür

Varsayılanlarla 10.000 $'a alınan bir tır 1.000 km sonra 8.500 $'a, 10.000 km sonra 4.000 $'a satılır.

NPC işçiler

config/npc-workers.lua. NPC işçiler işletme kasasıyla işe alınır ve rotaları kendi başlarına sürer. İş sunucuda simüle edilir: rota mesafesine ve işçinin hızına göre bir süre sürer, sonra güvenilirliğe (kırılgan tiplerde kırılgan yük yeteneğine de) göre başarılı ya da başarısız olur. Tıpkı bir oyuncu gibi, rota için işletmenin boşta bir tırına ve dorsesine ihtiyaç duyarlar.

config/npc-workers.lua
Config.NPCWorkers = {
    enable = true,
    maxWorkersPerBusiness = 5,
    tickInterval = 15,
    payoutMultiplier = 0.75,
    experienceMultiplier = 0.5,
    minutesPerKm = 1.5,
    minDurationMinutes = 5,
    maxDurationMinutes = 60,
    speedDurationMultiplier = { slowest = 1.6, fastest = 0.6 },
    maxFailChance = 0.35,
    maxFragileFailChance = 0.45,
    fragileDeliveryTypes = { "Fragile", "Chemical", "Refrigerated", "Vehicle" },
    failPenaltyRate = 0.1,
    fireRefundRate = 0.0,
    -- leveling, training, wages, skills, workers
}

Seçenek

Tür

Seviye, eğitim ve maaş

Seçenek

Tür

Bir işçiyi kovmak ya da işçinin ayrılması onu siler. Tekrar işe alınan işçi temel yetenekleriyle sıfırdan başlar.

Yetenekler ve işçiler

speed, reliability ve fragile yetenek kimlikleri simülasyonda kullanılır; sadece label, description ve color değiştirilebilir. 10 işçi hazır gelir.

config/npc-workers.lua
workers = {
    {
        id = "john_miller",
        name = "John Miller",
        image = "https://randomuser.me/api/portraits/men/32.jpg",
        age = 41,
        bio = "Twenty years on the interstate. Not the fastest, but his cargo always arrives.",
        level = 1,
        minBusinessLevel = 1,
        hireCost = 7500,
        commissionRate = 15,
        skills = { speed = 45, reliability = 80, fragile = 55 },
    },
    -- ...
},

Seçenek

Tür

Küfür filtresi

config/server/bad-words.lua işletme adlarını engeller. Adlar küçük harfe çevrilerek, Türkçe karakterler düz harfe dönüştürülerek, yaygın leetspeak (0, 1, 3, 4, 5, 7, @, $) geri çevrilerek ve tek tek yazılmış harfler birleştirilerek kontrol edilir; böylece f u c k ve f.u.c.k da yakalanır.

Seçenek

Tür

İşletme adları ayrıca 3 ile 50 karakter arasında olmalı; kontrol karakteri ve <, >, ~, ^ içeremez.

Discord logları

config/server/discord.lua. Bir webhook'u boş bırakırsan o logları kapatmış olursun.

config/server/discord.lua
Config.Discord = {
    enable = false,
    webhook = "",
    username = "Trucker Job",
    avatar = "",
    footer = "hype-truckerjob",
    events = {
        ["business-purchase"] = { enable = true, webhook = "", color = 5763719 },
        ["delivery"]          = { enable = false, webhook = "", color = 3066993 },
        -- ...
    },
}

Seçenek

Tür

OlayVarsayılanOlayVarsayılan
business-purchaseAçıkrole-changeAçık
depositAçıkdeliveryKapalı
withdrawAçıkchallengeKapalı
vehicle-purchaseAçıkadminAçık
vehicle-sellAçıkloanAçık
hireAçıkbusiness-transferAçık
fireAçıkbusiness-closeAçık
resignAçık

Tablet logosu

web/dist/logos/your-logo.webp dosyasını sunucu logonla değiştir. Tablet kenar çubuğunda ve yönetici panelinde görünür.

Diller

Dil ox_lib'den gelir; bu yüzden config yerine server.cfg içinde ayarlanır:

server.cfg
setr ox:locale "tr"

en, tr, es, fr, pt, ar, zh, hi ve bn hazır gelir. Ayarlanan dilin dosyası yoksa tablet İngilizceye döner. Yeni bir dil eklemek için locales/en.json dosyasını kopyala, çevir, dil koduyla kaydet (örneğin de.json) ve ox:locale değerini o koda ayarla. Aynı dosya tablet metinlerini, bildirimleri ve Discord log metinlerini içerir.

Bu sayfada