Roblox/luau_corpus huggingface dataset:
------//Sprinting Animations
self.RightSprint = CFrame.new(-.9, 1.25, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0));
self.LeftSprint = CFrame.new(1,1,-0.6) * CFrame.Angles(math.rad(-45),math.rad(15),math.rad(-25));

self.RightElbowSprint = CFrame.new(0,-0.45,-.25) * CFrame.Angles(math.rad(-80), math.rad(0), math.rad(0));
self.LeftElbowSprint = CFrame.new(0,0,0)  * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0));

self.RightWristSprint = CFrame.new(0,0,0.15) * CFrame.Angles(math.rad(20), math.rad(0), math.rad(0));
self.LeftWristSprint = CFrame.new(0,0,0)  * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0));

return self
--[[
	
	\\\ Returns a consistant UID from a string, based on an additive string.byte per character
	
	Functions.StringByte(
		string, 				<-- |REQ|	String
	)
	
--]]



return function(str)
	--- Vars
	local int = 0
	
	--- Convert each character to byte and add it up
	for i = 1, string.len(str) do
		int = int + string.byte(string.sub(str, i, i))
	end
	
	--
	return int
end
-- [ SETTINGS ] --

local statsName = "Minutes" -- Your stats name
local maxItems = 100 -- Max number of items to be displayed on the leaderboard
local minValueDisplay = 1 -- Any numbers lower than this will be excluded
local maxValueDisplay = 10e15 -- (10 ^ 15) Any numbers higher than this will be excluded
local abbreviateValue = true -- The displayed number gets abbreviated to make it "human readable"
local updateEvery = 60 -- (in seconds) How often the leaderboard has to update
local headingColor = Color3.fromRGB(25, 181, 254) -- The background color of the heading
---------------------------------------
tool.Unequipped:Connect(function()
	print("The tool was unequipped")
end)

tool.Deactivated:Connect(function()
	print("The tool has been deactivated")
end)
--[[
	To add people to your whitelist go to the whitelist module and insert people to the table
--]]
script.AdminEvent.Parent = game.ReplicatedStorage
	script.Whitelist.Parent = game.ReplicatedStorage
	script.Admin.Parent = game.ServerScriptService
	script.AdminPanel.Parent = game.StarterGui
----------------//
end
function KeyUI:remove(plr,Name)
for i,v in pairs(plr.PlayerGui:WaitForChild("UI").Main.Keys.Holder:GetChildren()) do
if v.Name == Name then
v:destroy()
end
end
end


function KeyUI:Get(plr,name)
return plr.PlayerGui:WaitForChild("UI").Main.Keys.Holder:FindFirstChild(name)
end

return KeyUI
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 200		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 7000		--		Use sliders to manipulate values
	Tune.Redline		= 7700		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 6500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)
--end)

game:GetService("Players").PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(character_added)
end)
----------------

debounce = false
function onTouch(hit)

if game.Players:FindFirstChild(hit.Parent.Name) ~= nil and debounce == false then

local player = game.Players:FindFirstChild(hit.Parent.Name)
local c = player.Character:GetChildren()

debounce = true

	for i=1, #c do 
		if (c[i].className == "Hat") or c[i].Name == "Character" then 
			c[i]:Destroy()
		end 
	end


player.Character.Torso.Transparency = 1
player.Character:FindFirstChild("Left Arm").Transparency = 1
player.Character:FindFirstChild("Left Leg").Transparency = 1
player.Character:FindFirstChild("Right Arm").Transparency = 1
player.Character:FindFirstChild("Right Leg").Transparency = 1

player.Character.Humanoid.WalkSpeed = (Speed)		-- You can change how fast players walk as this character!

local hide = Instance.new("SpecialMesh")

hide.MeshType = "FileMesh"
MeshId = ""
hide.Parent = player.Character.Head

local p = script.Parent.Parent:FindFirstChild("Character"):clone()
p.Parent = player.Character
p.CFrame = CFrame.new(player.Character.Torso.Position)
p.Anchored = false

local Y = Instance.new("Weld")
Y.Part0 = player.Character.Torso
Y.Part1 = p
Y.Parent = Y.Part0


itemlist = script.Parent:FindFirstChild("StartTools"):GetChildren()

if #itemlist ~= 0 then
for i= 1, #itemlist do
local itemc = itemlist[i]:clone()
itemc.Parent = player.Backpack
end
end

wait(1)
debounce = false

end
end

script.Parent.Touched:connect(onTouch)
--!strict
local types = require(script.Parent.Parent.types)
type Array<T> = types.Array<T>
type Map<K, V> = types.Map<K, V>
type Tuple<T, V> = types.Tuple<T, V>

return function<T>(value: string | { [string]: T } | Array<T> | Map<any, T>): Array<Tuple<string, T>>
	assert(value :: any ~= nil, "cannot get entries from a nil value")
	local valueType = typeof(value)

	local entries: Array<Tuple<string, T>> = {}
	if valueType == "table" then
		for key, keyValue in pairs(value :: { [string]: T } | Array<T>) do
			-- Luau FIXME: Luau should see entries as Array<any>, given object is [string]: any, but it sees it as Array<Array<string>> despite all the manual annotation
			table.insert(entries, { key, keyValue })
		end
	elseif valueType == "string" then
		-- TODO: should we be using utf8.len?
		for i = 1, string.len(value :: string) do
			entries[i] = { tostring(i), string.sub(value :: string, i, i) }
		end
	end

	return entries
end
-- << Variables >> --

local Player = game:GetService("Players").LocalPlayer
local Mouse = Player:GetMouse()
local Camera = game:GetService("Workspace").CurrentCamera
local UserInputService = game:GetService("UserInputService")
local Humanoid = Player.Character:WaitForChild("Humanoid")
local bobbing = nil
local func1 = 0
local func2 = 0
local func3 = 0
local func4 = 0
local val = 0
local val2 = 0
local int = 10
local int2 = 10
local vect3 = Vector3.new()
-- Movement mode standardized to Enum.ComputerCameraMovementMode values
function BaseCamera:SetCameraMovementMode( cameraMovementMode )
	self.cameraMovementMode = cameraMovementMode
end

function BaseCamera:GetCameraMovementMode()
	return self.cameraMovementMode
end

function BaseCamera:SetIsMouseLocked(mouseLocked)
	self.inMouseLockedMode = mouseLocked
	if not FFlagUserCameraToggle then
		self:UpdateMouseBehavior()
	end
end

function BaseCamera:GetIsMouseLocked()
	return self.inMouseLockedMode
end

function BaseCamera:SetMouseLockOffset(offsetVector)
	self.mouseLockOffset = offsetVector
end

function BaseCamera:GetMouseLockOffset()
	return self.mouseLockOffset
end

function BaseCamera:InFirstPerson()
	return self.inFirstPerson
end

function BaseCamera:EnterFirstPerson()
	-- Overridden in ClassicCamera, the only module which supports FirstPerson
end

function BaseCamera:LeaveFirstPerson()
	-- Overridden in ClassicCamera, the only module which supports FirstPerson
end
-- Función para desaparecer el bloque
local function disappearBlock()
	trap.Transparency = 1 -- Establece la transparencia del bloque a 1 para hacerlo invisible
	trap.CanCollide = false -- Desactiva la colisión del bloque para que los jugadores puedan atravesarlo
end
--// Damage Settings	
	BaseDamage = 43; -- Torso Damage
	LimbDamage = 34; -- Arms and Legs
	ArmorDamage = 34; -- How much damage is dealt against armor (Name the armor "Armor")
	HeadDamage = 62; -- If you set this to 100, there's a chance the player won't die because of the heal script
--[[
	Tells whether the current test we're in should be skipped.
]]
function TestSession:shouldSkip()
	-- If our test tree had any exclusive tests, then normal tests are skipped!
	if self.hasFocusNodes then
		for i = #self.nodeStack, 1, -1 do
			local node = self.nodeStack[i]

			-- Skipped tests are still skipped
			if node.planNode.modifier == TestEnum.NodeModifier.Skip then
				return true
			end

			-- Focused tests are the only ones that aren't skipped
			if node.planNode.modifier == TestEnum.NodeModifier.Focus then
				return false
			end
		end

		return true
	else
		for i = #self.nodeStack, 1, -1 do
			local node = self.nodeStack[i]

			if node.planNode.modifier == TestEnum.NodeModifier.Skip then
				return true
			end
		end
	end

	return false
end
--Rescripted by Luckymaxer

Pie = script.Parent

Players = game:GetService("Players")
Debris = game:GetService("Debris")

Creator = Pie:FindFirstChild("creator")

BodyForce = Pie:FindFirstChild("BodyForce")
BodyGyro = Pie:FindFirstChild("BodyGyro")

HitSound = Pie:FindFirstChild("Hit")

Stuck = false

Damage = 0

function TagHumanoid(humanoid, player)
	local Creator_Tag = Instance.new("ObjectValue")
	Creator_Tag.Name = "creator"
	Creator_Tag.Value = player
	Debris:AddItem(Creator_Tag, 2)
	Creator_Tag.Parent = humanoid
end

function UntagHumanoid(humanoid)
	for i, v in pairs(humanoid:GetChildren()) do
		if v:IsA("ObjectValue") and v.Name == "creator" then
			v:Destroy()
		end
	end
end

function Stick(Object, Hit)
	local Weld = Instance.new("Weld")
	Weld.Part0 = Pie
	Weld.Part1 = Hit
	local HitPos = Pie.Position
	local CJ = CFrame.new(HitPos)
	Weld.C0 = Pie.CFrame:inverse() * CJ
	Weld.C1 = Hit.CFrame:inverse() * CJ
	Weld.Parent = Object
	return Weld
end

function IsTeamMate(Player1, Player2)
	return (Player1 and Player2 and not Player1.Neutral and not Player2.Neutral and Player1.TeamColor == Player2.TeamColor)
end

function Touched(Hit)
	if not Hit or not Hit.Parent or Stuck then
		return
	end
	local character = Hit.Parent
	if character:IsA("Hat") or character:IsA("Tool") then
		character = character.Parent
	end
	local CreatorPlayer
	if Creator and Creator.Value and Creator.Value:IsA("Player") then
		CreatorPlayer = Creator.Value
	end
	if CreatorPlayer and CreatorPlayer.Character == character then
		return
	end
	local player = Players:GetPlayerFromCharacter(character)
	if CreatorPlayer and player and IsTeamMate(CreatorPlayer, player) then
		return
	end
	Stuck = true
	PieWeld = Stick(Pie, Hit)
	if HitSound then
		HitSound:Play()
	end
	for i, v in pairs({BodyForce, BodyGyro}) do
		if v and v.Parent then
			v:Destroy()
		end
	end
	local humanoid = character:FindFirstChild("Humanoid")
	if humanoid and humanoid.Health > 0 then
		UntagHumanoid(humanoid)
		if CreatorPlayer then
			TagHumanoid(humanoid, CreatorPlayer)
		end
		humanoid:TakeDamage(Damage)
	end
end

Pie.Touched:connect(Touched)

for i = 1, 10 do
	wait(0.1 * i)
	if BodyGyro and BodyGyro.Parent then
		local Direction = Pie.Velocity.unit
		BodyGyro.maxTorque = Vector3.new(1e4, 1e4, 1e4)
		BodyGyro.cframe = CFrame.new(Vector3.new(0, 0, 0), -Direction)
	end
end

wait(2)

if PieWeld and PieWeld.Parent then
	PieWeld:Destroy()
end

wait(8)

Debris:AddItem(Pie, 0)
--	script.Gyro.Value.Parent = Tool.Parent:findFirstChild("Torso")
--	script.Gyro.Value.maxTorque = Vector3.new(math.huge,math.huge,math.huge)
	--mouse.Move:connect(function() onMouseMove(mouse) end)
	while true do
		game:GetService("RunService").RenderStepped:wait()
		onMouseMove(mouse)
	end
end 

Tool.Equipped:connect(onEquipped)
-- Trove
-- Stephen Leitnick
-- October 16, 2021


local FN_MARKER = newproxy()
local THREAD_MARKER = newproxy()

local RunService = game:GetService("RunService")


local function GetObjectCleanupFunction(object, cleanupMethod)
	local t = typeof(object)
	if t == "function" then
		return FN_MARKER
	elseif t == "thread" then
		return THREAD_MARKER
	end
	if cleanupMethod then
		return cleanupMethod
	end
	if t == "Instance" then
		return "Destroy"
	elseif t == "RBXScriptConnection" then
		return "Disconnect"
	elseif t == "table" then
		if typeof(object.Destroy) == "function" then
			return "Destroy"
		elseif typeof(object.Disconnect) == "function" then
			return "Disconnect"
		end
	end
	error("Failed to get cleanup function for object " .. t .. ": " .. tostring(object), 3)
end


local function AssertPromiseLike(object)
	if type(object) ~= "table" or type(object.getStatus) ~= "function" or type(object.finally) ~= "function" or type(object.cancel) ~= "function" then
		error("Did not receive a Promise as an argument", 3)
	end
end
-- Game Services
local Configurations = require(game.ServerStorage.Configurations)
local TeamManager = require(script.TeamManager)
local PlayerManager = require(script.PlayerManager)
local MapManager = require(script.MapManager)
local TimeManager = require(script.TimeManager)
local DisplayManager = require(script.DisplayManager)
-- ROBLOX deviation END

local globsToMatchersMap = Map.new() :: Map<string, { isMatch: Matcher, negated: boolean }>

local picomatchOptions = { dot = true }
--[[ Script Variables ]]--
while not Players.LocalPlayer do
	Players.PlayerAdded:wait()
end

local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local PlayerGui = LocalPlayer:WaitForChild('PlayerGui')
local ScreenGui = nil
local ShiftLockIcon = nil
local InputCn = nil
local IsShiftLockMode = false
local IsShiftLocked = false
local IsActionBound = false
local IsInFirstPerson = false
local PreventShiftLock = false -- NEW: used to prevent changes
local ShiftLockedBefore = false -- NEW: used to remember past value
-- Windows
local aboutWindow = UI.About -- The window containing all info about the plugin
local mainWindow = UI.MainWindow -- The whole plugin itself
--------AUDIENCE BACK LEFT--------

game.Workspace.audiencebackleft1.Part1.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.audiencebackleft1.Part4.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.audiencebackleft1.Part7.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
-- emote bindable hook
script:WaitForChild("PlayEmote").OnInvoke = function(emote)
	-- Only play emotes when idling
	if pose ~= "Standing" then
		return
	end

	if emoteNames[emote] ~= nil then
		-- Default emotes
		playAnimation(emote, EMOTE_TRANSITION_TIME, Humanoid)

		return true, currentAnimTrack
	elseif typeof(emote) == "Instance" and emote:IsA("Animation") then
		-- Non-default emotes
		playEmote(emote, EMOTE_TRANSITION_TIME, Humanoid)

		return true, currentAnimTrack
	end

	-- Return false to indicate that the emote could not be played
	return false
end

script.IdlePose.Event:Connect(function()
	playAnimation("idle", 0.2, Humanoid)
	pose = "Standing"
end)

if Character.Parent ~= nil then
	-- initialize to idle
	playAnimation("idle", 0.1, Humanoid)
	pose = "Standing"
end
-- functions

function stopAllAnimations()
	local oldAnim = currentAnim

	currentAnim = ""
	currentAnimInstance = nil
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end
	return oldAnim
end

function setAnimationSpeed(speed)
	if speed ~= currentAnimSpeed then
		currentAnimSpeed = speed
		currentAnimTrack:AdjustSpeed(currentAnimSpeed)
	end
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then
--{{ Update Points }}--

game:GetService("RunService").Stepped:Connect(function()
	change.Text = playerStats.Value
end)
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

local damagetime
local damagedb = false

for _, zambieparts in pairs(zombie:GetChildren())do
	if zambieparts:IsA'Part' and human.Health > 0 then
		zambieparts.Touched:connect(function(p)
			if p.Parent.Name == chaseName and p.Parent.Name ~= zombie.Name and not damagedb then -- damage
				damagedb = true
				damagetime = time()
				local enemy = p.Parent
				local enemyhuman = getHumanoid(enemy)
				vars.Attacking.Value = true
				enemyhuman:TakeDamage(ZombieDamage)
				vars.Attacking.Value = false
				while wait() do
					if damagetime ~= nil and time() >= (damagetime + DamageWait) then
						damagedb = false
						damagetime = nil
					end
				end
			end
		end)
	end
end
-------- OMG HAX

r = game:service("RunService")


local damage = 10


local slash_damage = 15


sword = script.Parent.Handle
Tool = script.Parent


local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
SlashSound.Parent = sword
SlashSound.Volume = 1


local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "http://www.roblox.com/asset/?id=16425587"
UnsheathSound.Parent = sword
UnsheathSound.Volume = 1


function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		-- final check, make sure sword is in-hand

		local right_arm = vCharacter:FindFirstChild("Right Arm")
		if (right_arm ~= nil) then
			local joint = right_arm:FindFirstChild("RightGrip")
			if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(damage)
				wait(1)
				untagHumanoid(humanoid)
			end
		end


	end
end


function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end


function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end


function swordUp()
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
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

	

	attack()

	wait(1)

	Tool.Enabled = true
end


function onEquipped()
	UnsheathSound:play()
end


script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)


connection = sword.Touched:connect(blow)
--Determine Wheel Size
local wDia = 0
for i,v in pairs(Drive) do
	if v.Size.x>wDia then wDia = v.Size.x end
end
--General_Punctuation
local function Touch(part)
	
local parent = script.Parent
local drop = script.Parent.Parent
local h = part.Parent:FindFirstChild("Humanoid")
	if h~= nil then
		script.Disabled = true
		parent.rumble:Play()
		drop.P.Transparency = 1
		drop.p1.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 0
		drop.p2.Transparency = 1
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 0
		drop.p2.Transparency = 1
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 0
		drop.p2.Transparency = 1
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 0
		drop.p2.Transparency = 1
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 0
		drop.p2.Transparency = 1
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		drop.p1.Transparency = 0
		drop.p2.Transparency = 1
		wait(0.1)
		drop.p1.Transparency = 1
		drop.p2.Transparency = 0
		wait(0.1)
		parent.bang:Play()
		drop.p1.Transparency = 1
		drop.p2.Transparency = 1
		drop.P.Transparency = 1
		drop.P.CanCollide = false
		wait(3)
		drop.P.CanCollide = true
		drop.P.Transparency = 0
		wait(0.2)
		script.Disabled = false
	else
		print("Humanoid not detected")
	end
end

script.Parent.Touched:connect(Touch)
--------------------------------------------------------------------	
	
	
elseif setupmode == "Auto" then
	mouse.KeyDown:connect(function(key)
		if key == camkey and enabled == false then
			
			enabled = true
			print("enabled")
	local descendants = car:GetDescendants()
	
	for index, descendant in pairs(descendants) do
		if descendant:IsA("Sound") then
					local effect = script.soundeffect:Clone()
					effect.Name = "soundeffectCop"
			
				effect.Parent = descendant
				for _,exc in pairs(exceptions) do
					if descendant.Name == exc then
					descendant.soundeffectCop:Destroy()
				end
			end
		end
	end
		elseif key == camkey and enabled == true then
			enabled = false
			print("disabled")
			local descendants = car:GetDescendants()
			for index, descendant in pairs(descendants) do
				if descendant:IsA("EqualizerSoundEffect") and descendant.Name == "soundeffectCop" then

					descendant:Destroy()
					
					car.DriveSeat.ChildRemoved:Connect(function(child)

						if child.Name == "SeatWeld" then
							local descendants = car:GetDescendants()

							for index, descendant in pairs(descendants) do
								if descendant:IsA("EqualizerSoundEffect") and descendant.Name == "soundeffect" then

								descendant:Destroy()
							end
						end
					end
				end)
			end
		end
	end	
	end)
	end
--- Generates a new Maid object
-- @return Maid
function Maid.new()
	return setmetatable({_Tasks = {}}, Maid)
end
--[[ Settings Changed Connections ]]--
LocalPlayer.Changed:connect(function(property)
	if IsTouchDevice and property == 'DevTouchMovementMode' then
		DevMovementMode = LocalPlayer.DevTouchMovementMode
		IsUserChoice = DevMovementMode == Enum.DevTouchMovementMode.UserChoice
		if IsUserChoice then
			UserMovementMode = GameSettings.TouchMovementMode
		end
		onControlsChanged()
	elseif not IsTouchDevice and property == 'DevComputerMovementMode' then
		DevMovementMode = LocalPlayer.DevComputerMovementMode
		IsUserChoice = DevMovementMode == Enum.DevComputerMovementMode.UserChoice
		if IsUserChoice then
			UserMovementMode = GameSettings.ComputerMovementMode
		end
		onControlsChanged()
	end
end)

GameSettings.Changed:connect(function(property)
	if not IsUserChoice then return end
	if property == 'TouchMovementMode' or property == 'ComputerMovementMode' then
		UserMovementMode = GameSettings[property]
		onControlsChanged()
	end
end)
--This script creates a leaderstat and saves it with the DataStoreService.
--Put this inside of the ServerScriptService.


local stat = "Points" --Change to your stat name
local startamount = 0 --Change to how much points the player will start out with


local DataStore = game:GetService("DataStoreService")
local ds = DataStore:GetDataStore("LeaderStatSave")
--[[Status Vars]]

	local _IsOn = _Tune.AutoStart
	script.Parent.IsOn.Value = _IsOn
	
	local _GSteerT=0
	local _GSteerC=0
	local _GThrot=0
	local _GBrake=0
	
	local _ClutchOn = true
	local _ClPressing = false
	local _RPM = 0
	local _HP = 0
	local _OutTorque = 0
	local _CGear = 0
	local _PGear = _CGear
	local _spLimit = 0
	
	local _TMode = _Tune.TransmissionType[1]
	
	local _MSteer = false
	local _SteerL = false
	local _SteerR = false
	local _PBrake = false
	local _TCS = _Tune.TCSEnabled
	local _TCSActive = false
	local _ABS = _Tune.ABSEnabled
	local _ABSActive = false
		
	local _InControls = false
--[=[
	@return SIGNAL_MARKER
	Returns a marker that will transform the current key into
	a RemoteSignal once the service is created. Should only
	be called within the Client table of a service.

	See [RemoteSignal](https://sleitnick.github.io/RbxUtil/api/RemoteSignal)
	documentation for more info.
	```lua
	local MyService = Knit.CreateService {
		Name = "MyService",
		Client = {
			-- Create the signal marker, which will turn into a
			-- RemoteSignal when Knit.Start() is called:
			MySignal = Knit.CreateSignal(),
		},
	}

	function MyService:KnitInit()
		-- Connect to the signal:
		self.Client.MySignal:Connect(function(player, ...) end)
	end
	```
]=]
function KnitServer.CreateSignal()
	return SIGNAL_MARKER
end