Addon auto na FiveM je resource s modelem a texturami vozidla ve složce stream a čtyřmi nebo pěti soubory meta - vehicles.meta, carvariations.meta, carcols.meta, handling.meta, někdy vehiclelayouts.meta - zaregistrovanými řádky data_file v fxmanifest.lua. Dostane vlastní spawn name a stojí vedle aut ze základní hry. Auto typu replace je jednodušší: streamuješ soubor se stejným názvem, jako má model ze základní hry, a originál zmizí všude, včetně provozu. Addony jsou správná výchozí volba. Co se pokazí, jsou názvy, které se mezi soubory neshodují, dvě auta nárokující stejné ID modkitu a balíky tak velké, že každý nový hráč čeká na připojení deset minut. Tento návod vysvětluje strukturu resource, jednotlivé soubory meta, pole, která se musí shodovat, velikost, integraci s frameworkem a chyby, které uvidíš.
Addon, nebo replace#
| Addon | Replace | |
|---|---|---|
| Spawn name | Vlastní, například rmodgtr | Názvem základního modelu, například adder |
| Soubory meta | Povinné | Volitelné, jen pro handling |
| Původní auto | Pořád tam je | Pryč, včetně provozu |
| Riziko | Konflikty názvů a modkitů | Změní se každá instance toho modelu |
| Použití | Téměř na všechno | Policejní flotily, záměrné přestavby |
Replace funguje, protože FiveM streamuje podle názvu souboru: resource, který obsahuje adder.yft, adder_hi.yft a adder.ytd, přepíše vlastní Adder hry pro každého hráče. To je přesně to, co chceš například při výměně základních policejních vozů za jednotnou flotilu - změní se i každé policejní auto NPC. A je to přesně to, co nechceš u auta z autosalonu, protože Adder v provozu i v každém skriptu, který ho spawnuje, se stane tvým vlastním modelem.
Addony přidávají nový model s vlastním názvem, takže se v základní hře nic nemění a skripty ho spawnují podle tohoto názvu. Cenou jsou soubory meta, kde žije většina problémů s instalací.
Struktura resource#
Jedno addon auto:
resources/[vehicles]/rmodgtr/ fxmanifest.lua data/ vehicles.meta carvariations.meta carcols.meta handling.meta stream/ rmodgtr.yft rmodgtr_hi.yft rmodgtr.ytdfx_version 'cerulean'game 'gta5'files { 'data/**/*.meta',}data_file 'HANDLING_FILE' 'data/**/handling.meta'data_file 'VEHICLE_METADATA_FILE' 'data/**/vehicles.meta'data_file 'CARCOLS_FILE' 'data/**/carcols.meta'data_file 'VEHICLE_VARIATION_FILE' 'data/**/carvariations.meta'data_file 'VEHICLE_LAYOUTS_FILE' 'data/**/vehiclelayouts.meta'Blok files zpřístupní soubory meta klientům; řádky data_file říkají hře, co který z nich je. Zástupný vzor ** umožňuje, aby jeden manifest pokryl balík, ve kterém má každé auto vlastní podsložku pod data/, což je způsob, jakým je postaveno většina kombinovaných balíků. Řádek data_file ukazující na neexistující soubor je neškodný, takže balíky často obsahují řádek pro layouty bez ohledu na to, zda nějaké auto nějaký používá.
Streamované soubory: .yft je model, _hi.yft verze s vysokým detailem používaná zblízka, .ytd textury. Některá auta přidávají +hi.ytd pro textury zblízka a samostatné soubory .ytd pro díly modkitu. Každý soubor ve složce stream se registruje automaticky - obecná pravidla pro streamovaný obsah jsou v článku MLO a streamované assety ve FiveM.
Přidej ho do server.cfg pomocí ensure rmodgtr, po frameworku a před cokoli, co ho potřebuje spawnovat.
vehicles.meta: názvy, které se musí shodovat#
vehicles.meta definuje vozidlo. Většina problémů pochází z hrstky polí, která se musí přesně shodovat s jinými soubory:
| Pole | Musí se shodovat s |
|---|---|
modelName | Názvem souboru .yft bez přípony |
txdName | Názvem souboru .ytd bez přípony |
handlingId | handlingName v handling.meta |
gameName | Textovým štítkem zobrazovaného názvu |
vehicleMakeName | Textovým štítkem výrobce |
<Item> <modelName>rmodgtr</modelName> <txdName>rmodgtr</txdName> <handlingId>RMODGTR</handlingId> <gameName>RMODGTR</gameName> <vehicleMakeName>NISSAN</vehicleMakeName> <type>VEHICLE_TYPE_CAR</type> <vehicleClass>VC_SPORT</vehicleClass> <layout>LAYOUT_STANDARD</layout></Item>type a vehicleClass rozhodují, jak s vozidlem hra zachází: VEHICLE_TYPE_BIKE pro motorku, VC_EMERGENCY ho zařadí do třídy záchranných vozidel a tak dále. layout určuje pozice sedadel a animace nastupování; vlastní layouty pocházejí z vehiclelayouts.meta.
Spawn name je modelName. Zobrazovaný název v garážích a na HUD vozidla pochází z textového štítku v gameName a addon auto, jehož štítek nikdy nebyl definován, se zobrazí jako NULL nebo jako surový štítek. Definuj ho na klientu:
CreateThread(function() AddTextEntry("RMODGTR", "GT-R R35")end)handling.meta, carcols.meta a flotily záchranných složek#
handling.meta definuje, jak se auto jezdí. Jeho handlingName se musí rovnat handlingId z vehicles.meta a názvy handlingu jsou globální: dvě auta se stejným názvem handlingu sdílejí jeden záznam a vyhrává ten, který se načetl naposledy, pro obě. Takhle skončí sedan, který zrychluje jako hypercar.
<Item type="CHandlingData"> <handlingName>RMODGTR</handlingName> <fMass value="1750.000000" /> <fInitialDragCoeff value="8.500000" /> <fInitialDriveForce value="0.340000" /> <fInitialDriveMaxFlatVel value="168.000000" /> <fBrakeForce value="1.100000" /> <fTractionCurveMax value="2.650000" /></Item>Tvůrci ladí handling pro zábavu v singleplayeru, což na roleplay serveru obvykle znamená mnohem příliš rychle. Naladit celou flotilu na jednotné hodnoty je normální a výše uvedená pole - hmotnost, hnací síla, maximální rychlost, brzdy, přilnavost - jsou místo, kde začít. Měň jednu hodnotu naráz a testuj.
carcols.meta obsahuje modkit auta: seznam tuningových dílů a ID sady, na které se odkazuje carvariations.meta.
<Kits> <Item> <kitName>4517_rmodgtr_modkit</kitName> <id value="4517" /> <kitType>MKT_SPECIAL</kitType> </Item></Kits><kits> <Item>4517_rmodgtr_modkit</Item></kits>Jednoduchý způsob kontroly: prohledej všechny carcols.meta na <id value= a výsledky seřaď. Duplicity jsou auta k opravě. Změň ID v carcols.meta a drž název sady v carvariations.meta shodný s novým kitName.
Velikost: cena, kterou platí každý hráč#
Každý nový hráč si stáhne každé streamované vozidlo, než může hrát, a klient drží textury aut kolem sebe v paměti. Addon auta se velikostí enormně liší: dobře udělané auto má pár megabajtů, auto vytažené se 4K texturami na každém povrchu jich může mít třicet i víc. FXServer při startu varuje před každým assetem nad 16 MiB fyzické paměti:
Asset rmodgtr.ytd uses 24.0 MiB of physical memory. Oversized assets can and WILLlead to streaming issues (such as models not loading/rendering).Na serveru s třemi sty auty stačí pár předimenzovaných na rušném parkovišti, aby se textury nenačetly nikomu, kdo tam stojí.
Jak udržet flotilu zvládnutelnou:
- Seřaď své složky `stream` podle velikosti. Prvních dvacet souborů je obvykle většina celku.
- Zmenši předimenzované textury. Otevři
.ytda změň velké textury na 2048 nebo 1024; obvykle to zmenší auto na polovinu bez viditelného rozdílu na parkovišti. - Ořež flotilu. Většina serverů vozí auta, která nikdo nevlastní. Tvoje databáze ví, které modely hráči skutečně mají; zbytek je cena stahování za nic.
- Rozděl podle účelu.
[vehicles-emergency],[vehicles-dealer],[vehicles-donor]- samostatné resources se snáz měří a odstraňují než jeden čtyřgigabajtový „carpack“.
Samotný počet resources není u aut výkonnostní problém: nemají žádné skripty a nestojí nic na hlavním vlákně serveru. Cenou je stahování a paměť klienta. Jak změřit skriptovanou stranu, je v článku výkon serveru FiveM.
Záchranná vozidla, polepy a extras
Policejní, záchranářské a hasičské flotily jsou nejčastějším důvodem, proč roleplay server vůbec přidává vozidla, a přinášejí tři věci navíc ke správě.
Polepy (liveries). Většina balíků záchranných vozidel obsahuje několik polepů na auto - oddělení, hodnosti, neoznačené verze - buď jako varianty textur uvnitř modelu, nebo jako záznamy livery v meta. Skript nebo garáž jeden vybere nativou SetVehicleLivery. Pokud menu polepů ukazuje špatný počet možností, model a meta se neshodují v tom, kolik jich je.
Extras. Světelné rampy, nárazníky, vybavení a přepážky jsou často modelované jako extras, očíslované části zapínané a vypínané pomocí SetVehicleExtra. Garáže oddělení obvykle nastavují pro každé vozidlo pevnou kombinaci, aby flotila vypadala jednotně. Extras, které ve hře chybí, jsou otázka modelu, ne skriptu.
Sirény. Světelné vzory žijí v carcols.meta jako nastavení sirén a stejně jako modkity se identifikují číslem. Dva balíky, které používají stejné ID nastavení sirény, jsou v konfliktu a jedno auto bliká vzorem toho druhého. Při spojování balíků záchranných vozidel od různých tvůrců kontroluj ID sirén stejně jako ID modkitů.
Balíky záchranných složek jsou také místo, kde se replace versus addon stává zajímavým. Nahrazení základních policejních aut znamená, že flotilu používají i policisté NPC a vyslané jednotky, což některé servery chtějí kvůli jednotnosti. Většina roleplay serverů dává přednost addonům, takže hráčská policie má vlastní vozidla a ambientní policie si ponechá základní, a pak vypnou ambientní vysílání policie vlastními skripty.
Jak o autě informovat framework#
Streamování auta ho udělá spawnovatelným podle názvu. Autosalony, garáže a admin menu musí vědět, že existuje.
- QBCore drží seznam vozidel ve sdíleném souboru Lua v
qb-core(shared/vehicles.luav novějších verzích), jeden záznam na model s jeho názvem, značkou, cenou, kategorií a obchodem. Auto, které v něm chybí, nelze koupit a nemusí jít uložit do garáží. - ESX autosalony tradičně čtou tabulku
vehiclesv databázi s modelem, názvem, cenou a kategorií. Řádky přidáš přes SQL nebo phpMyAdmin. - Qbox drží sdílený seznam vozidel ve vlastním jádru; přesné umístění zkontroluj v aktuálním repozitáři, protože se mezi vydáními přesouvalo.
Vlastněná vozidla se ukládají po hráčích v databázi (owned_vehicles na ESX, player_vehicles na QBCore) s názvem modelu nebo hashem. Odstranění auta ze serveru tyto řádky zanechá a garáže pak selhávají, když si hráč chce vyzvednout model, který už neexistuje. Když auto vyřazuješ, rozhodni, co majitelé dostanou - vrácení peněz, náhradní model - a řádky aktualizuj, místo abys nechal rozbité záznamy. Bezpečnou práci s těmi tabulkami řeší databáze FiveM a oxmysql a záloha před jakoukoli hromadnou změnou není volitelná.
Pokud používáš sv_entityLockdown, vozidla se musí vytvářet na serveru. Moderní garáže to dělají už teď; starý autosalon, který spawnuje náhledové auto na klientu, přestane fungovat. Vzor na straně serveru ukazuje OneSync a sloty pro hráče.
Build hry, zdroje a licencování#
Některá addon auta používají části základních vozidel z nedávných aktualizací GTA Online. Fungují jen na serveru, který pomocí sv_enforceGameBuild vynucuje alespoň tento build hry. Auto, které shodí klienty při spawnu nebo se objeví bez kol, je často neshoda buildu; tvůrce by měl uvést požadovaný build.
Záleží i na tom, odkud auta pocházejí. Mnoho zdarma šířených „addon packů“ jsou modely vytažené z jiných závodních her, což je cizí duševní vlastnictví. Pravidla Cfx.re zakazují prodávat přístup k obsahu, na který nemáš práva, a placené resources se distribuují přes systém escrow Cfx.re svázaný s účtem kupujícího - escrow a licencování assetů ve FiveM vysvětluje, jak to funguje a proč jsou uniklé balíky riziko pro tvůj licenční klíč. Donor vozidla jsou zvláštní past; než auto dáš za platbu, přečti si monetizace game serveru v mezích pravidel.
Instalace auta bez výpadku#
Přidání auta nevyžaduje úplný restart serveru:
- Nahraj složku resource. Na RE:NODE přetáhni zip do správce souborů a rozbalí se na místě, nebo pro velký balík nahrávej přes SFTP.
- Přidej
ensure rmodgtrdoserver.cfg, aby to přežilo další restart. - V konzoli spusť
refresha potomensure rmodgtr. - Hráči, kteří už jsou online, dostanou nové soubory; některé změny meta se plně projeví až po jejich opětovném připojení.
- Jednou ho spawnuj admin příkazem a zkontroluj textury, handling, tuning a zobrazovaný název, než ho oznámíš.
Nejdřív zálohuj, pokud balík zasahuje do souborů meta existujících aut, a spojené balíky testuj na kopii serveru, ne naostro; rozbitý carcols.meta může shodit každého klienta, který vstoupí do tuningového obchodu.
Řešení potíží#
„Model does not exist“ nebo se nic nespawnuje. Spawn name neodpovídá modelName, resource není spuštěný, nebo řádky data_file neukazují na soubory meta. IsModelInCdimage(GetHashKey("rmodgtr")) na klientu ti řekne, zda hra model zná.
Auto se spawnuje bez textur. txdName neodpovídá názvu souboru .ytd, nebo je .ytd předimenzovaný a nepodaří se ho streamovat.
Jezdí jako sériové auto. handlingId a handlingName se neshodují, nebo soubor handlingu není zaregistrovaný. Nebo jiné auto používá stejný název handlingu.
Tuningové menu ukazuje špatné díly nebo padá. Duplicitní ID modkitů mezi dvěma auty.
Název se zobrazuje jako NULL. Chybí AddTextEntry pro štítek gameName.
Klienti padají, když se auto objeví. Rozbitý model, předimenzovaný asset nebo build hry nižší, než auto potřebuje.
FAQ#
Jaký je rozdíl mezi addon a replace auty ve FiveM?
Addon auto je nový model s vlastním spawn name a soubory meta, vedle základní hry. Auto typu replace přepíše základní model stejného názvu, takže každá instance toho vozidla - včetně provozu - se stane vlastní.
Potřebuji pro addon auto všechny soubory meta?
Potřebuješ vehicles.meta a obvykle carvariations.meta, carcols.meta a handling.meta. vehiclelayouts.meta jen tehdy, když má auto vlastní layout. Každý musí být uveden v files a zaregistrován řádkem data_file.
Kolik addon aut může mít server FiveM?
Pevné číslo neexistuje. Praktickým limitem je celková velikost stahování a paměť klienta, ne CPU serveru. Stovky fungují, pokud má každé auto rozumnou velikost; několik desítek předimenzovaných může samo způsobit ztrátu textur.
Proč mají dvě moje auta navzájem své tuningové díly?
Sdílejí ID modkitu v carcols.meta. Jednomu dej unikátní ID a aktualizuj jeho název sady v carvariations.meta.
Můžu přidávat auta bez restartu serveru?
Ano. Nahraj resource, v konzoli spusť refresh a ensure a přidej řádek ensure do server.cfg. Někteří hráči se možná budou muset znovu připojit, než se všechno správně načte.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.