--[[
Car Speed Changer - Deobfuskovaná Verze
Funkce: Akcelerace, Brzda, Fly mód, Drift a Flip
]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
-- Načtení UI Knihovny
local Rayfield = loadstring(game:HttpGet("https://sirius.menu/rayfield"))()
-- Nastavení (Defaultní hodnoty)
local AccelPower = 0.01
local BrakePower = 0.05
local MaxSpeedLimit = 200
local FlightSpeed = 1
local IsFlying = false
local IsAccelerating = false
local IsBraking = false
local DriftEnabled = false
local DriftStrength = 5
local IsUnloaded = false
-- Keybindy
local AccelKey = Enum.KeyCode.W
local BrakeKey = Enum.KeyCode.S
local StopKey = Enum.KeyCode.P
local FlipKey = Enum.KeyCode.F
-- Proměnné pro eventy
local HeartbeatConn, FlightConn, DriftConn
local OriginalParent = LocalPlayer.Character and LocalPlayer.Character.Parent
-- Funkce pro nalezení modelu auta
local function GetVehicleModel(part)
return part:FindFirstAncestor(LocalPlayer.Name .. "'s Car")
or (part:FindFirstAncestor("Body") and part:FindFirstAncestor("Body").Parent)
or (part:FindFirstAncestor("Misc") and part:FindFirstAncestor("Misc").Parent)
or part:FindFirstAncestorWhichIsA("Model")
end
-- Funkce pro získání sedadla řidiče
local function GetVehicleSeat()
local character = LocalPlayer.Character
if not character then return nil end
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if not humanoid then return nil end
local seat = humanoid.SeatPart
return (seat and seat:IsA("VehicleSeat")) and seat or nil
end
-- Omezovač rychlosti
local function ApplySpeedLimiter(seat)
if MaxSpeedLimit == math.huge then return end
local velocity = seat.AssemblyLinearVelocity
local horizontalVel = Vector3.new(velocity.X, 0, velocity.Z)
if horizontalVel.Magnitude > MaxSpeedLimit then
local clampedVel = horizontalVel.Unit * MaxSpeedLimit
seat.AssemblyLinearVelocity = Vector3.new(clampedVel.X, velocity.Y, clampedVel.Z)
end
end
-- Hlavní fyzika jízdy
local function UpdateVehiclePhysics()
if IsUnloaded then return end
local seat = GetVehicleSeat()
if not seat or IsFlying or seat.Anchored then
if HeartbeatConn then HeartbeatConn:Disconnect(); HeartbeatConn = nil end
return
end
local velocity = seat.AssemblyLinearVelocity
local speed = Vector3.new(velocity.X, 0, velocity.Z).Magnitude
if IsBraking then
-- Brzdění
seat.AssemblyLinearVelocity = velocity * Vector3.new(1 - BrakePower, 1, 1 - BrakePower)
elseif IsAccelerating then
-- Akcelerace s odporem vzduchu
local airDrag = math.clamp(speed / 400, 0, 0.95)
local accel = AccelPower * (1 - airDrag)
seat.AssemblyLinearVelocity = velocity * Vector3.new(1 + accel, 1, 1 + accel)
else
-- Pasivní tření (zpomalování při puštění plynu)
seat.AssemblyLinearVelocity = velocity * Vector3.new(0.99, 1, 0.99)
end
ApplySpeedLimiter(seat)
end
-- Otočení auta (Flip)
local function FlipVehicle()
local seat = GetVehicleSeat()
if not seat then return end
local model = GetVehicleModel(seat)
if not model or not model:IsA("Model") then return end
if not model.PrimaryPart then
model.PrimaryPart = (seat.Parent == model and seat) or model:FindFirstChildWhichIsA("BasePart")
end
local currentCF = model:GetPrimaryPartCFrame()
local pos = currentCF.Position
local look = Vector3.new(currentCF.LookVector.X, 0, currentCF.LookVector.Z).Unit
model:SetPrimaryPartCFrame(CFrame.new(pos + Vector3.new(0, 2, 0), pos + Vector3.new(0, 2, 0) + look))
seat.AssemblyLinearVelocity = Vector3.new()
seat.AssemblyAngularVelocity = Vector3.new()
end
-- Létání (Flight Logic)
local function HandleFlight()
if IsUnloaded then return end
local character = LocalPlayer.Character
local seat = GetVehicleSeat()
if not seat then return end
local model = GetVehicleModel(seat)
if not model then return end
character.Parent = model -- Prevence proti vypadnutí z auta
local camCF = workspace.CurrentCamera.CFrame
local currentCF = model:GetPrimaryPartCFrame()
local moveDir = Vector3.new(0, 0, 0)
if not UserInputService:GetFocusedTextBox() then
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += camCF.RightVector * FlightSpeed end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= camCF.RightVector * FlightSpeed end
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += camCF.LookVector * FlightSpeed end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= camCF.LookVector * FlightSpeed end
if UserInputService:IsKeyDown(Enum.KeyCode.E) then moveDir += Vector3.new(0, 1, 0) * (FlightSpeed / 2) end
if UserInputService:IsKeyDown(Enum.KeyCode.Q) then moveDir -= Vector3.new(0, 1, 0) * (FlightSpeed / 2) end
end
model:SetPrimaryPartCFrame(CFrame.new(currentCF.Position + moveDir) * (currentCF - currentCF.Position))
seat.AssemblyLinearVelocity = Vector3.new()
seat.AssemblyAngularVelocity = Vector3.new()
end
-- Drift Logic
local function HandleDrift()
if IsUnloaded or IsFlying then return end
local seat = GetVehicleSeat()
if not seat then return end
local velocity = seat.AssemblyLinearVelocity
local speed = Vector3.new(velocity.X, 0, velocity.Z).Magnitude
if speed < 2 then return end
local lookVec = seat.CFrame.LookVector
local angularVel = seat.AssemblyAngularVelocity
-- Výpočet driftu (směrování vektoru rychlosti k LookVectoru)
local lerpAlpha = math.clamp(0.003 / DriftStrength, 0.0003, 0.003)
local newVel = Vector3.new(velocity.X, 0, velocity.Z):Lerp(lookVec * speed, lerpAlpha)
seat.AssemblyLinearVelocity = Vector3.new(newVel.X, velocity.Y, newVel.Z)
-- Rotace při driftu
local turnSpeed = math.clamp(DriftStrength * 0.06, 0.1, 0.5)
local yRot = angularVel.Y
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
yRot = math.clamp(yRot + turnSpeed, -4, 4)
elseif UserInputService:IsKeyDown(Enum.KeyCode.D) then
yRot = math.clamp(yRot - turnSpeed, -4, 4)
else
yRot *= 0.8
end
seat.AssemblyAngularVelocity = Vector3.new(angularVel.X * 0.85, yRot, angularVel.Z * 0.85)
end
-- GUI Tvorba
local Window = Rayfield:CreateWindow({
Name = "Car Controller - Cleaned",
LoadingTitle = "Vehicle System",
LoadingSubtitle = "Deobfuscated Version",
ConfigurationSaving = { Enabled = false }
})
local TabSpeed = Window:CreateTab("Speed", "gauge")
local TabFlight = Window:CreateTab("Flight", "plane")
local TabMisc = Window:CreateTab("Misc", "wrench")
-- Sekce Speed
TabSpeed:CreateSection("Physics Controls")
TabSpeed:CreateSlider({
Name = "Acceleration",
Range = {0, 50},
Increment = 1,
CurrentValue = 10,
Callback = function(v) AccelPower = v / 1000 end,
})
TabSpeed:CreateSlider({
Name = "Brake Force",
Range = {0, 300},
Increment = 1,
CurrentValue = 50,
Callback = function(v) BrakePower = v / 1000 end,
})
TabSpeed:CreateSlider({
Name = "Max Speed Limit",
Range = {0, 1000},
Increment = 1,
CurrentValue = 200,
Callback = function(v) MaxSpeedLimit = (v == 0) and math.huge or v end,
})
-- Sekce Flight
TabFlight:CreateToggle({
Name = "Enable Flight",
CurrentValue = false,
Callback = function(v)
IsFlying = v
if v then
FlightConn = RunService.Heartbeat:Connect(HandleFlight)
elseif FlightConn then
FlightConn:Disconnect()
FlightConn = nil
if LocalPlayer.Character then LocalPlayer.Character.Parent = workspace end
end
end,
})
TabFlight:CreateSlider({
Name = "Flight Speed",
Range = {0, 800},
Increment = 1,
CurrentValue = 100,
Callback = function(v) FlightSpeed = v / 100 end,
})
-- Sekce Misc (Drift & Unload)
TabMisc:CreateToggle({
Name = "Drift Mode",
CurrentValue = false,
Callback = function(v)
DriftEnabled = v
if v then
DriftConn = RunService.Heartbeat:Connect(HandleDrift)
elseif DriftConn then
DriftConn:Disconnect()
DriftConn = nil
end
end,
})
TabMisc:CreateButton({
Name = "Unload Script",
Callback = function()
IsUnloaded = true
if HeartbeatConn then HeartbeatConn:Disconnect() end
if FlightConn then FlightConn:Disconnect() end
if DriftConn then DriftConn:Disconnect() end
Rayfield:Destroy()
end
})
-- Input Eventy (Klávesnice)
UserInputService.InputBegan:Connect(function(input, processed)
if processed or IsUnloaded then return end
if input.KeyCode == AccelKey then
IsAccelerating = true
if not HeartbeatConn then HeartbeatConn = RunService.Heartbeat:Connect(UpdateVehiclePhysics) end
elseif input.KeyCode == BrakeKey then
IsBraking = true
if not HeartbeatConn then HeartbeatConn = RunService.Heartbeat:Connect(UpdateVehiclePhysics) end
elseif input.KeyCode == StopKey then
local seat = GetVehicleSeat()
if seat then
seat.AssemblyLinearVelocity = Vector3.new()
seat.AssemblyAngularVelocity = Vector3.new()
end
elseif input.KeyCode == FlipKey then
FlipVehicle()
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == AccelKey then
IsAccelerating = false
elseif input.KeyCode == BrakeKey then
IsBraking = false
end
end)
Comments
No comments yet
Be the first to share your thoughts!