Roblox/luau_corpus huggingface dataset:
--[[
	    ___      _______                _       _______
	   / _ |____/ ___/ /  ___ ____ ___ (_)__   /__  __/
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<     / /
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/	/_/   
						SecondLogic @ Inspare
						Avxnturador @ Novena
]]


local autoscaling	= true					--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
	}
}
-- How many times per second the gun can fire
local FireRate = 1 / 6
-- Luke


local button = script.Parent
local players = game:GetService('Players')

local DEBOUNCE_TIME = 5
local debounce = false


button.Touched:connect(function(hit)
	if hit and hit.Parent then
		local humanoid = hit.Parent:FindFirstChild('Humanoid')
		local hrp = hit.Parent:FindFirstChild('HumanoidRootPart')
		if hrp and humanoid and humanoid.Health > 0 then
			local player = players:GetPlayerFromCharacter(hit.Parent)
			if not debounce then
				debounce = true
				
				local nearestAccessory = nil
				local nearestDistance = nil
				for _,accessory in pairs(workspace:GetChildren()) do
					if accessory:IsA('Accessory') then
						local handle = accessory:FindFirstChild('Handle')
						if handle then
							local distance = (handle.Position-button.Position).magnitude
							if not nearestDistance or distance < nearestDistance then
								nearestDistance = distance
								nearestAccessory = accessory
							end
						end
					end
				end
				if nearestAccessory then
					local accessory = nearestAccessory:clone()
					accessory.Parent = hit.Parent
				end

				wait(DEBOUNCE_TIME)
				debounce = false
			end
		end
	end
end)
--	local now = os.time()
--	if now - lastMoan > 5 then	
--		if math.random() > .3 then
--			zombie.Moan:Play()
----			print("playing moan")
--			lastMoan = now
--		end
	--	end
	zombie.Humanoid:MoveTo(workspace.NPC.PrimaryPart.Position)
	wait(2)
end
--print(name .. " [" .. idx .. "] " .. animTable[name][idx].anim.AnimationId .. " (" .. animTable[name][idx].weight .. ")")
idx = idx + 1
end
end
end
--Now, for the teleporting...
local isBusy = false --We use this to make sure we don't do two things at once
--shot data
local lasttimeshot = tick()

ragdollbullettable = {}
--[ Setup ]--
-- Locations
local StealthLava = script.Parent
local Player = game.Players.LocalPlayer
local Avatar = Player.Character
local Mouse = Player:GetMouse()
-- Prunes any stories and test files that are included with the DevModule. These
-- are not needed at runtime.
local function prune(instance: Instance)
	for _, descendant in ipairs(instance:GetDescendants()) do
		local name = descendant.Name
		if name:match("%.story$") or name:match("%.spec$") then
			descendant:Destroy()
		end
	end
end

local function getPackageVersion(package: ModuleScript): string
	local version = package:FindFirstChild(constants.PACKAGE_VERSION_NAME)

	assert(
		version and version:IsA("StringValue"),
		constants.PACKAGE_VERSION_OBJECT_MISSING:format(
			package.Name,
			constants.PACKAGE_VERSION_NAME,
			package:GetFullName()
		)
	)
	assert(version.Value ~= "", constants.PACKAGE_VERSION_EMPTY:format(package.Name, version:GetFullName()))

	return version.Value
end
-- Now with exciting TeamColors HACK!





function waitForChild(parent, childName)


	while true do


		local child = parent:findFirstChild(childName)
-- Toggle pan
do
	local holdPan = false
	local togglePan = false
	local lastRmbDown = 0 -- tick() timestamp of the last right mouse button down event
	
	function CameraInput.getHoldPan(): boolean
		return holdPan
	end
	
	function CameraInput.getTogglePan(): boolean
		return togglePan
	end
	
	function CameraInput.getPanning(): boolean
		return togglePan or holdPan
	end
	
	function CameraInput.setTogglePan(value: boolean)
		togglePan = value
	end
	
	local cameraToggleInputEnabled = false
	local rmbDownConnection
	local rmbUpConnection
	
	function CameraInput.enableCameraToggleInput()
		if cameraToggleInputEnabled then
			return
		end
		cameraToggleInputEnabled = true
	
		holdPan = false
		togglePan = false
	
		if rmbDownConnection then
			rmbDownConnection:Disconnect()
		end
	
		if rmbUpConnection then
			rmbUpConnection:Disconnect()
		end
	
		rmbDownConnection = rmbDown:Connect(function()
			holdPan = true
			lastRmbDown = tick()
		end)
	
		rmbUpConnection = rmbUp:Connect(function()
			holdPan = false
			if tick() - lastRmbDown < MB_TAP_LENGTH and (togglePan or UserInputService:GetMouseDelta().Magnitude < 2) then
				togglePan = not togglePan
			end
		end)
	end
	
	function CameraInput.disableCameraToggleInput()
		if not cameraToggleInputEnabled then
			return
		end
		cameraToggleInputEnabled = false
	
		if rmbDownConnection then
			rmbDownConnection:Disconnect()
			rmbDownConnection = nil
		end
		
		if rmbUpConnection then
			rmbUpConnection:Disconnect()
			rmbUpConnection = nil
		end
	end
end

return CameraInput
-- functions

function stopAllAnimations()
	local oldAnim = currentAnim

	-- return to idle if finishing an emote
	if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
		oldAnim = "idle"
	end

	currentAnim = ""
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (oldAnimTrack ~= nil) then
		oldAnimTrack:Stop()
		oldAnimTrack:Destroy()
		oldAnimTrack = nil
	end
	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end
	return oldAnim
end

function setAnimationSpeed(speed)
	if speed ~= currentAnimSpeed then
		currentAnimSpeed = speed
		currentAnimTrack:AdjustSpeed(currentAnimSpeed)
	end
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then
--Get touch input
ButtonGui.TouchImage.InputBegan:Connect(function(InputObj)
	if InputObj.UserInputType == Enum.UserInputType.Touch then
		if AdornedSeat then
			EnterStart("Touch")
		end
	end
end)

ButtonGui.TouchImage.InputEnded:Connect(function(InputObj)
	if InputObj.UserInputType == Enum.UserInputType.Touch then
		EnterKeyDown = false
	end
end)

function DisplayPrompt(Part)
	AdornedSeat = Part
	ButtonGui.Adornee = Part
	ButtonGui.Parent = Player.PlayerGui
	ButtonGui.Enabled = true
end

function HidePrompt()
	AdornedSeat = nil
	ButtonGui.Adornee = nil
	ButtonGui.Parent = script
	ButtonGui.Enabled = false
end

while true do
	if HRP and Humanoid then
		if not Humanoid.Sit then
			local Closest = math.huge
			local ClosestSeat = nil
			for i,Seat in pairs(Seats) do
				local Dist = (HRP.Position - Seat.Position).magnitude
				if Dist < Closest and Dist < MaxDistance and not Seat:FindFirstChild("SeatWeld") then
					Closest = Dist
					ClosestSeat = Seat
				end
			end
			if ClosestSeat then
				DisplayPrompt(ClosestSeat)
			else
				HidePrompt()
			end
		else
			HidePrompt()
		end
	else
		HidePrompt()
	end
	wait(0.15)
end
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 335
	Tune.IdleRPM		= 700
	Tune.PeakRPM		= 5600
	Tune.Redline		= 6200
	Tune.EqPoint		= 5250
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.35			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 200		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 0			-- Percent throttle at idle
	Tune.ClutchTol		= 700		-- Clutch engagement threshold (higher = faster response)
-- httpImpl : (table, optional) a service that implements RequestAsync
function Networking.new(httpImpl)
	if not httpImpl then
		httpImpl = HttpService
	end

	local n = {
		-- some default headers
		_headers = {
			["Content-Type"] = "application/json",
		},

		-- the object that will fire the http requests
		_httpImpl = httpImpl
	}
	setmetatable(n, Networking)

	return n
end
-- functions

function stopAllAnimations()
	local oldAnim = currentAnim

	-- return to idle if finishing an emote
	if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
		oldAnim = "idle"
	end

	currentAnim = ""
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (oldAnimTrack ~= nil) then
		oldAnimTrack:Stop()
		oldAnimTrack:Destroy()
		oldAnimTrack = nil
	end
	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end
	return oldAnim
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then
--[[*
 * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 ]]

local CurrentModule = script.Parent
local Packages = CurrentModule.Parent
local LuauPolyfill = require(Packages.LuauPolyfill)
local Boolean = LuauPolyfill.Boolean
local RobloxShared = require(Packages.RobloxShared)
type Writeable = RobloxShared.Writeable
local exports = {}

local function clearLine(stream: Writeable): ()
	if Boolean.toJSBoolean(stream.isTTY) then
		stream:write("\x1b[999D\x1b[K")
	end
end
exports.default = clearLine

return exports
-- util

function waitForChild(parent, childName)
	local child = parent:findFirstChild(childName)
	if child then return child end
	while true do
		child = parent.ChildAdded:wait()
		if child.Name==childName then return child end
	end
end

function newSound(id)
	local sound = Instance.new("Sound")
	sound.SoundId = id
	sound.archivable = false
	sound.Parent = script.Parent.Head
	return sound
end
-- -- -- -- -- -- --
--DIRECTION SCROLL--
-- -- -- -- -- -- --

Lift:WaitForChild("Velocity").Changed:connect(function(vel)
	if vel > 0 then
		This.Display.ARW1.U1.BrickColor = BrickColor.new("Dark green")
		This.Display.ARW1.U2.BrickColor = BrickColor.new("Dark green")
		This.Display.ARW1.M1.BrickColor = BrickColor.new("Dark green")
		This.Display.ARW1.D1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D2.BrickColor = BrickColor.new("Really black")
	elseif vel < 0 then
		This.Display.ARW1.U1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.U2.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.M1.BrickColor = BrickColor.new("Dark green")
		This.Display.ARW1.D1.BrickColor = BrickColor.new("Dark green")
		This.Display.ARW1.D2.BrickColor = BrickColor.new("Dark green")
	else
		This.Display.ARW1.U1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.U2.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.M1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D2.BrickColor = BrickColor.new("Really black")
	end
end)
--Made by Luckymaxer

Figure = script.Parent

Humanoid = Figure:WaitForChild("Humanoid")

Regenerating = false

function RegenerateHealth()
	if Regenerating then
		return
	end
	Regenerating = true
	while Humanoid.Health < Humanoid.MaxHealth do
		local Second = wait(1)
		local Health = Humanoid.Health
		if Health > 0 and Health < Humanoid.MaxHealth then
			local NewHealthDelta = (0.01 * Second * Humanoid.MaxHealth)
			Health = (Health + NewHealthDelta)
			Humanoid.Health = math.min(Health, Humanoid.MaxHealth)
		end
	end
	if Humanoid.Health > Humanoid.MaxHealth then
		Humanoid.Health = Humanoid.MaxHealth
	end
	Regenerating = false
end

Humanoid.HealthChanged:connect(RegenerateHealth)
--[[Weight and CG]]
	Tune.Weight			= 4050		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		.2		,
	 --[[Height]]		.2		,
	 --[[Length]]		.2		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible

	--Unsprung Weight
	Tune.FWheelDensity	= 0.3		-- Front Wheel Density
	Tune.RWheelDensity	= 0.3		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1.5			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1.5			-- 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
-- Get Callout
local partDockA1Callout = script.Parent.SurfaceGui.ImageLabel

partDockA1.Transparency = 1
partDockA1Callout.ImageTransparency = 1
partDockA1Callout.TextLabel.TextTransparency = 1
-- you can mess with these settings
local easingtime = 0.1 --0~1
local walkspeeds = {
	enabled =		  true;
	walkingspeed =		16;
	backwardsspeed =	10;
	sidewaysspeed =		15;
	diagonalspeed =		16;
	runningspeed =		25;
	runningFOV=			85;
}
--task.wait(script.Duration.Value)

while script.Duration.Value > 0 do
	task.wait(1)
	script.Duration.Value = script.Duration.Value - 1
end
--// Return values: bool filterSuccess, bool resultIsFilterObject, variant result
function methods:InternalApplyRobloxFilterNewAPI(speakerName, message, textFilterContext) --// USES FFLAG
	if _SETTINGS.DisableSafeChat == false then
		local alwaysRunFilter = false
		local runFilter = RunService:IsServer() and not RunService:IsStudio()
		if (alwaysRunFilter or runFilter) then
			local fromSpeaker = self:GetSpeaker(speakerName)
			if fromSpeaker == nil then
				return false, nil, nil
			end
	
			local fromPlayerObj = fromSpeaker:GetPlayer()
			if fromPlayerObj == nil then
				return true, false, message
			end
	
			local success, filterResult = pcall(function()
				local ts = game:GetService("TextService")
				local result = ts:FilterStringAsync(message, fromPlayerObj.UserId, textFilterContext)
				return result
			end)
			if (success) then
				return true, true, filterResult
			else
				warn("Error filtering message:", message, filterResult)
				self:InternalNotifyFilterIssue()
				return false, nil, nil
			end
		end
	end
	--// Simulate filtering latency.
	wait()
	return true, false, message
end

function methods:InternalDoMessageFilter(speakerName, messageObj, channel)
	local filtersIterator = self.FilterMessageFunctions:GetIterator()

	for funcId, func, priority in filtersIterator do
		local success, errorMessage = pcall(function()
			func(speakerName, messageObj, channel)
		end)

		if not success then
			warn(string.format("DoMessageFilter Function '%s' failed for reason: %s", funcId, errorMessage))
		end
	end
end

function methods:InternalDoProcessCommands(speakerName, message, channel)
	local commandsIterator = self.ProcessCommandsFunctions:GetIterator()

	for funcId, func, priority in commandsIterator do
		local success, returnValue = pcall(function()
			local ret = func(speakerName, message, channel)
			if type(ret) ~= "boolean" then
				error("Process command functions must return a bool")
			end
			return ret
		end)

		if not success then
			warn(string.format("DoProcessCommands Function '%s' failed for reason: %s", funcId, returnValue))
		elseif returnValue then
			return true
		end
	end

	return false
end

function methods:InternalGetUniqueMessageId()
	local id = self.MessageIdCounter
	self.MessageIdCounter = id + 1
	return id
end

function methods:InternalAddSpeakerWithPlayerObject(speakerName, playerObj, fireSpeakerAdded)
	if (self.Speakers[speakerName:lower()]) then
		error("Speaker \"" .. speakerName .. "\" already exists!")
	end

	local speaker = Speaker.new(self, speakerName)
	speaker:InternalAssignPlayerObject(playerObj)
	self.Speakers[speakerName:lower()] = speaker

	if fireSpeakerAdded then
		local success, err = pcall(function() self.eSpeakerAdded:Fire(speakerName) end)
		if not success and err then
			print("Error adding speaker: " ..err)
		end
	end

	return speaker
end

function methods:InternalFireSpeakerAdded(speakerName)
	local success, err = pcall(function() self.eSpeakerAdded:Fire(speakerName) end)
	if not success and err then
		print("Error firing speaker added: " ..err)
	end
end
-- Decompiled with the Synapse X Luau decompiler.

wait(0.1);
local u1 = false;
local l__Character__2 = game.Players.LocalPlayer.Character;
game.Players.LocalPlayer:GetMouse().KeyDown:connect(function(p1)
	if p1:lower() == "h" then
		u1 = not u1;
		script.Parent.PassThrough:FireServer({ "Head", u1, l__Character__2 });
		wait(5);
	end;
end);
-- declarations

local head = script.Parent

function onTouched(part)
	local h = part.Parent:findFirstChild("Humanoid")
	if h~=nil then
if part.Parent:findFirstChild("Head"):findFirstChild("face").Texture == nil then return end
part.Parent:findFirstChild("Head"):findFirstChild("face").Texture="0 "	end
end

script.Parent.Touched:connect(onTouched)
------------
local x = (PlayerMouse.X - Colors.AbsolutePosition.X) / Colors.AbsoluteSize.X
local y = (PlayerMouse.Y - Colors.AbsolutePosition.Y) / Colors.AbsoluteSize.Y
h = 1 - x
s = 1 - y
Colors.Picker.Position = UDim2.new(x, 0, y ,0)
Brightness.ImageColor3 = Color3.fromHSV(h, s, 1)
Preview.ImageColor3 = Color3.fromHSV(h, s, v)
ChangeColorEvent:FireServer(Preview.ImageColor3)
--Incline Compensation
Tune.InclineComp	= 1.5			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
--Misc
Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
Tune.RevDecay		= 45		-- RPM decay when clutch is off
Tune.RevBounce		= 500		-- RPM kickback from redline
Tune.IdleThrottle	= 3			-- Percent throttle at idle
Tune.ClutchTol		= 670		-- Clutch engagement threshold (higher = faster response)
--[[Brakes]]
	Tune.ABSEnabled		= true		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 2100		-- Front brake force
	Tune.RBrakeForce	= 1800		-- Rear brake force
	Tune.PBrakeForce	= 15000		-- 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]
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder
	
]]--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
local u2 = {};
function Step()
	for v1, v2 in pairs(u2) do
		local v3 = v2[1];
		if v2[3] <= os.clock() - v2[2] then
			if type(v3) == "table" then
				local v4, v5, v6 = ipairs(v3);
				for v7, v8 in ipairs(v3) do 
					v8:Destroy();	
				end
			else
				v3:Destroy();
			end;
			table.remove(u2, v1);
		end;
	end;
end;
coroutine.wrap(function()
	while true do
		u1.Heartbeat();
		Step();	
	end;
end)();
return function(p1, p2)
	if not p2 then
		p2 = 10;
	end;
	table.insert(u2, { p1, os.clock(), p2 });
end;
-- Assign hotkeys for sibling selection
AssignHotkey({ 'LeftBracket' }, Support.Call(Targeting.SelectSiblings, false, true));
AssignHotkey({ 'LeftShift', 'LeftBracket' }, Support.Call(Targeting.SelectSiblings, false, false));
AssignHotkey({ 'RightShift', 'LeftBracket' }, Support.Call(Targeting.SelectSiblings, false, false));
--// SS3.33T Police Edit originally for 2017 Mercedes-Benz E300 by Itzt and MASERATl, base SS by Inspare
 
wait(0.1)
local player = game.Players.LocalPlayer
local HUB = script.Parent.HUB
local limitButton = HUB.tbName --DNS 2020-02-16 renamed the child textbox tbName because LUA threw "attempt to index" error when it was called Name
local lightOn = false
local Camera = game.Workspace.CurrentCamera
local cam = script.Parent.nxtcam.Value
local carSeat = script.Parent.CarSeat.Value
local mouse = game.Players.LocalPlayer:GetMouse()
-- função para adicionar vírgulas a um número
local function commaSeparateNumber(amount)
	local formatted = amount
	while true do  
		formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
		if k == 0 then
			break
		end
	end
	return "Boost: "..formatted
end
-- When tool deselected
function onDeselected(mouse)
	myMouse = nil
end

rayPart					= Instance.new("Part")
rayPart.Name			= "MG Ray"
rayPart.Transparency	= .5
rayPart.Anchored		= true
rayPart.CanCollide		= false
rayPart.TopSurface		= Enum.SurfaceType.Smooth
rayPart.BottomSurface	= Enum.SurfaceType.Smooth
rayPart.formFactor		= Enum.FormFactor.Custom
rayPart.BrickColor		= BrickColor.new("Bright yellow")
rayPart.Reflectance		= 0
rayPart.Material = Enum.Material.SmoothPlastic

function fireCoax()
	local MGAmmo = tankStats.MGAmmo;
	if MGAmmo.Value <= 0 then
		return false;
	end;
	
	local machineGun = parts.Parent.Gun.Coax
	local PL				= Instance.new("PointLight")
	PL.Parent				= machineGun
	PL.Brightness			= 50
	PL.Color				= Color3.new(255, 255, 0)
	PL.Range				= 15
	PL.Shadows				= true
	
	
	MGAmmo.Value = MGAmmo.Value - 1;
	machineGun.Sound:Play();
	
	local offset = (parts.Parent.Gun.Muzzle.CFrame * CFrame.new(0,100,0).p
                    - parts.Parent.Gun.Muzzle.Position).unit * 999;
    local ray = Ray.new(machineGun.Position, offset);
-- Public Constructors

function RadialMenuClass.new(subN, tPercent, rotation, ZIndex)
	local self = setmetatable({}, RadialMenuClass)
	
	self._Maid = Lazy.Utilities.Maid.new()
	self._ClickedBind = Instance.new("BindableEvent")
	self._HoverBind = Instance.new("BindableEvent")
	self._LastHoverIndex = nil
	
	self.Frame = CreateRadial(subN, tPercent, rotation, ZIndex)
	self.Rotation = rotation
	self.SubN = subN
	
	self.Enabled = true
	self.DeadZoneIn = 0.5
	self.DeadZoneOut = math.huge
	
	self.Clicked = self._ClickedBind.Event
	self.Hover = self._HoverBind.Event
	
	init(self)
	
	self:SetDialProps{ImageColor3 = Color3.new(0, 0, 0)}
	self:SetRadialProps{
		ImageColor3 = Color3.new(0, 0, 0),
		ImageTransparency = 0.7
	}
	
	return self
end
--("IsAPlayer")
if pl.PlayerGui:findFirstChild("VehicleGui")~=nil then
-- Night time
night_h1,night_m1 = 18,50	--start
night_h2,night_m2 = 5,30	-- end
local night_time1 = (night_h1 + (night_m1/60)) * 60
local night_time2 = (night_h2 + (night_m2/60)) * 60
--[[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	= 50		-- 0 - 100%				(0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
	Tune.RDiffSlipThres	= 30		-- 1 - 100%
	Tune.RDiffLockThres	= 60		-- 0 - 100%
	Tune.CDiffSlipThres	= 50		-- 1 - 100%				[AWD Only]
	Tune.CDiffLockThres	= 50		-- 0 - 100%				[AWD Only]
	
	--Traction Control Settings
	Tune.TCSEnabled		= true		-- Implements TCS
	Tune.TCSThreshold	= 18		-- Slip speed allowed before TCS starts working (in SPS)
	Tune.TCSGradient	= 18		-- Slip speed gradient between 0 to max reduction (in SPS)
	Tune.TCSLimit		= 9		-- Minimum amount of torque at max reduction (in percent)