THE ORB
Studio wird gestartet

Routing-Bucket-Probleme

Spieler oder Objekte sind in getrennten Kopien der Welt und sehen sich deshalb nicht.

groupsSpieler sehen einander nichtcodeBraucht einen Entwickler

Mach das zuerst

Meist ein Job-, Apartment- oder Minispiel-Script, das jemanden in eine Instanz gesteckt und nie zurückgeholt hat.

bug_reportFüg lieber deine ganze Konsole ein

Was es bedeutet

Routing-Buckets sind getrennte Instanzen der Welt. Ein Spieler in Bucket 1 sieht die Entities in Bucket 0 nicht und umgekehrt. Das erzeugt selten eine Fehlerzeile; das Symptom sind Entities, die „nicht spawnen", Spieler, die einander nicht sehen, oder ein Fahrzeug, das es auf dem Server gibt und auf dem Client nicht.

Was es auslöst

Sortiert danach, wie oft es die Antwort ist.

  1. 1

    Die Entity wurde in einem anderen Bucket als der Spieler erzeugt

    Serverseitig erzeugte Entities landen ohne Weiteres in Bucket 0. Ein Spieler, der für einen instanzierten Job oder ein Apartment in einen Bucket versetzt wurde, sieht sie nicht.

  2. 2

    Der Spieler wurde verschoben und nie zurückgeholt

    Ein Absturz, eine Trennung mitten in der Instanz oder ein Scriptweg, der den Bucket setzt und kein Zurücksetzen hat. Der Spieler bleibt nach dem Respawn in einer leeren Welt.

  3. 3

    Zwei Scripts verwalten beide Buckets

    Ein Apartment-Script und ein Minispiel-Script vergeben beide Bucket-Nummern, ohne gemeinsames Register — irgendwann kollidieren sie.

  4. 4

    Der Entity-Lockdown-Modus

    SetRoutingBucketEntityLockdownMode auf strict verhindert, dass Clients in diesem Bucket überhaupt Entities erzeugen — das zerlegt client-seitiges Spawnen darin.

Wie du erkennst, welcher deiner ist

-- Server
print(GetPlayerRoutingBucket(src), GetEntityRoutingBucket(entity))

Unterschiedliche Zahlen sind die ganze Diagnose.

Wo du nachsehen musst

Jeder Aufruf von SetPlayerRoutingBucket und SetEntityRoutingBucket und ob jeder ein passendes Zurücksetzen hat.

Wie du es behebst

Setz Entities in den Bucket des Spielers und setz beim Verlassen immer zurück:

local bucket = GetPlayerRoutingBucket(src)
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, h, true, false)
SetEntityRoutingBucket(veh, bucket)

AddEventHandler('playerDropped', function()
    SetPlayerRoutingBucket(source, 0)
end)

Hängst du immer noch an deinem eigenen Code?

Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.

bug_reportServer Fixer öffnen

Für diese Art Fehler Sicherheitsscanner markiert die Event-Behandlung, die hierher führt.

Fehler, die mit diesem zusammen auftreten