Roblox/luau_corpus huggingface dataset:
-- Attack configuration
local ATTACK_MODE = getValueFromConfig("AttackMode")
local ATTACK_RADIUS = getValueFromConfig("AttackRadius")
local ATTACK_DAMAGE = getValueFromConfig("AttackDamage")
local ATTACK_DELAY = getValueFromConfig("AttackDelay")
local RELOAD_DELAY = getValueFromConfig("ReloadDelay")
local CLIP_CAPACITY = getValueFromConfig("ClipCapacity")
--already has E
e = hear.E
e.Name = "Old"
newe = script.E:clone()
newe.Text = child.Value
newe.Position = e.Position + UDim2.new(0,0,0.03,0)
newe.Parent = hear
wait(0.1)
newe.Remover.Disabled = false
else
--[[
	Functions like a hypothetical 'Instance.Destroyed' event - when the instance
	is destroyed, cleans up the given task using the default `cleanup` function.
	Returns a function which can be called to stop listening for destruction.

	Relying on this function is dangerous - this should only ever be used when
	no more suitable solution exists. In particular, it's almost certainly the
	wrong solution if you're not dealing with instances passed in by the user.

	NOTE: yes, this uses polling. I've been working on making this function
	work better with events for months, and even then I can't avoid polling. I
	just want something that works in all edge cases, even it if might not be
	the theoretically best solution. This is the best choice for the short term.

	You can find the 'better' version with less polling in the
	`cleanupOnDestroy_smart` file if you're interested in helping out :)
]]

local RunService = game:GetService("RunService")

local Package = script.Parent.Parent
local cleanup = require(Package.Utility.cleanup)

type TaskData = {
	connection: RBXScriptConnection,
	task: cleanup.Task,
	cleaned: boolean
}

local function noOp()
	-- intentionally blank - no operation!
end

local tasks: {TaskData} = {}
local numTasks = 0
local currentIndex = 1
-- Decompiled with the Synapse X Luau decompiler.
--NOTE: Currently in beta! Not representative of final product.
local u1 = nil;
coroutine.wrap(function() -- [line 1] anonymous function
	--[[
		Upvalues: 
			[1] = u1
	--]]
	u1 = require(game.ReplicatedStorage:WaitForChild("Resources"));
end)();
local v1 = u1.PlayerModule.Get("Mouse");
local u2 = u1.PlayerModule.Get("PlayerGui");
local u3 = v1;
return function(p1, p2) -- [line 6] anonymous function
	if not p1 then
		return
	end
	--[[
		Upvalues: 
			[1] = u1
			[2] = u2
			[3] = u3
	--]]
	if (u1.Variables.Mobile) then
		return false;
	end
	local v2 = {};
	local u4 = u2:FindFirstChild("TooltipsFolder");
	if (u4 == nil) then
		u4 = Instance.new("ScreenGui");
		u4.Name = "TooltipsFolder";
		u4.DisplayOrder = 999;
		u4.Parent = u2;
	end
	local u5 = nil;
	local u6 = false;
	local f_Remove;
	f_Remove = function() -- [line 20] Remove
		--[[
			Upvalues: 
				[1] = u5
		--]]
		if (u5) then
			u5:Destroy();
			u5 = nil;
		end
	end;
	local u7 = p2;
	local u8 = p1;
	local f_Create;
	f_Create = function() -- [line 26] Create
		--[[
			Upvalues: 
				[1] = u4
				[2] = u5
				[3] = u7
				[4] = u1
				[5] = u6
				[6] = u8
				[7] = u3
		--]]
		u4:ClearAllChildren();
		u5 = Instance.new("TextLabel");
		u5.BorderSizePixel = 0;
		u5.BackgroundColor3 = Color3.new(0.35, 0.35, 0.35);
		u5.TextColor3 = Color3.new(1, 1, 1);
		u5.FontSize = Enum.FontSize.Size18;
		u5.Font = Enum.Font.FredokaOne;
		u5.Text = u7;
		local v3 = Instance.new("UICorner");
		v3.CornerRadius = UDim.new(1, 0);
		v3.Parent = u5;
		local v4 = u1.TextService:GetTextSize(u5.Text, u5.TextSize, u5.Font, Vector2.new(1000, 1000));
		u5.Size = UDim2.new(0, v4.X + 14, 0, v4.Y + 8);
		u5.Parent = u4;
		u6 = false;
		while (((not u6) and u5) and ((u5.Parent and u8) and (not u1.Variables.Mobile))) do
			local v5 = false;
			local v6 = u3.X;
			local t_X_1 = v6;
			local t_Y_2 = u3.Y;
			local v7 = u8.AbsolutePosition.X;
			local t_X_3 = v7;
			local t_Y_4 = u8.AbsolutePosition.Y;
			local v8 = v7 - 10;
			if ((v8 < v6) and (t_X_1 < ((t_X_3 + u8.AbsoluteSize.X) + 10))) then
				local v9 = t_Y_4 - 10;
				if ((v9 < t_Y_2) and (t_Y_2 < ((t_Y_4 + u8.AbsoluteSize.Y) + 10))) then
					u5.Position = UDim2.new(0, u3.X + 17, 0, u3.Y);
				else
					v5 = true;
				end
			else
				v5 = true;
			end
			if (v5) then
				u6 = true;
			end
			u1.RenderStepped();
		end
		if (u5) then
			u5:Destroy();
			u5 = nil;
		end
	end;
	local v10 = (#v2) + 1;
	local v11 = p1.MouseEnter;
	local f_Create = f_Create;
	v2[v10] = v11:Connect(function() -- [line 62] anonymous function
		--[[
			Upvalues: 
				[1] = u5
				[2] = f_Create
		--]]
		if (u5) then
			u5:Destroy();
			u5 = nil;
		end
		f_Create();
	end);
	v2[(#v2) + 1] = p1.MouseLeave:Connect(function() -- [line 66] anonymous function
		--[[
			Upvalues: 
				[1] = u5
		--]]
		if (u5) then
			u5:Destroy();
			u5 = nil;
		end
	end);
	local u9 = v2;
	return function() -- [line 69] anonymous function
		--[[
			Upvalues: 
				[1] = u9
				[2] = u6
		--]]

			for v18, v19 in ipairs(u9) do
			local v20 = v18;
			local v21 = v19;
			v21:Disconnect();
		end
		u6 = true;
	end;
end;
-- Signals
bind.OnClientEvent:Connect(bindAction)
unbind.OnClientEvent:Connect(unbindAction)
--Don't touch anything in this script unless you know what you're doing
script.Parent.MouseButton1Click:connect(function()
local input = script.Parent.Parent.Input.Text
local sound = script.Parent.Parent.Parent.Sound
sound.SoundId = 'rbxassetid://'..input
sound:Play() end)
-- loop

DROPS.ChildAdded:connect(function(drop)
	for _, other in pairs(DROPS:GetChildren()) do
		if other ~= drop then
			local offset	= drop.Position - other.Position
			if math.abs(offset.X) < 2 and math.abs(offset.Y) < 2 and math.abs(offset.Z) < 2 then
				local distance	= offset.Magnitude
				if distance < 2 then
					if distance == 0 then
						offset	= Vector3.new(0, 0, 1)
					end
					drop.CFrame		= drop.CFrame + Vector3.new(offset.X, 0, offset.Z).Unit * 2
				end
			end
		end
	end
end)
-- shades of EE labs...
local LEDs = {d.P1, d.P2, d.P3, d.P4, d.P5, d.P6, d.P7}
-- Signal:Fire(...) implemented by running the handler functions on the
-- coRunnerThread, and any time the resulting thread yielded without returning
-- to us, that means that it yielded to the Roblox scheduler and has been taken
-- over by Roblox scheduling, meaning we have to make a new coroutine runner.
--[=[
	@param ... any

	Fire the signal, which will call all of the connected functions with the given arguments.
	```lua
	signal:Fire("Hello")

	-- Any number of arguments can be fired:
	signal:Fire("Hello", 32, {Test = "Test"}, true)
	```
]=]
function Signal:Fire(...)
	local item = self._handlerListHead
	while item do
		if item.Connected then
			if not freeRunnerThread then
				freeRunnerThread = coroutine.create(runEventHandlerInFreeThread)
			end
			task.spawn(freeRunnerThread, item._fn, ...)
		end
		item = item._next
	end
end
--[[**
	ensures Roblox Faces type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]
t.Faces = primitive("Faces")
------------------------------------------------------------------------------
--------------------[ MAIN PROGRAM ]------------------------------------------
------------------------------------------------------------------------------

function DetonateExplosive()
	local GrenadePos = Main.Position
	
	CreateShockwave(Main.Position, S.GrenadeBlastRadius)
	
	Sound:Play()
	
	local E = Instance.new("Explosion")
	E.BlastPressure = S.GrenadeBlastPressure
	E.BlastRadius = S.GrenadeBlastRadius
	E.DestroyJointRadiusPercent = (S.GrenadeRangeBasedDamage and 0 or 1)
	E.ExplosionType = S.GrenadeExplosionType
	E.Position = GrenadePos
	E.Hit:connect(function(HObj, HDist)
		if (not IsIgnored(HObj)) and HObj.Name == "Torso" then
			if S.GrenadeRangeBasedDamage then
				local ClosestPart = nil
				local ClosestDist = math.huge
				
				for _, P in pairs(HObj.Parent:GetChildren()) do
					if P:IsA("BasePart") then
						local Dist = (GrenadePos - P.Position).magnitude
						if Dist < ClosestDist then
							ClosestPart = P
							ClosestDist = Dist
						end
					end
				end
				
				local Dir = (ClosestPart.Position - GrenadePos).unit
				local H, P = AdvRayCast(GrenadePos, Dir, 999)
				local RayHitHuman = H:IsDescendantOf(HObj.Parent)
				if (S.GrenadeRayCastExplosions and RayHitHuman) or (not S.GrenadeRayCastExplosions) then
					local HitHumanoid = FindFirstClass(HObj.Parent, "Humanoid")
					if HitHumanoid and HitHumanoid.Health > 0 and IsEnemy(HitHumanoid) then
						local DistFactor = ClosestDist / S.GrenadeBlastRadius
						local DistInvert = math.max(1 - DistFactor, 0)
						local NewDamage = DistInvert * S.LethalGrenadeDamage
						
						local CreatorTag = Instance.new("ObjectValue")
						CreatorTag.Value = Plyr
						CreatorTag.Name = "creator"
						CreatorTag.Parent = HitHumanoid
						HitHumanoid:TakeDamage(NewDamage)
						MarkHit()
					end
				end
			else
				local HitHumanoid = FindFirstClass(HObj.Parent, "Humanoid")
				if HitHumanoid and HitHumanoid.Health > 0 and IsEnemy(HitHumanoid) then
					local CreatorTag = Instance.new("ObjectValue")
					CreatorTag.Value = Plyr
					CreatorTag.Name = "creator"
					CreatorTag.Parent = HitHumanoid
					MarkHit()
				end
			end
		end
	end)
	E.Parent = game.Workspace
	
	Main.Transparency = 1
	Main.Anchored = true
	Main.CanCollide = false
	
	wait(1)
	
	Connection:disconnect()
	Main:Destroy()
end

Main.Touched:connect(function(Obj)
	if IsIgnored(Obj) or Detonated then return end
	GrenadeCF = Main.CFrame
	
	local W = Instance.new("Weld")
	W.Name = "Semtex"
	W.Part0 = Main
	W.Part1 = Obj
	W.C0 = GrenadeCF:toObjectSpace(Obj.CFrame)
	W.Parent = Main
	
	Connection = Main.ChildRemoved:connect(function(C)
		if C.Name == "Semtex" and (not Detonated) then
			local W = Instance.new("Weld")
			W.Name = "Semtex"
			W.Part0 = Main
			W.Part1 = Obj
			W.C0 = GrenadeCF:toObjectSpace(Obj.CFrame)
			W.Parent = Main
		end
	end)
	
	if S.TimerStartOnHit then
		Detonated = true
		wait(S.DetonationTime)
		DetonateExplosive()
	end
end)

if (not S.TimerStartOnHit) then
	wait(S.DetonationTime)
	Detonated = true
	DetonateExplosive()
end
-- Wait for the client's initial replication to complete.
-- This should allow us to avoid having a mountian of WaitForChilds 😅
--repeat wait(0.1) until game.Loaded:Wait()
if not game:IsLoaded() then
	game.Loaded:Wait()
end
--[[
	Calls await and only returns if the Promise resolves.
	Throws if the Promise rejects or gets cancelled.
]]
function Promise.prototype:expect()
	return expectHelper(self:awaitStatus())
end
-- constants

local EFFECTS	= Workspace:WaitForChild("Effects")
local CAMERA	= Workspace.CurrentCamera
local EVENTS	= ReplicatedStorage:WaitForChild("Events")
--EFFECT


script.Parent.BrickColor = BrickColor.new("New Yeller")
wait(1)
trans = 0
for i = 1, 50 do
trans = trans - 0.05
script.Parent.Transparency = script.Parent.Transparency - trans
wait(.5)
end
script.Parent:Destroy()
--
tool.Activated:connect(function()
	mouseclick = true
end)
tool.Deactivated:connect(function()
	mouseclick = false
end)
--[[INSTALL PROCESS]]--
-- Place the brick in the body group, where your radiator would be, and place the "Temperature" GUI in the plugin folder!
-- This plugin is Filtering Enabled compatible


script:WaitForChild("Celsius")
script:WaitForChild("Blown")
local car = script.Parent.Parent.Parent.Parent.Car.Value
local radiator = car.Body.Smoke
local mouse = game.Players.LocalPlayer:GetMouse()
local handler = car.EngineOverheat
local FE = workspace.FilteringEnabled
--// Event Connections
L_108_.OnClientEvent:connect(function(L_313_arg1, L_314_arg2)
	if L_313_arg1 ~= L_2_ then
		local L_315_ = L_313_arg1.Character
		local L_316_ = L_315_.AnimBase.AnimBaseW
		local L_317_ = L_316_.C1
		if L_314_arg2 then
			L_121_(L_316_,  nil , L_315_.Head.CFrame, function(L_318_arg1)
				return math.sin(math.rad(L_318_arg1))
			end, 0.25)
		elseif not L_314_arg2 then
			L_121_(L_316_,  nil , L_317_, function(L_319_arg1)
				return math.sin(math.rad(L_319_arg1))
			end, 0.25)
		end
	end
end)
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

local toolAnimName = ""
local toolAnimTrack = nil
local toolAnimInstance = nil
local currentToolAnimKeyframeHandler = nil

function toolKeyFrameReachedFunc(frameName)
	if (frameName == "End") then
		--		print("Keyframe : ".. frameName)	
		playToolAnimation(toolAnimName, 0.0, Humanoid)
	end
end


function playToolAnimation(animName, transitionTime, humanoid, priority)	 

	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
	--		print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
	local anim = animTable[animName][idx].anim

	if (toolAnimInstance ~= anim) then

		if (toolAnimTrack ~= nil) then
			toolAnimTrack:Stop()
			toolAnimTrack:Destroy()
			transitionTime = 0
		end

		-- load it to the humanoid; get AnimationTrack
		toolAnimTrack = humanoid:LoadAnimation(anim)
		if priority then
			toolAnimTrack.Priority = priority
		end

		-- play the animation
		toolAnimTrack:Play(transitionTime)
		toolAnimName = animName
		toolAnimInstance = anim

		currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
	end
end

function stopToolAnimations()
	local oldAnim = toolAnimName

	if (currentToolAnimKeyframeHandler ~= nil) then
		currentToolAnimKeyframeHandler:disconnect()
	end

	toolAnimName = ""
	toolAnimInstance = nil
	if (toolAnimTrack ~= nil) then
		toolAnimTrack:Stop()
		toolAnimTrack:Destroy()
		toolAnimTrack = nil
	end


	return oldAnim
end
--/////////////////////////////////////////////////////////--

local curSize
local create
local Expand
local doHide
local doClose
local dragSize
local isVisible
local DoRefresh
local getNextPos
local wallPosition
local setPosition
local checkMouse
local isInFrame 
local setSize
local apiIfy

client = nil
cPcall = nil
Pcall = nil
Routine = nil
service = nil
GetEnv = nil

local function isGui(child)
	return child:IsA("GuiObject");
end
--//Controller//--
RunService.RenderStepped:Connect(function()
	TweenService:Create(
		Display,
		
		TweenInfo.new(
			0.25
		),
		
		{
			Size = UDim2.new(1 * Humanoid.Health / Humanoid.MaxHealth, 0, 1, 0)
		}
	):Play()
	
	Status.Text = math.floor(Humanoid.Health).." / "..Humanoid.MaxHealth
	
	if Humanoid.Health <= Humanoid.MaxHealth and Humanoid.Health > Humanoid.MaxHealth * 50 / 100 then
		Display.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
		
	elseif Humanoid.Health <= Humanoid.MaxHealth * 50 / 100 and Humanoid.Health > Humanoid.MaxHealth * 25 / 100 then
		Display.BackgroundColor3 = Color3.fromRGB(255, 170, 0)
		
	elseif Humanoid.Health <= Humanoid.MaxHealth * 25 / 100 then
		Display.BackgroundColor3 = Color3.fromRGB(170, 0, 0)

	end
end)
-- Returns the ancestor that contains a Humanoid, if it exists
local function FindCharacterAncestor(subject)
	if subject and subject ~= game.Workspace then
		local humanoid = subject:FindFirstChild('Humanoid')
		if humanoid then
			return subject, humanoid
		else
			return FindCharacterAncestor(subject.Parent)
		end
	end
	return nil
end

local function OnExplosionHit(hitPart, hitDistance, blastCenter)
	local character, humanoid = FindCharacterAncestor(hitPart.Parent)
	if hitPart.Name == "CenterPart" then return false end
	if humanoid and humanoid.Health > 0 then
		if hitPart.Name == 'HumanoidRootPart' then
			humanoid:TakeDamage(script:FindFirstChild('Damage').Value)
		end
	else
		hitPart:BreakJoints()
		local blastForce = Instance.new('BodyForce', hitPart)
		blastForce.force = (hitPart.Position - blastCenter).unit * script:FindFirstChild('BlastForce').Value * hitPart:GetMass()
		game.Debris:AddItem(blastForce, 0.1)
	end
end


cannonball.Touched:connect(function(other)
	local explosion = Instance.new("Explosion")
	explosion.BlastPressure = 0
	explosion.ExplosionType = Enum.ExplosionType.NoCraters
	explosion.BlastRadius = script:FindFirstChild('BlastRadius').Value
	explosion.Position = cannonball.Position	
	explosion.Parent = cannonball
	
	local connection = explosion.Hit:connect(function(hitPart, hitDistance) OnExplosionHit(hitPart, hitDistance, explosion.Position) end)
	wait(.1)
	cannonball:Destroy()
end)
-- This makes the loading bar fill up. Don't touch anything here!
local prog = 0

while wait() do
	prog = prog + 0.5
	script.Parent.Size = UDim2.new(prog/100, 0, 0.1, 0)
	script.Parent.Parent.LoadingLabel.Text = ("Loading... " ..math.floor(prog*2).. "%")
	if prog == 50 then
		wait(1)
		script.Parent.Parent.Parent:Destroy()
	end
end

script:Destroy()
-- If you want to know how to retexture a hat, read this:  http://www.roblox.com/Forum/ShowPost.aspx?PostID=10502388








debounce = true

function onTouched(hit)
	if (hit.Parent:findFirstChild("Humanoid") ~= nil and debounce == true) then
		debounce = false
		h = Instance.new("Accessory")
		p = Instance.new("Part")
		h.Name = "Hat"   -- It doesn't make a difference, but if you want to make your place in Explorer neater, change this to the name of your hat.
		p.Parent = h
		p.Position = hit.Parent:findFirstChild("Head").Position
		p.Name = "Handle" 
		p.formFactor = 0
		p.Size = Vector3.new(-0,-0,-1) 
		p.BottomSurface = 0 
		p.TopSurface = 0 
		p.Locked = true 
		script.Parent.Mesh:clone().Parent = p
		h.Parent = hit.Parent
		h.AttachmentPos = Vector3.new(0,-0.05,0.22) -- Change these to change the positiones of your hat, as I said earlier.
		wait(5)		debounce = true
	end
end

script.Parent.Touched:connect(onTouched)
-- Private Methods

function init(self)
	local button = self.Button
	local listFrame = self.ListFrame
	
	--local function contentSizeUpdate()
	--	local absSize = button.AbsoluteSize
	--	local ratio = absSize.y / absSize.x
		
	--	button.Arrow.Size = UDim2.new(ratio, 0, 1, 0)
	--	button.Option.Size = UDim2.new(1 - ratio, -12, 1, 0)
	--end
	
	--contentSizeUpdate()
	--self._Maid:Mark(button:GetPropertyChangedSignal("AbsoluteSize"):Connect(contentSizeUpdate))
	
	for i, optionButton in next, listFrame.ScrollFrame:GetChildren() do
		if not optionButton:IsA("GuiButton") then
			continue
		end
		
		self._Options[i] = optionButton
		optionButton.Activated:Connect(function()
			self:Set(optionButton)
		end)
	end

	self._Maid:Mark(button.Activated:Connect(function()
		self:Show(not listFrame.Visible)
	end))
	
	self._Maid:Mark(UIS.InputBegan:Connect(function(input)
		if (VALID_PRESS[input.UserInputType]) then
			local p = input.Position
			local p2 = Vector2.new(p.x, p.y)
			
			if (listFrame.Visible and not (isInFrame(listFrame, p2) or isInFrame(button, p2))) then
				self:Show(false)
			end
		end
	end))
end

function isInFrame(frame, pos)
	local fPos = frame.AbsolutePosition
	local fSize = frame.AbsoluteSize
	local d = pos - fPos
	return (d.x >= 0 and d.x <= fSize.x and d.y >= 0 and d.y <= fSize.y)
end
--[[ Public API ]]--
function ShiftLockController:IsShiftLocked()
	return IsShiftLockMode and IsShiftLocked
end

function ShiftLockController:SetIsInFirstPerson(isInFirstPerson)
	IsInFirstPerson = isInFirstPerson
end
--// Events
local L_101_ = L_20_:WaitForChild('Equipped')
local L_102_ = L_20_:WaitForChild('ShootEvent')
local L_103_ = L_20_:WaitForChild('DamageEvent')
local L_104_ = L_20_:WaitForChild('CreateOwner')
local L_105_ = L_20_:WaitForChild('Stance')
local L_106_ = L_20_:WaitForChild('HitEvent')
local L_107_ = L_20_:WaitForChild('KillEvent')
local L_108_ = L_20_:WaitForChild('AimEvent')
local L_109_ = L_20_:WaitForChild('ExploEvent')
local L_110_ = L_20_:WaitForChild('AttachEvent')
-- When the weapon is deactivated
function weaponTemplate:OnDeactivate()
	
end

function weaponTemplate:OnStartFiring()
end

function weaponTemplate:OnStopFiring()
	
	-- Is Server
	if not self.isClient then
		self.rewardTimer:Stop()
	end
end

function weaponTemplate:OnFire()
	
	

	if not self.isClient then
		self.gun.Body.Begin:Play()
	end

		
	-- Is Client
	if self.isClient then
		
		local newProjectile = self.projectileModel:Clone()
		local randomPoint = weaponTemplate.getUnitSpherePoint()
		local newBullet = bullet.new(newProjectile, self.ownerPlayer, 50, self.gun.firePart.Position, self.gun.firePart.CFrame.LookVector + randomPoint * self.coneSpread, 300, "Physics", false)
		newBullet.Name = newProjectile.Name
		replicateProjectile_Re:FireServer(newBullet)
	end
		

			
	if not self.isClient then
		-- Ensure they don't run multiple timers

		if not self.rewardTimer:IsRunning() and self.rewardTimer.runningTicks == 0 then
			spawn(function() self.rewardTimer:Start() end) 
		end
	end
end
-- return to idle if finishing an emote
if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
repeatAnim = "idle"
end

local animSpeed = currentAnimSpeed
playAnimation(repeatAnim, 0.0, Humanoid)
setAnimationSpeed(animSpeed)
end
end
--[[**
	ensures Roblox EnumItem type

	@param value The value to check against

	@returns True iff the condition is satisfied, false otherwise
**--]]
t.EnumItem = primitive("EnumItem")
-- events

REMOTES.Finished.OnClientEvent:connect(function()
	SCOPE_GUI.Visible	= false
	MOUSE_GUI.Visible	= false
	
	script.Disabled	= true
end)

SCOPE_GUI:GetPropertyChangedSignal("Visible"):connect(function()
	script.ScopeSound:Play()
	
	if SCOPE_GUI.Visible then
		Lighting.ScopeBlur.Enabled	= true
		Lighting.ScopeBlur.Size		= 32
		
		SCOPE_GUI.Size		= UDim2.new(1.1, 0, 1.1, 0)
		
		local info	= TweenInfo.new(0.4, Enum.EasingStyle.Sine, Enum.EasingDirection.Out)
		local blurTween		= TweenService:Create(Lighting.ScopeBlur, info, {Size = 0})
		local scopeTween	= TweenService:Create(SCOPE_GUI, info, {Size = UDim2.new(1.4, 0, 1.4, 0)})
		
		blurTween:Play()
		scopeTween:Play()
	else
		Lighting.ScopeBlur.Enabled	= false
	end
end)

EVENTS.Aim.Event:connect(function(a)
	aiming	= a
	UpdateScope()
end)

EVENTS.Scope.Event:connect(function(s)
	scope	= s
	UpdateScope()
end)

EVENTS.Sway.Event:connect(function(sway)
	scopeSpring:Shove(sway)
end)

EVENTS.Hitmarker.Event:connect(Hitmarker)

REMOTES.Hitmarker.OnClientEvent:connect(Hitmarker)
--INSERT THIS SCRIPT IN SERVERSCRIPTSERVICE--

BadgeID = 0 	--INSERT BADGE ID
TimeNo = 0.1	--WHEN TO GIVE BADGE AFTER PLAYER JOINED (Don't Change)
--[[Transmission]]
	Tune.TransModes		= {"Auto", "Semi", "Manual"}								--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch
		
		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}								
		>First mode is default mode													]]
	
	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]	
	Tune.AutoUpThresh	= -200		--Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		--Automatic downshift point (relative to peak RPM, positive = Under-rev)
	
	--Gear Ratios
	Tune.FinalDrive		= 3.30			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	2.80		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		3.98		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.61		,
		--[[ 3 ]]		1.90		,
		--[[ 4 ]]		1.48		,
		--[[ 5 ]]		1.16		,
		--[[ 6 ]]		0.91		,
		--[[ 7 ]]		0.69		,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
-- initiate

while true do
	wait(1)
	for p, v in pairs(cooldowns) do
		cooldowns[p]	= v - 1
	end
end