diff --git a/README.md b/README.md index 9147e6f..75ea86b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Fast & Furious: Tokyo Expressway — MVP (drive-only) +# Tokyo Wangan Racing — MVP (drive-only) A Roblox game where you cruise a neon Tokyo expressway at night in cool cars — starting with a real 1993 Mazda RX-7. **This MVP is deliberately tiny: just diff --git a/default.project.json b/default.project.json index bd279c7..a36e560 100644 --- a/default.project.json +++ b/default.project.json @@ -1,5 +1,5 @@ { - "name": "fnf-sim", + "name": "TokyoWanganRacing", "tree": { "$className": "DataModel", @@ -41,6 +41,7 @@ "Lighting": { "$className": "Lighting", "$properties": { + "Technology": "Future", "ClockTime": 0.0, "Brightness": 1.0, "Ambient": [0.05, 0.05, 0.1], diff --git a/docs/GDD.md b/docs/GDD.md index 951c5a5..ad49911 100644 --- a/docs/GDD.md +++ b/docs/GDD.md @@ -1,4 +1,4 @@ -# Game Design Document — Fast & Furious: Tokyo Expressway (MVP) +# Game Design Document — Tokyo Wangan Racing (MVP) ## Vision A neon Tokyo expressway you can cruise at night in cool cars — starting with a diff --git a/src/client/init.client.luau b/src/client/init.client.luau index 0505321..1e1a198 100644 --- a/src/client/init.client.luau +++ b/src/client/init.client.luau @@ -53,7 +53,7 @@ local function corner(inst: Instance, radius: number) end local screen = make("ScreenGui", { - Name = "FnF_UI", + Name = "Wangan_UI", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, }, playerGui) @@ -296,4 +296,4 @@ respawnBtn.MouseButton1Click:Connect(function() showToast("Respawning your car...") end) -print("[FnF] Client UI ready (drive-only MVP).") +print("[Wangan] Client UI ready (drive-only MVP).") diff --git a/src/server/CarBody.luau b/src/server/CarBody.luau index e092d85..398d3b1 100644 --- a/src/server/CarBody.luau +++ b/src/server/CarBody.luau @@ -224,14 +224,14 @@ end local function buildGreenhouse(folder: Folder, body: BasePart, paint: Color3, glass: Color3, style: Style) local origin = body.CFrame - local roofY = H / 2 + 1.5 + local roofY = H / 2 + 1.9 -- tall enough that a seated avatar fits under it local roofLen = L * 0.26 -- Windshield: raked wedge (slope toward front) vis({ Name = "Windshield", - Size = Vector3.new(W - 1.0, 1.3, 1.9), - CFrame = origin * CFrame.new(0, H / 2 + 0.85 + 0.5, -L * 0.09) * CFrame.Angles(0, math.pi, 0), + Size = Vector3.new(W - 1.0, 1.7, 2.1), + CFrame = origin * CFrame.new(0, H / 2 + 1.05 + 0.5, -L * 0.09) * CFrame.Angles(0, math.pi, 0), Color = glass, Material = Enum.Material.Glass, Transparency = 0.25, @@ -262,8 +262,8 @@ local function buildGreenhouse(folder: Folder, body: BasePart, paint: Color3, gl local rearGlassLen = if style.TailKind == "hatch" then 2.4 else 1.7 vis({ Name = "RearGlass", - Size = Vector3.new(W - 1.2, 1.3, rearGlassLen), - CFrame = origin * CFrame.new(0, H / 2 + 0.85 + 0.5, L * 0.235), + Size = Vector3.new(W - 1.2, 1.7, rearGlassLen), + CFrame = origin * CFrame.new(0, H / 2 + 1.05 + 0.5, L * 0.235), Color = glass, Material = Enum.Material.Glass, Transparency = 0.25, diff --git a/src/server/CarManager.luau b/src/server/CarManager.luau index e47b02c..9228fdd 100644 --- a/src/server/CarManager.luau +++ b/src/server/CarManager.luau @@ -223,7 +223,10 @@ local function buildCarModel(car: Car, tuning: Tuning): Model seat.HeadsUpDisplay = false seat.CanCollide = false seat.Color = Color3.new(0.1, 0.1, 0.1) - seat.CFrame = origin * CFrame.new(0, 1.2, -0.5) + -- Seat pan just above the body slab (top = H/2): low enough to look tucked + -- in the cabin, high enough that the avatar's legs never interpenetrate + -- the slab (which causes physics launches). + seat.CFrame = origin * CFrame.new(0, Chassis.BODY_SIZE.Y / 2 + 0.3, 0.2) seat.Parent = model local seatWeld = Instance.new("WeldConstraint") seatWeld.Part0 = body diff --git a/src/server/DataManager.luau b/src/server/DataManager.luau index 7b87f1c..a1e71e6 100644 --- a/src/server/DataManager.luau +++ b/src/server/DataManager.luau @@ -64,7 +64,7 @@ local function onPlayerAdded(player: Player) if profile == nil then -- Another server holds the lock, or player left mid-load. Kick to be safe. - player:Kick("[FnF] Your data could not be loaded. Please rejoin.") + player:Kick("[Wangan] Your data could not be loaded. Please rejoin.") return end @@ -85,7 +85,7 @@ local function onPlayerAdded(player: Player) -- The session was lost (another server stole it, or we released it). profiles[player] = nil if player.Parent == Players then - player:Kick("[FnF] Your session ended (data loaded elsewhere). Please rejoin.") + player:Kick("[Wangan] Your session ended (data loaded elsewhere). Please rejoin.") end end) diff --git a/src/server/MapBuilder.luau b/src/server/MapBuilder.luau index 40ac0a8..a480307 100644 --- a/src/server/MapBuilder.luau +++ b/src/server/MapBuilder.luau @@ -347,13 +347,15 @@ local function buildDaikoku(map: Folder) end -- Spawn pad (cars appear here — Daikoku is the meet) ----------------------- + -- Subtle painted zone, NOT neon: the cars are the stars of the meet, the + -- floor must never outshine them. local spawn = part({ Name = "SpawnPad", Size = Vector3.new(120, 1, 60), CFrame = CFrame.new(0, 1.2, z0 + 130), - Color = Color3.fromRGB(20, 220, 120), - Material = Enum.Material.Neon, - Transparency = 0.4, + Color = Color3.fromRGB(45, 60, 55), + Material = Enum.Material.Asphalt, + Transparency = 0, }) spawn.Parent = folder diff --git a/src/server/init.server.luau b/src/server/init.server.luau index 61a9a32..a02904a 100644 --- a/src/server/init.server.luau +++ b/src/server/init.server.luau @@ -87,4 +87,4 @@ rEquipCar.OnServerInvoke = function(player, carId) return true end -print("[FnF] Server booted (drive-only MVP): map built, car system online.") +print("[Wangan] Server booted (drive-only MVP): map built, car system online.")