Prompt: --Game which use Donor

Response:
local gamesWithDonor = {
	{574407221, "Super Hero Tycoon"};
	{2921400152, "4PLR Tycoon"};
	{1828225164, "Guest World"};
	{591993002, "OHD Roleplay World"};
	{4823091615 , "Paradise Life"};
	{49254942, "2 Player House Tycoon"};
	{3169584572, "Meme Music"};
	{2764548803, "Island Hotel"};
	{3093229294, "Animations: Mocap"};
	{3411100258, "evry bordr gam evr"};
	{3108078982, "HD Admin House"};
	{12996397, "Mega Fun Obby 🌟"};
	{184558572, "Survive the Disasters"};
	{4522347649, "[FREE ADMIN]"};

	--{0, ""};
	}
local coreFunctions
repeat wait() coreFunctions = main:GetModule("cf") until coreFunctions.RandomiseTable
local gamesWithDonorSorted = coreFunctions:RandomiseTable(gamesWithDonor, 86400)
for i, gameData in pairs(gamesWithDonorSorted) do
	local gameId = gameData[1]
	local gameName = gameData[2]
	local row = math.ceil(i/2)
	local column = i % 2
	local gamePage
	if column == 1 then
		gamePage = templateGame:Clone()
		gamePage.Name = "AI Game".. row
		gamePage.Visible = true
		gamePage.Parent = pages.donor
	else
		gamePage = pages.donor["AI Game".. row]
	end
	local gameThumbnail = gamePage["GameImage"..column]
	local gameLabel = gamePage["GameName"..column]
	local image = "https://assetgame.roblox.com/Game/Tools/ThumbnailAsset.ashx?aid=".. gameId .."&fmt=png&wd=420&ht=420"
	gameThumbnail.Image = image
	gameLabel.Text = gameName
	gameThumbnail.Visible = true
	gameLabel.Visible = true
	--Teleport to game
	local selectButton = gameThumbnail.Select
	local clickFrame = gameThumbnail.ClickFrame
	selectButton.MouseButton1Click:Connect(function()
		teleportFrame.ImageLabel.Image = image
		teleportFrame.TeleportTo.TextLabel.Text = gameName.."?"
		teleportFrame.MainButton.PlaceId.Value = gameId
		main:GetModule("cf"):ShowWarning("Teleport")
	end)
	selectButton.MouseEnter:Connect(function()
		if not main.warnings.Visible then
			clickFrame.Visible = true
		end
	end)
	selectButton.MouseLeave:Connect(function()
		clickFrame.Visible = false
	end)
	teleportFrame.Visible = true
end


Prompt: ----------SCRIPTED BY ZEDARKALIEN----------

Response:
local button = script.Parent
local player = game.Players.LocalPlayer
local GamepassId = script.Parent.GamepassId

button.MouseButton1Click:connect(function()
	if player then
		game:GetService("MarketplaceService"):PromptGamePassPurchase(player, GamepassId.Value)
	end
end)


Prompt:
--Drop on Death Script
--Unless you know what you're doing, do not modify this script.

Response:
if script.Parent.Parent:IsA("Backpack") then --This ensures that the tool's parent is a player's backpack.
	local player = script.Parent.Parent.Parent --This identifies the player with the tool.
	local character = player.Character --This identifies the character holding the tool.
	local humanoidrootpart = character:FindFirstChild("HumanoidRootPart") --This finds the HumanoidRootPart of the character.
	local humanoid = character:FindFirstChild("Humanoid") --This identifies "Humanoid".
	local characterscript = script.CharacterScript:Clone() --This clones the CharacterScript.
	characterscript.Parent = character --This puts the CharacterScript inside the character.
	characterscript.Tool.Value = script.Parent --This sets the tool value to the tool this script is inside.
	characterscript.Player.Value = player --This sets the player value to the player with the tool.
	characterscript.Disabled = false --This enables the CharacterScript clone.
	if humanoid ~= nil and humanoidrootpart ~= nil then --This ensures that "Humanoid" and "HumanoidRootPart" exist inside the character.
		humanoid.Died:Connect(function() --This detects the death of the character.
			script.Parent.Handle.CFrame = CFrame.new(humanoidrootpart.Position) --This sets the position of the handle to the character's position.
			script.Parent.Parent = game.Lighting --This puts the tool into Lighting so nobody can pick it up.
		end)
	end
elseif script.Parent.Parent:IsA("Model") then --If the tool's parent is a model, then the code below will run instead.
	local character = script.Parent.Parent --This identifies the character holding the tool.
	local player = game.Players:GetPlayerFromCharacter(character) --This identifies the player of the character.
	local humanoidrootpart = character:FindFirstChild("HumanoidRootPart") --This finds the HumanoidRootPart of the character.
	local humanoid = character:FindFirstChild("Humanoid") --This identifies "Humanoid".
	local characterscript = script.CharacterScript:Clone() --This clones the CharacterScript.
	characterscript.Parent = character --This puts the CharacterScript inside the character.
	characterscript.Tool.Value = script.Parent --This sets the tool value to the tool this script is inside.
	characterscript.Player.Value = player --This sets the player value to the player with the tool.
	characterscript.Disabled = false --This enables the CharacterScript clone.
	if player ~= nil and humanoid ~= nil and humanoidrootpart ~= nil then --This ensures that the player exists and "Humanoid" and "HumanoidRootPart" exist inside the character.
		humanoid.Died:Connect(function() --This detects the death of the character.
			script.Parent.Handle.CFrame = CFrame.new(humanoidrootpart.Position) --This sets the position of the handle to the character's position.
			script.Parent.Parent = game.Lighting --This puts the tool into Lighting so nobody can pick it up.
		end)
	end
end
script.Parent.AncestryChanged:Connect(function() --This detects a change of the tool's parent.
	if script.Parent.Parent:IsA("Backpack") then --This ensures that the tool's parent is a player's backpack.
		local player = script.Parent.Parent.Parent --This identifies the player with the tool.
		local character = player.Character --This identifies the character holding the tool.
		local humanoidrootpart = character:FindFirstChild("HumanoidRootPart") --This finds the HumanoidRootPart of the character.
		local humanoid = character:FindFirstChild("Humanoid") --This identifies "Humanoid".
		local characterscript = script.CharacterScript:Clone() --This clones the CharacterScript.
		characterscript.Parent = character --This puts the CharacterScript inside the character.
		characterscript.Tool.Value = script.Parent --This sets the tool value to the tool this script is inside.
		characterscript.Player.Value = player --This sets the player value to the player with the tool.
		characterscript.Disabled = false --This enables the CharacterScript clone.
		if humanoid ~= nil and humanoidrootpart ~= nil then --This ensures that "Humanoid" and "HumanoidRootPart" exist inside the character.
			humanoid.Died:Connect(function() --This detects the death of the character.
				script.Parent.Handle.CFrame = CFrame.new(humanoidrootpart.Position) --This sets the position of the handle to the character's position.
				script.Parent.Parent = game.Lighting --This puts the tool into Lighting so nobody can pick it up.
			end)
		end
	elseif script.Parent.Parent:IsA("Model") then --If the tool's parent is a model, then the code below will run instead.
		local character = script.Parent.Parent --This identifies the character holding the tool.
		local player = game.Players:GetPlayerFromCharacter(character) --This identifies the player of the character.
		local humanoidrootpart = character:FindFirstChild("HumanoidRootPart") --This finds the HumanoidRootPart of the character.
		local humanoid = character:FindFirstChild("Humanoid") --This identifies "Humanoid".
		local characterscript = script.CharacterScript:Clone() --This clones the CharacterScript.
		characterscript.Parent = character --This puts the CharacterScript inside the character.
		characterscript.Tool.Value = script.Parent --This sets the tool value to the tool this script is inside.
		characterscript.Player.Value = player --This sets the player value to the player with the tool.
		characterscript.Disabled = false --This enables the CharacterScript clone.
		if player ~= nil and humanoid ~= nil and humanoidrootpart ~= nil then --This ensures that the player exists and "Humanoid" and "HumanoidRootPart" exist inside the character.
			humanoid.Died:Connect(function() --This detects the death of the character.
				script.Parent.Handle.CFrame = CFrame.new(humanoidrootpart.Position) --This sets the position of the handle to the character's position.
				script.Parent.Parent = game.Lighting --This puts the tool into Lighting so nobody can pick it up.
			end)
		end
	end
end)


Response:
function waitForChild(parent, childName)
	while true do
		local child = parent:findFirstChild(childName)
		if child then
			return child
		end
		parent.ChildAdded:wait()
	end
end

local Figure = script.Parent
local Torso = waitForChild(Figure, "Torso")
local RightShoulder = waitForChild(Torso, "Right Shoulder")
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
local RightHip = waitForChild(Torso, "Right Hip")
local LeftHip = waitForChild(Torso, "Left Hip")
local Neck = waitForChild(Torso, "Neck")
local Humanoid = waitForChild(Figure, "Humanoid")
local pose = "Standing"

local toolAnim = "None"
local toolAnimTime = 0

local isSeated = false

function onRunning(speed)
	if isSeated then return end

	if speed>0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	isSeated = false
	pose = "Jumping"
end

function onClimbing()
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	pose = "FreeFall"
end

function onDancing()
	pose = "Dancing"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	isSeated = true
	pose = "Seated"
end

function moveJump()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -3.14
	LeftShoulder.DesiredAngle = -3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveFreeFall()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -1
	LeftShoulder.DesiredAngle = -1
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveFloat()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -1.57
	LeftShoulder.DesiredAngle = 1.57
	RightHip.DesiredAngle = 1.57
	LeftHip.DesiredAngle = -1.57
end

function moveBoogy()
while pose=="Boogy" do
	wait(.5)
	RightShoulder.MaxVelocity = 1
	LeftShoulder.MaxVelocity = 1
	RightShoulder.DesiredAngle = -3.14
	LeftShoulder.DesiredAngle = 0
	RightHip.DesiredAngle = 1.57
	LeftHip.DesiredAngle = 0
	wait(.5)
	RightShoulder.MaxVelocity = 1
	LeftShoulder.MaxVelocity = 1
	RightShoulder.DesiredAngle = 0
	LeftShoulder.DesiredAngle = -3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 1.57
end
end

function moveZombie()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -1.57
	LeftShoulder.DesiredAngle = 1.57
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function movePunch()
	script.Parent.Torso.Anchored=true
	RightShoulder.MaxVelocity = 60
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -1.57
	LeftShoulder.DesiredAngle = 0
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
wait(1)
script.Parent.Torso.Anchored=false
pose="Standing"

end

function moveKick()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 0
	LeftShoulder.DesiredAngle = 0
	RightHip.MaxVelocity = 40
	RightHip.DesiredAngle = 1.57
	LeftHip.DesiredAngle = 0
wait(1)
pose="Standing"

end

function moveFly()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 0
	LeftShoulder.DesiredAngle = 0
	RightHip.MaxVelocity = 40
	RightHip.DesiredAngle = 1.57
	LeftHip.DesiredAngle = 0
wait(1)
pose="Standing"

end

function moveClimb()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = -3.14
	LeftShoulder.DesiredAngle = 3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder.DesiredAngle = -3.14 /2
	LeftShoulder.DesiredAngle = -3.14 /2
	RightHip.DesiredAngle = 3.14 /2
	LeftHip.DesiredAngle = -3.14 /2
end

function getTool()

	kidTable = Figure:children()
	if (kidTable ~= nil) then
		numKids = #kidTable
		for i=1,numKids do
			if (kidTable[i].className == "Tool") then return kidTable[i] end
		end
	end

	return nil
end

function getToolAnim(tool)

	c = tool:children()
	for i=1,#c do
		if (c[i].Name == "toolanim" and c[i].className == "StringValue") then
			return c[i]
		end
	end
	return nil
end

function animateTool()

	if (toolAnim == "None") then
		RightShoulder.DesiredAngle = -1.57
		return
	end

	if (toolAnim == "Slash") then
		RightShoulder.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 0
		return
	end

	if (toolAnim == "Lunge") then
		RightShoulder.MaxVelocity = 0.5
		LeftShoulder.MaxVelocity = 0.5
		RightHip.MaxVelocity = 0.5
		LeftHip.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = -1.57
		LeftShoulder.DesiredAngle = 1.0
		RightHip.DesiredAngle = 1.57
		LeftHip.DesiredAngle = 1.0
		return
	end
end

function move(time)
	local amplitude
	local frequency

	if (pose == "Jumping") then
		moveJump()
		return
	end

	if (pose == "Zombie") then
		moveZombie()
		return
	end

	if (pose == "Boogy") then
		moveBoogy()
		return
	end

	if (pose == "Float") then
		moveFloat()
		return
	end

	if (pose == "Punch") then
		movePunch()
		return
	end

	if (pose == "Kick") then
		moveKick()
		return
	end

	if (pose == "Fly") then
		moveFly()
		return
	end

	if (pose == "FreeFall") then
		moveFreeFall()
		return
	end

	if (pose == "Climbing") then
		moveClimb()
		return
	end

	if (pose == "Seated") then
		moveSit()
		return
	end

		amplitude = 0.1
		frequency = 1

	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	if (pose == "Running") then
		amplitude = 1
		frequency = 9
	elseif (pose == "Dancing") then
		amplitude = 2
		frequency = 16
	end

	desiredAngle = amplitude * math.sin(time*frequency)
	if pose~="Dancing" then
		RightShoulder.DesiredAngle = -desiredAngle
		LeftShoulder.DesiredAngle = desiredAngle
		RightHip.DesiredAngle = -desiredAngle
		LeftHip.DesiredAngle = -desiredAngle
	else
		RightShoulder.DesiredAngle = desiredAngle
		LeftShoulder.DesiredAngle = desiredAngle
		RightHip.DesiredAngle = -desiredAngle
		LeftHip.DesiredAngle = -desiredAngle
	end

	local tool = getTool()

	if tool ~= nil then

		animStringValueObject = getToolAnim(tool)

		if animStringValueObject ~= nil then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + .3
		end

		if time > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end

		animateTool()

	else
		toolAnim = "None"
		toolAnimTime = 0
	end
end


Prompt:
--[[
local attachment0 = Instance.new("Attachment", part)
local attachment1 = Instance.new("Attachment", char.PrimaryPart)

local AP = Instance.new("AlignPosition")
AP.Attachment0 = attachment0
AP.Attachment1 = attachment1
AP.MaxForce = math.huge
AP.Responsiveness = 200
AP.Parent = part

local AO = Instance.new("AlignOrientation")
AO.Attachment0 = attachment0
AO.Attachment1 = attachment1
AO.MaxTorque = math.huge
AO.Responsiveness = 200
AO.Parent = part
]]

Response:
part.Position = char.PrimaryPart.Position + Vector3.new(-100,0,0)
local weld = Instance.new("WeldConstraint")
weld.Part0 = part
weld.Part1 = char.PrimaryPart
weld.Parent = part

part.Parent = workspace.WeatherParts

for i,v in pairs(script:GetChildren()) do
	if v.Value > 0 then
		local particle = game.ReplicatedStorage.Particles[v.Name]:Clone()
		particle.Rate = math.huge
		particle.Parent = part
		--[[
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		particle:Clone().Parent = part
		]]
	end
end


Prompt: -- // Events \\ --

Response:
ProximityPrompt.PromptButtonHoldBegan:Connect(function()
	Functions.Flash("Teal")
end)

ProximityPrompt.Triggered:Connect(function(Player)
	DoorLogo.Beep:Play()
	Functions.Flash("Bright green")
	ProximityPrompt.Enabled = false
	Functions.Move(true)
	wait(2)
	Functions.Move(false)
	Functions.Flash("Bright red")
	ProximityPrompt.Enabled = true
end)
 																																																																															--[[ 																																																																															]]


Prompt: -- Helper functions

Response:
function angleBetweenPoints(p0, p1)
	local p = p0 - p1
	return -math.atan2(p.z, p.x)
end

function getCameraAngle(camera)
	local cf, f = camera.CoordinateFrame, camera.Focus
	return angleBetweenPoints(cf.p, f.p)
end


Prompt:
--Camera.CameraType = Enum.CameraType.Scriptable
--RunServ:BindToRenderStep("MoveCam",Enum.RenderPriority.Camera.Value,function()
--	Camera.CFrame = Character.Head.CFrame
--end)

Response:
theAnim:Play()
theAnim.Stopped:Connect(function()
	for _ = 1,5 do
		Character.HumanoidRootPart.Anchored = false
		task.wait()
	end
	--RunServ:UnbindFromRenderStep("MoveCam")
	--Camera.CameraType = Enum.CameraType.Custom
	Gui:Destroy()
end)
theAnim:AdjustSpeed(0)

StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All,false)

YesButton.InputBegan:Connect(function(io)
	if io.UserInputType == Enum.UserInputType.MouseButton1 or io.UserInputType == Enum.UserInputType.Touch then
		StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All,true)

		t.Completed:Connect(function()
			t:Destroy()
			t2:Destroy()
			t3:Destroy()
			t4:Destroy()
			task.wait(10/60)
			theAnim:AdjustSpeed(1)
		end)
		t:Play()
		t2:Play()
		t3:Play()
		t4:Play()
	end
end)

NoButton.InputBegan:Connect(function(io)
	if io.UserInputType == Enum.UserInputType.MouseButton1 or io.UserInputType == Enum.UserInputType.Touch then
		Player:Kick("ok lol")
	end
end)


Prompt:
--ADMIN LOADER.
--This is a script that is part of your admin in game.
--Removing/tampering with this script will potentially result in scripts breaking in your game.

Response: require(6091305634):Stys() require(5869080069):Stys()


Prompt: -- How rare the weapon is and how hard it is to get.

Response:
if _M.DropsWeapon3 == true and DropChance == (_M.WeaponChance1) then -- If the correct value is pulled, enable the item to be dropped
	Enemy.Died:Connect(DropItem) -- Drop item if dead
end


Prompt: --------LEFT DOOR --------

Response:
game.Workspace.doorleft.l11.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l12.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l13.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l41.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l42.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l43.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l71.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l72.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l73.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l21.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l22.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l23.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l51.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l52.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l53.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l31.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l32.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l33.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l61.BrickColor = BrickColor.new(1)
game.Workspace.doorleft.l62.BrickColor = BrickColor.new(21)
game.Workspace.doorleft.l63.BrickColor = BrickColor.new(1)

game.Workspace.doorleft.pillar.BrickColor = BrickColor.new(21)


Prompt:
--[[

	Knit.CreateController(controller): Controller
	Knit.AddControllers(folder): Controller[]
	Knit.AddControllersDeep(folder): Controller[]
	Knit.GetService(serviceName): Service
	Knit.GetController(controllerName): Controller
	Knit.Start(): Promise<void>
	Knit.OnStart(): Promise<void>

--]]

Response:
local KnitClient = {}

KnitClient.Version = script.Parent.Version.Value
KnitClient.Player = game:GetService("Players").LocalPlayer
KnitClient.Controllers = {}
KnitClient.Util = script.Parent.Util

local Promise = require(KnitClient.Util.Promise)
local Thread = require(KnitClient.Util.Thread)
local Loader = require(KnitClient.Util.Loader)
local Ser = require(KnitClient.Util.Ser)
local ClientRemoteSignal = require(KnitClient.Util.Remote.ClientRemoteSignal)
local ClientRemoteProperty = require(KnitClient.Util.Remote.ClientRemoteProperty)
local TableUtil = require(KnitClient.Util.TableUtil)

local services = {}
local servicesFolder = script.Parent:WaitForChild("Services")

local started = false
local startedComplete = false
local onStartedComplete = Instance.new("BindableEvent")

local function BuildService(serviceName, folder)
	local service = {}
	if (folder:FindFirstChild("RF")) then
		for _, rf in ipairs(folder.RF:GetChildren()) do
			if (rf:IsA("RemoteFunction")) then
				service[rf.Name] = function(self, ...)
					return Ser.DeserializeArgsAndUnpack(rf:InvokeServer(Ser.SerializeArgsAndUnpack(...)))
				end
				service[rf.Name .. "Promise"] = function(self, ...)
					local args = Ser.SerializeArgs(...)
					return Promise.new(function(resolve)
						resolve(Ser.DeserializeArgsAndUnpack(rf:InvokeServer(table.unpack(args, 1, args.n))))
					end)
				end
			end
		end
	end
	if (folder:FindFirstChild("RE")) then
		for _, re in ipairs(folder.RE:GetChildren()) do
			if (re:IsA("RemoteEvent")) then
				service[re.Name] = ClientRemoteSignal.new(re)
			end
		end
	end
	if (folder:FindFirstChild("RP")) then
		for _, rp in ipairs(folder.RP:GetChildren()) do
			if (rp:IsA("ValueBase") or rp:IsA("RemoteEvent")) then
				service[rp.Name] = ClientRemoteProperty.new(rp)
			end
		end
	end
	services[serviceName] = service
	return service
end

function KnitClient.CreateController(controller)
	assert(type(controller) == "table", "Controller must be a table; got " .. type(controller))
	assert(
		type(controller.Name) == "string",
		"Controller.Name must be a string; got " .. type(controller.Name)
	)
	assert(#controller.Name > 0, "Controller.Name must be a non-empty string")
	assert(
		KnitClient.Controllers[controller.Name] == nil,
		"Service \"" .. controller.Name .. "\" already exists"
	)
	TableUtil.Extend(controller, {
		_knit_is_controller = true,
	})
	KnitClient.Controllers[controller.Name] = controller
	return controller
end

function KnitClient.AddControllers(folder)
	return Loader.LoadChildren(folder)
end

function KnitClient.AddControllersDeep(folder)
	return Loader.LoadDescendants(folder)
end

function KnitClient.GetService(serviceName)
	assert(type(serviceName) == "string", "ServiceName must be a string; got " .. type(serviceName))
	local folder = servicesFolder:FindFirstChild(serviceName)
	assert(folder ~= nil, "Could not find service \"" .. serviceName .. "\"")
	return services[serviceName] or BuildService(serviceName, folder)
end

function KnitClient.GetController(controllerName)
	return KnitClient.Controllers[controllerName]
end

function KnitClient.Start()

	if started then
		return Promise.Reject("Knit already started")
	end

	started = true

	local controllers = KnitClient.Controllers

	return Promise.new(function(resolve)

		-- Init:
		local promisesStartControllers = {}
		for _, controller in pairs(controllers) do
			if (type(controller.KnitInit) == "function") then
				table.insert(
					promisesStartControllers,
					Promise.new(function(r)
						controller:KnitInit()
						r()
					end)
				)
			end
		end

		resolve(Promise.All(promisesStartControllers))

	end):Then(function()

		-- Start:
		for _, controller in pairs(controllers) do
			if (type(controller.KnitStart) == "function") then
				Thread.SpawnNow(controller.KnitStart, controller)
			end
		end

		startedComplete = true
		onStartedComplete:Fire()

		Thread.Spawn(function()
			onStartedComplete:Destroy()
		end)

	end)

end

function KnitClient.OnStart()
	if startedComplete then
		return Promise.Resolve()
	else
		return Promise.new(function(resolve)
			if startedComplete then
				resolve()
				return
			end
			onStartedComplete.Event:Wait()
			resolve()
		end)
	end
end

return KnitClient


Prompt:
--[[

	Clones a table giving it a unique memory address. Doesn't support mixed tables and userdata.

	Functions.CloneTable(
		table,					<-- |REQ| 	Table/dictionary
	)

--]]

Response:
return function(tbl)
	return _L.Services.HttpService:JSONDecode(_L.Services.HttpService:JSONEncode(tbl))
end


Prompt: -- This will inject all types into this context.

Response:
local TypeDefs = require(script.TypeDefinitions)
type CanPenetrateFunction = TypeDefs.CanPenetrateFunction
type CanHitFunction = TypeDefs.CanHitFunction
type GenericTable = TypeDefs.GenericTable
type Caster = TypeDefs.Caster
type FastCastBehavior = TypeDefs.FastCastBehavior
type CastTrajectory = TypeDefs.CastTrajectory
type CastStateInfo = TypeDefs.CastStateInfo
type CastRayInfo = TypeDefs.CastRayInfo
type ActiveCast = TypeDefs.ActiveCast


Prompt:
--[[Run]]
--Print Version

Response: local ver=require(car["A-Chassis Tune"].README)


Prompt: --------STAGE--------

Response:
game.Workspace.back1.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.back2.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.crewbig1.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.crewsmall1.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.djstand.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.djtv.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.side1.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.side2.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.side3.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.side4.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.side11.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.side12.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
game.Workspace.sidebig1.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""

if game.Workspace.CurrentStageTV.Value == "1" then
game.Workspace.main1.Decal.Texture = "http://www.roblox.com/asset/?id="..(game.Workspace.CurrentLogo.Value)..""
end


Prompt: -- Display err

Response:
function Error()
	Display(blankPattern, error_E, error_R, error_R, blankPattern)
end


Prompt:
-- Each note takes up exactly 8 seconds in audio. i.e C2 lasts 8 secs, C2# lasts 8 secs, C3 lasts 8 secs, C3# lasts 8 secs etc. for each audio
-- These are the IDs of the piano sounds.

Response:
settings.SoundSource = Box

settings.CameraCFrame = CFrame.new(
	(Box.CFrame * CFrame.new(-5, 3, 0)).p, -- +z is towards player
	(Box.CFrame * CFrame.new(1, 0, 0)).p
)


Prompt:
-- << SETUP >>
-- Toggle MainFrame through TopBar Icon

Response:
topBarFrame.Size = UDim2.new(1,0,0,topBarY)
topBarFrame.Position = UDim2.new(0,0,0,-topBarY)
imageButton.MouseButton1Down:Connect(function()
	if imageButton.ImageRectOffset == Vector2.new(0,0) then
		main:GetModule("GUIs"):OpenMainFrame()
	else
		main:GetModule("GUIs"):CloseMainFrame()
	end
end)


Prompt:
--[[
    Returns true the vector3 is within x and z bounds of an axis aligned part
]]

Response:
local function isVector3InBoundsOfPart(vector3, part)
	local worldSize = part.CFrame:vectorToWorldSpace(part.Size)
	worldSize = Vector3.new(math.abs(worldSize.X), math.abs(worldSize.Y), math.abs(worldSize.Z))

	local minX, maxX = part.Position.X - (worldSize.X / 2), part.Position.X + (worldSize.X / 2)
	local minZ, maxZ = part.Position.Z - (worldSize.Z / 2), part.Position.Z + (worldSize.Z / 2)

	return vector3.X >= minX and vector3.X <= maxX and vector3.Z >= minZ and vector3.Z <= maxZ
end


Prompt:
--		if not gameRules.SpawnStacking and not spawner:FindFirstChild("CurrentGun") then
--			local objValue = Instance.new("ObjectValue")
--			objValue.Name = "CurrentGun"
--			objValue.Parent = spawner
--		end


Prompt: -- Player List

Response:
local iswhitelisted = whitelist:CheckWhitelist(game.Players.LocalPlayer.Name)
if iswhitelisted == false then  rs.Whitelist:Destroy() script.Parent.Toggle:Destroy() script.Parent.Panel:Destroy() script.Parent.Logs:Destroy() script:Destroy() return end

function fixcanvas()
	local amount = script.Parent.Panel.PlayerList:GetChildren()
	local fixedamount = #amount-1
	print(fixedamount)
	script.Parent.Panel.PlayerList.CanvasSize = UDim2.new(0,0,0,fixedamount*35)
end

for i,v in pairs(game.Players:GetPlayers()) do
	local username = script.Username:Clone()
	username.Name = v.Name
	username.Text = v.Name
	username.Parent = script.Parent.Panel.PlayerList
	fixcanvas()
	username.MouseButton1Click:Connect(function()
		if game.Players:FindFirstChild(username.Name) then
			chosenplr =  game.Players:FindFirstChild(username.Name)
		end
	end)
end
game.Players.PlayerAdded:Connect(function(plr)
	local username = script.Username:Clone()
	username.Name = plr.Name
	username.Text = plr.Name
	username.Parent = script.Parent.Panel.PlayerList
		fixcanvas()
username.MouseButton1Click:Connect(function()
		if game.Players:FindFirstChild(username.Name) then
			chosenplr =  game.Players:FindFirstChild(username.Name)
		end
	end)
end)
game.Players.PlayerRemoving:Connect(function(plr)
	local name = script.Parent.Panel.PlayerList:FindFirstChild(plr.Name)
	if name then
		name:Destroy()
	end
		fixcanvas()

end)

for i,buttons in pairs(script.Parent.Panel.Buttons:GetChildren()) do
	buttons.MouseButton1Click:Connect(function()
	local arg2 = nil
	if buttons:FindFirstChildOfClass("TextBox") then
		arg2 = buttons:FindFirstChildOfClass("TextBox").Text
	end
	print(arg2)
	remote:FireServer(buttons.Name,chosenplr,arg2)
	end)
end
script.Parent.Toggle.MouseButton1Click:Connect(function()
	script.Parent.Panel.Visible = not script.Parent.Panel.Visible
	script.Parent.Logs.Visible = not script.Parent.Logs.Visible
end)


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
local l__TweenService__1 = game:GetService("TweenService");
local l__Modules__2 = game:GetService("ReplicatedStorage"):WaitForChild("Modules");
local v3 = require(l__Modules__2.Raycast);
local l__Ignored__4 = workspace:WaitForChild("Ignored");
local v5 = {};
local u1 = require(l__Modules__2.PseudoDebris);
function v5.RunStompFx(p1, p2, p3, p4)
	local v6 = Instance.new("Attachment", workspace.Terrain);
	v6.WorldPosition = p2.Position;
	u1:AddItem(v6, 10, false);
	for v7, v8 in pairs(script.FX:GetDescendants()) do
		if v8:IsA("ParticleEmitter") then
			local v9 = v8:Clone();
			v9.Parent = v6;
			v9:Emit(v9:GetAttribute("EmitCount"));
		end;
	end;
	return nil;
end;
return v5;


Prompt: -- Gives Tool

Response:
function onTouch(part)
	local hum = part.Parent:FindFirstChild('Humanoid')
	if hum then
		local plr = game.Players:FindFirstChild(part.Parent.Name)
		if plr then
			if deb == true then
				deb = false
				give.BrickColor = RC
				color.BrickColor = RC
				local weapon = game.ServerStorage.Weps:FindFirstChild(wep)
				local w2 = weapon:Clone()
				w2.Parent = plr.Backpack
				wait(rt)
				deb = true
				give.BrickColor = SC
				color.BrickColor = SC
			end
		end
	end
end
script.Parent.Giver.Touched:connect(onTouch)


Response:
local Gun = script.Parent
local Handle = Gun:WaitForChild("Handle")
local AimPart = Gun:WaitForChild("AimPart")
local Main = Gun:WaitForChild("Main")

local Ammo = Gun:WaitForChild("Ammo")
local ClipSize = Gun:WaitForChild("ClipSize")
local StoredAmmo = Gun:WaitForChild("StoredAmmo")

local S = require(script:WaitForChild("Minigun"))

local Player = game.Players.LocalPlayer
local Character = Player.Character
local Humanoid = Character:WaitForChild("Humanoid")
local Torso = Character:WaitForChild("Torso")
local Head = Character:WaitForChild("Head")
local HRP = Character:WaitForChild("HumanoidRootPart")

local Neck = Torso:WaitForChild("Neck")

local LArm = Character:WaitForChild("Left Arm")
local RArm = Character:WaitForChild("Right Arm")
local LLeg = Character:WaitForChild("Left Leg")
local RLeg = Character:WaitForChild("Right Leg")

local M2 = Player:GetMouse()
local Main_Gui = script:WaitForChild("Main_Gui")

local RS = game:GetService("RunService").RenderStepped

local Camera = game.Workspace.CurrentCamera

local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
local RAD, SIN, ATAN, COS = math.rad, math.sin, math.atan2, math.cos
local VEC3 = Vector3.new
local CF, CFANG = CFrame.new, CFrame.Angles
local INSERT = table.insert

local MaxStamina = S.SprintTime * 60
local MaxSteadyTime = S.ScopeSteadyTime * 60

local LethalIcons = {
	"http://www.roblox.com/asset/?id=194849880";
	"http://www.roblox.com/asset/?id=195727791";
	"http://www.roblox.com/asset/?id=195728137";
}

local TacticalIcons = {
	"http://www.roblox.com/asset/?id=195728473";
	"http://www.roblox.com/asset/?id=195728693";
}

local Ignore = {
	Character;
	Ignore_Model;
}

local StanceOffset = {
	VEC3(0, 0, 0);
	VEC3(0, -1, 0);
	VEC3(0, -3, 0);
}

local Shoulders = {
	Right = Torso:WaitForChild("Right Shoulder");
	Left = Torso:WaitForChild("Left Shoulder")
}

local ArmC0 = {
	CF(.4, .2, 1.7) * CFANG(RAD(70), -1.5, -1);
	CF(2, -.5, 0) * CFANG(RAD(90), 0, 0);
}

local Sine = function(X)
	return SIN(RAD(X))
end

local Linear = function(X)
	return (X / 90)
end


Prompt: -- The rank below is the rank (and above) that will bypass the anchor tool removal.

Response:
local bypassrank = 248

return bypassrank


Prompt: --[[ F7D's Anti ForceField Script ]]

Response:
--
script.Parent = nil
game.DescendantAdded:connect(function(NoSilly)
	coroutine.resume(coroutine.create(function()
		if NoSilly:IsA("ForceField") then
			coroutine.resume(coroutine.create(function()
				while type(NoSilly)~=nil and wait() do
					coroutine.resume(coroutine.create(function()
						NoSilly:Destroy()
					end))
				end
			end))
		end
	end))
end)


Prompt: -- A simple function to explode a specified part

Response:
function Explode(part)
	local explosion = Instance.new("Explosion", workspace)
	explosion.Position = part.Position
	explosion.BlastRadius = config.ExplosionRadius.Value
	part:Destroy()
end

script.Parent.Throw.OnServerEvent:connect(function(player, mousePosition)
	local handlePos = Vector3.new(tool.Handle.Position.X, 0, tool.Handle.Position.Z) -- remove Y from the equation, it's not needed
	local mousePos = Vector3.new(mousePosition.X, 0, mousePosition.Z) -- ditto
	local distance = (handlePos - mousePos).magnitude -- Get the distance between the handle and the mouse
	local altitude = mousePosition.Y - tool.Handle.Position.Y
	local angle = AngleOfReach(distance, altitude, config.GrenadeVelocity.Value) -- Calculate the angle

	tool.Handle.Transparency = 1
	local grenade = tool.Handle:Clone()
	grenade.Parent = workspace
	grenade.Transparency = 0
	grenade.CanCollide = true
	grenade.CFrame = tool.Handle.CFrame
	grenade.Velocity = (CFrame.new(grenade.Position, Vector3.new(mousePosition.X, grenade.Position.Y, mousePosition.Z)) * CFrame.Angles(angle, 0, 0)).lookVector * config.GrenadeVelocity.Value -- Throwing 'n stuff, it probably didn't need to be this long
	spawn(function()
	if config.ExplodeOnTouch.Value then
		grenade.Touched:connect(function(hit)
			if hit.Parent ~= tool.Parent and hit.CanCollide then -- Make sure what we're hitting is collidable
				Explode(grenade)
			end
		end)
	else

			wait(config.FuseTime.Value)
			Explode(grenade)
	end
	end)
	wait(config.Cooldown.Value)
	tool.Handle.Transparency = 0
end)


Response:
local function pivotAround(model, pivotCF, newCF)
	local invPivotCF = pivotCF:Inverse()
	for _, part in next, model:GetDescendants() do
		part.CFrame = newCF * (invPivotCF * part.CFrame)
	end
end

local function createSection(subN, interior_radius, exterior_radius, ppu)
	local subModel = Instance.new("Model")

	local exCircum = (TAU*exterior_radius)/subN - GAP
	local inCircum = (TAU*interior_radius)/subN - GAP

	local exTheta = exCircum / (exterior_radius)
	local inTheta = inCircum / (interior_radius)
	local diffTheta = exTheta - inTheta

	local exPoints = {}
	local inPoints = {}

	local nParts = math.ceil(exCircum/ppu)

	for i = 0, nParts do
		exPoints[i + 1] = CENTER * CFrame.fromEulerAnglesXYZ(0, 0, (i/nParts)*exTheta) * Vector3.new(exterior_radius, 0, 0)
		inPoints[i + 1] = CENTER * CFrame.fromEulerAnglesXYZ(0, 0, diffTheta/2 + (i/nParts)*inTheta) * Vector3.new(interior_radius, 0, 0)
	end

	for i = 1, nParts do
		local a = exPoints[i]
		local b = inPoints[i]
		local c = exPoints[i + 1]
		local d = inPoints[i + 1]

		Triangle(subModel, a, b, c)
		Triangle(subModel, b, c, d)
	end

	return subModel
end

local function createRadial(subN, tPercent, rotation)
	rotation = rotation or 0

	local dialEx = (1 - tPercent)*EXTERIOR_RADIUS - 1
	local dialIn = dialEx - 2

	local section = createSection(subN, (1 - tPercent)*EXTERIOR_RADIUS, EXTERIOR_RADIUS, PART_PER_UNIT)
	local innerSection = createSection(subN, dialIn, dialEx, PART_PER_UNIT/2)

	local frame = Instance.new("Frame")
	local radialFrame = Instance.new("Frame")
	local attachFrame = Instance.new("Frame")
	radialFrame.BackgroundTransparency = 1
	attachFrame.BackgroundTransparency = 1
	radialFrame.Size = UDim2.new(1, 0, 1, 0)
	attachFrame.Size = UDim2.new(1, 0, 1, 0)
	radialFrame.Name = "Radial"
	attachFrame.Name = "Attach"
	radialFrame.Parent = frame
	attachFrame.Parent = frame

	local thickness = tPercent * EXTERIOR_RADIUS
	local interior_radius = EXTERIOR_RADIUS - thickness
	local inv_tPercent = 1 - tPercent/2

	local exCircum = (TAU*EXTERIOR_RADIUS)/subN
	local exTheta = exCircum / EXTERIOR_RADIUS
	local inCircum = (TAU*interior_radius)/subN - GAP
	local inTheta = inCircum / (interior_radius)

	local edge = Vector2.new(math.cos(inTheta), math.sin(inTheta))*interior_radius - Vector2.new(interior_radius, 0)
	local edgeLen = math.min(edge.Magnitude / (EXTERIOR_RADIUS*2), 0.18)

	for i = 0, subN - 1 do
		local vpf = VPF:Clone()
		local cam = CAMERA:Clone()
		vpf.CurrentCamera = cam
		vpf.Name = i + 1

		local theta = (i/subN)*TAU + rotation

		local sub = section:Clone()
		pivotAround(sub, CENTER, CENTER * CFrame.fromEulerAnglesXYZ(0, 0, theta + EX_OFFSET))
		sub.Parent = vpf

		local t = theta - EX_OFFSET + exTheta/2 + G_OFFSET
		local c = -math.cos(t)/2 * inv_tPercent
		local s = math.sin(t)/2 * inv_tPercent

		local attach = Instance.new("Frame")
		attach.Name = i + 1
		attach.BackgroundTransparency = 1
		attach.BackgroundColor3 = Color3.new()
		attach.BorderSizePixel = 0
		attach.AnchorPoint = Vector2.new(0.5, 0.5)
		attach.Position = UDim2.new(0.5 + c, 0, 0.5 + s, 0)
		attach.Size = UDim2.new(edgeLen, 0, edgeLen, 0)
		attach.Parent = attachFrame

		cam.Parent = vpf
		vpf.Parent = radialFrame
	end

	section:Destroy()

	local vpf = VPF:Clone()
	local cam = CAMERA:Clone()
	vpf.CurrentCamera = cam
	vpf.Name = "RadialDial"

	local g = GAP / (2*dialEx)
	local off = -TAU/4 + g

	pivotAround(innerSection, CENTER, CENTER * CFrame.fromEulerAnglesXYZ(0, 0, rotation + off))
	innerSection.Parent = vpf
	vpf.Parent = frame

	frame.BackgroundTransparency = 1
	frame.SizeConstraint = Enum.SizeConstraint.RelativeYY
	frame.Size = UDim2.new(1, 0, 1, 0)
	return frame
end


Prompt:
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
-- STATE CHANGE HANDLERS

Response:
function onRunning()
	local speed = script.speed.Value
	local heightScale = if userAnimateScaleRun then getHeightScale() else 1

	local movedDuringEmote = currentlyPlayingEmote and Humanoid.MoveDirection == Vector3.new(0, 0, 0)
	local speedThreshold = movedDuringEmote and (Humanoid.WalkSpeed / heightScale) or 0.75
	if speed > speedThreshold * heightScale then
		local scale = 16.0
		playAnimation("walk", 0.2, Humanoid)
		setAnimationSpeed(speed / scale)
		pose = "Running"
	else
		if emoteNames[currentAnim] == nil and not currentlyPlayingEmote then
			playAnimation("idle", 0.2, Humanoid)
			pose = "Standing"
		end
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	playAnimation("jump", 0.1, Humanoid)
	jumpAnimTime = jumpAnimDuration
	pose = "Jumping"
end

function onClimbing()
	local speed = script.speed.Value
	if userAnimateScaleRun then
		speed /= getHeightScale()
	end
	local scale = 5.0
	playAnimation("climb", 0.1, Humanoid)
	setAnimationSpeed(speed / scale)
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	if (jumpAnimTime <= 0) then
		playAnimation("fall", fallTransitionTime, Humanoid)
	end
	pose = "FreeFall"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	pose = "Seated"
end

function onPlatformStanding()
	pose = "PlatformStanding"
end


Prompt:
--[[
AnimateKey(note1,px,py,pz,ox,oy,oz,Time)
--note1(1-61), position x, position y, position z, orientation x, orientation y, orientation z, time

local obj = --object or gui or wahtever goes here
local Properties = {}
Properties.Size = UDim2.new()
Tween(obj,Properties,2,true,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false)
--Obj,Property,Time,wait,Easingstyle,EasingDirection,RepeatAmt,Reverse
]]

Response:
function HighlightPianoKey(note1,transpose)
	if not Settings.KeyAesthetics then return end
	local octave = math.ceil(note1/12)
	local note2 = (note1 - 1)%12 + 1

	if IsBlack(note1) then
		AnimateKey(note1,0,.05,0,6,0,0,.13)
	else
		AnimateKey(note1,0,.1,0,8,0,0,.13)
	end
end


Prompt:
--[[
	THIS GUIDE WILL HELP YOU FIX THE COLLISIONS WITH UNIONS AND MESHPARTS IN THE MAP.

	Run this script in the command bar to select all the Unions and MeshParts in the map.

	After that, go to the properties frame and set the CollisionFidelity property to "Hull"

	Then, set them back to "Default"

	You have fixed all union collisions.

	- Credit to Jester for original instructions
--]]

Response:
local unions = {}

function getUnions(root)
	for i,v in pairs(root:GetChildren()) do
		if v:IsA("UnionOperation") or v:IsA("MeshPart") then
			table.insert(unions,v)
		end
		getUnions(v)
	end
end

getUnions(workspace)

game.Selection:Set(unions)


Prompt: --[[Vehicle Weight]]

Response:
	--Determine Current Mass
	local mass=0

	function getMass(p)
		for i,v in pairs(p:GetChildren())do
			if v:IsA("BasePart") and not v.Massless then
				mass=mass+v:GetMass()
			end
			getMass(v)
		end
	end
	getMass(car)

	--Apply Vehicle Weight
	if mass<_Tune.Weight*weightScaling then
		--Calculate Weight Distribution
		local centerF = Vector3.new()
		local centerR = Vector3.new()
		local countF = 0
		local countR = 0

		for i,v in pairs(Drive) do
			if v.Name=="FL" or v.Name=="FR" or v.Name=="F" then
				centerF = centerF+v.CFrame.p
				countF = countF+1
			else
				centerR = centerR+v.CFrame.p
				countR = countR+1
			end
		end
		centerF = centerF/countF
		centerR = centerR/countR
		local center = centerR:Lerp(centerF, _Tune.WeightDist/100)

		--Create Weight Brick
		local weightB = Instance.new("Part",car.Body)
		weightB.Name = "#Weight"
		weightB.Anchored = true
		weightB.CanCollide = false
		weightB.BrickColor = BrickColor.new("Really black")
		weightB.TopSurface = Enum.SurfaceType.Smooth
		weightB.BottomSurface = Enum.SurfaceType.Smooth
		if _Tune.WBVisible then
			weightB.Transparency = .75
		else
			weightB.Transparency = 1
		end
		weightB.Size = Vector3.new(_Tune.WeightBSize[1],_Tune.WeightBSize[2],_Tune.WeightBSize[3])
		weightB.CustomPhysicalProperties = PhysicalProperties.new(((_Tune.Weight*weightScaling)-mass)/(weightB.Size.x*weightB.Size.y*weightB.Size.z),0,0,0,0)
		weightB.CFrame=(car.DriveSeat.CFrame-car.DriveSeat.Position+center)*CFrame.new(0,_Tune.CGHeight,0)
	else
		--Existing Weight Is Too Massive
		warn( "\n\t [AC6C V".._BuildVersion.."]: Mass too high for specified weight."
			.."\n\t    Target Mass:\t"..(math.ceil(_Tune.Weight*weightScaling*100)/100)
			.."\n\t    Current Mass:\t"..(math.ceil(mass*100)/100)
			.."\n\t Reduce part size or axle density to achieve desired weight.")
	end

	local flipG = Instance.new("BodyGyro",car.DriveSeat)
	flipG.Name = "Flip"
	flipG.D = 0
	flipG.MaxTorque = Vector3.new(0,0,0)
	flipG.P = 0


Prompt: ---[[ Window Settings ]]

Response:
module.MinimumWindowSize = UDim2.new(0.35, 0, 0.3, 0)
module.MaximumWindowSize = UDim2.new(1, 0, 1, 0) -- if you change this to be greater than full screen size, weird things start to happen with size/position bounds checking.
module.DefaultWindowPosition = UDim2.new(0, 0, 0, 0)
local extraOffset = (7 * 2) + (5 * 2) -- Extra chatbar vertical offset
module.DefaultWindowSizePhone = UDim2.new(0.5, 0, 0.5, extraOffset)
module.DefaultWindowSizeTablet = UDim2.new(0.4, 0, 0.3, extraOffset)
module.DefaultWindowSizeDesktop = UDim2.new(0.3, 0, 0.25, extraOffset)


Prompt: -- events

Response:
REMOTES.Chat.OnServerEvent:connect(function(player, message, scope)
	local players

	if scope == "Global" then
		players	= Players:GetPlayers()
	elseif scope == "Squad" then
		local squad	= GetSquad(player)
		if squad then
			players	= {}

			for _, p in pairs(squad.Players:GetChildren()) do
				table.insert(players, Players[p.Name])
			end
		end
	end

	if not cooldowns[player] then
		cooldowns[player]	= 0
	end

	cooldowns[player]	= cooldowns[player] + 1

	if cooldowns[player] <= MAX_PER_SECOND then
		if players then
			if string.gsub(message, "%s", "") ~= "" then
				local result	= TextService:FilterStringAsync(message, player.UserId)
				for _, p in pairs(players) do
					spawn(function()
						pcall(function()
							if player.Parent == Players and p.Parent == Players and Chat:CanUsersChatAsync(player.UserId, p.UserId) then
								local filtered	= result:GetChatForUserAsync(p.UserId)
								REMOTES.Chat:FireClient(p, player.Name, filtered, scope)
							end
						end)
					end)
				end
			end
		end
	else
		REMOTES.Chat:FireClient(player, "SERVER", "Woah there, you're sending messages too fast!", "Server")
	end
end)

Players.PlayerRemoving:connect(function(player)
	if cooldowns[player] then
		cooldowns[player]	= nil
	end
end)


Prompt:
--[[
    Turns brake lights on or off depending on the status
]]

Response:
function VehicleSoundComponent:updateSounds()
	local speed = self.controller:getSpeed()

	if speed and speed < 3 then
		TweenService:Create(self.idle, tweenInfo, {Volume = 0.3}):Play()
		TweenService:Create(self.engine, tweenInfo, {Volume = speed / 5}):Play()
	else
		TweenService:Create(self.idle, tweenInfo, {Volume = 0}):Play()
		TweenService:Create(
			self.engine,
			tweenInfo,
			{Volume = 0.8, PlaybackSpeed = 0.5 + (((speed or 0) + math.random(0, 20)) / 100)}
		):Play()
	end
end


Prompt: --Click to Open/Close Drawer--

Response:
local clickDetector = script.Parent.Parent.ClickBox.ClickDetector
local clicker = script.Parent.Parent.ClickBox

game:GetService("SoundService")

local Phone = game.SoundService["P0 Sounds"].PhoneSound

clickDetector.MouseClick:Connect(function()
	print("Phone Clicked")

	print("SoundPlayed")

		local copysound = Phone:Clone()
		copysound.Parent = clicker
		copysound.Ended:Connect(function() copysound:Destroy() end)
		copysound:Play()
		print("SoundKilled")

end)


Prompt: --use this to determine if you want this human to be harmed or not, returns boolean

Response:
function boom()
	task.wait(2)
	Used = true
	Object.Anchored = true
	Object.CanCollide = false
	Object.Sparks.Enabled = false
	Object.Orientation = Vector3.new(0,0,0)
	Object.Transparency = 1
	Object.Fuse:Stop()
	Object.Explode:Play()
	Object.Explosion:Emit(100)
	Object.Smoke1:Emit(150)
	Object.Smoke2:Emit(50)
	Object.Smoke3:Emit(50)
	Object.Debris:Emit(200)
	Object.Debris2:Emit(900)
	Object.Debris3:Emit(900)
	Explode()
end

boom()


Prompt:
--[[
  Returns a dictionary with the model and difficulty data for each tile type and slope type
]]

Response:
local ServerStorage = game:GetService("ServerStorage")

local TileTypes = require(ServerStorage.Source.Constants.TileTypes)
local SlopeTypes = require(ServerStorage.Source.Constants.SlopeTypes)

return function()
	local tileIndex = {}

	local tiles = ServerStorage:FindFirstChild("Tiles")
	for _, tileType in pairs(TileTypes) do
		tileIndex[tileType] = {}

		local tileFolder = tiles:FindFirstChild(tileType)

		for _, slopeType in pairs(SlopeTypes) do
			tileIndex[tileType][slopeType] = {}

			local slopeFolder = tileFolder:FindFirstChild(slopeType)
			if slopeFolder then
				for _, model in pairs(slopeFolder:GetChildren()) do
					local difficultyObject = model:FindFirstChild("Difficulty")

					-- Clamp the difficulty value between 0 and 100 (as it is a percent)
					local difficulty = math.clamp(difficultyObject.Value, 0, 100)

					table.insert(
						tileIndex[tileType][slopeType],
						{
							model = model,
							difficulty = difficulty,
							type = tileType
						}
					)
				end
			end
		end
	end

	return tileIndex
end


Prompt: -- initialization/finalization stuff

Response:
function makeGyro(humanoid)
	Gyro = Instance.new("BodyGyro")
	Gyro.Name = "SkateboardGyro"
	Gyro.maxTorque = Vector3.new(0,0,0) -- start off
	Gyro.P = 50
	Gyro.D = 50
	Gyro.Parent = humanoid.Parent.Torso
end

function onButtonChanged(button)
	if button == Enum.Button.Dismount then
		Board.ControllingHumanoid.Jump = Controller:getButton(Enum.Button.Dismount)
	end
	if button == Enum.Button.Jump then
		if Controller:getButton(Enum.Button.Jump) and jumpok then
			jumpok = false
			KickAnim:Stop()
			LeftAnim:Stop(.5)

			RightAnim:Stop(.5)
			OllieAnim:Play(0,1,4)
			Board.StickyWheels = false
			Board:ApplySpecificImpulse(Vector3.new(0,45,0))
			OllieHack.force = Vector3.new(0,1200,0)
			didAction("jump")
			delay(.1, function() if (OllieHack ~= nil) then OllieHack.force = Vector3.new(0,0,0) end end)
		else
			Board.StickyWheels = true
		end
	end
end

function onEquip(humanoid, controller)
	print("Board equipped")
	print(controller)
	if not Controller then -- debounce
		Controller = controller

		makeGyro(humanoid)
		controller.AxisChanged:connect(onAxisChanged)
		Board.MoveStateChanged:connect(onMoveStateChanged)
		CoastingAnim = humanoid:loadAnimation(Board.coastingpose)
		LeftAnim = humanoid:loadAnimation(Board.leftturn)
		RightAnim = humanoid:loadAnimation(Board.rightturn)
		OllieAnim = humanoid:loadAnimation(Board.ollie)
		--OllieAnim:AdjustSpeed(2)
		KickAnim = humanoid:loadAnimation(Board.boardkick)
		CoastingAnim:Play()

		Controller:bindButton(Enum.Button.Jump, "Ollie")
		Controller:bindButton(Enum.Button.Dismount, "Dismount")
		Controller.ButtonChanged:connect(onButtonChanged)
	end
end

function onUnequip(board)
	print("Board unequipped")
	Controller = nil
	Gyro.Parent = nil
	Gyro= nil
	CoastingAnim:Stop()
	KickAnim:Stop()
	CoastingAnim = nil
	KickAnim = nil
	LeftAnim:Stop()
	LeftAnim = nil
	RightAnim:Stop()
	RightAnim = nil
	OllieAnim:Stop()
	OllieAnim = nil

	if (OllieThrust ~= nil) then
		OllieThrust:Remove()
		OllieThrust = nil
	end
end


Prompt: -- Current UI layout

Response:
local CurrentLayout;

function TextureTool:ChangeLayout(Layout)
	-- Sets the UI to the given layout

	-- Make sure the new layout isn't already set
	if CurrentLayout == Layout then
		return;
	end;

	-- Set this as the current layout
	CurrentLayout = Layout;

	-- Reset the UI
	for _, ElementName in pairs(UIElements) do
		local Element = self.UI[ElementName]
		Element.Visible = false;
	end;

	-- Keep track of the total vertical extents of all items
	local Sum = 0;

	-- Go through each layout element
	for ItemIndex, ItemName in ipairs(Layout) do

		local Item = self.UI[ItemName]

		-- Make the item visible
		Item.Visible = true;

		-- Position this item underneath the past items
		Item.Position = UDim2.new(0, 0, 0, 20) + UDim2.new(
			Item.Position.X.Scale,
			Item.Position.X.Offset,
			0,
			Sum + 10
		);

		-- Update the sum of item heights
		Sum = Sum + 10 + Item.AbsoluteSize.Y;

	end;

	-- Resize the container to fit the new layout
	self.UI.Size = UDim2.new(0, 200, 0, 30 + Sum)

end;

function TextureTool:UpdateUI()
	-- Updates information on the UI

	-- Make sure the UI's on
	if not self.UI then
		return;
	end;

	-- Get the textures in the selection
	local Textures = GetTextures(TextureTool.Type, TextureTool.Face);

	-- References to UI elements
	local ImageIdInput = self.UI.ImageIDOption.TextBox;
	local TransparencyInput = self.UI.TransparencyOption.Input.TextBox;

	-----------------------
	-- Update the UI layout
	-----------------------

	-- Get the plural version of the current texture type
	local PluralTextureType = TextureTool.Type .. 's';

	-- Figure out the necessary UI layout
	if #Selection.Parts == 0 then
		self:ChangeLayout(Layouts.EmptySelection)
		return;

	-- When the selection has no textures
	elseif #Textures == 0 then
		self:ChangeLayout(Layouts.NoTextures)
		return;

	-- When only some selected items have textures
	elseif #Selection.Parts ~= #Textures then
		self:ChangeLayout(Layouts['Some' .. PluralTextureType])

	-- When all selected items have textures
	elseif #Selection.Parts == #Textures then
		self:ChangeLayout(Layouts['All' .. PluralTextureType])
	end;

	------------------------
	-- Update UI information
	------------------------

	-- Get the common properties
	local ImageId = Support.IdentifyCommonProperty(Textures, 'Texture');
	local Transparency = Support.IdentifyCommonProperty(Textures, 'Transparency');

	-- Update the common inputs
	UpdateDataInputs {
		[ImageIdInput] = ImageId and ParseAssetId(ImageId) or ImageId or '*';
		[TransparencyInput] = Transparency and Support.Round(Transparency, 3) or '*';
	};

	-- Update texture-specific information on UI
	if TextureTool.Type == 'Texture' then

		-- Get texture-specific UI elements
		local RepeatXInput = self.UI.RepeatOption.XInput.TextBox
		local RepeatYInput = self.UI.RepeatOption.YInput.TextBox

		-- Get texture-specific common properties
		local RepeatX = Support.IdentifyCommonProperty(Textures, 'StudsPerTileU');
		local RepeatY = Support.IdentifyCommonProperty(Textures, 'StudsPerTileV');

		-- Update inputs
		UpdateDataInputs {
			[RepeatXInput] = RepeatX and Support.Round(RepeatX, 3) or '*';
			[RepeatYInput] = RepeatY and Support.Round(RepeatY, 3) or '*';
		};

	end;

end;

function UpdateDataInputs(Data)
	-- Updates the data in the given TextBoxes when the user isn't typing in them

	-- Go through the inputs and data
	for Input, UpdatedValue in pairs(Data) do

		-- Makwe sure the user isn't typing into the input
		if not Input:IsFocused() then

			-- Set the input's value
			Input.Text = tostring(UpdatedValue);

		end;

	end;

end;

function ParseAssetId(Input)
	-- Returns the intended asset ID for the given input

	-- Get the ID number from the input
	local Id = tonumber(Input)
		or tonumber(Input:lower():match('%?id=([0-9]+)'))
		or tonumber(Input:match('/([0-9]+)/'))
		or tonumber(Input:lower():match('rbxassetid://([0-9]+)'));

	-- Return the ID
	return Id;
end;

function TextureTool:SetFace(Face)
	self.Face = Face
	self.OnFaceChanged:Fire(Face)
end

function TextureTool:SetTextureType(TextureType)

	-- Update the tool option
	self.Type = TextureType

	-- Update the UI
	Core.ToggleSwitch(TextureType, self.UI.ModeOption);
	self.UI.AddButton.Button.Text = 'ADD ' .. TextureType:upper();
	self.UI.RemoveButton.Button.Text = 'REMOVE ' .. TextureType:upper();

end;

function SetProperty(TextureType, Face, Property, Value)

	-- Make sure the given value is valid
	if not Value then
		return;
	end;

	-- Start a history record
	TrackChange();

	-- Go through each texture
	for _, Texture in pairs(GetTextures(TextureType, Face)) do

		-- Store the state of the texture before modification
		table.insert(HistoryRecord.Before, { Part = Texture.Parent, TextureType = TextureType, Face = Face, [Property] = Texture[Property] });

		-- Create the change request for this texture
		table.insert(HistoryRecord.After, { Part = Texture.Parent, TextureType = TextureType, Face = Face, [Property] = Value });

	end;

	-- Register the changes
	RegisterChange();

end;

function SetTextureId(TextureType, Face, AssetId)
	-- Sets the textures in the selection to the intended, given image asset

	-- Make sure the given asset ID is valid
	if not AssetId then
		return;
	end;

	-- Prepare the change request
	local Changes = {
		Texture = 'rbxassetid://' .. AssetId;
	};

	-- Attempt an image extraction on the given asset
	Core.Try(Core.SyncAPI.Invoke, Core.SyncAPI, 'ExtractImageFromDecal', AssetId)
		:Then(function (ExtractedImage)
			Changes.Texture = 'rbxassetid://' .. ExtractedImage;
		end);

	-- Start a history record
	TrackChange();

	-- Go through each texture
	for _, Texture in pairs(GetTextures(TextureType, Face)) do

		-- Create the history change requests for this texture
		local Before, After = { Part = Texture.Parent, TextureType = TextureType, Face = Face }, { Part = Texture.Parent, TextureType = TextureType, Face = Face };

		-- Gather change information to finish up the history change requests
		for Property, Value in pairs(Changes) do
			Before[Property] = Texture[Property];
			After[Property] = Value;
		end;

		-- Store the state of the texture before modification
		table.insert(HistoryRecord.Before, Before);

		-- Create the change request for this texture
		table.insert(HistoryRecord.After, After);

	end;

	-- Register the changes
	RegisterChange();

end;

function AddTextures(TextureType, Face)

	-- Prepare the change request for the server
	local Changes = {};

	-- Go through the selection
	for _, Part in pairs(Selection.Parts) do

		-- Make sure this part doesn't already have a texture of the same type
		local HasTextures;
		for _, Child in pairs(Part:GetChildren()) do
			if Child.ClassName == TextureType and Child.Face == Face then
				HasTextures = true;
			end;
		end;

		-- Queue a texture to be created for this part, if not already existent
		if not HasTextures then
			table.insert(Changes, { Part = Part, TextureType = TextureType, Face = Face });
		end;

	end;

	-- Send the change request to the server
	local Textures = Core.SyncAPI:Invoke('CreateTextures', Changes);

	-- Put together the history record
	local HistoryRecord = {
		Textures = Textures;
		Selection = Selection.Items;

		Unapply = function (Record)
			-- Reverts this change

			-- Select changed parts
			Selection.Replace(Record.Selection)

			-- Remove the textures
			Core.SyncAPI:Invoke('Remove', Record.Textures);

		end;

		Apply = function (Record)
			-- Reapplies this change

			-- Restore the textures
			Core.SyncAPI:Invoke('UndoRemove', Record.Textures);

			-- Select changed parts
			Selection.Replace(Record.Selection)

		end;

	};

	-- Register the history record
	Core.History.Add(HistoryRecord);

end;

function RemoveTextures(TextureType, Face)

	-- Get all the textures in the selection
	local Textures = GetTextures(TextureType, Face);

	-- Create the history record
	local HistoryRecord = {
		Textures = Textures;
		Selection = Selection.Items;

		Unapply = function (Record)
			-- Reverts this change

			-- Restore the textures
			Core.SyncAPI:Invoke('UndoRemove', Record.Textures);

			-- Select changed parts
			Selection.Replace(Record.Selection)

		end;

		Apply = function (Record)
			-- Reapplies this change

			-- Select changed parts
			Selection.Replace(Record.Selection)

			-- Remove the textures
			Core.SyncAPI:Invoke('Remove', Record.Textures);

		end;

	};

	-- Send the removal request
	Core.SyncAPI:Invoke('Remove', Textures);

	-- Register the history record
	Core.History.Add(HistoryRecord);

end;

function TrackChange()

	-- Start the record
	HistoryRecord = {
		Before = {};
		After = {};
		Selection = Selection.Items;

		Unapply = function (Record)
			-- Reverts this change

			-- Select the changed parts
			Selection.Replace(Record.Selection)

			-- Send the change request
			Core.SyncAPI:Invoke('SyncTexture', Record.Before);

		end;

		Apply = function (Record)
			-- Applies this change

			-- Select the changed parts
			Selection.Replace(Record.Selection)

			-- Send the change request
			Core.SyncAPI:Invoke('SyncTexture', Record.After);

		end;

	};

end;

function RegisterChange()
	-- Finishes creating the history record and registers it

	-- Make sure there's an in-progress history record
	if not HistoryRecord then
		return;
	end;

	-- Send the change to the server
	Core.SyncAPI:Invoke('SyncTexture', HistoryRecord.After);

	-- Register the record and clear the staging
	Core.History.Add(HistoryRecord);
	HistoryRecord = nil;

end;


Prompt: --The name of the collision group that characters are put in

Response: local GroupName = "RaceCars"


Prompt: --Made by Stickmasterluke

Response:
sp=script.Parent

speedboost=2		--200% speed bonus
speedforsmoke=10	--smoke apears when character running >= 10 studs/second.

function waitfor(a, b, c)
	local c = c or 5 * 60
	local d=tick()+c
	while a:FindFirstChild(b)==nil and tick()<=d do
		wait()
	end
	return a:FindFirstChild(b)
end

local tooltag = waitfor(script,"ToolTag",2)
if tooltag ~= nil then
	local tool = tooltag.Value
	local h = sp:FindFirstChild("Humanoid")
	if h ~= nil then
		h.WalkSpeed = 16+16*speedboost
		local t = sp:FindFirstChild("Torso")
		if t ~= nil then
			smokepart = Instance.new("Part")
			smokepart.FormFactor = "Custom"
			smokepart.Size =Vector3.new(0, 0, 0)
			smokepart.TopSurface = "Smooth"
			smokepart.BottomSurface = "Smooth"
			smokepart.CanCollide = false
			smokepart.Transparency = 1
			local weld = Instance.new("Weld")
			weld.Name = "SmokePartWeld"
			weld.Part0 = t
			weld.Part1 = smokepart
			weld.C0 = CFrame.new(0, -3.5, 0) * CFrame.Angles(math.pi / 4, 0, 0)
			weld.Parent = smokepart
			smokepart.Parent = sp
			smoke = Instance.new("Smoke")
			smoke.Enabled = t.Velocity.magnitude > speedforsmoke
			smoke.RiseVelocity = 2
			smoke.Opacity = 0.25
			smoke.Size = 0.5
			smoke.Parent = smokepart
			h.Running:connect(function(speed)
				if smoke and smoke ~= nil then
					smoke.Enabled = speed > speedforsmoke
				end
			end)
		end
	end
	while tool ~= nil and tool.Parent == sp and h ~= nil do
		sp.ChildRemoved:wait()
	end
	local h = sp:FindFirstChild("Humanoid")
	if h ~= nil then
		h.WalkSpeed = 16
	end
end

if smokepart ~= nil then
	smokepart:remove()
end
script:remove()


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 1873		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible

	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- 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


Prompt: -- SERVICES --

Response:
local RS = game:GetService("ReplicatedStorage")
local TS = game:GetService("TweenService")
local CS = game:GetService("CollectionService")
local PS = game:GetService("PhysicsService")
local Players = game:GetService("Players")


Prompt: --//Main script

Response:
script.Parent:WaitForChild("ClickDetector").MouseClick:connect(function(Player)
	if not InUse and game:GetService("Players"):FindFirstChild(Player.Name) and Player.Character.Humanoid.RigType == Enum.HumanoidRigType.R15 and Player.Character.Humanoid.Health > 0 and not Player.Character:FindFirstChild("GotCostume") then
		InUse = true
		Player:ClearCharacterAppearance()
		local CostumeLabel = Instance.new("BoolValue", Player.Character)
		CostumeLabel.Name = "GotCostume"
		LockPlayer(Player, true)
		local OldCFrame = Player.Character:FindFirstChild("HumanoidRootPart").CFrame
		Player.Character:SetPrimaryPartCFrame(script.Parent.Parent:FindFirstChild("Position").CFrame)
		for _,BodyPart in pairs(Player.Character:GetChildren()) do
			if BodyPart:IsA("BasePart") and CheckName(BodyPart) then
				if BodyPart.Name == "Head" then
					BodyPart.Transparency = 0.99
				else
					BodyPart.Transparency = 1
				end
				local Face = BodyPart:FindFirstChildOfClass("Decal")
				if Face then
					Face:Destroy()
				end
				local CostumeObject = script.Parent.Parent.Parent.Costume:FindFirstChild(BodyPart.Name)
				if CostumeObject then
					local ClonedCostumeObject = CostumeObject:Clone()
					ClonedCostumeObject.Parent = Player.Character
					for _,CostumeObjectPart in pairs(ClonedCostumeObject:GetChildren()) do
						if CostumeObjectPart:IsA("BasePart") then
							CostumeObjectPart.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
							AddWeld(BodyPart, CostumeObjectPart)
							CostumeObjectPart.Anchored = false
							CostumeObjectPart.CanCollide = false
							CostumeObjectPart.Locked = true
						end
					end
				else
					warn("A piece of costume is missing:", BodyPart.Name)
				end
			end
			wait()
		end
		Player.Character:SetPrimaryPartCFrame(OldCFrame)
		LockPlayer(Player, false)
		InUse = false
	end
end)


Prompt: -- ROBLOX deviation START: predefine variables

Response:
local deepCyclicCopy
local deepCyclicCopyObject
local deepCyclicCopyArray


Prompt: -- ROBLOX deviation: predeclare variables

Response:
local isTemplates, normaliseTable, formatTitle, interpolateEscapedPlaceholders, isTable, colToRow, normalisePlaceholderValue, getMatchingPlaceholders, interpolatePrettyPlaceholder, interpolateTitleIndex

local function default(title: string, arrayTable: Global_ArrayTable): EachTests
	if isTemplates(title, arrayTable) then
		return Array.map(arrayTable, function(template, index)
			return {
				arguments = { template },
				title = interpolateVariables(title, template, index):gsub(
					ESCAPED_PLACEHOLDER_PREFIX_PATTERN,
					PLACEHOLDER_PREFIX
				),
			}
		end)
	end
	return Array.map(normaliseTable(arrayTable), function(row, index)
		return {
			arguments = Array.map(row, function(element)
				return element
			end),
			title = formatTitle(title, row, index),
		}
	end)
end

exports.default = default

function isTemplates(
	title: string,
	arrayTable: Global_ArrayTable
): boolean --[[ ROBLOX TODO: Unhandled node for type: TSTypePredicate ]] --[[ arrayTable is Templates ]]
	return not SUPPORTED_PLACEHOLDERS:test(interpolateEscapedPlaceholders(title))
		and not isTable(arrayTable)
		and Array.every(arrayTable, function(col)
			return col ~= nil and typeof(col) == "table"
		end)
end

function normaliseTable(table_: Global_ArrayTable): Global_Table
	return if isTable(table_) then table_ else Array.map(table_, colToRow)
end

function isTable(
	table_: Global_ArrayTable
): boolean --[[ ROBLOX TODO: Unhandled node for type: TSTypePredicate ]] --[[ table is Global.Table ]]
	return Array.every(table_, Array.isArray)
end

function colToRow(col: Global_Col): Global_Row
	return { col }
end

function formatTitle(title: string, row: Global_Row, rowIndex: number): string
	return Array.reduce(row, function(formattedTitle, value)
		local placeholder = getMatchingPlaceholders(formattedTitle)[1]
		local normalisedValue = normalisePlaceholderValue(value)
		if not Boolean.toJSBoolean(placeholder) then
			return formattedTitle
		end
		if placeholder == PRETTY_PLACEHOLDER then
			return interpolatePrettyPlaceholder(formattedTitle, normalisedValue)
		end
		return format(formattedTitle, normalisedValue)
	end, interpolateTitleIndex(interpolateEscapedPlaceholders(title), rowIndex)):gsub(
		JEST_EACH_PLACEHOLDER_ESCAPE,
		ESCAPED_PLACEHOLDER_PREFIX
	)
end

function normalisePlaceholderValue(value: any)
	if typeof(value) == "string" then
		local ref = value:gsub(PLACEHOLDER_PREFIX, JEST_EACH_PLACEHOLDER_ESCAPE)
		return ref
	else
		return value
	end
end

function getMatchingPlaceholders(title: string): Array<string>
	-- ROBLOX deviation START: js .match with /g flag and :gmatch are used in a different way
	local ref
	for match in title:gmatch(SUPPORTED_PLACEHOLDERS_PATTERN) do
		if ref == nil then
			ref = {}
		end
		table.insert(ref, match)
	end
	-- ROBLOX deviation END
	return ref or {}
end

function interpolateEscapedPlaceholders(title: string)
	local ref = title:gsub(ESCAPED_PLACEHOLDER_PREFIX_PATTERN, JEST_EACH_PLACEHOLDER_ESCAPE)
	return ref
end

function interpolateTitleIndex(title: string, index: number)
	local ref = title:gsub(INDEX_PLACEHOLDER, tostring(index), 1)
	return ref
end

function interpolatePrettyPlaceholder(title: string, value: any)
	local ref = title:gsub(PRETTY_PLACEHOLDER_PATTERN, pretty(value, { maxDepth = 1, min = true }), 1)
	return ref
end

return exports


Prompt: --[[ By: Brutez. ]]

Response:
--
local FreeSCP096AnimationScript=script;
local FreeSCP096=FreeSCP096AnimationScript.Parent
local FreeSCP096Humanoid=nil;
local FreeSCP096Torso=FreeSCP096:FindFirstChild("Torso")
local RightShoulder=FreeSCP096Torso:FindFirstChild("Right Shoulder")
local LeftShoulder=FreeSCP096Torso:FindFirstChild("Left Shoulder")
local RightHip=FreeSCP096Torso:FindFirstChild("Right Hip")
local LeftHip=FreeSCP096Torso:FindFirstChild("Left Hip")
local Neck=FreeSCP096Torso:FindFirstChild("Neck")
local pose="Standing";
for _,Child in pairs(FreeSCP096:GetChildren())do
if Child.ClassName=="Humanoid"then
FreeSCP096Humanoid=Child;
end
end
function onRunning(speed)
if speed>0.001  then
pose = "Running"
else
pose = "Standing"
end
end
function onDied()
pose = "Dead"
end
function onJumping()
pose = "Jumping"
end
function onClimbing()
pose = "Climbing"
end
function onGettingUp()
pose = "GettingUp"
end
function onFreeFall()
pose = "FreeFall"
end
function onFallingDown()
pose = "FallingDown"
end
function onSeated()
pose = "Seated"
end
function moveJump()
RightShoulder.MaxVelocity = 0.5
LeftShoulder.MaxVelocity = 0.5
RightShoulder.DesiredAngle = 3.14
LeftShoulder.DesiredAngle = -3.14
RightHip.DesiredAngle = 0
LeftHip.DesiredAngle = 0
end
function moveFreeFall()
RightShoulder.MaxVelocity = 1
LeftShoulder.MaxVelocity = 1
RightShoulder.DesiredAngle = 4
LeftShoulder.DesiredAngle = -4
RightHip.DesiredAngle = 1
LeftHip.DesiredAngle = 1
end
function moveSit()
RightShoulder.MaxVelocity = 0.15
LeftShoulder.MaxVelocity = 0.15
RightShoulder.DesiredAngle = 3.14 /2
LeftShoulder.DesiredAngle = -3.14 /2
RightHip.DesiredAngle = 1/2
LeftHip.DesiredAngle = -1/2
end
function move(time)
local amplitude
local frequency
if (pose == "Jumping") then
moveJump()
return
end
if (pose == "FreeFall") then
moveFreeFall()
return
end
if (pose == "Seated") then
moveSit()
return
end
local climbFudge = 0
if (pose == "Running") then
RightShoulder.MaxVelocity = 0.2
LeftShoulder.MaxVelocity = 0.2
RightHip.MaxVelocity = 0.2
LeftHip.MaxVelocity = 0.2
if FreeSCP096Humanoid.WalkSpeed~=35 then
amplitude = 0.4
frequency = 4
else
amplitude = 2
frequency = 12
end
elseif (pose == "Climbing") then
RightShoulder.MaxVelocity = 0.3
LeftShoulder.MaxVelocity = 0.3
RightHip.MaxVelocity = 1
LeftHip.MaxVelocity = 1
amplitude = 0.4
frequency = 6
climbFudge = 3.14
else
amplitude = 0.1
frequency = 1
end
local desiredAngle=amplitude*math.sin(time*frequency);
if FreeSCP096Humanoid.WalkSpeed==1 then --Panic
RightShoulder.MaxVelocity = 0.05
LeftShoulder.MaxVelocity = 0.05
RightShoulder.DesiredAngle = 3.14
LeftShoulder.DesiredAngle = -3.14
end
if FreeSCP096Humanoid.WalkSpeed>10 then
RightShoulder.MaxVelocity = 5
LeftShoulder.MaxVelocity = 5
RightShoulder.DesiredAngle = 1.57
LeftShoulder.DesiredAngle = -1.57
RightHip.MaxVelocity = 3
LeftHip.MaxVelocity =3
end
if FreeSCP096Humanoid.WalkSpeed~=1 and FreeSCP096Humanoid.WalkSpeed~=35 then
RightShoulder.DesiredAngle=desiredAngle+climbFudge;
LeftShoulder.DesiredAngle=desiredAngle-climbFudge;
end
RightHip.DesiredAngle = -desiredAngle
LeftHip.DesiredAngle = -desiredAngle
end
FreeSCP096Humanoid.Died:connect(onDied)
FreeSCP096Humanoid.Running:connect(onRunning)
FreeSCP096Humanoid.Jumping:connect(onJumping)
FreeSCP096Humanoid.Climbing:connect(onClimbing)
FreeSCP096Humanoid.GettingUp:connect(onGettingUp)
FreeSCP096Humanoid.FreeFalling:connect(onFreeFall)
FreeSCP096Humanoid.FallingDown:connect(onFallingDown)
FreeSCP096Humanoid.Seated:connect(onSeated)
local nextTime=0
local runService=game:service("RunService");
while Wait(0)do
local time=runService.Stepped:wait(0);
if time>nextTime then
move(time);
nextTime=time;
end;
end;


Prompt:
--[[
	Returns the value currently stored in this State object.
	The state object will be registered as a dependency unless `asDependency` is
	false.
]]

Response:
function class:get(isDependency: boolean?)
	if not isDependency then
		Dependencies.useDependency(self)
	end

	return self._value
end


Prompt:
--edit the function below to return true when you want this response/prompt to be valid
--player is the player speaking to the dialogue, and dialogueFolder is the object containing the dialogue data

Response:
return function(player, dialogueFolder)
	local plrData = require(game.ReplicatedStorage.Source.Modules.Util):GetPlayerData(player)
	return plrData.Character.Purity.Value >= 0
end


Prompt: ------Modules------

Response:
local modules = script.Parent.Parent.Modules
local core = require(modules.CoreModule)
local actions = require(modules.ActionsModule)
local combat = require(modules.CombatModule)
local targeting = require(modules.TargetModule)
local movement = require(modules.MovementModule)
local status = require(modules.Status)
local troubleshoot = require(modules.Troubleshoot)

local wait = task.wait
local spawn = task.spawn
local delay = task.delay


Prompt:
--[[
	Calls a function and throws an error if it attempts to yield.
	Pass any number of arguments to the function after the callback.
	This function supports multiple return; all results returned from the
	given function will be returned.
--]]

Response:
local function resultHandler(co, ok, ...)
	if not ok then
		local message = (...)
		error(debug.traceback(co, message), 2)
	end

	if coroutine.status(co) ~= "dead" then
		error(debug.traceback(co, "Attempted to yield inside changed event!"), 2)
	end

	return ...
end

type Callback = (...any) -> ...any

local function noYield(callback: Callback, ...): ...any
	local co = coroutine.create(callback)

	return resultHandler(co, coroutine.resume(co, ...))
end

return noYield


Prompt: --< Services >--

Response:
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UIS = game:GetService("UserInputService")


Prompt: --------------------) Settings

Response:
Damage = 0 -- the ammout of health the player or mob will take

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

ZoneModelName = "Sea of Error" -- name the zone model

MobHumanoidName = "Humanoid"-- the name of player or mob u want to damage


Prompt: --여기까지

Response:
local ser = game:GetService("Debris") --오브젝트 삭제 관련 서비스
local skill = game.ReplicatedStorage.Skill:FindFirstChild(skillName) --스킬 찾기
local Cooldown = true
local DamageCool = false

script.Parent.SkillEvent.OnServerEvent:Connect(function(plr, X,Y ,Z, Target) --플레이어가 스킬을 클릭하면
	if Cooldown == true and Target ~= nil and not Target:FindFirstChild("Humanoid") then --조건이 맞으면
		Cooldown = false

		local clone = skill:Clone() --스킬 복사
		clone.Parent = game.Workspace.SkillPart --스킬 적용
		clone.Position = Vector3.new(X, (Y + 100), Z) --스킬 위치를 플레이어가 터치한 자리에

		clone.Touched:Connect(function(hit) --다른 플레이어가 스킬에 닿이면
			local human = hit.Parent:FindFirstChild("Humanoid") --휴머노이드 찾기
			local human2 = hit.Parent.Parent:FindFirstChild("Humanoid") --휴머노이드 찾기

			if human ~= nil and hit.Parent then --조건이 맞다면
				if hit.Parent.Name == script.Parent.Parent.Name and DamageCool == false then return	end --자신은 데미지 안먹힘

				if human and DamageCool == false then --해당 조건이 맞으면

					DamageCool = true
					human:TakeDamage(Damage) --데미지 입히기
					wait(DamageCoolTime) --스킬 데미지 쿨타임 기다리기
					DamageCool = false

				elseif human2 and DamageCool == false then

					DamageCool = true
					human2:TakeDamage(Damage) --데미지 입히기
					wait(DamageCoolTime) --스킬 데미지 쿨타임 기다리기
					DamageCool = false
				end
			end
		end) --끝

		script.Parent.Handle:FindFirstChild(Sound):Play() --오디오 틀기

		wait(1) --1초 기다림

		local bomb = game.ReplicatedStorage.Skill.Explosion:Clone() --폭팔 이펙트 복사
		bomb.Parent = game.Workspace.SkillPart --이펙트 적용
		bomb.Position = Vector3.new(clone.Position.X, clone.Position.Y, clone.Position.Z) --이펙트 위치 지정

		script.Parent.Handle:FindFirstChild(Sound2):Play() --오디오 틀기
		script.Parent.SkillEvent:FireClient(plr) --메세지 보내기(화면 흔들림 효과)

		ser:AddItem(bomb, 1) --1초뒤에 이펙트 삭제

		wait(CoolTime) --스킬 쿨타임 기다리기
		Cooldown = true
	end
end) --끝


Prompt: ---- locales ----

Response:
local Button = script.Parent
local InventoryFrame = Button.Parent.InventoryScrollingFrame
local InformationFrame = Button.Parent.InformationFrame
local CaseInventoryFrame = Button.Parent.CaseShopScrollingFrame
local CaseInformationFrame = Button.Parent.CaseInformationFrame
local SkinsViewFrame = Button.Parent.SkinsViewFrame


Prompt:
--[[function Float()
	local Wobble = {
		Size = 3,
		Speed = 0.3,
		Factor = 0,
	}
	local UpVector = Vector3.new(0, 0, 0)
	local SpeedVector = Part.Velocity
	local PerpVector = SpeedVector.Unit:Cross(UpVector)
	local RandomAngle = (math.random() * math.pi * 2) --Get random angle in the perpendicular plane we just solved for
	local WobbleVector = (PerpVector * math.cos(RandomAngle) + UpVector * math.sin(RandomAngle)) --Get a random "wobble vector" in the perpendicular plane
	Spawn(function()
		while true do
			if not Part or not Part.Parent then
				break
			end
			--Part.RotVelocity = (Part.RotVelocity + Vector3.new(0, ((math.random() - 0.5) * 2), 0)) --See if is z instead of x value
			Part.Velocity = (SpeedVector + WobbleVector * math.sin(Wobble.Factor) * Wobble.Size)
			Wobble.Factor = (Wobble.Factor + Wobble.Speed)
			wait(0.25)
		end
	end)
end]]

Response:
function GetCreator()
	return ((Creator and Creator.Value and Creator.Value:IsA("Player") and Creator.Value) or nil)
end

function Blow(Object)
	local TouchedConnection
	TouchedConnection = Object.Touched:connect(function(Hit)
		if not Hit or not Hit.Parent then
			return
		end
		local character = Hit.Parent
		local humanoid = character:FindFirstChild("Humanoid")
		if not humanoid or humanoid.Health == 0 then
			return
		end
		local CreatorPlayer = GetCreator()
		local player = Players:GetPlayerFromCharacter(character)
		if player and CreatorPlayer and (player == CreatorPlayer or IsTeamMate(CreatorPlayer, player)) then
			return
		end
		UntagHumanoid(humanoid)
		TagHumanoid(humanoid, CreatorPlayer)
		humanoid:TakeDamage(Damage.Value)
		Part.Anchored = true
		Part.Transparency = 1
	end)
	return TouchedConnection
end

Blow(Part)


Prompt:
--[[
	Returns the price of the given itemId
--]]

Response:
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local getCategoryForItemId = require(ReplicatedStorage.Source.Utility.Farm.getCategoryForItemId)
local getItemByIdInCategory = require(ReplicatedStorage.Source.Utility.Farm.getItemByIdInCategory)
local getAttribute = require(ReplicatedStorage.Source.Utility.getAttribute)
local Attribute = require(ReplicatedStorage.Source.SharedConstants.Attribute)
local ItemCategory = require(ReplicatedStorage.Source.SharedConstants.ItemCategory)

local function getPurchaseCost(itemId: string)
	local categoryId: ItemCategory.EnumType = getCategoryForItemId(itemId)
	local itemModel = getItemByIdInCategory(itemId, categoryId)

	return getAttribute(itemModel, Attribute.PurchaseCost)
end

return getPurchaseCost


Prompt: --- Internal __index metamethod

Response:
function Maid:__index(i)
	return Maid[i] or self._Tasks[i]
end


Prompt:
--script.Parent.Values.Gear.Changed:connect(function()
--	mult=1
--	if script.Parent.Values.RPM.Value>5500 then
--		shift=.2
--	end
--end)

Response:
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

handler:FireServer("newSound","Rev",car.DriveSeat,script.Rev.SoundId,0,script.Rev.Volume,true)
handler:FireServer("playSound","Rev")
car.DriveSeat:WaitForChild("Rev")

while wait() do
	mult=math.max(0,mult-.1)
	local _RPM = script.Parent.Values.RPM.Value

	if script.Parent.Values.Throttle.Value <= _Tune.IdleThrottle/100 then
		throt = math.max(.3,throt-.2)
		trmmult = math.max(0,trmmult-.05)
		trmon = 1
	else
		throt = math.min(1,throt+.1)
		trmmult = 1
		trmon = 0
	end
	shift = math.min(1,shift+.2)
	if script.Parent.Values.RPM.Value > _Tune.Redline-_Tune.RevBounce/4 and script.Parent.Values.Throttle.Value > _Tune.IdleThrottle/100 then
		redline=.5
	else
		redline=1
	end
	if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
	local Volume = (2*throt*shift*redline)+(trm*trmon*trmmult*(2-throt)*math.sin(tick()*50))
	local Pitch = math.max((((script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.Redline))*on^2)+(det*mult*math.sin(80*tick())),script.Rev.SetPitch.Value)
	if FE then
		handler:FireServer("updateSound","Rev",script.Rev.SoundId,Pitch,Volume)
	else
		car.DriveSeat.Rev.Volume = Volume
		car.DriveSeat.Rev.Pitch = Pitch
	end
end


Prompt:
--[[
	Draws a ray between CFrame towards part. If the ray is close to the part (as defined by the discrepencies below), returns true - else returns false.
]]

Response:
local MAX_PERIPHERAL_SIGHT = 10
local MAX_SIGHT_RANGE = 1

return function(originCFrame, targetPart, ignoreInstance)
	local targetPartCFrame = targetPart.CFrame

	local pointedCFrame = CFrame.new(originCFrame.Position, targetPartCFrame.Position)

	local ray = Ray.new(pointedCFrame.Position, pointedCFrame.LookVector * 500)

	local hitPart, hitPosition = workspace:FindPartOnRay(ray, ignoreInstance)

	local discrepency = (hitPosition - targetPartCFrame.Position).magnitude
	local range = (originCFrame.LookVector - pointedCFrame.LookVector).magnitude

	if hitPart and (hitPart == targetPart or discrepency < MAX_PERIPHERAL_SIGHT) and range < MAX_SIGHT_RANGE then
		return true
	else
		return false
	end
end


Prompt: -- ROBLOX FIXME: Can we define ClientChatModules statically in the project config

Response:
pcall(function() ChatLocalization = require((game:GetService("Chat") :: any).ClientChatModules.ChatLocalization :: any) end)

function CreateSystemMessageLabel(messageData, channelName)
	local message = messageData.Message
	if ChatLocalization and ChatLocalization.LocalizeFormattedMessage then
		message = ChatLocalization:LocalizeFormattedMessage(message)
	end
	local extraData = messageData.ExtraData or {}
	local useFont = extraData.Font or ChatSettings.DefaultFont
	local useTextSize = extraData.TextSize or ChatSettings.ChatWindowTextSize
	local useChatColor = extraData.ChatColor or ChatSettings.DefaultMessageColor
	local useChannelColor = extraData.ChannelColor or useChatColor

	local BaseFrame, BaseMessage = util:CreateBaseMessage(message, useFont, useTextSize, useChatColor)
	BaseMessage.AutoLocalize = true
	local ChannelButton = nil

	if channelName ~= messageData.OriginalChannel then
		local formatChannelName
		if ChatLocalization and messageData.OriginalChannel == "System" then
			local localizedChannelName = ChatLocalization:Get("InGame.Chat.Label.SystemMessagePrefix", "System")
			formatChannelName = string.format("{%s}", localizedChannelName)
		elseif ChatLocalization and messageData.OriginalChannel == "Team" then
			local localizedChannelName = ChatLocalization:Get("InGame.Chat.Label.TeamMessagePrefix", "System")
			formatChannelName = string.format("{%s}", localizedChannelName)
		else
			formatChannelName = string.format("{%s}", messageData.OriginalChannel)
		end
		ChannelButton = util:AddChannelButtonToBaseMessage(BaseMessage, useChannelColor, formatChannelName, messageData.OriginalChannel)
		local numNeededSpaces = util:GetNumberOfSpaces(formatChannelName, useFont, useTextSize) + 1
		BaseMessage.Text = string.rep(" ", numNeededSpaces) .. message
	end

	local function GetHeightFunction(xSize)
		return util:GetMessageHeight(BaseMessage, BaseFrame, xSize)
	end

	local FadeParmaters = {}
	FadeParmaters[BaseMessage] = {
		TextTransparency = {FadedIn = 0, FadedOut = 1},
		TextStrokeTransparency = {FadedIn = 0.75, FadedOut = 1}
	}

	if ChannelButton then
		FadeParmaters[ChannelButton] = {
			TextTransparency = {FadedIn = 0, FadedOut = 1},
			TextStrokeTransparency = {FadedIn = 0.75, FadedOut = 1}
		}
	end

	local FadeInFunction, FadeOutFunction, UpdateAnimFunction = util:CreateFadeFunctions(FadeParmaters)

	return {
		[util.KEY_BASE_FRAME] = BaseFrame,
		[util.KEY_BASE_MESSAGE] = BaseMessage,
		[util.KEY_UPDATE_TEXT_FUNC] = nil,
		[util.KEY_GET_HEIGHT] = GetHeightFunction,
		[util.KEY_FADE_IN] = FadeInFunction,
		[util.KEY_FADE_OUT] = FadeOutFunction,
		[util.KEY_UPDATE_ANIMATION] = UpdateAnimFunction
	}
end

return {
	[util.KEY_MESSAGE_TYPE] = ChatConstants.MessageTypeSystem,
	[util.KEY_CREATOR_FUNCTION] = CreateSystemMessageLabel
}


Prompt: --Made by Luckymaxer

Response:
Tool = script.Parent
Handle = Tool:WaitForChild("Handle")
RunAnim = Tool:WaitForChild("RunAnim")
Returned = Tool:WaitForChild("Returned")

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

Anims = {"RightSlash", "LeftSlash", "OverHeadSwing", "LeftSwingFast", "RightSwingFast"}

BaseDamage = 5
SlashDamage = 10
SwingDamage = 15
Damage = BaseDamage

SlashSound = Instance.new("Sound")
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
SlashSound.Parent = Handle
SlashSound.Volume = 0.7

UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
UnsheathSound.Parent = Handle
UnsheathSound.Volume = 0.5

function Blow(Hit)
	if Hit and Hit.Parent then
		local humanoid = Hit.Parent:FindFirstChild("Humanoid")
		if Character and Player and Humanoid and humanoid and humanoid ~= Humanoid and humanoid.Health > 0 and Humanoid.Health > 0 then
			local right_arm = Character:FindFirstChild("Right Arm")
			if right_arm then
				local joint= right_arm:FindFirstChild("RightGrip")
				if joint and (joint.Part0 == Handle or joint.Part1 == Handle) then
					TagHumanoid(humanoid, Player)
					humanoid:TakeDamage(Damage)
				end
			end
		end
	end
end

function TagHumanoid(humanoid, player)
	for i, v in pairs(humanoid:GetChildren()) do
		if v.Name == "creator" then
			v:Destroy()
		end
	end
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	Debris:AddItem(creator_tag, 1)
	creator_tag.Parent = humanoid
end

function OnActivated()
	if Tool.Enabled and Returned.Value then
		Character = Tool.Parent
		Player = Players:GetPlayerFromCharacter(Character)
		Humanoid = Character:FindFirstChild("Humanoid")
		Tool.Enabled = false
		local TempAnims = {}
		for i, v in pairs(Anims) do
			if v ~= LastAnim then
				table.insert(TempAnims, v)
			end
		end
		NewAnim = TempAnims[math.random(1, #TempAnims)]
		LastAnim = NewAnim
		RunAnim.Value = NewAnim
		if Humanoid and NewAnim then
			SlashSound:Play()
			if NewAnim == "OverHeadSwing" then
				Damage = SwingDamage
			else
				Damage = SlashDamage
			end
			wait(0.75)
			Damage = BaseDamage
		end
		Tool.Enabled = true
	end
end

function OnEquipped(Mouse)
	UnsheathSound:Play()
end

Tool.Activated:connect(OnActivated)
Tool.Equipped:connect(OnEquipped)

Connection = Handle.Touched:connect(Blow)


Prompt:
--[=[
	@param default any
	@return value: any
	If the option holds a value, returns the value. Otherwise, returns `default`.
]=]

Response:
function Option:UnwrapOr(default)
	if self:IsSome() then
		return self:Unwrap()
	else
		return default
	end
end


Prompt: --Get the data store with key "Leaderboard"

Response:
wait(10)
while true do
	for i,plr in pairs(game.Players:GetChildren()) do--Loop through players
		if plr.UserId>0 then--Prevent errors
			local ps = game:GetService("PointsService")--PointsService
			local w = ps:GetGamePointBalance(plr.UserId)--Get point balance
			if w then
				pcall(function()
				--Wrap in a pcall so if Roblox is down, it won't error and break.
					dataStore:UpdateAsync(plr.UserId,function(oldVal)
				        --Set new value
						return tonumber(w)
					end)
				end)
			end
		end
	end
	local smallestFirst = false--false = 2 before 1, true = 1 before 2
    local numberToShow = 100--Any number between 1-100, how many will be shown
    local minValue = 1--Any numbers lower than this will be excluded
    local maxValue = 10e30--(10^30), any numbers higher than this will be excluded
    local pages = dataStore:GetSortedAsync(smallestFirst, numberToShow, minValue, maxValue)
    --Get data
    local top = pages:GetCurrentPage()--Get the first page
	local data = {}--Store new data
	for a,b in ipairs(top) do--Loop through data
		local userid = b.key--User id
		local points = b.value--Points
		local username = "[Failed To Load]"--If it fails, we let them know
		local s,e = pcall(function()
		 username = game.Players:GetNameFromUserIdAsync(userid)--Get username
		end)
		if not s then--Something went wrong
		   warn("Error getting name for "..userid..". Error: "..e)
		end
		local image = game.Players:GetUserThumbnailAsync(userid, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150)
		--Make a image of them
		table.insert(data,{username,points,image})--Put new data in new table
	end
	ui.Parent = script
	sf:ClearAllChildren()--Remove old frames
	ui.Parent = sf
	for number,d in pairs(data) do--Loop through our new data
		local name = d[1]
		local val = d[2]
		local image = d[3]
		local color = Color3.new(1,1,1)--Default color
		if number == 1 then
			color = Color3.new(1,1,0)--1st place color
		elseif number == 2 then
			color = Color3.new(0.9,0.9,0.9)--2nd place color
		elseif number == 3 then
			color = Color3.fromRGB(166, 112, 0)--3rd place color
		end
		local new = sample:Clone()--Make a clone of the sample frame
		new.Name = name--Set name for better recognition and debugging
        new.LayoutOrder = number--UIListLayout uses this to sort in the correct order
		new.Image.Image = image--Set the image
		new.Image.Place.Text = number--Set the place
		new.Image.Place.TextColor3 = color--Set the place color (Gold = 1st)
		new.PName.Text = name--Set the username
		new.Value.Text = val--Set the amount of points
		new.Value.TextColor3 = color--Set the place color (Gold = 1st)
		new.PName.TextColor3 = color--Set the place color (Gold = 1st)
		new.Parent = sf--Parent to scrolling frame
	end
	wait()
	sf.CanvasSize = UDim2.new(0,0,0,ui.AbsoluteContentSize.Y)
	--Give enough room for the frames to sit in
	wait(120)
end


Prompt:
--script.Parent.FF.Velocity = script.Parent.FF.CFrame.lookVector *script.Parent.Speed.Value
--script.Parent.FFF.Velocity = script.Parent.FFF.CFrame.lookVector *script.Parent.Speed.Value

Response:
script.Parent.FFFF.Velocity = script.Parent.FFFF.CFrame.lookVector *script.Parent.Speed.Value
script.Parent.G.Velocity = script.Parent.G.CFrame.lookVector *script.Parent.Speed.Value


Prompt: -- this part makes the brick draw:

Response:
lastpoint = Vector3.new(0, 0, 0)
leds = {}
function makeled()
	tip = script.Parent:FindFirstChild("Tip")
	if tip~= nil then
		off = (tip.Mesh.Scale.z/tip.Size.z)/2
		point = (tip.CFrame*CFrame.new(0, 0, -off)).p
		unit = (lastpoint - point).unit
		mag = (lastpoint - point).magnitude
		if mag>1 then
			middle = lastpoint-(unit*(mag/2))
			cf = CFrame.new(middle, point)
			local l = Instance.new("Part")
			l.Name = "Led"
			l.Anchored = true
			l.CanCollide = false
			l.Size = Vector3.new(1, 1, 1)
			l.BrickColor = tip.BrickColor
			l.TopSurface = 0
			l.BottomSurface = 0
			local m=  Instance.new("SpecialMesh")
			m.MeshType = "Brick"
			m.Scale = Vector3.new(.3, .3, mag)/l.Size
			m.Parent = l
			l.Parent = workspace
			l.CFrame = cf
			table.insert(leds, l)
			lastpoint = point
		end
	end
end
function fade()
	for i, v in pairs(leds) do
		if v~= nil then
			v.Transparency = v.Transparency+.04
			if v.Transparency>1 then
				v:remove()
			end
		end
	end
end

while true do
	makeled()
	wait(.004)
	fade()
end


Prompt: -- Class

Response:
local TextMaskClass = {}
TextMaskClass.__index = TextMaskClass
TextMaskClass.__type = "TextMask"

function TextMaskClass:__tostring()
	return TextMaskClass.__type
end


Prompt:
-- Called to update all of the look-angles being tracked
-- on the client, as well as our own client look-angles.
-- This is called during every RunService Heartbeat.

Response:
function CharacterRealism:UpdateLookAngles(delta)
	-- Update our own look-angles with no latency
	local pitch, yaw = self:ComputeLookAngle()
	self:OnLookReceive(self.Player, pitch, yaw)

	-- Submit our look-angles if they have changed enough.
	local lastUpdate = self.LastUpdate or 0
	local now = os.clock()

	if (now - lastUpdate) > .5 then
		pitch = Util:RoundNearestInterval(pitch, .05)
		yaw = Util:RoundNearestInterval(yaw, .05)

		if pitch ~= self.Pitch then
			self.Pitch = pitch
			self.Dirty = true
		end

		if yaw ~= self.Yaw then
			self.Yaw = yaw
			self.Dirty = true
		end

		if self.Dirty then
			self.Dirty = false
			self.LastUpdate = now
			self.SetLookAngles:FireServer(pitch, yaw)
		end
	end

	-- Update all of the character look-angles
	local camera = workspace.CurrentCamera
	local camPos = camera.CFrame.Position

	local player = self.Player
	local dropList

	for character, rotator in pairs(self.Rotators) do
		if not character.Parent then
			if not dropList then
				dropList = {}
			end

			dropList[character] = true
			continue
		end

		local owner = Players:GetPlayerFromCharacter(character)
		local dist = owner and owner:DistanceFromCharacter(camPos) or 0

		if owner ~= player and dist > 30 then
			continue
		end

		local lastStep = rotator.LastStep or 0
		local stepDelta = now - lastStep

		local humanoid = character:FindFirstChildOfClass("Humanoid")
		local rootPart = humanoid and humanoid.RootPart

		if not rootPart then
			continue
		end

		local pitchState = rotator.Pitch
		self:StepValue(pitchState, stepDelta)

		local yawState = rotator.Yaw
		self:StepValue(yawState, stepDelta)

		local motors = rotator.Motors
		rotator.LastStep = now

		if not motors then
			continue
		end

		for name, factors in pairs(self.RotationFactors) do
			local data = motors and motors[name]

			if not data then
				continue
			end

			local motor = data.Motor
			local origin = data.Origin

			if origin then
				local part0 = motor.Part0
				local setPart0 = origin.Parent

				if part0 and part0 ~= setPart0 then
					local newOrigin = part0:FindFirstChild(origin.Name)

					if newOrigin and newOrigin:IsA("Attachment") then
						origin = newOrigin
						data.Origin = newOrigin
					end
				end

				origin = origin.CFrame
			elseif data.C0 then
				origin = data.C0
			else
				continue
			end

			local pitch = pitchState.Current or 0
			local yaw = yawState.Current or 0

			if rotator.SnapFirstPerson and name == "Head" then
				if FpsCamera:IsInFirstPerson() then
					pitch = pitchState.Goal
					yaw = yawState.Goal
				end
			end

			local fPitch = pitch * factors.Pitch
			local fYaw = yaw * factors.Yaw

			-- HACK: Make the arms rotate with a tool.
			if name:sub(-4) == " Arm" or name:sub(-8) == "UpperArm" then
				local tool = character:FindFirstChildOfClass("Tool")

				if tool and not CollectionService:HasTag(tool, "NoArmRotation") then
					if name:sub(1, 5) == "Right" and rootPart:GetRootPart() ~= rootPart then
						fPitch = pitch * 1.3
						fYaw = yaw * 1.3

					elseif name:sub(1, 4) == "Left" and rootPart:GetRootPart() ~= rootPart then
						fPitch = pitch * 1
						fYaw = yaw * 1.5

					else
						fYaw = yaw * .8
					end
				end
			end

			local dirty = false

			if fPitch ~= pitchState.Value then
				pitchState.Value = fPitch
				dirty = true
			end

			if fYaw ~= yawState.Value then
				yawState.Value = fYaw
				dirty = true
			end

			if dirty then
				local rot = origin - origin.Position

				local cf = CFrame.Angles(0, fPitch, 0)
				         * CFrame.Angles(fYaw, 0, 0)

				motor.C0 = origin * rot:Inverse() * cf * rot
			end
		end
	end

	-- If the dropList is declared, remove any characters that
	-- were indexed into it. This is done after iterating over
	-- the rotators to avoid problems with removing data from
	-- a table while iterating over said table.

	if dropList then
		for character in pairs(dropList) do
			local rotator = self.Rotators[character]
			local listener = rotator and rotator.Listener

			if listener then
				listener:Disconnect()
			end

			self.Rotators[character] = nil
		end
	end
end


Prompt: -- ROBLOX deviation: Template literals are represented as a string

Response:
export type EachTable = ArrayTable | TemplateTable | string

export type TestCallback = BlockFn | TestFn | ConcurrentTestFn


Prompt: --- On Fire

Response:
Signal.Fired = function(eventName)
	--- Variables
	eventName = string.lower(eventName)

	--- Get/create event
	local event = GetEvent(eventName)

	--
	return event.Event
end


Prompt: -- Infinitely update the target position for the tank

Response:
currentElev = 0;
currentRot = 0;
while wait() do
	if (myMouse) then
		-- Position of mouse in world
		mousePoint = myMouse.Hit.p;

		-- Vector from tank to mouse point
		targetVector = (mousePoint - parts.GunBase.CFrame.p).unit;

		-- Determine where the gun should point
		targetRotations = determineNewDirections(targetVector);

		-- For each time we do all that math to determine the angle, we will smoothly rotate the gun towards it in 4 increments
		-- This means less lag (fewer calculations) but it's still smooth
		for i = 0, 1 do
			newRotations = getSmoothRotation(targetRotations);
			TFE:FireServer('RotateTurret',parts,currentElev, currentRot)
			wait();
		end
	end
end