Prompt: ---Adjusts the camera Y touch Sensitivity when moving away from the center and in the TOUCH_SENSITIVTY_ADJUST_AREA

Response:
function BaseCamera:AdjustTouchSensitivity(delta, sensitivity)
	local cameraCFrame = game.Workspace.CurrentCamera and game.Workspace.CurrentCamera.CFrame
	if not cameraCFrame then
		return sensitivity
	end
	local currPitchAngle = cameraCFrame:ToEulerAnglesYXZ()

	local multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y
	if currPitchAngle > TOUCH_ADJUST_AREA_UP and delta.Y < 0 then
		local fractionAdjust = (currPitchAngle - TOUCH_ADJUST_AREA_UP)/(MAX_Y - TOUCH_ADJUST_AREA_UP)
		fractionAdjust = 1 - (1 - fractionAdjust)^3
		multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y - fractionAdjust * (
			TOUCH_SENSITIVTY_ADJUST_MAX_Y - TOUCH_SENSITIVTY_ADJUST_MIN_Y)
	elseif currPitchAngle < TOUCH_ADJUST_AREA_DOWN and delta.Y > 0 then
		local fractionAdjust = (currPitchAngle - TOUCH_ADJUST_AREA_DOWN)/(MIN_Y - TOUCH_ADJUST_AREA_DOWN)
		fractionAdjust = 1 - (1 - fractionAdjust)^3
		multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y - fractionAdjust * (
			TOUCH_SENSITIVTY_ADJUST_MAX_Y - TOUCH_SENSITIVTY_ADJUST_MIN_Y)
	end

	return Vector2.new(
		sensitivity.X,
		sensitivity.Y * multiplierY
	)
end

function BaseCamera:OnTouchBegan(input, processed)
	local canUseDynamicTouch = self.isDynamicThumbstickEnabled and not processed
	if canUseDynamicTouch then
		if self.dynamicTouchInput == nil and isInDynamicThumbstickArea(input) then
			-- First input in the dynamic thumbstick area should always be ignored for camera purposes
			-- Even if the dynamic thumbstick does not process it immediately
			self.dynamicTouchInput = input
			return
		end
		self.fingerTouches[input] = processed
		self.inputStartPositions[input] = input.Position
		self.inputStartTimes[input] = tick()
		self.numUnsunkTouches = self.numUnsunkTouches + 1
	end
end

function BaseCamera:OnTouchChanged(input, processed)
	if self.fingerTouches[input] == nil then
		if self.isDynamicThumbstickEnabled then
			return
		end
		self.fingerTouches[input] = processed
		if not processed then
			self.numUnsunkTouches = self.numUnsunkTouches + 1
		end
	end

	if self.numUnsunkTouches == 1 then
		if self.fingerTouches[input] == false then
			self.panBeginLook = self.panBeginLook or self:GetCameraLookVector()
			self.startPos = self.startPos or input.Position
			self.lastPos = self.lastPos or self.startPos
			self.userPanningTheCamera = true

			local delta = input.Position - self.lastPos
			delta = Vector2.new(delta.X, delta.Y * UserGameSettings:GetCameraYInvertValue())
			if self.panEnabled then
				local adjustedTouchSensitivity = TOUCH_SENSITIVTY
				if FFlagUserTouchSensitivityAdjust then
					self:AdjustTouchSensitivity(delta, TOUCH_SENSITIVTY)
				end

				local desiredXYVector = self:InputTranslationToCameraAngleChange(delta, adjustedTouchSensitivity)
				self.rotateInput = self.rotateInput + desiredXYVector
			end
			self.lastPos = input.Position
		end
	else
		self.panBeginLook = nil
		self.startPos = nil
		self.lastPos = nil
		self.userPanningTheCamera = false
	end
	if self.numUnsunkTouches == 2 then
		local unsunkTouches = {}
		for touch, wasSunk in pairs(self.fingerTouches) do
			if not wasSunk then
				table.insert(unsunkTouches, touch)
			end
		end
		if #unsunkTouches == 2 then
			local difference = (unsunkTouches[1].Position - unsunkTouches[2].Position).magnitude
			if self.startingDiff and self.pinchBeginZoom then
				local scale = difference / math.max(0.01, self.startingDiff)
				local clampedScale = Util.Clamp(0.1, 10, scale)
				if self.distanceChangeEnabled then
					self:SetCameraToSubjectDistance(self.pinchBeginZoom / clampedScale)
				end
			else
				self.startingDiff = difference
				self.pinchBeginZoom = self:GetCameraToSubjectDistance()
			end
		end
	else
		self.startingDiff = nil
		self.pinchBeginZoom = nil
	end
end

function BaseCamera:OnTouchEnded(input, processed)
	if input == self.dynamicTouchInput then
		self.dynamicTouchInput = nil
		return
	end

	if self.fingerTouches[input] == false then
		if self.numUnsunkTouches == 1 then
			self.panBeginLook = nil
			self.startPos = nil
			self.lastPos = nil
			self.userPanningTheCamera = false
		elseif self.numUnsunkTouches == 2 then
			self.startingDiff = nil
			self.pinchBeginZoom = nil
		end
	end

	if self.fingerTouches[input] ~= nil and self.fingerTouches[input] == false then
		self.numUnsunkTouches = self.numUnsunkTouches - 1
	end
	self.fingerTouches[input] = nil
	self.inputStartPositions[input] = nil
	self.inputStartTimes[input] = nil
end

function BaseCamera:OnMouse2Down(input, processed)
	if processed then return end

	self.isRightMouseDown = true
	self:OnMousePanButtonPressed(input, processed)
end

function BaseCamera:OnMouse2Up(input, processed)
	self.isRightMouseDown = false
	self:OnMousePanButtonReleased(input, processed)
end

function BaseCamera:OnMouse3Down(input, processed)
	if processed then return end

	self.isMiddleMouseDown = true
	self:OnMousePanButtonPressed(input, processed)
end

function BaseCamera:OnMouse3Up(input, processed)
	self.isMiddleMouseDown = false
	self:OnMousePanButtonReleased(input, processed)
end

function BaseCamera:OnMouseMoved(input, processed)
	if not self.hasGameLoaded and VRService.VREnabled then
		return
	end

	local inputDelta = input.Delta
	inputDelta = Vector2.new(inputDelta.X, inputDelta.Y * UserGameSettings:GetCameraYInvertValue())

	if self.panEnabled and ((self.startPos and self.lastPos and self.panBeginLook) or self.inFirstPerson or self.inMouseLockedMode) then
		local desiredXYVector = self:InputTranslationToCameraAngleChange(inputDelta,MOUSE_SENSITIVITY)
		self.rotateInput = self.rotateInput + desiredXYVector
	end

	if self.startPos and self.lastPos and self.panBeginLook then
		self.lastPos = self.lastPos + input.Delta
	end
end

function BaseCamera:OnMousePanButtonPressed(input, processed)
	if processed then return end
	self:UpdateMouseBehavior()
	self.panBeginLook = self.panBeginLook or self:GetCameraLookVector()
	self.startPos = self.startPos or input.Position
	self.lastPos = self.lastPos or self.startPos
	self.userPanningTheCamera = true
end

function BaseCamera:OnMousePanButtonReleased(input, processed)
	self:UpdateMouseBehavior()
	if not (self.isRightMouseDown or self.isMiddleMouseDown) then
		self.panBeginLook = nil
		self.startPos = nil
		self.lastPos = nil
		self.userPanningTheCamera = false
	end
end

function BaseCamera:OnMouseWheel(input, processed)  -- remove with FFlagUserPointerActionsInPlayerScripts
	if not self.hasGameLoaded and VRService.VREnabled then
		return
	end
	if not processed then
		if self.distanceChangeEnabled then
			local wheelInput = Util.Clamp(-1, 1, -input.Position.Z)

			local newDistance
			if self.inFirstPerson and wheelInput > 0 then
				newDistance = FIRST_PERSON_DISTANCE_THRESHOLD
			else
				-- The 0.156 and 1.7 values are the slope and intercept of a line that is replacing the old
				-- rk4Integrator function which was not being used as an integrator, only to get a delta as a function of distance,
				-- which was linear as it was being used. These constants preserve the status quo behavior.
				newDistance = self.currentSubjectDistance + 0.156 * self.currentSubjectDistance * wheelInput + 1.7 * math.sign(wheelInput)
			end

			self:SetCameraToSubjectDistance(newDistance)
		end
	end
end

function BaseCamera:UpdateMouseBehavior()
	-- first time transition to first person mode or mouse-locked third person
	if self.inFirstPerson or self.inMouseLockedMode then
		UserGameSettings.RotationType = Enum.RotationType.CameraRelative
		UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
	else
		UserGameSettings.RotationType = Enum.RotationType.MovementRelative
		if self.isRightMouseDown or self.isMiddleMouseDown then
			UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
		else
			UserInputService.MouseBehavior = Enum.MouseBehavior.Default
		end
	end
end

function BaseCamera:UpdateForDistancePropertyChange()
	-- Calling this setter with the current value will force checking that it is still
	-- in range after a change to the min/max distance limits
	self:SetCameraToSubjectDistance(self.currentSubjectDistance)
end

function BaseCamera:SetCameraToSubjectDistance(desiredSubjectDistance)
	local player = Players.LocalPlayer

	local lastSubjectDistance = self.currentSubjectDistance

	-- By default, camera modules will respect LockFirstPerson and override the currentSubjectDistance with 0
	-- regardless of what Player.CameraMinZoomDistance is set to, so that first person can be made
	-- available by the developer without needing to allow players to mousewheel dolly into first person.
	-- Some modules will override this function to remove or change first-person capability.
	if player.CameraMode == Enum.CameraMode.LockFirstPerson then
		self.currentSubjectDistance = 0.5
		if not self.inFirstPerson then
			self:EnterFirstPerson()
		end
	else
		local newSubjectDistance = Util.Clamp(player.CameraMinZoomDistance, player.CameraMaxZoomDistance, desiredSubjectDistance)
		if newSubjectDistance < FIRST_PERSON_DISTANCE_THRESHOLD then
			self.currentSubjectDistance = 0.5
			if not self.inFirstPerson then
				self:EnterFirstPerson()
			end
		else
			self.currentSubjectDistance = newSubjectDistance
			if self.inFirstPerson then
				self:LeaveFirstPerson()
			end
		end
	end

	-- Pass target distance and zoom direction to the zoom controller
	ZoomController.SetZoomParameters(self.currentSubjectDistance, math.sign(desiredSubjectDistance - lastSubjectDistance))

	-- Returned only for convenience to the caller to know the outcome
	return self.currentSubjectDistance
end

function BaseCamera:SetCameraType( cameraType )
	--Used by derived classes
	self.cameraType = cameraType
end

function BaseCamera:GetCameraType()
	return self.cameraType
end


Response:
Displays = 3 -- Sets how many displays this scripts will use...
DisplayColor = Color3.fromRGB(255, 255, 255)


Prompt: -- constants

Response:
local PLAYER	= Players.LocalPlayer
local EVENTS	= ReplicatedStorage:WaitForChild("Events")
local REMOTES	= ReplicatedStorage:WaitForChild("Remotes")
local MODULES	= ReplicatedStorage:WaitForChild("Modules")
	local CONFIG		= require(MODULES:WaitForChild("Config"))
	local MOUSE			= require(MODULES:WaitForChild("Mouse"))
	local EFFECTS		= require(MODULES:WaitForChild("Effects"))
	local DAMAGE		= require(MODULES:WaitForChild("Damage"))
	local INPUT			= require(MODULES:WaitForChild("Input"))

local EQUIP_COOLDOWN	= 0.2


Prompt:
-- BEHAVIOUR
--Controller support

Response:
coroutine.wrap(function()

	-- Create PC 'Enter Controller Mode' Icon
	runService.Heartbeat:Wait() -- This is required to prevent an infinite recursion
	local Icon = require(iconModule)
	local controllerOptionIcon = Icon.new()
		:setProperty("internalIcon", true)
		:setName("_TopbarControllerOption")
		:setOrder(100)
		:setImage(11162828670)
		:setRight()
		:setEnabled(false)
		:setTip("Controller mode")
		:setProperty("deselectWhenOtherIconSelected", false)

	-- This decides what controller widgets and displays to show based upon their connected inputs
	-- For example, if on PC with a controller, give the player the option to enable controller mode with a toggle
	-- While if using a console (no mouse, but controller) then bypass the toggle and automatically enable controller mode
	userInputService:GetPropertyChangedSignal("MouseEnabled"):Connect(IconController._determineControllerDisplay)
	userInputService.GamepadConnected:Connect(IconController._determineControllerDisplay)
	userInputService.GamepadDisconnected:Connect(IconController._determineControllerDisplay)
	IconController._determineControllerDisplay()

	-- Enable/Disable Controller Mode when icon clicked
	local function iconClicked()
		local isSelected = controllerOptionIcon.isSelected
		local iconTip = (isSelected and "Normal mode") or "Controller mode"
		controllerOptionIcon:setTip(iconTip)
		IconController._enableControllerMode(isSelected)
	end
	controllerOptionIcon.selected:Connect(iconClicked)
	controllerOptionIcon.deselected:Connect(iconClicked)

	-- Hide/show topbar when indicator action selected in controller mode
	userInputService.InputBegan:Connect(function(input,gpe)
		if not IconController.controllerModeEnabled then return end
		if input.KeyCode == Enum.KeyCode.DPadDown then
			if not guiService.SelectedObject and checkTopbarEnabledAccountingForMimic() then
				IconController.setTopbarEnabled(true,false)
			end
		elseif input.KeyCode == Enum.KeyCode.ButtonB and not IconController.disableButtonB then
			if IconController.activeButtonBCallbacks == 1 and TopbarPlusGui.Indicator.Image == "rbxassetid://5278151556" then
				IconController.activeButtonBCallbacks = 0
				guiService.SelectedObject = nil
			end
			if IconController.activeButtonBCallbacks == 0 then
				IconController._previousSelectedObject = guiService.SelectedObject
				IconController._setControllerSelectedObject(nil)
				IconController.setTopbarEnabled(false,false)
			end
		end
		input:Destroy()
	end)

	-- Setup overflow icons
	for alignment, detail in pairs(alignmentDetails) do
		if alignment ~= "mid" then
			local overflowName = "_overflowIcon-"..alignment
			local overflowIcon = Icon.new()
				:setProperty("internalIcon", true)
				:setImage(6069276526)
				:setName(overflowName)
				:setEnabled(false)
			detail.overflowIcon = overflowIcon
			overflowIcon.accountForWhenDisabled = true
			if alignment == "left" then
				overflowIcon:setOrder(math.huge)
				overflowIcon:setLeft()
				overflowIcon:set("dropdownAlignment", "right")
			elseif alignment == "right" then
				overflowIcon:setOrder(-math.huge)
				overflowIcon:setRight()
				overflowIcon:set("dropdownAlignment", "left")
			end
			overflowIcon.lockedSettings = {
				["iconImage"] = true,
				["order"] = true,
				["alignment"] = true,
			}
		end
	end

	-- This checks if voice chat is enabled
	task.defer(function()
		local success, enabledForUser
		while true do
			success, enabledForUser = pcall(function() return voiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId) end)
			if success then
				break
			end
			task.wait(1)
		end
		local function checkVoiceChatManuallyEnabled()
			if IconController.voiceChatEnabled then
				if success and enabledForUser then
					voiceChatIsEnabledForUserAndWithinExperience = true
					IconController.updateTopbar()
				end
			end
		end
		checkVoiceChatManuallyEnabled()

		--------------- FEEL FREE TO DELETE THIS IS YOU DO NOT USE VOICE CHAT WITHIN YOUR EXPERIENCE ---------------
		localPlayer.PlayerGui:WaitForChild("TopbarPlus", 999)
		task.delay(10, function()
			checkVoiceChatManuallyEnabled()
			if IconController.voiceChatEnabled == nil and success and enabledForUser and isStudio then
				warn("⚠TopbarPlus Action Required⚠ If VoiceChat is enabled within your experience it's vital you set IconController.voiceChatEnabled to true ``require(game.ReplicatedStorage.Icon.IconController).voiceChatEnabled = true`` otherwise the BETA label will not be accounted for within your live servers. This warning will disappear after doing so. Feel free to delete this warning or to set to false if you don't have VoiceChat enabled within your experience.")
			end
		end)
		------------------------------------------------------------------------------------------------------------

	end)

	if not isStudio then
		local ownerId = game.CreatorId
		local groupService = game:GetService("GroupService")
		if game.CreatorType == Enum.CreatorType.Group then
			local success, ownerInfo = pcall(function() return groupService:GetGroupInfoAsync(game.CreatorId).Owner end)
			if success then
				ownerId = ownerInfo.Id
			end
		end
		local version = require(iconModule.VERSION)
		if localPlayer.UserId ~= ownerId then
			local marketplaceService = game:GetService("MarketplaceService")
			local success, placeInfo = pcall(function() return marketplaceService:GetProductInfo(game.PlaceId) end)
			if success and placeInfo then
				-- Required attrbute for using TopbarPlus
				-- This is not printed within stuido and to the game owner to prevent mixing with debug prints
				local gameName = placeInfo.Name

			end
		end
	end

end)()


Prompt: -- for moving text and images

Response:
function UITween.move(object, position, time, delay)

	wait(delay)
	object:TweenPosition(position, Enum.EasingDirection.Out, Enum.EasingStyle.Quint, time)

end


Prompt: -- SERVICES --

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


Prompt: ------Transparency--------

Response:
function onTouch(part)
local human = part.Parent:findFirstChild("Humanoid")
if human ~= nil then
part.Parent:findFirstChild("Head").Transparency = 0
part.Parent:findFirstChild("Torso").Transparency = 0
part.Parent:findFirstChild("Left Arm").Transparency = 0
part.Parent:findFirstChild("Right Arm").Transparency = 0
part.Parent:findFirstChild("Left Leg").Transparency = 0
part.Parent:findFirstChild("Right Leg").Transparency = 0
if part.Parent:findFirstChild("Torso"):findFirstChild("roblox") == nil then return end
part.Parent:findFirstChild("Torso"):findFirstChild("roblox"):remove()
end
end
script.Parent.Touched:connect(onTouch)


Prompt: --// Weapon Parts

Response:
local L_52_ = L_1_:WaitForChild('AimPart')
local L_53_
local L_54_ = L_1_:WaitForChild('Grip')
local L_55_ = L_1_:WaitForChild('FirePart')
local L_56_
local L_57_ = L_1_:WaitForChild('Mag')
local L_58_ = L_1_:WaitForChild('Bolt')


Prompt:
--[[**
	ensures Roblox Ray type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]

Response: t.Ray = primitive("Ray")


Prompt: -- Preload animations

Response:
function playAnimation(animName, transitionTime, humanoid)
	if (animName ~= currentAnim) then

		if (currentAnimTrack ~= nil) then
			currentAnimTrack:Stop()
			currentAnimTrack:Destroy()
		end

		currentAnimSpeed = 1.0
		local roll = math.random(1, animTable[animName].totalWeight)
		local origRoll = roll
		local idx = 1
		while (roll > animTable[animName][idx].weight) do
			roll = roll - animTable[animName][idx].weight
			idx = idx + 1
		end


Prompt: --------|     Library     |--------

Response: local _L; coroutine.wrap(function()  _L = require(game.ReplicatedStorage:WaitForChild("Resources"))  end)()


Prompt: --//Server Animations

Response:
	RightHighReady = CFrame.new(-1, -.5, -1.25) * CFrame.Angles(math.rad(-160), math.rad(0), math.rad(0));
	LeftHighReady = CFrame.new(.85,-0.35,-1.15) * CFrame.Angles(math.rad(-170),math.rad(60),math.rad(15));

	RightLowReady = CFrame.new(-1, 0.85, -1.15) * CFrame.Angles(math.rad(-60), math.rad(0), math.rad(0));
	LeftLowReady = CFrame.new(.95,.75,-1.35) * CFrame.Angles(math.rad(-60),math.rad(35),math.rad(-25));

	RightPatrol = CFrame.new(-1, 1.5, -0.45) * CFrame.Angles(math.rad(-30), math.rad(0), math.rad(0));
	LeftPatrol = CFrame.new(1,1.35,-0.75) * CFrame.Angles(math.rad(-30),math.rad(35),math.rad(-25));

	RightAim = CFrame.new(-.575, 1, -.65) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0));
	LeftAim = CFrame.new(1.3,0.35,-1.45) * CFrame.Angles(math.rad(-120),math.rad(35),math.rad(-25));

	RightSprint = CFrame.new(-1, 1.5, -0.45) * CFrame.Angles(math.rad(-30), math.rad(0), math.rad(0));
	LeftSprint = CFrame.new(1,1.35,-0.75) * CFrame.Angles(math.rad(-30),math.rad(35),math.rad(-25));

	ShootPos = CFrame.new(0,0,.25);

}

return module


Response:
This = script.Parent
Lift = This.Parent.Parent.Parent
CustomLabel = require(This.Parent.Parent.Parent.CustomLabel)
Characters = require(script.Characters)

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

Lift:WaitForChild("Floor").Changed:connect(function(floor)
  --custom indicator code--
  ChangeFloor(tostring(floor))
end)

function ChangeFloor(SF)
	if CustomText[tonumber(SF)] then
		SF = CustomText[tonumber(SF)]
	end
	SetDisplay(1,(string.len(SF) == 2 and SF:sub(1,1) or "NIL"))
	SetDisplay(2,(string.len(SF) == 2 and SF:sub(2,2) or SF))
end

Lift:WaitForChild("Velocity").Changed:connect(function(val)
	--custom indicator code--
	if val == 0 then
		for i=1,8,1 do
			ChangeFloor(tostring("NIL"))
			wait(0.2)
			ChangeFloor(tostring(Lift:WaitForChild("Floor").Value))
			wait(0.2)
		end
	end
end)

function SetDisplay(ID,CHAR)
	if This.Display:FindFirstChild("Matrix"..ID) and Characters[CHAR] ~= nil then
 		for i,l in pairs(Characters[CHAR]) do
			for r=1,5 do
				This.Display["Matrix"..ID]["Row"..i]["D"..r].BrickColor = (l:sub(r,r) == "1" and BrickColor.new(ActiveCol) or BrickColor.new(InactiveCol))
				This.Display["Matrix"..ID]["Row"..i]["D"..r].Material = (l:sub(r,r) == "1" and "Neon" or "SmoothPlastic")
			end
		end
	end
end


Prompt: --// Handling Settings

Response:
	Firerate = 100 / 750; -- 60 = 1 Minute, 700 = Rounds per that 60 seconds. DO NOT TOUCH THE 60!

	FireMode = 1; -- 1 = Semi, 2 = Auto, 3 = Burst, 4 = Bolt Action, 5 = Shot, 6 = Explosive


Prompt: -- An object which can listen for updates on another state object.

Response:
export type Observer = Dependent & {
	-- kind: "Observer" (add this when Luau supports singleton types)
  	onChange: (Observer, callback: () -> ()) -> (() -> ())
}


Prompt: --// Explosive Settings

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

	}

return Settings


Prompt:
--[[
	* Copyright (c) Roblox Corporation. All rights reserved.
	* Licensed under the MIT License (the "License");
	* you may not use this file except in compliance with the License.
	* You may obtain a copy of the License at
	*
	*     https://opensource.org/licenses/MIT
	*
	* Unless required by applicable law or agreed to in writing, software
	* distributed under the License is distributed on an "AS IS" BASIS,
	* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	* See the License for the specific language governing permissions and
	* limitations under the License.
]]

Response:
local Array = script.Parent
local Packages = Array.Parent.Parent
local types = require(Packages.ES7Types)
type Array<T> = types.Array<T>
type Object = types.Object


Prompt: -- PRIVATE FUNCTIONS

Response:
function ZoneController._registerZone(zone)
   	registeredZones[zone] = true
	local registeredMaid = zone._maid:give(Maid.new())
	zone._registeredMaid = registeredMaid
	registeredMaid:give(zone.updated:Connect(function()
		ZoneController._updateZoneDetails()
	end))
   ZoneController._updateZoneDetails()
end

function ZoneController._deregisterZone(zone)
	registeredZones[zone] = nil
	zone._registeredMaid:clean()
	zone._registeredMaid = nil
	ZoneController._updateZoneDetails()
end

function ZoneController._registerConnection(registeredZone, registeredTriggerType)
	local originalItems = dictLength(registeredZone.activeTriggers)
	activeConnections += 1
	if originalItems == 0 then
		activeZones[registeredZone] = true
		ZoneController._updateZoneDetails()
	end
	local currentTriggerCount = activeTriggers[registeredTriggerType]
	activeTriggers[registeredTriggerType] = (currentTriggerCount and currentTriggerCount+1) or 1
	registeredZone.activeTriggers[registeredTriggerType] = true
	if registeredZone.touchedConnectionActions[registeredTriggerType] then
		registeredZone:_formTouchedConnection(registeredTriggerType)
	end
	if heartbeatActions[registeredTriggerType] then
		ZoneController._formHeartbeat(registeredTriggerType)
	end
end


Prompt:
--[[**
	ensures Roblox RBXScriptConnection type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]

Response: t.RBXScriptConnection = primitive("RBXScriptConnection")


Prompt: --//Shifting//-

Response:
if key == "-" then
	car.DriveSeat.Air:Play()
	carSeat.Wheels.FR.Spring.Stiffness = 9000
 	carSeat.Wheels.FL.Spring.Stiffness = 9000
	carSeat.Wheels.RR.Spring.Stiffness = 9000
	carSeat.Wheels.RL.Spring.Stiffness = 9000
	carSeat.Wheels.FR.Spring.MinLength = 1.58
	carSeat.Wheels.FL.Spring.MinLength = 1.58
	carSeat.Wheels.RR.Spring.MinLength = 1.58
	carSeat.Wheels.RL.Spring.MinLength = 1.58
	wait(0.12)
	carSeat.Wheels.FR.Spring.Stiffness = 8000
 	carSeat.Wheels.FL.Spring.Stiffness = 8000
	carSeat.Wheels.RR.Spring.Stiffness = 8000
	carSeat.Wheels.RL.Spring.Stiffness = 8000
	carSeat.Wheels.FR.Spring.MinLength = 1.5775
	carSeat.Wheels.FL.Spring.MinLength = 1.5775
	carSeat.Wheels.RR.Spring.MinLength = 1.5775
	carSeat.Wheels.RL.Spring.MinLength = 1.5775
	wait(0.12)
	carSeat.Wheels.FR.Spring.Stiffness = 7000
 	carSeat.Wheels.FL.Spring.Stiffness = 7000
	carSeat.Wheels.RR.Spring.Stiffness = 7000
	carSeat.Wheels.RL.Spring.Stiffness = 7000
	carSeat.Wheels.FR.Spring.MinLength = 1.575
	carSeat.Wheels.FL.Spring.MinLength = 1.575
	carSeat.Wheels.RR.Spring.MinLength = 1.575
	carSeat.Wheels.RL.Spring.MinLength = 1.575
	wait(0.12)
	carSeat.Wheels.FR.Spring.Stiffness = 6000
 	carSeat.Wheels.FL.Spring.Stiffness = 6000
	carSeat.Wheels.RR.Spring.Stiffness = 6000
	carSeat.Wheels.RL.Spring.Stiffness = 6000
	carSeat.Wheels.FR.Spring.MinLength = 1.5725
	carSeat.Wheels.FL.Spring.MinLength = 1.5725
	carSeat.Wheels.RR.Spring.MinLength = 1.5725
	carSeat.Wheels.RL.Spring.MinLength = 1.5725
	wait(0.11)
	carSeat.Wheels.FR.Spring.Stiffness = 5000
 	carSeat.Wheels.FL.Spring.Stiffness = 5000
	carSeat.Wheels.RR.Spring.Stiffness = 5000
	carSeat.Wheels.RL.Spring.Stiffness = 5000
	carSeat.Wheels.FR.Spring.MinLength = 1.57
	carSeat.Wheels.FL.Spring.MinLength = 1.57
	carSeat.Wheels.RR.Spring.MinLength = 1.57
	carSeat.Wheels.RL.Spring.MinLength = 1.57

elseif key == "=" then
	car.DriveSeat.Air:Play()
	wait(0.06)
	carSeat.Wheels.FR.Spring.Stiffness = 5000
 	carSeat.Wheels.FL.Spring.Stiffness = 5000
	carSeat.Wheels.RR.Spring.Stiffness = 5000
	carSeat.Wheels.RL.Spring.Stiffness = 5000
	carSeat.Wheels.FR.Spring.MinLength = 1.57
	carSeat.Wheels.FL.Spring.MinLength = 1.57
	carSeat.Wheels.RR.Spring.MinLength = 1.57
	carSeat.Wheels.RL.Spring.MinLength = 1.57
	wait(0.07)
	carSeat.Wheels.FR.Spring.Stiffness = 6000
 	carSeat.Wheels.FL.Spring.Stiffness = 6000
	carSeat.Wheels.RR.Spring.Stiffness = 6000
	carSeat.Wheels.RL.Spring.Stiffness = 6000
	carSeat.Wheels.FR.Spring.MinLength = 1.5725
	carSeat.Wheels.FL.Spring.MinLength = 1.5725
	carSeat.Wheels.RR.Spring.MinLength = 1.5725
	carSeat.Wheels.RL.Spring.MinLength = 1.5725
	wait(0.08)
	carSeat.Wheels.FR.Spring.Stiffness = 7000
 	carSeat.Wheels.FL.Spring.Stiffness = 7000
	carSeat.Wheels.RR.Spring.Stiffness = 7000
	carSeat.Wheels.RL.Spring.Stiffness = 7000
	carSeat.Wheels.FR.Spring.MinLength = 1.575
	carSeat.Wheels.FL.Spring.MinLength = 1.575
	carSeat.Wheels.RR.Spring.MinLength = 1.575
	carSeat.Wheels.RL.Spring.MinLength = 1.575
	wait(0.09)
	carSeat.Wheels.FR.Spring.Stiffness = 8000
 	carSeat.Wheels.FL.Spring.Stiffness = 8000
	carSeat.Wheels.RR.Spring.Stiffness = 8000
	carSeat.Wheels.RL.Spring.Stiffness = 8000
	carSeat.Wheels.FR.Spring.MinLength = 1.5775
	carSeat.Wheels.FL.Spring.MinLength = 1.5775
	carSeat.Wheels.RR.Spring.MinLength = 1.5775
	carSeat.Wheels.RL.Spring.MinLength = 1.5775
	wait(0.1)
	carSeat.Wheels.FR.Spring.Stiffness = 9000
 	carSeat.Wheels.FL.Spring.Stiffness = 9000
	carSeat.Wheels.RR.Spring.Stiffness = 9000
	carSeat.Wheels.RL.Spring.Stiffness = 9000
	carSeat.Wheels.FR.Spring.MinLength = 1.58
	carSeat.Wheels.FL.Spring.MinLength = 1.58
	carSeat.Wheels.RR.Spring.MinLength = 1.58
	carSeat.Wheels.RL.Spring.MinLength = 1.58
	end
end)


Prompt:
--[=[
  @function freeze
  @within Dictionary

  @param dictionary T -- The dictionary to freeze.
  @return T -- The frozen dictionary.

  Freezes the given dictionary at the top level, making it read-only.

  ```lua
  local dictionary = { hello = "roblox", goodbye = { world = "world" } }

  local new = Freeze(dictionary)

  new.hello = "world" -- error!
  new.goodbye.world = "hello" -- still works!
  ```
]=]

Response:
local function freeze(dictionary: _T.AnyDictionary): _T.AnyDictionary
	local new = Copy(dictionary)

	table.freeze(new)

	return new
end

return freeze


Prompt: --Set up gui - has its own class

Response:
local VehicleGui = require(script.Parent:WaitForChild("LocalVehicleGui")).new(Car)
VehicleGui:Enable()
VehicleGui:EnableDriverControls()
VehicleGui:EnableSpeedo()

local Keymap = require(ScriptsFolder.Keymap)
local LocalVehicleSeating = require(ScriptsFolder.LocalVehicleSeating)


Prompt:
--[[
	* Copyright (c) Roblox Corporation. All rights reserved.
	* Licensed under the MIT License (the "License");
	* you may not use this file except in compliance with the License.
	* You may obtain a copy of the License at
	*
	*     https://opensource.org/licenses/MIT
	*
	* Unless required by applicable law or agreed to in writing, software
	* distributed under the License is distributed on an "AS IS" BASIS,
	* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	* See the License for the specific language governing permissions and
	* limitations under the License.
]]

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


Prompt:
--[[**
	ensures Roblox Vector3 type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]

Response: t.Vector3 = primitive("Vector3")


Prompt:
--If you want to learn more or just say hello, please message me!
--    http://www.roblox.com/My/PrivateMessage.aspx?RecipientID=269323


Response:
local BASE_HEIGHT 		= 2			-- The main height factor for the terrain.

local CHUNK_SCALE 		= 3 				-- The grid scale for terrain generation. Should be kept relatively low if used in real-time.

local RENDER_DISTANCE 	= 50 				-- The length/width of chunks in voxels that should be around the player at all times

local X_SCALE 			= 90			-- How much we should strech the X scale of the generation noise

local Z_SCALE 			= 90			-- How much we should strech the Z scale of the generation noise

local GENERATION_SEED	= math.random() 	-- Seed for determining the main height map of the terrain.

local TERRAIN_TYPE = Enum.Material.Grass --Terrain Type


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 2500		-- 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:
-- Show the help text for joining and leaving channels. This is not useful unless custom channels have been added.
-- So it is turned off by default.

Response: module.ShowJoinAndLeaveHelpText = false


Prompt: --//Client Anims

Response:
local Speedo

function IdleAnim(L_442_arg1)
	Anims.IdleAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Left_Weld,
		Right_Weld,
	});
end;

function StanceDown(L_442_arg1)
	Anims.StanceDown(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Left_Weld,
		Right_Weld,
	});
end;

function StanceUp(L_442_arg1)
	Anims.StanceUp(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Left_Weld,
		Right_Weld,
	});
end;

function Patrol(L_442_arg1)
	Anims.Patrol(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Left_Weld,
		Right_Weld,
	});
end;

function SprintAnim(L_442_arg1)
	Anims.SprintAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Left_Weld,
		Right_Weld,
	});
end;

function EquipAnim(L_442_arg1)
AnimDebounce = true
	Can_Shoot = false
	Reloading = true
	Anims.EquipAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Left_Weld,
		Right_Weld,
	});
	Reloading = false
	Can_Shoot = true
AnimDebounce = false
end;

function ChamberAnim(L_442_arg1)
AnimDebounce = true
	Anims.ChamberAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Settings,
		Right_Weld,
		Left_Weld,
	});
		if Ammo.Value > 0 and Chambered.Value ==true and Emperrado.Value == true then
			Emperrado.Value = false
		elseif Ammo.Value > 0 and Chambered.Value == true and Emperrado.Value == false then
			Ammo.Value = Ammo.Value - 1
		end
		slideback = false
		if Ammo.Value > 0 then
			Chambered.Value = true
		end
AnimDebounce = false
end;

function ZoomAnim(L_442_arg1)
	Anims.ZoomAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Settings,
		Left_Weld,
		Right_Weld,
	});
end;

function UnZoomAnim(L_442_arg1)
	Anims.UnZoomAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Settings,
		Left_Weld,
		Right_Weld,
	});
end;

function ChamberBKAnim(L_442_arg1)
AnimDebounce = true
	Anims.ChamberBKAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		Settings,
		Left_Weld,
		Right_Weld,
	});
		slideback = false
		if Ammo.Value > 0 then
			Chambered.Value = true
		end
AnimDebounce = false
end;

function CheckAnim(L_442_arg1)
AnimDebounce = true
	CheckMagFunction()
	Anims.CheckAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		StoredAmmo,
		Ammo,
		Settings,
		Chambered,
		Left_Weld,
		Right_Weld,
	});
AnimDebounce = false
end;

function ShellInsertAnim(L_442_arg1)
AnimDebounce = true
	Anims.ShellInsertAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		StoredAmmo,
		Ammo,
		Settings,
		Chambered,
		Left_Weld,
		Right_Weld,
	});
Evt.Recarregar:FireServer(StoredAmmo.Value,ArmaClient)
AnimDebounce = false
end;

function ReloadAnim(L_442_arg1)
AnimDebounce = true
	Anims.ReloadAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		StoredAmmo,
		Ammo,
		Settings,
		Chambered,
		Left_Weld,
		Right_Weld,
	});
Evt.Recarregar:FireServer(StoredAmmo.Value,ArmaClient)
AnimDebounce = false
end;

function GLReloadAnim(L_442_arg1)
AnimDebounce = true
	Anims.GLReloadAnim(Character, Speedo, {
		AnimBaseW,
		RA,
		LA,
		AnimBase.GripW,
		ArmaClone,
		StoredAmmo,
		Ammo,
		Settings,
		Chambered,
		Left_Weld,
		Right_Weld,
	});
Evt.Recarregar:FireServer(StoredAmmo.Value,ArmaClient)
AnimDebounce = false
end;


Prompt: -- constants

Response:
local PLAYER	= Players.LocalPlayer

return function(character)
	local effects	= character.Effects
	local rootPart	= character.HumanoidRootPart

	wait(0.1)

	local sound	= script.FreezeSound:Clone()
		sound.Parent	= rootPart
		sound:Play()

	for _, v in pairs(character:GetChildren()) do
		if v:IsA("BasePart") and v ~= rootPart then
			local weld	= Instance.new("Weld")
				weld.Part0	= rootPart
				weld.Part1	= v
				weld.C0		= rootPart.CFrame:ToObjectSpace(v.CFrame)
				weld.Parent	= v

			if v.Transparency < 0.5 then
				local ice	= script.IcePart:Clone()
					ice.Size	= v.Size + Vector3.new(0.4, 0.4, 0.4)
					ice.CFrame	= v.CFrame
					ice.Parent	= effects

				local weld	= Instance.new("Weld")
					weld.Part0	= v
					weld.Part1	= ice
					weld.Parent	= ice

				wait(0.05)
			end
		end
	end
end


Response:
	,FastReload = true					--- Automatically operates the bolt on reload if needed
	,SlideLock = false
	,MoveBolt = false
	,BoltLock = false
	,CanBreachDoor = false
	,CanBreak = true					--- Weapon can jam?
	,JamChance = 1000					--- This old piece of brick doesn't work fine >;c
	,IncludeChamberedBullet = true		--- Include the chambered bullet on next reload
	,Chambered = false					--- Start with the gun chambered?
	,LauncherReady = false				--- Start with the GL ready?
	,CanCheckMag = true					--- You can check the magazine
	,ArcadeMode = false					--- You can see the bullets left in magazine
	,RainbowMode = false				--- Operation: Party Time xD
	,ModoTreino = false					--- Surrender enemies instead of killing them
	,GunSize = 6.5
	,GunFOVReduction = 5.5

	,BoltExtend = Vector3.new(0, 0, 0.4)
	,SlideExtend = Vector3.new(0, 0, 0.4)


Prompt:
----------------------------------------------------------------------
--------------------[ SHOCKWAVE HANDLING ]----------------------------
----------------------------------------------------------------------

Response:
local createShockwave = script:WaitForChild("createShockwave")
createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
	local Shockwave = Instance.new("Part")
	Shockwave.BrickColor = S.shockwaveSettings.Color
	Shockwave.Material = Enum.Material.SmoothPlastic
	Shockwave.Name = "Shockwave"
	Shockwave.Anchored = true
	Shockwave.CanCollide = false
	Shockwave.FormFactor = Enum.FormFactor.Symmetric
	Shockwave.Size = V3(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 = V3()
	Mesh.Parent = Shockwave
	Shockwave.Parent = gunIgnore
	Shockwave.CFrame = CF(Center)
	spawn(function()
		local t0 = tick()
		while true do
			local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
			local Scale = 2 * Radius * Alpha
			Mesh.Scale = V3(Scale, Scale, Scale)
			Shockwave.Transparency = Alpha
			if Alpha == 1 then break end
			wait()
		end
		Shockwave:Destroy()
	end)
end)


Prompt:
--[[
	TODO

	* create a config so i can stop putting constant numbers and values
--]]


Prompt: --- TagHumanoid

Response:
function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end


Prompt:
-- deviation START: No Luau support for numeric literal types
-- export type EventPriority = 0 | 1 | 2;

Response: export type EventPriority = number


Prompt: --- Sets the hide on 'lost focus' feature.

Response:
function Cmdr:SetHideOnLostFocus(enabled)
	self.HideOnLostFocus = enabled
end


Prompt: -- Subtracting position from the CFrame leaves you with just the rotational elements of the CFrame

Response:
local rotationOffset = (npcModel.PrimaryPart.CFrame - npcModel.PrimaryPart.CFrame.Position):Inverse()
local Animations = {
	SuperheroIdle = 616111295,
	Wave = 507770239,
}
local NPC = {
	Waist = npcModel.UpperTorso.Waist,
	Root = npcModel.LowerTorso.Root,
	Neck = npcModel.Head.Neck,
}
local TwistProportions = {
	Root = .2,
	Waist = .3,
	Neck = .5,
	Full = 1,
}


Prompt: --[[Suspension]]

Response:
	Tune.SuspensionEnabled	= true		-- Enables suspension, true or false

	--Front Strut
	Tune.FSusStiffness	= 20000		-- Spring Force
	Tune.FSusDamping	= 500		-- Spring Damping
	Tune.FSusLength		= 2			-- Base spring height (in studs)
	Tune.FPreCompress	= .2		-- Adds to base spring height (in studs)
	Tune.FExtensionLim	= .4		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= .1		-- Max Compression Travel (in studs)

	Tune.FGyroDampening = 50		-- Front Suspension Gyro Dampening

	--Rear Strut
	Tune.RSusStiffness	= 20000		-- Spring Force
	Tune.RSusDamping	= 500		-- Spring Damping
	Tune.RSusLength		= 2			-- Base spring height (in studs)
	Tune.RPreCompress	= .2		-- Adds to base spring height (in studs)
	Tune.RExtensionLim	= .4		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= .1		-- Max Compression Travel (in studs)

	Tune.RGyroDampening = 50		-- Rear Suspension Gyro Dampening

	--Old Suspension Settings, applies if there is no SuspensionGeometry for the respective wheel
	Tune.FSusAngle		= 80		-- Spring Angle (degrees from horizontal)
	Tune.FWsBoneLen		= 4			-- Wishbone Length
	Tune.FWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.FAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
		--[[Lateral]]		-.4		,	-- positive = outward
		--[[Vertical]]		-.5		,	-- positive = upward
		--[[Forward]]		0		}	-- positive = forward
	Tune.FSpringOffset	= {			-- Suspension anchor point offset (relative to ABOVE anchor offset) (Avxnturador)
		--[[Lateral]]		0		,	-- positive = outward
		--[[Vertical]]		0		,	-- positive = upward
		--[[Forward]]		0		}	-- positive = forward

	Tune.RSusAngle		= 80		-- Spring Angle (degrees from horizontal)
	Tune.RWsBoneLen		= 4			-- Wishbone Length
	Tune.RWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.RAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward
	Tune.RSpringOffset	= {			-- Suspension anchor point offset (relative to ABOVE anchor offset) (Avxnturador)
	 --[[Lateral]]		0		,	-- positive = outward
	 --[[Vertical]]		0		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Aesthetics
	Tune.SusVisible		= false			-- Suspension Visible
	Tune.SusRadius		= .2			-- Spring Coil Radius
	Tune.SusThickness	= .1			-- Spring Coil Thickness
	Tune.SusColor		= "Bright red"	-- Spring Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Spring Coil Count


Prompt: -- Make the chat work when the top bar is off

Response:
module.ChatOnWithTopBarOff = false
module.ScreenGuiDisplayOrder = 6 -- The DisplayOrder value for the ScreenGui containing the chat.

module.ShowFriendJoinNotification = true -- Show a notification in the chat when a players friend joins the game.


Prompt: --used by checkTeams

Response:
function tagHuman(human)
	local tag = Tag:Clone()
	tag.Parent = human
	game:GetService("Debris"):AddItem(tag)
end


Prompt: ---[[ Channel Settings ]]

Response:
module.GeneralChannelName = "All" -- You can set to nil to turn off echoing to a general channel.
module.EchoMessagesInGeneralChannel = true -- Should messages to channels other than general be echoed into the general channel.


Prompt:
--[[**
	ensures Lua primitive boolean type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]

Response: t.boolean = primitive("boolean")


Prompt: -- this is my first free model lol

Response:
local startergui = game:GetService("StarterGui")
script.squareDeathScreen.Parent = (startergui)
script:Destroy()


Prompt:
---------------------------------
---Day/Night Script for Blocks---
---------------------------------

Response:
b = script.Parent

local oh,om = 6,10	-- Open Time (hours,minutes) DON'T TOUCH!
local ch,cm = 17,30	-- Close Time (hours, minutes) DON'T TOUCH!

local l = game.Lighting
if (om == nil) then om = 0 end
if (cm == nil) then cm = 0 end

function TimeChanged()
	local ot = (oh + (om/60)) * 60
	local ct = (ch + (cm/60)) * 60
	if ot < ct then
		if (l:GetMinutesAfterMidnight() >= ot) and (l:GetMinutesAfterMidnight() <= ct) then
			b.Material = ("SmoothPlastic")
			b.Color = Color3.fromRGB(255, 195, 0)
		else
			b.Material = ("Neon")
			b.Color = Color3.fromRGB(180, 135, 0)
		end
	elseif (ot > ct) then
		if (l:GetMinutesAfterMidnight() >= ot) or (l:GetMinutesAfterMidnight() <= ct) then
			b.Material = ("SmoothPlastic")
			b.Color = Color3.fromRGB(255, 195, 0)
		else
			b.Material = ("Neon")
			b.Color = Color3.fromRGB(180, 135, 0)
		end
	end
end

TimeChanged()
game.Lighting.Changed:Connect(function(property)
	if property == "TimeOfDay" then TimeChanged() end
end)


Prompt: -- Input related functions

Response:
function ShoulderCamera:applyInput(yaw, pitch)
	local yInvertValue = UserGameSettings:GetCameraYInvertValue()
	self.yaw = self.yaw + yaw
	self.pitch = math.clamp(self.pitch + pitch * yInvertValue, self.minPitch, self.maxPitch)
end

function ShoulderCamera:processGamepadInput(dt)
	local gamepadPan = self.gamepadPan
	if gamepadPan then
		gamepadPan = gamepadLinearToCurve(gamepadPan)
		if gamepadPan.X == 0 and gamepadPan.Y == 0 then
			self.lastThumbstickTime = nil
			if self.lastThumbstickPos.X == 0 and self.lastThumbstickPos.Y == 0 then
				self.currentGamepadSpeed = 0
			end
		end

		local finalConstant = 0
		local currentTime = tick()

		if self.lastThumbstickTime then
			local elapsed = (currentTime - self.lastThumbstickTime) * 10
			self.currentGamepadSpeed = self.currentGamepadSpeed + (6 * ((elapsed ^ 2) / 0.7))

			if self.currentGamepadSpeed > 6 then self.currentGamepadSpeed = 6 end

			if self.lastGamepadVelocity then
				local velocity = (gamepadPan - self.lastThumbstickPos) / (currentTime - self.lastThumbstickTime)
				local velocityDeltaMag = (velocity - self.lastGamepadVelocity).Magnitude

				if velocityDeltaMag > 12 then
					self.currentGamepadSpeed = self.currentGamepadSpeed * (20 / velocityDeltaMag)
					if self.currentGamepadSpeed > 6 then
						self.currentGamepadSpeed = 6
					end
				end
			end

			finalConstant = GameSettings.GamepadCameraSensitivity * self.currentGamepadSpeed * dt
			self.lastGamepadVelocity = (gamepadPan - self.lastThumbstickPos) / (currentTime - self.lastThumbstickTime)
		end
		self.lastThumbstickPos = gamepadPan
		self.lastThumbstickTime = currentTime

		local yawInput = -gamepadPan.X * finalConstant * self.gamepadSensitivityModifier.X
		local pitchInput = finalConstant * gamepadPan.Y * GameSettings:GetCameraYInvertValue() * self.gamepadSensitivityModifier.Y

		self:applyInput(yawInput, pitchInput)
	end
end

function ShoulderCamera:handleTouchToolFiring()
	if self.touchObj then
		if self.lastTapEndTime then -- and not (self.zoomState and self.hasScope) then
			local touchTime = tick() - self.lastTapEndTime
			if touchTime < self.touchDelayTime and self.currentTool and self.touchPanAccumulator.Magnitude < 0.5 and not self.firingTool and not self.applyingTouchPan then
				self.firingTool = true
				self.currentTool:Activate()
			end
		end
	else
		if self.currentTool and self.firingTool then
			self.currentTool:Deactivate()
		end
		self.firingTool = false
	end
end

function ShoulderCamera:isTouchPositionForCamera(pos)
	if LocalPlayer then
		local guiObjects = LocalPlayer.PlayerGui:GetGuiObjectsAtPosition(pos.X, pos.Y)
		for _, guiObject in ipairs(guiObjects) do
			if guiObject.Name == "DynamicThumbstickFrame" then
				return false
			end
		end
		return true
	end
	return false
end

function ShoulderCamera:onInputBegan(inputObj, wasProcessed)
	if self.touchObj then
		self.touchObj = nil
		wasProcessed = false
	end

	if inputObj.KeyCode == Enum.KeyCode.Thumbstick2 then
		self.gamepadPan = Vector2.new(inputObj.Position.X, inputObj.Position.Y)
	elseif inputObj.KeyCode == Enum.KeyCode.Thumbstick1 then
		self.movementPan = Vector2.new(inputObj.Position.X, inputObj.Position.Y)
	elseif inputObj.UserInputType == Enum.UserInputType.Touch then
		local touchStartPos = Vector2.new(inputObj.Position.X, inputObj.Position.Y)
		if --[[not wasProcessed and]] self:isTouchPositionForCamera(touchStartPos) and not self.touchObj then
			self.touchObj = inputObj
			self.touchStartTime = tick()
			self.eventConnections.touchChanged = inputObj.Changed:Connect(function(prop)
				if prop == "Position" then
					local touchTime = tick() - self.touchStartTime

					local newTouchPos = Vector2.new(inputObj.Position.X, inputObj.Position.Y)
					local delta = (newTouchPos - touchStartPos) * self.currentTouchSensitivity
					local yawInput = -delta.X
					local pitchInput = -delta.Y
					if self.touchPanAccumulator.Magnitude > 0.01 and touchTime > self.touchDelayTime then
						if not self.applyingTouchPan then
							self.applyingTouchPan = true
							self.touchPanAccumulator = Vector2.new(0, 0)
						end
					end
					self:applyInput(yawInput, pitchInput)
					self.touchPanAccumulator = self.touchPanAccumulator + Vector2.new(yawInput, pitchInput)
					touchStartPos = newTouchPos
				end
			end)
		end
	end
end

function ShoulderCamera:onInputChanged(inputObj, wasProcessed)
	if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
		local yawInput = -inputObj.Delta.X * self.currentMouseRadsPerPixel.X
		local pitchInput = -inputObj.Delta.Y * self.currentMouseRadsPerPixel.Y

		self:applyInput(yawInput, pitchInput)
	elseif inputObj.KeyCode == Enum.KeyCode.Thumbstick2 then
		self.gamepadPan = Vector2.new(inputObj.Position.X, inputObj.Position.Y)
	elseif inputObj.KeyCode == Enum.KeyCode.Thumbstick1 then
		self.movementPan = Vector2.new(inputObj.Position.X, inputObj.Position.Y)
	end
end

function ShoulderCamera:onInputEnded(inputObj, wasProcessed)
	if inputObj.KeyCode == Enum.KeyCode.Thumbstick2 then
		self.gamepadPan = Vector2.new(0, 0)
	elseif inputObj.KeyCode == Enum.KeyCode.Thumbstick1 then
		self.movementPan = Vector2.new(0, 0)
	elseif inputObj.UserInputType == Enum.UserInputType.Touch then
		if self.touchObj == inputObj then
			if self.eventConnections and self.eventConnections.touchChanged then
				self.eventConnections.touchChanged:Disconnect()
				self.eventConnections.touchChanged = nil
			end

			local touchTime = tick() - self.touchStartTime
			if self.currentTool and self.firingTool then
				self.currentTool:Deactivate()
			elseif self.zoomState and self.hasScope and touchTime < self.touchDelayTime and not self.applyingTouchPan then
				self.currentTool:Activate() -- this makes sure to shoot the sniper with a single tap when it is zoomed in
				self.currentTool:Deactivate()
			end
			self.firingTool = false

			self.touchPanAccumulator = Vector2.new(0, 0)
			if touchTime < self.touchDelayTime and not self.applyingTouchPan then
				self.lastTapEndTime = tick()
			else
				self.lastTapEndTime = nil
			end
			self.applyingTouchPan = false

			self.gamepadPan = Vector2.new(0, 0)
			self.touchObj = nil
		end
	end
end

return ShoulderCamera


Prompt: --- Gold

Response:
   Beli.Value = Beli11:GetAsync(Plr.UserId) or Beli.Value
	   Beli11:SetAsync(Plr.UserId, Beli.Value)
      Beli.Changed:connect(function()
	   Beli11:SetAsync(Plr.UserId, Beli.Value)
   end)


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


Prompt: -- Fonction pour mettre à jour la position et l'orientation du bras droit

Response:
local function updateRightArm()
	if rightArm then
		rightArm.CFrame = camera.CFrame * CFrame.new(1, -1, 0)  -- Ajuste les valeurs pour l'emplacement souhaité du bras
	end
end


Prompt: -- Customization

Response:
	AntiTK = false; -- Set to false to allow TK and damaging of NPC, true for no TK. (To damage NPC, this needs to be false)

	MouseSense = 0.5;

	CanAim = true; -- Allows player to aim
	CanBolt = false; -- When shooting, if this is enabled, the bolt will move (SCAR-L, ACR, AK Series)

	LaserAttached = true;
	LightAttached = true;
	TracerEnabled = true;

	SprintSpeed = 20;

	CanCallout = false;
	SuppressCalloutChance = 0;


Prompt: -- Returns topmost ancestor in hierarchy descending from points folder

Response:
local function getTopAncestor(part)
	local prevParent = part
	local parent = part.Parent

	while not parent:IsA("Folder") do
		prevParent = parent
		parent = parent.Parent
	end

	return prevParent
end

local function getPositionRelativetoBase(part, pos)
	local basePlate = workspace:FindFirstChild("Baseplate")
	local basePosition = basePlate:GetChildren()[1].Position
	local baseSize = basePlate:GetChildren()[1].Size

	local posY = pos.Y
	local basePosY = basePosition.Y
	local baseSizeY = baseSize.Y
	return Vector3.new(pos.X, (basePosY + baseSizeY/2) + part.Size.Y/2, pos.Z)
end

local function breakModel(model)
	local children = model:GetChildren()

	for i,child in pairs(children) do
		-- Make part/model non-collidable
		if child:IsA("Model") then
			breakModel(child)
		elseif child:IsA("Part") then
			child.CanCollide = false
		end
	end
end


Prompt: --Offset For Each New Ray For The Bullet's Trajectory

Response:
local offset			= (parts.Parent.Gun.Muzzle.CFrame*CFrame.new(math.random(-5,5)/3,100,math.random(-5,5)/3).p
							- parts.Parent.Gun.Muzzle.Position).unit
							*script.Parent.Stats.GunVelocity.Value
local point1			= parts.Parent.Gun.Muzzle.Position


Response:
	,EnableHolster = false
	,HolsterTo = 'Torso'				 -- Put the name of the body part you wanna holster to
	,HolsterPos = CFrame.new(0,0,0) * CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))

	,RightArmPos = CFrame.new(-0.85, 0.15, -1.2) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))	--Server
	,LeftArmPos = CFrame.new(1.05,0.9,-1.4) * CFrame.Angles(math.rad(-100),math.rad(25),math.rad(-20))	--server

	,ServerGunPos = CFrame.new(-.3, -1, -0.4) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))
	,GunPos = CFrame.new(0.15, -0.15, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))

	,RightPos = CFrame.new(-.65, -0.2, -1) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))	--Client
	,LeftPos = CFrame.new(1,-0.05,-1.4) * CFrame.Angles(math.rad(-120),math.rad(35),math.rad(-20))	--Client
}

return Config


Prompt: --// Firemode Functions

Response:
function CreateBullet(L_185_arg1)
	local L_186_ = L_55_.Position
	local L_187_ = (L_4_.Hit.p - L_186_).unit
	local L_188_ = CFrame.Angles(math.rad(math.random(-L_185_arg1, L_185_arg1)), math.rad(math.random(-L_185_arg1, L_185_arg1)), math.rad(math.random(-L_185_arg1, L_185_arg1)))
	L_187_ = L_188_ * L_187_
	local L_189_ = CFrame.new(L_186_, L_186_ + L_187_)

	local L_190_ = Instance.new("Part", L_93_)
	game.Debris:AddItem(L_190_, 10)
	L_190_.Shape = Enum.PartType.Ball
	L_190_.Size = Vector3.new(1, 1, 12)
	L_190_.Name = "Bullet"
	L_190_.TopSurface = "Smooth"
	L_190_.BottomSurface = "Smooth"
	L_190_.BrickColor = BrickColor.new("Bright green")
	L_190_.Material = "Neon"
	L_190_.CanCollide = false
		--Bullet.CFrame = FirePart.CFrame + (Grip.CFrame.p - Grip.CFrame.p)
	L_190_.CFrame = L_189_

	local L_191_ = Instance.new("Sound")
	L_191_.SoundId = "rbxassetid://341519743"
	L_191_.Looped = true
	L_191_:Play()
	L_191_.Parent = L_190_
	L_191_.Volume = 0.4
	L_191_.MaxDistance = 30

	L_190_.Transparency = 1
	local L_192_ = L_190_:GetMass()
	local L_193_ = Instance.new('BodyForce', L_190_)

	if not L_77_ then
		L_193_.Force = L_24_.BulletPhysics
		L_190_.Velocity = L_187_ * L_24_.BulletSpeed
	else
		L_193_.Force = L_24_.ExploPhysics
		L_190_.Velocity = L_187_ * L_24_.ExploSpeed
	end

	local L_194_ = Instance.new('Attachment', L_190_)
	L_194_.Position = Vector3.new(0.1, 0, 0)
	local L_195_ = Instance.new('Attachment', L_190_)
	L_195_.Position = Vector3.new(-0.1, 0, 0)

	local L_196_ = TracerCalculation()

	if L_24_.TracerEnabled == true and L_196_ then
		local L_197_ = Instance.new('Trail', L_190_)
		L_197_.Attachment0 = L_194_
		L_197_.Attachment1 = L_195_
		L_197_.Transparency = NumberSequence.new(L_24_.TracerTransparency)
		L_197_.LightEmission = L_24_.TracerLightEmission
		L_197_.TextureLength = L_24_.TracerTextureLength
		L_197_.Lifetime = L_24_.TracerLifetime
		L_197_.FaceCamera = L_24_.TracerFaceCamera
		L_197_.Color = ColorSequence.new(L_24_.TracerColor.Color)
	end

	if L_1_:FindFirstChild('Shell') and not L_77_ then
		CreateShell()
	end

	delay(0.2, function()
		L_190_.Transparency = 0
	end)

	return L_190_
end

function CheckForHumanoid(L_198_arg1)
	local L_199_
	local L_200_
	if (L_198_arg1.Parent:FindFirstChild("Humanoid") or L_198_arg1.Parent.Parent:FindFirstChild("Humanoid")) then
		L_199_ = true
		if L_198_arg1.Parent:FindFirstChild('Humanoid') then
			L_200_ = L_198_arg1.Parent.Humanoid
		elseif L_198_arg1.Parent.Parent:FindFirstChild('Humanoid') then
			L_200_ = L_198_arg1.Parent.Parent.Humanoid
		end
	else
		L_199_ = false
	end
	return L_199_, L_200_
end

function CastRay(L_201_arg1)
	local L_202_, L_203_, L_204_
	local L_205_ = L_52_.Position;
	local L_206_ = L_201_arg1.Position;
	local L_207_ = 0

	local L_208_ = L_77_

	while true do
		L_98_:wait()
		L_206_ = L_201_arg1.Position;
		L_207_ = L_207_ + (L_206_ - L_205_).magnitude
		L_202_, L_203_, L_204_ = workspace:FindPartOnRayWithIgnoreList(Ray.new(L_205_, (L_206_ - L_205_)), IgnoreList);
		local L_209_ = Vector3.new(0, 1, 0):Cross(L_204_)
		local L_210_ = math.asin(L_209_.magnitude) -- division by 1 is redundant
		if L_207_ > 10000 then
			break
		end
		if L_202_ and (L_202_ and L_202_.Transparency >= 1 or L_202_.CanCollide == false) then
			table.insert(IgnoreList, L_202_)
		end

		if L_202_ then
			L_209_ = Vector3.new(0, 1, 0):Cross(L_204_)
			L_210_ = math.asin(L_209_.magnitude) -- division by 1 is redundant

			local L_211_ = CheckForHumanoid(L_202_)
			if L_211_ == false then
				L_201_arg1:Destroy()
				local L_212_ = L_105_:InvokeServer(L_203_, L_209_, L_210_, L_204_, "Part")
				table.insert(IgnoreList, L_212_)
			elseif L_211_ == true then
				L_201_arg1:Destroy()
				local L_213_ = L_105_:InvokeServer(L_203_, L_209_, L_210_, L_204_, "Human")
				table.insert(IgnoreList, L_213_)
			end
		end

		if L_202_ and L_208_ then
			L_108_:FireServer(L_203_)
		end

		if L_202_ and (L_202_.Parent:FindFirstChild("Humanoid") or L_202_.Parent.Parent:FindFirstChild("Humanoid")) then
			local L_214_, L_215_ = CheckForHumanoid(L_202_)
			if L_214_ then
				L_103_:FireServer(L_215_)
				if L_24_.AntiTK then
					if game.Players:FindFirstChild(L_215_.Parent.Name) and game.Players:FindFirstChild(L_215_.Parent.Name).TeamColor ~= L_2_.TeamColor then
						if L_202_.Name == 'Head' then
							L_102_:FireServer(L_215_, L_24_.HeadDamage)
							local L_216_ = L_19_:WaitForChild('BodyHit'):clone()
							L_216_.Parent = L_2_.PlayerGui
							L_216_:Play()
							game:GetService("Debris"):addItem(L_216_, L_216_.TimeLength)
						elseif L_202_.Name ~= 'Head' and not (L_202_.Parent:IsA('Accessory') or L_202_.Parent:IsA('Hat')) then
							L_102_:FireServer(L_215_, L_24_.Damage)
							local L_217_ = L_19_:WaitForChild('BodyHit'):clone()
							L_217_.Parent = L_2_.PlayerGui
							L_217_:Play()
							game:GetService("Debris"):addItem(L_217_, L_217_.TimeLength)
						elseif (L_202_.Parent:IsA('Accessory') or L_202_.Parent:IsA('Hat')) then
							L_102_:FireServer(L_215_, L_24_.HeadDamage)
							local L_218_ = L_19_:WaitForChild('BodyHit'):clone()
							L_218_.Parent = L_2_.PlayerGui
							L_218_:Play()
							game:GetService("Debris"):addItem(L_218_, L_218_.TimeLength)
						end
					end
				else
					if L_202_.Name == 'Head' then
						L_102_:FireServer(L_215_, L_24_.HeadDamage)
						local L_219_ = L_19_:WaitForChild('BodyHit'):clone()
						L_219_.Parent = L_2_.PlayerGui
						L_219_:Play()
						game:GetService("Debris"):addItem(L_219_, L_219_.TimeLength)
					elseif L_202_.Name ~= 'Head' and not (L_202_.Parent:IsA('Accessory') or L_202_.Parent:IsA('Hat')) then
						L_102_:FireServer(L_215_, L_24_.Damage)
						local L_220_ = L_19_:WaitForChild('BodyHit'):clone()
						L_220_.Parent = L_2_.PlayerGui
						L_220_:Play()
						game:GetService("Debris"):addItem(L_220_, L_220_.TimeLength)
					elseif (L_202_.Parent:IsA('Accessory') or L_202_.Parent:IsA('Hat')) then
						L_102_:FireServer(L_215_, L_24_.HeadDamage)
						local L_221_ = L_19_:WaitForChild('BodyHit'):clone()
						L_221_.Parent = L_2_.PlayerGui
						L_221_:Play()
						game:GetService("Debris"):addItem(L_221_, L_221_.TimeLength)
					end
				end
			end
		end

		if L_202_ and L_202_.Parent:FindFirstChild("Humanoid") then
			return L_202_, L_203_;
		end
		L_205_ = L_206_;
	end
end

function fireSemi()
	if L_15_ then
		L_65_ = false
		Recoiling = true
		Shooting = true

		CheckReverb()

		L_55_:WaitForChild('Fire'):Play()
		L_101_:FireServer()
		L_94_ = CreateBullet(0)
		L_95_ = L_95_ - 1
		UpdateAmmo()
		RecoilFront = true
		local L_222_, L_223_ = spawn(function()
			CastRay(L_94_)
		end)

		if L_24_.CanBolt == true then
			BoltingBackAnim()
			delay(L_24_.Firerate / 2, function()
				if L_24_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_24_.CanSlideLock == true and L_95_ <= 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_24_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)

		wait(L_24_.Firerate)

		local L_224_ = JamCalculation()
		if L_224_ then
			L_65_ = false
		else
			L_65_ = true
		end
		Shooting = false
	end
end

function fireExplo()
	if L_15_ then
		L_65_ = false
		Recoiling = true
		Shooting = true
		L_56_:WaitForChild('Fire'):Play()
		L_101_:FireServer()
		L_94_ = CreateBullet(0)
		L_97_ = L_97_ - 1
		UpdateAmmo()
		RecoilFront = true
		local L_225_, L_226_ = spawn(function()
			CastRay(L_94_)
		end)

		delay(L_24_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)

		L_65_ = false
		Shooting = false
	end
end

function fireShot()
	if L_15_ then
		L_65_ = false
		Recoiling = true
		Shooting = true
		RecoilFront = true
		CheckReverb()
		L_55_:WaitForChild('Fire'):Play()
		L_101_:FireServer()
		for L_228_forvar1 = 1, L_24_.ShotNum do
			L_94_ = CreateBullet(2)
			local L_229_, L_230_ = spawn(function()
				CastRay(L_94_)
			end)
		end

		for L_231_forvar1, L_232_forvar2 in pairs(L_55_:GetChildren()) do
			if L_232_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_232_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_233_forvar1, L_234_forvar2 in pairs(L_55_:GetChildren()) do
				if L_234_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_234_forvar2.Enabled = false
				end
			end
		end)

		if L_24_.CanBolt == true then
			BoltingBackAnim()
			delay(L_24_.Firerate / 2, function()
				if L_24_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_24_.CanSlideLock == true and L_95_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_24_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		L_95_ = L_95_ - 1
		UpdateAmmo()
		wait(L_24_.Firerate)

		L_72_ = true
		BoltBackAnim()
		BoltForwardAnim()
		IdleAnim()
		L_72_ = false

		local L_227_ = JamCalculation()
		if L_227_ then
			L_65_ = false
		else
			L_65_ = true
		end

		Shooting = false
	end
end

function fireBoltAction()
	if L_15_ then
		L_65_ = false
		Recoiling = true
		Shooting = true
		CheckReverb()
		L_55_:WaitForChild('Fire'):Play()
		L_101_:FireServer()
		L_94_ = CreateBullet(0)
		L_95_ = L_95_ - 1
		UpdateAmmo()
		RecoilFront = true
		local L_235_, L_236_ = spawn(function()
			CastRay(L_94_)
		end)

		for L_238_forvar1, L_239_forvar2 in pairs(L_55_:GetChildren()) do
			if L_239_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_239_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_240_forvar1, L_241_forvar2 in pairs(L_55_:GetChildren()) do
				if L_241_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_241_forvar2.Enabled = false
				end
			end
		end)

		if L_24_.CanBolt == true then
			BoltingBackAnim()
			delay(L_24_.Firerate / 2, function()
				if L_24_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_24_.CanSlideLock == true and L_95_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_24_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		wait(L_24_.Firerate)

		L_72_ = true
		BoltBackAnim()
		BoltForwardAnim()
		IdleAnim()
		L_72_ = false

		local L_237_ = JamCalculation()
		if L_237_ then
			L_65_ = false
		else
			L_65_ = true
		end

		Shooting = false
	end
end

function fireAuto()
	while not Shooting and L_95_ > 0 and L_64_ and L_65_ and L_15_ do
		L_65_ = false
		Recoiling = true
		CheckReverb()
		L_55_:WaitForChild('Fire'):Play()
		L_101_:FireServer()
		L_95_ = L_95_ - 1
		UpdateAmmo()
		Shooting = true
		RecoilFront = true
		L_94_ = CreateBullet(0)
		local L_242_, L_243_ = spawn(function()
			CastRay(L_94_)
		end)

		for L_245_forvar1, L_246_forvar2 in pairs(L_55_:GetChildren()) do
			if L_246_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_246_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_247_forvar1, L_248_forvar2 in pairs(L_55_:GetChildren()) do
				if L_248_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_248_forvar2.Enabled = false
				end
			end
		end)

		if L_24_.CanBolt == true then
			BoltingBackAnim()
			delay(L_24_.Firerate / 2, function()
				if L_24_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_24_.CanSlideLock == true and L_95_ > 0 then
					BoltingForwardAnim()
				end
			end)
		end

		delay(L_24_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		wait(L_24_.Firerate)

		local L_244_ = JamCalculation()
		if L_244_ then
			L_65_ = false
		else
			L_65_ = true
		end

		Shooting = false
	end
end

function fireBurst()
	if not Shooting and L_95_ > 0 and L_64_ and L_15_ then
		for L_249_forvar1 = 1, L_24_.BurstNum do
			if L_95_ > 0 and L_64_ then
				L_65_ = false
				Recoiling = true
				CheckReverb()
				L_55_:WaitForChild('Fire'):Play()
				L_101_:FireServer()
				L_94_ = CreateBullet(0)
				local L_250_, L_251_ = spawn(function()
					CastRay(L_94_)
				end)

				for L_253_forvar1, L_254_forvar2 in pairs(L_55_:GetChildren()) do
					if L_254_forvar2.Name:sub(1, 7) == "FlashFX" then
						L_254_forvar2.Enabled = true
					end
				end

				delay(1 / 30, function()
					for L_255_forvar1, L_256_forvar2 in pairs(L_55_:GetChildren()) do
						if L_256_forvar2.Name:sub(1, 7) == "FlashFX" then
							L_256_forvar2.Enabled = false
						end
					end
				end)

				if L_24_.CanBolt == true then
					BoltingBackAnim()
					delay(L_24_.Firerate / 2, function()
						if L_24_.CanSlideLock == false then
							BoltingForwardAnim()
						elseif L_24_.CanSlideLock == true and L_95_ > 0 then
							BoltingForwardAnim()
						end
					end)
				end

				L_95_ = L_95_ - 1
				UpdateAmmo()
				RecoilFront = true
				delay(L_24_.Firerate / 2, function()
					Recoiling = false
					RecoilFront = false
				end)
				wait(L_24_.Firerate)

				local L_252_ = JamCalculation()
				if L_252_ then
					L_65_ = false
				else
					L_65_ = true
				end

			end
			Shooting = true
		end
		Shooting = false
	end
end

function Shoot()
	if L_15_ and L_65_ then
		if L_86_ == 1 then
			fireSemi()
		elseif L_86_ == 2 then
			fireAuto()
		elseif L_86_ == 3 then
			fireBurst()
		elseif L_86_ == 4 then
			fireBoltAction()
		elseif L_86_ == 5 then
			fireShot()
		elseif L_86_ == 6 then
			fireExplo()
		end
	end
end


Prompt: --[[ << BANLAND >>																																																							]]

Response: Banned = {"PlayerName1","PlayerName2",};


Prompt: --// Recoil Settings

Response:
	gunrecoil = -0.3; -- How much the gun recoils backwards when not aiming
	camrecoil = 0.03; -- How much the camera flicks when not aiming
	AimGunRecoil = -0.3; -- How much the gun recoils backwards when aiming
	AimCamRecoil = 0.01; -- How much the camera flicks when aiming

	Kickback = 3; -- Upward gun rotation when not aiming
	AimKickback = 2; -- Upward gun rotation when aiming


Prompt: -- TYPE DEFINITION: Part Cache Instance

Response:
export type PartCache = {
	Open: {[number]: BasePart},
	InUse: {[number]: BasePart},
	CurrentCacheParent: Instance,
	Template: BasePart,
	ExpansionSize: number
}


Prompt: --	Players.CharacterAutoLoads = false

Response:
	print("Initialized!")
end

function plrHandle.start()
	Players.PlayerAdded:Connect(plrHandle.setupPlr)
	Players.PlayerRemoving:Connect(plrHandle.leavingPlr)
end

return plrHandle


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

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


Prompt: --dt variable decay function

Response:
function MathUtils:Friction(val, fric, deltaTime)
    return (1 / (1 + (deltaTime / fric))) * val
end

function MathUtils:VelocityFriction(vel, fric, deltaTime)
    local speed = vel.magnitude
    speed = self:Friction(speed, fric, deltaTime)

    if speed < 0.001 then
        return Vector3.new(0, 0, 0)
    end
    vel = vel.unit * speed

    return vel
end

function MathUtils:FlatVec(vec)
    return Vector3.new(vec.x, 0, vec.z)
end


Prompt:
--[[
	Creates a function that invokes a callback with correct error handling and
	resolution mechanisms.
]]

Response:
local function createAdvancer(traceback, callback, resolve, reject)
	return function(...)
		local ok, resultLength, result = runExecutor(traceback, callback, ...)

		if ok then
			resolve(unpack(result, 1, resultLength))
		else
			reject(result[1])
		end
	end
end

local function isEmpty(t)
	return next(t) == nil
end

local Promise = {
	Error = Error,
	Status = makeEnum("Promise.Status", {"Started", "Resolved", "Rejected", "Cancelled"}),
	_getTime = os.clock,
	_timeEvent = game:GetService("RunService").Heartbeat,
}
Promise.prototype = {}
Promise.__index = Promise.prototype


Prompt:
--[[
    Removes the value associated with specified name.
]]

Response:
function BaseValueStore:removeValue(name)
	self._data[name] = nil
end


Prompt: --Aurora Shine--

Response:
local function AttachParticleControl(source_part)

	local prtc = nil

	local function Start()
		prtc = script.Shine:clone()
		prtc.Parent = source_part
	end

	local function Update()

	end

	local function Stop()
		if prtc ~= nil then
			prtc:destroy()
			prtc = nil
		end
	end

	return {Start = Start, Update = Update, Stop = Stop}
end

return AttachParticleControl


Prompt: -- functions

Response:
local function Init(player, item, timeout)
	inits[player]	= {Item = item; Timeout = tick() + timeout + 0.5};
end


Prompt:
-- local function createProcessEnv(): NodeJS_ProcessEnv
-- 	local real = Object.create(proto)
-- 	local lookup: typeof(process.env) = {}


Response:
upgradeStuff = model:clone()--The thing that will be spawned when button is pushed
										--basically the "After"-part of the upgrade.. :P

model:remove() --remove the ingame model. We saved a clone for later.
owner = script.Parent.Parent.Parent.OwnerName
local ting = 0 --debouncer

function onTouched(hit)
	if ting == 0 then --check for debounce
	ting = 1 --activate debounce
	check = hit.Parent:FindFirstChild("Humanoid") --try to find the human that touched the button

	if check ~= nil then --if toucher is a human then to following
	if hit.Parent.Name == owner.Value then
		local user = game.Players:GetPlayerFromCharacter(hit.Parent) --get player from touching human
		local stats = user:findFirstChild("leaderstats") --Find moneyholder

		if stats ~= nil then --If moneyholder exists then
			local cash = stats:findFirstChild("Money") --Get money
			if cash.Value > (Upgradecost-1) then --If there is enough money then

				cash.Value = cash.Value - Upgradecost --remove cash
				upgradeStuff.Parent = script.Parent.Parent.Parent --put the upgrade into the game
				script.Parent.Parent:remove() -- remove the upgrade button (in case of one-upgrade only)

			end
		end
	end
	end

	ting = 0 --remove debounce
	end
end

script.Parent.Touched:connect(onTouched) --start checking for touchers


Response:
local Info = {
	-- These are constant values.  Don't change them unless you know what you're doing.

	-- Services
	Players = game:GetService 'Players',
	PathfindingService = game:GetService 'PathfindingService',

	-- Advanced settings
	RecomputePathFrequency = 5, -- The monster will recompute its path this many times per second
	RespawnWaitTime = 5, -- How long to wait before the monster respawns
	JumpCheckFrequency = 5, -- How many times per second it will do a jump check
}
local Data = {
	-- These are variable values used internally by the script.  Advanced users only.

	LastRecomputePath = 0,
	Recomputing = false, -- Reocmputing occurs async, meaning this script will still run while it's happening.  This variable will prevent the script from running two recomputes at once.
	PathCoords = {},
	IsDead = false,
	TimeOfDeath = 0,
	CurrentNode = nil,
	CurrentNodeIndex = 1,
	AutoRecompute = true,
	LastJumpCheck = 0,
	LastAttack = 0,

	BaseMonster = Self:Clone(),
	AttackTrack = nil,
}


Prompt: -- Fonksiyonu tanımlayın

Response:
local function UpdateVisibility()
	-- Stage değerini alın (Stage değerini 150 olarak varsayalım)
	local stage = stageValue.Value -- Stage değerini almak için uygun bir kod ekleyin

	-- Koşulu kontrol edin ve görünürlüğü ayarlayın
	if stage ~= 150 then
		ProgressFrame.Visible = true -- ProgressFrame görünür
		Confirmbutton.Visible = false -- Confirmbutton görünmez
	else
		ProgressFrame.Visible = false -- ProgressFrame görünmez
		Confirmbutton.Visible = true -- Confirmbutton görünür
	end
end


Prompt: -- Show where the red lines are going. You can change their colour and width in VisualizerCache

Response: local SHOW_DEBUG_RAY_LINES: boolean = true


Prompt: --[[Weight and CG]]

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

	--Unsprung Weight
	Tune.FWheelDensity	= 1.0 	-- Front Wheel Density
	Tune.RWheelDensity	= 1.0		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]

	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members


Prompt: -- connect events

Response:
Humanoid.Died:connect(onDied)
Humanoid.Running:connect(onRunning)
Humanoid.Jumping:connect(onJumping)
Humanoid.Climbing:connect(onClimbing)
Humanoid.GettingUp:connect(onGettingUp)
Humanoid.FreeFalling:connect(onFreeFall)
Humanoid.FallingDown:connect(onFallingDown)
Humanoid.Seated:connect(onSeated)
Humanoid.PlatformStanding:connect(onPlatformStanding)
Humanoid.Swimming:connect(onSwimming)


Prompt:
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------Signal class begin------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
--[[
A 'Signal' object identical to the internal RBXScriptSignal object in it's public API and semantics. This function
can be used to create "custom events" for user-made code.
API:
Method :connect( function handler )
	Arguments:   The function to connect to.
	Returns:     A new connection object which can be used to disconnect the connection
	Description: Connects this signal to the function specified by |handler|. That is, when |fire( ... )| is called for
	             the signal the |handler| will be called with the arguments given to |fire( ... )|. Note, the functions
	             connected to a signal are called in NO PARTICULAR ORDER, so connecting one function after another does
	             NOT mean that the first will be called before the second as a result of a call to |fire|.

Method :disconnect()
	Arguments:   None
	Returns:     None
	Description: Disconnects all of the functions connected to this signal.

Method :fire( ... )
	Arguments:   Any arguments are accepted
	Returns:     None
	Description: Calls all of the currently connected functions with the given arguments.

Method :wait()
	Arguments:   None
	Returns:     The arguments given to fire
	Description: This call blocks until
]]

Response:
function t.CreateSignal()
	local this = {}

	local mBindableEvent = Instance.new('BindableEvent')
	local mAllCns = {} --all connection objects returned by mBindableEvent::connect

	--main functions
	function this:connect(func)
		if self ~= this then error("connect must be called with `:`, not `.`", 2) end
		if type(func) ~= 'function' then
			error("Argument #1 of connect must be a function, got a "..type(func), 2)
		end
		local cn = mBindableEvent.Event:Connect(func)
		mAllCns[cn] = true
		local pubCn = {}
		function pubCn:disconnect()
			cn:Disconnect()
			mAllCns[cn] = nil
		end
		pubCn.Disconnect = pubCn.disconnect

		return pubCn
	end

	function this:disconnect()
		if self ~= this then error("disconnect must be called with `:`, not `.`", 2) end
		for cn, _ in pairs(mAllCns) do
			cn:Disconnect()
			mAllCns[cn] = nil
		end
	end

	function this:wait()
		if self ~= this then error("wait must be called with `:`, not `.`", 2) end
		return mBindableEvent.Event:Wait()
	end

	function this:fire(...)
		if self ~= this then error("fire must be called with `:`, not `.`", 2) end
		mBindableEvent:Fire(...)
	end

	this.Connect = this.connect
	this.Disconnect = this.disconnect
	this.Wait = this.wait
	this.Fire = this.fire

	return this
end


Prompt:
--[[
	Returns a list of CoreGuiTypes shown

	Returns:
	An array of Enum.CoreGuiType that are Enabled
]]

Response:
function GuiController:_getShownCoreGuis(): { Enum.CoreGuiType }
	local shownCoreGuis = Cryo.List.filter(Enum.CoreGuiType:GetEnumItems(), function(coreGuiType)
		-- These two CoreGui were causing the entire screen to flash after enabling/disabling them. Not sure
		-- what's the underlying reason, but filtering them until we can figure it out.
		if Enum.CoreGuiType.PlayerList == coreGuiType or Enum.CoreGuiType.All == coreGuiType then
			return false
		end
		return self.StarterGui:GetCoreGuiEnabled(coreGuiType)
	end)

	return shownCoreGuis
end

return GuiController


Prompt:
--[[
	Credit to einsteinK.
	Credit to Stravant for LBI.

	Credit to the creators of all the other modules used in this.

	Sceleratis was here and decided modify some things.

	einsteinK was here again to fix a bug in LBI for if-statements
--]]

Response:
local waitDeps = {
	'FiOne';
	'LuaK';
	'LuaP';
	'LuaU';
	'LuaX';
	'LuaY';
	'LuaZ';
}

for _, v in ipairs(waitDeps) do
	script:WaitForChild(v)
end

local luaX = require(script.LuaX)
local luaY = require(script.LuaY)
local luaZ = require(script.LuaZ)
local luaU = require(script.LuaU)
local fiOne = require(script.FiOne)

luaX:init()
local LuaState = {}

getfenv().script = nil

return function(str,env)
	local f, writer, buff
	env = env or getfenv(2)
	local name = (env.script and env.script:GetFullName())
	local ran, error = pcall(function()
		local zio = luaZ:init(luaZ:make_getS(str), nil)
		if not zio then return error() end
		local func = luaY:parser(LuaState, zio, nil, name or "::Adonis::Loadstring::")
		writer, buff = luaU:make_setS()
		luaU:dump(LuaState, func, writer, buff)
		f = fiOne(buff.data, env)
	end)

	if ran then
		return f, buff.data
	else
		return nil, error
	end
end


Prompt:
--// Use the below table to define "pre-set" command aliases
--// Command aliases; Format: {[":alias <arg1> <arg2> ..."] = ":command <arg1> <arg2> ..."}

Response:
settings.Aliases = {
	[":examplealias <player> <fireColor>"] = ":ff <player> | :fling <player> | :fire <player> <fireColor>" --// Order arguments appear in alias string determines their required order in the command message when ran later
};

settings.Banned = {}		-- List of people banned from the game 		  Format: {"Username"; "Username:UserId"; UserId; "Group:GroupId:GroupRank"; "Group:GroupId"; "Item:ItemID"; "GamePass:GamePassID";}
settings.Muted = {}			-- List of people muted (cannot send chat messages)				 		  Format: {"Username"; "Username:UserId"; UserId; "Group:GroupId:GroupRank"; "Group:GroupId"; "Item:ItemID"; "GamePass:GamePassID";}
settings.Blacklist = {}		-- List of people banned from running commands 	  Format: {"Username"; "Username:UserId"; UserId; "Group:GroupId:GroupRank"; "Group:GroupId"; "Item:ItemID"; "GamePass:GamePassID";}
settings.Whitelist = {}		-- People who can join if whitelist enabled	  Format: {"Username"; "Username:UserId"; UserId; "Group:GroupId:GroupRank"; "Group:GroupId"; "Item:ItemID"; "GamePass:GamePassID";}

settings.MusicList = {} 	-- List of songs to appear in the :musiclist	  Format: {{Name = "somesong", ID = 1234567}, {Name = "anotherone", ID = 1243562}}
settings.CapeList = {}		-- List of capes							  Format: {{Name = "somecape", Material = "Fabric", Color = "Bright yellow", ID = 12345567, Reflectance = 1}; {etc more stuff here}}
settings.InsertList = {} 	-- List of models to appear in the :insertlist and can be inserted using ':insert <name>'	  Format: {{Name = "somemodel", ID = 1234567}; {Name = "anotherone", ID = 1243562}}

settings.OnStartup = {}		-- List of commands ran at server start								Format: {":notif TestNotif"}
settings.OnJoin = {}		-- List of commands ran as player on join (ignores adminlevel)		Format: {":cmds"}
settings.OnSpawn = {}		-- List off commands ran as player on spawn (ignores adminlevel)	Format: {"!fire Really red",":ff me"}

settings.SaveAdmins = true		  -- If true anyone you :admin or :headadmin in-game will save
settings.LoadAdminsFromDS = true  -- If false, any admins saved in your DataStores will not load
settings.WhitelistEnabled = false -- If true enables the whitelist/server lock; Only lets admins & whitelisted users join

settings.Prefix = ":"				-- The : in :kill me
settings.PlayerPrefix = "!"			-- The ! in !donate; Mainly used for commands that any player can run; Do not make it the same as settings.Prefix
settings.SpecialPrefix = ""			-- Used for things like "all", "me" and "others" (If changed to ! you would do :kill !me)
settings.SplitKey = " "				-- The space in :kill me (eg if you change it to / :kill me would be :kill/me)
settings.BatchKey = "|"				-- :kill me | :ff bob | :explode scel
settings.ConsoleKeyCode = "Quote"	-- Keybind to open the console; Rebindable per player in userpanel; KeyCodes: https://developer.roblox.com/en-us/api-reference/enum/KeyCode


Prompt:
--[[
	Converts an event into a Promise with an optional predicate
]]

Response:
function Promise.fromEvent(event, predicate)
	predicate = predicate or function()
		return true
	end

	return Promise._new(debug.traceback(nil, 2), function(resolve, reject, onCancel)
		local connection
		local shouldDisconnect = false

		local function disconnect()
			connection:Disconnect()
			connection = nil
		end

		-- We use shouldDisconnect because if the callback given to Connect is called before
		-- Connect returns, connection will still be nil. This happens with events that queue up
		-- events when there's nothing connected, such as RemoteEvents

		connection = event:Connect(function(...)
			local callbackValue = predicate(...)

			if callbackValue == true then
				resolve(...)

				if connection then
					disconnect()
				else
					shouldDisconnect = true
				end
			elseif type(callbackValue) ~= "boolean" then
				error("Promise.fromEvent predicate should always return a boolean")
			end
		end)

		if shouldDisconnect and connection then
			return disconnect()
		end

		onCancel(function()
			disconnect()
		end)
	end)
end

return Promise


Prompt: -- Create the spark effect for the bullet impact

Response:
function MakeParticleFX(position, normal)
	-- This is a trick I do with attachments all the time.
	-- Parent attachments to the Terrain - It counts as a part, and setting position/rotation/etc. of it will be in world space.
	-- UPD 11 JUNE 2019 - Attachments now have a "WorldPosition" value, but despite this, I still see it fit to parent attachments to terrain since its position never changes.
	local attachment = Instance.new("Attachment")
	attachment.CFrame = CFrame.new(position, position + normal)
	attachment.Parent = workspace.Terrain
	local particle = ImpactParticle:Clone()
	particle.Parent = attachment
	Debris:AddItem(attachment, particle.Lifetime.Max) -- Automatically delete the particle effect after its maximum lifetime.

	-- A potentially better option in favor of this would be to use the Emit method (Particle:Emit(numParticles)) though I prefer this since it adds some natural spacing between the particles.
	particle.Enabled = true
	wait(0.1)
	particle.Enabled = false
end


Prompt: -- Returns whether or not message contains triggerWord

Response:
function ChatEmotes.messageMatchesTriggerWord(message: string, triggerWord: string): boolean
	message = " " .. string.lower(message) .. " " -- extra spaces are to help the below pattern detect word boundaries
	local pattern = "[%p%s]" .. string.lower(triggerWord) .. "[%p%s]" -- %p matches punctuation, %s matches whitespaces
	return string.find(message, pattern) ~= nil
end


Prompt:
--[[
-- {PoisonApple, PoisonCake, PoisonPorkChop}
local BaseIdUrl = 'http://www.roblox.com/asset/?id='
local IconIds = {'87862872', '87863072', '87871704'}
local MeshIds = {'87862943', '87863104', '87863169'}
local TextureIds = {'87862921', '87863090', '87863148'}
local HandleSizes = {Vector3.new(1.2, 1.2, 1.2), Vector3.new(1.08, 1.11, 1.14), Vector3.new(0.45, 1.82, 1.33)}
--]]

Response:
local MyModel = nil
local MyPlayer = nil

local function OnEquipped()
	MyModel = Tool.Parent
	MyPlayer = PlayersService:GetPlayerFromCharacter(MyModel)
end

local function OnActivated()
	if not MyModel or not MyModel:FindFirstChild('Humanoid') or not Tool.Enabled then return end
	Tool.Enabled = false
	ToolHandle.Transparency = 1

	ThrowSound:Play()

	local handleClone = ToolHandle:Clone()
	DebrisService:AddItem(handleClone, 30)
	handleClone.Velocity = (MyModel.Humanoid.TargetPoint - ToolHandle.CFrame.p).unit * THROW_SPEED
	handleClone.Name = 'Food'
	handleClone.Parent = Workspace
	handleClone.Transparency = 0
	handleClone.CanCollide = true
	Instance.new('BodyGyro', handleClone) -- Keeps it upright
	local selfDestructScript = handleClone:FindFirstChild('SelfDestruct')
	if selfDestructScript and selfDestructScript:FindFirstChild('TimeToLive') then
		selfDestructScript.TimeToLive.Value = TIME_TO_LIVE
		selfDestructScript.Disabled = false
	end
	local foodScript = handleClone:FindFirstChild('PoisonedFood')
	if foodScript then
		local creator = Instance.new('ObjectValue', foodScript)
		creator.Name = 'Creator'
		creator.Value = MyPlayer
		foodScript.Disabled = false
	end

	--[[ Load new item (while we wait)
	local index = math.random(3)
	ToolHandle.Mesh.MeshId = BaseIdUrl .. MeshIds[index]
	ToolHandle.Mesh.TextureId = BaseIdUrl .. TextureIds[index]
	ToolHandle.Size = HandleSizes[index] -- This breaks the weld
	MyWeld.Parent = Game.JointsService -- Fix the weld
	Tool.TextureId = BaseIdUrl .. IconIds[index] -- Change the tool icon
	--]]

	wait(COOLDOWN)

	ToolHandle.Transparency = 0
	Tool.Enabled = true
end

local function OnUnequipped()
	ToolHandle.Transparency = 0
end

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


Prompt:
--[[
	deviation: printable function not present in upstream
	Function that determines if an object is printable i.e. if the object
	doesn't have tostring output that is its memory address
]]

Response:
local function printable(obj)
	if typeof(obj) == "table" then
		return tostring(obj):find("table: 0x") == nil
	elseif typeof(obj) == "function" then
		return tostring(obj):find("function: 0x") == nil
	elseif typeof(obj) == "userdata" then
		return tostring(obj):find("userdata: 0x") == nil
	elseif typeof(obj) == "thread" then
		return tostring(obj):find("thread: 0x") == nil
	end

	return true
end


Prompt:
--!strict
-- upstream: https://github.com/facebook/react/blob/56e9feead0f91075ba0a4f725c9e4e343bca1c67/packages/shared/ReactComponentStackFrame.js
--[[*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
]]

Response:
type Object = { [string]: any }
type Function = (...any) -> ...any

local ReactElementType = require(script.Parent.ReactElementType)
type Source = ReactElementType.Source


Prompt: -- Libraries

Response:
local Roact = require(Vendor:WaitForChild 'Roact')
local new = Roact.createElement


Prompt: -- connect events

Response:
Humanoid.Died:Connect(onDied)
Humanoid.Running:Connect(onRunning)
Humanoid.Jumping:Connect(onJumping)
Humanoid.Climbing:Connect(onClimbing)
Humanoid.GettingUp:Connect(onGettingUp)
Humanoid.FreeFalling:Connect(onFreeFall)
Humanoid.FallingDown:Connect(onFallingDown)
Humanoid.Seated:Connect(onSeated)
Humanoid.PlatformStanding:Connect(onPlatformStanding)
Humanoid.Swimming:Connect(onSwimming)


Prompt: -- local NULL = require(srcWorkspace.luaUtils.null)


Prompt: -- Populate library list with cached libraries

Response:
for _, Library in pairs(script:GetChildren()) do
	pcall(function () RegisterLibrary(require(Library.Metadata), require(Library)) end);
end;


Response:
Door = script.Parent
Serv = game:GetService("BadgeService")
MServ = game:GetService("MarketplaceService")
if not _G.Players then
	_G.Players = {[ItemID] = {}}
elseif not _G.Players[ItemID] then
	_G.Players[ItemID] = {}
end

Table = _G.Players[ItemID]

function CheckPlayer(player2)
	for i = 1,#Table do
		if Table[i] == player2 then
			return true
		end
	end
	return false
end

Door.Touched:connect(function(hit)
    if game.Players:GetPlayerFromCharacter(hit.Parent) then
        player = game.Players:GetPlayerFromCharacter(hit.Parent)
        if Serv:UserHasBadge(player.userId,ItemID) or CheckPlayer(player) then
          --  Door.CanCollide = false-- Door.Transparency = OpenTrans
            wait(OpenTime)
         --   Door.CanCollide = true --Door.Transparency = CloseTrans
            else
           -- Door.CanCollide = true-- Door.Transparency = CloseTrans
            if BuyGUI == true then
                MServ:PromptGamePassPurchase(player,ItemID)
                h = player.Character:FindFirstChild("Humanoid")
                if h then
                    h.WalkSpeed = 16 end
                    local con
                    con = MServ.PromptGamePassPurchaseFinished:connect(function(ply,asset,purch)
                    if ply == player and asset == ItemID then
                        con:disconnect()
                        if purch then
                            if h then
                                h.WalkSpeed = 16 end
                                table.insert(Table,player)
                                elseif KillOnTouch == true then
                                player.Character:BreakJoints()
                            end
                        end
                    end)
                elseif KillOnTouch == true then
             -- Door.CanCollide = true --Door.Transparency = CloseTrans
                player.Character:BreakJoints()
            end
        end
    end
end)


Prompt:
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder

]]

Response:
--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
return function(p1)
	local v1 = os.date("!%X", tonumber(p1));
	if p1 <= 3600 then
		v1 = v1:sub(4);
	end;
	return v1;
end;


Prompt:
--[[
	Package link auto-generated by Rotriever
]]

Response:
local PackageIndex = script.Parent.Parent.Parent._Index

local Package = require(PackageIndex["ReactIs"]["ReactIs"])

return Package


Prompt: --(continued from last line) The higher, the slower. The lower, the faster. Change the 0's to "math.pi/number." Make sure the number ISN'T 0!

Response: end --Ends the "while true do"


Response:
equiped=false
sp=script.Parent
RayLength=1000
Spread=.2
enabled=true
reloading=false
down=false
r=game:service("RunService")
last=0
last2=0
last3=0
last4=0
last5=0
last6=0

Bullet=Instance.new("Part")
Bullet.Name="Bullet"
Bullet.BrickColor=BrickColor.new("New Yeller")
Bullet.Anchored=true
Bullet.CanCollide=false
Bullet.Locked=true
Bullet.Size=Vector3.new(1,1,1)


Prompt: -- ROBLOX FIXME LUAU: Casting to any to prevent unwanted type narrowing

Response:
local DefaultReporter = setmetatable({}, { __index = BaseReporter }) :: any
DefaultReporter.__index = DefaultReporter


Prompt:
--[=[
	@within Shake
	@prop PositionInfluence Vector3
	This is similar to `Amplitude` but multiplies against each axis
	of the resultant shake vector, and only affects the position vector.

	Defaults to `Vector3.one`.
]=]