Roblox/luau_corpus huggingface dataset:
--[[ Local Functions ]]--
function MouseLockController:OnMouseLockToggled()
	if Character:FindFirstChild("Ragdoll") then return end
	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")
			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 game.Players.LocalPlayer.Character:FindFirstChild("Ragdoll") then return end
	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 Character:FindFirstChild("Ragdoll") then return end
	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
--[=[
	Whenever all returned brios are dead, emits this value wrapped
	in a brio.

	@param valueToEmitWhileAllDead T
	@return (source: Observable<Brio<U>>) -> Observable<Brio<U | T>>
]=]
function RxBrioUtils.emitWhileAllDead(valueToEmitWhileAllDead)
	return function(source)
		return Observable.new(function(sub)
			local topMaid = Maid.new()

			local subscribed = true
			topMaid:GiveTask(function()
				subscribed = false
			end)
			local aliveBrios = {}
			local fired = false

			local function updateBrios()
				if not subscribed then -- No work if we don't need to.
					return
				end

				aliveBrios = BrioUtils.aliveOnly(aliveBrios)
				if next(aliveBrios) then
					topMaid._lastBrio = nil
				else
					local newBrio = Brio.new(valueToEmitWhileAllDead)
					topMaid._lastBrio = newBrio
					sub:Fire(newBrio)
				end

				fired = true
			end

			local function handleNewBrio(brio)
				-- Could happen due to throttle or delay...
				if brio:IsDead() then
					return
				end

				local maid = Maid.new()
				topMaid[maid] = maid -- Use maid as key so it's unique (reemitted brio)

				maid:GiveTask(function() -- GC properly
					topMaid[maid] = nil
					updateBrios()
				end)
				maid:GiveTask(brio:GetDiedSignal():Connect(function()
					topMaid[maid] = nil
				end))

				table.insert(aliveBrios, brio)
				updateBrios()
			end

			topMaid:GiveTask(source:Subscribe(
				function(brio)
					if not Brio.isBrio(brio) then
						warn(("[RxBrioUtils.emitWhileAllDead] - Not a brio, %q"):format(tostring(brio)))
						topMaid._lastBrio = nil
						sub:Fail("Not a brio")
						return
					end

					handleNewBrio(brio)
				end,
				function(...)
					sub:Fail(...)
				end,
				function(...)
					sub:Complete(...)
				end))

			-- Make sure we emit an empty list if we discover nothing
			if not fired then
				updateBrios()
			end

			return topMaid
		end)
	end
end
----functions

local function On_Mouse_Enter(button, original_Size)
	local Hover_Size = UDim2.new(
		original_Size.X.Scale*MOUSE_ENTER_SIZE,
		0,
		original_Size.Y.Scale*MOUSE_ENTER_SIZE,
		0
	)
	button:TweenSize(Hover_Size, "Out", "Sine", MOUSE_ENTER_DURATION,true)
	
end

local function On_Mouse_Leave(button, original_Size)
	button:TweenSize(original_Size, "Out", "Sine", MOUSE_ENTER_DURATION,true)
end


local function On_Mouse_Click(button, original_Size)
	local ClickSize = UDim2.new(
		original_Size.X.Scale/CLICK_SIZE,
		0,
		original_Size.Y.Scale/CLICK_SIZE,
		0
	)
	button:TweenSize(ClickSize, "Out", "Sine", MOUSE_CLICK_DURATION,true)

end


function module.SetUp(button)
	if not table.find(OriginalSizes,button) then
		OriginalSizes[button] = button.Size
	end
	
	local Main_Size  = OriginalSizes[button]
	
	button.MouseEnter:Connect(function()
		On_Mouse_Enter(button, Main_Size)
	end)
	
	button.MouseLeave:Connect(function()
		On_Mouse_Leave(button, Main_Size)
	end)
	
	button.MouseButton1Down:Connect(function()
		On_Mouse_Click(button, Main_Size)
	end)	
	
	button.MouseButton1Up:Connect(function()
		On_Mouse_Leave(button, Main_Size)
	end)		
end

return module
-- declarations

local Figure = script.Parent.Parent
local Head = waitForChild(Figure, "Head")
local Humanoid = waitForChild(Figure, "Humanoid")

local sGettingUp = waitForChild(Head, "GettingUp")
local sDied = waitForChild(Head, "Died") 
local sFreeFalling = waitForChild(Head, "FreeFalling")
local sJumping = waitForChild(Head, "Jumping")
local sLanding = waitForChild(Head, "Landing")
local sSplash = waitForChild(Head, "Splash")
local sRunning = waitForChild(Head, "Running")
sRunning.Looped = true
local sSwimming = waitForChild(Head, "Swimming")
sSwimming.Looped = true
local sClimbing =waitForChild(Head, "Climbing")
sClimbing.Looped = true

local prevState = "None"
-- Decompiled with the Synapse X Luau decompiler.

local v1 = {};
local v2 = require(game.ReplicatedStorage.Modules.Lightning);
local v3 = require(game.ReplicatedStorage.Modules.Xeno);
local v4 = require(game.ReplicatedStorage.Modules.CameraShaker);
local l__TweenService__5 = game.TweenService;
local l__Debris__6 = game.Debris;
local l__ReplicatedStorage__1 = game.ReplicatedStorage;
function v1.RunStompFx(p1, p2, p3, p4)
	local v7 = l__ReplicatedStorage__1.KillFX[p1].Stomp:Clone();
	v7.Parent = p2.Parent.UpperTorso and p2;
	v7:Play();
	game.Debris:AddItem(v7, 5);
	local v8 = l__ReplicatedStorage__1.KillFX[p1].Effect:Clone();
	v8.CFrame = CFrame.new(p2.Position.X, p2.Position.Y + 35, p2.Position.Z);
	v8.Parent = workspace.Ignored.Animations;
	game:GetService("TweenService"):Create(v8, TweenInfo.new(0.5), {
		Transparency = 0
	}):Play();
	game.Debris:AddItem(v8, 5);
	wait(0.5);
	local v9 = l__ReplicatedStorage__1.KillFX[p1].Second:Clone();
	v9.Parent = workspace.Ignored.Animations;
	v9.Main.CFrame = CFrame.new(p2.Position.X, p2.Position.Y - 1, p2.Position.Z);
	game.Debris:AddItem(v9, 4);
	game:GetService("TweenService"):Create(v9.Main, TweenInfo.new(4), {
		CFrame = CFrame.new(v9.Main.Position.X, v9.Main.Position.Y + 20, v9.Main.Position.Z)
	}):Play();
	game:GetService("TweenService"):Create(v8, TweenInfo.new(4), {
		CFrame = CFrame.new(v8.Position.X, v8.Position.Y + 20, v8.Position.Z)
	}):Play();
	for v10, v11 in pairs(p2.Parent:GetDescendants()) do
		if not (not v11:IsA("BasePart")) or not (not v11:IsA("MeshPart")) or v11:IsA("Decal") then
			game:GetService("TweenService"):Create(v11, TweenInfo.new(4), {
				Transparency = 1
			}):Play();
		end;
	end;
	delay(4, function()
		game:GetService("TweenService"):Create(v8, TweenInfo.new(1), {
			Transparency = 1
		}):Play();
	end);
	return nil;
end;
return v1;
--!strict
local function PageIterator(pages)
	return coroutine.wrap(function()
		local pageNumber = 1
		
		while true do
			for _, item in pages:GetCurrentPage() do
				coroutine.yield(item, pageNumber)
			end
			
			if pages.IsFinished then
				break
			end
			
			pages:AdvanceToNextPageAsync()
			pageNumber += 1
		end
	end)
end

return PageIterator
--[[
	Sets the position of the internal springs, meaning the value of this
	Spring will jump to the given value. This doesn't affect velocity.

	If the type doesn't match the current type of the spring, an error will be
	thrown.
]]
function class:setPosition(newValue: PubTypes.Animatable)
	local newType = typeof(newValue)
	if newType ~= self._currentType then
		logError("springTypeMismatch", nil, newType, self._currentType)
	end

	self._springPositions = unpackType(newValue, newType)
	self._currentValue = newValue
	SpringScheduler.add(self)
	updateAll(self)
end
--[[Weight and CG]]
	Tune.Weight			= 8000		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		8		,
	 --[[Height]]		15		,
	 --[[Length]]		25		}
	Tune.WeightDist		= 30		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= 2	-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .5		-- Front Wheel Density
	Tune.RWheelDensity	= .5		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]
	
	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
-- Spritesheet
local Sprite = {
	Width = 13;
	Height = 13;
}

local Spritesheet = {
	Image = "http://www.roblox.com/asset/?id=128896947";
	Height = 256;
	Width = 256;
}

local Images = {
	"unchecked",
	"checked",
	"unchecked_over",
	"checked_over",
	"unchecked_disabled",
	"checked_disabled"
}

local function SpritePosition(spriteName)
	local x = 0
	local y = 0
	for i,v in pairs(Images) do
		if (v == spriteName) then
			return {x, y}
		end
		x = x + Sprite.Height
		if (x + Sprite.Width) > Spritesheet.Width then
			x = 0
			y = y + Sprite.Height
		end
	end
end

local function GetCheckboxImageName(checked, readOnly, mouseover)
	if checked then
		if readOnly then
			return "checked_disabled"
		elseif mouseover then
			return "checked_over"
		else
			return "checked"
		end
	else
		if readOnly then
			return "unchecked_disabled"
		elseif mouseover then
			return "unchecked_over"
		else
			return "unchecked"
		end
	end
end

local MAP_ID = 418720155
--[[
	Constructs and returns objects which can be used to model independent
	reactive state.
]]

local Package = script.Parent.Parent
local Types = require(Package.Types)
local useDependency = require(Package.Dependencies.useDependency)
local initDependency = require(Package.Dependencies.initDependency)
local updateAll = require(Package.Dependencies.updateAll)
local isSimilar = require(Package.Utility.isSimilar)

local class = {}

local CLASS_METATABLE = {__index = class}
local WEAK_KEYS_METATABLE = {__mode = "k"}
-- Dark was here.
local nearplayer 
local Players = game:GetService("Players")
while true do
	nearplayer = false

	for _,Player in next, Players:GetPlayers() do 
		if Player.Character and Player.Character.PrimaryPart then
			local dis = (Player.Character.PrimaryPart.CFrame.Position - banto.PrimaryPart.CFrame.Position).Magnitude
			if dis >= 500 then
				nearplayer = true
				break
			end
		end
	end

	if nearplayer then
		task.wait(math.random(8, 8 + 8/2))
		continue
	end
	
	
	bp.Parent = banto.PrimaryPart
	local goal
	repeat 
		local ray = Ray.new(
			Vector3.new(origin.p.x+math.random(-tether,tether),100,origin.p.z+math.random(-tether,tether)),
			Vector3.new(0,-1000,0)
		)
		local part,pos,norm,mat = workspace:FindPartOnRay(ray,banto)
		if part == workspace.Terrain and mat ~= Enum.Material.Water then
			goal = pos+Vector3.new(0,2.25,0)
		end
		wait()
	until goal
	-- move the banto to the newfound goal
	walk:Play()
	bg.CFrame = CFrame.new(banto.PrimaryPart.Position,goal)
	bp.Position = (CFrame.new(banto.PrimaryPart.Position,goal)*CFrame.new(0,0,-100)).Position

	local start = tick()
	repeat wait(1/2) 
		local ray = Ray.new(banto.PrimaryPart.Position,Vector3.new(0,-1000,0))
		--local part,pos,norm,mat = workspace:FindPartOnRay(ray,banto)
		--banto:MoveTo(Vector3.new(banto.PrimaryPart.Position.X,pos.Y+2.25,banto.PrimaryPart.Position.Z))
		--bp.Position = Vector3.new(bp.Position.X,pos.Y+2.25,bp.Position.Z)

	until (banto.PrimaryPart.Position-goal).magnitude < 10 or tick()-start >10
	walk:Stop()
	bp.Parent = nil
	wait(math.random(3,8))
end
--------------------) Settings
Damage = 0 -- the ammout of health the player or mob will take

Cooldown = 10 -- cooldown for use of the tool again

ZoneModelName = "Infected void" -- name the zone model

MobHumanoidName = "Humanoid"-- the name of player or mob u want to damage
--- Replace with true/false to force the chat type. Otherwise this will default to the setting on the website.
--module.BubbleChatEnabled = PlayersService.BubbleChat
module.BubbleChatEnabled = true
module.ClassicChatEnabled = PlayersService.ClassicChat
-- RECOMMENDED TO DISABLE A SHIFT TO SPRINT SCRIPT. ENABLE IT ON LINE 34.

script.Parent.MouseButton1Click:Connect(function()

	buttons.Settings.Content.Button.PopupScript.Disabled = true
	buttons.UpdateLog.Content.Button.PopupScript.Disabled = true
	buttons.Credits.Content.Button.PopupScript.Disabled = true
	buttons.Shop.Content.Button.PopupScript.Disabled = true
	buttons.Play.Content.Button.PlayScript.Disabled = true

	buttons.Settings:TweenPosition(UDim2.new(-0.25, 0,0.51, 0), "InOut", "Quad", 0.5, true)
	buttons.Shop:TweenPosition(UDim2.new(1.25, 0,0.51, 0), "InOut", "Quad", 0.5, true)
	buttons.Credits:TweenPosition(UDim2.new(1.25, 0,0.864, 0), "InOut", "Quad", 0.5, true)
	buttons.UpdateLog:TweenPosition(UDim2.new(-0.25, 0,0.864, 0), "InOut", "Quad", 0.5, true)
	buttons.Play:TweenPosition(UDim2.new(0.5, 0,-0.5, 0), "InOut", "Quad", 0.5, true)
	title:TweenPosition(UDim2.new(0.5, 0,1.5, 0), "InOut", "Quad", 0.5, true)

	wait(0.5)
	
	buttons.Parent.Blackout:TweenPosition(UDim2.new(0.5, 0,0.5, 0), "InOut", "Quad", 0.5, true)
	
	wait(0.5)
	
	plr.Character.HumanoidRootPart.CFrame = spawnpart.CFrame * CFrame.new(0, 3, 0)
	plr.Character.Humanoid.WalkSpeed = 16 -- IF THIS IS CUSTOM IN YOUR GAME, EDIT THIS. (DEFAULT = 16)
	plr.Character.Humanoid.JumpHeight = 7.2 -- IF THIS IS CUSTOM IN YOUR GAME, EDIT THIS. (DEFAULT = 7.2)
	
	
	
	game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, true)
	game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, true)
	game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true)
	game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, true)
	
	script.Parent.Parent.Parent.Parent.Parent.Parent.Music:Stop()
	buttons.Parent.Parent.Camera.Disabled = true
	workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
	buttons.Parent.Parent.BackToMenu.Content.Button.B2MScript.Disabled = false
	buttons.Parent.Parent.BackToMenu.Visible = true
	buttons.Parent.Blackout:TweenPosition(UDim2.new(-0.5, 0,0.5, 0), "InOut", "Quad", 0.5, true)
	
end)
--EDIT BELOW----------------------------------------------------------------------
settings.PianoSoundRange = 50

settings.KeyAesthetics = true

settings.PianoSounds = {
		"264415033",
		"264747775",
		"264415167",
		"264415205",
		"264415256",
		"264415285"
}
--// Servc
local UIS = game:GetService('UserInputService')
local SSS = game:GetService('ServerScriptService')
local rp = game:GetService("ReplicatedStorage")
-- Teknikk Sounder Core V1 --
local Status = script.Parent.Parent.Status
local Tone = script.Parent.Parent.SounderTone
local SounderSync = script.Parent.Parent.SounderSync
local Run = false
Status.Changed:connect(function()
	if Run then return end
	Run = true
	if Status.Value == 1 --ALARM
	or Status.Value == 12 --TEST
	then
	wait(1)
	if Tone.Value == 1 then -- CONTINIUS 
		SounderSync.Value = true
		Status.Parent.Indicators.Fire.BrickColor = BrickColor.new("Really red")
	end
	
	if Tone.Value == 2 then -- PULSE 	
		while true do
			wait(0.2)
			SounderSync.Value = true
			Status.Parent.Panel.Relay.Pitch = 3
			Status.Parent.Panel.Relay:Play()
			Status.Parent.Indicators.Fire.BrickColor = BrickColor.new("Really red")
			wait(0.2)			
			Status.Parent.Panel.Relay.Pitch = 2.5
			Status.Parent.Panel.Relay:Play()
			SounderSync.Value = false
			Status.Parent.Indicators.Fire.BrickColor = BrickColor.new("Sand red")
		end
	end

	if Tone.Value == 3 then -- CODE 3
		while true do
			for C3 = 1, 3 do
			wait(0.3)
			SounderSync.Value = true
			Status.Parent.Panel.Relay.Pitch = 3
			Status.Parent.Panel.Relay:Play()
			Status.Parent.Indicators.Fire.BrickColor = BrickColor.new("Really red")
			wait(0.6)
			SounderSync.Value = false
			Status.Parent.Panel.Relay.Pitch = 2.5
			Status.Parent.Panel.Relay:Play()
			Status.Parent.Indicators.Fire.BrickColor = BrickColor.new("Sand red")
			end
			wait(1.5)
		end
	end
	
	end
end)
SounderSync.Value = false
Status.Parent.Panel.Relay.Pitch = 2.5
Status.Parent.Panel.Relay:Play()
--[=[
	Begins a Promise chain, calling a function and returning a Promise resolving with its return value. If the function errors, the returned Promise will be rejected with the error. You can safely yield within the Promise.try callback.

	:::info
	`Promise.try` is similar to [Promise.promisify](#promisify), except the callback is invoked immediately instead of returning a new function.
	:::

	```lua
	Promise.try(function()
		return math.random(1, 2) == 1 and "ok" or error("Oh an error!")
	end)
		:andThen(function(text)
			print(text)
		end)
		:catch(function(err)
			warn("Something went wrong")
		end)
	```

	@param callback (...: any) -> ...any
	@return Promise
]=]
function Promise.try(...)
	return Promise._try(debug.traceback(nil, 2), ...)
end
-- Local Variables
local ScoreFrame = script.Parent.ScreenGui.ScoreFrame
local VictoryFrame = script.Parent.ScreenGui.VictoryMessage
local Events = game.ReplicatedStorage.Events
local DisplayNotification = Events.DisplayNotification
local DisplayVictory = Events.DisplayVictory
local DisplayScore = Events.DisplayScore
local ResetMouseIcon = Events.ResetMouseIcon
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()

local MouseIcon = Mouse.Icon
--used by checkTeams

local function tagHuman(human)
	local tag = Tag:Clone()
	tag.Parent = human
	game:GetService("Debris"):AddItem(tag)
end
--Code--
local function PlayerTouched(Part)
	local Parent = Part.Parent
	if game.Players:GetPlayerFromCharacter(Parent) then
		wait(0.8)
		Brick.Transparency=Brick.Transparency+0.8
		Brick.CanCollide=false
		wait(2)
		Brick.Transparency=0
		Brick.CanCollide=true
	end
end

Brick.Touched:connect(PlayerTouched)
-- Waits for script.childName to exist then returns it
local function scriptWaitForChild(childName)
	while not script:FindFirstChild(childName) do wait() end
	return script[childName]
end

local eatAnimation = scriptWaitForChild("EatAnimation")
-- A combo of table.find and table.keyOf -- This first attempts to find the ordinal index of your value, then attempts to find the lookup key if it can't find an ordinal index.
Table.indexOf = function (tbl, value)
	local fromFind = table.find(tbl, value)
	if fromFind then return fromFind end
	
	return Table.keyOf(tbl, value)
end
--[[
    Instantiates object fields
]]
function VehicleLightsComponent:setup()
	local lights = self.model:FindFirstChild("Lights")
	local headLights = lights:FindFirstChild("HeadLights")
	local brakeLights = lights:FindFirstChild("BrakeLights")

	self.headLights = headLights:GetChildren()
	self.brakeLights = brakeLights:GetChildren()
end
--- Cleans up all tasks.
-- @alias Destroy
function Maid:DoCleaning()
	local tasks = self._tasks

	-- Disconnect all events first as we know this is safe
	for index, task in pairs(tasks) do
		if typeof(task) == "RBXScriptConnection" then
			tasks[index] = nil
			task:Disconnect()
		end
	end

	-- Clear out tasks table completely, even if clean up tasks add more tasks to the maid
	local index, task = next(tasks)
	while task ~= nil do
		tasks[index] = nil
		if type(task) == "function" then
			task()
		elseif typeof(task) == "RBXScriptConnection" then
			task:Disconnect()
		elseif task.Destroy then
			task:Destroy()
		end
		index, task = next(tasks)
	end
end
-- Set up the trigger event
script.Parent.Trigger.Touched:connect(function(obj)
	if (game.Players:GetPlayerFromCharacter(obj.Parent)) then
		local t = time()
		if ((t-last) < 3) then return end	-- 1-second debounce (time-based)
		last = t
		GoTo(open)
	end
end)
--[[--------------------------------------------------------------------
-- Notes:
-- * EOZ is implemented as a string, "EOZ"
-- * Format of z structure (ZIO)
--     z.n       -- bytes still unread
--     z.p       -- last read position position in buffer
--     z.reader  -- chunk reader function
--     z.data    -- additional data
-- * Current position, p, is now last read index instead of a pointer
--
-- Not implemented:
-- * luaZ_lookahead: used only in lapi.c:lua_load to detect binary chunk
-- * luaZ_read: used only in lundump.c:ezread to read +1 bytes
-- * luaZ_openspace: dropped; let Lua handle buffers as strings (used in
--   lundump.c:LoadString & lvm.c:luaV_concat)
-- * luaZ buffer macros: dropped; buffers are handled as strings
-- * lauxlib.c:getF reader implementation has an extraline flag to
--   skip over a shbang (#!) line, this is not implemented here
--
-- Added:
-- (both of the following are vaguely adapted from lauxlib.c)
-- * luaZ:make_getS: create Reader from a string
-- * luaZ:make_getF: create Reader that reads from a file
--
-- Changed in 5.1.x:
-- * Chunkreader renamed to Reader (ditto with Chunkwriter)
-- * Zio struct: no more name string, added Lua state for reader
--   (however, Yueliang readers do not require a Lua state)
----------------------------------------------------------------------]]

local luaZ = {}
--Retract FE code
F.Retract = function()
	TS2:Play()
	TS3:Play()
	Sounds1.Off:Play()
	Sounds2.Off:Play()
end
--[[Brakes]]
	Tune.ABSEnabled		= true		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 15000000		-- Front brake force
	Tune.RBrakeForce	= 10000000		-- Rear brake force
	Tune.PBrakeForce	= 50000000	-- Handbrake force
	
	Tune.FLgcyBForce	= 1500000		-- Front brake force [PGS OFF]
	Tune.RLgcyBForce	= 1000000		-- Rear brake force [PGS OFF]
	Tune.LgcyPBForce	= 2500000		-- Handbrake force [PGS OFF]
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS
--DO NOT MESS WITH THIS


function onPlayerRespawned(newPlayer)
	while true do
		if newPlayer.Character ~= nil then break end
		wait(.1)
	end
	local newJob = script.Health:Clone()
	newJob.Disabled = false
	newJob.Parent = newPlayer.Character
end

function onPlayerEntered(newPlayer)
	newPlayer.Changed:connect(function (property)
		if (property == "Character") then
			onPlayerRespawned(newPlayer)
		end
	end)
end

game.Players.PlayerAdded:connect(onPlayerEntered)
--removes the dreidle on unequip
function onUnequipped()
	if (dBody ~= nil) then
		dBody:Remove()
	end
	if (dBase ~= nil) then
		dBase:Remove()
	end
end
--[=[
	Holds utilty math functions not available on Roblox's math library.
	@class Math
]=]

local Math = {}