Hallo angehender Entwickler!
Hast du jemals davon geträumt, deine eigenen Spielmodifikationen in Grand Theft Auto V zu erstellen? Möchtest du einzigartige Spielerlebnisse schaffen und deine Ideen mit der Welt teilen? Dann bist du hier genau richtig! In dieser Anleitung zeige ich dir, wie du mit FiveM Scripting in Lua beginnst. Keine Sorge, ich führe dich Schritt für Schritt durch alles, was du wissen musst.
What is FiveM?
FiveM ist eine Modifikation für GTA V, die es Spielern ermöglicht, auf benutzerdefinierten Multiplayer-Servern zu spielen. Mit FiveM kannst du eigene Server erstellen, die ganz nach deinen Vorstellungen gestaltet sind. Das Beste daran? Du kannst mithilfe von Lua-Skripten das Gameplay anpassen, neue Features hinzufügen und das Spielerlebnis komplett verändern.
Warum Lua?
Lua ist eine leichte, einfach zu erlernende Skriptsprache. Sie ist perfekt für Einsteiger und wird oft in Spielen verwendet, um Modifikationen und Erweiterungen zu erstellen. Mit Lua kannst du schnell Ergebnisse sehen und musst dich nicht mit komplexer Syntax herumschlagen.
requirements
Bevor wir beginnen, solltest du sicherstellen, dass du Folgendes hast:
- Grundlegende Programmierkenntnisse: Wenn du schon einmal programmiert hast, wird dir der Einstieg leichter fallen.
- GTA V installiert auf deinem PC.
- FiveM Client installiert.
- Einen einfachen Texteditor (z.B. Notepad++, Visual Studio Code).
Dein erstes Skript: „Hello World“
Beginnen wir mit etwas Einfachem. Wir erstellen ein Skript, das eine Nachricht im Spiel anzeigt.
Schritt 1: Verzeichnisstruktur erstellen
- Gehe in dein FiveM-Server-Verzeichnis.
- Erstelle einen neuen Ordner namens
hello-world
. - In diesem Ordner erstellst du eine Datei namens
__resource.lua
orfxmanifest.lua
(je nach FiveM-Version).
Schritt 2: fxmanifest.lua erstellen
Für neuere Versionen von FiveM nutzen wir fxmanifest.lua
.
-- fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
client_scripts {
'client.lua'
}
Schritt 3: client.lua erstellen
Erstelle eine Datei namens client.lua
und füge folgenden Code hinzu:
-- client.lua
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
DrawTextOnScreen("Hallo, FiveM-Welt!", 0.5, 0.5)
end
end)
function DrawTextOnScreen(text, x, y)
SetTextFont(4)
SetTextScale(0.0, 0.5)
SetTextColour(255, 255, 255, 255)
SetTextCentre(true)
SetTextEntry("STRING")
AddTextComponentString(text)
DrawText(x, y)
end
Schritt 4: Skript aktivieren
- Open the
server.cfg
deines FiveM-Servers. - joint
start hello-world
added.
Schritt 5: Server starten und testen
Starte deinen FiveM-Server und verbinde dich. Du solltest nun in der Mitte des Bildschirms die Nachricht „Hallo, FiveM-Welt!“ sehen.
Erklärung des Codes
Der Code mag auf den ersten Blick etwas einschüchternd wirken, aber keine Sorge, ich erkläre ihn dir.
- Citizen.CreateThread: Erstellt einen neuen Thread, der parallel läuft.
- while true do: Eine Endlosschleife, die ständig läuft.
- Citizen.Wait(0): Wartet 0 Millisekunden, um die Schleife nicht zu blockieren.
- DrawTextOnScreen: Eine Funktion, die wir definiert haben, um Text auf dem Bildschirm anzuzeigen.
Client vs. Server Skripte
In FiveM gibt es zwei Arten von Skripten:
- Client-Skripte: Laufen auf dem Computer des Spielers.
- Server-Skripte: Laufen auf dem Server.
Je nachdem, was du erreichen möchtest, musst du dein Skript entsprechend platzieren.
Beispiel: Eine Nachricht an alle Spieler senden (Server-Skript)
Erstelle eine Datei namens server.lua
und füge sie in deinem fxmanifest.lua
hinzu:
fx_version 'cerulean'
game 'gta5'
client_scripts {
'client.lua'
}
server_scripts {
'server.lua'
}
-- server.lua
AddEventHandler('playerConnecting', function(name, setKickReason, deferrals)
print(name .. " verbindet sich mit dem Server.")
TriggerClientEvent('chat:addMessage', -1, {
args = { "SERVER", name .. " hat den Server betreten." }
})
end)
Jetzt wird jedes Mal, wenn ein Spieler dem Server beitritt, eine Nachricht an alle Spieler gesendet.
Events und Natives
Was sind Events?
Events sind Aktionen oder Ereignisse, die im Spiel stattfinden, wie z.B. wenn ein Spieler beitritt, eine Taste drückt oder ein Fahrzeug betritt. Du kannst auf diese Events reagieren und dein Skript entsprechend handeln lassen.
Was sind Natives?
Natives sind Funktionen, die von FiveM bereitgestellt werden, um mit dem Spiel zu interagieren. Sie ermöglichen dir, Dinge wie Spielerpositionen, Fahrzeugdaten und mehr zu manipulieren.
Beispiel: Spieler teleportieren
-- client.lua
RegisterCommand('teleport', function(source, args)
local x = tonumber(args[1])
local y = tonumber(args[2])
local z = tonumber(args[3])
if x and y and z then
SetEntityCoords(PlayerPedId(), x, y, z)
else
print("Bitte geben Sie gültige Koordinaten ein.")
end
end)
Mit diesem Befehl /teleport x y z
kannst du deinen Spieler an beliebige Koordinaten teleportieren.
Ressourcen erstellen
In FiveM werden Scripts als resources bezeichnet. Eine Ressource kann aus mehreren Skripten, Dateien und Assets bestehen.
Beispiel: Fahrzeug-Spawner
Erstellen wir ein einfaches Skript, um ein Fahrzeug zu spawnen.
-- client.lua
RegisterCommand('spawncar', function(source, args)
local vehicleName = args[1] or 'adder'
RequestModel(vehicleName)
while not HasModelLoaded(vehicleName) do
Citizen.Wait(0)
end
local playerPed = PlayerPedId()
local pos = GetEntityCoords(playerPed)
local vehicle = CreateVehicle(vehicleName, pos.x, pos.y, pos.z, GetEntityHeading(playerPed), true, false)
SetPedIntoVehicle(playerPed, vehicle, -1)
end)
Jetzt kannst du mit /spawncar [Fahrzeugname]
ein Fahrzeug spawnen.
Tipps zum Weitermachen
- Experimentiere: Ändere Werte, füge Funktionen hinzu und sieh, was passiert.
- Dokumentation nutzen: Die FiveM-Dokumentation und die Native Reference sind deine besten Freunde.
- Community beitreten: Trete FiveM-Foren und Discord-Servern bei, um Hilfe und Inspiration zu erhalten.
Final word
Herzlichen Glückwunsch! Du hast deinen ersten Schritt in die Welt des FiveM-Scriptings gemacht. Denke daran, dass jeder Experte einmal ein Anfänger war. Mit Geduld und Übung wirst du schon bald komplexe Scripts erstellen können, die das Spielerlebnis für dich und andere bereichern.
Also, worauf wartest du noch? Tauche ein, experimentiere und hab Spaß beim Coden!