Roblox/luau_corpus huggingface dataset:
-- Called when the user's rotation type is changed.
-- This is a strong indication the user is in first person
-- and needs to have its first person movement smoothened out.

function FpsCamera:OnRotationTypeChanged()
	local camera = workspace.CurrentCamera
	local subject = camera and camera.CameraSubject
	
	if subject and subject:IsA("Humanoid") then
		local rotationType = UserGameSettings.RotationType
	
		if rotationType == Enum.RotationType.CameraRelative then
			subject.AutoRotate = false
			
			RunService:BindToRenderStep("FpsCamera", 1000, function (delta)
				if subject.AutoRotate or not subject:IsDescendantOf(game) or (subject.SeatPart and subject.SeatPart:IsA("VehicleSeat")) then
					RunService:UnbindFromRenderStep("FpsCamera")
					return
				end

				if camera.CameraType.Name == "Scriptable" then
					return
				end
				
				local rootPart = subject.RootPart
				local isGrounded = rootPart and rootPart:IsGrounded()
				
				if rootPart and not isGrounded then
					local state = subject:GetState()
					local canRotate = true

					if self.InvalidRotationStates[state.Name] then
						canRotate = false
					end

					if subject.Sit and subject.SeatPart then
						local root = rootPart:GetRootPart()

						if root ~= rootPart then
							canRotate = false
						end
					end

					if canRotate then
						local pos = rootPart.Position
						local step = math.min(0.2, (delta * 40) / 3)

						local look = camera.CFrame.LookVector
						look = (look * XZ_VECTOR3).Unit
						
						local cf = CFrame.new(pos, pos + look)
						rootPart.CFrame = rootPart.CFrame:Lerp(cf, step)
					end
				end

				if self:IsInFirstPerson() then
					local cf = camera.CFrame
					local headPos, headLook = self:GetSubjectPosition(subject)

					if headPos then
						local offset = (headPos - cf.Position)
						cf += offset

						camera.CFrame = cf
						camera.Focus += offset
					end

					local shadowAngle = self:GetShadowAngle()
					local inView = cf.LookVector:Dot(shadowAngle)

					if inView < 0 then
						for real, mirror in pairs(self.HeadMirrors) do
							mirror.CFrame = real.CFrame + (shadowAngle * 9)
						end
					end

					self.MirrorBin.Parent = (inView < 0 and camera or nil)
				else
					self.MirrorBin.Parent = nil
				end
			end)
		else
			subject.AutoRotate = true
			self.MirrorBin.Parent = nil
		end
	end
end
--[[
	Initialises all controllers and managers for the client
]]
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
-- Function that gets called when change in player's locale ID is detected
local function OnLocaleIdChanged()
	print("Translator has changed to: " .. translator.LocaleId)
	-- You should re-translate any assets translated with Localization APIs to the player's new language here
end
-- Extra padding to pull the camera further back from the viewport object.
--
-- We use the getDepthToFitObject() function to get an accurate depth to push
-- the camera back to fit the object, however this only works at 90 degree
-- rotations.
--
-- Since the camera is constantly rotating around the object, this is just some
-- extra padding to pull the camera back even further so the sides of the object
-- don't clip.
local DEPTH_PADDING = 2 -- studs

local PINCH_DELTA_TO_ZOOM_DELTA = 0.1
-- CONSTANTS

local CONSTANTS = require(script.Parent:WaitForChild("CONSTANTS"))
local Triangle = require(script.Parent:WaitForChild("Triangle"))

local PI2 = math.pi/2
local TAU = CONSTANTS.TAU

local GAP = CONSTANTS.GAP
local PART_PER_UNIT = CONSTANTS.PART_PER_UNIT

local CENTER = CONSTANTS.CENTER
local EXTERIOR_RADIUS = CONSTANTS.EXTERIOR_RADIUS
local EX_OFFSET = CONSTANTS.EX_OFFSET
local G_OFFSET = CONSTANTS.G_OFFSET

local VPF = Instance.new("ViewportFrame")
VPF.Ambient = Color3.new(1, 1, 1)
VPF.LightColor = Color3.new(1, 1, 1)
VPF.LightDirection = Vector3.new(0, 0, -1)
VPF.BackgroundTransparency = 1
VPF.Size = UDim2.new(1, 0, 1, 0)

local CAMERA = Instance.new("Camera")
CAMERA.CameraType = Enum.CameraType.Scriptable
CAMERA.CFrame = CFrame.new()
CAMERA.FieldOfView = CONSTANTS.FOV
--		print(obj.Name)
		if (obj:IsA("Folder")) then
--!strict
local LocalPlayer: Player = game:GetService("Players").LocalPlayer
local RunService = game:GetService("RunService")

local fmt = string.format

local OPT_AXIS_ATTRIBUTE = "Axis"
local OPT_AXIS = "Z"
local OPT_DEGREES_ATTRIBUTE = "Degrees"
local OPT_DEGREES = 1
local OPT_MIN_DISTANCE_ATTRIBUTE = "MinDistance"
local OPT_MIN_DISTANCE = 48

local ERR_NOT_MODEL = "Rotate expects a Model, but got %q (%s)"

local Obstacle = {}

Obstacle.__index = Obstacle

function Obstacle.new(model: Model)
	assert(model:IsA("Model"), fmt(ERR_NOT_MODEL, model:GetFullName(), model.ClassName))
	
	local self = setmetatable({}, Obstacle)
	self._events = {}
	
	self._model = model
	
	self._distance = model:GetAttribute(OPT_MIN_DISTANCE_ATTRIBUTE) or
		math.max(model:GetModelSize().Magnitude * 2, OPT_MIN_DISTANCE)
	
	self._axis = model:GetAttribute(OPT_AXIS_ATTRIBUTE) or OPT_AXIS
	self._degrees = model:GetAttribute(OPT_DEGREES_ATTRIBUTE) or OPT_DEGREES
	
	-- TODO: Defer render to global handler
	table.insert(self._events, RunService.RenderStepped:Connect(function()
		self:RenderUpdate()
	end))
	
	return self
end

function Obstacle:IsLocalPlayerNearby(): boolean
	if self._distance == 0 then
		return true
	end
	
	local distance = LocalPlayer:DistanceFromCharacter(self._model:GetPrimaryPartCFrame().Position)
	return distance < self._distance
end

function Obstacle:GetRotationCFrame(): CFrame
	local degrees = math.rad(self._degrees)
	
	if self._axis == "X" then
		return CFrame.Angles(degrees, 0, 0)
	elseif self._axis == "Y" then
		return CFrame.Angles(0, degrees, 0)
	end
	
	return CFrame.Angles(0, 0, degrees)
end

function Obstacle:RenderUpdate()
	if not self:IsLocalPlayerNearby() then
		return
	end
	
	local cframe = self._model:GetPrimaryPartCFrame()
	local angles = self:GetRotationCFrame()
	
	self._model:SetPrimaryPartCFrame(cframe * angles)
end

function Obstacle:Destroy()
	for _, event: RBXScriptConnection in ipairs(self._events) do
		event:Disconnect()
	end
end

return Obstacle
-- Also set this to true if you want the thumbstick to not affect throttle, only triggers when a gamepad is conected
local onlyTriggersForThrottle = false
local ZERO_VECTOR3 = Vector3.new(0,0,0)

local betterHandlingInputStatesFlagExists, betterHandlingInputStatesFlagEnabled = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserBetterHandlingVehicleInputStates")
end)
local FFlagBetterHandlingVehicleInputStates = betterHandlingInputStatesFlagExists and betterHandlingInputStatesFlagEnabled

local AUTO_PILOT_DEFAULT_MAX_STEERING_ANGLE = 35
----------------------
---define variables---
----------------------
local pathfinding=game:GetService("PathfindingService");--the service used to compute paths
local AI=script.Parent;--the AI
local humanoid=AI:WaitForChild("Humanoid");--the Humanoid object
local torso=AI:WaitForChild("Torso");--the Torso object
---------------------------------------------------------------------------------------

local popupsAreOpen = script.Parent.Parent.PopupsAreOpen

local clickedPlayButton = script.ClickedPlayButton
local characterDied = game.ReplicatedStorage.CharacterDied

local configuration = script.Parent.Parent.Settings
local spawnItems = game.Workspace.SpawnItems
local Sounds = script.Sounds
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]
local FE = workspace.FilteringEnabled
local car = script.Parent.Car.Value
local _Tune = require(car["A-Chassis Tune"])
local on = 0

script:WaitForChild("Rev")

if not FE then
	for i,v in pairs(car.DriveSeat:GetChildren()) do
		for _,a in pairs(script:GetChildren()) do
			if v.Name==a.Name then v:Stop() wait() v:Destroy() end
		end
	end
	for i,v in pairs(script:GetChildren()) do
		v.Parent=car.DriveSeat
	end
	
	car.DriveSeat.Rev:Play()
	
	while wait() do
		local _RPM = script.Parent.Values.RPM.Value
		
		if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
		car.DriveSeat.Rev.Pitch = (car.DriveSeat.Rev.SetPitch.Value + car.DriveSeat.Rev.SetRev.Value*_RPM/_Tune.Redline)*on^2
	end
else
	local handler = car.CarSound
	handler:FireServer("newSound","Rev",car.DriveSeat,script.Rev.SoundId,0,script.Rev.Volume,true)
	handler:FireServer("playSound","Rev")
	local pitch=0
	while wait() do
		local _RPM = script.Parent.Values.RPM.Value
		
		if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
		pitch = (script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.Redline)*on^2
		handler:FireServer("updateSound","Rev",script.Rev.SoundId,pitch,script.Rev.Volume)
	end
end
-- O(n!)
local function createCurve(t, points)
	if SETTINGS.Debug == true then
		for _, point in points do
			newInstance("Part", {
				Position = point,
				Anchored = true,
				CanCollide = false,
				Size = Vector3.one,
				Color = Color3.fromRGB(0,255,0),
				Transparency = .5,
				Parent = workspace.Debris
			})
		end
	end

	-- could use recursion, but lua doesn't have optimized tail calls. 
	while #points > 1 do
		local tempPoints = points
		points = {}

		for i = 1, #tempPoints - 1 do
			local p1 = tempPoints[i]
			local p2 = tempPoints[i + 1]

			table.insert(points, lerp(p1, p2, t))
		end
	end
	
	if SETTINGS.Debug == true then
		newInstance("Part", {
			Position = points[1],
			Anchored = true,
			CanCollide = false,
			Size = Vector3.one,
			Color = Color3.fromRGB(255,0,0),
			Transparency = .5,
			Parent = workspace.Debris
		})
	end
	
	-- points[1] will contain the correct position at time 't'
	return points[1]
end

return createCurve
-- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
local emoteNames = { wave = false, point = false, dance = true, dance2 = true, dance3 = true, laugh = false, cheer = false}

math.randomseed(tick())

function configureAnimationSet(name, fileList)
	if (animTable[name] ~= nil) then
		for _, connection in pairs(animTable[name].connections) do
			connection:disconnect()
		end
	end
	animTable[name] = {}
	animTable[name].count = 0
	animTable[name].totalWeight = 0	
	animTable[name].connections = {}

	local allowCustomAnimations = true
	local AllowDisableCustomAnimsUserFlag = false

	local success, msg = pcall(function()
		AllowDisableCustomAnimsUserFlag = UserSettings():IsUserFeatureEnabled("UserAllowDisableCustomAnims2")
	end)

	if (AllowDisableCustomAnimsUserFlag) then
		allowCustomAnimations = game:GetService("StarterPlayer").AllowCustomAnimations
	end

	-- check for config values
	local config = script:FindFirstChild(name)
	if (allowCustomAnimations and config ~= nil) then
		table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end))
		table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end))
		local idx = 1
		for _, childPart in pairs(config:GetChildren()) do
			if (childPart:IsA("Animation")) then
				table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end))
				animTable[name][idx] = {}
				animTable[name][idx].anim = childPart
				local weightObject = childPart:FindFirstChild("Weight")
				if (weightObject == nil) then
					animTable[name][idx].weight = 1
				else
					animTable[name][idx].weight = weightObject.Value
				end
				animTable[name].count = animTable[name].count + 1
				animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
				idx = idx + 1
			end
		end
	end

	-- fallback to defaults
	if (animTable[name].count <= 0) then
		for idx, anim in pairs(fileList) do
			animTable[name][idx] = {}
			animTable[name][idx].anim = Instance.new("Animation")
			animTable[name][idx].anim.Name = name
			animTable[name][idx].anim.AnimationId = anim.id
			animTable[name][idx].weight = anim.weight
			animTable[name].count = animTable[name].count + 1
			animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
-- @Return RecoilSimulator
function WeaponRuntimeData:GetRecoilSimulator()
	return self.recoilSimulator
end
-- assume we are in the character, let's check

function sepuku()
	script.Parent = nil
end

local h = script.Parent:FindFirstChild("Humanoid")

if (h == nil) then sepuku() end

local oldSpeed = h.WalkSpeed
h.WalkSpeed = 47




local torso = script.Parent:FindFirstChild("HumanoidRootPart")

if (torso == nil) then sepuku() end


local head = script.Parent:FindFirstChild("Head")
if (head == nil) then head = torso end



local s = Instance.new("Sparkles")
s.Color = Color3.new(.8, 0, .8)
s.Parent = torso


wait(7)

h.WalkSpeed = oldSpeed
s:Remove()


script.Parent = nil
--Torque Converter:
Tune.TQLock 		= false		-- Torque converter starts locking at a certain RPM (see below if set to true)
--[[Brakes]]
	Tune.ABSEnabled		= true		-- Implements ABS
	Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

	Tune.FBrakeForce	= 30000		-- Front brake force
	Tune.RBrakeForce	= 30000		-- Rear brake force
	Tune.PBrakeForce	= 30000		-- 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]
-- Will apply a body part given the r15Folder and the r6Folder for that body part.
local function applyBodyPart(character, r15Folder, r6Folder)
    local humanoid = character:FindFirstChild("Humanoid")
    if humanoid.RigType == Enum.HumanoidRigType.R15 then
		for _, part in pairs(r15Folder:GetChildren()) do
            local oldPart = character:FindFirstChild(part.Name)
			if (oldPart) then
	            part:Clone().Parent = character
	            oldPart.Name = ""
	            oldPart:Destroy()
			end
        end
        -- Rebuild the rig
        -- Note: if applying many body parts at once it is more efficient to call this after applying them all
        buildRigFromAttachments(nil, character.HumanoidRootPart)
    else
        for _, characterMesh in pairs(r6Folder:GetChildren()) do
            local oldCharacterMesh = getOldCharacterMesh(character, characterMesh)
            if oldCharacterMesh then
                oldCharacterMesh:Destroy()
            end
            characterMesh.Parent = character
        end
    end
end

local AssetService = game:GetService("AssetService")
local InsertService = game:GetService("InsertService")

function DressCharacter(character, packageId, allowTools)
	local PackageIds = AssetService:GetAssetIdsForPackage(packageId)
	local Humanoid = character:FindFirstChild("Humanoid")
	allowTools = (allowTools or false)
	
	for _,AssetId in pairs(PackageIds) do
		local Insert = InsertService:LoadAsset(AssetId)
		
		for _,Object in pairs(Insert:GetChildren()) do
			if (Object:IsA("Folder") and Object.Name == "R15") then
				applyBodyPart(character, Object, nil)
			elseif (Object:IsA("Tool") and allowTools) then
				Humanoid:EquipTool(Object)
			elseif (Object:IsA("Accessory") or Object:IsA("Hat")) then
				Humanoid:AddAccessory(Object)
			end
		end
		
		Insert:Destroy()
	end
	
	return true
end

return DressCharacter
--[[
	SERVER PLUGINS' NAMES MUST START WITH "Server: "
	CLIENT PLUGINS' NAMES MUST START WITH "Client: "
	
	Plugins have full access to the server/client tables and most variables.
	
	You can use the MakePluginEvent to use the script instead of setting up an event.
	PlayerChatted will get chats from the custom chat and nil players. 
	PlayerJoined will fire after the player finishes initial loading
	CharacterAdded will also fire after the player is loaded, it does not use the CharacterAdded event.
	
	service.HookEvent('PlayerChatted',function(msg,plr) 
		print(msg..' from '..plr.Name..' Example Plugin')
	end)
	
	service.HookEvent('PlayerJoined',function(p) 
		print(p.Name..' Joined! Example Plugin') 
	end)
	
	service.HookEvent('CharacterAdded',function(plr) 
		server.RunCommand('name',plr.Name,'BobTest Example Plugin') 
	end)
	
--]]

server = nil -- Mutes warnings about unknown globals
service = nil
return function()
	server.Commands.ExampleCommand = {
		Prefix = server.Settings.Prefix;	-- Prefix to use for command
		Commands = {"example"};	-- Commands
		Args = {"arg1"};	-- Command arguments
		Description = "Example command";	-- Command Description
		Hidden = true; -- Is it hidden from the command list?
		Fun = false;	-- Is it fun?
		AdminLevel = "Players";	    -- Admin level; If using settings.CustomRanks set this to the custom rank name (eg. "Baristas")
		Function = function(plr,args)    -- Function to run for command
			print("HELLO WORLD FROM AN EXAMPLE COMMAND :)")
			print("Player supplied args[1] "..tostring(args[1]))
		end
	}
end
--[=[
	@class BounceTemplateUtils
	@private
]=]

local BounceTemplate = script.Parent.BounceTemplate

local CREATE_ONLY_LINK = false

local BounceTemplateUtils = {}

function BounceTemplateUtils.isBounceTemplate(instance)
	return instance:GetAttribute("IsBounceTemplate", true) == true
end

function BounceTemplateUtils.getTarget(instance)
	if not BounceTemplateUtils.isBounceTemplate(instance) then
		return nil
	end

	if instance:IsA("ObjectValue") then
		return instance.Value
	else
		local found = instance:FindFirstChild("BounceTarget")
		if found then
			return found.Value
		else
			warn("[BounceTemplateUtils.getTarget] - Bounce template without BounceTarget")
			return nil
		end
	end
end

function BounceTemplateUtils.create(target, linkName)
	assert(typeof(target) == "Instance", "Bad target")
	assert(type(linkName) == "string", "Bad linkName")

	if CREATE_ONLY_LINK then
		return BounceTemplateUtils.createLink(target, linkName)
	end

	local copy = BounceTemplate:Clone()
	copy:SetAttribute("IsBounceTemplate", true)
	copy.Name = linkName

	local objectValue = Instance.new("ObjectValue")
	objectValue.Name = "BounceTarget"
	objectValue.Value = target
	objectValue.Parent = copy

	return copy
end

function BounceTemplateUtils.createLink(target, linkName)
	assert(typeof(target) == "Instance", "Bad target")
	assert(type(linkName) == "string", "Bad linkName")

	local objectValue = Instance.new("ObjectValue")
	objectValue.Name = linkName
	objectValue.Value = target
	objectValue:SetAttribute("IsBounceTemplate", true)

	return objectValue
end

return BounceTemplateUtils
--FR
fSprings[2].Thickness = Settings[1]
fSprings[2].MaxLength = Settings[2]
fSprings[2].MinLength = Settings[3]
fSprings[2].Damping = Settings[4]
fSprings[2].FreeLength = Settings[5]
fSprings[2].LimitsEnabled = Settings[6]
fSprings[2].MaxForce = Settings[7]
fSprings[2].Stiffness = Settings[8]
-- Call the module on the SlotsFolder
EquippedVal = require(script.InvSystem)(SlotsFolder)
--[=[
	@within Ser
	@prop Classes table

	A dictionary of classes along with a Serialize and Deserialize function.
	For instance, the default class added is the Option class, which looks
	like the following:

	```lua
	Ser.Classes.Option = {
		Serialize = function(opt) return opt:Serialize() end;
		Deserialize = Option.Deserialize;
	}
	```

	Add to this table in order to extend what classes are automatically
	serialized/deserialized.

	The Ser library checks every object's `ClassName` field in both serialized
	and deserialized data in order to map it to the correct function within
	the Classes table.
]=]
Ser.Classes = {
	Option = {
		Serialize = function(opt) return opt:Serialize() end;
		Deserialize = Option.Deserialize;
	};
}
--// Variables
local L_1_ = script.Parent
local L_2_ = L_1_.Parent.Parent
local L_3_ = L_2_:WaitForChild('Required')
local L_4_ = L_2_:WaitForChild('BodyKit')

local L_5_ = L_2_:WaitForChild('Networking')
local L_6_ = L_2_:WaitForChild('Vals')
local L_7_ = L_6_:WaitForChild('Owner')

local L_8_ = require(L_2_:WaitForChild('Modules'):WaitForChild('Config_Module'))

local L_9_ = L_3_:WaitForChild('Rotor')
local L_10_
if L_3_:FindFirstChild('Rotor2') then
	L_10_ = L_3_.Rotor2
end
local L_11_ = L_9_:WaitForChild('Top'):WaitForChild('Rotor')
local L_12_ = L_9_:WaitForChild('Bottom'):WaitForChild('Rotor')
local L_13_
local L_14_
if L_10_ then
	L_13_ = L_10_:WaitForChild('Top'):WaitForChild('Rotor')
	L_14_ = L_10_:WaitForChild('Bottom'):WaitForChild('Rotor')
end

local L_15_
local L_16_, L_17_

local L_18_ = false
local L_19_ = L_2_:WaitForChild('FX')

local L_20_ = game.ReplicatedStorage:FindFirstChild('[WB] Leaderstat Network') or nil

local L_21_ = {
	L_2_
}
--Put this script in a mob to make it drop item. Don't forget to enable this script!

local item = Game.ReplicatedStorage.ITEMS:FindFirstChild(script.Item.Value):Clone()
local Humanoid = script.Parent.Human
function PwntX_X() 
local tag = Humanoid:FindFirstChild("creator") 
	if tag ~= nil then 
		if tag.Value ~= nil then 
			if math.random(1, 100) <= script.DropChance.Value then
				local Leaderstats = tag.Value:FindFirstChild("StarterGear") 
				local ll = tag.Value:FindFirstChild("Backpack") 
				if Leaderstats ~= nil and ll~= nil then 
					if script.KeptOnDeath.Value == true then
						item:Clone().Parent = Leaderstats
						item:Clone().Parent = ll
					else
						item:Clone().Parent = ll
					end
					wait(0.1)
					script:Remove()
				end
			end 
		end 
	end 
end 

Humanoid.Died:connect(PwntX_X)
--Wheelie tune
local WheelieD = 2
local WheelieTq = 85
local WheelieP = 10
local WheelieMultiplier = 1.5
local WheelieDivider = 2
-- Set up the click event handlers for each button
for _, button in ipairs(dock:GetChildren()) do
	if button:IsA("ImageButton") then
		button.MouseButton1Click:Connect(function()
			-- Create the jump tween
			local Click = script.Click
			local jumpTweenInfo = TweenInfo.new(jumpDuration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
			local jumpTween = game:GetService("TweenService"):Create(button, jumpTweenInfo, {
				Size = UDim2.new(button.Size.X.Scale * jumpScale, button.Size.X.Offset,
					button.Size.Y.Scale * jumpScale, button.Size.Y.Offset),
				Position = UDim2.new(button.Position.X.Scale - ((jumpScale - 1) / 2),
					button.Position.X.Offset, button.Position.Y.Scale - ((jumpScale - 1) / 2),
					button.Position.Y.Offset)
			})

			-- Play the jump tween
			jumpTween:Play()
			Click:Play()

			-- Reset the button's size and position after the jump is complete
			jumpTween.Completed:Connect(function()
				button.Size = UDim2.new(button.Size.X.Scale / jumpScale, button.Size.X.Offset,
					button.Size.Y.Scale / jumpScale, button.Size.Y.Offset)
				button.Position = UDim2.new(button.Position.X.Scale + ((jumpScale - 1) / 2),
					button.Position.X.Offset, button.Position.Y.Scale + ((jumpScale - 1) / 2),
					button.Position.Y.Offset)
			end)
		end)
	end
end