Skip to content

Technical & Roblox Architecture

1. Network Ownership & Vehicle Replication

Section titled “1. Network Ownership & Vehicle Replication”

To ensure smooth 60 FPS vehicle handling without perceptible network latency, the game uses Roblox’s native Network Ownership delegation:

sequenceDiagram
    autonumber
    actor Player
    participant Client as Local Player Client
    participant Server as Game Server
    participant Storage as ProfileService Database

    Player->>Client: Interacts with Vehicle Prompt
    Client->>Server: RequestVehicleEnter(vehicleModel)
    Server->>Server: Validate Distance & Ownership
    Server->>Server: vehicleSeat:SetNetworkOwner(Player)
    Server-->>Client: Network Ownership Granted
    Note over Client: Physics calculated 100% locally with zero input lag!
    Client->>Server: Periodic State Sync (Position, Speed, Fuel)
    Player->>Client: Completes Delivery Job
    Client->>Server: RequestJobCompletion(jobId)
    Server->>Server: Validate GPS path & time delta
    Server->>Storage: Increment Cash & Rep atomically
    Server-->>Client: Payout Confirmed Toast

2. Server-Authoritative Anti-Cheat Boundaries

Section titled “2. Server-Authoritative Anti-Cheat Boundaries”
  1. Transaction Integrity: The client never directly dictates currency or vehicle inventory. The server validates all job completions by checking reasonable minimum travel times between pickup and dropoff points.
  2. Physics Sanity Checks: If a client’s reported vehicle position moves faster than the theoretical top speed plus a tolerance margin, the server flags the session and snaps the vehicle back.

3. Data Persistence Schema (ProfileService)

Section titled “3. Data Persistence Schema (ProfileService)”
local PlayerDataProfile = {
Cash = 15000,
Reputation = 0,
CurrentVehicleId = "kanto_compact",
OwnedVehicles = {
["kanto_compact"] = {
Odometer = 0,
Upgrades = {
Engine = 1,
Suspension = 1,
Tires = 1,
Turbo = 0,
},
Customization = {
BodyColor = "#F59E0B",
WheelColor = "#1E293B",
WindowTint = 0.2,
}
}
},
DiscoveredPOIs = {},
Settings = {
SpeedUnit = "MPH",
SteeringSensitivity = 1.0,
CameraDynamicTilt = true,
}
}

4. StreamingEnabled & Mobile Performance Targets

Section titled “4. StreamingEnabled & Mobile Performance Targets”
  • StreamingEnabled: Active with StreamOutBehavior = LowMemory and TargetRadius = 512, MinRadius = 128.
  • LOD Models: Vehicles drop high-poly wheel meshes and interior trim when distance exceeds 100 studs.
  • Draw Call Budget: Maximum 2,500 draw calls per frame on mobile screens.