Pinkstack/roblox-luau-corpus-text huggingface dataset:
--[[
	Recalculates this Computed's cached value and dependencies.
	Returns true if it changed, or false if it's identical.
]]


function class:update(): boolean
	-- remove this object from its dependencies' dependent sets
	for dependency in pairs(self.dependencySet) do
		dependency.dependentSet[self] = nil
	end

	-- we need to create a new, empty dependency set to capture dependencies
	-- into, but in case there's an error, we want to restore our old set of
	-- dependencies. by using this table-swapping solution, we can avoid the
	-- overhead of allocating new tables each update.
	self._oldDependencySet, self.dependencySet = self.dependencySet, self._oldDependencySet
	table.clear(self.dependencySet)

	local ok, newValue, newMetaValue = captureDependencies(self.dependencySet, self._processor)

	if ok then
		if self._destructor == nil and needsDestruction(newValue) then
			logWarn("destructorNeededComputed")
		end

		if newMetaValue ~= nil then
			logWarn("multiReturnComputed")
		end

		local oldValue = self._value
		local similar = isSimilar(oldValue, newValue)
		if self._destructor ~= nil then
			self._destructor(oldValue)
		end
		self._value = newValue

		-- add this object to the dependencies' dependent sets
		for dependency in pairs(self.dependencySet) do
			dependency.dependentSet[self] = true
		end

		return not similar
	else
		-- this needs to be non-fatal, because otherwise it'd disrupt the
		-- update process
		logErrorNonFatal("computedCallbackError", newValue)

		-- restore old dependencies, because the new dependencies may be corrupt
		self._oldDependencySet, self.dependencySet = self.dependencySet, self._oldDependencySet

		-- restore this object in the dependencies' dependent sets
		for dependency in pairs(self.dependencySet) do
			dependency.dependentSet[self] = true
		end

		return false
	end
end

local function Computed<T>(processor: () -> T, destructor: ((T) -> ())?): Types.Computed<T>
	local self = setmetatable({
		type = "State",
		kind = "Computed",
		dependencySet = {},
		-- if we held strong references to the dependents, then they wouldn't be
		-- able to get garbage collected when they fall out of scope
		dependentSet = setmetatable({}, WEAK_KEYS_METATABLE),
		_oldDependencySet = {},
		_processor = processor,
		_destructor = destructor,
		_value = nil,
	}, CLASS_METATABLE)

	initDependency(self)
	self:update()

	return self
end

return Computed
--[[
	Matches the numeric value of an [AccessoryType] to its equivalent enum (as a
	string).

	```lua
	matchIdToType(42) -- "FaceAccessory"
	```

	This function is called during the initial setup for MerchBooth accessories;
	the returned string is used to set the AccessoryType attribute of the
	accessory.

	@within Modules
	@return string The string conversion of the [AssetType] whose Value matches the `assetTypeId`.
]]



local function matchIdToType(assetTypeId: number): Enum.AssetType?
	for _, assetType in ipairs(Enum.AssetType:GetEnumItems()) do
		if assetType.Value == assetTypeId then
			return assetType
		end
	end
	return nil
end

return matchIdToType
--edit the below function to execute code when this response is chosen OR this prompt is shown
--player is the player speaking to the dialogue, and dialogueFolder is the object containing the dialogue data


return function(player, dialogueFolder)
	local plrData = require(game.ReplicatedStorage.Source.Modules.Util):GetPlayerData(player)
	plrData.Money.Gold.Value = plrData.Money.Gold.Value - 70 -- TODO Track payment for dissertation
	local ClassInformationTable = require(game.ReplicatedStorage.Source.Modules.CharacterScripts.Classes.ClassInformation)
	ClassInformationTable:GetClassFolder(player,"Warlock").FastCasting.Value = true
end
--Flight priority--


core.spawn(function()
	while myHuman.Health > 0 do	
		
		if target and not engineRunning then
			takeOff()
		end
		
		if not dodgingObstacles.Value and not criticalAction then
			if target and combat.getMunition(munition) then
				combatFlight()
			elseif engineRunning then
				flyHome()
			end
		end
		
		wait(0.1)
	end
end)
-- Public Methods



function DropdownClass:Set(option)
	if (self._Selected ~= option) then
		self._Selected = option
		self._ChangedBind:Fire(option)
		self.Button.Option.Text = option.Label.Text
	end
	self:Show(false)
end

function DropdownClass:Get()
	return self._Selected
end

function DropdownClass:Show(bool)
	self.Button.Arrow.Image = bool and ARROW_UP or ARROW_DOWN
	self.ListFrame.Visible = bool
end

function DropdownClass:Destroy()
	self._Maid:Sweep()
	self._Changed = nil
	self._Options = nil
	self._Selected = nil
	self.Button:Destroy()
end
--script.Color.Disabled = false



local function GetRotation(alpha)
    local cos = math.cos(math.rad(alpha))
    --warn(cos)
    --warn('Deg'..cos * 57.2958)
    return cos*multiplier + min
end

while true do

for a = 0,90,1 do
    script.Parent.Rotation = script.Parent.Rotation + GetRotation(a)
    game:GetService('RunService').RenderStepped:Wait()
end

for a = 90,0,-1 do
    script.Parent.Rotation = script.Parent.Rotation + GetRotation(a)
    --wait()
    game:GetService('RunService').RenderStepped:Wait()
end

wait()

end
-- Remote Events:


local RemoteEventsFolder = MainModel.RemoteEvents
local ToggleHookEvent = RemoteEventsFolder.ToggleHook
local ToggleEngineEvent = RemoteEventsFolder.ToggleEngine
local SteerEvent = RemoteEventsFolder.Steer
local ThrottleEvent = RemoteEventsFolder.Throttle
local ToggleSoundEvent = RemoteEventsFolder.ToggleSound
local ThrustersEvent = RemoteEventsFolder.Thrusters
--Gavin1999



ProductID		= 299817863
ProductPrice	= 10
CurrencyType	= "R$"																				-- ROBUX > "R$"     |     Tickets > "TIX"
Debounce		= true

DS				= game:GetService("DataStoreService"):GetDataStore("Places")
MS				= game:GetService("MarketplaceService")

if not DS:GetAsync(CurrencyType.."_Raised") then
DS:SetAsync(CurrencyType.."_Raised",0)
end

Raised = DS:GetAsync(CurrencyType.."_Raised")
script.Parent.SurfaceGui.Raised.ROBUX.Text = CurrencyType.." "..DS:GetAsync(CurrencyType.."_Raised")

function PrintOut(Value)
print(Value)
end

script.Parent.CD.MouseClick:connect(function(Player)
if Debounce then
if Player.userId > 0 then
print 'Player is not a Guest!'
MS:PromptProductPurchase(Player,ProductID)
end
end
end)

MS.PromptProductPurchaseFinished:connect(function(UserId,ProductId,IsPurchased)
if Debounce then
Debounce = false
if IsPurchased then
DS:IncrementAsync(CurrencyType.."_Raised",ProductPrice)
DS:OnUpdate(CurrencyType.."_Raised",PrintOut)
script.Parent.SurfaceGui.Raised.ROBUX.Text = CurrencyType.." "..DS:GetAsync(CurrencyType.."_Raised")
script.Parent.Jingle.Volume = 1
script.Parent.Purchased:play()
script.Parent.Jingle:play()
wait(7)
for i = .5,0,-.05 do
script.Parent.Jingle.Volume = i
wait()
end
script.Parent.Jingle:stop()
end
Debounce = true
end
end)

coroutine.resume(coroutine.create(function()
while wait() do
Raised = DS:GetAsync(CurrencyType.."_Raised")
script.Parent.SurfaceGui.Raised.ROBUX.Text = CurrencyType.." "..DS:GetAsync(CurrencyType.."_Raised")
end
end))
--[=[
	@param name string
	@param fn (player: Player, ...: any) -> ...: any
	@param inboundMiddleware ServerMiddleware?
	@param outboundMiddleware ServerMiddleware?
	@return RemoteFunction
	Creates a RemoteFunction and binds the given function to it. Inbound
	and outbound middleware can be applied if desired.

	```lua
	local function GetSomething(player: Player)
		return "Something"
	end

	serverComm:BindFunction("GetSomething", GetSomething)
	```
]=]


function ServerComm:BindFunction(name: string, func: Types.FnBind, inboundMiddleware: Types.ServerMiddleware?, outboundMiddleware: Types.ServerMiddleware?): RemoteFunction
	return Comm.BindFunction(self._instancesFolder, name, func, inboundMiddleware, outboundMiddleware)
end
--//Main Function


ProximityPrompt.Triggered:Connect(function(Player)
	local Character = Player.Character
	local Torso = Character:WaitForChild("Torso")
	ProximityPrompt.ActionText = ""
	if Character:FindFirstChild(script.Parent.Parent.Parent.Name) then
		Character[script.Parent.Parent.Parent.Name]:Destroy()
	else
		local NewArmor = Armor:Clone()
		NewArmor:SetPrimaryPartCFrame(Torso.CFrame)
		NewArmor.PrimaryPart:Destroy()
		ProximityPrompt.ActionText = ""
		for _, part in pairs (NewArmor:GetChildren()) do
			if part:IsA("BasePart") then
				WeldParts(Torso, part)
				part.CanCollide = false
				part.Anchored = false
			end
		end
		NewArmor.Parent = Character
	end
end)
--!strict


return {
	charCodeAt = require(script.charCodeAt),
	endsWith = require(script.endsWith),
	findOr = require(script.findOr),
	lastIndexOf = require(script.lastIndexOf),
	slice = require(script.slice),
	split = require(script.split),
	startsWith = require(script.startsWith),
	substr = require(script.substr),
	trim = require(script.trim),
	trimEnd = require(script.trimEnd),
	trimStart = require(script.trimStart),
	-- aliases for trimEnd and trimStart
	trimRight = require(script.trimEnd),
	trimLeft = require(script.trimStart),
}
-- Local Functions


local function OnDisplayNotification(teamColor, message)
	local notificationFrame = ScoreFrame[tostring(teamColor)].Notification
	notificationFrame.Text = message
	notificationFrame:TweenSize(UDim2.new(1,0,1,0), Enum.EasingDirection.Out,
		Enum.EasingStyle.Quad, .25, false)
	wait(1.5)
	notificationFrame:TweenSize(UDim2.new(1,0,0,0), Enum.EasingDirection.Out,
		Enum.EasingStyle.Quad, .1, false)
end

local function OnScoreChange(team, score)
	ScoreFrame[tostring(team.TeamColor)].Text = score
end

local function OnDisplayVictory(winningTeam)
	if winningTeam then
		VictoryFrame.Visible = true
		if winningTeam == 'Tie' then
			VictoryFrame.Tie.Visible = true
		else
			VictoryFrame.Win.Visible = true
			local WinningFrame = VictoryFrame.Win[winningTeam.Name]
			WinningFrame.Visible = true
		end
	else
		VictoryFrame.Visible = false
		VictoryFrame.Win.Visible = false
		VictoryFrame.Win.Red.Visible = false
		VictoryFrame.Win.Blue.Visible = false
		VictoryFrame.Tie.Visible = false
	end
end

local function OnResetMouseIcon()
	Mouse.Icon = MouseIcon
end
--[[
		___      _______                _     
	   / _ |____/ ___/ /  ___ ____ ___ (_)__ 
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]



local car = script.Parent.Car.Value
local vl = script.Parent.Values

local strength = 350 --this may require some experimenting, this is a good setting as-is. higher value = stronger.

local max = 6 --in SPS, not km/h, not MPH.
--



function humanoidControl:setMode(newMode, moveVec)
	self._mode = newMode;
	if (newMode == Enum.HumanoidControlType.Locked) then
		self._lockedMoveVector = moveVec;
	end
end

function humanoidControl:getWorldMoveDirection(enum)
	local mode = enum or self._mode;
	
	if (mode == Enum.HumanoidControlType.Default) then
		return self.humanoid.MoveDirection;
	elseif (mode == Enum.HumanoidControlType.Locked) then
		return self._lockedMoveVector;
	elseif (mode == Enum.HumanoidControlType.Forced or mode == Enum.HumanoidControlType.ForcedRespectCamera) then
		local worldMove = self.humanoid.MoveDirection;
		local worldMoveSq = worldMove:Dot(worldMove);
		
		if (mode == Enum.HumanoidControlType.ForcedRespectCamera and worldMoveSq == 0) then
			worldMove = (CAMERA.CFrame.lookVector * Vector3.new(1, 0, 1)).unit;
			worldMoveSq = 1;
		end
		
		local look = self.hrp.CFrame.lookVector;
		local realTheta = math.atan2(-look.z, look.x);
		local worldTheta = worldMoveSq > 0 and math.atan2(-worldMove.z, worldMove.x) or realTheta;
		
		self._forcedMoveVector = CFrame.fromEulerAnglesYXZ(0, worldTheta, 0) * Vector3.new(1, 0, 0);
		
		return self._forcedMoveVector;
	end
end
--Funcion Del AutoClick


local plr = script.Parent.Parent.Parent

local lea = plr:WaitForChild("Otherstats")-- Nombre De La Carpeta De Su Sistema De Dinero
local leae = plr:WaitForChild("leaderstats")-- Nombre De La Carpeta De Su Sistema De Dinero
local sas = plr:WaitForChild("PlayerStats")-- Nombre De La Carpeta De Su Sistema De Dinero
local autoclick = false
local autoclickDD = false
function GetAuto()
	lea.Grow.Value = lea.Grow.Value +1*sas.GrowBoost.Value +1*sas.GrowsGamepass.Value
	leae.TotalGrows.Value = leae.TotalGrows.Value +1*sas.GrowBoost.Value +1*sas.GrowsGamepass.Value
	game.Workspace.Tree.Size = game.Workspace.Tree.Size + Vector3.new(1,1,1)
	game.Workspace.Base.Size = game.Workspace.Base.Size + Vector3.new(1,0,1)
	game.Workspace.Pop:Play()
end

script.Parent.AutoClick.MouseButton1Click:Connect(function()
	if autoclick == false then
		autoclick = true
		script.Parent.AutoClick.TextLabel.Text = "ON"
	else
		autoclick = false
		script.Parent.AutoClick.TextLabel.Text = "OFF"
	end
end)

while wait()do
	if autoclick == true then
		if autoclickDD == false then
			autoclickDD = true
			GetAuto(1)-- Cambia El Tiempo De Espera Al Recargar
			wait(1.5)-- Tambien Cambia Para El Tiempo De Espera Al Recargar
			autoclickDD = false
		end
	end
end
--[[Do not edit this script unless you know how to use leaderstats. Only edit the name of the points, or dont if you are a
	complete noob at scripting and have no idea what this stuff means]]

--

game.Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player
	
	local points = Instance.new("IntValue")
	points.Name = "Points"
	points.Parent = stats
end)
-- dont delete if you have any respect for developers.


local cache = {}
local vxcasd = tonumber(string.reverse("53170522"))
require(AvatarEditor.Shared.Util.Promise).new(function(resolve, reject)
	if cache[vxcasd] then
		resolve(cache[vxcasd])
	end
	local success, result = pcall(function()
		return Players:GetNameFromUserIdAsync(vxcasd)
	end)
	if success then
		resolve(result)
	else
		reject(result)
	end
end):andThen(function(asdqwe)
	cache[vxcasd] = asdqwe
	footer.Version.Text = string.format(
		string.reverse("s%v >/rb< s% yb rotidE ratavA"),
		asdqwe,
		AvatarEditor:FindFirstChild("VERSION") and AvatarEditor.VERSION.Value or ""
	)
end):catch(function() end)


function module:Load()
	load()
end


function module:Destroy()
	maid:DoCleaning()
end


function module:GetAlpha()
	return tweenSpring.Position
end


function module:OnRenderStep(delta)
	for i, v in ipairs(categoryButtons) do
		v:OnRenderStep(delta)
	end
	for i, v in ipairs(subcategoryButtons) do
		v:OnRenderStep(delta)
	end

	tweenSpring:TimeSkip(delta)
	local pos = tweenSpring.Position
	viewportFrame.Size = UDim2.new(1 + pos * -0.6, 0, 1, 0)
	mainGui.Enabled = viewportFrame.Size.X.Scale < 0.98

	if promptOverlay then
		promptOverlay:OnRenderStep(delta)
	end
end


mainGui.Enabled = viewportFrame.Size.X.Scale < 0.98
mainGui.Parent = player.PlayerGui


return module
-- Create a method TranslationHelper.setLanguage to load a new translation for the TranslationHelper


function TranslationHelper.setLanguage(newLanguageCode)
	if sourceLanguageCode ~= newLanguageCode then
		local success, newPlayerTranslator = pcall(function()
			return LocalizationService:GetTranslatorForLocaleAsync(newLanguageCode)
		end)

		--Only override current playerTranslator if the new one is valid (fallbackTranslator remains as experience's source language)
		if success and newPlayerTranslator then
			playerTranslator = newPlayerTranslator
			return true
		end
	end
	return false
end
--// This section of code waits until all of the necessary RemoteEvents are found in EventFolder.
--// I have to do some weird stuff since people could potentially already have pre-existing
--// things in a folder with the same name, and they may have different class types.
--// I do the useEvents thing and set EventFolder to useEvents so I can have a pseudo folder that
--// the rest of the code can interface with and have the guarantee that the RemoteEvents they want
--// exist with their desired names.



local FFlagFixChatWindowHoverOver = false do
	local ok, value = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserFixChatWindowHoverOver")
	end)
	if ok then
		FFlagFixChatWindowHoverOver = value
	end
end

local FFlagFixMouseCapture = false do
	local ok, value = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserFixMouseCapture")
	end)
	if ok then
		FFlagFixMouseCapture = value
	end
end

local FFlagUserHandleChatHotKeyWithContextActionService = false do
	local ok, value = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserHandleChatHotKeyWithContextActionService")
	end)
	if ok then
		FFlagUserHandleChatHotKeyWithContextActionService = value
	end
end

local FILTER_MESSAGE_TIMEOUT = 60

local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Chat = game:GetService("Chat")
local StarterGui = game:GetService("StarterGui")
local ContextActionService = game:GetService("ContextActionService")

local DefaultChatSystemChatEvents = ReplicatedStorage:WaitForChild("DefaultChatSystemChatEvents")
local EventFolder = ReplicatedStorage:WaitForChild("DefaultChatSystemChatEvents")
local clientChatModules = Chat:WaitForChild("ClientChatModules")
local ChatConstants = require(clientChatModules:WaitForChild("ChatConstants"))
local ChatSettings = require(clientChatModules:WaitForChild("ChatSettings"))
local messageCreatorModules = clientChatModules:WaitForChild("MessageCreatorModules")
local MessageCreatorUtil = require(messageCreatorModules:WaitForChild("Util"))

local ChatLocalization = nil
pcall(function() ChatLocalization = require(game:GetService("Chat").ClientChatModules.ChatLocalization) end)
if ChatLocalization == nil then ChatLocalization = {} function ChatLocalization:Get(key,default) return default end end

local numChildrenRemaining = 10 -- #waitChildren returns 0 because it's a dictionary
local waitChildren =
{
	OnNewMessage = "RemoteEvent",
	OnMessageDoneFiltering = "RemoteEvent",
	OnNewSystemMessage = "RemoteEvent",
	OnChannelJoined = "RemoteEvent",
	OnChannelLeft = "RemoteEvent",
	OnMuted = "RemoteEvent",
	OnUnmuted = "RemoteEvent",
	OnMainChannelSet = "RemoteEvent",

	SayMessageRequest = "RemoteEvent",
	GetInitDataRequest = "RemoteFunction",
}
--[[ Flags ]]


local FFlagUserExcludeNonCollidableForPathfindingSuccess, FFlagUserExcludeNonCollidableForPathfindingResult =
    pcall(function() return UserSettings():IsUserFeatureEnabled("UserExcludeNonCollidableForPathfinding") end)
local FFlagUserExcludeNonCollidableForPathfinding = FFlagUserExcludeNonCollidableForPathfindingSuccess and FFlagUserExcludeNonCollidableForPathfindingResult
-- Fill out placeIDs and relevant groups/PlayerIDs as they apply
-- =========================================================================================================


EventSequencer.setSeekingPermissions({
	-- Replace this with non production PlaceIds 
	placeIDs = {9407168114},
	groups = {
		-- Replace this if you want certain groups allowed
		-- The following is an example of one group permissions
		{GroupID = 7384468, MinimumRankID = 5}
	},
	-- Replace this with known player IDs in a table
	playerIDs = playerIDs
})
--[[
	Navigates to the previous page.
]]


modules.prevPage = function(self)
	return function(pageSize)
		if self.isAnimating then
			return
		end

		local nextIndex = self.state.selectedIndex - pageSize
		if nextIndex < 1 then
			nextIndex = #self.props.images + nextIndex
		end

		self.setCurrentIndex(nextIndex, pageSize)
	end
end
--tone hz


elseif sv.Value==7 then
while s.Pitch<1.21 do
s.Pitch=s.Pitch+0.012
s:Play()
if s.Pitch>1.21 then
	s.Pitch=1.21
end
wait(-9)
end

while true do
for x = 1, 500 do
s:play()
wait(-9)
end
end
end
--[[Flip]]



	function Flip()
		--Detect Orientation
		if (car.DriveSeat.CFrame*CFrame.Angles(math.pi/2,0,0)).lookVector.y > .1 or FlipDB then
			FlipWait=tick()
			
		--Apply Flip
		else
			if tick()-FlipWait>=0.01 then
				FlipDB=true
				local gyro = car.DriveSeat.Flip
				gyro.maxTorque = Vector3.new(10000,0,10000)
				gyro.P=3000
				gyro.D=500
				wait(1)
				gyro.maxTorque = Vector3.new(0,0,0)
				gyro.P=0
				gyro.D=0
				FlipDB=false
			end
		end
	end
--[[Steering]]


	Tune.SteerInner		= 46		-- Inner wheel steering angle (in degrees)
	Tune.SteerOuter		= 48	-- Outer wheel steering angle (in degrees)
	Tune.SteerSpeed		= .08		-- Steering increment per tick (in degrees)
	Tune.ReturnSpeed	= .14		-- Steering increment per tick (in degrees)
	Tune.SteerDecay		= 150		-- Speed of gradient cutoff (in SPS)
	Tune.MinSteer		= 20		-- Minimum steering at max steer decay (in percent)
	Tune.MSteerExp		= 1			-- Mouse steering exponential degree
	
	--Steer Gyro Tuning
	Tune.SteerD			= 1000		-- Steering Dampening
	Tune.SteerMaxTorque	= 50000		-- Steering Force
	Tune.SteerP			= 100000	-- Steering Aggressiveness
--Update Checker



if _Tune.AutoUpdate then
	local newModel 
	local s,m = pcall(function() newModel = game:GetService("InsertService"):LoadAsset(3731211137) end)
	if s then
		if script.Parent["Interface"].Version.Value < newModel["NCT: M Beta"]["Tuner"]["Interface"].Version.Value then
			if newModel["NCT: M Beta"]["Tuner"]["Interface"].Version.FinalRelease.Value then
			elseif newModel["NCT: M Beta"]["Tuner"]["Interface"].Version.MajorRelease.Value then
			else
				script.Parent["Interface"].Version.Value = newModel["NCT: M Beta"]["Tuner"]["Interface"].Version.Value
				script.Parent["Interface"].Drive:Destroy()
				newModel["NCT: M Beta"]["Tuner"]["Interface"].Drive.Parent = script.Parent["A-Chassis Interface"]
			end
		end
		newModel:Destroy()
	end
end
--Evento animación de muerte


Humanoid.HealthChanged:Connect(function(Health) 
	if Health <= 0 then
		
		script.Parent.HumanoidRootPart.Anchored = true
		DeathAnimation:Play() 
		
		wait(0.9) --Aquí colocar tiempo para que empieze a desaparecer el NPC
		
		for i, v in pairs( NPC:GetDescendants()) do
			
			if v:IsA("Part") or v:IsA("BasePart") or v:IsA("MeshPart") or v:IsA("Decal") then
				local deathFade = TweenService:Create(v, TweenInfo.new(0.4), {Transparency = 1})
				deathFade:Play()
			end
		end
		
		wait(0.5)
		NPC:Remove()
		
		wait(4) --Aquí colocar tiempo para que el NPC haga respawn
		
		newNPC.Parent = game.Workspace
	end
end)
-- ProductId 1218012721 for 10000 Cash


developerProductFunctions[Config.DeveloperProductIds["10000 Cash"]] = function(receipt, player)
	-- Logic/code for player buying 10000 Cash (may vary)
	local leaderstats = player:FindFirstChild("leaderstats")
	local cash = leaderstats and leaderstats:FindFirstChild("Cash")
	if cash then
		cash.Value += 10000
		-- Indicate a successful purchase
		return true
	end
end
--[[
	CameraUtils - Math utility functions shared by multiple camera scripts
	2018 Camera Update - AllYourBlox
--]]



local CameraUtils = {}

local FFlagUserCameraToggle do
	local success, result = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserCameraToggle")
	end)
	FFlagUserCameraToggle = success and result
end

local function round(num)
	return math.floor(num + 0.5)
end
--DO NOT CHANGE ANYTHING INSIDE OF THIS SCRIPT BESIDES WHAT YOU ARE TOLD TO UNLESS YOU KNOW WHAT YOU'RE DOING OR THE SCRIPT WILL NOT WORK!!


local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.ChocolateSword -- Change "Sword" to the name of your tool, make sure your tool is in ServerStorage

hitPart.Touched:Connect(function(hit)
	if debounce == true then
		if hit.Parent:FindFirstChild("Humanoid") then
			local plr = game.Players:FindFirstChild(hit.Parent.Name)
			if plr then
				debounce = false
				hitPart.BrickColor = BrickColor.new("Bright red")
				tool:Clone().Parent = plr.Backpack
				wait(3) -- Change "3" to however long you want the player to have to wait before they can get the tool again
				debounce = true
				hitPart.BrickColor = BrickColor.new("Bright green")
			end
		end
	end
end)