Konfiguracja fxmanifest.lua (FiveM)

Konfiguracja fxmanifest.lua dla FiveM (przykłady kopiuj-wklej)

Szybka odpowiedź: każdy zasób FiveM potrzebuje pliku fxmanifest.lua w folderze zasobu. Mówi on FXServer, które gry zasób obsługuje, jakie skrypty załadować i które pliki trafią do klientów. Poniżej znajdują się przykłady do skopiowania i wklejenia dla standardowego zasobu skryptu, skryptów współdzielonych/klienta/serwera, zasobów NUI (ui_page + files), i map (this_is_a_map 'yes' ze strumieniami ymap), a także poprawki powszechnych błędów manifestu.

Ostatnia aktualizacja: 25 czerwca 2026

Minimalny fxmanifest.lua

fx_version 'cerulean'
game 'gta5'

client_script 'client.lua'
server_script 'server.lua'

Oficjalna dokumentacja manifestu zasobów Cfx.re identyfikuje fxmanifest.lua jako aktualny plik manifestu i zauważa, że stare __resource.lua manifesty są przestarzałe. Użyj fx_version 'cerulean' dla nowoczesnych zasobów FiveM, chyba że autor zasobu udokumentuje inne wymagania.

Kompletny przykład z metadanymi

fx_version 'cerulean'
game 'gta5'

author 'Your Name'
description 'Example FiveM resource'
version '1.0.0'

lua54 'yes'

shared_script 'config.lua'
client_script 'client.lua'
server_script 'server.lua'

The author, description, oraz version pola to metadane: nie zmieniają one sposobu działania skryptów, ale FXServer wyświetli ostrzeżenie w konsoli, takie jak “wymagana jest wersja. proszę podać wersję w swoim fxmanifest.lua.”, gdy version brakuje. Dodaj version '1.0.0' linię, aby to naprawić. Opcjonalna lua54 'yes' linia włącza Lua 5.4 dla zasobu i jest wymagana przez wiele obecnych frameworków i bibliotek.

Skrypty klienckie, serwerowe i współdzielone

fx_version 'cerulean'
game 'gta5'

shared_scripts {
 'config.lua',
 '@ox_lib/init.lua'
}

client_scripts {
 'client/*.lua'
}

server_scripts {
 '@oxmysql/lib/MySQL.lua',
 'server/*.lua'
}

Używać shared_scripts tylko dla plików, które są bezpieczne po obu stronach. Nie umieszczaj tajemnic serwera, kluczy licencyjnych, haseł do baz danych ani adresów URL webhook w plikach współdzielonych.

Przykład zasobu NUI

fx_version 'cerulean'
game 'gta5'

ui_page 'web/index.html'

files {
 'web/index.html',
 'web/style.css',
 'web/app.js'
}

client_script 'client.lua'

Jeśli UI jest puste w grze, sprawdź, czy każdy plik HTML, CSS, JavaScript, czcionka i obrazek jest wymieniony w files. Brakujące pliki są częstą przyczyną zepsutych ekranów NUI.

Przykład zasobu mapy lub MLO

fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

files {
 'stream/*.ymap',
 'stream/*.ytyp'
}

Dla map i wnętrz przechowuj pliki przesyłane strumieniowo w folderze stream i zweryfikuj, czy zasób uruchamia się bez ostrzeżeń konsoli. Jeśli mapa nie ładuje się, użyj konsoli FiveM i dzienników txAdmin przed edytowaniem niezwiązanych zasobów.

Częste błędy

  • Używanie __resource.lua w nowym zasobie.
  • Umieszczanie server.lua pod client_scripts.
  • Zapominanie plików NUI w files.
  • Umieszczanie tajemnic wewnątrz shared_scripts.
  • Błędne pisownie folderów, szczególnie client, server, oraz stream.

Lista kontrolna walidacji

  1. Folder zasobu ma fxmanifest.lua na najwyższym poziomie.
  2. game 'gta5' jest obecny dla FiveM.
  3. Pliki klienckie ładują się na kliencie, pliki serwerowe ładują się na serwerze.
  4. Każdy plik NUI\/static jest wymieniony w files.
  5. server.cfg zawiera ensure resource-name.

Powiązane przewodniki

Kolejność zależności w server.cfg

Manifest mówi FiveM, które pliki należą do zasobu, ale server.cfg nadal kontroluje kolejność uruchamiania. Uruchom biblioteki współdzielone i zależności frameworku przed zasobami, które z nich korzystają.

ensure oxmysql
ensure ox_lib
ensure qb-core
ensure my-script

Jeśli zasób zgłasza błędy eksportu podczas uruchamiania, sprawdź, czy zależność jest zainstalowana, poprawnie nazwana i uruchomiona przed skryptem, który ją wywołuje.

Uwagi specyficzne dla frameworku

Zasoby ESX, QBCore i Qbox często wymagają importów frameworku, bibliotek baz danych i plików konfiguracyjnych. Zachowaj konfigurację frameworku w udokumentowanych plikach. Nie ukrywaj ważnych ustawień w przypadkowych plikach klienckich. Czytelny manifest ułatwia wsparcie, ponieważ personel widzi każdy ładowany plik.

Przejrzyj listę kontrolną przed opublikowaniem skryptu

  • Brak tajemnic w plikach współdzielonych lub klienckich.
  • Brak nieużywanych plików testowych wymienionych w manifeście.
  • Wszystkie zasoby NUI wymienione pod files.
  • Zależności udokumentowane w README lub opisie produktu.
  • Zasób uruchamia się bezproblemowo po pełnym restarcie serwera.

Kolejność zależności nadal ma znaczenie

Manifest informuje FXServer, które pliki należą do zasobu, ale server.cfg nadal kontroluje kolejność uruchamiania. Uruchom współdzielone biblioteki, frameworki i zależności baz danych przed skryptami, które je wywołują. Jeśli zasób zgłasza błędy eksportu podczas uruchamiania, sprawdź nazwę i kolejność zależności przed edycją samego skryptu.

ensure oxmysql
ensure ox_lib
ensure qb-core
ensure my-script

Przegląd przed wysłaniem zasobu

Sprawdź, czy pliki klienta nie zawierają poufnych informacji, pliki serwera nie są wysyłane do klienta, zasoby NUI są wymienione w sekcji files, a zależności są nazwane dokładnie tak, jak są zainstalowane. Działający manifest powinien sprawić, że zasób będzie zrozumiały dla innego dewelopera bez otwierania każdego pliku Lua.

Jeśli skrypt używa eksportów frameworka, bibliotek baz danych lub wspólnej konfiguracji, udokumentuj to w pliku README lub notatkach o produkcie. Większość problemów z instalacją wynika z brakujących zależności lub nieprawidłowej kolejności uruchamiania, a nie z samej składni manifestu.

Po edycji manifestu, uruchom ponownie cały serwer. Hot reloads mogą ukryć brakujące pliki lub problemy z kolejnością, które pojawiają się dopiero po czystym uruchomieniu.

Jeśli czysty rozruch się nie powiedzie, przeczytaj pierwszy błąd, a nie ostatnią kaskadę błędów po tym, jak zależności zostały już zerwane.

Warstwy fxmanifest.lua dla metadanych, skryptów, zależności i plików
Manifest zasobu deklaruje metadane, wykonywalne skrypty, zależności i spakowane pliki.

Odczytaj fxmanifest w czterech warstwach

  • Metadane: zadeklaruj wersję FX, obsługiwaną grę oraz przydatne informacje o autorze, opisie i wersji.
  • Skrypty: rozdziel wykonanie po stronie klienta, serwera i współdzielone celowo; nie udostępniaj logiki dostępnej tylko na serwerze klientom.
  • Zależności: określ zasoby lub ograniczenia czasu wykonania, które muszą istnieć, zanim ten zasób będzie mógł działać.
  • Pliki: dołącz zasoby NUI i dane, których potrzebują klienci. Cfx.re zauważa, że lokalny ui_page i jego zależności muszą być odwołane w files.

Manifest jest częściowo deklaratywny Lua wykonywany oddzielnie od skryptów zasobu. Zachowaj jego przejrzystość, usuń nieaktualne wpisy i zweryfikuj każdą odwołaną ścieżkę w systemie plików produkcyjnym, uwzględniając wielkość liter.

Cfx.re odniesienie do manifestu zasobu

Recenzja redakcyjna i polityka źródłowa

Przykłady manifestów zostały zachowane, ponieważ pasują do obecnego modelu Cfx.re manifestu zasobu. Oficjalne odniesienie do manifestu jest autorytetem dla dyrektyw i przestarzałych __resource.lua nie wolno wprowadzać przykładów.

Dodaj komentarz