Roblox/luau_corpus huggingface dataset:
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 310		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
	Tune.Redline		= 6700		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 4.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--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)
-- Function to handle when the search text changes
local function onSearchTextChanged()
	local searchText = searchBox.Text

	-- Check if the search text has actually changed
	if searchText ~= previousSearchText then
		previousSearchText = searchText
		updateSearchResults(searchText)
	end
end
-- Create component
local Component = Cheer.CreateComponent('BTExportDialog', View);

function Component.Start()

	-- Show the view
	View.Visible = true;

	-- Animate opening
	View.Loading.Size = UDim2.new(1, 0, 0, 0);
	View.Loading:TweenSize(UDim2.new(1, 0, 0, 80), nil, nil, 0.25);

	-- Enable close buttons
	Cheer.Bind(View.Close.Button, Component.Close);
	Cheer.Bind(View.Loading.CloseButton, Component.Close);

	-- Return component for chaining
	return Component;

end;

function Component.Close()
	-- Closes the dialog

	-- Destroy the view
	View:Destroy();

end;

function Component.SetError(Error)
	-- Sets the dialog error

	-- Set error text
	View.Loading.TextLabel.Text = Error;

end;

function Component.SetResult(Result)
	-- Sets the dialog result

	-- Hide loading message
	View.Loading.Visible = false;	

	-- Set result text
	View.Info.CreationID.Text = Result;

	-- Animate opening for result UI
	View.Info.Size = UDim2.new(1, 0, 0, 0);
	View.Info.Visible = true;
	View.Info:TweenSize(UDim2.new(1, 0, 0, 75), nil, nil, 0.25);
	View.Tip.Size = UDim2.new(1, 0, 0, 0);
	View.Tip.Visible = true;
	View.Tip:TweenSize(UDim2.new(1, 0, 0, 30), nil, nil, 0.25);
	View.Close.Size = UDim2.new(1, 0, 0, 0);
	View.Close.Visible = true;
	View.Close:TweenSize(UDim2.new(1, 0, 0, 20), nil, nil, 0.25);

end;

return Component;
-- Render other objects at medium FPS

	for i,d in pairs(workspace.Balls:GetDescendants()) do
		if d:IsA("BasePart") then
			local ball_Handler = VF_Handler:RenderObject(d, 30)			
		end
	end
--[[
	Function called when leaving the state
]]
function ServerPostGame.onLeave(stateMachine, event, from, to)
end

return ServerPostGame
-- Given a weapon definition a weapons runtime data will be constructed.
-- Basic methods allow for managing of the weapons runtime data.
-- @param WeaponDefinition weaponDefinition
-- @param Model character
-- @return WeaponRuntimeData
function WeaponRuntimeData.New(weaponDefinition,character)
	local self = {}
	setmetatable(self,WeaponRuntimeData)
	
	self.weaponDefinition = weaponDefinition
	self.character = character
	self.recoilSimulator = RecoilSimulator.New(self)
	self.spreadSimulator = SpreadSimulator.New(self)
	
	-- Runtime Variables
	self.currentAmmo = self.weaponDefinition:GetMaxAmmo() -- Weapon starts out with max ammo

	return self
end
--[[ Roblox Services ]]--
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local StarterPlayer = game:GetService("StarterPlayer")
local UserGameSettings = UserSettings():GetService("UserGameSettings")
--------LEFT DOOR --------
game.Workspace.doorleft.l31.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l32.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l33.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l61.BrickColor = BrickColor.new(106)
game.Workspace.doorleft.l62.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l63.BrickColor = BrickColor.new(106)
--driving
mouse.KeyDown:connect(function (key1)
key1 = string.lower(key1)


if key1 == "w" then
		carSeat.hitter.CanCollide = false
		carSeat.exhaust.Part.Spring.Stiffness = 0
else
			carSeat.hitter.CanCollide = true
					carSeat.exhaust.Part.Spring.Stiffness = 500

end
end)
--Precalculated paths
local t,f,n=true,false,{}
local r={
[58]={{22,21,20,58},t},
[49]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49},t},
[16]={n,f},
[19]={{22,21,20,19},t},
[59]={{22,21,20,57,56,30,41,59},t},
[63]={{22,21,20,63},t},
[34]={{22,21,20,57,56,30,41,39,35,34},t},
[21]={{22,21},t},
[48]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48},t},
[27]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,27},t},
[14]={n,f},
[31]={{22,21,20,57,56,30,41,39,35,34,32,31},t},
[56]={{22,21,20,57,56},t},
[29]={{22,21,20,57,56,30,41,39,35,34,32,31,29},t},
[13]={n,f},
[47]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47},t},
[12]={n,f},
[45]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45},t},
[57]={{22,21,20,57},t},
[36]={{22,21,20,57,56,30,41,39,35,37,36},t},
[25]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,27,26,25},t},
[71]={{22,21,20,57,56,30,41,59,61,71},t},
[20]={{22,21,20},t},
[60]={{22,21,20,57,56,30,41,60},t},
[8]={n,f},
[4]={n,f},
[75]={{22,21,20,57,56,30,41,59,61,71,72,76,73,75},t},
[22]={{22},t},
[74]={{22,21,20,57,56,30,41,59,61,71,72,76,73,74},t},
[62]={{22,21,20,62},t},
[1]={n,f},
[6]={n,f},
[11]={n,f},
[15]={n,f},
[37]={{22,21,20,57,56,30,41,39,35,37},t},
[2]={n,f},
[35]={{22,21,20,57,56,30,41,39,35},t},
[53]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,52,53},t},
[73]={{22,21,20,57,56,30,41,59,61,71,72,76,73},t},
[72]={{22,21,20,57,56,30,41,59,61,71,72},t},
[33]={{22,21,20,57,56,30,41,39,35,37,36,33},t},
[69]={{22,21,20,57,56,30,41,60,69},t},
[65]={{22,21,20,19,66,64,65},t},
[26]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,27,26},t},
[68]={{22,21,20,19,66,64,67,68},t},
[76]={{22,21,20,57,56,30,41,59,61,71,72,76},t},
[50]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,50},t},
[66]={{22,21,20,19,66},t},
[10]={n,f},
[24]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,27,26,25,24},t},
[23]={{22,21,20,62,23},t},
[44]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44},t},
[39]={{22,21,20,57,56,30,41,39},t},
[32]={{22,21,20,57,56,30,41,39,35,34,32},t},
[3]={n,f},
[30]={{22,21,20,57,56,30},t},
[51]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,50,51},t},
[18]={n,f},
[67]={{22,21,20,19,66,64,67},t},
[61]={{22,21,20,57,56,30,41,59,61},t},
[55]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,52,53,54,55},t},
[46]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,46},t},
[42]={{22,21,20,57,56,30,41,39,40,38,42},t},
[40]={{22,21,20,57,56,30,41,39,40},t},
[52]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,52},t},
[54]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28,44,45,49,48,47,52,53,54},t},
[43]={n,f},
[7]={n,f},
[9]={n,f},
[41]={{22,21,20,57,56,30,41},t},
[17]={n,f},
[38]={{22,21,20,57,56,30,41,39,40,38},t},
[28]={{22,21,20,57,56,30,41,39,35,34,32,31,29,28},t},
[5]={n,f},
[64]={{22,21,20,19,66,64},t},
}
return r
--

local spring = {};
local spring_mt = {__index = spring};

function spring.new(position, velocity, target, stiffness, damping, precision)
	local self = {};
	
	self.position = position;
	self.velocity = velocity;
	self.target = target;
	self.stiffness = stiffness;
	self.damping = damping;
	self.precision = precision;
	
	return setmetatable(self, spring_mt);
end
-- Waits for parent.child to exist, then returns it
local function WaitForChild(parent, childName)
	assert(parent, "ERROR: WaitForChild: parent is nil")
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
	return parent[childName]
end

local PlayersService = Game:GetService('Players')
local DebrisService = Game:GetService('Debris')

local Tool = script.Parent
local ToolHandle = Tool.Handle

local ThrowSound = WaitForChild(ToolHandle, 'Throw')
-- Listeners
Tool.Equipped:connect(function()
	
	-- Redefine character and humanoid just in case
	Character = Player.Character
	Humanoid = Character:WaitForChild("Humanoid")
	
	-- Show the segway menu gui and color gui
	NewDisplayGui = DisplayGui:Clone()
	NewDisplayGui.Parent = PlayerGui
	
	NewColorGui = ColorGui:Clone()
	NewColorGui.Parent = PlayerGui
	NewColorGui:WaitForChild("MyTool").Value = Tool
	
	local OpenButton = NewDisplayGui:WaitForChild("OpenButton")
	local ColorOpenButton = NewColorGui:WaitForChild("OpenButton")
	
	OpenButton:TweenPosition(UDim2.new(1, -92,1, -38),0,0,0.4,true)
	ColorOpenButton:TweenPosition(UDim2.new(0, -6,0.5, -70),0,0,0.4,true)
end)

Tool.Unequipped:connect(function() -- Remove segway when tool is unequipped
	if NewDisplayGui and NewColorGui then
		NewDisplayGui:Destroy()
		NewColorGui:Destroy()
	end
	
	if SpawnedSegway.Value then
		RemoveSegway()
	end
end)

Tool.Activated:connect(function()
	if HasSpawnedSegway.Value == false and IsCoolingDown == false then -- So workspace won't be spammed with segways
	IsCoolingDown = true
	HasSpawnedSegway.Value = true
	
	-- Hide the tool player is holding
	ConfigTool:FireServer(1,Tool,false,nil)
	
	-- Spawn segway
	SpawnSegway:FireServer(Character,Tool,SpawnedSegway,StarterColor.Value) -- Fire remote event to spawn
	
	-- Prevent spamming of segways which may lag the server
	wait(ToolCoolDown)
	IsCoolingDown = false
	end
end)

Humanoid.Died:connect(function()
	RemoveSegway()
end)
--[[ ALL STARTERPACK FUNCTIONS ]]--
local StarterPack = game.StarterPack
--[=[
	Folds an array of values or promises into a single value. The array is traversed sequentially.

	The reducer function can return a promise or value directly. Each iteration receives the resolved value from the previous, and the first receives your defined initial value.

	The folding will stop at the first rejection encountered.
	```lua
	local basket = {"blueberry", "melon", "pear", "melon"}
	Promise.fold(basket, function(cost, fruit)
		if fruit == "blueberry" then
			return cost -- blueberries are free!
		else
			-- call a function that returns a promise with the fruit price
			return fetchPrice(fruit):andThen(function(fruitCost)
				return cost + fruitCost
			end)
		end
	end, 0)
	```

	@since v3.1.0
	@param list {T | Promise<T>}
	@param reducer (accumulator: U, value: T, index: number) -> U | Promise<U>
	@param initialValue U
]=]
function Promise.fold(list, callback, initialValue)
	assert(type(list) == "table", "Bad argument #1 to Promise.fold: must be a table")
	assert(type(callback) == "function", "Bad argument #2 to Promise.fold: must be a function")

	local accumulator = Promise.resolve(initialValue)
	return Promise.each(list, function(resolvedElement, i)
		accumulator = accumulator:andThen(function(previousValueResolved)
			return callback(previousValueResolved, resolvedElement, i)
		end)
	end):andThenReturn(accumulator)
end
--[=[
	Accepts an array of Promises and returns a new promise that is resolved or rejected as soon as any Promise in the array resolves or rejects.

	:::warning
	If the first Promise to settle from the array settles with a rejection, the resulting Promise from `race` will reject.

	If you instead want to tolerate rejections, and only care about at least one Promise resolving, you should use [Promise.any](#any) or [Promise.some](#some) instead.
	:::

	All other Promises that don't win the race will be cancelled if they have no other consumers.

	```lua
	local promises = {
		returnsAPromise("example 1"),
		returnsAPromise("example 2"),
		returnsAPromise("example 3"),
	}

	return Promise.race(promises) -- Only returns 1st value to resolve or reject
	```

	@param promises {Promise<T>}
	@return Promise<T>
]=]
function Promise.race(promises)
	assert(type(promises) == "table", string.format(ERROR_NON_LIST, "Promise.race"))

	for i, promise in pairs(promises) do
		assert(Promise.is(promise), string.format(ERROR_NON_PROMISE_IN_LIST, "Promise.race", tostring(i)))
	end

	return Promise._new(debug.traceback(nil, 2), function(resolve, reject, onCancel)
		local newPromises = {}
		local finished = false

		local function cancel()
			for _, promise in ipairs(newPromises) do
				promise:cancel()
			end
		end

		local function finalize(callback)
			return function(...)
				cancel()
				finished = true
				return callback(...)
			end
		end

		if onCancel(finalize(reject)) then
			return
		end

		for i, promise in ipairs(promises) do
			newPromises[i] = promise:andThen(finalize(resolve), finalize(reject))
		end

		if finished then
			cancel()
		end
	end)
end
-- TODO: Include and support inverted walls
local function createObjectTypesFromAsset(asset)
	if asset then
		local newObjectTypes = {}
		for rotation = 0, 270, 90 do
			table.insert(newObjectTypes, ObjectType.new(asset, rotation, 0))
			if asset then
				local typeConfig = asset:WaitForChild("ObjectType")
				if typeConfig and typeConfig:IsA("StringValue") then
					local type = typeConfig.Value
					if BitOps.getVerticalFaceFromOccupancy(ObjectTypeConfigurations[type].OCCUPANCY) then
						table.insert(newObjectTypes, ObjectType.new(asset, rotation, 180))
					end
				end
			end
		end

		return newObjectTypes
	else
		error("Cannot create a grid object from nil instance")
	end
end

return createObjectTypesFromAsset
--Extend FE code
F.Extend = function()
	TS:Play()
	TS1:Play()	
	Sounds1.On:Play()
	Sounds2.On:Play()
end
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Collapse.OnServerEvent:Connect(function(player)
	

	local Human = player.Character.Humanoid
	local Dor = Human.Parent.Saude.Variaveis.Dor
	local Sangue = Human.Parent.Saude.Variaveis.Sangue
	local IsWounded = Human.Parent.Saude.Stances.Caido
	local IsDead = Human.Parent.Saude.Stances.rodeath


	if Sangue.Value <= 1250 or Dor.Value >= 600 or IsWounded.Value == true or IsDead.Value == true then -- Man this Guy's Really wounded,
		IsWounded.Value = true
		Human.PlatformStand = true
		Human.AutoRotate = false		
	elseif IsWounded.Value == false then -- YAY A MEDIC ARRIVED! =D
		Human.PlatformStand = false
		Human.AutoRotate = true
		
	end
end)




rodeath.OnServerEvent:Connect(function(player)

	local Human = player.Character.Humanoid
	local Dor = Human.Parent.Saude.Variaveis.Dor
	local Sangue = Human.Parent.Saude.Variaveis.Sangue
	
	local IsWounded = Human.Parent.Saude.Stances.Caido
	local IsDead = Human.Parent.Saude.Stances.rodeath
	local bleeding = Human.Parent.Saude.Stances.Sangrando
	local bbleeding = Human.Parent.Saude.Stances.bbleeding
	local cpr = Human.Parent.Saude.Stances.cpr
	local dead = Human.Parent.Saude.Stances.dead
	local life = Human.Parent.Saude.Stances.life
	local Sangrando = Human.Parent.Saude.Stances.Sangrando
	--local Teams = game:GetService("Teams")
	--local civilian = Teams.Civilian
	
	if IsDead.Value == true then
		life.Value = false
		IsWounded.Value = true
		--Sangrando.Value = true
		if Sangue.Value <= 0 then
			dead.Value = true	
			wait(1)
			Human.PlatformStand = false
			Human.AutoRotate = true	
			
			--player.Team = civilian
			Human.Health = 0
		else

		wait(90)
		
		
	
		if Human.Health <= 1 then
				
			
			dead.Value = true
			Sangue.Value = 0	
				
			wait(1)
			Human.PlatformStand = false
			Human.AutoRotate = true	
			
			--player.Team = civilian
			Human.Health = 0
		
	
		end
		end
		end

end)


Reset.OnServerEvent:Connect(function(player)

local Human = player.Character.Humanoid
local target = Human.Parent.Saude.Variaveis.PlayerSelecionado

target.Value = "N/A"
end)
-- Module functions:
function RateLimiter.NewRateLimiter(rate) --> [RateLimiter]
	if rate <= 0 then
		error("[RateLimiter]: Invalid rate")
	end
	
	local rate_limiter = {
		_sources = {},
		_rate_period = 1 / rate,
	}
	setmetatable(rate_limiter, RateLimiterObject)
	
	RateLimiters[rate_limiter] = true
	
	return rate_limiter
end
--				-1 = Closed
--				0 = Active
--				1 = Open

function getItems() 
	for _,v in pairs(script.Parent:GetChildren()) do 
		if ((v:IsA("BasePart")) and (v.Name == "Bar")) then 
			table.insert(_items,v) 
		end 
	end 
end 

function main() 
	local d = door 
	door = 0 
	script.Parent.Button.BrickColor = BrickColor.new("New Yeller") 
	for i = 0,5,0.05 do 
		for _,v in pairs(_items) do 
			v.CFrame = v.CFrame * CFrame.new((-0.20*(-d)),0,0) 
		end 
		wait() 
	end 
	if (d == (-1)) then 
		script.Parent.Button.BrickColor = BrickColor.new("Really red") 
	elseif (d == 1) then 
		script.Parent.Button.BrickColor = BrickColor.new("Bright green") 
	end 
	door = d 
end 

script.Parent.Button.Click.MouseClick:connect(function() 
	if (door == 0) then return end 
	door = (door*(-1)) 
	main() 
end) 

getItems()
--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]
--
local cl_api = script.Parent.Close
local op_api = script.Parent.Open

local tweeninfo = TweenInfo.new(
	script.Parent.Parent.Settings.DoorMoveTime.Value,
	Enum.EasingStyle.Sine,
	Enum.EasingDirection.InOut,
	0,
	false,
	0
)


local d1close = tweenservice:Create(door1, tweeninfo, {Position = script.Parent.Door1ClosePos.Position})
local d1open = tweenservice:Create(door1, tweeninfo, {Position = script.Parent.Door1OpenPos.Position})
--A table holding elements of the form {func, {args}}.
FunctionQueue._Functions = false;
-----------------------------------------------------------------------------------------------

script.Parent:WaitForChild("Speedo")
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)
-- Forces a copy object to mirror the value of
-- a property on the provided base object.

function FpsCamera:MirrorProperty(base, copy, prop)
	base:GetPropertyChangedSignal(prop):Connect(function ()
		copy[prop] = base[prop]
	end)
end
-- [ SETTINGS ] --

local statsName = "Fails" -- Your stats name
local maxItems = 20 -- Max number of items to be displayed on the leaderboard
local minValueDisplay = 1 -- Any numbers lower than this will be excluded
local maxValueDisplay = 10e15 -- (10 ^ 15) Any numbers higher than this will be excluded
local abbreviateValue = true -- The displayed number gets abbreviated to make it "human readable"
local updateEvery = 20 -- (in seconds) How often the leaderboard has to update
local headingColor = Color3.fromRGB(25, 181, 254) -- The background color of the heading
-- Ensures that all scripts included with a DevModule are marked as Disabled.
-- This makes sure there are no race conditions resulting in the Install script
-- running after the scripts included with the module.
local function assertScriptsAreDisabled(devModuleScripts: {Script|LocalScript})
    local enabledScripts = {}

    for _, devModuleScript in ipairs(devModuleScripts) do
        if not devModuleScript.Disabled then
            table.insert(enabledScripts, devModuleScript.Name)
        end
    end

    if #enabledScripts > 0 then
        error(ENABLED_SCRIPTS_ERROR:format(table.concat(enabledScripts, ", ")))
    end
end

function DevModuleInstaller:Install(devModule: Instance)
    local devModuleType = typeof(devModule)
    assert(devModuleType == "Instance", ("expected a DevModule to install, got %s"):format(devModuleType))

    script.InstallStarted:Fire()

    log("info", ("Installing %s from %s..."):format(devModule.Name, devModule.Parent.Name))

    local devModuleScripts = getDevModuleScripts(devModule)
    assertScriptsAreDisabled(devModuleScripts)

    if DEV_MODULE_STORAGE:FindFirstChild(devModule.Name) then
        log("info", "A version of this DevModule already exists. Skipping...")
        devModule:Destroy()
        return
    end

    if DevModuleInstaller.PruneDevelopmentFiles then
        log("info", "Pruning development files...")
        prune(devModule)
    end

    -- The `true` flag searches all descendants of an instance, which is needed
    -- here since the Packages folder is nested.
    local packages = devModule:FindFirstChild(PACKAGE_NAME, true)
    if packages then
        log("info", "Linking packages...")
        dedupePackages(packages)
    end

    log("info", "Overlaying services...")
    for _, child in ipairs(devModule:GetChildren()) do
        -- GetService errors if the given name is not a service so we wrap it in
        -- a pcall to use the result in a conditional.
        local success, service = pcall(function()
            return game:GetService(child.Name)
        end)

        if success then
            overlay(child, service)
        end
    end

    log("info", "Enabling scripts...")
    for _, devModuleScript in ipairs(devModuleScripts) do
        devModuleScript.Disabled = false
        log("info", ("Enabled %s"):format(devModuleScript.Name))
    end

    script.InstallFinished:Fire()

    log("info", ("Safe to remove %s"):format(devModule:GetFullName()))
    log("info", ("Removing %s..."):format(devModule:GetFullName()))
    devModule:Destroy()

    log("info", ("Successfully installed %s!"):format(devModule.Name))
end

return DevModuleInstaller
--Setup static variables
local v3,cf		= Vector3.new,CFrame.new
local match,max	= string.match,math.max
local clipperSize, clipperCF = v3(1,0.1,1), cf(0,-0.1,0)


local module = {}

function module.new(ID, Type)
	
	--Sanity checks
	assert(ID and type(ID) == "string" and match(ID,"%d+"), "Invalid Image ID: "..ID)
	assert(Type and type(Type) == "string" and script:FindFirstChild(Type), "Invalid Clipper Type: "..Type)
	
	--Clipper mesh
	local Clipper	= script:FindFirstChild(Type):Clone()
		Clipper.Size			= clipperSize
		Clipper.CFrame			= clipperCF
		Clipper.Transparency	= 1
		
	--Decal Image
	local Image		= Decal:Clone()
		Image.Texture			= ID
		
	--Camera renderpoint
	local Cam		= Camera:Clone()
		Cam.CFrame				= CFrame.new(Vector3.new(0,(max(Clipper.Size.X,Clipper.Size.Z)/2)/0.17,0),Vector3.new())*CFrame.Angles(0,0,-1.5707963267949)
		
	--ViewportFrame
	local Frame		= ViewportFrame:Clone()
		Frame.CurrentCamera		= Cam

	--Finalize setup
	Image.Parent	= Clipper
	Clipper.Parent	= Frame
	Cam.Parent		= Frame	--If Frame is deleted, so is Cam (avoiding mem leaks)
	
	return Frame, Clipper
	
end

return module
--nohax--
local raycastParams = RaycastParams.new();
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist;

local lastValidCF = hrp.CFrame;
local velocityModifiers : {BodyVelocity} = {};

local lastValidGroundCF = hrp.CFrame;
local flyStartVelocity = Vector3.new();

local flightTime = 0;
local FLIGHT_TIME_THRESHOLD = 0.5;
--Weld Body
wait()
ModelWeld(bike.Body,bike.DriveSeat)

ModelWeld(bike.FrontSection.Wheel.Parts,bike.FrontSection.Wheel)
ModelWeld(bike.FrontSection.Wheel.WheelFixed,bike.FrontSection.Axle)
ModelWeld(bike.FrontSection.Wheel.SuspensionFixed,bike.FrontSection.FrontSuspensionBase)

MakeWeld(bike.FrontSection.FrontSuspensionAxle,bike.FrontSection.Axle)
MakeWeld(bike.FrontSection.TripleTreeHinge,bike.FrontSection.FrontSuspensionBase)

MakeWeld(bike.RearSection.Axle,bike.RearSection.RearSwingArmHinge)
ModelWeld(bike.RearSection.Wheel.Parts,bike.RearSection.Wheel)
ModelWeld(bike.RearSection.Wheel.WheelFixed,bike.RearSection.Axle)
-- Handle to the tool and its object
sword = script.Parent.Handle
Tool = script.Parent
--Drilling SFX--
local drilling1 = script.Parent.Drill1.DrillSound
--Realistic Downforce 2.0--
--//INSPARE//--
--Downforce based on angle--
while true do
	wait()
	speed = script.Parent.Parent.Velocity.magnitude
	script.Parent.force = Vector3.new(0, script.Parent.Parent.CFrame.lookVector.Y*(30*speed), (6*speed))
end