Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code V2 by Mokiros")
- local RealPlayer = RealPlayer
- script.Parent = RealPlayer.Character
- --Fake event to make stuff like Mouse.KeyDown work
- local Disconnect_Function = function(this)
- this[1].Functions[this[2]] = nil
- end
- local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
- local FakeEvent_Metatable = {__index={
- Connect = function(this,f)
- local i = tostring(math.random(0,10000))
- while this.Functions[i] do
- i = tostring(math.random(0,10000))
- end
- this.Functions[i] = f
- return setmetatable({this,i},Disconnect_Metatable)
- end
- }}
- FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
- local function fakeEvent()
- return setmetatable({Functions={}},FakeEvent_Metatable)
- end
- --Creating fake input objects with fake variables
- local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
- FakeMouse.keyUp = FakeMouse.KeyUp
- FakeMouse.keyDown = FakeMouse.KeyDown
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function TriggerEvent(self,ev,...)
- for _,f in pairs(self[ev].Functions) do
- f(...)
- end
- end
- FakeMouse.TriggerEvent = TriggerEvent
- UIS.TriggerEvent = TriggerEvent
- --Client communication
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=RealPlayer then return end
- FakeMouse.Target = io.Target
- FakeMouse.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
- end
- if io.UserInputType == Enum.UserInputType.MouseButton2 then
- return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
- local Mouse = owner:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,RobloxHandled)
- if RobloxHandled then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data every second frame, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- local HB = game:GetService("RunService").Heartbeat
- while true do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- --Wait 2 frames
- for i=1,2 do
- HB:Wait()
- end
- end]==],script)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local RealGame = game
- --Metatable for fake service
- local FakeService_Metatable = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then
- return typeof(s[k])=="function"
- and function(_,...)return s[k](s,...)end or s[k]
- end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
- return setmetatable(t,FakeService_Metatable)
- end
- --Fake game object
- local FakeGame = {
- GetService = function(self,s)
- return rawget(self,s) or RealGame:GetService(s)
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- RunService = FakeService({
- _btrs = {},
- RenderStepped = RealGame:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- }
- rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
- FakeGame.service = FakeGame.GetService
- FakeService(FakeGame,game)
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = FakeGame,FakeGame.Players.LocalPlayer
- end
- --Converted with ttyyuu12345's model to script plugin v4
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- Model0 = Instance.new("Model")
- Humanoid1 = Instance.new("Humanoid")
- Model2 = Instance.new("Model")
- Part3 = Instance.new("Part")
- Model4 = Instance.new("Model")
- CylinderMesh5 = Instance.new("CylinderMesh")
- Model6 = Instance.new("Model")
- Model7 = Instance.new("Model")
- MeshPart8 = Instance.new("MeshPart")
- Part9 = Instance.new("Part")
- Model10 = Instance.new("Model")
- Part11 = Instance.new("Part")
- Trail12 = Instance.new("Trail")
- CylinderMesh13 = Instance.new("CylinderMesh")
- Sound14 = Instance.new("Sound")
- Model15 = Instance.new("Model")
- Model16 = Instance.new("Model")
- MeshPart17 = Instance.new("MeshPart")
- ParticleEmitter18 = Instance.new("ParticleEmitter")
- Part19 = Instance.new("Part")
- Model20 = Instance.new("Model")
- CylinderMesh21 = Instance.new("CylinderMesh")
- Model22 = Instance.new("Model")
- Model23 = Instance.new("Model")
- MeshPart24 = Instance.new("MeshPart")
- Part25 = Instance.new("Part")
- Model26 = Instance.new("Model")
- Part27 = Instance.new("Part")
- Trail28 = Instance.new("Trail")
- CylinderMesh29 = Instance.new("CylinderMesh")
- Sound30 = Instance.new("Sound")
- Model31 = Instance.new("Model")
- Model32 = Instance.new("Model")
- MeshPart33 = Instance.new("MeshPart")
- ParticleEmitter34 = Instance.new("ParticleEmitter")
- VehicleSeat35 = Instance.new("VehicleSeat")
- Model36 = Instance.new("Model")
- Model37 = Instance.new("Model")
- MeshPart38 = Instance.new("MeshPart")
- Sound39 = Instance.new("Sound")
- EqualizerSoundEffect40 = Instance.new("EqualizerSoundEffect")
- ReverbSoundEffect41 = Instance.new("ReverbSoundEffect")
- ReverbSoundEffect42 = Instance.new("ReverbSoundEffect")
- Script43 = Instance.new("Script")
- Model44 = Instance.new("Model")
- MeshPart45 = Instance.new("MeshPart")
- Decal46 = Instance.new("Decal")
- Decal47 = Instance.new("Decal")
- Decal48 = Instance.new("Decal")
- Decal49 = Instance.new("Decal")
- MeshPart50 = Instance.new("MeshPart")
- MeshPart51 = Instance.new("MeshPart")
- Decal52 = Instance.new("Decal")
- Decal53 = Instance.new("Decal")
- Decal54 = Instance.new("Decal")
- Part55 = Instance.new("Part")
- Part56 = Instance.new("Part")
- MeshPart57 = Instance.new("MeshPart")
- Decal58 = Instance.new("Decal")
- Decal59 = Instance.new("Decal")
- Decal60 = Instance.new("Decal")
- Decal61 = Instance.new("Decal")
- Decal62 = Instance.new("Decal")
- Decal63 = Instance.new("Decal")
- Decal64 = Instance.new("Decal")
- ModuleScript65 = Instance.new("ModuleScript")
- Script66 = Instance.new("Script")
- ModuleScript67 = Instance.new("ModuleScript")
- ModuleScript68 = Instance.new("ModuleScript")
- ScreenGui69 = Instance.new("ScreenGui")
- ObjectValue70 = Instance.new("ObjectValue")
- BoolValue71 = Instance.new("BoolValue")
- BoolValue72 = Instance.new("BoolValue")
- LocalScript73 = Instance.new("LocalScript")
- Folder74 = Instance.new("Folder")
- NumberValue75 = Instance.new("NumberValue")
- NumberValue76 = Instance.new("NumberValue")
- NumberValue77 = Instance.new("NumberValue")
- StringValue78 = Instance.new("StringValue")
- NumberValue79 = Instance.new("NumberValue")
- NumberValue80 = Instance.new("NumberValue")
- NumberValue81 = Instance.new("NumberValue")
- NumberValue82 = Instance.new("NumberValue")
- NumberValue83 = Instance.new("NumberValue")
- BoolValue84 = Instance.new("BoolValue")
- BoolValue85 = Instance.new("BoolValue")
- BoolValue86 = Instance.new("BoolValue")
- Vector3Value87 = Instance.new("Vector3Value")
- BoolValue88 = Instance.new("BoolValue")
- BoolValue89 = Instance.new("BoolValue")
- BoolValue90 = Instance.new("BoolValue")
- Frame91 = Instance.new("Frame")
- TextButton92 = Instance.new("TextButton")
- LocalScript93 = Instance.new("LocalScript")
- Sound94 = Instance.new("Sound")
- NumberValue95 = Instance.new("NumberValue")
- NumberValue96 = Instance.new("NumberValue")
- NumberValue97 = Instance.new("NumberValue")
- NumberValue98 = Instance.new("NumberValue")
- Sound99 = Instance.new("Sound")
- Folder100 = Instance.new("Folder")
- LocalScript101 = Instance.new("LocalScript")
- Sound102 = Instance.new("Sound")
- Sound103 = Instance.new("Sound")
- LocalScript104 = Instance.new("LocalScript")
- Sound105 = Instance.new("Sound")
- LocalScript106 = Instance.new("LocalScript")
- RemoteEvent107 = Instance.new("RemoteEvent")
- Script108 = Instance.new("Script")
- Sound109 = Instance.new("Sound")
- NumberValue110 = Instance.new("NumberValue")
- NumberValue111 = Instance.new("NumberValue")
- TextButton112 = Instance.new("TextButton")
- LocalScript113 = Instance.new("LocalScript")
- Sound114 = Instance.new("Sound")
- Frame115 = Instance.new("Frame")
- LocalScript116 = Instance.new("LocalScript")
- ImageLabel117 = Instance.new("ImageLabel")
- Frame118 = Instance.new("Frame")
- Frame119 = Instance.new("Frame")
- Frame120 = Instance.new("Frame")
- Frame121 = Instance.new("Frame")
- Frame122 = Instance.new("Frame")
- Frame123 = Instance.new("Frame")
- Frame124 = Instance.new("Frame")
- Frame125 = Instance.new("Frame")
- Frame126 = Instance.new("Frame")
- TextLabel127 = Instance.new("TextLabel")
- TextLabel128 = Instance.new("TextLabel")
- TextLabel129 = Instance.new("TextLabel")
- TextLabel130 = Instance.new("TextLabel")
- TextLabel131 = Instance.new("TextLabel")
- TextLabel132 = Instance.new("TextLabel")
- TextButton133 = Instance.new("TextButton")
- TextLabel134 = Instance.new("TextLabel")
- LocalScript135 = Instance.new("LocalScript")
- Frame136 = Instance.new("Frame")
- LocalScript137 = Instance.new("LocalScript")
- Frame138 = Instance.new("Frame")
- TextLabel139 = Instance.new("TextLabel")
- TextLabel140 = Instance.new("TextLabel")
- TextLabel141 = Instance.new("TextLabel")
- TextLabel142 = Instance.new("TextLabel")
- Frame143 = Instance.new("Frame")
- TextButton144 = Instance.new("TextButton")
- TextButton145 = Instance.new("TextButton")
- TextButton146 = Instance.new("TextButton")
- Frame147 = Instance.new("Frame")
- Frame148 = Instance.new("Frame")
- TextLabel149 = Instance.new("TextLabel")
- ScrollingFrame150 = Instance.new("ScrollingFrame")
- TextLabel151 = Instance.new("TextLabel")
- ScrollingFrame152 = Instance.new("ScrollingFrame")
- TextLabel153 = Instance.new("TextLabel")
- ScrollingFrame154 = Instance.new("ScrollingFrame")
- TextLabel155 = Instance.new("TextLabel")
- ScrollingFrame156 = Instance.new("ScrollingFrame")
- TextLabel157 = Instance.new("TextLabel")
- TextLabel158 = Instance.new("TextLabel")
- TextLabel159 = Instance.new("TextLabel")
- TextLabel160 = Instance.new("TextLabel")
- TextButton161 = Instance.new("TextButton")
- TextButton162 = Instance.new("TextButton")
- TextButton163 = Instance.new("TextButton")
- TextButton164 = Instance.new("TextButton")
- TextButton165 = Instance.new("TextButton")
- TextButton166 = Instance.new("TextButton")
- TextButton167 = Instance.new("TextButton")
- TextButton168 = Instance.new("TextButton")
- TextButton169 = Instance.new("TextButton")
- TextLabel170 = Instance.new("TextLabel")
- TextLabel171 = Instance.new("TextLabel")
- TextLabel172 = Instance.new("TextLabel")
- TextLabel173 = Instance.new("TextLabel")
- TextLabel174 = Instance.new("TextLabel")
- TextLabel175 = Instance.new("TextLabel")
- TextLabel176 = Instance.new("TextLabel")
- TextLabel177 = Instance.new("TextLabel")
- TextLabel178 = Instance.new("TextLabel")
- TextButton179 = Instance.new("TextButton")
- TextButton180 = Instance.new("TextButton")
- TextButton181 = Instance.new("TextButton")
- TextButton182 = Instance.new("TextButton")
- TextButton183 = Instance.new("TextButton")
- TextButton184 = Instance.new("TextButton")
- TextButton185 = Instance.new("TextButton")
- TextLabel186 = Instance.new("TextLabel")
- TextLabel187 = Instance.new("TextLabel")
- TextLabel188 = Instance.new("TextLabel")
- TextLabel189 = Instance.new("TextLabel")
- TextLabel190 = Instance.new("TextLabel")
- TextLabel191 = Instance.new("TextLabel")
- TextLabel192 = Instance.new("TextLabel")
- TextButton193 = Instance.new("TextButton")
- TextButton194 = Instance.new("TextButton")
- TextButton195 = Instance.new("TextButton")
- TextButton196 = Instance.new("TextButton")
- TextButton197 = Instance.new("TextButton")
- TextButton198 = Instance.new("TextButton")
- TextButton199 = Instance.new("TextButton")
- TextButton200 = Instance.new("TextButton")
- TextButton201 = Instance.new("TextButton")
- TextButton202 = Instance.new("TextButton")
- TextButton203 = Instance.new("TextButton")
- TextButton204 = Instance.new("TextButton")
- TextButton205 = Instance.new("TextButton")
- TextButton206 = Instance.new("TextButton")
- TextButton207 = Instance.new("TextButton")
- TextLabel208 = Instance.new("TextLabel")
- TextLabel209 = Instance.new("TextLabel")
- TextLabel210 = Instance.new("TextLabel")
- TextLabel211 = Instance.new("TextLabel")
- TextLabel212 = Instance.new("TextLabel")
- TextLabel213 = Instance.new("TextLabel")
- TextLabel214 = Instance.new("TextLabel")
- TextLabel215 = Instance.new("TextLabel")
- TextLabel216 = Instance.new("TextLabel")
- TextLabel217 = Instance.new("TextLabel")
- TextLabel218 = Instance.new("TextLabel")
- TextLabel219 = Instance.new("TextLabel")
- TextLabel220 = Instance.new("TextLabel")
- TextLabel221 = Instance.new("TextLabel")
- TextLabel222 = Instance.new("TextLabel")
- TextButton223 = Instance.new("TextButton")
- TextLabel224 = Instance.new("TextLabel")
- TextLabel225 = Instance.new("TextLabel")
- TextButton226 = Instance.new("TextButton")
- TextButton227 = Instance.new("TextButton")
- LocalScript228 = Instance.new("LocalScript")
- RemoteEvent229 = Instance.new("RemoteEvent")
- Script230 = Instance.new("Script")
- Sound231 = Instance.new("Sound")
- ParticleEmitter232 = Instance.new("ParticleEmitter")
- LocalScript233 = Instance.new("LocalScript")
- RemoteEvent234 = Instance.new("RemoteEvent")
- Script235 = Instance.new("Script")
- Sound236 = Instance.new("Sound")
- NumberValue237 = Instance.new("NumberValue")
- NumberValue238 = Instance.new("NumberValue")
- Camera239 = Instance.new("Camera")
- Model0.Name = "Dababy Car (Drifts)"
- Model0.Parent = mas
- Humanoid1.Parent = Model0
- Model2.Name = "Wheels"
- Model2.Parent = Model0
- Model2.PrimaryPart = Part19
- Part3.Name = "FR"
- Part3.Parent = Model2
- Part3.CFrame = CFrame.new(-49.7320328, 1.44174027, -77.2087479, -0.000192180276, 1.00000024, 0.000378974801, -0.227366641, 0.000327218324, -0.973809719, -0.973809242, -0.000265292823, 0.227366671)
- Part3.Orientation = Vector3.new(76.8600006, 0.100000001, -89.9199982)
- Part3.Position = Vector3.new(-49.7320328, 1.44174027, -77.2087479)
- Part3.Rotation = Vector3.new(76.8600006, 0.0199999996, -90.0100021)
- Part3.Color = Color3.new(0.972549, 0.972549, 0.972549)
- Part3.Transparency = 1
- Part3.Size = Vector3.new(2.19269395, 2.19269395, 2.19269395)
- Part3.Anchored = true
- Part3.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part3.BottomParamA = 0
- Part3.BottomParamB = 0
- Part3.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part3.BrickColor = BrickColor.new("Institutional white")
- Part3.CustomPhysicalProperties = 0.300000012, 0.319999993, 0, 100, 1
- Part3.FrontParamA = 0
- Part3.FrontParamB = 0
- Part3.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part3.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part3.Material = Enum.Material.SmoothPlastic
- Part3.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part3.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part3.brickColor = BrickColor.new("Institutional white")
- Part3.FormFactor = Enum.FormFactor.Symmetric
- Part3.formFactor = Enum.FormFactor.Symmetric
- Part3.Shape = Enum.PartType.Ball
- Model4.Name = "WheelFixed"
- Model4.Parent = Part3
- CylinderMesh5.Parent = Part3
- CylinderMesh5.Scale = Vector3.new(1, 0.449999988, 1)
- Model6.Name = "SuspensionFixed"
- Model6.Parent = Part3
- Model7.Name = "Parts"
- Model7.Parent = Part3
- MeshPart8.Name = "Work Meister S1 2P"
- MeshPart8.Parent = Model7
- MeshPart8.CFrame = CFrame.new(-49.7316704, 1.4419179, -77.208992, 6.46601961e-07, 1.0000087, 2.01165676e-07, 0.973671854, -6.42612576e-07, -0.22792615, -0.227925017, 2.38418579e-07, -0.973676682)
- MeshPart8.Orientation = Vector3.new(13.1800003, 180, 90)
- MeshPart8.Position = Vector3.new(-49.7316704, 1.4419179, -77.208992)
- MeshPart8.Rotation = Vector3.new(166.820007, 0, -90)
- MeshPart8.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- MeshPart8.Size = Vector3.new(2.4000001, 1.10000002, 2.4000001)
- MeshPart8.Anchored = true
- MeshPart8.BrickColor = BrickColor.new("Really black")
- MeshPart8.CanCollide = false
- MeshPart8.Material = Enum.Material.Metal
- MeshPart8.brickColor = BrickColor.new("Really black")
- MeshPart8.TextureID = "rbxassetid://2440267848"
- Part9.Name = "RL"
- Part9.Parent = Model2
- Part9.CFrame = CFrame.new(-55.3005562, 3.59074783, -68.0350723, 0.000192180276, -1.00000024, 0.000378974801, 0.227366641, -0.000327218324, -0.973809719, 0.973809242, 0.000265292823, 0.227366671)
- Part9.Orientation = Vector3.new(76.8600006, 0.100000001, 90.0800018)
- Part9.Position = Vector3.new(-55.3005562, 3.59074783, -68.0350723)
- Part9.Rotation = Vector3.new(76.8600006, 0.0199999996, 89.9899979)
- Part9.Color = Color3.new(0.972549, 0.972549, 0.972549)
- Part9.Transparency = 1
- Part9.Size = Vector3.new(2.19269395, 2.19269395, 2.19269395)
- Part9.Anchored = true
- Part9.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part9.BottomParamA = 0
- Part9.BottomParamB = 0
- Part9.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part9.BrickColor = BrickColor.new("Institutional white")
- Part9.CustomPhysicalProperties = 0.300000012, 0.319999993, 0, 100, 1
- Part9.FrontParamA = 0
- Part9.FrontParamB = 0
- Part9.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part9.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part9.Material = Enum.Material.SmoothPlastic
- Part9.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part9.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part9.brickColor = BrickColor.new("Institutional white")
- Part9.FormFactor = Enum.FormFactor.Symmetric
- Part9.formFactor = Enum.FormFactor.Symmetric
- Part9.Shape = Enum.PartType.Ball
- Model10.Name = "Fixed"
- Model10.Parent = Part9
- Part11.Parent = Model10
- Part11.CFrame = CFrame.new(-55.2518082, 3.8172493, -68.1002045, 6.4112246e-05, -1.00000012, -0.000221916955, 0.22804825, 0.000228866935, -0.973650038, 0.973649859, 3.97115946e-06, 0.22804828)
- Part11.Orientation = Vector3.new(76.8199997, -0.0599999987, 89.9400024)
- Part11.Position = Vector3.new(-55.2518082, 3.8172493, -68.1002045)
- Part11.Rotation = Vector3.new(76.8199997, -0.00999999978, 90)
- Part11.Transparency = 1
- Part11.Size = Vector3.new(2.25656509, 2.25656509, 2.25656509)
- Part11.Anchored = true
- Part11.CanCollide = false
- Trail12.Parent = Part11
- Trail12.Attachment0 = nil
- Trail12.Attachment1 = nil
- Trail12.Color = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0, 0, 0))
- Trail12.Enabled = false
- Trail12.TextureLength = 5
- Trail12.TextureMode = Enum.TextureMode.Static
- Trail12.Transparency = NumberSequence.new(0.20000000298023,0.20000000298023)
- Trail12.MinLength = 0
- Trail12.Lifetime = 20
- CylinderMesh13.Parent = Part9
- CylinderMesh13.Scale = Vector3.new(1, 0.449999988, 1)
- Sound14.Name = "SQ"
- Sound14.Parent = Part9
- Sound14.Looped = true
- Sound14.SoundId = "rbxassetid://201887209"
- Sound14.Volume = 0
- Model15.Name = "SuspensionFixed"
- Model15.Parent = Part9
- Model16.Name = "Parts"
- Model16.Parent = Part9
- MeshPart17.Name = "Work Meister S1 2P"
- MeshPart17.Parent = Model16
- MeshPart17.CFrame = CFrame.new(-55.3006973, 3.59041834, -68.0352478, -6.46602416e-07, -1.00000954, 1.04308128e-07, -0.973672569, 6.55651093e-07, -0.227926493, 0.227925211, -1.93715096e-07, -0.973678052)
- MeshPart17.Orientation = Vector3.new(13.1800003, 180, -90)
- MeshPart17.Position = Vector3.new(-55.3006973, 3.59041834, -68.0352478)
- MeshPart17.Rotation = Vector3.new(166.820007, 0, 90)
- MeshPart17.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- MeshPart17.Size = Vector3.new(2.4000001, 1.10000002, 2.4000001)
- MeshPart17.Anchored = true
- MeshPart17.BrickColor = BrickColor.new("Really black")
- MeshPart17.CanCollide = false
- MeshPart17.Material = Enum.Material.Metal
- MeshPart17.brickColor = BrickColor.new("Really black")
- MeshPart17.TextureID = "rbxassetid://2440267848"
- ParticleEmitter18.Name = "Smoke"
- ParticleEmitter18.Parent = Part9
- ParticleEmitter18.Speed = NumberRange.new(-2, 0)
- ParticleEmitter18.Color = ColorSequence.new(Color3.new(0.866667, 0.882353, 1),Color3.new(0.866667, 0.882353, 1))
- ParticleEmitter18.Texture = "rbxassetid://982254017"
- ParticleEmitter18.Transparency = NumberSequence.new(0.75,1)
- ParticleEmitter18.Size = NumberSequence.new(3,7.8611102104187,9.3888902664185)
- ParticleEmitter18.Acceleration = Vector3.new(0, 1, 0)
- ParticleEmitter18.EmissionDirection = Enum.NormalId.Bottom
- ParticleEmitter18.Lifetime = NumberRange.new(5, 5)
- ParticleEmitter18.Rate = 0
- ParticleEmitter18.RotSpeed = NumberRange.new(20, 100)
- ParticleEmitter18.SpreadAngle = Vector2.new(20, 20)
- ParticleEmitter18.VelocitySpread = 20
- Part19.Name = "FL"
- Part19.Parent = Model2
- Part19.CFrame = CFrame.new(-55.3139992, 1.46032047, -77.2147903, 0.000192180276, -1.00000024, 0.000378974801, 0.227366641, -0.000327218324, -0.973809719, 0.973809242, 0.000265292823, 0.227366671)
- Part19.Orientation = Vector3.new(76.8600006, 0.100000001, 90.0800018)
- Part19.Position = Vector3.new(-55.3139992, 1.46032047, -77.2147903)
- Part19.Rotation = Vector3.new(76.8600006, 0.0199999996, 89.9899979)
- Part19.Color = Color3.new(0.972549, 0.972549, 0.972549)
- Part19.Transparency = 1
- Part19.Size = Vector3.new(2.19269395, 2.19269395, 2.19269395)
- Part19.Anchored = true
- Part19.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part19.BottomParamA = 0
- Part19.BottomParamB = 0
- Part19.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part19.BrickColor = BrickColor.new("Institutional white")
- Part19.CustomPhysicalProperties = 0.300000012, 0.319999993, 0, 100, 1
- Part19.FrontParamA = 0
- Part19.FrontParamB = 0
- Part19.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part19.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part19.Material = Enum.Material.SmoothPlastic
- Part19.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part19.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part19.brickColor = BrickColor.new("Institutional white")
- Part19.FormFactor = Enum.FormFactor.Symmetric
- Part19.formFactor = Enum.FormFactor.Symmetric
- Part19.Shape = Enum.PartType.Ball
- Model20.Name = "WheelFixed"
- Model20.Parent = Part19
- CylinderMesh21.Parent = Part19
- CylinderMesh21.Scale = Vector3.new(1, 0.449999988, 1)
- Model22.Name = "SuspensionFixed"
- Model22.Parent = Part19
- Model23.Name = "Parts"
- Model23.Parent = Part19
- MeshPart24.Name = "Work Meister S1 2P"
- MeshPart24.Parent = Model23
- MeshPart24.CFrame = CFrame.new(-55.3137817, 1.46019506, -77.2143326, -6.46602416e-07, -1.00000954, 1.04308128e-07, -0.973672569, 6.55651093e-07, -0.227926493, 0.227925211, -1.93715096e-07, -0.973678052)
- MeshPart24.Orientation = Vector3.new(13.1800003, 180, -90)
- MeshPart24.Position = Vector3.new(-55.3137817, 1.46019506, -77.2143326)
- MeshPart24.Rotation = Vector3.new(166.820007, 0, 90)
- MeshPart24.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- MeshPart24.Size = Vector3.new(2.4000001, 1.10000002, 2.4000001)
- MeshPart24.Anchored = true
- MeshPart24.BrickColor = BrickColor.new("Really black")
- MeshPart24.CanCollide = false
- MeshPart24.Material = Enum.Material.Metal
- MeshPart24.brickColor = BrickColor.new("Really black")
- MeshPart24.TextureID = "rbxassetid://2440267848"
- Part25.Name = "RR"
- Part25.Parent = Model2
- Part25.CFrame = CFrame.new(-49.7888031, 3.5672965, -67.9820175, -0.000192180276, 1.00000024, 0.000378974801, -0.227366641, 0.000327218324, -0.973809719, -0.973809242, -0.000265292823, 0.227366671)
- Part25.Orientation = Vector3.new(76.8600006, 0.100000001, -89.9199982)
- Part25.Position = Vector3.new(-49.7888031, 3.5672965, -67.9820175)
- Part25.Rotation = Vector3.new(76.8600006, 0.0199999996, -90.0100021)
- Part25.Color = Color3.new(0.972549, 0.972549, 0.972549)
- Part25.Transparency = 1
- Part25.Size = Vector3.new(2.19269395, 2.19269395, 2.19269395)
- Part25.Anchored = true
- Part25.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part25.BottomParamA = 0
- Part25.BottomParamB = 0
- Part25.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part25.BrickColor = BrickColor.new("Institutional white")
- Part25.CustomPhysicalProperties = 0.300000012, 0.319999993, 0, 100, 1
- Part25.FrontParamA = 0
- Part25.FrontParamB = 0
- Part25.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part25.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part25.Material = Enum.Material.SmoothPlastic
- Part25.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part25.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part25.brickColor = BrickColor.new("Institutional white")
- Part25.FormFactor = Enum.FormFactor.Symmetric
- Part25.formFactor = Enum.FormFactor.Symmetric
- Part25.Shape = Enum.PartType.Ball
- Model26.Name = "Fixed"
- Model26.Parent = Part25
- Part27.Parent = Model26
- Part27.CFrame = CFrame.new(-49.7221146, 3.7787838, -68.0100021, 6.4112246e-05, -1.00000012, -0.000221916955, 0.22804825, 0.000228866935, -0.973650038, 0.973649859, 3.97115946e-06, 0.22804828)
- Part27.Orientation = Vector3.new(76.8199997, -0.0599999987, 89.9400024)
- Part27.Position = Vector3.new(-49.7221146, 3.7787838, -68.0100021)
- Part27.Rotation = Vector3.new(76.8199997, -0.00999999978, 90)
- Part27.Transparency = 1
- Part27.Size = Vector3.new(2.25656509, 2.25656509, 2.25656509)
- Part27.Anchored = true
- Part27.CanCollide = false
- Trail28.Parent = Part27
- Trail28.Attachment0 = nil
- Trail28.Attachment1 = nil
- Trail28.Color = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0, 0, 0))
- Trail28.Enabled = false
- Trail28.TextureLength = 5
- Trail28.TextureMode = Enum.TextureMode.Static
- Trail28.Transparency = NumberSequence.new(0.20000000298023,0.20000000298023)
- Trail28.MinLength = 0
- Trail28.Lifetime = 20
- CylinderMesh29.Parent = Part25
- CylinderMesh29.Scale = Vector3.new(1, 0.449999988, 1)
- Sound30.Name = "SQ"
- Sound30.Parent = Part25
- Sound30.Looped = true
- Sound30.SoundId = "rbxassetid://201887209"
- Sound30.Volume = 0
- Model31.Name = "SuspensionFixed"
- Model31.Parent = Part25
- Model32.Name = "Parts"
- Model32.Parent = Part25
- MeshPart33.Name = "Work Meister S1 2P"
- MeshPart33.Parent = Model32
- MeshPart33.CFrame = CFrame.new(-49.7887077, 3.56704712, -67.981514, 6.90906404e-07, 1.00000954, -1.04308128e-07, -0.973672569, 6.48200512e-07, 0.227926463, 0.227925181, -1.04308128e-07, 0.973678052)
- MeshPart33.Orientation = Vector3.new(-13.1800003, 0, -90)
- MeshPart33.Position = Vector3.new(-49.7887077, 3.56704712, -67.981514)
- MeshPart33.Rotation = Vector3.new(-13.1800003, 0, -90)
- MeshPart33.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- MeshPart33.Size = Vector3.new(2.4000001, 1.10000002, 2.4000001)
- MeshPart33.Anchored = true
- MeshPart33.BrickColor = BrickColor.new("Really black")
- MeshPart33.CanCollide = false
- MeshPart33.Material = Enum.Material.Metal
- MeshPart33.brickColor = BrickColor.new("Really black")
- MeshPart33.TextureID = "rbxassetid://2440267848"
- ParticleEmitter34.Name = "Smoke"
- ParticleEmitter34.Parent = Part25
- ParticleEmitter34.Speed = NumberRange.new(-2, 0)
- ParticleEmitter34.Color = ColorSequence.new(Color3.new(0.866667, 0.882353, 1),Color3.new(0.866667, 0.882353, 1))
- ParticleEmitter34.Texture = "rbxassetid://982254017"
- ParticleEmitter34.Transparency = NumberSequence.new(0.75,1)
- ParticleEmitter34.Size = NumberSequence.new(3,7.8611102104187,9.3888902664185)
- ParticleEmitter34.Acceleration = Vector3.new(0, 1, 0)
- ParticleEmitter34.EmissionDirection = Enum.NormalId.Bottom
- ParticleEmitter34.Lifetime = NumberRange.new(5, 5)
- ParticleEmitter34.Rate = 0
- ParticleEmitter34.RotSpeed = NumberRange.new(20, 100)
- ParticleEmitter34.SpreadAngle = Vector2.new(20, 20)
- ParticleEmitter34.VelocitySpread = 20
- VehicleSeat35.Name = "DriveSeat"
- VehicleSeat35.Parent = Model0
- VehicleSeat35.CFrame = CFrame.new(-52.4240379, 4.15541077, -73.1815338, 1.00000012, -0.000406131148, -6.35758042e-05, 0.000411368906, 0.994556725, 0.10420049, 2.89529562e-05, -0.104200564, 0.994556308)
- VehicleSeat35.Orientation = Vector3.new(-5.98000002, 0, 0.0199999996)
- VehicleSeat35.Position = Vector3.new(-52.4240379, 4.15541077, -73.1815338)
- VehicleSeat35.Rotation = Vector3.new(-5.98000002, 0, 0.0199999996)
- VehicleSeat35.Transparency = 9
- VehicleSeat35.MaxSpeed = 0
- VehicleSeat35.Size = Vector3.new(1.76999998, 0.909999967, 2.29910541)
- VehicleSeat35.Torque = 0
- VehicleSeat35.Anchored = true
- VehicleSeat35.BottomSurface = Enum.SurfaceType.Smooth
- VehicleSeat35.CanCollide = false
- VehicleSeat35.CustomPhysicalProperties = 0.699999988, 0.300000012, 0, 1, 1
- VehicleSeat35.FrontParamA = -0.10000000149012
- VehicleSeat35.FrontParamB = 0.10000000149012
- VehicleSeat35.FrontSurface = Enum.SurfaceType.Motor
- VehicleSeat35.FrontSurfaceInput = Enum.InputType.Constant
- VehicleSeat35.Material = Enum.Material.SmoothPlastic
- VehicleSeat35.TopParamA = 0
- VehicleSeat35.TopParamB = 0
- VehicleSeat35.TopSurface = Enum.SurfaceType.Hinge
- VehicleSeat35.TurnSpeed = 0
- Model36.Name = "Misc"
- Model36.Parent = Model0
- Model37.Name = "Body"
- Model37.Parent = Model0
- MeshPart38.Name = "Dababy"
- MeshPart38.Parent = Model37
- MeshPart38.CFrame = CFrame.new(-52.5, 4.97545767, -72.5, 0.99999994, -2.60770321e-08, -5.21540642e-08, -2.60770321e-08, 0.999999702, 1.49011612e-08, -5.21540642e-08, 1.49011612e-08, 0.999999702)
- MeshPart38.Position = Vector3.new(-52.5, 4.97545767, -72.5)
- MeshPart38.Size = Vector3.new(12.1759996, 9.72000027, 17.5389996)
- MeshPart38.Anchored = true
- MeshPart38.CanCollide = false
- MeshPart38.Material = Enum.Material.Glass
- MeshPart38.TextureID = "http://www.roblox.com/asset/?id=6437816183"
- Sound39.Name = "Dababy"
- Sound39.Parent = MeshPart38
- Sound39.Looped = true
- Sound39.SoundId = "rbxassetid://4916510941"
- Sound39.Volume = 3
- EqualizerSoundEffect40.Parent = Sound39
- EqualizerSoundEffect40.HighGain = -20
- EqualizerSoundEffect40.LowGain = -10
- EqualizerSoundEffect40.MidGain = -80
- ReverbSoundEffect41.Parent = Sound39
- ReverbSoundEffect42.Parent = Sound39
- Script43.Name = "Alexa, Play Dababy"
- Script43.Parent = MeshPart38
- table.insert(cors,sandbox(Script43,function()
- script.Parent.Dababy:Play()
- end))
- Model44.Name = "pewdiepie Gaming Chair"
- Model44.Parent = Model37
- MeshPart45.Name = "Chair"
- MeshPart45.Parent = Model44
- MeshPart45.CFrame = CFrame.new(-52.4433746, 6.23143196, -73.0870743, 0.99999994, 1.21071935e-08, -1.71363354e-07, -2.60770321e-08, 0.946350396, 0.323141992, -5.21540642e-08, -0.323141962, 0.946350455)
- MeshPart45.Orientation = Vector3.new(-18.8500004, 0, 0)
- MeshPart45.Position = Vector3.new(-52.4433746, 6.23143196, -73.0870743)
- MeshPart45.Rotation = Vector3.new(-18.8500004, 0, 0)
- MeshPart45.Color = Color3.new(0.105882, 0.164706, 0.207843)
- MeshPart45.Size = Vector3.new(3.26960111, 4.61729527, 4.01988935)
- MeshPart45.Anchored = true
- MeshPart45.BrickColor = BrickColor.new("Black")
- MeshPart45.Material = Enum.Material.SmoothPlastic
- MeshPart45.brickColor = BrickColor.new("Black")
- Decal46.Name = "PewDiepie "
- Decal46.Parent = MeshPart45
- Decal46.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal46.Face = Enum.NormalId.Top
- Decal47.Name = "PewDiepie "
- Decal47.Parent = MeshPart45
- Decal47.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal47.Face = Enum.NormalId.Left
- Decal48.Name = "PewDiepie "
- Decal48.Parent = MeshPart45
- Decal48.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal48.Face = Enum.NormalId.Right
- Decal49.Name = "PewDiepie "
- Decal49.Parent = MeshPart45
- Decal49.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal49.Face = Enum.NormalId.Top
- MeshPart50.Name = "Body"
- MeshPart50.Parent = Model44
- MeshPart50.CFrame = CFrame.new(-52.4448776, 3.87214184, -72.8356628, 0.99999994, -1.55978341e-10, 0, -2.60770321e-08, 0.973678112, 0.227926686, -5.21540642e-08, -0.227926686, 0.973678172)
- MeshPart50.Orientation = Vector3.new(-13.1800003, 0, 0)
- MeshPart50.Position = Vector3.new(-52.4448776, 3.87214184, -72.8356628)
- MeshPart50.Rotation = Vector3.new(-13.1800003, 0, 0)
- MeshPart50.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- MeshPart50.Size = Vector3.new(3.50338364, 3.59775281, 3.15158343)
- MeshPart50.Anchored = true
- MeshPart50.BrickColor = BrickColor.new("Really black")
- MeshPart50.Material = Enum.Material.SmoothPlastic
- MeshPart50.brickColor = BrickColor.new("Really black")
- MeshPart51.Name = "Pillow"
- MeshPart51.Parent = Model44
- MeshPart51.CFrame = CFrame.new(-52.3585968, 5.78281307, -72.0717468, 0.999996603, 0.000392563641, 0.00256798044, -0.00247994438, -0.150143862, 0.988660872, 0.00077368319, -0.988664031, -0.150142342)
- MeshPart51.Orientation = Vector3.new(-81.3600006, 179.020004, -179.050003)
- MeshPart51.Position = Vector3.new(-52.3585968, 5.78281307, -72.0717468)
- MeshPart51.Rotation = Vector3.new(-98.6399994, 0.150000006, -0.0199999996)
- MeshPart51.Color = Color3.new(0.811765, 0, 0)
- MeshPart51.Size = Vector3.new(1.74999952, 0.293115109, 0.847809494)
- MeshPart51.Anchored = true
- MeshPart51.BrickColor = BrickColor.new("Really red")
- MeshPart51.brickColor = BrickColor.new("Really red")
- Decal52.Name = "PewDiepie "
- Decal52.Parent = MeshPart51
- Decal52.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal52.Face = Enum.NormalId.Top
- Decal53.Name = "PewDiepie "
- Decal53.Parent = MeshPart51
- Decal53.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal53.Face = Enum.NormalId.Back
- Decal54.Name = "PewDiepie "
- Decal54.Parent = MeshPart51
- Decal54.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal54.Face = Enum.NormalId.Top
- Part55.Name = "belt"
- Part55.Parent = Model44
- Part55.CFrame = CFrame.new(-52.8432884, 6.29359293, -71.916481, -0.0761699975, -0.0324770324, -0.996565759, 0.120247833, 0.99187535, -0.0415149778, 0.989817262, -0.122997083, -0.0716458112)
- Part55.Orientation = Vector3.new(2.38000011, -94.1100006, 6.90999985)
- Part55.Position = Vector3.new(-52.8432884, 6.29359293, -71.916481)
- Part55.Rotation = Vector3.new(149.910004, -85.25, 156.910004)
- Part55.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part55.Size = Vector3.new(0.0500000007, 2.80000114, 0.290000975)
- Part55.Anchored = true
- Part55.BottomSurface = Enum.SurfaceType.Smooth
- Part55.BrickColor = BrickColor.new("Dark stone grey")
- Part55.TopSurface = Enum.SurfaceType.Smooth
- Part55.brickColor = BrickColor.new("Dark stone grey")
- Part56.Name = "belt"
- Part56.Parent = Model44
- Part56.CFrame = CFrame.new(-51.983139, 6.29802942, -71.9270248, -1.93715096e-07, -1.58324838e-08, -0.99999994, 0.107325062, 0.994223893, 2.60770321e-08, 0.994223893, -0.10732504, 5.21540642e-08)
- Part56.Orientation = Vector3.new(0, -90, 6.15999985)
- Part56.Position = Vector3.new(-51.983139, 6.29802942, -71.9270248)
- Part56.Rotation = Vector3.new(-26.5699997, -89.9800034, 175.330002)
- Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part56.Size = Vector3.new(0.0500000007, 2.81000113, 0.290000975)
- Part56.Anchored = true
- Part56.BottomSurface = Enum.SurfaceType.Smooth
- Part56.BrickColor = BrickColor.new("Dark stone grey")
- Part56.TopSurface = Enum.SurfaceType.Smooth
- Part56.brickColor = BrickColor.new("Dark stone grey")
- MeshPart57.Name = "Meshes/Clenched Right Fist"
- MeshPart57.Parent = Model44
- MeshPart57.CFrame = CFrame.new(-52.4659233, 6.8868084, -71.9715881, 1.66706741e-07, -0.99999994, -2.01165676e-07, 0.994223833, 1.99303031e-07, 0.107324727, -0.107324719, 1.49011612e-08, 0.994223833)
- MeshPart57.Orientation = Vector3.new(-6.15999985, 0, 90)
- MeshPart57.Position = Vector3.new(-52.4659233, 6.8868084, -71.9715881)
- MeshPart57.Rotation = Vector3.new(-6.15999985, 0, 90)
- MeshPart57.Size = Vector3.new(1.01121461, 1.15534568, 0.0500000007)
- MeshPart57.Anchored = true
- Decal58.Name = "PewDiepie "
- Decal58.Parent = MeshPart57
- Decal58.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal59.Name = "PewDiepie "
- Decal59.Parent = MeshPart57
- Decal59.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal59.Face = Enum.NormalId.Back
- Decal60.Name = "PewDiepie "
- Decal60.Parent = MeshPart57
- Decal60.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal60.Face = Enum.NormalId.Right
- Decal61.Name = "PewDiepie "
- Decal61.Parent = MeshPart57
- Decal61.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal61.Face = Enum.NormalId.Left
- Decal62.Name = "PewDiepie "
- Decal62.Parent = MeshPart57
- Decal62.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal63.Name = "PewDiepie "
- Decal63.Parent = MeshPart57
- Decal63.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal63.Face = Enum.NormalId.Bottom
- Decal64.Name = "PewDiepie "
- Decal64.Parent = MeshPart57
- Decal64.Texture = "http://www.roblox.com/asset/?id=3042885083"
- Decal64.Face = Enum.NormalId.Top
- ModuleScript65.Name = "A-Chassis Tune"
- ModuleScript65.Parent = Model0
- table.insert(cors,sandbox(ModuleScript65,function()
- --[[
- ___ _______ _ _______
- / _ |____/ ___/ / ___ ____ ___ (_)__ /__ __/
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-< / /
- /_/ |_| \___/_//_/\_,_/___/___/_/___/ /_/
- SecondLogic @ Inspare
- Avxnturador @ Novena
- RikOne2 @ Enjin
- ]]
- local Tune = {}
- --[[Misc]]
- Tune.LoadDelay = .1 -- Delay before initializing chassis (in seconds)
- Tune.AutoStart = false -- Set to false if using manual ignition plugin
- Tune.AutoFlip = true -- Set to false if using manual flip plugin
- --[[Wheel Alignment]]
- --[Don't physically apply alignment to wheels]
- --[Values are in degrees]
- Tune.FCamber = -12
- Tune.RCamber = -7
- Tune.FToe = 0
- Tune.RToe = 0
- --[[Weight and CG]]
- Tune.Weight = 1100 -- Total weight (in pounds)
- Tune.WeightBSize = { -- Size of weight brick (dimmensions in studs ; larger = more stable)
- --[[Width]] 6.5 ,
- --[[Height]] 4.8 ,
- --[[Length]] 17 }
- Tune.WeightDist = 51 -- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
- Tune.CGHeight = .7 -- Center of gravity height (studs relative to median of all wheels)
- Tune.WBVisible = false -- Makes the weight brick visible
- --Unsprung Weight
- Tune.FWheelDensity = .1 -- Front Wheel Density
- Tune.RWheelDensity = .1 -- Rear Wheel Density
- Tune.FWLgcyDensity = 1 -- Front Wheel Density [PGS OFF]
- Tune.RWLgcyDensity = 1 -- Rear Wheel Density [PGS OFF]
- Tune.AxleSize = 2 -- Size of structural members (larger = MORE STABLE / carry more weight)
- Tune.AxleDensity = .1 -- Density of structural members
- --[[Susupension]]
- Tune.SusEnabled = true -- Sets whether suspension is enabled for PGS
- --Front Suspension
- Tune.FSusStiffness = 25000 -- Spring Force
- Tune.FSusDamping = 400 -- Spring Dampening
- Tune.FAntiRoll = 400 -- Anti-Roll (Gyro Dampening)
- Tune.FSusLength = 1.9 -- Resting Suspension length (in studs)
- Tune.FPreCompress = .1 -- Pre-compression adds resting length force
- Tune.FExtensionLim = .4 -- Max Extension Travel (in studs)
- Tune.FCompressLim = .2 -- Max Compression Travel (in studs)
- Tune.FSusAngle = 75 -- Suspension Angle (degrees from horizontal)
- Tune.FWsBoneLen = 5 -- Wishbone Length
- Tune.FWsBoneAngle = 2 -- Wishbone angle (degrees from horizontal)
- Tune.FAnchorOffset = { -- Suspension anchor point offset (relative to center of wheel)
- --[[Lateral]] -.4 , -- positive = outward
- --[[Vertical]] -.5 , -- positive = upward
- --[[Forward]] 0 } -- positive = forward
- --Rear Suspension
- Tune.RSusStiffness = 20000 -- Spring Force
- Tune.RSusDamping = 400 -- Spring Dampening
- Tune.RAntiRoll = 400 -- Anti-Roll (Gyro Dampening)
- Tune.RSusLength = 2.1 -- Resting Suspension length (in studs)
- Tune.RPreCompress = .1 -- Pre-compression adds resting length force
- Tune.RExtensionLim = .4 -- Max Extension Travel (in studs)
- Tune.RCompressLim = .2 -- Max Compression Travel (in studs)
- Tune.RSusAngle = 80 -- Suspension Angle (degrees from horizontal)
- Tune.RWsBoneLen = 5 -- Wishbone Length
- Tune.RWsBoneAngle = 2 -- Wishbone angle (degrees from horizontal)
- Tune.RAnchorOffset = { -- Suspension anchor point offset (relative to center of wheel)
- --[[Lateral]] -.4 , -- positive = outward
- --[[Vertical]] -.5 , -- positive = upward
- --[[Forward]] 0 } -- positive = forward
- --Aesthetics (PGS ONLY)
- Tune.SusVisible = false -- Spring Visible
- Tune.WsBVisible = false -- Wishbone Visible
- Tune.SusRadius = .2 -- Suspension Coil Radius
- Tune.SusThickness = .1 -- Suspension Coil Thickness
- Tune.SusColor = "Black" -- Suspension Color [BrickColor]
- Tune.SusCoilCount = 8 -- Suspension Coil Count
- Tune.WsColor = "Black" -- Wishbone Color [BrickColor]
- Tune.WsThickness = .1 -- Wishbone Rod Thickness
- --[[Wheel Stabilizer Gyro]]
- Tune.FGyroDamp = 100 -- Front Wheel Non-Axial Dampening
- Tune.RGyroDamp = 100 -- Rear Wheel Non-Axial Dampening
- --[[Steering]]
- Tune.SteerInner = 70 -- Inner wheel steering angle (in degrees)
- Tune.SteerOuter = 70 -- Outer wheel steering angle (in degrees)
- Tune.SteerSpeed = .5 -- Steering increment per tick (in degrees)
- Tune.ReturnSpeed = .5 -- Steering increment per tick (in degrees)
- Tune.SteerDecay = 320 -- Speed of gradient cutoff (in SPS)
- Tune.MinSteer = 10 -- Minimum steering at max steer decay (in percent)
- Tune.MSteerExp = 1 -- Mouse steering exponential degree
- --Steer Gyro Tuning
- Tune.SteerD = 1200 -- Steering Dampening
- Tune.SteerMaxTorque = 50000 -- Steering Force
- Tune.SteerP = 7000 -- Steering Aggressiveness
- --[[Engine]]
- -- [TORQUE CURVE VISUAL]
- -- https://www.desmos.com/calculator/nap6stpjqf
- -- Use sliders to manipulate values
- -- Edit everything as if your car is NATURALLY aspirated, or as if it lacks a turbo.
- Tune.Horsepower = 250
- Tune.IdleRPM = 700
- Tune.PeakRPM = 7000
- Tune.Redline = 8000
- Tune.EqPoint = 5252
- Tune.PeakSharpness = 20
- Tune.CurveMult = 0.2
- Tune.InclineComp = 1.7 -- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
- --Turbo Settings
- Tune.Aspiration = "Single" --[[
- [Aspiration]
- "Natural" : N/A, Naturally aspirated engine
- "Single" : Single turbocharger
- "Double" : Twin turbocharger ]]
- Tune.Boost = 18 --Max PSI per turbo (If you have two turbos and this is 15, the PSI will be 30)
- Tune.TurboSize = 80 --Turbo size; the bigger it is, the more lag it has.
- Tune.CompressRatio = 9 --The compression ratio (look it up)
- --Misc
- Tune.RevAccel = 150 -- RPM acceleration when clutch is off
- Tune.RevDecay = 75 -- RPM decay when clutch is off
- Tune.RevBounce = 500 -- RPM kickback from redline
- Tune.IdleThrottle = 3 -- Percent throttle at idle
- Tune.ClutchTol = 500 -- Clutch engagement threshold (higher = faster response, lower = more stable RPM)
- --[[Drivetrain]]
- Tune.Config = "RWD" --"FWD" , "RWD" , "AWD"
- --Differential Settings
- Tune.FDiffSlipThres = 50 -- 1 - 100% (Max threshold of applying full lock determined by deviation from avg speed)
- Tune.FDiffLockThres = 0 -- 0 - 100% (0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
- Tune.RDiffSlipThres = 100 -- 1 - 100%
- Tune.RDiffLockThres = 0 -- 0 - 100%
- Tune.CDiffSlipThres = 1 -- 1 - 100% [AWD Only]
- Tune.CDiffLockThres = 0 -- 0 - 100% [AWD Only]
- --Traction Control Settings
- Tune.TCSEnabled = false -- Implements TCS
- Tune.TCSThreshold = 20 -- Slip speed allowed before TCS starts working (in SPS)
- Tune.TCSGradient = 20 -- Slip speed gradient between 0 to max reduction (in SPS)
- Tune.TCSLimit = 10 -- Minimum amount of torque at max reduction (in percent)
- --[[Transmission]]
- Tune.TransModes = {"Semi"} --[[
- [Modes]
- "Auto" : Automatic shifting
- "Semi" : Clutchless manual shifting, dual clutch transmission
- "Manual" : Manual shifting with clutch
- >Include within brackets
- eg: {"Semi"} or {"Auto", "Manual"}
- >First mode is default mode ]]
- --Automatic Settings
- Tune.AutoShiftMode = "RPM" --[[
- [Modes]
- "Speed" : Shifts based on wheel speed
- "RPM" : Shifts based on RPM ]]
- Tune.AutoUpThresh = -200 -- Automatic upshift point (relative to peak RPM, positive = Over-rev)
- Tune.AutoDownThresh = 1400 -- Automatic downshift point (relative to peak RPM, positive = Under-rev)
- Tune.ShiftTime = .25 -- The time delay in which you initiate a shift and the car changes gear
- --Gear Ratios
- Tune.FinalDrive = 3.21 -- [TRANSMISSION CALCULATIONS FOR NERDS]
- Tune.Ratios = { -- SPEED [SPS] = (Wheel diameter(studs) * pi(3.14) * RPM) / (60 * Gear Ratio * Final Drive * Multiplier)
- --[[Reverse]] 5.000 ,-- WHEEL TORQUE = Engine Torque * Gear Ratio * Final Drive * Multiplier
- --[[Neutral]] 0 ,
- --[[ 1 ]] 3.519 ,
- --[[ 2 ]] 2.320 ,
- --[[ 3 ]] 1.700 ,
- --[[ 4 ]] 1.400 ,
- --[[ 5 ]] 0.907 ,
- }
- Tune.FDMult = 1.3 -- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
- --[[Brakes]]
- Tune.ABSEnabled = false -- Implements ABS
- Tune.ABSThreshold = 20 -- Slip speed allowed before ABS starts working (in SPS)
- Tune.FBrakeForce = 1200 -- Front brake force
- Tune.RBrakeForce = 1600 -- Rear brake force
- Tune.PBrakeForce = 6000 -- Handbrake force
- Tune.FLgcyBForce = 15000 -- Front brake force [PGS OFF]
- Tune.RLgcyBForce = 10000 -- Rear brake force [PGS OFF]
- Tune.LgcyPBForce = 25000 -- Handbrake force [PGS OFF]
- --[[[Default Controls]]
- --Peripheral Deadzones
- Tune.Peripherals = {
- MSteerWidth = 67 , -- Mouse steering control width (0 - 100% of screen width)
- MSteerDZone = 10 , -- Mouse steering deadzone (0 - 100%)
- ControlLDZone = 5 , -- Controller steering L-deadzone (0 - 100%)
- ControlRDZone = 5 , -- Controller steering R-deadzone (0 - 100%)
- }
- --Control Mapping
- Tune.Controls = {
- --Keyboard Controls
- --Mode Toggles
- ToggleTCS = Enum.KeyCode.T ,
- ToggleABS = Enum.KeyCode.Y ,
- ToggleTransMode = Enum.KeyCode.M ,
- ToggleMouseDrive = Enum.KeyCode.R ,
- --Primary Controls
- Throttle = Enum.KeyCode.Up ,
- Brake = Enum.KeyCode.Down ,
- SteerLeft = Enum.KeyCode.Left ,
- SteerRight = Enum.KeyCode.Right ,
- --Secondary Controls
- Throttle2 = Enum.KeyCode.W ,
- Brake2 = Enum.KeyCode.S ,
- SteerLeft2 = Enum.KeyCode.A ,
- SteerRight2 = Enum.KeyCode.D ,
- --Manual Transmission
- ShiftUp = Enum.KeyCode.E ,
- ShiftDown = Enum.KeyCode.Q ,
- Clutch = Enum.KeyCode.LeftShift ,
- --Handbrake
- PBrake = Enum.KeyCode.LeftShift ,
- --Mouse Controls
- MouseThrottle = Enum.UserInputType.MouseButton1 ,
- MouseBrake = Enum.UserInputType.MouseButton2 ,
- MouseClutch = Enum.KeyCode.W ,
- MouseShiftUp = Enum.KeyCode.E ,
- MouseShiftDown = Enum.KeyCode.Q ,
- MousePBrake = Enum.KeyCode.LeftShift ,
- --Controller Mapping
- ContlrThrottle = Enum.KeyCode.ButtonR2 ,
- ContlrBrake = Enum.KeyCode.ButtonL2 ,
- ContlrSteer = Enum.KeyCode.Thumbstick1 ,
- ContlrShiftUp = Enum.KeyCode.ButtonY ,
- ContlrShiftDown = Enum.KeyCode.ButtonX ,
- ContlrClutch = Enum.KeyCode.ButtonR1 ,
- ContlrPBrake = Enum.KeyCode.ButtonL1 ,
- ContlrToggleTMode = Enum.KeyCode.ButtonB ,
- ContlrToggleTCS = Enum.KeyCode.DPadDown ,
- ContlrToggleABS = Enum.KeyCode.ButtonL3 ,
- }
- --[[Standardized Values: Don't touch unless needed]]
- --[WEIGHT // Cubic stud : pounds ratio]
- Tune.WeightScaling = 1/50 --Default = 1/50 (1 cubic stud = 50 lbs)
- Tune.LegacyScaling = 1/10 --Default = 1/10 (1 cubic stud = 10 lbs) [PGS OFF]
- --[ENGINE // Caching]
- Tune.CurveCache = true --Default = true (Caches the engine and boost curves)
- Tune.CacheInc = 100 --Default = 100 (How many points the curve will have.)
- --[[Examples: 1 = every RPM increment [will freeze your computer at low settings like this],
- 100 = default and recommended,
- 1000 or more = death ]]
- return Tune
- end))
- Script66.Name = "Initialize"
- Script66.Parent = ModuleScript65
- table.insert(cors,sandbox(Script66,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare
- ]]
- --[[START]]
- _BuildVersion = require(script.Parent.README)
- --[[Weld functions]]
- local JS = game:GetService("JointsService")
- local PGS_ON = workspace:PGSIsEnabled()
- function MakeWeld(x,y,type,s)
- if type==nil then type="Weld" end
- local W=Instance.new(type,JS)
- W.Part0=x W.Part1=y
- W.C0=x.CFrame:inverse()*x.CFrame
- W.C1=y.CFrame:inverse()*x.CFrame
- if type=="Motor" and s~=nil then
- W.MaxVelocity=s
- end
- return W
- end
- function ModelWeld(a,b)
- if a:IsA("BasePart") then
- MakeWeld(b,a,"Weld")
- elseif a:IsA("Model") then
- for i,v in pairs(a:GetChildren()) do
- ModelWeld(v,b)
- end
- end
- end
- function UnAnchor(a)
- if a:IsA("BasePart") then a.Anchored=false end for i,v in pairs(a:GetChildren()) do UnAnchor(v) end
- end
- --[[Initialize]]
- script.Parent:WaitForChild("A-Chassis Interface")
- script.Parent:WaitForChild("Plugins")
- script.Parent:WaitForChild("README")
- local car=script.Parent.Parent
- local _Tune=require(script.Parent)
- wait(_Tune.LoadDelay)
- --Weight Scaling
- local weightScaling = _Tune.WeightScaling
- if not workspace:PGSIsEnabled() then
- weightScaling = _Tune.LegacyScaling
- end
- local Drive=car.Wheels:GetChildren()
- --Remove Existing Mass
- function DReduce(p)
- for i,v in pairs(p:GetChildren())do
- if v:IsA("BasePart") then
- if v.CustomPhysicalProperties == nil then v.CustomPhysicalProperties = PhysicalProperties.new(v.Material) end
- v.CustomPhysicalProperties = PhysicalProperties.new(
- 0,
- v.CustomPhysicalProperties.Friction,
- v.CustomPhysicalProperties.Elasticity,
- v.CustomPhysicalProperties.FrictionWeight,
- v.CustomPhysicalProperties.ElasticityWeight
- )
- end
- DReduce(v)
- end
- end
- DReduce(car)
- --[[Wheel Configuration]]
- --Store Reference Orientation Function
- function getParts(model,t,a)
- for i,v in pairs(model:GetChildren()) do
- if v:IsA("BasePart") then table.insert(t,{v,a.CFrame:toObjectSpace(v.CFrame)})
- elseif v:IsA("Model") then getParts(v,t,a)
- end
- end
- end
- --PGS/Legacy
- local fDensity = _Tune.FWheelDensity
- local rDensity = _Tune.RWheelDensity
- if not PGS_ON then
- fDensity = _Tune.FWLgcyDensity
- rDensity = _Tune.RWLgcyDensity
- end
- local fDistX=_Tune.FWsBoneLen*math.cos(math.rad(_Tune.FWsBoneAngle))
- local fDistY=_Tune.FWsBoneLen*math.sin(math.rad(_Tune.FWsBoneAngle))
- local rDistX=_Tune.RWsBoneLen*math.cos(math.rad(_Tune.RWsBoneAngle))
- local rDistY=_Tune.RWsBoneLen*math.sin(math.rad(_Tune.RWsBoneAngle))
- local fSLX=_Tune.FSusLength*math.cos(math.rad(_Tune.FSusAngle))
- local fSLY=_Tune.FSusLength*math.sin(math.rad(_Tune.FSusAngle))
- local rSLX=_Tune.RSusLength*math.cos(math.rad(_Tune.RSusAngle))
- local rSLY=_Tune.RSusLength*math.sin(math.rad(_Tune.RSusAngle))
- for _,v in pairs(Drive) do
- --Apply Wheel Density
- if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
- if v:IsA("BasePart") then
- if v.CustomPhysicalProperties == nil then v.CustomPhysicalProperties = PhysicalProperties.new(v.Material) end
- v.CustomPhysicalProperties = PhysicalProperties.new(
- fDensity,
- v.CustomPhysicalProperties.Friction,
- v.CustomPhysicalProperties.Elasticity,
- v.CustomPhysicalProperties.FrictionWeight,
- v.CustomPhysicalProperties.ElasticityWeight
- )
- end
- else
- if v:IsA("BasePart") then
- if v.CustomPhysicalProperties == nil then v.CustomPhysicalProperties = PhysicalProperties.new(v.Material) end
- v.CustomPhysicalProperties = PhysicalProperties.new(
- rDensity,
- v.CustomPhysicalProperties.Friction,
- v.CustomPhysicalProperties.Elasticity,
- v.CustomPhysicalProperties.FrictionWeight,
- v.CustomPhysicalProperties.ElasticityWeight
- )
- end
- end
- --Resurface Wheels
- for _,a in pairs({"Top","Bottom","Left","Right","Front","Back"}) do
- v[a.."Surface"]=Enum.SurfaceType.SmoothNoOutlines
- end
- --Store Axle-Anchored/Suspension-Anchored Part Orientation
- local WParts = {}
- local tPos = v.Position-car.DriveSeat.Position
- if v.Name=="FL" or v.Name=="RL" then
- v.CFrame = car.DriveSeat.CFrame*CFrame.Angles(math.rad(90),0,math.rad(90))
- else
- v.CFrame = car.DriveSeat.CFrame*CFrame.Angles(math.rad(90),0,math.rad(-90))
- end
- v.CFrame = v.CFrame+tPos
- if v:FindFirstChild("Parts")~=nil then
- getParts(v.Parts,WParts,v)
- end
- if v:FindFirstChild("Fixed")~=nil then
- getParts(v.Fixed,WParts,v)
- end
- --Align Wheels
- if v.Name=="FL" or v.Name=="FR" then
- v.CFrame = v.CFrame*CFrame.Angles(math.rad(_Tune.FCamber),0,0)
- if v.Name=="FL" then
- v.CFrame = v.CFrame*CFrame.Angles(0,0,math.rad(_Tune.FToe))
- else
- v.CFrame = v.CFrame*CFrame.Angles(0,0,math.rad(-_Tune.FToe))
- end
- elseif v.Name=="RL" or v.Name=="RR" then
- v.CFrame = v.CFrame*CFrame.Angles(math.rad(_Tune.RCamber),0,0)
- if v.Name=="RL" then
- v.CFrame = v.CFrame*CFrame.Angles(0,0,math.rad(_Tune.RToe))
- else
- v.CFrame = v.CFrame*CFrame.Angles(0,0,math.rad(-_Tune.RToe))
- end
- end
- --Re-orient Axle-Anchored/Suspension-Anchored Parts
- for _,a in pairs(WParts) do
- a[1].CFrame=v.CFrame:toWorldSpace(a[2])
- end
- --[[Chassis Assembly]]
- --Create Steering Axle
- local arm=Instance.new("Part",v)
- arm.Name="Arm"
- arm.Anchored=true
- arm.CanCollide=false
- arm.FormFactor=Enum.FormFactor.Custom
- arm.Size=Vector3.new(_Tune.AxleSize,_Tune.AxleSize,_Tune.AxleSize)
- arm.CFrame=(v.CFrame*CFrame.new(0,_Tune.StAxisOffset,0))*CFrame.Angles(-math.pi/2,-math.pi/2,0)
- arm.CustomPhysicalProperties = PhysicalProperties.new(_Tune.AxleDensity,0,0,100,100)
- arm.TopSurface=Enum.SurfaceType.Smooth
- arm.BottomSurface=Enum.SurfaceType.Smooth
- arm.Transparency=1
- --Create Wheel Spindle
- local base=arm:Clone()
- base.Parent=v
- base.Name="Base"
- base.CFrame=base.CFrame*CFrame.new(0,_Tune.AxleSize,0)
- base.BottomSurface=Enum.SurfaceType.Hinge
- --Create Steering Anchor
- local axle=arm:Clone()
- axle.Parent=v
- axle.Name="Axle"
- axle.CFrame=CFrame.new(v.Position-((v.CFrame*CFrame.Angles(math.pi/2,0,0)).lookVector*((v.Size.x/2)+(axle.Size.x/2))),v.Position)*CFrame.Angles(0,math.pi,0)
- axle.BackSurface=Enum.SurfaceType.Hinge
- if v.Name=="F" or v.Name=="R" then
- local axle2=arm:Clone()
- axle2.Parent=v
- axle2.Name="Axle"
- axle2.CFrame=CFrame.new(v.Position+((v.CFrame*CFrame.Angles(math.pi/2,0,0)).lookVector*((v.Size.x/2)+(axle2.Size.x/2))),v.Position)*CFrame.Angles(0,math.pi,0)
- axle2.BackSurface=Enum.SurfaceType.Hinge
- MakeWeld(arm,axle2)
- end
- --Create Suspension
- if PGS_ON and _Tune.SusEnabled then
- local sa=arm:Clone()
- sa.Parent=v
- sa.Name="#SA"
- if v.Name == "FL" or v.Name=="FR" or v.Name =="F" then
- local aOff = _Tune.FAnchorOffset
- sa.CFrame=v.CFrame*CFrame.new(_Tune.AxleSize/2,-fDistX,-fDistY)*CFrame.new(aOff[3],aOff[1],-aOff[2])*CFrame.Angles(-math.pi/2,-math.pi/2,0)
- else
- local aOff = _Tune.RAnchorOffset
- sa.CFrame=v.CFrame*CFrame.new(_Tune.AxleSize/2,-rDistX,-rDistY)*CFrame.new(aOff[3],aOff[1],-aOff[2])*CFrame.Angles(-math.pi/2,-math.pi/2,0)
- end
- local sb=sa:Clone()
- sb.Parent=v
- sb.Name="#SB"
- sb.CFrame=sa.CFrame*CFrame.new(0,0,_Tune.AxleSize)
- sb.FrontSurface=Enum.SurfaceType.Hinge
- local g = Instance.new("BodyGyro",sb)
- g.Name = "Stabilizer"
- g.MaxTorque = Vector3.new(0,0,1)
- g.P = 0
- local sf1 = Instance.new("Attachment",sa)
- sf1.Name = "SAtt"
- local sf2 = sf1:Clone()
- sf2.Parent = sb
- if v.Name == "FL" or v.Name == "FR" or v.Name == "F" then
- sf1.Position = Vector3.new(fDistX-fSLX,-fDistY+fSLY,_Tune.AxleSize/2)
- sf2.Position = Vector3.new(fDistX,-fDistY,-_Tune.AxleSize/2)
- elseif v.Name == "RL" or v.Name=="RR" or v.Name == "R" then
- sf1.Position = Vector3.new(rDistX-rSLX,-rDistY+rSLY,_Tune.AxleSize/2)
- sf2.Position = Vector3.new(rDistX,-rDistY,-_Tune.AxleSize/2)
- end
- sb:MakeJoints()
- local sp = Instance.new("SpringConstraint",v)
- sp.Name = "Spring"
- sp.Attachment0 = sf1
- sp.Attachment1 = sf2
- sp.LimitsEnabled = true
- sp.Visible=_Tune.SusVisible
- sp.Radius=_Tune.SusRadius
- sp.Thickness=_Tune.SusThickness
- sp.Color=BrickColor.new(_Tune.SusColor)
- sp.Coils=_Tune.SusCoilCount
- if v.Name == "FL" or v.Name=="FR" or v.Name =="F" then
- g.D = _Tune.FAntiRoll
- sp.Damping = _Tune.FSusDamping
- sp.Stiffness = _Tune.FSusStiffness
- sp.FreeLength = _Tune.FSusLength+_Tune.FPreCompress
- sp.MaxLength = _Tune.FSusLength+_Tune.FExtensionLim
- sp.MinLength = _Tune.FSusLength-_Tune.FCompressLim
- else
- g.D = _Tune.RAntiRoll
- sp.Damping = _Tune.RSusDamping
- sp.Stiffness = _Tune.RSusStiffness
- sp.FreeLength = _Tune.RSusLength+_Tune.RPreCompress
- sp.MaxLength = _Tune.RSusLength+_Tune.RExtensionLim
- sp.MinLength = _Tune.RSusLength-_Tune.RCompressLim
- end
- MakeWeld(car.DriveSeat,sa)
- MakeWeld(sb,base)
- else
- MakeWeld(car.DriveSeat,base)
- end
- --Lock Rear Steering Axle
- if v.Name == "RL" or v.Name == "RR" or v.Name=="R" then
- MakeWeld(base,axle)
- end
- --Weld Assembly
- if v.Parent.Name == "RL" or v.Parent.Name == "RR" or v.Name=="R" then
- MakeWeld(car.DriveSeat,arm)
- end
- MakeWeld(arm,axle)
- arm:MakeJoints()
- axle:MakeJoints()
- --Weld Miscelaneous Parts
- if v:FindFirstChild("SuspensionFixed")~=nil then
- ModelWeld(v.SuspensionFixed,car.DriveSeat)
- end
- if v:FindFirstChild("WheelFixed")~=nil then
- ModelWeld(v.WheelFixed,axle)
- end
- if v:FindFirstChild("Fixed")~=nil then
- ModelWeld(v.Fixed,arm)
- end
- --Weld Wheel Parts
- if v:FindFirstChild("Parts")~=nil then
- ModelWeld(v.Parts,v)
- end
- --Add Steering Gyro
- if v:FindFirstChild("Steer") then
- v:FindFirstChild("Steer"):Destroy()
- end
- if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
- local steer=Instance.new("BodyGyro",arm)
- steer.Name="Steer"
- steer.P=_Tune.SteerP
- steer.D=_Tune.SteerD
- steer.MaxTorque=Vector3.new(0,_Tune.SteerMaxTorque,0)
- steer.cframe=v.CFrame*CFrame.Angles(0,-math.pi/2,0)
- end
- --Add Stabilization Gyro
- local gyro=Instance.new("BodyGyro",v)
- gyro.Name="Stabilizer"
- gyro.MaxTorque=Vector3.new(1,0,1)
- gyro.P=0
- if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
- gyro.D=_Tune.FGyroDamp
- else
- gyro.D=_Tune.RGyroDamp
- end
- --Add Rotational BodyMover
- local AV=Instance.new("BodyAngularVelocity",v)
- AV.Name="#AV"
- AV.angularvelocity=Vector3.new(0,0,0)
- AV.maxTorque=Vector3.new(_Tune.PBrakeForce,0,_Tune.PBrakeForce)
- AV.P=1e9
- end
- --[[Vehicle Weight]]
- --Determine Current Mass
- local mass=0
- function getMass(p)
- for i,v in pairs(p:GetChildren())do
- if v:IsA("BasePart") then
- mass=mass+v:GetMass()
- end
- getMass(v)
- end
- end
- getMass(car)
- --Apply Vehicle Weight
- if mass<_Tune.Weight*weightScaling then
- --Calculate Weight Distribution
- local centerF = Vector3.new()
- local centerR = Vector3.new()
- local countF = 0
- local countR = 0
- for i,v in pairs(Drive) do
- if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
- centerF = centerF+v.CFrame.p
- countF = countF+1
- else
- centerR = centerR+v.CFrame.p
- countR = countR+1
- end
- end
- centerF = centerF/countF
- centerR = centerR/countR
- local center = centerR:Lerp(centerF, _Tune.WeightDist/100)
- --Create Weight Brick
- local weightB = Instance.new("Part",car.Body)
- weightB.Name = "#Weight"
- weightB.Anchored = true
- weightB.CanCollide = false
- weightB.BrickColor = BrickColor.new("Really black")
- weightB.TopSurface = Enum.SurfaceType.Smooth
- weightB.BottomSurface = Enum.SurfaceType.Smooth
- if _Tune.WBVisible then
- weightB.Transparency = .75
- else
- weightB.Transparency = 1
- end
- weightB.Size = Vector3.new(_Tune.WeightBSize[1],_Tune.WeightBSize[2],_Tune.WeightBSize[3])
- weightB.CustomPhysicalProperties = PhysicalProperties.new(((_Tune.Weight*weightScaling)-mass)/(weightB.Size.x*weightB.Size.y*weightB.Size.z),0,0,0,0)
- weightB.CFrame=(car.DriveSeat.CFrame-car.DriveSeat.Position+center)*CFrame.new(0,_Tune.CGHeight,0)
- else
- --Existing Weight Is Too Massive
- warn( "\n\t [AC".._BuildVersion.."]: Mass too high for specified weight."
- .."\n\t Target Mass:\t"..(math.ceil(_Tune.Weight*weightScaling*100)/100)
- .."\n\t Current Mass:\t"..(math.ceil(mass*100)/100)
- .."\n\t Reduce part size or axle density to achieve desired weight.")
- end
- local flipG = Instance.new("BodyGyro",car.DriveSeat)
- flipG.Name = "Flip"
- flipG.D = 0
- flipG.MaxTorque = Vector3.new(0,0,0)
- flipG.P = 0
- --[[Finalize Chassis]]
- --Misc Weld
- wait()
- for i,v in pairs(script:GetChildren()) do
- if v:IsA("ModuleScript") then
- require(v)
- end
- end
- --Weld Body
- wait()
- ModelWeld(car.Body,car.DriveSeat)
- --Unanchor
- wait()
- UnAnchor(car)
- --[[Manage Plugins]]
- script.Parent["A-Chassis Interface"].Car.Value=car
- for i,v in pairs(script.Parent.Plugins:GetChildren()) do
- for _,a in pairs(v:GetChildren()) do
- if a:IsA("RemoteEvent") or a:IsA("RemoteFunction") then
- a.Parent=car
- for _,b in pairs(a:GetChildren()) do
- if b:IsA("Script") then b.Disabled=false end
- end
- end
- end
- v.Parent = script.Parent["A-Chassis Interface"]
- end
- script.Parent.Plugins:Destroy()
- --[[Remove Character Weight]]
- --Get Seats
- local Seats = {}
- function getSeats(p)
- for i,v in pairs(p:GetChildren()) do
- if v:IsA("VehicleSeat") or v:IsA("Seat") then
- local seat = {}
- seat.Seat = v
- seat.Parts = {}
- table.insert(Seats,seat)
- end
- getSeats(v)
- end
- end
- getSeats(car)
- --Store Physical Properties/Remove Mass Function
- function getPProperties(mod,t)
- for i,v in pairs(mod:GetChildren()) do
- if v:IsA("BasePart") then
- if v.CustomPhysicalProperties == nil then v.CustomPhysicalProperties = PhysicalProperties.new(v.Material) end
- table.insert(t,{v,v.CustomPhysicalProperties})
- v.CustomPhysicalProperties = PhysicalProperties.new(
- 0,
- v.CustomPhysicalProperties.Friction,
- v.CustomPhysicalProperties.Elasticity,
- v.CustomPhysicalProperties.FrictionWeight,
- v.CustomPhysicalProperties.ElasticityWeight
- )
- end
- getPProperties(v,t)
- end
- end
- --Apply Seat Handler
- for i,v in pairs(Seats) do
- --Sit Handler
- v.Seat.ChildAdded:connect(function(child)
- if child.Name=="SeatWeld" and child:IsA("Weld") and child.Part1~=nil and child.Part1.Parent ~= workspace and not child.Part1.Parent:IsDescendantOf(car) then
- v.Parts = {}
- getPProperties(child.Part1.Parent,v.Parts)
- end
- end)
- --Leave Handler
- v.Seat.ChildRemoved:connect(function(child)
- if child.Name=="SeatWeld" and child:IsA("Weld") then
- for i,v in pairs(v.Parts) do
- if v[1]~=nil and v[2]~=nil and v[1]:IsDescendantOf(workspace) then
- v[1].CustomPhysicalProperties = v[2]
- end
- end
- v.Parts = {}
- end
- end)
- end
- --[[Driver Handling]]
- --Driver Sit
- car.DriveSeat.ChildAdded:connect(function(child)
- if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
- --Distribute Client Interface
- local p=game.Players:GetPlayerFromCharacter(child.Part1.Parent)
- car.DriveSeat:SetNetworkOwner(p)
- local g=script.Parent["A-Chassis Interface"]:Clone()
- g.Parent=p.PlayerGui
- end
- end)
- --Driver Leave
- car.DriveSeat.ChildRemoved:connect(function(child)
- if child.Name=="SeatWeld" and child:IsA("Weld") then
- --Remove Flip Force
- if car.DriveSeat:FindFirstChild("Flip")~=nil then
- car.DriveSeat.Flip.MaxTorque = Vector3.new()
- end
- --Remove Wheel Force
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v:FindFirstChild("#AV")~=nil then
- if v["#AV"]:IsA("BodyAngularVelocity") then
- if v["#AV"].AngularVelocity.Magnitude>0 then
- v["#AV"].AngularVelocity = Vector3.new()
- v["#AV"].MaxTorque = Vector3.new()
- end
- else
- if v["#AV"].AngularVelocity>0 then
- v["#AV"].AngularVelocity = 0
- v["#AV"].MotorMaxTorque = 0
- end
- end
- end
- end
- end
- end)
- --[END]]
- end))
- ModuleScript67.Name = "MiscWeld"
- ModuleScript67.Parent = Script66
- table.insert(cors,sandbox(ModuleScript67,function()
- local MiscWeld = {}
- function MakeWeld(x,y,type,s)
- if type==nil then type="Weld" end
- local W=Instance.new(type)
- W.Part0=x W.Part1=y
- W.C0=x.CFrame:inverse()*x.CFrame
- W.C1=y.CFrame:inverse()*x.CFrame
- W.Parent=x
- if type=="Motor" and s~=nil then
- W.MaxVelocity=s
- end
- return W
- end
- function ModelWeld(a,b)
- if a:IsA("BasePart") then
- MakeWeld(b,a,"Weld")
- elseif a:IsA("Model") then
- for i,v in pairs(a:GetChildren()) do
- ModelWeld(v,b)
- end
- end
- end
- car = script.Parent.Parent.Parent
- misc = car:WaitForChild("Misc")
- ---------------------------
- --[[
- --Main anchor point is the DriveSeat <car.DriveSeat>
- Usage:
- MakeWeld(Part1,Part2,WeldType*,MotorVelocity**) *default is "Weld" **Applies to Motor welds only
- ModelWeld(Model,MainPart)
- Example:
- MakeWeld(car.DriveSeat,misc.PassengerSeat)
- MakeWeld(car.DriveSeat,misc.SteeringWheel,"Motor",.2)
- ModelWeld(car.DriveSeat,misc.Door)
- ]]
- --Weld stuff here
- car.DriveSeat.ChildAdded:connect(function(child)
- if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
- child.C0=CFrame.new(0,-.5,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0)*CFrame.Angles(math.rad(13),0,0)
- end
- end)
- ---------------------------
- return MiscWeld
- end))
- ModuleScript68.Name = "README"
- ModuleScript68.Parent = ModuleScript65
- table.insert(cors,sandbox(ModuleScript68,function()
- --[[ <<DO NOT DELETE THIS MODULE>>
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/ Build 6.52S2
- SecondLogic @ Inspare
- >>Manual
- Basically...everything you can and would ever want to touch is in the tuning module. EVERYTHING
- Torque Curve Tune Visualizer:
- https://www.desmos.com/calculator/2uo3hqwdhf
- Basic Tips:
- --Installation
- >Everything is built-in (assembly, welding, suspension, gyros), so all you have to worry about is placing the wheels and the seat.
- >Body parts go in the "Body" section.
- >Wheel parts such as 3D rims and brake disks go in the "Parts" section of the wheel.
- >Suspension-Anchored parts such as suspension wishbones and linkages go in the "SuspensionFixed" section.
- >Axle-Anchored parts such as calipers go in the "WheelFixed" section.
- >You can add or remove wheels. To add a wheel, simply copy one of the wheels and make sure it's named one of the following: "F","FL","FR","R","RL","RR".
- >Wheels need to be aligned with the axes of the seat. Don't rotate the seat relative to the wheels as it may cause welding problems.
- >All wheel offsets are applied in the tuning module. Do NOT manually add offset to the wheels. Steering axis is centered on the wheel part by default.
- >Seat offset can be adjusted in the "MiscWeld" module under "Initialize".
- >Use the "Misc" section for scripted/moving parts and apply welding using the "MiscWeld" module under "Initialize".
- --Tuning
- >Reduce weight(density) if setup is lacking torque. Increase density if setup has too much torque.
- >Add downforce manually if setup is lacking grip or use a downforce plugin.
- >Dialing in ratios used in real cars is an easy way to have a realisticly tuned transmission.
- >Modifying the "Drive" script may affect the integrity of the system.
- >Custom scripts should be put in the "Plugins" folder. Using plugins made by other users is encouraged.
- >When writing custom plugins, you can reference the values within the "Values" folder inside the A-Chassis Interface.
- >It is a good practice to make plugins compatible with any setup and providing a usage manual if a plugin is released.
- >You can remove/change the default plugins that come with the kit. The drive system will still work perfectly with or without them.
- --Updates
- >To update, simply just replace the entire "A-Chassis Tune" module of an existing car with a newer version of the module.
- >You may want to copy the tune values and plugins from the old module, but dont simply overwrite the tune module as new values may be added.
- >>Changelog
- [6/10/17 : Build 6.52S2] - Fixed Initialization Orientation
- [Fixed Initialization Rotation]
- -Fixed initialization rotation glitch
- [6/8/17 : Build 6.51S2] - More Suspension Tuning
- [Re-Added Suspension Values]
- -New suspension tuning is now the same as the previous suspension
- -AntiRoll and PreCompress are now added to suspension tuning
- [Fixes]
- -Fixed Rev-Boucing: Car does not stall anymore when rev-bouncing
- -Fixed Stock Gauges not showing the the right transmission mode / pbrake mode
- [6/8/17 : Build 6.5S2] - Full Suspension Change and Optimization
- [New Suspension System]
- -Suspension Linkages are now made using axles instead of constraints
- -Better overall stability and ease of tuning
- -SpringConstraint Tuning has been changed in the tune to more meaningful values
- -Added AntiRoll system using gyro dampening on the suspension linkages
- -AxleSize affects the size of suspension linkage parts
- [Major Performance Optimizations]
- -Torque output calculations are now cached (pre-calculated and stored) to reduce runtime cpu load
- -Constant multipliers for several lines have been simplified and cached
- -Split Engine function into RPM calculation and Power Output
- -Split runtime loops into different cycle rates
- -RPM calculation, Steering, and External Value updating now run on 60 FPS max (from 30) for smoother steering and RPM tracking.
- -Engine Output and Flip now run on 15 FPS max (from 30) to reduce runtime cpu load
- -Overall percieved smoothness is now TWICE AS MUCH but runtime cpu load has actually been HALVED!!!
- [5/23/17 : Build 6.43S] - STUFF
- [Added Tune Values]
- -Added WBVisible to set weight brick visibility
- [Independent Camera Handling]
- -Separated camera handling from Drive script
- -Mouse camera is now handled by a plugin
- -Custom camera plugin support is now easier
- [Stock Plugins Update]
- -Added Dynamic Friction as a stock plugin
- -Dynamic friction can be tuned within the Simulated script
- -Updated default sound plugin
- -Added mouse-steer camera plugin
- [Code Fixes]
- -Fixed missing operation within torque curve
- -Slight optimizations during runtime
- [5/20/17 : Build 6.42S] - ABS and PGS Standardization
- [Added ABS]
- -Modulates brakes when locking
- -Added threshold value for slip allowance
- -Added control toggles for ABS
- -Added ABS indicator and control mapping to stock UI
- [Split Density Tuning for PGS and Legacy]
- -Added standardized weight scaling values to tune
- -Default weight tuning set to 1 cubic stud : 50 lbs for PGS
- -Default weight tuning set to 1 cubic stud : 10 lbs for Legacy
- -Split front and rear density to PGS and Legacy
- -Split brake force tuning to PGS and Legacy
- [Added Tune Values]
- -TCSEnabled: Sets whether or not the car will have TCS
- -ABSEnabled: Sets whether or not the car will have ABS
- -LoadDelay: Sets a delay time before initializing car
- [Bug Fix: Axle Size Initialization]
- -Car applies proper axle size
- -Added AxleDensity value which sets axle density
- -Fixed miscelaneous wheel part welding
- [Added Changable Stock Gauge Units]
- -Added units system for stock gauges
- -Added default units: MPH [1 stud : 10 in], KP/H [1 stud : 10 in], SPS
- -Custom units can be added or removed
- -Click on speed to change between units
- -Moved Controls button to middle for better visibility
- [Code Documentation]
- -Extensive documentation and commenting within scripts for better readability
- -Improved warning message for oversized mass condition
- [5/4/17 : Build 6.41S] - Standardized Weight
- [Added automatic weight system]
- -Added tune values for car weight, center of gravity, and wheel density
- -Weight standard: 100 lbs = 1 cubic stud mass
- -Applies weight at initialization
- [Scaled Down Power Delivery]
- -Horsepower output now at 1/10 because of lighter weight standard
- -Added FDMult value in transmission for gear ratio scaling without having to change Final Drive (useful for low HP tunes)
- [Optimized value for Anchor Offset]
- -Changed "SusOffset" to "Anchor Offset"
- -New anchor offset is now based off of wishbone length and wishbone angle.
- -Anchor offset now labelled for forward, lateral, and vertical offsets.
- [Split some tune values to F/R]
- -Suspension values for front and rear are now independently tunable.
- -Front and rear brakes can be tuned independently.
- [Tune Module Housekeeping]
- -Rearranged and documented several of the values within the tune module.
- -Removed GyroP and GyroMaxTorque for simplicity. Dampening values are still present.
- -Changed some decimal values to percent values
- [1/2/17 : Build 6.40S] - Suspension
- "S" Build number identifies suspension build
- [Added suspension system for PGS Physics Solver]
- -Suspension uses ROBLOX constraints and is automatically generated with the chassis
- -Added tune values for suspension
- -Temporarily removed caster tuning
- [Steering Fix]
- -Added tune value 'ReturnSpeed' which determines how fast wheels return to default orientation
- [New Torque Curve Equation]
- -New equation gives more control over the shape of the torque curve
- -Engine values have been replaced with the new equation's variables
- -Added link to desmos graph for the torque curve visualization
- [10/31/16 : Build 6.33] - Semi-Automatic
- [Added semi-automatic transmission mode]
- -'TransModes' now accepts "Semi" value for semi-automatic.
- -Updated AC6_Stock_Gauges to include semi-automatic mode.
- [Fixed disengaging p-brake]
- -P-Brake now remains engaged if player gets into then vehicle.
- [Fixed FE Support for AC6_Stock_Sound]
- -Sounds should now work properly with Filtering Enabled.
- [8/5/16 : Build 6.32] - Differential System
- [Implemented differential system]
- -Differential controls torque distibution between wheels that are spinning at different rates
- -Added tune values 'FDiffSlipThres', 'FDiffLockThres', 'RDiffSlipThres', 'RDiffLockThres', 'CDiffSlipThres', and 'CDiffLockThres'.
- -'DiffSlipThres' determine the threshold of the speed difference between the wheels. Full lock applies at max threshold.
- -A lower slip threshold value will make the diff more aggressive.
- -'DiffLockThres' determines the bias of the differential.
- -A lock threshold value more than 50 puts more torque into the slipping wheel (moving towards an open diff).
- -A lock threshold value less than 50 puts more torque into the grounded wheel (moving towards a locked diff).
- [Fixed multiple wheel support]
- -The chassis can now use more than just the default 4 set of wheels. Just copy an existing wheel and place accordingly.
- -Differential works with auxiliary wheels.
- [7/13/16 : Build 6.31] - Peripheral Settings
- [Added peripheral adjustment values]
- -Moved controller and mouse deadzone values to the "Controls" section of the tune.
- -Split controller deadzone into left and right input.
- -Moved mouse control width to "Conrols" secton. This value now operates based off of % of screed width.
- [Updated stock Controls Module]
- -Added sliders for controller and mouse deadzone values.
- -Added slider for mouse control width.
- [6/15/16 : Build 6.3] - Motercisly
- [Better motorcycle system support]
- -Added wheel configurations "F" and "R" for single wheel settup.
- -"F" and "R" wheels will have axle parts on both sides for better balance.
- -These wheel configurations will ignore outor rotation value and will rotated based off of the inner rotation value only.
- -Camber and Toe cannot be applied to these wheel configurations. Caster will still be applied as normal.
- [Bug fixes]
- -Caster now applies after wheel part rotations so wheel parts dont rotate with caster.
- -Fixed Clutch re-engaging automatically when shifting out of neutral.
- [6/4/16 : Build 6.21] - AC6 Official Public Kit Release
- [Plugin FilteringEnabled compatability made easier]
- -System now detects if there is a RemoteEvent or RemoteFunction inside a plugin. These will be parented directly under the car.
- -The RemoteEvent/RemoteFunction needs to be a direct child of the plugin for it to be detected.
- -Scripts inside the RemoteEvent/RemoteFunction should be disabled. They will be enabled after initialization.
- -Be careful as this system is suceptible to name collisions. Name your RemoteEvents/RemoteFunctions uniquely.
- -Stock AC6 Sound plugin is now FE compatible.
- [Controls Panel now a plugin instead of integrated]
- -Separated controls panel from Drive script. The controls panel is now a plugin.
- -The "Controls" folder appears inside the interface on Drive startup. Use this folder to reference button mapping values for custom controls plugins.
- -"ControlsOpen" value added. This is a safety toggle when changing control values. This value can be manipulated by plugins.
- [New tune values]
- -Added 'AutoFlip' tune value. This determines if the car automatically flips itself over when upside down.
- -Added 'StAxisOffset' tune value. This offsets the center of the steering axis. Positive value = offset outward.
- -Added 'SteerD', 'SteerMaxTorque', and 'SteerP' values which set the steering axle gyro properties.
- [MiscWeld streamlining]
- -Added "Misc" section to the main sections. This should contain scripted/moving parts.
- -Parts in this section are NOT WELDED AUTOMATICALLY. Use the "MiscWeld" module to weld these parts. The "Misc" section is pre-referenced as 'misc'.
- [Bug fixes]
- -Fixed flip gyro not resetting when gyro is active and driver leaves car.
- -Fixed issue with switching transmission modes.
- --]]
- return "6.52S2"
- end))
- ScreenGui69.Name = "A-Chassis Interface"
- ScreenGui69.Parent = ModuleScript65
- ObjectValue70.Name = "Car"
- ObjectValue70.Parent = ScreenGui69
- BoolValue71.Name = "IsOn"
- BoolValue71.Parent = ScreenGui69
- BoolValue72.Name = "ControlsOpen"
- BoolValue72.Parent = ScreenGui69
- LocalScript73.Name = "Drive"
- LocalScript73.Parent = ScreenGui69
- table.insert(cors,sandbox(LocalScript73,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare
- *I assume you know what you're doing if you're gonna change something here.* ]]--
- wait(0.1)
- --[[START]]
- script.Parent:WaitForChild("Car")
- script.Parent:WaitForChild("IsOn")
- script.Parent:WaitForChild("ControlsOpen")
- script.Parent:WaitForChild("Values")
- --[[Dependencies]]
- local player = game.Players.LocalPlayer
- local mouse = player:GetMouse()
- local UserInputService = game:GetService("UserInputService")
- local car = script.Parent.Car.Value
- local _Tune = require(car["A-Chassis Tune"])
- --[[Output Scaling Factor]]
- local hpScaling = _Tune.WeightScaling*10
- local FBrakeForce = _Tune.FBrakeForce
- local RBrakeForce = _Tune.RBrakeForce
- local PBrakeForce = _Tune.PBrakeForce
- if not workspace:PGSIsEnabled() then
- hpScaling = _Tune.LegacyScaling*10
- FBrakeForce = _Tune.FLgcyBForce
- RBrakeForce = _Tune.RLgcyBForce
- PBrakeForce = _Tune.LgcyPBForce
- end
- --[[Status Vars]]
- local _IsOn = _Tune.AutoStart
- if _Tune.AutoStart then script.Parent.IsOn.Value=true end
- local _GSteerT=0
- local _GSteerC=0
- local _GThrot=0
- local _GBrake=0
- local _ClutchOn = true
- local _ClPressing = false
- local _RPM = 0
- local _HP = 0
- local _OutTorque = 0
- local _CGear = 0
- local _PGear = _CGear
- local _spLimit = 0
- local _TMode = _Tune.TransModes[1]
- local _MSteer = false
- local _SteerL = false
- local _SteerR = false
- local _PBrake = false
- local _TCS = _Tune.TCSEnabled
- local _TCSActive = false
- local _ABS = _Tune.ABSEnabled
- local _ABSActive = false
- local FlipWait=tick()
- local FlipDB=false
- local _InControls = false
- --[[Shutdown]]
- car.DriveSeat.ChildRemoved:connect(function(child)
- if child.Name=="SeatWeld" and child:IsA("Weld") then
- script.Parent:Destroy()
- end
- end)
- --[[Controls]]
- local _CTRL = _Tune.Controls
- local Controls = Instance.new("Folder",script.Parent)
- Controls.Name = "Controls"
- for i,v in pairs(_CTRL) do
- local a=Instance.new("StringValue",Controls)
- a.Name=i
- a.Value=v.Name
- a.Changed:connect(function()
- if i=="MouseThrottle" or i=="MouseBrake" then
- if a.Value == "MouseButton1" or a.Value == "MouseButton2" then
- _CTRL[i]=Enum.UserInputType[a.Value]
- else
- _CTRL[i]=Enum.KeyCode[a.Value]
- end
- else
- _CTRL[i]=Enum.KeyCode[a.Value]
- end
- end)
- end
- --Deadzone Adjust
- local _PPH = _Tune.Peripherals
- for i,v in pairs(_PPH) do
- local a = Instance.new("IntValue",Controls)
- a.Name = i
- a.Value = v
- a.Changed:connect(function()
- a.Value=math.min(100,math.max(0,a.Value))
- _PPH[i] = a.Value
- end)
- end
- --Input Handler
- function DealWithInput(input,IsRobloxFunction)
- if (UserInputService:GetFocusedTextBox()==nil) and not _InControls then --Ignore when UI Focus
- --Shift Down [Manual Transmission]
- if _IsOn and (input.KeyCode ==_CTRL["ContlrShiftDown"] or (_MSteer and input.KeyCode==_CTRL["MouseShiftDown"]) or ((not _MSteer) and input.KeyCode==_CTRL["ShiftDown"])) and (_TMode=="Semi" or (_TMode=="Manual" and (not _ClutchOn))) and input.UserInputState == Enum.UserInputState.Begin then
- if _CGear == 0 and (_TMode=="Auto" or not _ClPressing) then _ClutchOn = true end
- _CGear = math.max(_CGear-1,-1)
- --Shift Up [Manual Transmission]
- elseif _IsOn and (input.KeyCode ==_CTRL["ContlrShiftUp"] or (_MSteer and input.KeyCode==_CTRL["MouseShiftUp"]) or ((not _MSteer) and input.KeyCode==_CTRL["ShiftUp"])) and (_TMode=="Semi" or (_TMode=="Manual" and (not _ClutchOn))) and input.UserInputState == Enum.UserInputState.Begin then
- if _CGear == 0 and (_TMode=="Auto" or not _ClPressing) then _ClutchOn = true end
- _CGear = math.min(_CGear+1,#_Tune.Ratios-2)
- --Toggle Clutch
- elseif _IsOn and (input.KeyCode ==_CTRL["ContlrClutch"] or (_MSteer and input.KeyCode==_CTRL["MouseClutch"]) or ((not _MSteer) and input.KeyCode==_CTRL["Clutch"])) and _TMode=="Manual" then
- if input.UserInputState == Enum.UserInputState.Begin then
- _ClutchOn = false
- _ClPressing = true
- elseif input.UserInputState == Enum.UserInputState.End then
- _ClutchOn = true
- _ClPressing = false
- end
- --Toggle PBrake
- elseif _IsOn and input.KeyCode ==_CTRL["ContlrPBrake"] or (_MSteer and input.KeyCode==_CTRL["MousePBrake"]) or ((not _MSteer) and input.KeyCode==_CTRL["PBrake"]) then
- if input.UserInputState == Enum.UserInputState.Begin then
- _PBrake = not _PBrake
- elseif input.UserInputState == Enum.UserInputState.End then
- if car.DriveSeat.Velocity.Magnitude>5 then
- _PBrake = false
- end
- end
- --Toggle Transmission Mode
- elseif (input.KeyCode == _CTRL["ContlrToggleTMode"] or input.KeyCode==_CTRL["ToggleTransMode"]) and input.UserInputState == Enum.UserInputState.Begin then
- local n=1
- for i,v in pairs(_Tune.TransModes) do
- if v==_TMode then n=i break end
- end
- n=n+1
- if n>#_Tune.TransModes then n=1 end
- _TMode = _Tune.TransModes[n]
- --Throttle
- elseif _IsOn and ((not _MSteer) and (input.KeyCode==_CTRL["Throttle"] or input.KeyCode == _CTRL["Throttle2"])) or ((((_CTRL["MouseThrottle"]==Enum.UserInputType.MouseButton1 or _CTRL["MouseThrottle"]==Enum.UserInputType.MouseButton2) and input.UserInputType == _CTRL["MouseThrottle"]) or input.KeyCode == _CTRL["MouseThrottle"])and _MSteer) then
- if input.UserInputState == Enum.UserInputState.Begin then
- _GThrot = 1
- else
- _GThrot = _Tune.IdleThrottle/100
- end
- --Brake
- elseif ((not _MSteer) and (input.KeyCode==_CTRL["Brake"] or input.KeyCode == _CTRL["Brake2"])) or ((((_CTRL["MouseBrake"]==Enum.UserInputType.MouseButton1 or _CTRL["MouseBrake"]==Enum.UserInputType.MouseButton2) and input.UserInputType == _CTRL["MouseBrake"]) or input.KeyCode == _CTRL["MouseBrake"])and _MSteer) then
- if input.UserInputState == Enum.UserInputState.Begin then
- _GBrake = 1
- else
- _GBrake = 0
- end
- --Steer Left
- elseif (not _MSteer) and (input.KeyCode==_CTRL["SteerLeft"] or input.KeyCode == _CTRL["SteerLeft2"]) then
- if input.UserInputState == Enum.UserInputState.Begin then
- _GSteerT = -1
- _SteerL = true
- else
- if _SteerR then
- _GSteerT = 1
- else
- _GSteerT = 0
- end
- _SteerL = false
- end
- --Steer Right
- elseif (not _MSteer) and (input.KeyCode==_CTRL["SteerRight"] or input.KeyCode == _CTRL["SteerRight2"]) then
- if input.UserInputState == Enum.UserInputState.Begin then
- _GSteerT = 1
- _SteerR = true
- else
- if _SteerL then
- _GSteerT = -1
- else
- _GSteerT = 0
- end
- _SteerR = false
- end
- --Toggle Mouse Controls
- elseif input.KeyCode ==_CTRL["ToggleMouseDrive"] then
- if input.UserInputState == Enum.UserInputState.End then
- _MSteer = not _MSteer
- _GThrot = _Tune.IdleThrottle/100
- _GBrake = 0
- _GSteerT = 0
- _ClutchOn = true
- end
- --Toggle TCS
- elseif _Tune.TCSEnabled and _IsOn and input.KeyCode == _CTRL["ToggleTCS"] or input.KeyCode == _CTRL["ContlrToggleTCS"] then
- if input.UserInputState == Enum.UserInputState.End then
- _TCS = not _TCS
- end
- --Toggle ABS
- elseif _Tune. ABSEnabled and _IsOn and input.KeyCode == _CTRL["ToggleABS"] or input.KeyCode == _CTRL["ContlrToggleABS"] then
- if input.UserInputState == Enum.UserInputState.End then
- _ABS = not _ABS
- end
- end
- --Variable Controls
- if input.UserInputType.Name:find("Gamepad") then
- --Gamepad Steering
- if input.KeyCode == _CTRL["ContlrSteer"] then
- if input.Position.X>= 0 then
- local cDZone = math.min(.99,_Tune.Peripherals.ControlRDZone/100)
- if math.abs(input.Position.X)>cDZone then
- _GSteerT = (input.Position.X-cDZone)/(1-cDZone)
- else
- _GSteerT = 0
- end
- else
- local cDZone = math.min(.99,_Tune.Peripherals.ControlLDZone/100)
- if math.abs(input.Position.X)>cDZone then
- _GSteerT = (input.Position.X+cDZone)/(1-cDZone)
- else
- _GSteerT = 0
- end
- end
- --Gamepad Throttle
- elseif _IsOn and input.KeyCode == _CTRL["ContlrThrottle"] then
- _GThrot = math.max(_Tune.IdleThrottle/100,input.Position.Z)
- --Gamepad Brake
- elseif input.KeyCode == _CTRL["ContlrBrake"] then
- _GBrake = input.Position.Z
- end
- end
- else
- _GThrot = _Tune.IdleThrottle/100
- _GSteerT = 0
- _GBrake = 0
- if _CGear~=0 then _ClutchOn = true end
- end
- end
- UserInputService.InputBegan:connect(DealWithInput)
- UserInputService.InputChanged:connect(DealWithInput)
- UserInputService.InputEnded:connect(DealWithInput)
- --[[Drivetrain Initialize]]
- local Drive={}
- --Power Front Wheels
- if _Tune.Config == "FWD" or _Tune.Config == "AWD" then
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
- table.insert(Drive,v)
- end
- end
- end
- --Power Rear Wheels
- if _Tune.Config == "RWD" or _Tune.Config == "AWD" then
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v.Name=="RL" or v.Name=="RR" or v.Name=="R" then
- table.insert(Drive,v)
- end
- end
- end
- --Determine Wheel Size
- local wDia = 0
- for i,v in pairs(Drive) do
- if v.Size.x>wDia then wDia = v.Size.x end
- end
- --Pre-Toggled PBrake
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v["#AV"]:IsA("BodyAngularVelocity") then
- if math.abs(v["#AV"].maxTorque.Magnitude-PBrakeForce)<1 then
- _PBrake=true
- end
- else
- if math.abs(v["#AV"].MotorMaxTorque-PBrakeForce)<1 then
- _PBrake=true
- end
- end
- end
- --[[Steering]]
- function Steering()
- --Mouse Steer
- if _MSteer then
- local msWidth = math.max(1,mouse.ViewSizeX*_Tune.Peripherals.MSteerWidth/200)
- local mdZone = _Tune.Peripherals.MSteerDZone/100
- local mST = ((mouse.X-mouse.ViewSizeX/2)/msWidth)
- if math.abs(mST)<=mdZone then
- _GSteerT = 0
- else
- _GSteerT = (math.max(math.min((math.abs(mST)-mdZone),(1-mdZone)),0)/(1-mdZone))^_Tune.MSteerExp * (mST / math.abs(mST))
- end
- end
- --Interpolate Steering
- if _GSteerC < _GSteerT then
- if _GSteerC<0 then
- _GSteerC = math.min(_GSteerT,_GSteerC+_Tune.ReturnSpeed)
- else
- _GSteerC = math.min(_GSteerT,_GSteerC+_Tune.SteerSpeed)
- end
- else
- if _GSteerC>0 then
- _GSteerC = math.max(_GSteerT,_GSteerC-_Tune.ReturnSpeed)
- else
- _GSteerC = math.max(_GSteerT,_GSteerC-_Tune.SteerSpeed)
- end
- end
- --Steer Decay Multiplier
- local sDecay = (1-math.min(car.DriveSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
- --Apply Steering
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v.Name=="F" then
- v.Arm.Steer.CFrame=car.Wheels.F.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerInner*sDecay),0)
- elseif v.Name=="FL" then
- if _GSteerC>= 0 then
- v.Arm.Steer.CFrame=car.Wheels.FL.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerOuter*sDecay),0)
- else
- v.Arm.Steer.CFrame=car.Wheels.FL.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerInner*sDecay),0)
- end
- elseif v.Name=="FR" then
- if _GSteerC>= 0 then
- v.Arm.Steer.CFrame=car.Wheels.FR.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerInner*sDecay),0)
- else
- v.Arm.Steer.CFrame=car.Wheels.FR.Base.CFrame*CFrame.Angles(0,-math.rad(_GSteerC*_Tune.SteerOuter*sDecay),0)
- end
- end
- end
- end
- --[[Engine]]
- local fFD = _Tune.FinalDrive*_Tune.FDMult
- local fFDr = fFD*30/math.pi
- local cGrav = workspace.Gravity*_Tune.InclineComp/32.2
- local wDRatio = wDia*math.pi/60
- local cfWRot = CFrame.Angles(math.pi/2,-math.pi/2,0)
- local cfYRot = CFrame.Angles(0,math.pi,0)
- local rtTwo = (2^.5)/2
- --Horsepower Curve
- local fgc_h=_Tune.Horsepower/100
- local fgc_n=_Tune.PeakRPM/1000
- local fgc_a=_Tune.PeakSharpness
- local fgc_c=_Tune.CurveMult
- function FGC(x)
- x=x/1000
- return (((-(x-fgc_n)^2)*math.min(fgc_h/(fgc_n^2),fgc_c^(fgc_n/fgc_h)))+fgc_h)*(x-((x^fgc_a)/((fgc_a*fgc_n)^(fgc_a-1))))
- end
- local PeakFGC = FGC(_Tune.PeakRPM)
- --Plot Current Horsepower
- function GetCurve(x,gear)
- local hp=math.max((FGC(x)*_Tune.Horsepower)/PeakFGC,0)
- return hp,hp*(_Tune.EqPoint/x)*_Tune.Ratios[gear+2]*fFD*hpScaling
- end
- --Output Cache
- local CacheTorque = false
- local HPCache = {}
- local HPInc = 100
- if CacheTorque then
- for gear,ratio in pairs(_Tune.Ratios) do
- local hpPlot = {}
- for rpm = math.floor(_Tune.IdleRPM/HPInc),math.ceil((_Tune.Redline+100)/HPInc) do
- local tqPlot = {}
- tqPlot.Horsepower,tqPlot.Torque = GetCurve(rpm*HPInc,gear-2)
- hp1,tq1 = GetCurve((rpm+1)*HPInc,gear-2)
- tqPlot.HpSlope = (hp1 - tqPlot.Horsepower)/(HPInc/1000)
- tqPlot.TqSlope = (tq1 - tqPlot.Torque)/(HPInc/1000)
- hpPlot[rpm] = tqPlot
- end
- table.insert(HPCache,hpPlot)
- end
- end
- --Powertrain
- --Update RPM
- function RPM()
- --Neutral Gear
- if _CGear==0 then _ClutchOn = false end
- --Car Is Off
- local revMin = _Tune.IdleRPM
- if not _IsOn then
- revMin = 0
- _CGear = 0
- _ClutchOn = false
- _GThrot = _Tune.IdleThrottle/100
- end
- --Determine RPM
- local maxSpin=0
- for i,v in pairs(Drive) do
- if v.RotVelocity.Magnitude>maxSpin then maxSpin = v.RotVelocity.Magnitude end
- end
- if _ClutchOn then
- local aRPM = math.max(math.min(maxSpin*_Tune.Ratios[_CGear+2]*fFDr,_Tune.Redline+100),revMin)
- local clutchP = math.min(math.abs(aRPM-_RPM)/_Tune.ClutchTol,.9)
- _RPM = _RPM*clutchP + aRPM*(1-clutchP)
- else
- if _GThrot-(_Tune.IdleThrottle/100)>0 then
- if _RPM>_Tune.Redline then
- _RPM = _RPM-_Tune.RevBounce*2
- else
- _RPM = math.min(_RPM+_Tune.RevAccel*_GThrot,_Tune.Redline+100)
- end
- else
- _RPM = math.max(_RPM-_Tune.RevDecay,revMin)
- end
- end
- --Rev Limiter
- _spLimit = (_Tune.Redline+100)/(fFDr*_Tune.Ratios[_CGear+2])
- if _RPM>_Tune.Redline then
- if _CGear<#_Tune.Ratios-2 then
- _RPM = _RPM-_Tune.RevBounce
- else
- _RPM = _RPM-_Tune.RevBounce*.5
- end
- end
- end
- --Apply Power
- function Engine()
- --Get Torque
- local maxSpin=0
- for i,v in pairs(Drive) do
- if v.RotVelocity.Magnitude>maxSpin then maxSpin = v.RotVelocity.Magnitude end
- end
- if _ClutchOn then
- if CacheTorque then
- local cTq = HPCache[_CGear+2][math.floor(math.min(_Tune.Redline,math.max(_Tune.IdleRPM,_RPM))/HPInc)]
- _HP = cTq.Horsepower+(cTq.HpSlope*(_RPM-math.floor(_RPM/HPInc))/1000)
- _OutTorque = cTq.Torque+(cTq.TqSlope*(_RPM-math.floor(_RPM/HPInc))/1000)
- else
- _HP,_OutTorque = GetCurve(_RPM,_CGear)
- end
- local iComp =(car.DriveSeat.CFrame.lookVector.y)*cGrav
- if _CGear==-1 then iComp=-iComp end
- _OutTorque = _OutTorque*math.max(1,(1+iComp))
- else
- _HP,_OutTorque = 0,0
- end
- --Automatic Transmission
- if _TMode == "Auto" and _IsOn then
- _ClutchOn = true
- if _CGear == 0 then _CGear = 1 end
- if _CGear >= 1 then
- if _CGear==1 and _GBrake > 0 and car.DriveSeat.Velocity.Magnitude < 20 then
- _CGear = -1
- else
- if _Tune.AutoShiftMode == "RPM" then
- if _RPM>(_Tune.PeakRPM+_Tune.AutoUpThresh) then
- _CGear=math.min(_CGear+1,#_Tune.Ratios-2)
- elseif math.max(math.min(maxSpin*_Tune.Ratios[_CGear+1]*fFDr,_Tune.Redline+100),_Tune.IdleRPM)<(_Tune.PeakRPM-_Tune.AutoDownThresh) then
- _CGear=math.max(_CGear-1,1)
- end
- else
- if car.DriveSeat.Velocity.Magnitude > math.ceil(wDRatio*(_Tune.PeakRPM+_Tune.AutoUpThresh)/_Tune.Ratios[_CGear+2]/fFD) then
- _CGear=math.min(_CGear+1,#_Tune.Ratios-2)
- elseif car.DriveSeat.Velocity.Magnitude < math.ceil(wDRatio*(_Tune.PeakRPM-_Tune.AutoDownThresh)/_Tune.Ratios[_CGear+1]/fFD) then
- _CGear=math.max(_CGear-1,1)
- end
- end
- end
- else
- if _GThrot-(_Tune.IdleThrottle/100) > 0 and car.DriveSeat.Velocity.Magnitude < 20 then
- _CGear = 1
- end
- end
- end
- --Average Rotational Speed Calculation
- local fwspeed=0
- local fwcount=0
- local rwspeed=0
- local rwcount=0
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v.Name=="FL" or v.Name=="FR" or v.Name == "F" then
- fwspeed=fwspeed+v.RotVelocity.Magnitude
- fwcount=fwcount+1
- elseif v.Name=="RL" or v.Name=="RR" or v.Name == "R" then
- rwspeed=rwspeed+v.RotVelocity.Magnitude
- rwcount=rwcount+1
- end
- end
- fwspeed=fwspeed/fwcount
- rwspeed=rwspeed/rwcount
- local cwspeed=(fwspeed+rwspeed)/2
- --Update Wheels
- for i,v in pairs(car.Wheels:GetChildren()) do
- --Reference Wheel Orientation
- local Ref=(CFrame.new(v.Position-((v.Arm.CFrame*cfWRot).lookVector),v.Position)*cfYRot).lookVector
- local aRef=1
- local diffMult=1
- if v.Name=="FL" or v.Name=="RL" then aRef=-1 end
- --AWD Torque Scaling
- if _Tune.Config == "AWD" then _OutTorque = _OutTorque*rtTwo end
- --Differential/Torque-Vectoring
- if v.Name=="FL" or v.Name=="FR" then
- diffMult=math.max(0,math.min(1,1+((((v.RotVelocity.Magnitude-fwspeed)/fwspeed)/(math.max(_Tune.FDiffSlipThres,1)/100))*((_Tune.FDiffLockThres-50)/50))))
- if _Tune.Config == "AWD" then
- diffMult=math.max(0,math.min(1,diffMult*(1+((((fwspeed-cwspeed)/cwspeed)/(math.max(_Tune.CDiffSlipThres,1)/100))*((_Tune.CDiffLockThres-50)/50)))))
- end
- elseif v.Name=="RL" or v.Name=="RR" then
- diffMult=math.max(0,math.min(1,1+((((v.RotVelocity.Magnitude-rwspeed)/rwspeed)/(math.max(_Tune.RDiffSlipThres,1)/100))*((_Tune.RDiffLockThres-50)/50))))
- if _Tune.Config == "AWD" then
- diffMult=math.max(0,math.min(1,diffMult*(1+((((rwspeed-cwspeed)/cwspeed)/(math.max(_Tune.CDiffSlipThres,1)/100))*((_Tune.CDiffLockThres-50)/50)))))
- end
- end
- _TCSActive = false
- _ABSActive = false
- --Output
- if _PBrake and ((_Tune.Config ~= "FWD" and (((v.Name=="FL" or v.Name=="FR") and car.DriveSeat.Velocity.Magnitude<20) or ((v.Name=="RR" or v.Name=="RL") and car.DriveSeat.Velocity.Magnitude>=20))) or (_Tune.Config == "FWD" and (v.Name=="RR" or v.Name=="RL"))) then
- --PBrake
- v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*PBrakeForce
- v["#AV"].angularvelocity=Vector3.new()
- else
- --Apply Power
- if ((_TMode == "Manual" or _TMode == "Semi") and _GBrake==0) or (_TMode == "Auto" and ((_CGear>-1 and _GBrake==0 ) or (_CGear==-1 and _GThrot-(_Tune.IdleThrottle/100)==0 )))then
- local driven = false
- for _,a in pairs(Drive) do if a==v then driven = true end end
- if driven then
- local on=1
- if not script.Parent.IsOn.Value then on=0 end
- local throt = _GThrot
- if _TMode == "Auto" and _CGear==-1 then throt = _GBrake end
- --Apply TCS
- local tqTCS = 1
- if _TCS then
- tqTCS = 1-(math.min(math.max(0,math.abs(v.RotVelocity.Magnitude*(v.Size.x/2) - v.Velocity.Magnitude)-_Tune.TCSThreshold)/_Tune.TCSGradient,1)*(1-(_Tune.TCSLimit/100)))
- end
- if tqTCS < 1 then
- _TCSActive = true
- end
- --Update Forces
- local dir = 1
- if _CGear==-1 then dir = -1 end
- v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*_OutTorque*(1+(v.RotVelocity.Magnitude/60)^1.15)*throt*tqTCS*diffMult*on
- v["#AV"].angularvelocity=Ref*aRef*_spLimit*dir
- else
- v["#AV"].maxTorque=Vector3.new()
- v["#AV"].angularvelocity=Vector3.new()
- end
- --Brakes
- else
- local brake = _GBrake
- if _TMode == "Auto" and _CGear==-1 then brake = _GThrot end
- --Apply ABS
- local tqABS = 1
- if _ABS and math.abs(v.RotVelocity.Magnitude*(v.Size.x/2) - v.Velocity.Magnitude)-_Tune.ABSThreshold>0 then
- tqABS = 0
- end
- if tqABS < 1 then
- _ABSActive = true
- end
- --Update Forces
- if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
- v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*FBrakeForce*brake*tqABS
- else
- v["#AV"].maxTorque=Vector3.new(math.abs(Ref.x),math.abs(Ref.y),math.abs(Ref.z))*RBrakeForce*brake*tqABS
- end
- v["#AV"].angularvelocity=Vector3.new()
- end
- end
- end
- end
- --[[Flip]]
- function Flip()
- --Detect Orientation
- if (car.DriveSeat.CFrame*CFrame.Angles(math.pi/2,0,0)).lookVector.y > .1 or FlipDB then
- FlipWait=tick()
- --Apply Flip
- else
- if tick()-FlipWait>=3 then
- FlipDB=true
- local gyro = car.DriveSeat.Flip
- gyro.maxTorque = Vector3.new(10000,0,10000)
- gyro.P=3000
- gyro.D=500
- wait(1)
- gyro.maxTorque = Vector3.new(0,0,0)
- gyro.P=0
- gyro.D=0
- FlipDB=false
- end
- end
- end
- --[[Run]]
- --Print Version
- local ver=require(car["A-Chassis Tune"].README)
- print("//INSPARE: AC6 Loaded - Build "..ver)
- --Runtime Loops
- -- ~60 c/s
- game["Run Service"].Stepped:connect(function()
- --Steering
- Steering()
- --RPM
- RPM()
- --Update External Values
- _IsOn = script.Parent.IsOn.Value
- _InControls = script.Parent.ControlsOpen.Value
- script.Parent.Values.Gear.Value = _CGear
- script.Parent.Values.RPM.Value = _RPM
- script.Parent.Values.Horsepower.Value = _HP
- script.Parent.Values.Torque.Value = _HP * _Tune.EqPoint / _RPM
- script.Parent.Values.TransmissionMode.Value = _TMode
- script.Parent.Values.Throttle.Value = _GThrot
- script.Parent.Values.Brake.Value = _GBrake
- script.Parent.Values.SteerC.Value = _GSteerC*(1-math.min(car.DriveSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
- script.Parent.Values.SteerT.Value = _GSteerT
- script.Parent.Values.PBrake.Value = _PBrake
- script.Parent.Values.TCS.Value = _TCS
- script.Parent.Values.TCSActive.Value = _TCSActive
- script.Parent.Values.ABS.Value = _ABS
- script.Parent.Values.ABSActive.Value = _ABSActive
- script.Parent.Values.MouseSteerOn.Value = _MSteer
- script.Parent.Values.Velocity.Value = car.DriveSeat.Velocity
- end)
- -- ~15 c/s
- while wait(.0667) do
- --Power
- Engine()
- --Flip
- if _Tune.AutoFlip then Flip() end
- end
- --[[END]]
- end))
- Folder74.Name = "Values"
- Folder74.Parent = ScreenGui69
- NumberValue75.Name = "RPM"
- NumberValue75.Parent = Folder74
- NumberValue76.Name = "Horsepower"
- NumberValue76.Parent = Folder74
- NumberValue77.Name = "Torque"
- NumberValue77.Parent = Folder74
- StringValue78.Name = "TransmissionMode"
- StringValue78.Parent = Folder74
- NumberValue79.Name = "Gear"
- NumberValue79.Parent = Folder74
- NumberValue80.Name = "Throttle"
- NumberValue80.Parent = Folder74
- NumberValue81.Name = "SteerC"
- NumberValue81.Parent = Folder74
- NumberValue82.Name = "SteerT"
- NumberValue82.Parent = Folder74
- NumberValue83.Name = "Brake"
- NumberValue83.Parent = Folder74
- BoolValue84.Name = "TCS"
- BoolValue84.Parent = Folder74
- BoolValue85.Name = "PBrake"
- BoolValue85.Parent = Folder74
- BoolValue86.Name = "TCSActive"
- BoolValue86.Parent = Folder74
- Vector3Value87.Name = "Velocity"
- Vector3Value87.Parent = Folder74
- BoolValue88.Name = "ABS"
- BoolValue88.Parent = Folder74
- BoolValue89.Name = "ABSActive"
- BoolValue89.Parent = Folder74
- BoolValue90.Name = "MouseSteerOn"
- BoolValue90.Parent = Folder74
- Frame91.Name = "Lights"
- Frame91.Parent = Folder74
- Frame91.Position = UDim2.new(0, 0, 0, 300)
- Frame91.Size = UDim2.new(1, 0, 1, 0)
- Frame91.BackgroundColor = BrickColor.new("Institutional white")
- Frame91.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame91.BackgroundTransparency = 1
- Frame91.BorderSizePixel = 0
- TextButton92.Name = "L"
- TextButton92.Parent = Frame91
- TextButton92.Position = UDim2.new(0.5, -120, 1, -40)
- TextButton92.Size = UDim2.new(0, 40, 0, 20)
- TextButton92.BackgroundColor = BrickColor.new("Really black")
- TextButton92.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton92.BackgroundTransparency = 0.5
- TextButton92.BorderSizePixel = 0
- TextButton92.Font = Enum.Font.ArialBold
- TextButton92.FontSize = Enum.FontSize.Size14
- TextButton92.Text = "Lights"
- TextButton92.TextColor = BrickColor.new("Institutional white")
- TextButton92.TextColor3 = Color3.new(1, 1, 1)
- TextButton92.TextSize = 14
- TextButton92.TextStrokeTransparency = 0.89999997615814
- TextButton92.TextTransparency = 0.10000000149012
- LocalScript93.Name = "Lights"
- LocalScript93.Parent = TextButton92
- table.insert(cors,sandbox(LocalScript93,function()
- local car = script.Parent.Parent.Parent.Car.Value
- local mouse = game.Players.LocalPlayer:GetMouse()
- script.Parent:WaitForChild("Reverse")
- if not car.DriveSeat:FindFirstChild("Reverse") then
- script.Parent.Reverse:Clone().Parent = car.DriveSeat
- end
- car.DriveSeat:WaitForChild("Reverse")
- ---
- if script.Parent.Parent.Parent.IsOn.Value then
- script.Parent.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
- end
- script.Parent.Parent.Parent.IsOn.Changed:connect(function()
- if script.Parent.Parent.Parent.IsOn.Value then
- script.Parent.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
- end
- end)
- script.Parent.MouseButton1Click:connect(function()
- if car.Misc.Popups.Parts.L.L.L.Enabled == false and car.Body.Lights.H.L.L.Enabled == false then
- script.Parent.BackgroundColor3 = Color3.new(0,255/255,0)
- script.Parent.TextStrokeColor3 = Color3.new(0,255/255,0)
- car.Body.Lights.R.L.L.Enabled = true
- car.Body.Lights.PLATE.L.GUI.Enabled = true
- for index, child in pairs(car.Misc.Popups.Parts.L:GetChildren()) do
- child.Material = Enum.Material.Neon
- child.L.Enabled = true
- end
- for index, child in pairs(car.Body.Lights.R:GetChildren()) do
- child.Material = Enum.Material.Neon
- end
- for index, child in pairs(car.Body.Lights.H:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- child.L.Enabled = false
- end
- elseif car.Misc.Popups.Parts.L.L.L.Enabled == true and car.Body.Lights.H.L.L.Enabled == false then
- script.Parent.BackgroundColor3 = Color3.new(0,0,255/255)
- script.Parent.TextStrokeColor3 = Color3.new(0,0,255/255)
- car.Body.Lights.R.L.L.Enabled = true
- car.Body.Lights.PLATE.L.GUI.Enabled = true
- for index, child in pairs(car.Misc.Popups.Parts.L:GetChildren()) do
- child.Material = Enum.Material.Neon
- child.L.Enabled = true
- end
- for index, child in pairs(car.Body.Lights.R:GetChildren()) do
- child.Material = Enum.Material.Neon
- end
- for index, child in pairs(car.Body.Lights.H:GetChildren()) do
- child.Material = Enum.Material.Neon
- child.L.Enabled = true
- end
- elseif car.Misc.Popups.Parts.L.L.L.Enabled == true and car.Body.Lights.H.L.L.Enabled == true then
- script.Parent.BackgroundColor3 = Color3.new(0,0,0)
- script.Parent.TextStrokeColor3 = Color3.new(0,0,0)
- car.Body.Lights.R.L.L.Enabled = false
- car.Body.Lights.PLATE.L.GUI.Enabled = false
- for index, child in pairs(car.Misc.Popups.Parts.L:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- child.L.Enabled = false
- end
- for index, child in pairs(car.Body.Lights.R:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- end
- for index, child in pairs(car.Body.Lights.H:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- child.L.Enabled = false
- end
- end
- end)
- script.Parent.Parent.Parent.Values.Brake.Changed:connect(function()
- if script.Parent.Parent.Parent.Values.Brake.Value ~= 1 and script.Parent.Parent.Parent.IsOn.Value then
- for index, child in pairs(car.Body.Lights.B:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- end
- car.Body.Lights.B.L.L.Enabled = false
- else
- for index, child in pairs(car.Body.Lights.B:GetChildren()) do
- child.Material = Enum.Material.Neon
- end
- car.Body.Lights.B.L.L.Enabled = true
- end
- end)
- script.Parent.Parent.Parent.Values.Brake.Changed:connect(function()
- if script.Parent.Parent.Parent.Values.Brake.Value ~= 1 then
- for index, child in pairs(car.Body.Lights.B:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- end
- car.Body.Lights.B.L.L.Enabled = false
- car.Body.a1.Enabled = false
- car.Body.a2.Enabled = false
- car.Body.a3.Enabled = false
- else
- for index, child in pairs(car.Body.Lights.B:GetChildren()) do
- child.Material = Enum.Material.Neon
- end
- car.Body.Lights.B.L.L.Enabled = true
- car.Body.a1.Enabled = true
- car.Body.a2.Enabled = true
- car.Body.a3.Enabled = true
- end
- end)
- script.Parent.Parent.Parent.Values.Gear.Changed:connect(function()
- if script.Parent.Parent.Parent.Values.Gear.Value == -1 then
- for index, child in pairs(car.Body.Lights.Rev:GetChildren()) do
- child.Material = Enum.Material.Neon
- car.DriveSeat.Reverse:Play()
- end
- else
- for index, child in pairs(car.Body.Lights.Rev:GetChildren()) do
- child.Material = Enum.Material.SmoothPlastic
- car.DriveSeat.Reverse:Stop()
- end
- end
- end)
- while wait() do
- if (car.DriveSeat.Velocity.magnitude/40)+0.300 < 1.3 then
- car.DriveSeat.Reverse.Pitch = (car.DriveSeat.Velocity.magnitude/40)+0.300
- car.DriveSeat.Reverse.Volume = (car.DriveSeat.Velocity.magnitude/150)
- else
- car.DriveSeat.Reverse.Pitch = 1.3
- car.DriveSeat.Reverse.Volume = .2
- end
- end
- end))
- Sound94.Name = "Reverse"
- Sound94.Parent = TextButton92
- Sound94.Looped = true
- Sound94.Pitch = 0
- Sound94.PlaybackSpeed = 0
- Sound94.Volume = 0.30000001192093
- NumberValue95.Name = "SetPitch"
- NumberValue95.Parent = Sound94
- NumberValue95.Value = 0.15
- NumberValue96.Name = "SetRev"
- NumberValue96.Parent = Sound94
- NumberValue96.Value = 1.3
- NumberValue97.Name = "SetVolume"
- NumberValue97.Parent = Sound94
- NumberValue97.Value = 0.1
- NumberValue98.Name = "SetVolumeRev"
- NumberValue98.Parent = Sound94
- NumberValue98.Value = 0.5
- Sound99.Parent = ModuleScript65
- Sound99.Looped = true
- Sound99.SoundId = "rbxassetid://281069183"
- Sound99.Volume = 0.10000000149012
- Folder100.Name = "Plugins"
- Folder100.Parent = ModuleScript65
- LocalScript101.Name = "AC6_Turbo_Sound"
- LocalScript101.Parent = Folder100
- table.insert(cors,sandbox(LocalScript101,function()
- --[[
- ___ _______ _ _______
- / _ |____/ ___/ / ___ ____ ___ (_)__ /__ __/
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-< / /
- /_/ |_| \___/_//_/\_,_/___/___/_/___/ /_/
- SecondLogic @ Inspare
- Avxnturador @ Novena
- ]]
- local FE = workspace.FilteringEnabled
- local car = script.Parent.Car.Value
- local handler = car:WaitForChild("AC6_FE_Sounds")
- local _Tune = require(car["A-Chassis Tune"])
- local BOVact = 0
- local BOVact2 = 0
- local BOV_Loudness = 1 --volume of the BOV (not exact volume so you kinda have to experiment with it)
- local BOV_Pitch = 0.9 --max pitch of the BOV (not exact so might have to mess with it)
- local TurboLoudness = .75 --volume of the Turbo (not exact volume so you kinda have to experiment with it also)
- script:WaitForChild("Whistle")
- script:WaitForChild("BOV")
- for i,v in pairs(car.DriveSeat:GetChildren()) do
- for _,a in pairs(script:GetChildren()) do
- if v.Name==a.Name then v:Stop() wait() v:Destroy() end
- end
- end
- car.DriveSeat.ChildRemoved:connect(function(child)
- if child.Name=="SeatWeld" then
- for i,v in pairs(car.DriveSeat:GetChildren()) do
- for _,a in pairs(script:GetChildren()) do
- if v.Name==a.Name then v:Stop() wait() v:Destroy() end
- end
- end
- end
- end)
- handler:FireServer("newSound","Whistle",car.DriveSeat,script.Whistle.SoundId,0,script.Whistle.Volume,true)
- handler:FireServer("newSound","BOV",car.DriveSeat,script.BOV.SoundId,0,script.BOV.Volume,true)
- handler:FireServer("playSound","Whistle")
- car.DriveSeat:WaitForChild("Whistle")
- car.DriveSeat:WaitForChild("BOV")
- local ticc = tick()
- local _TCount = 0
- if _Tune.Aspiration == "Single" then _TCount = 1 elseif _Tune.Aspiration == "Double" then _TCount = 2 end
- while wait() do
- local psi = (((script.Parent.Values.Boost.Value)/(_Tune.Boost*_TCount))*2)
- BOVact = math.floor(psi*20)
- WP = (psi)
- WV = (psi/4)*TurboLoudness
- BP = (1-(-psi/20))*BOV_Pitch
- BV = (((-0.5+((psi/2)*BOV_Loudness)))*(1 - script.Parent.Values.Throttle.Value))
- if BOVact < BOVact2 then if car.DriveSeat.BOV.IsPaused then if FE then handler:FireServer("playSound","BOV") else car.DriveSeat.BOV:Play() end end end
- if BOVact >= BOVact2 then if FE then handler:FireServer("stopSound","BOV") else car.DriveSeat.BOV:Stop() end end
- if FE then
- handler:FireServer("updateSound","Whistle",script.Whistle.SoundId,WP,WV)
- handler:FireServer("updateSound","BOV",script.BOV.SoundId,BP,BV)
- else
- car.DriveSeat.Whistle.Pitch = WP
- car.DriveSeat.Whistle.Volume = WV
- car.DriveSeat.BOV.Pitch = BP
- car.DriveSeat.BOV.Volume = BV
- end
- if (tick()-ticc) >= 0.1 then
- BOVact2 = math.floor(psi*20)
- ticc = tick()
- end
- end
- end))
- Sound102.Name = "BOV"
- Sound102.Parent = LocalScript101
- Sound102.MaxDistance = 100
- Sound102.SoundId = "rbxassetid://1045308909"
- Sound103.Name = "Whistle"
- Sound103.Parent = LocalScript101
- Sound103.Looped = true
- Sound103.EmitterSize = 20
- Sound103.MinDistance = 20
- Sound103.SoundId = "rbxassetid://1033010834"
- LocalScript104.Name = "AC6_Wind_Sound"
- LocalScript104.Parent = Folder100
- table.insert(cors,sandbox(LocalScript104,function()
- wait(0.2)
- local car = script.Parent.Car.Value
- local carSeat = car.DriveSeat
- script.Wind:Play()
- script.Wind.Parent=carSeat
- while true do
- wait()
- local speed = carSeat.Velocity.magnitude
- speed = math.floor(math.sqrt((carSeat.Velocity.x^2)+(carSeat.Velocity.y^2)+(carSeat.Velocity.z^2)))
- carSeat.Wind.Pitch = (speed/150)+0.02
- end
- end))
- Sound105.Name = "Wind"
- Sound105.Parent = LocalScript104
- Sound105.Looped = true
- Sound105.Pitch = 0
- Sound105.PlaybackSpeed = 0
- Sound105.SoundId = "rbxassetid://1159041612"
- Sound105.Volume = 5
- LocalScript106.Name = "AC6_Sound_Idle"
- LocalScript106.Parent = Folder100
- table.insert(cors,sandbox(LocalScript106,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare
- ]]
- local FE = workspace.FilteringEnabled
- local car = script.Parent.Car.Value
- local _Tune = require(car["A-Chassis Tune"])
- local on = 0
- script:WaitForChild("Idle")
- if not FE then
- for i,v in pairs(car.DriveSeat:GetChildren()) do
- for _,a in pairs(script:GetChildren()) do
- if v.Name==a.Name then v:Stop() wait() v:Destroy() end
- end
- end
- for i,v in pairs(script:GetChildren()) do
- v.Parent=car.DriveSeat
- end
- car.DriveSeat.Idle:Play()
- while wait() do
- local _RPM = script.Parent.Values.RPM.Value
- if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
- car.DriveSeat.Idle.Pitch = (car.DriveSeat.Idle.SetPitch.Value - car.DriveSeat.Idle.SetRev.Value*_RPM/_Tune.Redline)*on^2
- end
- else
- local handler = car.AC6_FE_Sounds
- handler:FireServer("newSound","Idle",car.DriveSeat,script.Idle.SoundId,0,true)
- handler:FireServer("playSound","Idle")
- local pitch=0
- while wait() do
- local _RPM = script.Parent.Values.RPM.Value
- if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
- pitch = (script.Idle.SetPitch.Value - script.Idle.SetRev.Value*_RPM/_Tune.Redline)*on^2
- handler:FireServer("updateSound","Idle",script.Idle.SoundId,pitch,script.Idle.Volume)
- end
- end
- end))
- RemoteEvent107.Name = "AC6_FE_Sounds"
- RemoteEvent107.Parent = LocalScript106
- Script108.Name = "Handler"
- Script108.Parent = RemoteEvent107
- table.insert(cors,sandbox(Script108,function()
- local Sounds = {}
- local F = {}
- F.newSound = function(name,par,id,pitch,loop)
- for i,v in pairs(Sounds) do
- if i==name then
- v:Stop()
- v:Destroy()
- end
- end
- local sn = Instance.new("Sound",par)
- sn.Name = name
- sn.SoundId = id
- sn.Pitch = pitch
- sn.Looped = loop
- sn.AncestryChanged:connect(function(child,parent) print(parent) end)
- Sounds[name]=sn
- end
- F.updateSound = function(sound,id,pit,vol)
- local sn = Sounds[sound]
- if id~=sn.SoundId then sn.SoundId = id end
- if pit~=sn.Pitch then sn.Pitch = pit end
- end
- F.pauseSound = function(sound)
- Sounds[sound]:Pause()
- end
- F.stopSound = function(sound)
- Sounds[sound]:Stop()
- end
- F.removeSound = function(sound)
- Sounds[sound]:Stop()
- Sounds[sound]:Destroy()
- Sounds[sound]=nil
- end
- script.Parent.OnServerEvent:connect(function(pl,Fnc,...)
- F[Fnc](...)
- end)
- end))
- Script108.Disabled = true
- Sound109.Name = "Idle"
- Sound109.Parent = LocalScript106
- Sound109.Looped = true
- Sound109.MaxDistance = 250
- Sound109.EmitterSize = 5
- Sound109.MinDistance = 5
- Sound109.SoundId = "rbxassetid://1233782024"
- NumberValue110.Name = "SetRev"
- NumberValue110.Parent = Sound109
- NumberValue110.Value = 2.5
- NumberValue111.Name = "SetPitch"
- NumberValue111.Parent = Sound109
- NumberValue111.Value = 1.1
- TextButton112.Name = "Start"
- TextButton112.Parent = Folder100
- TextButton112.Position = UDim2.new(1, -189, 1, -50)
- TextButton112.Size = UDim2.new(0, 100, 0, 30)
- TextButton112.BackgroundColor = BrickColor.new("Crimson")
- TextButton112.BackgroundColor3 = Color3.new(0.741176, 0, 0)
- TextButton112.BorderSizePixel = 0
- TextButton112.Font = Enum.Font.SourceSansLight
- TextButton112.FontSize = Enum.FontSize.Size24
- TextButton112.Text = "Engine: Off"
- TextButton112.TextColor = BrickColor.new("Institutional white")
- TextButton112.TextColor3 = Color3.new(1, 1, 1)
- TextButton112.TextSize = 20
- LocalScript113.Name = "ButtonScript"
- LocalScript113.Parent = TextButton112
- table.insert(cors,sandbox(LocalScript113,function()
- --[[
- Button created by SprinterBZR. I will help you how to make a startup script. Or simply, you can just copy-paste into another car.
- Touching some of the scripts can break the car. I advise you not touch these scripts.
- --]]
- wait(0.2) -- Removing this wait could break the script. Please do not touch this.
- -- Variables (best not to touch these!)
- local button = script.Parent
- local car = script.Parent.Parent.Car.Value
- local sound = script.Parent.Start
- sound.Parent = car.DriveSeat -- What brick the start sound is playing from.
- button.MouseButton1Click:connect(function() -- Event when the button is clicked
- if script.Parent.Text == "Engine: Off" then -- If the text says it's off then..
- sound:Play() -- Startup sound plays..
- wait(1) -- For realism. Okay?
- script.Parent.Parent.IsOn.Value = true -- The car is is on, or in other words, start up the car.
- button.Text = "Engine: On" -- You don't really need this, but I would keep it.
- else -- If it's on then when you click the button,
- script.Parent.Parent.IsOn.Value = false -- The car is turned off.
- button.Text = "Engine: Off"
- end -- Don't touch this.
- end) -- And don't touch this either.
- end))
- Sound114.Name = "Start"
- Sound114.Parent = TextButton112
- Sound114.PlayOnRemove = true
- Sound114.SoundId = "rbxassetid://4809574295"
- Sound114.Volume = 10
- Frame115.Name = "RPMLight"
- Frame115.Parent = Folder100
- Frame115.Size = UDim2.new(1, 0, 1, 0)
- Frame115.BackgroundColor = BrickColor.new("Institutional white")
- Frame115.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame115.BackgroundTransparency = 1
- Frame115.BorderColor3 = Color3.new(0.105882, 0.164706, 0.207843)
- Frame115.BorderSizePixel = 0
- LocalScript116.Name = "RPMLIGHT_AC6"
- LocalScript116.Parent = Frame115
- table.insert(cors,sandbox(LocalScript116,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare RPM LIGHT BY TOUGEZILA
- ]]
- local car = script.Parent.Parent.Car.Value
- car.DriveSeat.HeadsUpDisplay = false
- local _Tune = require(car["A-Chassis Tune"])
- local _pRPM = _Tune.PeakRPM
- local _lRPM = _Tune.Redline
- local revEnd = math.ceil(_lRPM/1000)
- local Drive={}
- local RPMON = 6000
- local RPMOFF = RPMON -100
- script.Parent.Parent.Values.RPM.Changed:connect(function()
- local Roundspeed = script.Parent.Parent.Values.RPM.Value
- if Roundspeed <= RPMON then script.Parent.RPMLIGHT.Image = "rbxassetid://90124950"
- elseif Roundspeed >= RPMOFF then script.Parent.RPMLIGHT.Image = "rbxassetid://117959738"
- end
- end)
- end))
- ImageLabel117.Name = "RPMLIGHT"
- ImageLabel117.Parent = Frame115
- ImageLabel117.Position = UDim2.new(0.49000001, -70, 1, -230)
- ImageLabel117.Size = UDim2.new(0, 40, 0, 40)
- ImageLabel117.BackgroundColor = BrickColor.new("Institutional white")
- ImageLabel117.BackgroundColor3 = Color3.new(1, 1, 1)
- ImageLabel117.BackgroundTransparency = 1
- ImageLabel117.BorderColor3 = Color3.new(0.105882, 0.164706, 0.207843)
- ImageLabel117.Image = "rbxassetid://90124950"
- Frame118.Name = "AC6_Stock_Gauges"
- Frame118.Parent = Folder100
- Frame118.Size = UDim2.new(1, 0, 1, 0)
- Frame118.BackgroundColor = BrickColor.new("Institutional white")
- Frame118.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame118.BackgroundTransparency = 1
- Frame118.BorderSizePixel = 0
- Frame119.Name = "Tach"
- Frame119.Parent = Frame118
- Frame119.Position = UDim2.new(0.5, -150, 1, -100)
- Frame119.BackgroundColor = BrickColor.new("Institutional white")
- Frame119.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame119.BorderSizePixel = 0
- Frame120.Name = "Needle"
- Frame120.Parent = Frame119
- Frame120.Rotation = 45
- Frame120.BackgroundColor = BrickColor.new("Institutional white")
- Frame120.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame120.BorderSizePixel = 0
- Frame121.Parent = Frame120
- Frame121.Position = UDim2.new(0, -2, 0, -10)
- Frame121.Size = UDim2.new(0, 4, 0, 110)
- Frame121.BackgroundColor = BrickColor.new("Really red")
- Frame121.BackgroundColor3 = Color3.new(1, 0, 0)
- Frame121.BackgroundTransparency = 0.10000000149012
- Frame121.BorderSizePixel = 0
- Frame121.ZIndex = 2
- Frame122.Name = "Speedo"
- Frame122.Parent = Frame118
- Frame122.Position = UDim2.new(0.5, 150, 1, -100)
- Frame122.BackgroundColor = BrickColor.new("Institutional white")
- Frame122.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame122.BorderSizePixel = 0
- Frame123.Name = "Needle"
- Frame123.Parent = Frame122
- Frame123.Rotation = 45
- Frame123.BackgroundColor = BrickColor.new("Institutional white")
- Frame123.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame123.BorderSizePixel = 0
- Frame124.Parent = Frame123
- Frame124.Position = UDim2.new(0, -2, 0, -10)
- Frame124.Size = UDim2.new(0, 4, 0, 110)
- Frame124.BackgroundColor = BrickColor.new("Really red")
- Frame124.BackgroundColor3 = Color3.new(1, 0, 0)
- Frame124.BackgroundTransparency = 0.10000000149012
- Frame124.BorderSizePixel = 0
- Frame124.ZIndex = 2
- Frame125.Name = "ln"
- Frame125.Parent = Frame118
- Frame125.Rotation = 45
- Frame125.Visible = false
- Frame125.BackgroundColor = BrickColor.new("Institutional white")
- Frame125.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame125.BorderSizePixel = 0
- Frame126.Parent = Frame125
- Frame126.Position = UDim2.new(0, -2, 0, 105)
- Frame126.Size = UDim2.new(0, 3, 0, 5)
- Frame126.BackgroundColor = BrickColor.new("Institutional white")
- Frame126.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame126.BackgroundTransparency = 0.10000000149012
- Frame126.BorderSizePixel = 0
- TextLabel127.Name = "Num"
- TextLabel127.Parent = Frame125
- TextLabel127.Position = UDim2.new(0, 0, 0, 88)
- TextLabel127.Rotation = -45
- TextLabel127.Visible = false
- TextLabel127.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel127.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel127.BackgroundTransparency = 1
- TextLabel127.BorderSizePixel = 0
- TextLabel127.Font = Enum.Font.ArialBold
- TextLabel127.FontSize = Enum.FontSize.Size18
- TextLabel127.Text = "0"
- TextLabel127.TextColor = BrickColor.new("Institutional white")
- TextLabel127.TextColor3 = Color3.new(1, 1, 1)
- TextLabel127.TextSize = 18
- TextLabel127.TextStrokeColor3 = Color3.new(0.835294, 0.835294, 0.835294)
- TextLabel127.TextStrokeTransparency = 0.89999997615814
- TextLabel127.TextTransparency = 0.10000000149012
- TextLabel128.Name = "Gear"
- TextLabel128.Parent = Frame118
- TextLabel128.Position = UDim2.new(0.5, -120, 1, -70)
- TextLabel128.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel128.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel128.BackgroundTransparency = 1
- TextLabel128.BorderSizePixel = 0
- TextLabel128.Font = Enum.Font.ArialBold
- TextLabel128.FontSize = Enum.FontSize.Size48
- TextLabel128.Text = "N"
- TextLabel128.TextColor = BrickColor.new("Institutional white")
- TextLabel128.TextColor3 = Color3.new(1, 1, 1)
- TextLabel128.TextSize = 48
- TextLabel128.TextStrokeColor3 = Color3.new(0.835294, 0.835294, 0.835294)
- TextLabel128.TextStrokeTransparency = 0.89999997615814
- TextLabel128.TextTransparency = 0.10000000149012
- TextLabel129.Name = "ABS"
- TextLabel129.Parent = Frame118
- TextLabel129.Position = UDim2.new(0.5, 130, 1, -100)
- TextLabel129.Visible = false
- TextLabel129.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel129.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel129.BackgroundTransparency = 1
- TextLabel129.BorderSizePixel = 0
- TextLabel129.Font = Enum.Font.ArialBold
- TextLabel129.FontSize = Enum.FontSize.Size18
- TextLabel129.Text = "ABS"
- TextLabel129.TextColor = BrickColor.new("Deep orange")
- TextLabel129.TextColor3 = Color3.new(1, 0.666667, 0)
- TextLabel129.TextSize = 18
- TextLabel129.TextStrokeColor3 = Color3.new(1, 0.666667, 0)
- TextLabel129.TextStrokeTransparency = 0.89999997615814
- TextLabel129.TextTransparency = 0.10000000149012
- TextLabel129.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel130.Name = "PBrake"
- TextLabel130.Parent = Frame118
- TextLabel130.Position = UDim2.new(0.5, 200, 1, -120)
- TextLabel130.Visible = false
- TextLabel130.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel130.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel130.BackgroundTransparency = 1
- TextLabel130.BorderSizePixel = 0
- TextLabel130.Font = Enum.Font.ArialBold
- TextLabel130.FontSize = Enum.FontSize.Size24
- TextLabel130.Text = "P"
- TextLabel130.TextColor = BrickColor.new("Persimmon")
- TextLabel130.TextColor3 = Color3.new(1, 0.333333, 0.498039)
- TextLabel130.TextSize = 24
- TextLabel130.TextStrokeColor3 = Color3.new(1, 0.333333, 0.498039)
- TextLabel130.TextStrokeTransparency = 0.89999997615814
- TextLabel130.TextTransparency = 0.10000000149012
- TextLabel130.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel131.Name = "TCS"
- TextLabel131.Parent = Frame118
- TextLabel131.Position = UDim2.new(0.5, 130, 1, -120)
- TextLabel131.Visible = false
- TextLabel131.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel131.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel131.BackgroundTransparency = 1
- TextLabel131.BorderSizePixel = 0
- TextLabel131.Font = Enum.Font.ArialBold
- TextLabel131.FontSize = Enum.FontSize.Size18
- TextLabel131.Text = "TCS"
- TextLabel131.TextColor = BrickColor.new("Deep orange")
- TextLabel131.TextColor3 = Color3.new(1, 0.666667, 0)
- TextLabel131.TextSize = 18
- TextLabel131.TextStrokeColor3 = Color3.new(1, 0.666667, 0)
- TextLabel131.TextStrokeTransparency = 0.89999997615814
- TextLabel131.TextTransparency = 0.10000000149012
- TextLabel131.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel132.Name = "TMode"
- TextLabel132.Parent = Frame118
- TextLabel132.Position = UDim2.new(0.5, -165, 1, -40)
- TextLabel132.Size = UDim2.new(0, 40, 0, 20)
- TextLabel132.BackgroundColor = BrickColor.new("Deep orange")
- TextLabel132.BackgroundColor3 = Color3.new(1, 0.666667, 0)
- TextLabel132.BackgroundTransparency = 0.5
- TextLabel132.BorderSizePixel = 0
- TextLabel132.Font = Enum.Font.ArialBold
- TextLabel132.FontSize = Enum.FontSize.Size18
- TextLabel132.Text = "A/T"
- TextLabel132.TextColor = BrickColor.new("Institutional white")
- TextLabel132.TextColor3 = Color3.new(1, 1, 1)
- TextLabel132.TextSize = 18
- TextLabel132.TextStrokeColor3 = Color3.new(1, 0.666667, 0)
- TextLabel132.TextStrokeTransparency = 0.89999997615814
- TextLabel132.TextTransparency = 0.10000000149012
- TextButton133.Name = "Speed"
- TextButton133.Parent = Frame118
- TextButton133.Position = UDim2.new(0.5, 150, 1, -80)
- TextButton133.Size = UDim2.new(0, 100, 0, 20)
- TextButton133.BackgroundColor = BrickColor.new("Institutional white")
- TextButton133.BackgroundColor3 = Color3.new(1, 1, 1)
- TextButton133.BackgroundTransparency = 1
- TextButton133.BorderSizePixel = 0
- TextButton133.ZIndex = 2
- TextButton133.Font = Enum.Font.ArialBold
- TextButton133.FontSize = Enum.FontSize.Size24
- TextButton133.Text = "0 SPS"
- TextButton133.TextColor = BrickColor.new("Institutional white")
- TextButton133.TextColor3 = Color3.new(1, 1, 1)
- TextButton133.TextSize = 24
- TextButton133.TextStrokeColor3 = Color3.new(0.835294, 0.835294, 0.835294)
- TextButton133.TextStrokeTransparency = 0.89999997615814
- TextButton133.TextTransparency = 0.10000000149012
- TextButton133.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel134.Name = "ABS"
- TextLabel134.Parent = Frame118
- TextLabel134.Position = UDim2.new(0.5, 130, 1, -140)
- TextLabel134.Visible = false
- TextLabel134.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel134.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel134.BackgroundTransparency = 1
- TextLabel134.BorderSizePixel = 0
- TextLabel134.Font = Enum.Font.ArialBold
- TextLabel134.FontSize = Enum.FontSize.Size18
- TextLabel134.Text = "ABS"
- TextLabel134.TextColor = BrickColor.new("Deep orange")
- TextLabel134.TextColor3 = Color3.new(1, 0.666667, 0)
- TextLabel134.TextSize = 18
- TextLabel134.TextStrokeColor3 = Color3.new(1, 0.666667, 0)
- TextLabel134.TextStrokeTransparency = 0.89999997615814
- TextLabel134.TextTransparency = 0.10000000149012
- TextLabel134.TextXAlignment = Enum.TextXAlignment.Right
- LocalScript135.Name = "Gauges_AC6"
- LocalScript135.Parent = Frame118
- table.insert(cors,sandbox(LocalScript135,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare
- ]]
- local autoscaling = false --Estimates top speed
- local UNITS = { --Click on speed to change units
- --First unit is default
- {
- units = "MPH" ,
- scaling = (10/12) * (60/88) , -- 1 stud : 10 inches | ft/s to MPH
- maxSpeed = 230 ,
- spInc = 20 , -- Increment between labelled notches
- },
- {
- units = "KM/H" ,
- scaling = (10/12) * 1.09728 , -- 1 stud : 10 inches | ft/s to KP/H
- maxSpeed = 370 ,
- spInc = 40 , -- Increment between labelled notches
- },
- {
- units = "SPS" ,
- scaling = 1 , -- Roblox standard
- maxSpeed = 400 ,
- spInc = 40 , -- Increment between labelled notches
- }
- }
- -----------------------------------------------------------------------------------------------
- script.Parent:WaitForChild("Speedo")
- script.Parent:WaitForChild("Tach")
- script.Parent:WaitForChild("ln")
- script.Parent:WaitForChild("Gear")
- script.Parent:WaitForChild("Speed")
- local player=game.Players.LocalPlayer
- local mouse=player:GetMouse()
- local car = script.Parent.Parent.Car.Value
- car.DriveSeat.HeadsUpDisplay = false
- local _Tune = require(car["A-Chassis Tune"])
- local _pRPM = _Tune.PeakRPM
- local _lRPM = _Tune.Redline
- local currentUnits = 1
- local revEnd = math.ceil(_lRPM/1000)
- --Automatic Gauge Scaling
- if autoscaling then
- local Drive={}
- if _Tune.Config == "FWD" or _Tune.Config == "AWD" then
- if car.Wheels:FindFirstChild("FL")~= nil then
- table.insert(Drive,car.Wheels.FL)
- end
- if car.Wheels:FindFirstChild("FR")~= nil then
- table.insert(Drive,car.Wheels.FR)
- end
- if car.Wheels:FindFirstChild("F")~= nil then
- table.insert(Drive,car.Wheels.F)
- end
- end
- if _Tune.Config == "RWD" or _Tune.Config == "AWD" then
- if car.Wheels:FindFirstChild("RL")~= nil then
- table.insert(Drive,car.Wheels.RL)
- end
- if car.Wheels:FindFirstChild("RR")~= nil then
- table.insert(Drive,car.Wheels.RR)
- end
- if car.Wheels:FindFirstChild("R")~= nil then
- table.insert(Drive,car.Wheels.R)
- end
- end
- local wDia = 0
- for i,v in pairs(Drive) do
- if v.Size.x>wDia then wDia = v.Size.x end
- end
- Drive = nil
- for i,v in pairs(UNITS) do
- v.maxSpeed = math.ceil(v.scaling*wDia*math.pi*_lRPM/60/_Tune.Ratios[#_Tune.Ratios]/_Tune.FinalDrive)
- v.spInc = math.max(math.ceil(v.maxSpeed/200)*20,20)
- end
- end
- for i=0,revEnd*2 do
- local ln = script.Parent.ln:clone()
- ln.Parent = script.Parent.Tach
- ln.Rotation = 45 + i * 225 / (revEnd*2)
- ln.Num.Text = i/2
- ln.Num.Rotation = -ln.Rotation
- if i*500>=math.floor(_pRPM/500)*500 then
- ln.Frame.BackgroundColor3 = Color3.new(1,0,0)
- if i<revEnd*2 then
- ln2 = ln:clone()
- ln2.Parent = script.Parent.Tach
- ln2.Rotation = 45 + (i+.5) * 225 / (revEnd*2)
- ln2.Num:Destroy()
- ln2.Visible=true
- end
- end
- if i%2==0 then
- ln.Frame.Size = UDim2.new(0,3,0,10)
- ln.Frame.Position = UDim2.new(0,-1,0,100)
- ln.Num.Visible = true
- else
- ln.Num:Destroy()
- end
- ln.Visible=true
- end
- local lns = Instance.new("Frame",script.Parent.Speedo)
- lns.Name = "lns"
- lns.BackgroundTransparency = 1
- lns.BorderSizePixel = 0
- lns.Size = UDim2.new(0,0,0,0)
- for i=1,90 do
- local ln = script.Parent.ln:clone()
- ln.Parent = lns
- ln.Rotation = 45 + 225*(i/90)
- if i%2==0 then
- ln.Frame.Size = UDim2.new(0,2,0,10)
- ln.Frame.Position = UDim2.new(0,-1,0,100)
- else
- ln.Frame.Size = UDim2.new(0,3,0,5)
- end
- ln.Num:Destroy()
- ln.Visible=true
- end
- for i,v in pairs(UNITS) do
- local lnn = Instance.new("Frame",script.Parent.Speedo)
- lnn.BackgroundTransparency = 1
- lnn.BorderSizePixel = 0
- lnn.Size = UDim2.new(0,0,0,0)
- lnn.Name = v.units
- if i~= 1 then lnn.Visible=false end
- for i=0,v.maxSpeed,v.spInc do
- local ln = script.Parent.ln:clone()
- ln.Parent = lnn
- ln.Rotation = 45 + 225*(i/v.maxSpeed)
- ln.Num.Text = i
- ln.Num.TextSize = 14
- ln.Num.Rotation = -ln.Rotation
- ln.Frame:Destroy()
- ln.Num.Visible=true
- ln.Visible=true
- end
- end
- if script.Parent.Parent.IsOn.Value then
- script.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
- end
- script.Parent.Parent.IsOn.Changed:connect(function()
- if script.Parent.Parent.IsOn.Value then
- script.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
- end
- end)
- script.Parent.Parent.Values.RPM.Changed:connect(function()
- script.Parent.Tach.Needle.Rotation = 45 + 225 * math.min(1,script.Parent.Parent.Values.RPM.Value / (revEnd*1000))
- end)
- script.Parent.Parent.Values.Gear.Changed:connect(function()
- local gearText = script.Parent.Parent.Values.Gear.Value
- if gearText == 0 then gearText = "N"
- elseif gearText == -1 then gearText = "R"
- end
- script.Parent.Gear.Text = gearText
- end)
- script.Parent.Parent.Values.TCS.Changed:connect(function()
- if _Tune.TCSEnabled then
- if script.Parent.Parent.Values.TCS.Value then
- script.Parent.TCS.TextColor3 = Color3.new(1,170/255,0)
- script.Parent.TCS.TextStrokeColor3 = Color3.new(1,170/255,0)
- if script.Parent.Parent.Values.TCSActive.Value then
- wait()
- script.Parent.TCS.Visible = not script.Parent.TCS.Visible
- else
- wait()
- script.Parent.TCS.Visible = false
- end
- else
- script.Parent.TCS.Visible = true
- script.Parent.TCS.TextColor3 = Color3.new(1,0,0)
- script.Parent.TCS.TextStrokeColor3 = Color3.new(1,0,0)
- end
- else
- script.Parent.TCS.Visible = false
- end
- end)
- script.Parent.Parent.Values.TCSActive.Changed:connect(function()
- if _Tune.TCSEnabled then
- if script.Parent.Parent.Values.TCSActive.Value and script.Parent.Parent.Values.TCS.Value then
- wait()
- script.Parent.TCS.Visible = not script.Parent.TCS.Visible
- elseif not script.Parent.Parent.Values.TCS.Value then
- wait()
- script.Parent.TCS.Visible = true
- else
- wait()
- script.Parent.TCS.Visible = false
- end
- else
- script.Parent.TCS.Visible = false
- end
- end)
- script.Parent.TCS.Changed:connect(function()
- if _Tune.TCSEnabled then
- if script.Parent.Parent.Values.TCSActive.Value and script.Parent.Parent.Values.TCS.Value then
- wait()
- script.Parent.TCS.Visible = not script.Parent.TCS.Visible
- elseif not script.Parent.Parent.Values.TCS.Value then
- wait()
- script.Parent.TCS.Visible = true
- end
- else
- if script.Parent.TCS.Visible then
- script.Parent.TCS.Visible = false
- end
- end
- end)
- script.Parent.Parent.Values.ABS.Changed:connect(function()
- if _Tune.ABSEnabled then
- if script.Parent.Parent.Values.ABS.Value then
- script.Parent.ABS.TextColor3 = Color3.new(1,170/255,0)
- script.Parent.ABS.TextStrokeColor3 = Color3.new(1,170/255,0)
- if script.Parent.Parent.Values.ABSActive.Value then
- wait()
- script.Parent.ABS.Visible = not script.Parent.ABS.Visible
- else
- wait()
- script.Parent.ABS.Visible = false
- end
- else
- script.Parent.ABS.Visible = true
- script.Parent.ABS.TextColor3 = Color3.new(1,0,0)
- script.Parent.ABS.TextStrokeColor3 = Color3.new(1,0,0)
- end
- else
- script.Parent.ABS.Visible = false
- end
- end)
- script.Parent.Parent.Values.ABSActive.Changed:connect(function()
- if _Tune.ABSEnabled then
- if script.Parent.Parent.Values.ABSActive.Value and script.Parent.Parent.Values.ABS.Value then
- wait()
- script.Parent.ABS.Visible = not script.Parent.ABS.Visible
- elseif not script.Parent.Parent.Values.ABS.Value then
- wait()
- script.Parent.ABS.Visible = true
- else
- wait()
- script.Parent.ABS.Visible = false
- end
- else
- script.Parent.ABS.Visible = false
- end
- end)
- script.Parent.ABS.Changed:connect(function()
- if _Tune.ABSEnabled then
- if script.Parent.Parent.Values.ABSActive.Value and script.Parent.Parent.Values.ABS.Value then
- wait()
- script.Parent.ABS.Visible = not script.Parent.ABS.Visible
- elseif not script.Parent.Parent.Values.ABS.Value then
- wait()
- script.Parent.ABS.Visible = true
- end
- else
- if script.Parent.ABS.Visible then
- script.Parent.ABS.Visible = false
- end
- end
- end)
- function PBrake()
- script.Parent.PBrake.Visible = script.Parent.Parent.Values.PBrake.Value
- end
- script.Parent.Parent.Values.PBrake.Changed:connect(PBrake)
- function Gear()
- if script.Parent.Parent.Values.TransmissionMode.Value == "Auto" then
- script.Parent.TMode.Text = "A/T"
- script.Parent.TMode.BackgroundColor3 = Color3.new(1,170/255,0)
- elseif script.Parent.Parent.Values.TransmissionMode.Value == "Semi" then
- script.Parent.TMode.Text = "S/T"
- script.Parent.TMode.BackgroundColor3 = Color3.new(0, 170/255, 127/255)
- else
- script.Parent.TMode.Text = "M/T"
- script.Parent.TMode.BackgroundColor3 = Color3.new(1,85/255,.5)
- end
- end
- script.Parent.Parent.Values.TransmissionMode.Changed:connect(Gear)
- script.Parent.Parent.Values.Velocity.Changed:connect(function(property)
- script.Parent.Speedo.Needle.Rotation =45 + 225 * math.min(1,UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude/UNITS[currentUnits].maxSpeed)
- script.Parent.Speed.Text = math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude) .. " "..UNITS[currentUnits].units
- end)
- script.Parent.Speed.MouseButton1Click:connect(function()
- if currentUnits==#UNITS then
- currentUnits = 1
- else
- currentUnits = currentUnits+1
- end
- for i,v in pairs(script.Parent.Speedo:GetChildren()) do
- v.Visible=v.Name==UNITS[currentUnits].units or v.Name=="Needle" or v.Name=="lns"
- end
- script.Parent.Speed.Text = math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude) .. " "..UNITS[currentUnits].units
- end)
- wait(.1)
- Gear()
- PBrake()
- end))
- Frame136.Name = "AC6_Controls_Module"
- Frame136.Parent = Folder100
- Frame136.Size = UDim2.new(1, 0, 1, 0)
- Frame136.BackgroundColor = BrickColor.new("Institutional white")
- Frame136.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame136.BackgroundTransparency = 1
- Frame136.BorderSizePixel = 0
- Frame136.ZIndex = 3
- LocalScript137.Name = "Controls_AC6"
- LocalScript137.Parent = Frame136
- table.insert(cors,sandbox(LocalScript137,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare
- ]]
- ---Controls UI
- script.Parent.Parent:WaitForChild("Controls")
- script.Parent.Parent:WaitForChild("ControlsOpen")
- script.Parent:WaitForChild("Window")
- script.Parent:WaitForChild("Toggle")
- local car = script.Parent.Parent.Car.Value
- local _Tune = require(car["A-Chassis Tune"])
- local UserInputService = game:GetService("UserInputService")
- local cPanel = script.Parent
- local Controls = script.Parent.Parent.Controls
- local ver = require(car["A-Chassis Tune"].README)
- cPanel.Window["//INSPARE"].Text = "A-Chassis "..ver.." // INSPARE"
- local controlsOpen = false
- local cInputB = nil
- local cInputT = nil
- local cInput = false
- local UIS1 = nil
- local UIS2 = nil
- for i,v in pairs(_Tune.Peripherals) do
- script.Parent.Parent.Controls:WaitForChild(i)
- local slider = cPanel.Window.Content[i]
- slider.Text = v.."%"
- slider.S.CanvasPosition=Vector2.new(v*(slider.S.CanvasSize.X.Offset-slider.S.Size.X.Offset)/100,0)
- slider.S.Changed:connect(function(property)
- if property=="CanvasPosition" then
- Controls[i].Value = math.floor(100*slider.S.CanvasPosition.x/(slider.S.CanvasSize.X.Offset-slider.S.Size.X.Offset))
- slider.Text = Controls[i].Value.."%"
- end
- end)
- end
- for i,v in pairs(_Tune.Controls) do
- script.Parent.Parent.Controls:WaitForChild(i)
- local button = cPanel.Window.Content[i]
- button.Text = v.Name
- button.MouseButton1Click:connect(function()
- if UIS1 ~= nil then UIS1:disconnect() end
- if UIS2 ~= nil then UIS2:disconnect() end
- UIS1 = UserInputService.InputBegan:connect(function(input)
- if cInput then
- cInputB = input.KeyCode
- cInputT = input.UserInputType
- end
- end)
- UIS2 = UserInputService.InputChanged:connect(function(input)
- if cInput and (input.KeyCode==Enum.KeyCode.Thumbstick1 or input.KeyCode==Enum.KeyCode.Thumbstick2) then
- cInputB = input.KeyCode
- cInputT = input.UserInputType
- end
- end)
- script.Parent.Parent.ControlsOpen.Value = true
- cPanel.Window.Overlay.Visible = true
- cInput = true
- repeat wait() until cInputB~=nil
- if UIS1 ~= nil then UIS1:disconnect() end
- if UIS2 ~= nil then UIS2:disconnect() end
- if cInputB == Enum.KeyCode.Return or cInputB == Enum.KeyCode.KeypadEnter then
- --do nothing
- elseif string.find(i,"Contlr")~=nil then
- if cInputT.Name:find("Gamepad") then
- Controls[i].Value = cInputB.Name
- button.Text = cInputB.Name
- else
- cPanel.Window.Error.Visible = true
- end
- elseif i=="MouseThrottle" or i=="MouseBrake" then
- if cInputT == Enum.UserInputType.MouseButton1 or cInputT == Enum.UserInputType.MouseButton2 then
- Controls[i].Value = cInputT.Name
- button.Text = cInputT.Name
- elseif cInputT == Enum.UserInputType.Keyboard then
- Controls[i].Value = cInputB.Name
- button.Text = cInputB.Name
- else
- cPanel.Window.Error.Visible = true
- end
- else
- if cInputT == Enum.UserInputType.Keyboard then
- Controls[i].Value = cInputB.Name
- button.Text = cInputB.Name
- else
- cPanel.Window.Error.Visible = true
- end
- end
- cInputB = nil
- cInputT = nil
- cInput = false
- wait(.2)
- cPanel.Window.Overlay.Visible = false
- script.Parent.Parent.ControlsOpen.Value = false
- end)
- end
- cPanel.Window.Error.Changed:connect(function(property)
- if property == "Visible" then
- wait(3)
- cPanel.Window.Error.Visible = false
- end
- end)
- cPanel.Toggle.MouseButton1Click:connect(function()
- controlsOpen = not controlsOpen
- if controlsOpen then
- cPanel.Toggle.BackgroundColor3 = Color3.new(1,85/255,.5)
- cPanel.Window:TweenPosition(UDim2.new(0.5, -250,0.5, -250),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.7,true)
- else
- if UIS1 ~= nil then UIS1:disconnect() end
- if UIS2 ~= nil then UIS2:disconnect() end
- cPanel.Toggle.BackgroundColor3 = Color3.new(1,170/255,0)
- cPanel.Window:TweenPosition(UDim2.new(0.5, -250,0, -500),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.7,true)
- end
- end)
- cPanel.Window.Tabs.Keyboard.MouseButton1Click:connect(function()
- cPanel.Window.Content:TweenPosition(UDim2.new(0, 0, 0, 60),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Keyboard:TweenPosition(UDim2.new(0, 5, 0, 0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Mouse:TweenPosition(UDim2.new(0, 120, 0, -5),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Controller:TweenPosition(UDim2.new(0, 235, 0, -5),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- end)
- cPanel.Window.Tabs.Mouse.MouseButton1Click:connect(function()
- cPanel.Window.Content:TweenPosition(UDim2.new(-1, 0, 0, 60),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Keyboard:TweenPosition(UDim2.new(0, 5, 0, -5),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Mouse:TweenPosition(UDim2.new(0, 120, 0, 0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Controller:TweenPosition(UDim2.new(0, 235, 0, -5),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- end)
- cPanel.Window.Tabs.Controller.MouseButton1Click:connect(function()
- cPanel.Window.Content:TweenPosition(UDim2.new(-2, 0, 0, 60),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Keyboard:TweenPosition(UDim2.new(0, 5, 0, -5),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Mouse:TweenPosition(UDim2.new(0, 120, 0, -5),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- cPanel.Window.Tabs.Controller:TweenPosition(UDim2.new(0, 235, 0, 0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,true)
- end)
- wait(.5)
- cPanel.Toggle:TweenPosition(UDim2.new(0.5, -50, 1, -25),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,.4,false)
- for i=1,6 do
- cPanel.Toggle.BackgroundColor3 = Color3.new(100/255,100/255,100/255)
- wait(.2)
- if controlsOpen then
- cPanel.Toggle.BackgroundColor3 = Color3.new(1,85/255,.5)
- else
- cPanel.Toggle.BackgroundColor3 = Color3.new(1,170/255,0)
- end
- wait(.2)
- end
- end))
- Frame138.Name = "Window"
- Frame138.Parent = Frame136
- Frame138.Position = UDim2.new(0.5, -250, 0, -500)
- Frame138.Size = UDim2.new(0, 500, 0, 400)
- Frame138.BackgroundColor = BrickColor.new("Really black")
- Frame138.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame138.BackgroundTransparency = 0.5
- Frame138.BorderSizePixel = 0
- Frame138.ClipsDescendants = true
- Frame138.ZIndex = 3
- TextLabel139.Name = "Overlay"
- TextLabel139.Parent = Frame138
- TextLabel139.Visible = false
- TextLabel139.Size = UDim2.new(1, 0, 1, 0)
- TextLabel139.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel139.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel139.BackgroundTransparency = 0.5
- TextLabel139.BorderSizePixel = 0
- TextLabel139.ZIndex = 4
- TextLabel139.Font = Enum.Font.SourceSansItalic
- TextLabel139.FontSize = Enum.FontSize.Size28
- TextLabel139.Text = "[Press a key to assign or Enter to cancel]"
- TextLabel139.TextColor = BrickColor.new("Institutional white")
- TextLabel139.TextColor3 = Color3.new(1, 1, 1)
- TextLabel139.TextSize = 28
- TextLabel139.TextStrokeColor3 = Color3.new(0.184314, 0.184314, 0.184314)
- TextLabel139.TextStrokeTransparency = 0
- TextLabel140.Name = "Error"
- TextLabel140.Parent = Frame138
- TextLabel140.Position = UDim2.new(0.5, 0, 0, 20)
- TextLabel140.Visible = false
- TextLabel140.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel140.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel140.BackgroundTransparency = 1
- TextLabel140.BorderSizePixel = 0
- TextLabel140.ZIndex = 3
- TextLabel140.Font = Enum.Font.SourceSansItalic
- TextLabel140.FontSize = Enum.FontSize.Size18
- TextLabel140.Text = "Invalid Input"
- TextLabel140.TextColor = BrickColor.new("Really red")
- TextLabel140.TextColor3 = Color3.new(1, 0, 0)
- TextLabel140.TextSize = 18
- TextLabel140.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel140.TextStrokeTransparency = 0.94999998807907
- TextLabel141.Name = "//INSPARE"
- TextLabel141.Parent = Frame138
- TextLabel141.Position = UDim2.new(1, -20, 0, 20)
- TextLabel141.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel141.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel141.BackgroundTransparency = 1
- TextLabel141.BorderSizePixel = 0
- TextLabel141.ZIndex = 3
- TextLabel141.Font = Enum.Font.SourceSansLight
- TextLabel141.FontSize = Enum.FontSize.Size14
- TextLabel141.Text = "A-Chassis 6 by //INSPARE"
- TextLabel141.TextColor = BrickColor.new("Institutional white")
- TextLabel141.TextColor3 = Color3.new(1, 1, 1)
- TextLabel141.TextSize = 14
- TextLabel141.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel141.TextStrokeTransparency = 0.94999998807907
- TextLabel141.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel142.Name = "Header"
- TextLabel142.Parent = Frame138
- TextLabel142.Position = UDim2.new(0, 10, 0, 20)
- TextLabel142.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel142.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel142.BackgroundTransparency = 1
- TextLabel142.BorderSizePixel = 0
- TextLabel142.ZIndex = 3
- TextLabel142.Font = Enum.Font.SourceSansLight
- TextLabel142.FontSize = Enum.FontSize.Size32
- TextLabel142.Text = "Controls"
- TextLabel142.TextColor = BrickColor.new("Institutional white")
- TextLabel142.TextColor3 = Color3.new(1, 1, 1)
- TextLabel142.TextSize = 32
- TextLabel142.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel142.TextStrokeTransparency = 0.94999998807907
- TextLabel142.TextXAlignment = Enum.TextXAlignment.Left
- Frame143.Name = "Tabs"
- Frame143.Parent = Frame138
- Frame143.Position = UDim2.new(0, 5, 0, 40)
- Frame143.Size = UDim2.new(0, 490, 0, 20)
- Frame143.BackgroundColor = BrickColor.new("Institutional white")
- Frame143.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame143.BackgroundTransparency = 1
- Frame143.BorderSizePixel = 0
- Frame143.ClipsDescendants = true
- Frame143.ZIndex = 3
- TextButton144.Name = "Controller"
- TextButton144.Parent = Frame143
- TextButton144.Position = UDim2.new(0, 235, 0, -5)
- TextButton144.Size = UDim2.new(0, 100, 0, 20)
- TextButton144.BackgroundColor = BrickColor.new("Institutional white")
- TextButton144.BackgroundColor3 = Color3.new(1, 1, 1)
- TextButton144.BorderSizePixel = 0
- TextButton144.ZIndex = 3
- TextButton144.Font = Enum.Font.SourceSans
- TextButton144.FontSize = Enum.FontSize.Size14
- TextButton144.Text = "Controller"
- TextButton144.TextColor = BrickColor.new("Dark stone grey")
- TextButton144.TextColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextButton144.TextSize = 14
- TextButton144.TextStrokeTransparency = 0.94999998807907
- TextButton144.TextYAlignment = Enum.TextYAlignment.Bottom
- TextButton145.Name = "Mouse"
- TextButton145.Parent = Frame143
- TextButton145.Position = UDim2.new(0, 120, 0, -5)
- TextButton145.Size = UDim2.new(0, 100, 0, 20)
- TextButton145.BackgroundColor = BrickColor.new("Institutional white")
- TextButton145.BackgroundColor3 = Color3.new(1, 1, 1)
- TextButton145.BorderSizePixel = 0
- TextButton145.ZIndex = 3
- TextButton145.Font = Enum.Font.SourceSans
- TextButton145.FontSize = Enum.FontSize.Size14
- TextButton145.Text = "Mouse"
- TextButton145.TextColor = BrickColor.new("Dark stone grey")
- TextButton145.TextColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextButton145.TextSize = 14
- TextButton145.TextStrokeTransparency = 0.94999998807907
- TextButton145.TextYAlignment = Enum.TextYAlignment.Bottom
- TextButton146.Name = "Keyboard"
- TextButton146.Parent = Frame143
- TextButton146.Position = UDim2.new(0, 5, 0, 0)
- TextButton146.Size = UDim2.new(0, 100, 0, 20)
- TextButton146.BackgroundColor = BrickColor.new("Institutional white")
- TextButton146.BackgroundColor3 = Color3.new(1, 1, 1)
- TextButton146.BorderSizePixel = 0
- TextButton146.ZIndex = 3
- TextButton146.Font = Enum.Font.SourceSans
- TextButton146.FontSize = Enum.FontSize.Size14
- TextButton146.Text = "Keyboard"
- TextButton146.TextColor = BrickColor.new("Dark stone grey")
- TextButton146.TextColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextButton146.TextSize = 14
- TextButton146.TextStrokeTransparency = 0.94999998807907
- TextButton146.TextYAlignment = Enum.TextYAlignment.Bottom
- Frame147.Name = "Line"
- Frame147.Parent = Frame143
- Frame147.Size = UDim2.new(1, 0, 0, 2)
- Frame147.BackgroundColor = BrickColor.new("Institutional white")
- Frame147.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame147.BorderSizePixel = 0
- Frame147.ZIndex = 3
- Frame148.Name = "Content"
- Frame148.Parent = Frame138
- Frame148.Position = UDim2.new(0, 0, 0, 60)
- Frame148.Size = UDim2.new(1, 0, 1, -60)
- Frame148.BackgroundColor = BrickColor.new("Institutional white")
- Frame148.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame148.BackgroundTransparency = 1
- Frame148.BorderSizePixel = 0
- Frame148.ZIndex = 3
- TextLabel149.Name = "ControlRDZone"
- TextLabel149.Parent = Frame148
- TextLabel149.Position = UDim2.new(2, 200, 0, 240)
- TextLabel149.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel149.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel149.BackgroundTransparency = 1
- TextLabel149.BorderSizePixel = 0
- TextLabel149.ZIndex = 3
- TextLabel149.Font = Enum.Font.SourceSansItalic
- TextLabel149.FontSize = Enum.FontSize.Size18
- TextLabel149.Text = "100%"
- TextLabel149.TextColor = BrickColor.new("Institutional white")
- TextLabel149.TextColor3 = Color3.new(1, 1, 1)
- TextLabel149.TextSize = 18
- TextLabel149.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel149.TextStrokeTransparency = 0.94999998807907
- TextLabel149.TextXAlignment = Enum.TextXAlignment.Right
- ScrollingFrame150.Name = "S"
- ScrollingFrame150.Parent = TextLabel149
- ScrollingFrame150.Position = UDim2.new(0, 10, 0, 2)
- ScrollingFrame150.Size = UDim2.new(0, 260, 0, 3)
- ScrollingFrame150.BackgroundColor = BrickColor.new("Really black")
- ScrollingFrame150.BackgroundColor3 = Color3.new(0, 0, 0)
- ScrollingFrame150.BackgroundTransparency = 0.5
- ScrollingFrame150.BorderSizePixel = 0
- ScrollingFrame150.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- ScrollingFrame150.CanvasSize = UDim2.new(0, 5200, 0, 0)
- ScrollingFrame150.ScrollBarThickness = 8
- ScrollingFrame150.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- TextLabel151.Name = "ControlLDZone"
- TextLabel151.Parent = Frame148
- TextLabel151.Position = UDim2.new(2, 200, 0, 220)
- TextLabel151.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel151.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel151.BackgroundTransparency = 1
- TextLabel151.BorderSizePixel = 0
- TextLabel151.ZIndex = 3
- TextLabel151.Font = Enum.Font.SourceSansItalic
- TextLabel151.FontSize = Enum.FontSize.Size18
- TextLabel151.Text = "100%"
- TextLabel151.TextColor = BrickColor.new("Institutional white")
- TextLabel151.TextColor3 = Color3.new(1, 1, 1)
- TextLabel151.TextSize = 18
- TextLabel151.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel151.TextStrokeTransparency = 0.94999998807907
- TextLabel151.TextXAlignment = Enum.TextXAlignment.Right
- ScrollingFrame152.Name = "S"
- ScrollingFrame152.Parent = TextLabel151
- ScrollingFrame152.Position = UDim2.new(0, 10, 0, 2)
- ScrollingFrame152.Size = UDim2.new(0, 260, 0, 3)
- ScrollingFrame152.BackgroundColor = BrickColor.new("Really black")
- ScrollingFrame152.BackgroundColor3 = Color3.new(0, 0, 0)
- ScrollingFrame152.BackgroundTransparency = 0.5
- ScrollingFrame152.BorderSizePixel = 0
- ScrollingFrame152.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- ScrollingFrame152.CanvasSize = UDim2.new(0, 5200, 0, 0)
- ScrollingFrame152.ScrollBarThickness = 8
- ScrollingFrame152.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- TextLabel153.Name = "MSteerWidth"
- TextLabel153.Parent = Frame148
- TextLabel153.Position = UDim2.new(1, 200, 0, 180)
- TextLabel153.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel153.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel153.BackgroundTransparency = 1
- TextLabel153.BorderSizePixel = 0
- TextLabel153.ZIndex = 3
- TextLabel153.Font = Enum.Font.SourceSansItalic
- TextLabel153.FontSize = Enum.FontSize.Size18
- TextLabel153.Text = "100%"
- TextLabel153.TextColor = BrickColor.new("Institutional white")
- TextLabel153.TextColor3 = Color3.new(1, 1, 1)
- TextLabel153.TextSize = 18
- TextLabel153.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel153.TextStrokeTransparency = 0.94999998807907
- TextLabel153.TextXAlignment = Enum.TextXAlignment.Right
- ScrollingFrame154.Name = "S"
- ScrollingFrame154.Parent = TextLabel153
- ScrollingFrame154.Position = UDim2.new(0, 10, 0, 2)
- ScrollingFrame154.Size = UDim2.new(0, 260, 0, 3)
- ScrollingFrame154.BackgroundColor = BrickColor.new("Really black")
- ScrollingFrame154.BackgroundColor3 = Color3.new(0, 0, 0)
- ScrollingFrame154.BackgroundTransparency = 0.5
- ScrollingFrame154.BorderSizePixel = 0
- ScrollingFrame154.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- ScrollingFrame154.CanvasSize = UDim2.new(0, 5200, 0, 0)
- ScrollingFrame154.ScrollBarThickness = 8
- ScrollingFrame154.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- TextLabel155.Name = "MSteerDZone"
- TextLabel155.Parent = Frame148
- TextLabel155.Position = UDim2.new(1, 200, 0, 160)
- TextLabel155.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel155.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel155.BackgroundTransparency = 1
- TextLabel155.BorderSizePixel = 0
- TextLabel155.ZIndex = 3
- TextLabel155.Font = Enum.Font.SourceSansItalic
- TextLabel155.FontSize = Enum.FontSize.Size18
- TextLabel155.Text = "100%"
- TextLabel155.TextColor = BrickColor.new("Institutional white")
- TextLabel155.TextColor3 = Color3.new(1, 1, 1)
- TextLabel155.TextSize = 18
- TextLabel155.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel155.TextStrokeTransparency = 0.94999998807907
- TextLabel155.TextXAlignment = Enum.TextXAlignment.Right
- ScrollingFrame156.Name = "S"
- ScrollingFrame156.Parent = TextLabel155
- ScrollingFrame156.Position = UDim2.new(0, 10, 0, 2)
- ScrollingFrame156.Size = UDim2.new(0, 260, 0, 3)
- ScrollingFrame156.BackgroundColor = BrickColor.new("Really black")
- ScrollingFrame156.BackgroundColor3 = Color3.new(0, 0, 0)
- ScrollingFrame156.BackgroundTransparency = 0.5
- ScrollingFrame156.BorderSizePixel = 0
- ScrollingFrame156.BottomImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- ScrollingFrame156.CanvasSize = UDim2.new(0, 5200, 0, 0)
- ScrollingFrame156.ScrollBarThickness = 8
- ScrollingFrame156.TopImage = "rbxasset://textures/ui/Scroll/scroll-middle.png"
- TextLabel157.Name = "T"
- TextLabel157.Parent = Frame148
- TextLabel157.Position = UDim2.new(2, 150, 0, 240)
- TextLabel157.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel157.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel157.BackgroundTransparency = 1
- TextLabel157.BorderSizePixel = 0
- TextLabel157.ZIndex = 3
- TextLabel157.Font = Enum.Font.SourceSansItalic
- TextLabel157.FontSize = Enum.FontSize.Size18
- TextLabel157.Text = "Right Deadzone"
- TextLabel157.TextColor = BrickColor.new("Institutional white")
- TextLabel157.TextColor3 = Color3.new(1, 1, 1)
- TextLabel157.TextSize = 18
- TextLabel157.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel157.TextStrokeTransparency = 0.94999998807907
- TextLabel157.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel158.Name = "T"
- TextLabel158.Parent = Frame148
- TextLabel158.Position = UDim2.new(2, 150, 0, 220)
- TextLabel158.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel158.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel158.BackgroundTransparency = 1
- TextLabel158.BorderSizePixel = 0
- TextLabel158.ZIndex = 3
- TextLabel158.Font = Enum.Font.SourceSansItalic
- TextLabel158.FontSize = Enum.FontSize.Size18
- TextLabel158.Text = "Left Deadzone"
- TextLabel158.TextColor = BrickColor.new("Institutional white")
- TextLabel158.TextColor3 = Color3.new(1, 1, 1)
- TextLabel158.TextSize = 18
- TextLabel158.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel158.TextStrokeTransparency = 0.94999998807907
- TextLabel158.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel159.Name = "T"
- TextLabel159.Parent = Frame148
- TextLabel159.Position = UDim2.new(1, 150, 0, 180)
- TextLabel159.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel159.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel159.BackgroundTransparency = 1
- TextLabel159.BorderSizePixel = 0
- TextLabel159.ZIndex = 3
- TextLabel159.Font = Enum.Font.SourceSansItalic
- TextLabel159.FontSize = Enum.FontSize.Size18
- TextLabel159.Text = "Control Width"
- TextLabel159.TextColor = BrickColor.new("Institutional white")
- TextLabel159.TextColor3 = Color3.new(1, 1, 1)
- TextLabel159.TextSize = 18
- TextLabel159.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel159.TextStrokeTransparency = 0.94999998807907
- TextLabel159.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel160.Name = "T"
- TextLabel160.Parent = Frame148
- TextLabel160.Position = UDim2.new(1, 150, 0, 160)
- TextLabel160.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel160.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel160.BackgroundTransparency = 1
- TextLabel160.BorderSizePixel = 0
- TextLabel160.ZIndex = 3
- TextLabel160.Font = Enum.Font.SourceSansItalic
- TextLabel160.FontSize = Enum.FontSize.Size18
- TextLabel160.Text = "Deadzone"
- TextLabel160.TextColor = BrickColor.new("Institutional white")
- TextLabel160.TextColor3 = Color3.new(1, 1, 1)
- TextLabel160.TextSize = 18
- TextLabel160.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel160.TextStrokeTransparency = 0.94999998807907
- TextLabel160.TextXAlignment = Enum.TextXAlignment.Right
- TextButton161.Name = "ContlrToggleTCS"
- TextButton161.Parent = Frame148
- TextButton161.Position = UDim2.new(2, 170, 0, 173)
- TextButton161.Size = UDim2.new(0, 300, 0, 15)
- TextButton161.BackgroundColor = BrickColor.new("Really black")
- TextButton161.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton161.BackgroundTransparency = 0.5
- TextButton161.BorderSizePixel = 0
- TextButton161.ZIndex = 3
- TextButton161.Font = Enum.Font.SourceSans
- TextButton161.FontSize = Enum.FontSize.Size14
- TextButton161.TextColor = BrickColor.new("Institutional white")
- TextButton161.TextColor3 = Color3.new(1, 1, 1)
- TextButton161.TextSize = 14
- TextButton162.Name = "ContlrToggleTMode"
- TextButton162.Parent = Frame148
- TextButton162.Position = UDim2.new(2, 170, 0, 153)
- TextButton162.Size = UDim2.new(0, 300, 0, 15)
- TextButton162.BackgroundColor = BrickColor.new("Really black")
- TextButton162.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton162.BackgroundTransparency = 0.5
- TextButton162.BorderSizePixel = 0
- TextButton162.ZIndex = 3
- TextButton162.Font = Enum.Font.SourceSans
- TextButton162.FontSize = Enum.FontSize.Size14
- TextButton162.TextColor = BrickColor.new("Institutional white")
- TextButton162.TextColor3 = Color3.new(1, 1, 1)
- TextButton162.TextSize = 14
- TextButton163.Name = "ContlrPBrake"
- TextButton163.Parent = Frame148
- TextButton163.Position = UDim2.new(2, 170, 0, 133)
- TextButton163.Size = UDim2.new(0, 300, 0, 15)
- TextButton163.BackgroundColor = BrickColor.new("Really black")
- TextButton163.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton163.BackgroundTransparency = 0.5
- TextButton163.BorderSizePixel = 0
- TextButton163.ZIndex = 3
- TextButton163.Font = Enum.Font.SourceSans
- TextButton163.FontSize = Enum.FontSize.Size14
- TextButton163.TextColor = BrickColor.new("Institutional white")
- TextButton163.TextColor3 = Color3.new(1, 1, 1)
- TextButton163.TextSize = 14
- TextButton164.Name = "ContlrClutch"
- TextButton164.Parent = Frame148
- TextButton164.Position = UDim2.new(2, 170, 0, 113)
- TextButton164.Size = UDim2.new(0, 300, 0, 15)
- TextButton164.BackgroundColor = BrickColor.new("Really black")
- TextButton164.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton164.BackgroundTransparency = 0.5
- TextButton164.BorderSizePixel = 0
- TextButton164.ZIndex = 3
- TextButton164.Font = Enum.Font.SourceSans
- TextButton164.FontSize = Enum.FontSize.Size14
- TextButton164.TextColor = BrickColor.new("Institutional white")
- TextButton164.TextColor3 = Color3.new(1, 1, 1)
- TextButton164.TextSize = 14
- TextButton165.Name = "ContlrShiftDown"
- TextButton165.Parent = Frame148
- TextButton165.Position = UDim2.new(2, 170, 0, 93)
- TextButton165.Size = UDim2.new(0, 300, 0, 15)
- TextButton165.BackgroundColor = BrickColor.new("Really black")
- TextButton165.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton165.BackgroundTransparency = 0.5
- TextButton165.BorderSizePixel = 0
- TextButton165.ZIndex = 3
- TextButton165.Font = Enum.Font.SourceSans
- TextButton165.FontSize = Enum.FontSize.Size14
- TextButton165.TextColor = BrickColor.new("Institutional white")
- TextButton165.TextColor3 = Color3.new(1, 1, 1)
- TextButton165.TextSize = 14
- TextButton166.Name = "ContlrShiftUp"
- TextButton166.Parent = Frame148
- TextButton166.Position = UDim2.new(2, 170, 0, 73)
- TextButton166.Size = UDim2.new(0, 300, 0, 15)
- TextButton166.BackgroundColor = BrickColor.new("Really black")
- TextButton166.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton166.BackgroundTransparency = 0.5
- TextButton166.BorderSizePixel = 0
- TextButton166.ZIndex = 3
- TextButton166.Font = Enum.Font.SourceSans
- TextButton166.FontSize = Enum.FontSize.Size14
- TextButton166.TextColor = BrickColor.new("Institutional white")
- TextButton166.TextColor3 = Color3.new(1, 1, 1)
- TextButton166.TextSize = 14
- TextButton167.Name = "ContlrSteer"
- TextButton167.Parent = Frame148
- TextButton167.Position = UDim2.new(2, 170, 0, 53)
- TextButton167.Size = UDim2.new(0, 300, 0, 15)
- TextButton167.BackgroundColor = BrickColor.new("Really black")
- TextButton167.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton167.BackgroundTransparency = 0.5
- TextButton167.BorderSizePixel = 0
- TextButton167.ZIndex = 3
- TextButton167.Font = Enum.Font.SourceSans
- TextButton167.FontSize = Enum.FontSize.Size14
- TextButton167.TextColor = BrickColor.new("Institutional white")
- TextButton167.TextColor3 = Color3.new(1, 1, 1)
- TextButton167.TextSize = 14
- TextButton168.Name = "ContlrBrake"
- TextButton168.Parent = Frame148
- TextButton168.Position = UDim2.new(2, 170, 0, 33)
- TextButton168.Size = UDim2.new(0, 300, 0, 15)
- TextButton168.BackgroundColor = BrickColor.new("Really black")
- TextButton168.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton168.BackgroundTransparency = 0.5
- TextButton168.BorderSizePixel = 0
- TextButton168.ZIndex = 3
- TextButton168.Font = Enum.Font.SourceSans
- TextButton168.FontSize = Enum.FontSize.Size14
- TextButton168.TextColor = BrickColor.new("Institutional white")
- TextButton168.TextColor3 = Color3.new(1, 1, 1)
- TextButton168.TextSize = 14
- TextButton169.Name = "ContlrThrottle"
- TextButton169.Parent = Frame148
- TextButton169.Position = UDim2.new(2, 170, 0, 13)
- TextButton169.Size = UDim2.new(0, 300, 0, 15)
- TextButton169.BackgroundColor = BrickColor.new("Really black")
- TextButton169.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton169.BackgroundTransparency = 0.5
- TextButton169.BorderSizePixel = 0
- TextButton169.ZIndex = 3
- TextButton169.Font = Enum.Font.SourceSans
- TextButton169.FontSize = Enum.FontSize.Size14
- TextButton169.TextColor = BrickColor.new("Institutional white")
- TextButton169.TextColor3 = Color3.new(1, 1, 1)
- TextButton169.TextSize = 14
- TextLabel170.Name = "T"
- TextLabel170.Parent = Frame148
- TextLabel170.Position = UDim2.new(2, 150, 0, 160)
- TextLabel170.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel170.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel170.BackgroundTransparency = 1
- TextLabel170.BorderSizePixel = 0
- TextLabel170.ZIndex = 3
- TextLabel170.Font = Enum.Font.SourceSansItalic
- TextLabel170.FontSize = Enum.FontSize.Size18
- TextLabel170.Text = "Transmission Mode"
- TextLabel170.TextColor = BrickColor.new("Institutional white")
- TextLabel170.TextColor3 = Color3.new(1, 1, 1)
- TextLabel170.TextSize = 18
- TextLabel170.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel170.TextStrokeTransparency = 0.94999998807907
- TextLabel170.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel171.Name = "T"
- TextLabel171.Parent = Frame148
- TextLabel171.Position = UDim2.new(2, 150, 0, 180)
- TextLabel171.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel171.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel171.BackgroundTransparency = 1
- TextLabel171.BorderSizePixel = 0
- TextLabel171.ZIndex = 3
- TextLabel171.Font = Enum.Font.SourceSansItalic
- TextLabel171.FontSize = Enum.FontSize.Size18
- TextLabel171.Text = "Toggle TCS"
- TextLabel171.TextColor = BrickColor.new("Institutional white")
- TextLabel171.TextColor3 = Color3.new(1, 1, 1)
- TextLabel171.TextSize = 18
- TextLabel171.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel171.TextStrokeTransparency = 0.94999998807907
- TextLabel171.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel172.Name = "T"
- TextLabel172.Parent = Frame148
- TextLabel172.Position = UDim2.new(2, 150, 0, 140)
- TextLabel172.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel172.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel172.BackgroundTransparency = 1
- TextLabel172.BorderSizePixel = 0
- TextLabel172.ZIndex = 3
- TextLabel172.Font = Enum.Font.SourceSansItalic
- TextLabel172.FontSize = Enum.FontSize.Size18
- TextLabel172.Text = "Handbrake"
- TextLabel172.TextColor = BrickColor.new("Institutional white")
- TextLabel172.TextColor3 = Color3.new(1, 1, 1)
- TextLabel172.TextSize = 18
- TextLabel172.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel172.TextStrokeTransparency = 0.94999998807907
- TextLabel172.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel173.Name = "T"
- TextLabel173.Parent = Frame148
- TextLabel173.Position = UDim2.new(2, 150, 0, 120)
- TextLabel173.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel173.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel173.BackgroundTransparency = 1
- TextLabel173.BorderSizePixel = 0
- TextLabel173.ZIndex = 3
- TextLabel173.Font = Enum.Font.SourceSansItalic
- TextLabel173.FontSize = Enum.FontSize.Size18
- TextLabel173.Text = "Clutch"
- TextLabel173.TextColor = BrickColor.new("Institutional white")
- TextLabel173.TextColor3 = Color3.new(1, 1, 1)
- TextLabel173.TextSize = 18
- TextLabel173.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel173.TextStrokeTransparency = 0.94999998807907
- TextLabel173.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel174.Name = "T"
- TextLabel174.Parent = Frame148
- TextLabel174.Position = UDim2.new(2, 150, 0, 100)
- TextLabel174.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel174.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel174.BackgroundTransparency = 1
- TextLabel174.BorderSizePixel = 0
- TextLabel174.ZIndex = 3
- TextLabel174.Font = Enum.Font.SourceSansItalic
- TextLabel174.FontSize = Enum.FontSize.Size18
- TextLabel174.Text = "Shift Down"
- TextLabel174.TextColor = BrickColor.new("Institutional white")
- TextLabel174.TextColor3 = Color3.new(1, 1, 1)
- TextLabel174.TextSize = 18
- TextLabel174.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel174.TextStrokeTransparency = 0.94999998807907
- TextLabel174.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel175.Name = "T"
- TextLabel175.Parent = Frame148
- TextLabel175.Position = UDim2.new(2, 150, 0, 80)
- TextLabel175.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel175.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel175.BackgroundTransparency = 1
- TextLabel175.BorderSizePixel = 0
- TextLabel175.ZIndex = 3
- TextLabel175.Font = Enum.Font.SourceSansItalic
- TextLabel175.FontSize = Enum.FontSize.Size18
- TextLabel175.Text = "Shift Up"
- TextLabel175.TextColor = BrickColor.new("Institutional white")
- TextLabel175.TextColor3 = Color3.new(1, 1, 1)
- TextLabel175.TextSize = 18
- TextLabel175.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel175.TextStrokeTransparency = 0.94999998807907
- TextLabel175.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel176.Name = "T"
- TextLabel176.Parent = Frame148
- TextLabel176.Position = UDim2.new(2, 150, 0, 60)
- TextLabel176.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel176.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel176.BackgroundTransparency = 1
- TextLabel176.BorderSizePixel = 0
- TextLabel176.ZIndex = 3
- TextLabel176.Font = Enum.Font.SourceSansItalic
- TextLabel176.FontSize = Enum.FontSize.Size18
- TextLabel176.Text = "Steer"
- TextLabel176.TextColor = BrickColor.new("Institutional white")
- TextLabel176.TextColor3 = Color3.new(1, 1, 1)
- TextLabel176.TextSize = 18
- TextLabel176.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel176.TextStrokeTransparency = 0.94999998807907
- TextLabel176.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel177.Name = "T"
- TextLabel177.Parent = Frame148
- TextLabel177.Position = UDim2.new(2, 150, 0, 40)
- TextLabel177.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel177.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel177.BackgroundTransparency = 1
- TextLabel177.BorderSizePixel = 0
- TextLabel177.ZIndex = 3
- TextLabel177.Font = Enum.Font.SourceSansItalic
- TextLabel177.FontSize = Enum.FontSize.Size18
- TextLabel177.Text = "Brakes"
- TextLabel177.TextColor = BrickColor.new("Institutional white")
- TextLabel177.TextColor3 = Color3.new(1, 1, 1)
- TextLabel177.TextSize = 18
- TextLabel177.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel177.TextStrokeTransparency = 0.94999998807907
- TextLabel177.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel178.Name = "T"
- TextLabel178.Parent = Frame148
- TextLabel178.Position = UDim2.new(2, 150, 0, 20)
- TextLabel178.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel178.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel178.BackgroundTransparency = 1
- TextLabel178.BorderSizePixel = 0
- TextLabel178.ZIndex = 3
- TextLabel178.Font = Enum.Font.SourceSansItalic
- TextLabel178.FontSize = Enum.FontSize.Size18
- TextLabel178.Text = "Throttle"
- TextLabel178.TextColor = BrickColor.new("Institutional white")
- TextLabel178.TextColor3 = Color3.new(1, 1, 1)
- TextLabel178.TextSize = 18
- TextLabel178.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel178.TextStrokeTransparency = 0.94999998807907
- TextLabel178.TextXAlignment = Enum.TextXAlignment.Right
- TextButton179.Name = "MousePBrake"
- TextButton179.Parent = Frame148
- TextButton179.Position = UDim2.new(1, 170, 0, 133)
- TextButton179.Size = UDim2.new(0, 300, 0, 15)
- TextButton179.Active = false
- TextButton179.BackgroundColor = BrickColor.new("Really black")
- TextButton179.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton179.BackgroundTransparency = 0.5
- TextButton179.BorderSizePixel = 0
- TextButton179.Selectable = false
- TextButton179.ZIndex = 3
- TextButton179.Font = Enum.Font.SourceSans
- TextButton179.FontSize = Enum.FontSize.Size14
- TextButton179.TextColor = BrickColor.new("Institutional white")
- TextButton179.TextColor3 = Color3.new(1, 1, 1)
- TextButton179.TextSize = 14
- TextButton180.Name = "MouseClutch"
- TextButton180.Parent = Frame148
- TextButton180.Position = UDim2.new(1, 170, 0, 113)
- TextButton180.Size = UDim2.new(0, 300, 0, 15)
- TextButton180.Active = false
- TextButton180.BackgroundColor = BrickColor.new("Really black")
- TextButton180.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton180.BackgroundTransparency = 0.5
- TextButton180.BorderSizePixel = 0
- TextButton180.Selectable = false
- TextButton180.ZIndex = 3
- TextButton180.Font = Enum.Font.SourceSans
- TextButton180.FontSize = Enum.FontSize.Size14
- TextButton180.TextColor = BrickColor.new("Institutional white")
- TextButton180.TextColor3 = Color3.new(1, 1, 1)
- TextButton180.TextSize = 14
- TextButton181.Name = "MouseShiftDown"
- TextButton181.Parent = Frame148
- TextButton181.Position = UDim2.new(1, 170, 0, 93)
- TextButton181.Size = UDim2.new(0, 300, 0, 15)
- TextButton181.Active = false
- TextButton181.BackgroundColor = BrickColor.new("Really black")
- TextButton181.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton181.BackgroundTransparency = 0.5
- TextButton181.BorderSizePixel = 0
- TextButton181.Selectable = false
- TextButton181.ZIndex = 3
- TextButton181.Font = Enum.Font.SourceSans
- TextButton181.FontSize = Enum.FontSize.Size14
- TextButton181.TextColor = BrickColor.new("Institutional white")
- TextButton181.TextColor3 = Color3.new(1, 1, 1)
- TextButton181.TextSize = 14
- TextButton182.Name = "MouseShiftUp"
- TextButton182.Parent = Frame148
- TextButton182.Position = UDim2.new(1, 170, 0, 73)
- TextButton182.Size = UDim2.new(0, 300, 0, 15)
- TextButton182.Active = false
- TextButton182.BackgroundColor = BrickColor.new("Really black")
- TextButton182.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton182.BackgroundTransparency = 0.5
- TextButton182.BorderSizePixel = 0
- TextButton182.Selectable = false
- TextButton182.ZIndex = 3
- TextButton182.Font = Enum.Font.SourceSans
- TextButton182.FontSize = Enum.FontSize.Size14
- TextButton182.TextColor = BrickColor.new("Institutional white")
- TextButton182.TextColor3 = Color3.new(1, 1, 1)
- TextButton182.TextSize = 14
- TextButton183.Name = "MouseSteer"
- TextButton183.Parent = Frame148
- TextButton183.Position = UDim2.new(1, 170, 0, 53)
- TextButton183.Size = UDim2.new(0, 300, 0, 15)
- TextButton183.Active = false
- TextButton183.BackgroundColor = BrickColor.new("Black")
- TextButton183.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- TextButton183.BackgroundTransparency = 0.5
- TextButton183.BorderSizePixel = 0
- TextButton183.Selectable = false
- TextButton183.ZIndex = 3
- TextButton183.Font = Enum.Font.SourceSans
- TextButton183.FontSize = Enum.FontSize.Size14
- TextButton183.Text = "MouseMove"
- TextButton183.TextColor = BrickColor.new("Light grey metallic")
- TextButton183.TextColor3 = Color3.new(0.690196, 0.690196, 0.690196)
- TextButton183.TextSize = 14
- TextButton184.Name = "MouseBrake"
- TextButton184.Parent = Frame148
- TextButton184.Position = UDim2.new(1, 170, 0, 33)
- TextButton184.Size = UDim2.new(0, 300, 0, 15)
- TextButton184.BackgroundColor = BrickColor.new("Really black")
- TextButton184.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton184.BackgroundTransparency = 0.5
- TextButton184.BorderSizePixel = 0
- TextButton184.ZIndex = 3
- TextButton184.Font = Enum.Font.SourceSans
- TextButton184.FontSize = Enum.FontSize.Size14
- TextButton184.TextColor = BrickColor.new("Institutional white")
- TextButton184.TextColor3 = Color3.new(1, 1, 1)
- TextButton184.TextSize = 14
- TextButton185.Name = "MouseThrottle"
- TextButton185.Parent = Frame148
- TextButton185.Position = UDim2.new(1, 170, 0, 13)
- TextButton185.Size = UDim2.new(0, 300, 0, 15)
- TextButton185.BackgroundColor = BrickColor.new("Really black")
- TextButton185.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton185.BackgroundTransparency = 0.5
- TextButton185.BorderSizePixel = 0
- TextButton185.ZIndex = 3
- TextButton185.Font = Enum.Font.SourceSans
- TextButton185.FontSize = Enum.FontSize.Size14
- TextButton185.TextColor = BrickColor.new("Institutional white")
- TextButton185.TextColor3 = Color3.new(1, 1, 1)
- TextButton185.TextSize = 14
- TextLabel186.Name = "T"
- TextLabel186.Parent = Frame148
- TextLabel186.Position = UDim2.new(1, 150, 0, 140)
- TextLabel186.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel186.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel186.BackgroundTransparency = 1
- TextLabel186.BorderSizePixel = 0
- TextLabel186.ZIndex = 3
- TextLabel186.Font = Enum.Font.SourceSansItalic
- TextLabel186.FontSize = Enum.FontSize.Size18
- TextLabel186.Text = "Handbrake"
- TextLabel186.TextColor = BrickColor.new("Institutional white")
- TextLabel186.TextColor3 = Color3.new(1, 1, 1)
- TextLabel186.TextSize = 18
- TextLabel186.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel186.TextStrokeTransparency = 0.94999998807907
- TextLabel186.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel187.Name = "T"
- TextLabel187.Parent = Frame148
- TextLabel187.Position = UDim2.new(1, 150, 0, 120)
- TextLabel187.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel187.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel187.BackgroundTransparency = 1
- TextLabel187.BorderSizePixel = 0
- TextLabel187.ZIndex = 3
- TextLabel187.Font = Enum.Font.SourceSansItalic
- TextLabel187.FontSize = Enum.FontSize.Size18
- TextLabel187.Text = "Clutch"
- TextLabel187.TextColor = BrickColor.new("Institutional white")
- TextLabel187.TextColor3 = Color3.new(1, 1, 1)
- TextLabel187.TextSize = 18
- TextLabel187.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel187.TextStrokeTransparency = 0.94999998807907
- TextLabel187.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel188.Name = "T"
- TextLabel188.Parent = Frame148
- TextLabel188.Position = UDim2.new(1, 150, 0, 100)
- TextLabel188.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel188.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel188.BackgroundTransparency = 1
- TextLabel188.BorderSizePixel = 0
- TextLabel188.ZIndex = 3
- TextLabel188.Font = Enum.Font.SourceSansItalic
- TextLabel188.FontSize = Enum.FontSize.Size18
- TextLabel188.Text = "Shift Down"
- TextLabel188.TextColor = BrickColor.new("Institutional white")
- TextLabel188.TextColor3 = Color3.new(1, 1, 1)
- TextLabel188.TextSize = 18
- TextLabel188.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel188.TextStrokeTransparency = 0.94999998807907
- TextLabel188.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel189.Name = "T"
- TextLabel189.Parent = Frame148
- TextLabel189.Position = UDim2.new(1, 150, 0, 80)
- TextLabel189.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel189.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel189.BackgroundTransparency = 1
- TextLabel189.BorderSizePixel = 0
- TextLabel189.ZIndex = 3
- TextLabel189.Font = Enum.Font.SourceSansItalic
- TextLabel189.FontSize = Enum.FontSize.Size18
- TextLabel189.Text = "Shift Up"
- TextLabel189.TextColor = BrickColor.new("Institutional white")
- TextLabel189.TextColor3 = Color3.new(1, 1, 1)
- TextLabel189.TextSize = 18
- TextLabel189.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel189.TextStrokeTransparency = 0.94999998807907
- TextLabel189.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel190.Name = "T"
- TextLabel190.Parent = Frame148
- TextLabel190.Position = UDim2.new(1, 150, 0, 60)
- TextLabel190.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel190.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel190.BackgroundTransparency = 1
- TextLabel190.BorderSizePixel = 0
- TextLabel190.ZIndex = 3
- TextLabel190.Font = Enum.Font.SourceSansItalic
- TextLabel190.FontSize = Enum.FontSize.Size18
- TextLabel190.Text = "Steer"
- TextLabel190.TextColor = BrickColor.new("Institutional white")
- TextLabel190.TextColor3 = Color3.new(1, 1, 1)
- TextLabel190.TextSize = 18
- TextLabel190.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel190.TextStrokeTransparency = 0.94999998807907
- TextLabel190.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel191.Name = "T"
- TextLabel191.Parent = Frame148
- TextLabel191.Position = UDim2.new(1, 150, 0, 40)
- TextLabel191.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel191.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel191.BackgroundTransparency = 1
- TextLabel191.BorderSizePixel = 0
- TextLabel191.ZIndex = 3
- TextLabel191.Font = Enum.Font.SourceSansItalic
- TextLabel191.FontSize = Enum.FontSize.Size18
- TextLabel191.Text = "Brakes"
- TextLabel191.TextColor = BrickColor.new("Institutional white")
- TextLabel191.TextColor3 = Color3.new(1, 1, 1)
- TextLabel191.TextSize = 18
- TextLabel191.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel191.TextStrokeTransparency = 0.94999998807907
- TextLabel191.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel192.Name = "T"
- TextLabel192.Parent = Frame148
- TextLabel192.Position = UDim2.new(1, 150, 0, 20)
- TextLabel192.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel192.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel192.BackgroundTransparency = 1
- TextLabel192.BorderSizePixel = 0
- TextLabel192.ZIndex = 3
- TextLabel192.Font = Enum.Font.SourceSansItalic
- TextLabel192.FontSize = Enum.FontSize.Size18
- TextLabel192.Text = "Throttle"
- TextLabel192.TextColor = BrickColor.new("Institutional white")
- TextLabel192.TextColor3 = Color3.new(1, 1, 1)
- TextLabel192.TextSize = 18
- TextLabel192.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel192.TextStrokeTransparency = 0.94999998807907
- TextLabel192.TextXAlignment = Enum.TextXAlignment.Right
- TextButton193.Name = "ToggleABS"
- TextButton193.Parent = Frame148
- TextButton193.Position = UDim2.new(0, 170, 0, 293)
- TextButton193.Size = UDim2.new(0, 300, 0, 15)
- TextButton193.BackgroundColor = BrickColor.new("Really black")
- TextButton193.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton193.BackgroundTransparency = 0.5
- TextButton193.BorderSizePixel = 0
- TextButton193.ZIndex = 3
- TextButton193.Font = Enum.Font.SourceSans
- TextButton193.FontSize = Enum.FontSize.Size14
- TextButton193.TextColor = BrickColor.new("Institutional white")
- TextButton193.TextColor3 = Color3.new(1, 1, 1)
- TextButton193.TextSize = 14
- TextButton194.Name = "ToggleTCS"
- TextButton194.Parent = Frame148
- TextButton194.Position = UDim2.new(0, 170, 0, 273)
- TextButton194.Size = UDim2.new(0, 300, 0, 15)
- TextButton194.BackgroundColor = BrickColor.new("Really black")
- TextButton194.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton194.BackgroundTransparency = 0.5
- TextButton194.BorderSizePixel = 0
- TextButton194.ZIndex = 3
- TextButton194.Font = Enum.Font.SourceSans
- TextButton194.FontSize = Enum.FontSize.Size14
- TextButton194.TextColor = BrickColor.new("Institutional white")
- TextButton194.TextColor3 = Color3.new(1, 1, 1)
- TextButton194.TextSize = 14
- TextButton195.Name = "ToggleTransMode"
- TextButton195.Parent = Frame148
- TextButton195.Position = UDim2.new(0, 170, 0, 253)
- TextButton195.Size = UDim2.new(0, 300, 0, 15)
- TextButton195.BackgroundColor = BrickColor.new("Really black")
- TextButton195.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton195.BackgroundTransparency = 0.5
- TextButton195.BorderSizePixel = 0
- TextButton195.ZIndex = 3
- TextButton195.Font = Enum.Font.SourceSans
- TextButton195.FontSize = Enum.FontSize.Size14
- TextButton195.TextColor = BrickColor.new("Institutional white")
- TextButton195.TextColor3 = Color3.new(1, 1, 1)
- TextButton195.TextSize = 14
- TextButton196.Name = "PBrake"
- TextButton196.Parent = Frame148
- TextButton196.Position = UDim2.new(0, 170, 0, 233)
- TextButton196.Size = UDim2.new(0, 300, 0, 15)
- TextButton196.BackgroundColor = BrickColor.new("Really black")
- TextButton196.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton196.BackgroundTransparency = 0.5
- TextButton196.BorderSizePixel = 0
- TextButton196.ZIndex = 3
- TextButton196.Font = Enum.Font.SourceSans
- TextButton196.FontSize = Enum.FontSize.Size14
- TextButton196.TextColor = BrickColor.new("Institutional white")
- TextButton196.TextColor3 = Color3.new(1, 1, 1)
- TextButton196.TextSize = 14
- TextButton197.Name = "Clutch"
- TextButton197.Parent = Frame148
- TextButton197.Position = UDim2.new(0, 170, 0, 213)
- TextButton197.Size = UDim2.new(0, 300, 0, 15)
- TextButton197.BackgroundColor = BrickColor.new("Really black")
- TextButton197.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton197.BackgroundTransparency = 0.5
- TextButton197.BorderSizePixel = 0
- TextButton197.ZIndex = 3
- TextButton197.Font = Enum.Font.SourceSans
- TextButton197.FontSize = Enum.FontSize.Size14
- TextButton197.TextColor = BrickColor.new("Institutional white")
- TextButton197.TextColor3 = Color3.new(1, 1, 1)
- TextButton197.TextSize = 14
- TextButton198.Name = "ShiftDown"
- TextButton198.Parent = Frame148
- TextButton198.Position = UDim2.new(0, 170, 0, 193)
- TextButton198.Size = UDim2.new(0, 300, 0, 15)
- TextButton198.BackgroundColor = BrickColor.new("Really black")
- TextButton198.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton198.BackgroundTransparency = 0.5
- TextButton198.BorderSizePixel = 0
- TextButton198.ZIndex = 3
- TextButton198.Font = Enum.Font.SourceSans
- TextButton198.FontSize = Enum.FontSize.Size14
- TextButton198.TextColor = BrickColor.new("Institutional white")
- TextButton198.TextColor3 = Color3.new(1, 1, 1)
- TextButton198.TextSize = 14
- TextButton199.Name = "ShiftUp"
- TextButton199.Parent = Frame148
- TextButton199.Position = UDim2.new(0, 170, 0, 173)
- TextButton199.Size = UDim2.new(0, 300, 0, 15)
- TextButton199.BackgroundColor = BrickColor.new("Really black")
- TextButton199.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton199.BackgroundTransparency = 0.5
- TextButton199.BorderSizePixel = 0
- TextButton199.ZIndex = 3
- TextButton199.Font = Enum.Font.SourceSans
- TextButton199.FontSize = Enum.FontSize.Size14
- TextButton199.TextColor = BrickColor.new("Institutional white")
- TextButton199.TextColor3 = Color3.new(1, 1, 1)
- TextButton199.TextSize = 14
- TextButton200.Name = "SteerRight2"
- TextButton200.Parent = Frame148
- TextButton200.Position = UDim2.new(0, 170, 0, 153)
- TextButton200.Size = UDim2.new(0, 300, 0, 15)
- TextButton200.BackgroundColor = BrickColor.new("Really black")
- TextButton200.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton200.BackgroundTransparency = 0.5
- TextButton200.BorderSizePixel = 0
- TextButton200.ZIndex = 3
- TextButton200.Font = Enum.Font.SourceSans
- TextButton200.FontSize = Enum.FontSize.Size14
- TextButton200.TextColor = BrickColor.new("Institutional white")
- TextButton200.TextColor3 = Color3.new(1, 1, 1)
- TextButton200.TextSize = 14
- TextButton201.Name = "SteerLeft2"
- TextButton201.Parent = Frame148
- TextButton201.Position = UDim2.new(0, 170, 0, 133)
- TextButton201.Size = UDim2.new(0, 300, 0, 15)
- TextButton201.BackgroundColor = BrickColor.new("Really black")
- TextButton201.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton201.BackgroundTransparency = 0.5
- TextButton201.BorderSizePixel = 0
- TextButton201.ZIndex = 3
- TextButton201.Font = Enum.Font.SourceSans
- TextButton201.FontSize = Enum.FontSize.Size14
- TextButton201.TextColor = BrickColor.new("Institutional white")
- TextButton201.TextColor3 = Color3.new(1, 1, 1)
- TextButton201.TextSize = 14
- TextButton202.Name = "Brake2"
- TextButton202.Parent = Frame148
- TextButton202.Position = UDim2.new(0, 170, 0, 113)
- TextButton202.Size = UDim2.new(0, 300, 0, 15)
- TextButton202.BackgroundColor = BrickColor.new("Really black")
- TextButton202.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton202.BackgroundTransparency = 0.5
- TextButton202.BorderSizePixel = 0
- TextButton202.ZIndex = 3
- TextButton202.Font = Enum.Font.SourceSans
- TextButton202.FontSize = Enum.FontSize.Size14
- TextButton202.TextColor = BrickColor.new("Institutional white")
- TextButton202.TextColor3 = Color3.new(1, 1, 1)
- TextButton202.TextSize = 14
- TextButton203.Name = "Throttle2"
- TextButton203.Parent = Frame148
- TextButton203.Position = UDim2.new(0, 170, 0, 93)
- TextButton203.Size = UDim2.new(0, 300, 0, 15)
- TextButton203.BackgroundColor = BrickColor.new("Really black")
- TextButton203.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton203.BackgroundTransparency = 0.5
- TextButton203.BorderSizePixel = 0
- TextButton203.ZIndex = 3
- TextButton203.Font = Enum.Font.SourceSans
- TextButton203.FontSize = Enum.FontSize.Size14
- TextButton203.TextColor = BrickColor.new("Institutional white")
- TextButton203.TextColor3 = Color3.new(1, 1, 1)
- TextButton203.TextSize = 14
- TextButton204.Name = "SteerRight"
- TextButton204.Parent = Frame148
- TextButton204.Position = UDim2.new(0, 170, 0, 73)
- TextButton204.Size = UDim2.new(0, 300, 0, 15)
- TextButton204.BackgroundColor = BrickColor.new("Really black")
- TextButton204.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton204.BackgroundTransparency = 0.5
- TextButton204.BorderSizePixel = 0
- TextButton204.ZIndex = 3
- TextButton204.Font = Enum.Font.SourceSans
- TextButton204.FontSize = Enum.FontSize.Size14
- TextButton204.TextColor = BrickColor.new("Institutional white")
- TextButton204.TextColor3 = Color3.new(1, 1, 1)
- TextButton204.TextSize = 14
- TextButton205.Name = "SteerLeft"
- TextButton205.Parent = Frame148
- TextButton205.Position = UDim2.new(0, 170, 0, 53)
- TextButton205.Size = UDim2.new(0, 300, 0, 15)
- TextButton205.BackgroundColor = BrickColor.new("Really black")
- TextButton205.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton205.BackgroundTransparency = 0.5
- TextButton205.BorderSizePixel = 0
- TextButton205.ZIndex = 3
- TextButton205.Font = Enum.Font.SourceSans
- TextButton205.FontSize = Enum.FontSize.Size14
- TextButton205.TextColor = BrickColor.new("Institutional white")
- TextButton205.TextColor3 = Color3.new(1, 1, 1)
- TextButton205.TextSize = 14
- TextButton206.Name = "Brake"
- TextButton206.Parent = Frame148
- TextButton206.Position = UDim2.new(0, 170, 0, 33)
- TextButton206.Size = UDim2.new(0, 300, 0, 15)
- TextButton206.BackgroundColor = BrickColor.new("Really black")
- TextButton206.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton206.BackgroundTransparency = 0.5
- TextButton206.BorderSizePixel = 0
- TextButton206.ZIndex = 3
- TextButton206.Font = Enum.Font.SourceSans
- TextButton206.FontSize = Enum.FontSize.Size14
- TextButton206.TextColor = BrickColor.new("Institutional white")
- TextButton206.TextColor3 = Color3.new(1, 1, 1)
- TextButton206.TextSize = 14
- TextButton207.Name = "Throttle"
- TextButton207.Parent = Frame148
- TextButton207.Position = UDim2.new(0, 170, 0, 13)
- TextButton207.Size = UDim2.new(0, 300, 0, 15)
- TextButton207.BackgroundColor = BrickColor.new("Really black")
- TextButton207.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton207.BackgroundTransparency = 0.5
- TextButton207.BorderSizePixel = 0
- TextButton207.ZIndex = 3
- TextButton207.Font = Enum.Font.SourceSans
- TextButton207.FontSize = Enum.FontSize.Size14
- TextButton207.TextColor = BrickColor.new("Institutional white")
- TextButton207.TextColor3 = Color3.new(1, 1, 1)
- TextButton207.TextSize = 14
- TextLabel208.Name = "T"
- TextLabel208.Parent = Frame148
- TextLabel208.Position = UDim2.new(0, 150, 0, 300)
- TextLabel208.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel208.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel208.BackgroundTransparency = 1
- TextLabel208.BorderSizePixel = 0
- TextLabel208.ZIndex = 3
- TextLabel208.Font = Enum.Font.SourceSansItalic
- TextLabel208.FontSize = Enum.FontSize.Size18
- TextLabel208.Text = "Toggle ABS"
- TextLabel208.TextColor = BrickColor.new("Institutional white")
- TextLabel208.TextColor3 = Color3.new(1, 1, 1)
- TextLabel208.TextSize = 18
- TextLabel208.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel208.TextStrokeTransparency = 0.94999998807907
- TextLabel208.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel209.Name = "T"
- TextLabel209.Parent = Frame148
- TextLabel209.Position = UDim2.new(0, 150, 0, 280)
- TextLabel209.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel209.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel209.BackgroundTransparency = 1
- TextLabel209.BorderSizePixel = 0
- TextLabel209.ZIndex = 3
- TextLabel209.Font = Enum.Font.SourceSansItalic
- TextLabel209.FontSize = Enum.FontSize.Size18
- TextLabel209.Text = "Toggle TCS"
- TextLabel209.TextColor = BrickColor.new("Institutional white")
- TextLabel209.TextColor3 = Color3.new(1, 1, 1)
- TextLabel209.TextSize = 18
- TextLabel209.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel209.TextStrokeTransparency = 0.94999998807907
- TextLabel209.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel210.Name = "T"
- TextLabel210.Parent = Frame148
- TextLabel210.Position = UDim2.new(0, 150, 0, 260)
- TextLabel210.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel210.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel210.BackgroundTransparency = 1
- TextLabel210.BorderSizePixel = 0
- TextLabel210.ZIndex = 3
- TextLabel210.Font = Enum.Font.SourceSansItalic
- TextLabel210.FontSize = Enum.FontSize.Size18
- TextLabel210.Text = "Transmission Mode"
- TextLabel210.TextColor = BrickColor.new("Institutional white")
- TextLabel210.TextColor3 = Color3.new(1, 1, 1)
- TextLabel210.TextSize = 18
- TextLabel210.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel210.TextStrokeTransparency = 0.94999998807907
- TextLabel210.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel211.Name = "T"
- TextLabel211.Parent = Frame148
- TextLabel211.Position = UDim2.new(0, 150, 0, 240)
- TextLabel211.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel211.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel211.BackgroundTransparency = 1
- TextLabel211.BorderSizePixel = 0
- TextLabel211.ZIndex = 3
- TextLabel211.Font = Enum.Font.SourceSansItalic
- TextLabel211.FontSize = Enum.FontSize.Size18
- TextLabel211.Text = "Handbrake"
- TextLabel211.TextColor = BrickColor.new("Institutional white")
- TextLabel211.TextColor3 = Color3.new(1, 1, 1)
- TextLabel211.TextSize = 18
- TextLabel211.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel211.TextStrokeTransparency = 0.94999998807907
- TextLabel211.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel212.Name = "T"
- TextLabel212.Parent = Frame148
- TextLabel212.Position = UDim2.new(0, 150, 0, 220)
- TextLabel212.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel212.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel212.BackgroundTransparency = 1
- TextLabel212.BorderSizePixel = 0
- TextLabel212.ZIndex = 3
- TextLabel212.Font = Enum.Font.SourceSansItalic
- TextLabel212.FontSize = Enum.FontSize.Size18
- TextLabel212.Text = "Clutch"
- TextLabel212.TextColor = BrickColor.new("Institutional white")
- TextLabel212.TextColor3 = Color3.new(1, 1, 1)
- TextLabel212.TextSize = 18
- TextLabel212.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel212.TextStrokeTransparency = 0.94999998807907
- TextLabel212.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel213.Name = "T"
- TextLabel213.Parent = Frame148
- TextLabel213.Position = UDim2.new(0, 150, 0, 200)
- TextLabel213.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel213.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel213.BackgroundTransparency = 1
- TextLabel213.BorderSizePixel = 0
- TextLabel213.ZIndex = 3
- TextLabel213.Font = Enum.Font.SourceSansItalic
- TextLabel213.FontSize = Enum.FontSize.Size18
- TextLabel213.Text = "Shift Down"
- TextLabel213.TextColor = BrickColor.new("Institutional white")
- TextLabel213.TextColor3 = Color3.new(1, 1, 1)
- TextLabel213.TextSize = 18
- TextLabel213.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel213.TextStrokeTransparency = 0.94999998807907
- TextLabel213.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel214.Name = "T"
- TextLabel214.Parent = Frame148
- TextLabel214.Position = UDim2.new(0, 150, 0, 180)
- TextLabel214.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel214.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel214.BackgroundTransparency = 1
- TextLabel214.BorderSizePixel = 0
- TextLabel214.ZIndex = 3
- TextLabel214.Font = Enum.Font.SourceSansItalic
- TextLabel214.FontSize = Enum.FontSize.Size18
- TextLabel214.Text = "Shift Up"
- TextLabel214.TextColor = BrickColor.new("Institutional white")
- TextLabel214.TextColor3 = Color3.new(1, 1, 1)
- TextLabel214.TextSize = 18
- TextLabel214.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel214.TextStrokeTransparency = 0.94999998807907
- TextLabel214.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel215.Name = "T"
- TextLabel215.Parent = Frame148
- TextLabel215.Position = UDim2.new(0, 150, 0, 160)
- TextLabel215.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel215.BackgroundTransparency = 1
- TextLabel215.BorderSizePixel = 0
- TextLabel215.ZIndex = 3
- TextLabel215.Font = Enum.Font.SourceSansItalic
- TextLabel215.FontSize = Enum.FontSize.Size18
- TextLabel215.Text = "[Secondary] SteerRight"
- TextLabel215.TextColor = BrickColor.new("Institutional white")
- TextLabel215.TextColor3 = Color3.new(1, 1, 1)
- TextLabel215.TextSize = 18
- TextLabel215.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel215.TextStrokeTransparency = 0.94999998807907
- TextLabel215.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel216.Name = "T"
- TextLabel216.Parent = Frame148
- TextLabel216.Position = UDim2.new(0, 150, 0, 140)
- TextLabel216.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel216.BackgroundTransparency = 1
- TextLabel216.BorderSizePixel = 0
- TextLabel216.ZIndex = 3
- TextLabel216.Font = Enum.Font.SourceSansItalic
- TextLabel216.FontSize = Enum.FontSize.Size18
- TextLabel216.Text = "[Secondary] Steer Left"
- TextLabel216.TextColor = BrickColor.new("Institutional white")
- TextLabel216.TextColor3 = Color3.new(1, 1, 1)
- TextLabel216.TextSize = 18
- TextLabel216.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel216.TextStrokeTransparency = 0.94999998807907
- TextLabel216.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel217.Name = "T"
- TextLabel217.Parent = Frame148
- TextLabel217.Position = UDim2.new(0, 150, 0, 120)
- TextLabel217.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel217.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel217.BackgroundTransparency = 1
- TextLabel217.BorderSizePixel = 0
- TextLabel217.ZIndex = 3
- TextLabel217.Font = Enum.Font.SourceSansItalic
- TextLabel217.FontSize = Enum.FontSize.Size18
- TextLabel217.Text = "[Secondary] Brakes"
- TextLabel217.TextColor = BrickColor.new("Institutional white")
- TextLabel217.TextColor3 = Color3.new(1, 1, 1)
- TextLabel217.TextSize = 18
- TextLabel217.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel217.TextStrokeTransparency = 0.94999998807907
- TextLabel217.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel218.Name = "T"
- TextLabel218.Parent = Frame148
- TextLabel218.Position = UDim2.new(0, 150, 0, 100)
- TextLabel218.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel218.BackgroundTransparency = 1
- TextLabel218.BorderSizePixel = 0
- TextLabel218.ZIndex = 3
- TextLabel218.Font = Enum.Font.SourceSansItalic
- TextLabel218.FontSize = Enum.FontSize.Size18
- TextLabel218.Text = "[Secondary] Throttle"
- TextLabel218.TextColor = BrickColor.new("Institutional white")
- TextLabel218.TextColor3 = Color3.new(1, 1, 1)
- TextLabel218.TextSize = 18
- TextLabel218.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel218.TextStrokeTransparency = 0.94999998807907
- TextLabel218.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel219.Name = "T"
- TextLabel219.Parent = Frame148
- TextLabel219.Position = UDim2.new(0, 150, 0, 80)
- TextLabel219.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel219.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel219.BackgroundTransparency = 1
- TextLabel219.BorderSizePixel = 0
- TextLabel219.ZIndex = 3
- TextLabel219.Font = Enum.Font.SourceSansItalic
- TextLabel219.FontSize = Enum.FontSize.Size18
- TextLabel219.Text = "Steer Right"
- TextLabel219.TextColor = BrickColor.new("Institutional white")
- TextLabel219.TextColor3 = Color3.new(1, 1, 1)
- TextLabel219.TextSize = 18
- TextLabel219.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel219.TextStrokeTransparency = 0.94999998807907
- TextLabel219.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel220.Name = "T"
- TextLabel220.Parent = Frame148
- TextLabel220.Position = UDim2.new(0, 150, 0, 60)
- TextLabel220.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel220.BackgroundTransparency = 1
- TextLabel220.BorderSizePixel = 0
- TextLabel220.ZIndex = 3
- TextLabel220.Font = Enum.Font.SourceSansItalic
- TextLabel220.FontSize = Enum.FontSize.Size18
- TextLabel220.Text = "Steer Left"
- TextLabel220.TextColor = BrickColor.new("Institutional white")
- TextLabel220.TextColor3 = Color3.new(1, 1, 1)
- TextLabel220.TextSize = 18
- TextLabel220.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel220.TextStrokeTransparency = 0.94999998807907
- TextLabel220.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel221.Name = "T"
- TextLabel221.Parent = Frame148
- TextLabel221.Position = UDim2.new(0, 150, 0, 40)
- TextLabel221.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel221.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel221.BackgroundTransparency = 1
- TextLabel221.BorderSizePixel = 0
- TextLabel221.ZIndex = 3
- TextLabel221.Font = Enum.Font.SourceSansItalic
- TextLabel221.FontSize = Enum.FontSize.Size18
- TextLabel221.Text = "Brakes"
- TextLabel221.TextColor = BrickColor.new("Institutional white")
- TextLabel221.TextColor3 = Color3.new(1, 1, 1)
- TextLabel221.TextSize = 18
- TextLabel221.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel221.TextStrokeTransparency = 0.94999998807907
- TextLabel221.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel222.Name = "T"
- TextLabel222.Parent = Frame148
- TextLabel222.Position = UDim2.new(0, 150, 0, 20)
- TextLabel222.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel222.BackgroundTransparency = 1
- TextLabel222.BorderSizePixel = 0
- TextLabel222.ZIndex = 3
- TextLabel222.Font = Enum.Font.SourceSansItalic
- TextLabel222.FontSize = Enum.FontSize.Size18
- TextLabel222.Text = "Throttle"
- TextLabel222.TextColor = BrickColor.new("Institutional white")
- TextLabel222.TextColor3 = Color3.new(1, 1, 1)
- TextLabel222.TextSize = 18
- TextLabel222.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel222.TextStrokeTransparency = 0.94999998807907
- TextLabel222.TextXAlignment = Enum.TextXAlignment.Right
- TextButton223.Name = "ToggleMouseDrive"
- TextButton223.Parent = Frame148
- TextButton223.Position = UDim2.new(0, 170, 0, 313)
- TextButton223.Size = UDim2.new(0, 300, 0, 15)
- TextButton223.BackgroundColor = BrickColor.new("Really black")
- TextButton223.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton223.BackgroundTransparency = 0.5
- TextButton223.BorderSizePixel = 0
- TextButton223.ZIndex = 3
- TextButton223.Font = Enum.Font.SourceSans
- TextButton223.FontSize = Enum.FontSize.Size14
- TextButton223.TextColor = BrickColor.new("Institutional white")
- TextButton223.TextColor3 = Color3.new(1, 1, 1)
- TextButton223.TextSize = 14
- TextLabel224.Name = "T"
- TextLabel224.Parent = Frame148
- TextLabel224.Position = UDim2.new(0, 150, 0, 320)
- TextLabel224.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel224.BackgroundTransparency = 1
- TextLabel224.BorderSizePixel = 0
- TextLabel224.ZIndex = 3
- TextLabel224.Font = Enum.Font.SourceSansItalic
- TextLabel224.FontSize = Enum.FontSize.Size18
- TextLabel224.Text = "Switch Mouse Control"
- TextLabel224.TextColor = BrickColor.new("Institutional white")
- TextLabel224.TextColor3 = Color3.new(1, 1, 1)
- TextLabel224.TextSize = 18
- TextLabel224.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel224.TextStrokeTransparency = 0.94999998807907
- TextLabel224.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel225.Name = "T"
- TextLabel225.Parent = Frame148
- TextLabel225.Position = UDim2.new(2, 150, 0, 200)
- TextLabel225.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel225.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel225.BackgroundTransparency = 1
- TextLabel225.BorderSizePixel = 0
- TextLabel225.ZIndex = 3
- TextLabel225.Font = Enum.Font.SourceSansItalic
- TextLabel225.FontSize = Enum.FontSize.Size18
- TextLabel225.Text = "Toggle ABS"
- TextLabel225.TextColor = BrickColor.new("Institutional white")
- TextLabel225.TextColor3 = Color3.new(1, 1, 1)
- TextLabel225.TextSize = 18
- TextLabel225.TextStrokeColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel225.TextStrokeTransparency = 0.94999998807907
- TextLabel225.TextXAlignment = Enum.TextXAlignment.Right
- TextButton226.Name = "ContlrToggleABS"
- TextButton226.Parent = Frame148
- TextButton226.Position = UDim2.new(2, 170, 0, 193)
- TextButton226.Size = UDim2.new(0, 300, 0, 15)
- TextButton226.BackgroundColor = BrickColor.new("Really black")
- TextButton226.BackgroundColor3 = Color3.new(0, 0, 0)
- TextButton226.BackgroundTransparency = 0.5
- TextButton226.BorderSizePixel = 0
- TextButton226.ZIndex = 3
- TextButton226.Font = Enum.Font.SourceSans
- TextButton226.FontSize = Enum.FontSize.Size14
- TextButton226.TextColor = BrickColor.new("Institutional white")
- TextButton226.TextColor3 = Color3.new(1, 1, 1)
- TextButton226.TextSize = 14
- TextButton227.Name = "Toggle"
- TextButton227.Parent = Frame136
- TextButton227.Position = UDim2.new(0.5, -50, 1, 10)
- TextButton227.Size = UDim2.new(0, 100, 0, 18)
- TextButton227.BackgroundColor = BrickColor.new("Deep orange")
- TextButton227.BackgroundColor3 = Color3.new(1, 0.666667, 0)
- TextButton227.BackgroundTransparency = 0.5
- TextButton227.BorderColor = BrickColor.new("Sand violet metallic")
- TextButton227.BorderColor3 = Color3.new(0.588235, 0.588235, 0.588235)
- TextButton227.BorderSizePixel = 0
- TextButton227.ZIndex = 5
- TextButton227.Font = Enum.Font.Arial
- TextButton227.FontSize = Enum.FontSize.Size18
- TextButton227.Text = "Controls"
- TextButton227.TextColor = BrickColor.new("Institutional white")
- TextButton227.TextColor3 = Color3.new(1, 1, 1)
- TextButton227.TextSize = 16
- TextButton227.TextStrokeColor3 = Color3.new(0.415686, 0.415686, 0.415686)
- TextButton227.TextYAlignment = Enum.TextYAlignment.Bottom
- LocalScript228.Name = "Smoke [FE+]"
- LocalScript228.Parent = Folder100
- table.insert(cors,sandbox(LocalScript228,function()
- local FE = workspace.FilteringEnabled
- local car = script.Parent.Car.Value
- car.Wheels.RL.SQ:Play()
- car.Wheels.RR.SQ:Play()
- local handler = car:WaitForChild("Smoke_FE")
- while wait(.2) do
- local r1 = Ray.new(car.Wheels.RL.Position,(car.Wheels.RL.Arm.CFrame*CFrame.Angles(-math.pi/2,0,0)).lookVector*(.05+car.Wheels.RL.Size.x/2))
- local r1hit = 0
- if workspace:FindPartOnRay(r1,car)~=nil then r1hit=1 end
- local r2 = Ray.new(car.Wheels.RL.Position,(car.Wheels.RR.Arm.CFrame*CFrame.Angles(-math.pi/2,0,0)).lookVector*(.05+car.Wheels.RR.Size.x/2))
- local r2hit = 0
- if workspace:FindPartOnRay(r2,car)~=nil then r2hit=1 end
- local rl = math.min((math.max(math.abs((car.Wheels.RL.RotVelocity.Magnitude*car.Wheels.RL.Size.x/2) - (car.Wheels.RL.Velocity.Magnitude))-30,0)),50)*r1hit
- local rr = math.min((math.max(math.abs((car.Wheels.RR.RotVelocity.Magnitude*car.Wheels.RR.Size.x/2) - (car.Wheels.RR.Velocity.Magnitude))-30,0)),50)*r2hit
- if FE then
- handler:FireServer("UpdateSmoke",rl,rr)
- else
- car.Wheels.RL.Smoke.Rate = rl
- car.Wheels.RR.Smoke.Rate = rr
- car.Wheels.RL.SQ.Volume = rl/50
- car.Wheels.RR.SQ.Volume = rr/50
- end
- end
- end))
- RemoteEvent229.Name = "Smoke_FE"
- RemoteEvent229.Parent = LocalScript228
- Script230.Name = "Handler"
- Script230.Parent = RemoteEvent229
- table.insert(cors,sandbox(Script230,function()
- local car = script.Parent.Parent
- local F = {}
- F.UpdateSmoke = function(rl,rr)
- car.Wheels.RL.Smoke.Rate = rl
- car.Wheels.RR.Smoke.Rate = rr
- car.Wheels.RL.SQ.Volume = rl/50
- car.Wheels.RR.SQ.Volume = rr/50
- end
- script.Parent.OnServerEvent:connect(function(pl,Fnc,...)
- F[Fnc](...)
- end)
- car.DriveSeat.ChildRemoved:connect(function(child)
- if child.Name=="SeatWeld" then
- car.Wheels.RL.SQ:Stop()
- car.Wheels.RR.SQ:Stop()
- car.Wheels.RL.Smoke.Rate=0
- car.Wheels.RR.Smoke.Rate=0
- end
- end)
- for i,v in pairs(car.Wheels:GetChildren()) do
- if v.Name=="RL" or v.Name=="RR" or v.Name=="R" then
- local sq = script.Parent.SQ:Clone()
- sq.Parent=v
- local sm = script.Parent.Smoke:Clone()
- sm.Parent=v
- end
- end
- end))
- Script230.Disabled = true
- Sound231.Name = "SQ"
- Sound231.Parent = RemoteEvent229
- Sound231.Looped = true
- Sound231.SoundId = "rbxassetid://201887209"
- Sound231.Volume = 0
- ParticleEmitter232.Name = "Smoke"
- ParticleEmitter232.Parent = RemoteEvent229
- ParticleEmitter232.Speed = NumberRange.new(-2, 0)
- ParticleEmitter232.Color = ColorSequence.new(Color3.new(0.866667, 0.882353, 1),Color3.new(0.866667, 0.882353, 1))
- ParticleEmitter232.Texture = "rbxassetid://982254017"
- ParticleEmitter232.Transparency = NumberSequence.new(0.75,1)
- ParticleEmitter232.Size = NumberSequence.new(3,7.8611102104187,9.3888902664185)
- ParticleEmitter232.Acceleration = Vector3.new(0, 1, 0)
- ParticleEmitter232.EmissionDirection = Enum.NormalId.Bottom
- ParticleEmitter232.Lifetime = NumberRange.new(5, 5)
- ParticleEmitter232.Rate = 0
- ParticleEmitter232.RotSpeed = NumberRange.new(20, 100)
- ParticleEmitter232.SpreadAngle = Vector2.new(20, 20)
- ParticleEmitter232.VelocitySpread = 20
- LocalScript233.Name = "Sounds"
- LocalScript233.Parent = Folder100
- table.insert(cors,sandbox(LocalScript233,function()
- --[[
- ___ _______ _
- / _ |____/ ___/ / ___ ____ ___ (_)__
- / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
- /_/ |_| \___/_//_/\_,_/___/___/_/___/
- SecondLogic @ Inspare
- ]]
- local FE = workspace.FilteringEnabled
- local car = script.Parent.Car.Value
- local _Tune = require(car["A-Chassis Tune"])
- local on = 0
- script:WaitForChild("Rev")
- if not FE then
- for i,v in pairs(car.DriveSeat:GetChildren()) do
- for _,a in pairs(script:GetChildren()) do
- if v.Name==a.Name then v:Stop() wait() v:Destroy() end
- end
- end
- for i,v in pairs(script:GetChildren()) do
- v.Parent=car.DriveSeat
- end
- car.DriveSeat.Rev:Play()
- while wait() do
- local _RPM = script.Parent.Values.RPM.Value
- if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
- car.DriveSeat.Rev.Pitch = (car.DriveSeat.Rev.SetPitch.Value + car.DriveSeat.Rev.SetRev.Value*_RPM/_Tune.Redline)*on^2
- end
- else
- local handler = car.AC6_FE_Sounds
- handler:FireServer("newSound","Rev",car.DriveSeat,script.Rev.SoundId,0,script.Rev.Volume,true)
- handler:FireServer("playSound","Rev")
- local pitch=0
- while wait() do
- local _RPM = script.Parent.Values.RPM.Value
- if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
- pitch = (script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.Redline)*on^2
- handler:FireServer("updateSound","Rev",script.Rev.SoundId,pitch,script.Rev.Volume)
- end
- end
- end))
- RemoteEvent234.Name = "AC6_FE_Sounds"
- RemoteEvent234.Parent = LocalScript233
- Script235.Name = "Handler"
- Script235.Parent = RemoteEvent234
- table.insert(cors,sandbox(Script235,function()
- local Sounds = {}
- local F = {}
- F.newSound = function(name,par,id,pitch,volume,loop)
- for i,v in pairs(Sounds) do
- if i==name then
- v:Stop()
- v:Destroy()
- end
- end
- local sn = Instance.new("Sound",par)
- sn.Name = name
- sn.SoundId = id
- sn.Pitch = pitch
- sn.Volume = volume
- sn.Looped = loop
- sn.AncestryChanged:connect(function(child,parent) print(parent) end)
- Sounds[name]=sn
- end
- F.updateSound = function(sound,id,pit,vol)
- local sn = Sounds[sound]
- if id~=sn.SoundId then sn.SoundId = id end
- if pit~=sn.Pitch then sn.Pitch = pit end
- if vol~=sn.Volume then sn.Volume = vol end
- end
- F.playSound = function(sound)
- Sounds[sound]:Play()
- end
- F.pauseSound = function(sound)
- Sounds[sound]:Pause()
- end
- F.stopSound = function(sound)
- Sounds[sound]:Stop()
- end
- F.removeSound = function(sound)
- Sounds[sound]:Stop()
- Sounds[sound]:Destroy()
- Sounds[sound]=nil
- end
- script.Parent.OnServerEvent:connect(function(pl,Fnc,...)
- F[Fnc](...)
- end)
- end))
- Script235.Disabled = true
- Sound236.Name = "Rev"
- Sound236.Parent = LocalScript233
- Sound236.Looped = true
- Sound236.Pitch = 0
- Sound236.PlaybackSpeed = 0
- Sound236.SoundId = "rbxassetid://988907615"
- Sound236.Volume = 9
- NumberValue237.Name = "SetRev"
- NumberValue237.Parent = Sound236
- NumberValue237.Value = 0.95
- NumberValue238.Name = "SetPitch"
- NumberValue238.Parent = Sound236
- NumberValue238.Value = 0.06
- Camera239.Name = "ThumbnailCamera"
- Camera239.Parent = Model0
- Camera239.CFrame = CFrame.new(-13.5175266, 7.23358154, -2.35865545, -0.18066442, 0.0566165522, -0.981913924, -0, 0.998341858, 0.0575637743, 0.983544827, 0.0103997262, -0.180364832)
- Camera239.CoordinateFrame = CFrame.new(-13.5175266, 7.23358154, -2.35865545, -0.18066442, 0.0566165522, -0.981913924, -0, 0.998341858, 0.0575637743, 0.983544827, 0.0103997262, -0.180364832)
- Camera239.Focus = CFrame.new(-11.5536985, 7.11845398, -1.99792576, 1, 0, 0, 0, 1, 0, 0, 0, 1)
- Camera239.focus = CFrame.new(-11.5536985, 7.11845398, -1.99792576, 1, 0, 0, 0, 1, 0, 0, 0, 1)
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = workspace
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
Add Comment
Please, Sign In to add comment