Roblox/luau_corpus huggingface dataset:
--Canvas Size
local firstLabel = pages.custom["AA Space"]
local finalLabel = pages.custom["AZ Space"]
pages.custom.CanvasSize = UDim2.new(0, 0, 0, (finalLabel.AbsolutePosition.Y - firstLabel.AbsolutePosition.Y) + finalLabel.AbsoluteSize.Y*1)



return module
-- main loop

RunService.Stepped:connect(function(_, deltaTime)
	for i = #projectiles, 1, -1 do
		local projectile	= projectiles[i]
		local alive	= UpdateProjectile(projectile, deltaTime)
		
		if not alive then
			KillProjectile(projectile)
		elseif tick() - projectile.Start > projectile.Lifetime then
			KillProjectile(projectile)
		end
	end
end)
--[=[
	Only takes distinct values from the observable stream.

	http://reactivex.io/documentation/operators/distinct.html

	```lua
	Rx.of(1, 1, 2, 3, 3, 1):Pipe({
		Rx.distinct();
	}):Subscribe(print) --> 1, 2, 3, 1
	```
	@return (source: Observable<T>) -> Observable<T>
]=]
function Rx.distinct()
	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

		return Observable.new(function(sub)
			local last = UNSET_VALUE

			return source:Subscribe(
				function(value)
					-- TODO: Support tuples
					if last == value then
						return
					end

					last = value
					sub:Fire(last)
				end,
				sub:GetFailComplete()
			)
		end)
	end
end
--This module is for any client FX related to the Lab's door

local DoorFX = {}

local tweenService = game:GetService("TweenService")

local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)

function DoorFX.OPEN(door)
	if not door then return end
	
	tweenService:Create(door.DoorA.Main, tweenInfo, {CFrame = door.DoorA.Goal.CFrame}):Play()
	tweenService:Create(door.DoorB.Main, tweenInfo, {CFrame = door.DoorB.Goal.CFrame}):Play()

	door.DoorA.Main.DoorOpenFADEOUT:Play()
	door.DoorB.Main.DoorOpenFADEOUT:Play()
end

function DoorFX.CLOSE(door)
	if not door then return end

	door.DoorA.Main.CFrame = door.DoorA.Home.CFrame
	door.DoorB.Main.CFrame = door.DoorB.Home.CFrame
end

return DoorFX
--[[
    API Reference:
    This module exposes the following APIs to allow for various configurations and custom interactions. Once the experience
    starts, a `SocialInteractions` ModuleScript will be parented to ReplicatedStorage. To access the following APIs, simply
    require the module as follows (on the client):
]]

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SocialInteractions = require(ReplicatedStorage:WaitForChild("SocialInteractions"))
-- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}

function configureAnimationSet(name, fileList)
	if (animTable[name] ~= nil) then
		for _, connection in pairs(animTable[name].connections) do
			connection:Disconnect()
		end
	end
	animTable[name] = {}
	animTable[name].count = 0
	animTable[name].totalWeight = 0	
	animTable[name].connections = {}

	-- check for config values
	local config = script:FindFirstChild(name)
	if (config ~= nil) then
--[[Engine]]
--Torque Curve
Tune.Horsepower		= 150		--	[TORQUE CURVE VISUAL]
Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
Tune.PeakRPM		= 6980		--		Use sliders to manipulate values
Tune.Redline		= 8000		--		Copy and paste slider values into the respective tune values
Tune.EqPoint		= 5500
Tune.PeakSharpness	= 7.5
Tune.CurveMult		= 0.16
--[[
	@plugin UI
	
	Currently converts gui instances into PluginWidgets.
]]

local widget = {}

local plugin = nil

function widget.convertToDockWidget(screenGui, widgetId: string, widgetInfo: DockWidgetPluginGuiInfo, title: string)
	local widget = plugin:CreateDockWidgetPluginGui(widgetId, widgetInfo)
	widget.Title = title
	widget.ZIndexBehavior = screenGui.ZIndexBehavior
	
	screenGui = screenGui:GetChildren()
	
	for i = 1, #screenGui do
		screenGui[i]:Clone().Parent = widget
	end 
	
	return widget
end 

return function(Plugin: Plugin)
	plugin = Plugin
	return widget
end
-- LOCAL
local tweenService = game:GetService("TweenService")
local debris = game:GetService("Debris")
local userInputService = game:GetService("UserInputService")
local httpService = game:GetService("HttpService") -- This is to generate GUIDs
local runService = game:GetService("RunService")
local textService = game:GetService("TextService")
local starterGui = game:GetService("StarterGui")
local guiService = game:GetService("GuiService")
local iconModule = script
local TopbarPlusReference = require(iconModule.TopbarPlusReference)
local referenceObject = TopbarPlusReference.getObject()
local leadPackage = referenceObject and referenceObject.Value
if leadPackage and leadPackage ~= iconModule then
	return require(leadPackage)
end
if not referenceObject then
    TopbarPlusReference.addToReplicatedStorage()
end
local Icon = {}
Icon.__index = Icon
local IconController = require(iconModule.IconController)
local Signal = require(iconModule.Signal)
local Maid = require(iconModule.Maid)
local TopbarPlusGui = require(iconModule.TopbarPlusGui)
local Themes = require(iconModule.Themes)
local activeItems = TopbarPlusGui.ActiveItems
local topbarContainer = TopbarPlusGui.TopbarContainer
local iconTemplate = topbarContainer["IconContainer"]
local DEFAULT_THEME = Themes.Default
local THUMB_OFFSET = 55
local DEFAULT_FORCED_GROUP_VALUES = {}
-- ScreenSpace -> WorldSpace. Taking a screen height that you want that object to be
-- and a world height that is the size of that object, and returning the position to
-- put that object at to satisfy those.
function ScreenSpace.ScreenToWorldByHeight(x, y, screenHeight, worldHeight)
	local aspectRatio = ScreenSpace.AspectRatio()
	local hfactor = math.tan(math.rad(Workspace.CurrentCamera.FieldOfView)/2)
	local wfactor = aspectRatio*hfactor
	local sx, sy = ScreenSpace.ViewSizeX(), ScreenSpace.ViewSizeY()
	--
	local depth = - (sy * worldHeight) / (screenHeight * 2 * hfactor)
	--
	local xf, yf = x/sx*2 - 1, y/sy*2 - 1
	local xpos = xf * -wfactor * depth
	local ypos = yf *  hfactor * depth
	--
	return Vector3.new(xpos, ypos, depth)
end
--// All global vars will be wiped/replaced except script
--// All guis are autonamed client.Variables.CodeName..gui.Name

return function(data)
	local gui = script.Parent.Parent
	local playergui = service.PlayerGui
	local str = data.Message
	local time = data.Time or 15

	--client.UI.Make("HintHolder")
	local container = client.UI.Get("HintHolder",nil,true)
	if not container then
		local holder = service.New("ScreenGui")
		local hTable = client.UI.Register(holder)
		local frame = service.New("ScrollingFrame", holder)
		client.UI.Prepare(holder)
		hTable.Name = "HintHolder"
		frame.Name = "Frame"
		frame.BackgroundTransparency = 1
		frame.Size = UDim2.new(1, 0, 0,150)
		frame.CanvasSize = UDim2.new(0, 0, 0, 0)
		frame.ChildAdded:Connect(function(c)
			if #frame:GetChildren() == 0 then
				frame.Visible = false
			else
				frame.Visible = true
			end
		end)

		frame.ChildRemoved:Connect(function(c)
			if #frame:GetChildren() == 0 then
				frame.Visible = false
			else
				frame.Visible = true
			end
		end)

		container = hTable
		hTable:Ready()
	end
	container = container.Object.Frame

	--// First things first account for notif :)
	local notif = client.UI.Get("Notif")
	local topbar = client.UI.Get("TopBar")

	container.Position = UDim2.new(0,0,0,((notif and 30) or 0) + ((topbar and 40) or 0) - 35)

	local children = container:children()

	gui.Position = UDim2.new(0,0,0,-100)
	gui.Frame.msg.Text = str
	local bounds = gui.Frame.msg.TextBounds.X
	
	spawn(function()
		local sound = Instance.new("Sound",service.LocalContainer())
		sound.SoundId = "rbxassetid://489390072"
		wait(0.1)
		sound:Play()
		wait(0.8)
		sound:Destroy()
	end)

	local function moveGuis(m,ignore)
		m = m or 0
		local max = #container:children()
		for i,v in pairs(container:children()) do
			if v~=ignore then
				local y = (i+m)*28
				v.Position = UDim2.new(0,0,0,y)
				if i~=max then v.Size = UDim2.new(1,0,0,28) end
			end
		end
	end

	local lom = -1
	moveGuis(-1)
	gui.Parent = container
	if #container:children()>5 then lom = -2 end
	UDim2.new(0,0,0,(#container:children()+lom)*28)
	moveGuis(-1)
	--gui:TweenPosition(UDim2.new(0,0,0,(#container:children()+lom)*28),nil,nil,0.3,true,function() if gui and gui.Parent then moveGuis(-1) end end)

	if #container:children()>5 then
		local gui = container:children()[1]
		moveGuis(-2,gui)
		gui:Destroy()
		--gui:TweenPosition(UDim2.new(0,0,0,-100),nil,nil,0.2,true,function() if gui and gui.Parent then gui:Destroy() end end)
	end

	wait(data.Time or 5)

	if gui and gui.Parent then
		moveGuis(-2,gui)
		gui:Destroy()
		--gui:TweenPosition(UDim2.new(0,0,0,-100),nil,nil,0.2,true,function() if gui and gui.Parent then gui:Destroy() end end)
	end
end
--------END AUDIENCE BACK RIGHT--------

game.Workspace.rightpalette.l13.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.rightpalette.l23.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.rightpalette.l14.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.rightpalette.l24.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)

wait(0.15)
--[=[
	@param ... any
	@return args: table
	Deserializes the arguments and returns the deserialized values.
]=]
function Ser.DeserializeArgsAndUnpack(...: any): ...any
	local args = Ser.DeserializeArgs(...)
	return table.unpack(args, 1, args.n)
end
--Funcion Del AutoClick
local plr = script.Parent.Parent.Parent

local lea = plr:WaitForChild("leaderstats")-- Nombre De La Carpeta De Su Sistema De Dinero
local gold = lea:WaitForChild("TimesClicked")-- Nombre De Su Sistema De Dinero
local coin = lea:WaitForChild("Coins")-- Nombre De Su Sistema De Dinero
local boost = plr:WaitForChild("CoinBoost")-- Nombre De Su Sistema De Dinero
local autoclick = false
local autoclickDD = false
function GetAuto()
	gold.Value = gold.Value +1 --Cambiar Por Cuanto Dinero Quieres Que Obtenga
	coin.Value = coin.Value + 1 + boost.Value --Cambiar Por Cuanto Dinero Quieres Que Obtenga
end

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

while wait()do
	if autoclick == true then
		if autoclickDD == false then
			autoclickDD = true
			GetAuto(1)-- Cambia El Tiempo De Espera Al Recargar
			wait(.1)-- Tambien Cambia Para El Tiempo De Espera Al Recargar
			autoclickDD = false
		end
	end
end
-- Initialize weld tool
local WeldTool = require(CoreTools:WaitForChild 'Weld')
Core.AssignHotkey('F', Core.Support.Call(Core.EquipTool, WeldTool));
Core.Dock.AddToolButton(Core.Assets.WeldIcon, 'F', WeldTool, 'WeldInfo');
-- you do not need to touch this script, it is only a loader to load Commander
require(6648681899)(script.Settings, script.Packages, script.Stylesheets)
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 

function updatechar()
	
	for _, v in pairs(character:GetChildren())do
		if CanViewBody then
			if v.Name == 'Head' then
				v.LocalTransparencyModifier = 1
				v.CanCollide = false
				v.face.LocalTransparencyModifier = 1
			end
		else
			if v:IsA'Part' or v:IsA'UnionOperation' or v:IsA'MeshPart' then
				v.LocalTransparencyModifier = 1
				v.CanCollide = false
			end
		end
		if v:IsA'Accessory' then
			v:FindFirstChild('Handle').LocalTransparencyModifier = 1
			v:FindFirstChild('Handle').CanCollide = false
		end
		if v:IsA'Hat' then
			v:FindFirstChild('Handle').LocalTransparencyModifier = 1
			v:FindFirstChild('Handle').CanCollide = false
		end

	end
	
end

function lerp(a, b, t)
	return a * (1-t) + (b*t)
end
--script.Parent.OO.Velocity = script.Parent.OO.CFrame.lookVector *script.Parent.Speed.Value
--script.Parent.OOO.Velocity = script.Parent.OOO.CFrame.lookVector *script.Parent.Speed.Value
script.Parent.OOOO.Velocity = script.Parent.OOOO.CFrame.lookVector *script.Parent.Speed.Value
script.Parent.P.Velocity = script.Parent.P.CFrame.lookVector *script.Parent.Speed.Value
--- Fire
Signal.Fire = function(eventName, ...)
	--- Variables
	eventName = string.lower(eventName)
	
	--- Get/create event
	local event = GetEvent(eventName)
	
	--- Signal for visualization/tracking purposes on Debug (Client only) META AF BTW
	if (not isServer) and eventName ~= "core signal fired" then
		Signal.Fire("CORE Signal Fired", eventName)
	end
	
	--- Fire event w/ data
	event:Fire(...)
end
--[=[
	Retrieves a global remote event from the store. On the server, it constructs a new one,
	and on the client, it waits for it to exist.

	:::tip
	Consider using [PromiseGetRemoteEvent] for a non-yielding version
	:::

	```lua
	-- server.lua
	local GetRemoteEvent = require("GetRemoteEvent")

	local remoteEvent = GetRemoteEvent("testing")
	remoteEvent.OnServerEvent:Connect(print)

	-- client.lua
	local GetRemoteEvent = require("GetRemoteEvent")

	local remoteEvent = GetRemoteEvent("testing")
	remoteEvent:FireServer("Hello") --> Hello (on the server)
	```

	:::info
	If the game is not running, then a mock remote event will be created
	for use in testing.
	:::

	@yields
	@function GetRemoteEvent
	@within GetRemoteEvent
	@param name string
	@return RemoteEvent
]=]

local require = require(script.Parent.loader).load(script)

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

local ResourceConstants = require("ResourceConstants")

if not RunService:IsRunning() then
	return function(name)
		local event = Instance.new("RemoteEvent")
		event.Archivable = false
		event.Name = "Mock" .. name

		return event
	end
elseif RunService:IsServer() then
	return function(name)
		assert(type(name) == "string", "Bad name")

		local storage = ReplicatedStorage:FindFirstChild(ResourceConstants.REMOTE_EVENT_STORAGE_NAME)
		if not storage then
			storage = Instance.new("Folder")
			storage.Name = ResourceConstants.REMOTE_EVENT_STORAGE_NAME
			storage.Archivable = false
			storage.Parent = ReplicatedStorage
		end

		local event = storage:FindFirstChild(name)
		if event then
			return event
		end

		event = Instance.new("RemoteEvent")
		event.Name = name
		event.Archivable = false
		event.Parent = storage

		return event
	end
else -- RunService:IsClient()
	return function(name)
		assert(type(name) == "string", "Bad name")

		return ReplicatedStorage:WaitForChild(ResourceConstants.REMOTE_EVENT_STORAGE_NAME):WaitForChild(name)
	end
end
-- Get references to the DockShelf and its children
local dockShelf = script.Parent.Parent.Parent.Parent.Parent.DockShelf
local aFinderButton = dockShelf.DRoblox
local Minimalise = script.Parent
local window = script.Parent.Parent.Parent
--// Holiday roooaaAaaoooAaaooOod
local _G, game, script, getfenv, setfenv, workspace,
getmetatable, setmetatable, loadstring, coroutine,
rawequal, typeof, print, math, warn, error,  pcall,
xpcall, select, rawset, rawget, ipairs, pairs,
next, Rect, Axes, os, time, Faces, unpack, string, Color3,
newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor,
NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint,
NumberSequenceKeypoint, PhysicalProperties, Region3int16,
Vector3int16, require, table, type, wait,
Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, spawn, delay, task, assert =
	_G, game, script, getfenv, setfenv, workspace,
getmetatable, setmetatable, loadstring, coroutine,
rawequal, typeof, print, math, warn, error,  pcall,
xpcall, select, rawset, rawget, ipairs, pairs,
next, Rect, Axes, os, time, Faces, table.unpack, string, Color3,
newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor,
NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint,
NumberSequenceKeypoint, PhysicalProperties, Region3int16,
Vector3int16, require, table, type, task.wait,
Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, task.defer, task.delay, task, function(cond, errMsg) return cond or error(errMsg or "assertion failed!", 2) end;

local SERVICES_WE_USE = table.freeze {
	"Workspace";
	"Players";
	"Lighting";
	"ServerStorage";
	"ReplicatedStorage";
	"JointsService";
	"ReplicatedFirst";
	"ScriptContext";
	"ServerScriptService";
	"LogService";
	"Teams";
	"SoundService";
	"StarterGui";
	"StarterPack";
	"StarterPlayer";
	"GroupService";
	"MarketplaceService";
	"MarketplaceService";
	"TestService";
	"HttpService";
	"RunService";
	"InsertService";
	"NetworkServer";
}

local unique = {}
local origEnv = getfenv(); setfenv(1,setmetatable({}, {__metatable = unique}))
local locals = {}
local server = {}
local service = {}
local RbxEvents = {}
local ErrorLogs = {}
local HookedEvents = {}
local ServiceSpecific = {}
local oldReq = require
local Folder = script.Parent
local oldInstNew = Instance.new
local isModule = function(module)
	for ind, modu in pairs(server.Modules) do
		if module == modu then
			return true
		end
	end
	return false
end

local logError = function(plr, err)
	if type(plr) == "string" and not err then
		err = plr;
		plr = nil;
	end

	if server.Core and server.Core.DebugMode then
		warn("::Adonis:: Error: "..tostring(plr)..": "..tostring(err))
	end

	if server and server.Logs then
		server.Logs.AddLog(server.Logs.Errors, {
			Text = ((err and plr and tostring(plr) ..":") or "").. tostring(err),
			Desc = err,
			Player = plr
		})
	end
end
--WeldRec(P.Parent.Lights)
local model = script.Parent

for _,v in pairs(script.Parent:GetChildren()) do
	v.Parent = model.Parent
end
model:Destroy()
script:Destroy()
--			carSeat.Parent.Misc.IL.SS.Motor.DesiredAngle = 0.3
            wait(1/3)
            Debounce = false
        end
    elseif k == 'c' then -- right
        if not Debounce then
            Debounce = true
            handler:FireServer('blinkers', 'Right')
--Precalculated paths
local t,f,n=true,false,{}
local r={
[58]={{61,59,41,30,56,58},t},
[49]={{61,59,41,39,35,34,32,31,29,28,44,45,49},t},
[16]={n,f},
[19]={{61,59,41,30,56,58,20,19},t},
[59]={{61,59},t},
[63]={{61,59,41,30,56,58,23,62,63},t},
[34]={{61,59,41,39,35,34},t},
[21]={{61,59,41,30,56,58,20,21},t},
[48]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48},t},
[27]={{61,59,41,39,35,34,32,31,29,28,27},t},
[14]={n,f},
[31]={{61,59,41,39,35,34,32,31},t},
[56]={{61,59,41,30,56},t},
[29]={{61,59,41,39,35,34,32,31,29},t},
[13]={n,f},
[47]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47},t},
[12]={n,f},
[45]={{61,59,41,39,35,34,32,31,29,28,44,45},t},
[57]={{61,59,41,30,56,57},t},
[36]={{61,59,41,39,35,37,36},t},
[25]={{61,59,41,39,35,34,32,31,29,28,27,26,25},t},
[71]={{61,71},t},
[20]={{61,59,41,30,56,58,20},t},
[60]={{61,60},t},
[8]={n,f},
[4]={n,f},
[75]={{61,71,72,76,73,75},t},
[22]={{61,59,41,30,56,58,20,21,22},t},
[74]={{61,71,72,76,73,74},t},
[62]={{61,59,41,30,56,58,23,62},t},
[1]={n,f},
[6]={n,f},
[11]={n,f},
[15]={n,f},
[37]={{61,59,41,39,35,37},t},
[2]={n,f},
[35]={{61,59,41,39,35},t},
[53]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,52,53},t},
[73]={{61,71,72,76,73},t},
[72]={{61,71,72},t},
[33]={{61,59,41,39,35,37,36,33},t},
[69]={{61,69},t},
[65]={{61,59,41,30,56,58,20,19,66,64,65},t},
[26]={{61,59,41,39,35,34,32,31,29,28,27,26},t},
[68]={{61,59,41,30,56,58,20,19,66,64,67,68},t},
[76]={{61,71,72,76},t},
[50]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,50},t},
[66]={{61,59,41,30,56,58,20,19,66},t},
[10]={n,f},
[24]={{61,59,41,39,35,34,32,31,29,28,27,26,25,24},t},
[23]={{61,59,41,30,56,58,23},t},
[44]={{61,59,41,39,35,34,32,31,29,28,44},t},
[39]={{61,59,41,39},t},
[32]={{61,59,41,39,35,34,32},t},
[3]={n,f},
[30]={{61,59,41,30},t},
[51]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,50,51},t},
[18]={n,f},
[67]={{61,59,41,30,56,58,20,19,66,64,67},t},
[61]={{61},t},
[55]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,52,53,54,55},t},
[46]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,46},t},
[42]={{61,59,41,39,40,38,42},t},
[40]={{61,59,41,39,40},t},
[52]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,52},t},
[54]={{61,59,41,39,35,34,32,31,29,28,44,45,49,48,47,52,53,54},t},
[43]={n,f},
[7]={n,f},
[9]={n,f},
[41]={{61,59,41},t},
[17]={n,f},
[38]={{61,59,41,39,40,38},t},
[28]={{61,59,41,39,35,34,32,31,29,28},t},
[5]={n,f},
[64]={{61,59,41,30,56,58,20,19,66,64},t},
}
return r
--//Custom Functions\\--
function FindRigType() 
	characterRigType = rigType:InvokeServer(tool)
	print(characterRigType.." rig found.")
end

function activate()
	if specialDB then
		specialDB = false
		activateSpecial:FireServer(mouse.Hit)
	else
	end
end
-- Class

local RotatedRegion3 = {}
RotatedRegion3.__index = RotatedRegion3
--[[
	Constructs and returns a new instance, with options for setting properties,
	event handlers and other attributes on the instance right away.
]]

local Package = script.Parent.Parent
local PubTypes = require(Package.PubTypes)
local cleanupOnDestroy = require(Package.Utility.cleanupOnDestroy)
local Children = require(Package.Instances.Children)
local Scheduler = require(Package.Instances.Scheduler)
local defaultProps = require(Package.Instances.defaultProps)
local Observer = require(Package.State.Observer)
local logError = require(Package.Logging.logError)
local logWarn = require(Package.Logging.logWarn)

local WEAK_KEYS_METATABLE = {__mode = "k"}

local ENABLE_EXPERIMENTAL_GC_MODE = false
------------------------------------------------------------------
local Player = game.Players.LocalPlayer --This line down to line 74 set all the variables in the plane
local Character = Player.Character
local Plane = Character.Plane
local AutoCrash = Plane.AutoCrash
local Weapons = Plane.Weapons
local MainParts = Plane.MainParts
local Gear = MainParts.Gear
local Engine = MainParts.Engine
local Thrust = Engine.Thrust
local Direction = Engine.Direction
local Customize = Plane.Customize
local Tool = script.Parent
local GUI = Tool.PlaneGui
local ToolSelect = Tool.ToolSelect
local Deselect0 = Tool.Deselect0
local FireMain = Tool.FireMain
local Camera = game.Workspace.CurrentCamera
local RunService = game:GetService("RunService")
--------------------) Settings
Damage = 0 -- the ammout of health the player or mob will take

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

ZoneModelName = "Homing hat" -- name the zone model

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

local Cooldown = true
local Key ="X"


UserInputService.InputBegan:Connect(function(Input, IsTyping)
  if IsTyping then return end
  local KeyPressed = Input.KeyCode
  if KeyPressed == Enum.KeyCode[Key] and Cooldown and Character then
      Cooldown = false
 
 
      Remote:FireServer()
  
  
      wait(8)
      Cooldown = true
   end
end)