Deine Fehlermeldung ist:
PlotHandler:41: attempt to index nil with 'DisplayName'
Und die Zeile lautet offenbar:
lua
KopierenBearbeiten
updatePlotUI(playerPlot, player.DisplayName)
Was passiert da?
player.DisplayName
→ Du willst auf den Namen des Spielers zugreifen.
Aber
player
ist
nil
, also leer. Und wenn du versuchst, bei etwas Leeren auf
.DisplayName
zuzugreifen, kracht’s.
Warum ist
player
nil?
Weil du in der Funktion
AssignPlot(player)
das
player
-Objekt gar nicht richtig benutzt oder übergibst.
Und/oder – der Spieler ist vielleicht falsch geschrieben oder wurde nicht korrekt erkannt, z. B. durch einen fehlerhaften Zugriff oder falschen Namen.
So fixst du’s
Mach das in
AssignPlot(player)
:
lua
KopierenBearbeiten
function PlotHandler.AssignPlot(player)
local playerPlot = PlotHandler.VerfügbarePlots[math.random(1, #PlotHandler.VerfügbarePlots)]
table.remove(PlotHandler.VerfügbarePlots, table.find(PlotHandler.VerfügbarePlots, playerPlot))
local ownerValue = playerPlot:FindFirstChild('Besitzer') or Instance.new('ObjectValue')
ownerValue.Name = "Besitzer"
ownerValue.Parent = playerPlot
ownerValue.Value = player
-- Hier wichtig: Sicherstellen, dass `player` nicht nil ist
if player then
updatePlotUI(playerPlot, player.DisplayName)
else
warn("PlotHandler: AssignPlot – Spieler ist nil!")
end
PlotHandler.TeleportToPlot(player)
end
Bonus: Fehler vorher abfangen
Am Anfang der Funktion kannst du das auch reinschreiben:
lua
KopierenBearbeiten
if not player then
warn("AssignPlot aufgerufen ohne gültigen Spieler!")
return
end
Fazit
Du hast den Fehler, weil
player
leer ist – du musst also prüfen, ob
player
wirklich übergeben wurde, bevor du darauf zugreifst.