Pinkstack/roblox-luau-corpus-text huggingface dataset:
-- find player's head pos



	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)

	local head = vCharacter:findFirstChild("Head")
	if head == nil then return end


	local launch = head.Position + 10 * v

		

	local missile = pie:clone()
        		



	missile.CFrame = CFrame.new(launch,  launch + v)
	missile.Velocity = v * 50





	local force = Instance.new("BodyForce")
	force.force = Vector3.new(0,240,0)
	force.Parent = missile

	if (turbo) then
		missile.Velocity = v * 100
		force.force = Vector3.new(0,45,0)
	end

	local ps = script.Parent.PieScript:Clone()
	ps.Parent = missile
	missile.PieScript.Disabled = false

	

	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = vCharacter
	creator_tag.Name = "creator"
	creator_tag.Parent = missile
	
	missile.Parent = game.Workspace

end



function rndDir()
	return Vector3.new(math.random() - .5, math.random() - .5, math.random() - .5).unit
end

Tool.Enabled = true
function onActivated()
	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return 
	end
if loaded==true then
	loaded=false

	local targetPos = humanoid.TargetPoint
	local lookAt = (targetPos - character.Head.Position).unit

	fire(lookAt, isTurbo(character) )

	if (isTurbo(character) == true) then
		wait(.1)
		Tool.Parent.Torso["Right Shoulder"].MaxVelocity = 0.6
		Tool.Parent.Torso["Right Shoulder"].DesiredAngle = -3.6
		wait(.1)
		fire(lookAt * .9 + rndDir() * .1, isTurbo(character) )
		Tool.Parent.Torso["Right Shoulder"].MaxVelocity = 0.6
		Tool.Parent.Torso["Right Shoulder"].DesiredAngle = -3.6
		wait(.1)
		fire(lookAt * .8 + rndDir() * .2, isTurbo(character) )
		wait(.1)
	else
		wait(.3)
	end

	Tool.Enabled = true
elseif loaded==false then
Tool.Parent.Torso["Right Shoulder"].MaxVelocity = 0.6
Tool.Parent.Torso["Right Shoulder"].DesiredAngle = -3.6
	wait(.1)
Tool.Handle.Transparency=0
wait(.1)
	loaded=true
	end
	Tool.Enabled = true
end

script.Parent.Activated:connect(onActivated)
------------------------------------------------------------------------	


	ltime = math.random(100,2000)
	print (ltime)
	for i=1,ltime do
	wait()
	local bewl = script.Parent:FindFirstChild("Bool")
	if bewl then
	local ignoreList = {}
	local ray = Ray.new(script.Parent.Part8.Position, missile.CFrame.lookVector * 999)
	local hit game.Workspace:FindPartOnRayWithIgnoreList(ray, ignoreList, false)
	local pos = script.Parent.Bool.Position
	local line = Instance.new("Part")
		line.Name = "Line"
		line.FormFactor = "Symmetric"
		line.Size = Vector3.new(1, 1, 1)
		line.BrickColor = BrickColor.new("White")
		line.Transparency = 0
		line.CanCollide = false
		line.Anchored = true
		line.Locked = true
		line.TopSurface, line.BottomSurface = 0, 0
		line.CFrame = CFrame.new(script.Parent.Part8.Position:lerp(pos, 0.5), pos)
		local mesh = Instance.new("BlockMesh", line)
		mesh.Scale = Vector3.new(0.03, 0.03, (script.Parent.Part8.Position - pos).magnitude)
		game.Debris:AddItem(line,0.08)
		line.Parent = script.Parent
		wait(0.001)

	else 
	print("No bool")
	break 
	end
	


	end
	
	local bewl = script.Parent:FindFirstChild("Bool")
	if bewl then
	bewl:Destroy()
	
	local character = script.Parent.Parent
	local player = game.Players:GetPlayerFromCharacter(character)
 	if player then
	script.Parent.Handle.Sound:Play()
	local ItemDirectory = game.ServerStorage.Assets.MobDrops.Fishing
	local FRAP = ItemDirectory:GetChildren()[math.random(1,#ItemDirectory:GetChildren())]:clone()
	FRAP.Parent = player.Backpack
	FRAP.Handle.CFrame =script.Parent.Handle.CFrame + Vector3.new(math.random(-5, 5), 3, math.random(-5, 5))
	end
	end
--------------------------------------------------------


function DeleteIdlePlane() --This deletes any planes that aren't currently being used
	for _,v in pairs(Planekit:GetChildren()) do
		if v.Name == "Plane" then
			v:Destroy()
		end
	end
end

function RegenMain() --This function regens the plane
	local PlaneClone2 = PlaneClone:clone()
	PlaneClone2.Parent = Planekit
	PlaneClone2.Origin.Value = Planekit
	PlaneClone2:MakeJoints()
	return PlaneClone2
end

function RegeneratePlane(Part) --This is the main regenerating function
	local Player = game.Players:GetPlayerFromCharacter(Part.Parent) --This gets the player that touched it
	if Player then
		if Active then
			Active = false
			DeleteIdlePlane() --This activates the "DeleteIdlePlane" function
			for i = 0,1,0.2 do --This makes the button transparent
				Main.Transparency = i
				wait()
			end
			if RegenTime >= 1 then
				RegenGui.Parent = Player.PlayerGui --The regengui will be put into the player if the regentime is more than 1
			end
			wait(RegenTime)
			RegenGui.Parent = script --This puts the gui back in the script
			local PlaneClone2 = RegenMain()
			if EnterOnSpawn.Value then --If the EnterOnSpawn value is true...
				coroutine.resume(coroutine.create(function()
					repeat wait() until PlaneClone2.Welded.Value
					onPlaneWelded(Player,PlaneClone2) --This activates the "onPlaneWelded" function whenever the welded value changes
				end))
			end
			wait(WaitTime)
			for i = 1,0,-0.2 do --This makes the button visible
				Main.Transparency = i
				wait()
			end
			Active = true
		end
	end
end

function onPlaneWelded(Player,Plane) --This function put you into the plane seat the moment the plane is welded
	if Plane and Player then --This checks to make sure there is a plane and a player
		if Player.Character:findFirstChild("Torso") then
			Player.Character.Torso.CFrame = Plane.MainParts.Seat.CFrame
		end
	end
end

Main.Touched:connect(RegeneratePlane) --This activates the "RegeneratePlane" function when the Main brick is touched
-- << FUNCTIONS >>


function module:GetData(dataStore, datastoreRetries, key)
	return module:DataStoreRetry(datastoreRetries, function()
		return dataStore:GetAsync(key)
	end)
end

function module:DataStoreRetry(datastoreRetries, dataStoreFunction)
	local tries = 0	
	local success = true
	local data = nil
	local errorMsg = ""
	repeat
		tries = tries + 1
		success, errorMsg = pcall(function() data = dataStoreFunction() end)
		if not success then wait(1) end
	until tries == datastoreRetries or success
	if not success then
		--warn("HD Admin | Could not access DataStore | ".. tostring(errorMsg))
		-- Cannot access DataStore
	end
	return success, data
end



return module
--Jitler is Pogi



local Sound = script.Parent.Sound
local Tada = Sound.Tada
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, true)
local Frame = script.Parent.MainFrame

local hit = false
game.Workspace.Map.Pad.Touched:connect(function(part)
	wait(.3)
	if part.Parent.Name == game.Players.LocalPlayer.Name then
		
		if not hit then
			hit = true
			part.Parent.Humanoid.WalkSpeed = 0
			script.Parent.ImageLabel:TweenPosition(UDim2.new(0.5, 0, 0, 0), "Out", "Quint", 1)
			script.Parent.ImageLabel2:TweenPosition(UDim2.new(0, 0, 0, 0), "Out", "Quint", 1)
			wait(0.7)
			StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)
			spawn(function()
				wait(.3)
				Frame.Visible = true
			end)
			wait(1.5)
			script.Parent.ImageLabel:TweenPosition(UDim2.new(0.5, 1000, 0, 0), "In", "Quint", 1)
			script.Parent.ImageLabel2:TweenPosition(UDim2.new(0, -1000, 0, 0), "In", "Quint", 1)
			spawn(function()
				wait(.2)
				Tada:Play()
			end)
			wait(1)
			script.Parent.ImageLabel.Visible = false
			script.Parent.ImageLabel2.Visible = false
		end
	end
end)
--	first reset scrollingFrame to zero position


	scrollingFrame.CanvasPosition = Vector2.new(0, 0)
	local width = scrollingFrame.AbsoluteSize.X
	local height = scrollingFrame.AbsoluteSize.Y

	local isBottom = false
	local instance
	local threshold = 2
	while not isBottom do
		wait(0.1)
		--if find the element then return
		instance = absPath:getFirstInstance()
		if instance then return instance end
		--scroll
		local oldPosition = scrollingFrame.CanvasPosition
		scrollingFrame.CanvasPosition = scrollingFrame.CanvasPosition +
			Vector2.new(math.min(width, 300), math.min(height, 300))
		--wait for content to refresh
		local delta = scrollingFrame.CanvasPosition - oldPosition
		isBottom = delta.Magnitude < threshold
		--if it is the bottom, then return not found
	end
	return nil
end

function Element:centralizeWithInfiniteScrolling()
	local instances, lastSeenIndex = self.path:getInstances()
	if #instances > 0 then self:centralizeInstance() end

	local lastSeenPath = self.path:copy()
	while #lastSeenPath.data > lastSeenIndex do
		table.remove(lastSeenPath.data)
	end

	local lastSeenInstance = lastSeenPath:getFirstInstance()
	local lastScrollingFrame = nil
	while true do
		if lastSeenInstance.ClassName == "ScrollingFrame" then
			lastScrollingFrame = lastSeenInstance
			break
		end
		lastSeenInstance = lastSeenInstance.Parent
		if lastSeenInstance == game then break end
	end
	if lastScrollingFrame == nil then return end
	if self:_scrollToFindInstance(lastScrollingFrame, self.path) == nil then return end
	self:_centralizeInScrollingFrame(self:getRbxInstance())
end

function Element:setPluginWindow()
	local window = self.rbxInstance:FindFirstAncestorOfClass("DockWidgetPluginGui")
	VirtualInput.setCurrentWindow(window)
end

function Element:click(repeatCount)
	self:centralize()
	self:setPluginWindow()

	repeatCount = repeatCount or 1
	VirtualInput.Mouse.multiClick(self:getAnchor(), repeatCount)
end

function Element:rightClick()
	self:centralize()
	self:setPluginWindow()

	VirtualInput.Mouse.rightClick(self:getAnchor())
end

function Element:mouseWheel(num)
	self:centralize()
	VirtualInput.Mouse.mouseWheel(self:getAnchor(), num)
end

function Element:mouseDrag(xOffset, yOffset, duration)
	self:centralize()
	local posTo = self:getAnchor() + Vector2.new(xOffset, yOffset)
	VirtualInput.Mouse.mouseDrag(self:getAnchor(), posTo, duration, true)
end

function Element:mouseDragTo(posTo, duration)
	self:centralize()
	VirtualInput.Mouse.mouseDrag(self:getAnchor(), posTo, duration, true)
end

function Element:sendKey(key)
	self:setPluginWindow()
	VirtualInput.Keyboard.hitKey(key)
end

function Element:sendText(str)
	self:click()
	wait(0)
	VirtualInput.Text.sendText(str)
end

function Element:tap()
	self:centralize()
	VirtualInput.Touch.tap(self:getAnchor())
end

function Element:touchScroll(xOffset, yOffset, duration, multitouchId)
	self:centralize()
	VirtualInput.Touch.touchScroll(self:getAnchor(), xOffset, yOffset, duration, true, multitouchId)
end

return Element
--Serverside logic


Event.OnServerEvent:Connect(function(player,ExhaustParticle,FireBool)
	
	print("ExhaustParticle")
	
	if FireBool then
		
		local RanNum = tostring(math.random(1,3))
		ExhaustPart["Backfire"..RanNum]:Play()
        ExhaustPart2["Backfire"..RanNum]:Play()
		ExhaustPart.PointLight.Enabled = true
        ExhaustPart2.PointLight.Enabled = true
		ExhaustPart[ExhaustParticle].Enabled = true
        ExhaustPart2[ExhaustParticle].Enabled = true
		
		if ExhaustParticle == "FlamesSmall" then 
			
			ExhaustPart.PointLight.Range = 6
            ExhaustPart2.PointLight.Range = 6
			ExhaustPart.PointLight.Brightness = 5
            ExhaustPart2.PointLight.Brightness = 5
			ExhaustPart.Sparks.Enabled = false
            ExhaustPart2.Sparks.Enabled = false
			
		else 
			
			ExhaustPart.PointLight.Range = 8
            ExhaustPart2.PointLight.Range = 8
			ExhaustPart.PointLight.Brightness = 12
            ExhaustPart2.PointLight.Brightness = 12
			ExhaustPart.Sparks.Enabled = true
            ExhaustPart2.Sparks.Enabled = true
			
		end	
		
	else
		
		ExhaustPart[ExhaustParticle].Enabled = false
        ExhaustPart2[ExhaustParticle].Enabled = false
		ExhaustPart.PointLight.Enabled = false
        ExhaustPart2.PointLight.Enabled = false
		
	end	
	
end)
--[[ Local Functions ]]

--
function MouseLockController:OnMouseLockToggled()
	self.isMouseLocked = not self.isMouseLocked

	if self.isMouseLocked then
		local cursorImageValueObj: StringValue? = script:FindFirstChild("CursorImage") :: StringValue?
		if cursorImageValueObj and cursorImageValueObj:IsA("StringValue") and cursorImageValueObj.Value then
			CameraUtils.setMouseIconOverride(cursorImageValueObj.Value)
		else
			if cursorImageValueObj then
				cursorImageValueObj:Destroy()
			end
			cursorImageValueObj = Instance.new("StringValue")
			assert(cursorImageValueObj, "")
			cursorImageValueObj.Name = "CursorImage"
			cursorImageValueObj.Value = DEFAULT_MOUSE_LOCK_CURSOR
			cursorImageValueObj.Parent = script
			CameraUtils.setMouseIconOverride(DEFAULT_MOUSE_LOCK_CURSOR)
		end
	else
		CameraUtils.restoreMouseIcon()
	end

	self.mouseLockToggledEvent:Fire()
end

function MouseLockController:DoMouseLockSwitch(name, state, input)
	if state == Enum.UserInputState.Begin then
		self:OnMouseLockToggled()
		return Enum.ContextActionResult.Sink
	end
	return Enum.ContextActionResult.Pass
end

function MouseLockController:BindContextActions()
	ContextActionService:BindActionAtPriority(CONTEXT_ACTION_NAME, function(name, state, input)
		return self:DoMouseLockSwitch(name, state, input)
	end, false, MOUSELOCK_ACTION_PRIORITY, unpack(self.boundKeys))
end

function MouseLockController:UnbindContextActions()
	ContextActionService:UnbindAction(CONTEXT_ACTION_NAME)
end

function MouseLockController:IsMouseLocked(): boolean
	return self.enabled and self.isMouseLocked
end

function MouseLockController:EnableMouseLock(enable: boolean)
	if enable ~= self.enabled then

		self.enabled = enable

		if self.enabled then
			-- Enabling the mode
			self:BindContextActions()
		else
			-- Disabling
			-- Restore mouse cursor
			CameraUtils.restoreMouseIcon()

			self:UnbindContextActions()

			-- If the mode is disabled while being used, fire the event to toggle it off
			if self.isMouseLocked then
				self.mouseLockToggledEvent:Fire()
			end

			self.isMouseLocked = false
		end

	end
end

return MouseLockController
--[[Transmission]]


	Tune.TransModes		= {"Auto", "Semi", "Manual"}								--[[
	[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	= "Speed"												--[[
	[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		= 4.06			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	3.70		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		3.53		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.04		,
		--[[ 3 ]]		1.38		,
		--[[ 4 ]]		1.03		,
		--[[ 5 ]]		0.81		,
		--[[ 6 ]]		0.64		,
		--[[ 7 ]]		0.49		,
		--[[ 8 ]]		0.40		,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
--[[Brakes]]


	Tune.ABSEnabled		= false		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 1200		-- Front brake force
	Tune.RBrakeForce	= 1600		-- Rear brake force
	Tune.PBrakeForce	= 6000		-- Handbrake force
	
	Tune.FLgcyBForce	= 15000		-- Front brake force [PGS OFF]
	Tune.RLgcyBForce	= 10000		-- Rear brake force [PGS OFF]
	Tune.LgcyPBForce	= 25000		-- Handbrake force [PGS OFF]
--
-- Top Hint
--
--  * This is a string of text that's top-centered in the window. (White text on black background)
--  * It should be used for messages from the client, and never from the place creator. 
--
-- FEATURES:
--  * Auto-hides previous messages before showing yours.
--  * Always centered, regardless of length.
--  * Clicking the message hides it.
-- 
-- USE IT FOR:
--  * Quick task-related (non-essential) hints
--  * Showing the current modal state
--  * Tool hints (for the currently equipped tool)
--  * Keyboard shortcuts
--
-- NEVER USE IT FOR:
--  * Essential information (Use a popup instead)
--  * Messages from users or place creators.  This is for client messages only.
--
-- ARGUMENTS:
--  Label:  The message
--  Width:  Text and background width (pixels) -- This should be removed when textWidth is added to Lua
--  Time:   Seconds before hiding itself (If 0, it never hides)
--
-- USAGE:


local topHint = script.Parent.topHint  -- path to topHint ScreenGui
topHint.Add.Label.Value = "Press D to return to main menu."
topHint.Add.Width.Value = 290
topHint.Add.Time.Value = 7
topHint.Add.Disabled = true  -- flip it off then on, in case it's currently running.
topHint.Add.Disabled = false
--Hello! I have known this script for a long time now, but never thought about making a script
-- from it.Hope you enjoy.--



pos = script.Parent.Position
pos = Vector3.new(pos.x, pos.y-0.2, pos.z)
x = 0
z = 0
T = -99999
tall = script.Parent.Size.Y / 2
math.randomseed(tick())
rand = (math.random(0,20))/10
while true do
	x = pos.x + (math.sin(T + (pos.x/5)) * math.sin(T/9))/3
	z = pos.z + (math.sin(T + (pos.z/6)) * math.sin(T/12))/4
	script.Parent.CFrame =
		CFrame.new(x, pos.y, z) * CFrame.Angles((z-pos.z)/tall, 0,(x-pos.x)/-tall)
	wait()
	T = T + 0.005
end
-- print(PId)



local button = script.Parent -- обозначение к чему привязан наш скрипт
button.MouseButton1Down:Connect(function()
	-- print("PId:",PId)
	local player = players.LocalPlayer -- локальный игрок
	local a=MS:PromptProductPurchase(player,PId) -- выполнение запроса покупки
	-- print("Покупка:",a)	
end)
--Codes


local codelist = {
	code1 = "ROBLOX", -- Always put a comma every timne you're going to add another code
	code2 = "Release"
}

script.Parent.MouseButton1Click:Connect(function()
	if script.Parent.Parent.CodeHandler.Text == codelist.code1 then -- Im gonna add an expiration in this code
		if date["month"] == 8 and date["day"] <= 3 then -- Months are in numerical order .Month and Day must be in lowercase letters. Use "<=" If you want to make your code valid until that date. Use "==" if you want to make your code valid only on that date.
			if not codes:FindFirstChild("Code1") then -- This one here
				RE:FireServer(500, "Code1") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
				script.Parent.Text = "Code redeemed successfully!"
				script.Parent.Parent.CodeHandler.Text = "" -- Removes the text in our code handler textbox
				wait(2)
				script.Parent.Text = "Redeem Code"
			else
				script.Parent.Text = "Code already redeemed!"
				wait(2)
				script.Parent.Text = "Redeem Code"
			end	
		else
			script.Parent.Text = "Code expired!"
			wait(2)
			script.Parent.Text = "Redeem Code"		
		end
	elseif script.Parent.Parent.CodeHandler.Text == codelist.code2 then -- Your second code. So if our textbox matches the code in our dictionary...
		if not codes:FindFirstChild("Code2") then -- This one here
			RE:FireServer(25000, "Code2") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
			script.Parent.Text = "Code redeemed successfully!"
			script.Parent.Parent.CodeHandler.Text = ""
			wait(2)
			script.Parent.Text = "Redeem Code"
		else
			script.Parent.Text = "Code already redeemed!"
			wait(2)
			script.Parent.Text = "Redeem Code"
		end
	else
		script.Parent.Text = "Code invalid!"
		script.Parent.Parent.CodeHandler.Text = ""
		wait(2)
		script.Parent.Text = "Redeem Code"
	end
end)
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------


	,VRecoil = {4,6}				--- Vertical Recoil
	,HRecoil = {6,9}				--- Horizontal Recoil
	,AimRecover = .85				---- Between 0 & 1
	
	,RecoilPunch = .15
	,VPunchBase = 3.25				--- Vertical Punch
	,HPunchBase = 2.5					--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless
	
	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.2
	,MinRecoilPower = .5
	,MaxRecoilPower = 3
	,RecoilPowerStepAmount = .25
	
	,MinSpread = 7					--- Min bullet spread value | Studs
	,MaxSpread = 40					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = 1.5
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.25				--- Weapon Base Sway | Studs
	,MaxSway =	1					--- Max sway value based on player stamina | Studs
-- regeneration
--[[
while true do
	local s = wait(4)
	local health = Humanoid.Health
	if health > 0 and health < Humanoid.MaxHealth then
		health = health + 0.08 * s * Humanoid.MaxHealth
		if health * 1.05 < Humanoid.MaxHealth then
			Humanoid.Health = health
		else
			Humanoid.Health = Humanoid.MaxHealth
		end
	end
end
--]]
-- Apply some properties



player.CameraMaxZoomDistance = 8
if humanoid.CameraOffset == Vector3.new(0,0,0) then
ok()
elseif humanoid.CameraOffset == Vector3.new(0,0,-1.2) then
ok()
elseif
humanoid.CameraOffset == Vector3.new(0,-1,-1.2) then
ok2()
elseif
humanoid.CameraOffset == Vector3.new(0,-3,-1.2) then
ok3()
end
	

function lock(part)
	if part and part:IsA("BasePart") then
		part.LocalTransparencyModifier = part.Transparency
		part.Changed:connect(function (property)
			part.LocalTransparencyModifier = part.Transparency
		end)
	end
end

for _,v in pairs(char:GetChildren()) do
	lock(v)
end

char.ChildAdded:connect(lock)

c.Changed:connect(function (property)
	if property == "CameraSubject" then
		if c.CameraSubject and c.CameraSubject:IsA("VehicleSeat") and humanoid then
			-- Vehicle seats try to change the camera subject to the seat itself. This isn't what we wan't really.
			c.CameraSubject = humanoid;
		end
	end
end)
end
-- Gets the player ready by spawning them


local function readyPlayer(player, whichSpawn)
	local character = player.Character or player.CharacterAdded:wait()
	local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
	
	humanoidRootPart.Anchored = true

	-- Move player to SpeederSpawnLocation
	character:SetPrimaryPartCFrame(whichSpawn.CFrame)
end
--------RIGHT DOOR --------



game.Workspace.doorright.l31.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l32.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l33.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l61.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l62.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l63.BrickColor = BrickColor.new(21)