Struktura plików

W repozytorium stosujemy praktyki związane z utrzymaniem spójnej struktury plików

Główna struktura

_artiracts/ # Artefakty dla serwera FiveM
nui/ # Biblioteka UI dla Vue używana przez zasoby operającie interfejs o framework Vue
resources/ # Ścieżka dla FiveM w której trzymane są wszystkie zasoby serwera (tj. skrypty, interiory, ubrania, etc.)
.env.cfg # Plik konfiguracyjny serwera dla danego środowiska (nie jest trackowany przez git)
permissions.cfg # Plik uprawnień serwera
resources.cfg # Plik zarządzający uruchomionymi zasobami przy starcie serwera i ich kolejnością
resources.env.cfg # Rozrzeszenie resources.cfg dla danego środowiska (nie jest trackowany przez git)
run.sh # Plik uruchomieniowy dla danego śrowodiska (nie jest trackowany przez git)
server.cfg # Główny plik konfiguracyjny serwera

# Pozostałe pliki są poboczne i nie mają znaczenia na tym etapie.

Dedykowana struktura dla zasobu

Staramy się urzymać spójną strukturę plików dla skryptów.

Stukruta plików zawsze opiera się o fxmanifest.lua, katalog client/ i katalog server

bl-resource/
    client/
        main.c.lua
    server/
        main.s.lua
    config.lua
    fxmanifest.lua

Warto zauważyć, że dla spójności zachowujemy postfix-y w nazwach plików.

  • Plik klientowy posiada końcówkę .c.lua
  • Dla serwera jest to .s.lua
  • Dla plików współdzielonego będzie to .sh.lua
Oczywiście główny plik config.lua w domyśle jest współdzielony, więc dla niego taki postfix jest zbędny.
Każdy skrypt posiada plik fxmanifest.lua podstawowa jego konfiguracja wygląda następująco:
fx_version 'cerulean'
game 'gta5'
lua54 'yes'

client_scripts {
    'client/main.c.lua',
}

server_scripts {
    'server/main.s.lua',
}

shared_scripts {
    'config.lua',
}
Według zapotrzebowania możliwe jest również stworzenie dedykowanego katalogu config/
bl-resource/
    config/
        main.c.lua
        main.sh.lua
        main.s.lua

Warto pamiętać, aby w takim przypadku plik configu rozpoczynał się:

Config = Config or {}