Konfiguracja fxmanifest.lua (FiveM)

Setting Up fxmanifest.lua for FiveM (Copy-Paste Examples)

Szybka odpowiedź: every FiveM resource needs an fxmanifest.lua file in the resource folder. It tells FXServer which game the resource supports, which scripts to load, and which files go to clients. Below are copy-paste examples for a standard script resource, shared/client/server scripts, NUI resources (ui_page + files), and maps (this_is_a_map 'yes' with ymap streams), plus fixes for common manifest errors.

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.

Complete example with metadata

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 fields are metadata: they do not change how scripts run, but FXServer prints a console warning such as “version is required. please specify a version in your fxmanifest.lua.” when version is missing. Add a version '1.0.0' line to clear it. The optional lua54 'yes' line enables Lua 5.4 for the resource and is required by many current frameworks and libraries.

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.

fxmanifest.lua layers for metadata, scripts, dependencies and files
A resource manifest declares metadata, executable scripts, dependencies and packaged files.

Read an fxmanifest in four layers

  • Metadata: declare the FX version, supported game and useful author, description and version details.
  • Skrypty: separate client, server and shared execution deliberately; do not expose server-only logic to clients.
  • Zależności: state resources or runtime constraints that must exist before this resource can run.
  • Pliki: include NUI and data assets that clients need. Cfx.re notes that a local ui_page and its dependencies must be referenced in files.

The manifest is semi-declarative Lua executed separately from the resource scripts. Keep it explicit, remove obsolete entries, and verify every referenced path on a case-sensitive production filesystem.

Cfx.re resource-manifest reference

Editorial review and source policy

The manifest examples were retained because they match the current Cfx.re resource-manifest model. The official manifest reference is the authority for directives, and deprecated __resource.lua examples must not be introduced.

Dodaj komentarz