Pinkstack/roblox-luau-corpus-text huggingface dataset:
-- Set initial colors


light_L.BrickColor = lightColor_off
light_R.BrickColor = lightColor_off
brake_L.BrickColor = brakeColor_off
brake_R.BrickColor = brakeColor_off
smoke.Enabled = false
fire.Enabled = false

print("JeepScript: connecting events...")
seat.ChildAdded:connect(seatChildAddedHandler)
seat.ChildRemoved:connect(seatChildRemovedHandler)
seat.Changed:connect(seatChangedHandler)
print("JeepScript: events connected.")

while true do
	-- Every 15 seconds, poll if jeep has turned upside down.  If true, then flip back upright.
	if(vehicleSeatBack.CFrame.lookVector.y <= 0.707) then
		print("Jeep is flipped.  Flipping right side up...")
		gyro.cframe = CFrame.new( Vector3.new(0,0,0), Vector3.new(0,1,0) )
		gyro.maxTorque = Vector3.new(1000, 1000, 1000)
		wait(2)
		gyro.maxTorque = Vector3.new(0,0,0)
	end
	wait(8)
end
--[=[
	Takes n entries and then completes the observation.

	https://rxjs.dev/api/operators/take
	@param number number
	@return (source: Observable<T>) -> Observable<T>
]=]


function Rx.take(number)
	assert(type(number) == "number", "Bad number")
	assert(number > 0, "Bad number")

	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

		return Observable.new(function(sub)
			local taken = 0
			local maid = Maid.new()

			maid:GiveTask(source:Subscribe(function(...)
				if taken >= number then
					warn("[Rx.take] - Still getting values past subscription")
					return
				end

				taken = taken + 1
				sub:Fire(...)

				if taken >= number then
					sub:Complete()
				end
			end, sub:GetFailComplete()))

			return maid
		end)
	end
end
--// Main Loop




RunService.RenderStepped:Connect(function()
	
	
	if Detected == false and Chatting == false then
		for i, NPC in pairs(NPCS:GetChildren()) do
			local Humanoid = NPC:FindFirstChild("Humanoid")
			local HMR = NPC:FindFirstChild("HumanoidRootPart")
			
			if Humanoid and HMR then
				if (HMR.Position - CharHMR.Position).magnitude < 15 then
					Detected = true
					DetectedNPC = NPC
					PromptLabel:TweenSize(UDim2.new(0, 60, 0, 60), "In", "Linear", 0.2)
					print(NPC.Name)
				end
			end
			
		end
	end
	
	if Detected == true and Chatting == false then
		local Humanoid = DetectedNPC:FindFirstChild("Humanoid")
		local HMR = DetectedNPC:FindFirstChild("HumanoidRootPart")
		
		if Humanoid and HMR then
			if (HMR.Position - CharHMR.Position).magnitude > 15 then
				Detected = false
				DetectedNPC = nil
				PromptLabel:TweenSize(UDim2.new(0, 0, 0, 0), "Out", "Linear", 0.2)
				print("No Longer Detected NPC")
			else
				local WTSP = Camera:WorldToScreenPoint(HMR.Position)
				PromptLabel.Position = UDim2.new(0, WTSP.X, 0, WTSP.Y)
			end
		end
	end
	
	if Chatting == true then
		local Humanoid = DetectedNPC:FindFirstChild("Humanoid")
		local HMR = DetectedNPC:FindFirstChild("HumanoidRootPart")
		
		if Humanoid and HMR then
			Camera.CameraType = Enum.CameraType.Scriptable
			Camera.CFrame = Camera.CFrame:Lerp(HMR.CFrame * CFrame.new(-4, 4, -7) * CFrame.fromOrientation(math.rad(-20), math.rad(215), 0), 0.07)
		end
	else
		Camera.CameraType = Enum.CameraType.Custom
	end
	
end)
----------------------------------------------------------------[SS6] TO ADJUST ANY OF THE STEERING OPTIONS, GO TO LINE 66 "--change"


ssl = carSeat.Parent.Parent.LW.WheelML
ssr = carSeat.Parent.Parent.RW.WheelMR
strlckL = 1
strlckR = 1
strspd = script.Parent.Storage.SteerSpeed.Value 
strprg = 0 
maxlockL = carSeat.Storage.SteeringAngle.Value 
maxlockR = carSeat.Storage.SteeringAngle.Value
m = false occ = false n = false
steer = 0
if carSeat.Steer == 1 then
strlckL = math.rad(maxlockL+4)
strlckR = math.rad(maxlockR+6)
elseif carSeat.Steer == -1 then
strlckL = math.rad(maxlockL+6)
strlckR = math.rad(maxlockR+4)
end


while wait() do
	spd = carSeat.Velocity.Magnitude
	--steer = (steer+((carSeat.Steer-steer)*strspd))
	
	carSeat.Parent.Parent.LW.WheelML.Gyro.cframe = carSeat.Parent.ref.CFrame * CFrame.Angles(0,((-1*steer)*strlckL)*(strprg/(spd+strprg)),0)
	carSeat.Parent.Parent.RW.WheelMR.Gyro.cframe = carSeat.Parent.ref.CFrame * CFrame.Angles(0,((-1*steer)*strlckR)*(strprg/(spd+strprg)),0)
	carSeat.Parent.Parent.LW.ML.HingeConstraint.MotorMaxTorque = 0
	carSeat.Parent.Parent.RW.MR.HingeConstraint.MotorMaxTorque = 0
	wheelangle = (carSeat.Parent.ref.Orientation.Y)-(carSeat.Parent.Parent.RW.WheelMR.Orientation.Y) --print(wheelangle)
	if script.Parent.Storage.Control.Value ~= "Controller" then
		steer = (steer+((carSeat.Steer-steer)*strspd))
		if carSeat.Steer == -1 then
			if wheelangle > 0 then
				strspd = script.Parent.Storage.SteerSpeed.Value*5.5
				else strspd = script.Parent.Storage.SteerSpeed.Value print("R1")
			end
			
		elseif carSeat.Steer == 1 then
			if wheelangle < 0 then
				strspd = script.Parent.Storage.SteerSpeed.Value*5.5
				else strspd = script.Parent.Storage.SteerSpeed.Value print("R2")
			end
			
		elseif carSeat.Steer == 0 then
			strspd = script.Parent.Storage.SteerSpeed.Value*5.5
			
		else strspd = script.Parent.Storage.SteerSpeed.Value print("R3")
			
		end
	end
	
	if carSeat.Throttle == 0 then
		--strspd = script.Parent.Storage.SteerSpeed.Value*4.3
	end
	
	ssl.Gyro.D = damp
ssl.Gyro.maxTorque = Vector3.new(0,maxtq,0)
ssl.Gyro.P = pw
ssr.Gyro.D = damp
ssr.Gyro.maxTorque = Vector3.new(0,maxtq,0)
ssr.Gyro.P = pw


		strprg = 160

	
	if carSeat.Storage.Mode == "City" then
	ty = 0.005
	else
	ty = 1		
	end
	if script.Parent.Storage.CurrentGear.Value == 2  and carSeat.Steer == 0 then 
		damp = 800
maxtq = 30000
pw = 100000
	else 
	damp = 1000 --change
maxtq = 3000 --change
pw = 10000 --change	
	end
	
	--if script.Parent.Storage.CurrentGear.Value == 2  and carSeat.Steer == 0 then 
		--if m == false then
	--	m = true occ = true n = true
--[=[
	Gets the delta screen position of the mouse. In other words, the
	distance the mouse has traveled away from its locked position in
	a given frame (see note about mouse locking below).

	:::info Only When Mouse Locked
	Getting the mouse delta is only intended for when the mouse is locked. If the
	mouse is _not_ locked, this will return a zero Vector2. The mouse can be locked
	using the `mouse:Lock()` and `mouse:LockCenter()` method.
]=]


function Mouse:GetDelta(): Vector2
	return UserInputService:GetMouseDelta()
end
-- Put this script in a Part or a ServerScriptService



local scriptToDestroy = game.Workspace.End[" Badge"].Nodead
game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local humanoid = character:WaitForChild("Humanoid")

		humanoid.Died:Connect(function()
        scriptToDestroy:Destroy()
		end)
	end)
end)
-- Topbar Configuration


local topbar = mainUI.Bar

local infoButton = topbar.Information -- The Blue Button
local closeButton = topbar.Close -- The Red button
local darken =mainWindow.Dark -- The object that fades the previous window

local Bar_Button_TweenInfo = TweenInfo.new(
	0.2,
	Enum.EasingStyle.Circular,
	Enum.EasingDirection.InOut
)

local button_not_focused = {} --                     Button not interacted
button_not_focused.Size = UDim2.new(0, 25, 0, 25) -- or hovered

local button_focused = {} -- Button hovered
button_focused.Size = UDim2.new(0, 20, 0, 20)

local button_pressed = {} -- Button interacted
button_pressed.Size = UDim2.new(0, 19, 0, 19)

local button_released = {} -- Button released
button_released.Size = UDim2.new(0, 28, 0, 28)
-- ReplicaController functions:



function ReplicaController.RequestData() -- Call after all client controllers are loaded and before CoreReadySignal is fired
	if DataRequestStarted == true then
		return
	end
	DataRequestStarted = true
	task.spawn(function() -- In case the initial rev_ReplicaRequestData signal was lost (Highly unlikely)
		while game:IsLoaded() == false do
			task.wait()
		end
		rev_ReplicaRequestData:FireServer()
		while task.wait(SETTINGS.RequestDataRepeat) do
			if ReplicaController.InitialDataReceived == true then
				break
			end
			rev_ReplicaRequestData:FireServer()
		end
	end)
end

function ReplicaController.ReplicaOfClassCreated(replica_class, listener) --> [ScriptConnection] listener(replica)
	if type(replica_class) ~= "string" then
		error("[ReplicaController]: replica_class must be a string")
	end
	if type(listener) ~= "function" then
		error("[ReplicaController]: Only a function can be set as listener in ReplicaController.ReplicaOfClassCreated()")
	end
	-- Getting listener table for replica class:
	local signal = ClassListeners[replica_class]
	if signal == nil then
		signal = Madwork.NewScriptSignal()
		ClassListeners[replica_class] = signal
	end
	return signal:Connect(listener, function()
		-- Cleanup script signals that are no longer used:
		if signal:GetListenerCount() == 0 and ClassListeners[replica_class] == signal then
			ClassListeners[replica_class] = nil
		end
	end)
end

function ReplicaController.GetReplicaById(replica_id)
	return Replicas[replica_id]
end
--[[
	Package link auto-generated by Rotriever
]]


local PackageIndex = script.Parent.Parent.Parent._Index

local Package = require(PackageIndex["LuauPolyfill-2fca3173-0.4.2"]["LuauPolyfill"])

export type Array<T> = Package.Array<T> 
export type AssertionError = Package.AssertionError
export type Error = Package.Error
export type Map<T, V> = Package.Map<T, V> 
export type Object = Package.Object
export type PromiseLike<T> = Package.PromiseLike<T> 
export type Promise<T> = Package.Promise<T> 
export type Set<T> = Package.Set<T> 
export type Symbol = Package.Symbol
export type Timeout = Package.Timeout
export type Interval = Package.Interval
export type WeakMap<T, V> = Package.WeakMap<T, V> 


return Package
---


	script.Parent.Values.Gear.Changed:connect(function()
		if script.Parent.Values.Gear.Value == -1 then
			for index, child in pairs(car.Body.Lights.Rev:GetChildren()) do
			child.Material = Enum.Material.Neon
			car.DriveSeat.Reverse:Play()
			end
		else
			for index, child in pairs(car.Body.Lights.Rev:GetChildren()) do
			child.Material = Enum.Material.SmoothPlastic
			car.DriveSeat.Reverse:Stop()
			end
		end
	end)
-- spawn a random ore


	local oreName = oreBank[math.random(1,#oreBank)]
		
	GU.SpawnItem(oreName,1,root.CFrame*CFrame.new(0,1,0))
		
end
end)
AttitudeCoroutine()


while true do
if mode == "charLock" then
targetLocation = (charRoot.CFrame*CFrame.new(3,-2.6,1)).p
targetLook = charRoot.CFrame*CFrame.new(charRoot.CFrame.lookVector*1000)
end
bg.CFrame = targetLook
bp.Position = targetLocation
wait()
end
--[[Engine]]


	--Torque Curve
	Tune.Horsepower		= 973		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 1100		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 8250		--		Use sliders to manipulate values
	Tune.Redline		= 8750		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5250
	Tune.PeakSharpness	= 5.8
	Tune.CurveMult		= 0.294 
	
	--Incline Compensation
	Tune.InclineComp	= 1.5		-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 400		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 300		-- RPM decay when clutch is off
	Tune.RevBounce		= 450		-- RPM kickback from redline
	Tune.IdleThrottle	= 0			-- Percent throttle at idle
	Tune.ClutchTol		= 450		-- Clutch engagement threshold (higher = faster response, lower = more stable RPM)
--[=[
	@function HeartbeatUpdate
	@param dt number
	@within Component

	If this method is present on a component, then it will be
	automatically connected to `RunService.Heartbeat`.

	:::note Method
	This is a method, not a function. This is a limitation
	of the documentation tool which should be fixed soon.
	:::
	
	```lua
	local MyComponent = Component.new({Tag = "MyComponent"})
	
	function MyComponent:HeartbeatUpdate(dt)
	end
	```
]=]
--[=[
	@function SteppedUpdate
	@param dt number
	@within Component

	If this method is present on a component, then it will be
	automatically connected to `RunService.Stepped`.

	:::note Method
	This is a method, not a function. This is a limitation
	of the documentation tool which should be fixed soon.
	:::
	
	```lua
	local MyComponent = Component.new({Tag = "MyComponent"})
	
	function MyComponent:SteppedUpdate(dt)
	end
	```
]=]
--[=[
	@function RenderSteppedUpdate
	@param dt number
	@within Component
	@client

	If this method is present on a component, then it will be
	automatically connected to `RunService.RenderStepped`. If
	the `[Component].RenderPriority` field is found, then the
	component will instead use `RunService:BindToRenderStep()`
	to bind the function.

	:::note Method
	This is a method, not a function. This is a limitation
	of the documentation tool which should be fixed soon.
	:::
	
	```lua
	-- Example that uses `RunService.RenderStepped` automatically:

	local MyComponent = Component.new({Tag = "MyComponent"})
	
	function MyComponent:RenderSteppedUpdate(dt)
	end
	```
	```lua
	-- Example that uses `RunService:BindToRenderStep` automatically:
	
	local MyComponent = Component.new({Tag = "MyComponent"})

	-- Defining a RenderPriority will force the component to use BindToRenderStep instead
	MyComponent.RenderPriority = Enum.RenderPriority.Camera.Value
	
	function MyComponent:RenderSteppedUpdate(dt)
	end
	```
]=]




function Component:Destroy()
	self._trove:Destroy()
end


return Component
--[[
	Implementation
]]



local localPlayer = Players.LocalPlayer

local ActionPrompts = {
	targetChanged = Signal.new(),
	actionActivated = Signal.new(),
	targetInstance = nil,
	isRunning = false,
}

local function contextActivate(actionName, userInputState, inputObject)
	if not ActionPrompts.targetInstance then
		return Enum.ContextActionResult.Pass
	end

	if userInputState == Enum.UserInputState.Begin then
		ActionPrompts.actionActivated:fire(ActionPrompts.targetInstance)
	end
end

local function getTarget()
	local humanoidRootPart = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart")

	if not humanoidRootPart then
		return
	end

	local closestAction = getNearestTagged(humanoidRootPart.Position, "Action", MAX_CUTTOFF_DISTANCE)

	if closestAction then
		if closestAction ~= ActionPrompts.targetInstance then
			ActionPrompts.targetChanged:fire({
				enabled = true,
				newTargetInstance = closestAction,
				oldTargetInstance = ActionPrompts.targetInstance,
				sizeOffset = ACTION_BUTTON_OFFSET,
			})
		end
	else
		ActionPrompts.targetChanged:fire({
			enabled = false,
			newTargetInstance = closestAction,
			oldTargetInstance = ActionPrompts.targetInstance,
		})
	end

	ActionPrompts.targetInstance = closestAction
end

function ActionPrompts.start()
	RunService:BindToRenderStep("GetActionTarget", Enum.RenderPriority.Camera.Value - 1, function()
		getTarget()
	end)

	ContextActionService:BindActionAtPriority(
		"ActionActivate",
		contextActivate,
		false,
		ACTION_PRIORITY,
		ACTIVATE_KEYBOARD,
		ACTIVATE_CONSOLE
	)

	ActionPrompts.isRunning = true
end

function ActionPrompts.stop()
	RunService:UnbindFromRenderStep("GetActionTarget")

	ActionPrompts.isRunning = false
end

function ActionPrompts.activate()
	if not ActionPrompts.targetInstance then
		return
	end

	ActionPrompts.actionActivated:fire(ActionPrompts.targetInstance)
end
--[=[
	Constructs a writer which provides a snapshot of the current data state to write
	@return DataStoreWriter
]=]


function DataStoreStage:GetNewWriter()
	local writer = DataStoreWriter.new()
	if self._dataToSave then
		writer:SetRawData(self._dataToSave)
	end

	for name, store in pairs(self._stores) do
		if not store.Destroy then
			warn(("[DataStoreStage] - Substore %q destroyed"):format(name))
			continue
		end

		if store:HasWritableData() then
			writer:AddWriter(name, store:GetNewWriter())
		end
	end

	return writer
end
--[=[
	Brios wrap a value (or tuple of values) and are used to convey the lifetime of that
	object. The brio is better than a maid, by providing the following constraints:

	- Can be in 2 states, dead or alive.
	- While alive, can retrieve values.
	- While dead, retrieving values is forbidden.
	- Died will fire once upon death.

	Brios encapsulate the "lifetime" of a valid resource. Unlike a maid, they
	- Can only die once, ensuring duplicate calls never occur.
	- Have less memory leaks. Memory leaks in maids can occur when use of the maid occurs
	  after the cleanup of the maid has occured, in certain race conditions.
	- Cannot be reentered, i.e. cannot retrieve values after death.

	:::info
	Calling `brio:Destroy()` or `brio:Kill()` after death does nothing. Brios cannot
	be resurrected.
	:::

	Brios are useful for downstream events where you want to emit a resource. Typically
	brios should be killed when their source is killed. Brios are intended to be merged
	with downstream brios so create a chain of reliable resources.

	```lua
	local brio = Brio.new("a", "b")
	print(brio:GetValue()) --> a b
	print(brio:IsDead()) --> false

	brio:GetDiedSignal():Connect(function()
		print("Hello from signal!")
	end)
	brio:ToMaid():GiveTask(function()
		print("Hello from maid cleanup!")
	end)
	brio:Kill()
	--> Hello from signal!
	--> Hello from maid cleanup!

	print(brio:IsDead()) --> true
	print(brio:GetValue()) --> ERROR: Brio is dead
	```

	## Design philosophy

	Brios are designed to solve this issue where we emit an object with a lifetime associated with it from an
	Observable stream. This resource is only valid for some amount of time (for example, while the object is
	in the Roblox data model).

	In order to know how long we can keep this object/use it, we wrap the object with a Brio, which denotes
	 the lifetime of the object.

	Modeling this with pure observables is very tricky because the subscriber will have to also monitor/emit
	a similar object with less clear conventions. For example  an observable that emits the object, and then nil on death.

	@class Brio
]=]



local require = require(script.Parent.loader).load(script)

local Maid = require("Maid")

local Brio = {}
Brio.ClassName = "Brio"
Brio.__index = Brio
---------------------------------------------------------------|
------// SETTINGS //-------------------------------------------|
---------------------------------------------------------------|



local FireRate = 650

local LimbsDamage = {57,62}
local TorsoDamage = {72,87}
local HeadDamage = {140,145}
local FallOfDamage = 1
local BulletPenetration = 78

local RegularWalkspeed = 0
local SearchingWalkspeed = 0
local ShootingWalkspeed = 0

local Spread = 5.5

local MinDistance = 100
local MaxInc = 16

local Mode = 3


local Tracer = true
local TracerColor = Color3.fromRGB(255,255,255)

local BulletFlare = false
local BulletFlareColor = Color3.fromRGB(255,255,255)
-- Context Server 
-- Gives a loadout to a player based on the loadout name
-- @param Player player
-- @param String loadoutName


function APILoadout.GiveLoadout(player,loadoutName)
	
	-- Remove all weapons from the player
	APIEquipment.RemoveWeapons(player)
	
	local loadoutData = APILoadout.GetLoadoutFromName(loadoutName)
	
	local primaryName = loadoutData.PrimaryEquipment
	local secondaryName = loadoutData.SecondaryEquipment
	local tertiaryName = loadoutData.TertiaryEquipment
	
	-- Give the equipment to the player
	APIEquipment.GiveWeapon(player,primaryName,true)	
	APIEquipment.GiveWeapon(player,secondaryName,false)	
	APIEquipment.GiveWeapon(player,tertiaryName,false)	
end


return APILoadout
-- Represents a CastRayInfo :: https://etithespirit.github.io/FastCastAPIDocs/fastcast-objects/castrayinfo/


export type CastRayInfo = {
	Parameters: RaycastParams,
	WorldRoot: WorldRoot,
	MaxDistance: number,
	CosmeticBulletObject: Instance?,
	CanPierceCallback: CanPierceFunction
}
-- Symbol keys:



local KEY_ANCESTORS = Symbol("Ancestors")
local KEY_INST_TO_COMPONENTS = Symbol("InstancesToComponents")
local KEY_LOCK_CONSTRUCT = Symbol("LockConstruct")
local KEY_COMPONENTS = Symbol("Components")
local KEY_TROVE = Symbol("Trove")
local KEY_EXTENSIONS = Symbol("Extensions")
local KEY_ACTIVE_EXTENSIONS = Symbol("ActiveExtensions")
local KEY_STARTED = Symbol("Started")

local renderId = 0
local function NextRenderName(): string
	renderId += 1
	return "ComponentRender" .. tostring(renderId)
end

local function InvokeExtensionFn(component, fnName: string)
	for _, extension in ipairs(component[KEY_ACTIVE_EXTENSIONS]) do
		local fn = extension[fnName]
		if type(fn) == "function" then
			fn(component)
		end
	end
end

local function ShouldConstruct(component): boolean
	for _, extension in ipairs(component[KEY_ACTIVE_EXTENSIONS]) do
		local fn = extension.ShouldConstruct
		if type(fn) == "function" then
			local shouldConstruct = fn(component)
			if not shouldConstruct then
				return false
			end
		end
	end
	return true
end

local function GetActiveExtensions(component, extensionList)
	local activeExtensions = table.create(#extensionList)
	local allActive = true
	for _, extension in ipairs(extensionList) do
		local fn = extension.ShouldExtend
		local shouldExtend = type(fn) ~= "function" or not not fn(component)
		if shouldExtend then
			table.insert(activeExtensions, extension)
		else
			allActive = false
		end
	end
	return if allActive then extensionList else activeExtensions
end
-- local endbrick = workspace.EndKillBrick


local tweenInfo = TweenInfo.new(
	2, -- Time
	Enum.EasingStyle.Linear, -- EasingStyle
	Enum.EasingDirection.Out, -- EasingDirection
	0, -- RepeatCount (when less than zero the tween will loop indefinitely)
	false, -- Reverses (tween will reverse once reaching it's goal)
	0 -- DelayTime
)
script.Parent.Touched:connect(function(hit)
	
	local tweenToB = game:GetService("TweenService"):Create(hit, tweenInfo, {CFrame = spawn.CFrame})
	
	if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
		local player = game.Players:GetPlayerFromCharacter(hit.Parent)
		local checkpointData = game.ServerStorage:FindFirstChild("CheckpointData")
		if not checkpointData then
			checkpointData = Instance.new("Model", game.ServerStorage)
			checkpointData.Name = "CheckpointData"
		end

		local checkpoint = checkpointData:FindFirstChild(tostring(player.userId))
		if not checkpoint then
			checkpoint = Instance.new("ObjectValue", checkpointData)
			checkpoint.Name = tostring(player.userId)

			player.CharacterAdded:connect(function(character)
				wait()
				character:WaitForChild("HumanoidRootPart").CFrame = game.ServerStorage.CheckpointData[tostring(player.userId)].Value.CFrame + Vector3.new(0, 4, 0)
			end)
		end

		checkpoint.Value = spawn
		hit.Anchored = true
		hit.Parent:FindFirstChild('Humanoid').PlatformStand = true
		tweenToB:Play()
		wait(1.8)
		tweenToB:Pause()
		hit.Parent:FindFirstChild('Humanoid').PlatformStand = false
		-- game.Players:GetPlayerFromCharacter(hit.Parent):FindFirstChild('Humanoid').PlatformStand = false
		hit.Anchored = false
	end
end)