System: You will be given a Luau script (that has been decompiled). You will rename the variables and functions to sound better, make the script more coherent, and add comments to areas of the script. Return the fixed script without adding ``` as we handle that. If no script has been given, do not produce any output. Do not respond with anything but the script
User: -- Decompiler will be improved soon!
-- Decompiled with Konstant V2.1, a fast Luau decompiler made in Luau by plusgiant5 (https://discord.gg/wyButjTMhM)
-- Decompiled on 2025-02-02 09:48:55
-- Luau version 6, Types version 3
-- Time taken: 0.002152 seconds

local Remotes_upvr = game:GetService("ReplicatedStorage"):WaitForChild("Remotes")
local LocalPlayer_upvr = game.Players.LocalPlayer
local Ui_upvr = LocalPlayer_upvr.PlayerGui:WaitForChild("Ui", 500)
local mouse_upvr = LocalPlayer_upvr:GetMouse()
local SetUp_upvr = require(script.SetUp)
local Range_upvr = require(script.Range)
local var7_upvw
mouse_upvr.Button1Down:Connect(function() -- Line 14
	--[[ Upvalues[6]:
		[1]: mouse_upvr (readonly)
		[2]: Range_upvr (readonly)
		[3]: LocalPlayer_upvr (readonly)
		[4]: SetUp_upvr (readonly)
		[5]: Ui_upvr (readonly)
		[6]: var7_upvw (read and write)
	]]
	-- KONSTANTERROR: [0] 1. Error Block 1 start (CF ANALYSIS FAILED)
	local Target = mouse_upvr.Target
	Range_upvr.Range(nil, 1)
	-- KONSTANTERROR: [0] 1. Error Block 1 end (CF ANALYSIS FAILED)
	-- KONSTANTERROR: [10] 9. Error Block 2 start (CF ANALYSIS FAILED)
	local any_IsDescendantOf_result1 = Target:IsDescendantOf(workspace.Towers)
	-- KONSTANTERROR: [10] 9. Error Block 2 end (CF ANALYSIS FAILED)
	-- KONSTANTERROR: [81] 50. Error Block 33 start (CF ANALYSIS FAILED)
	if any_IsDescendantOf_result1.Parent.Stats.Owner.Value == LocalPlayer_upvr.Name then
	else
		return
	end
	SetUp_upvr.SetUp(any_IsDescendantOf_result1, Ui_upvr.Upgrade)
	Range_upvr.Range(any_IsDescendantOf_result1.Range, 0.8)
	var7_upvw = any_IsDescendantOf_result1
	if any_IsDescendantOf_result1.Parent.Name == "Aviator" then
		Range_upvr.Range(any_IsDescendantOf_result1.Plane.Range, 0.8)
	end
	for _, v in pairs(workspace.SpawnTower:FindFirstChild(LocalPlayer_upvr.Team.Name):GetChildren()) do
		if var7_upvw and v.Stats.TowerObject.Value == var7_upvw.Parent then
			Range_upvr.Range(v:WaitForChild("Range"), 0.8)
		end
	end
	do
		return
	end
	-- KONSTANTERROR: [81] 50. Error Block 33 end (CF ANALYSIS FAILED)
	-- KONSTANTERROR: [171] 109. Error Block 22 start (CF ANALYSIS FAILED)
	var7_upvw = nil
	Range_upvr.Range(nil, 1)
	Ui_upvr.Upgrade.Visible = false
	-- KONSTANTERROR: [171] 109. Error Block 22 end (CF ANALYSIS FAILED)
end)
local IsValid_upvr = require(script.IsValid)
Ui_upvr.Upgrade.Purchase.Activated:Connect(function() -- Line 59
	--[[ Upvalues[4]:
		[1]: var7_upvw (read and write)
		[2]: IsValid_upvr (readonly)
		[3]: Remotes_upvr (readonly)
		[4]: Ui_upvr (readonly)
	]]
	if var7_upvw then
		local any_CanUpgrade_result1, any_CanUpgrade_result2 = IsValid_upvr.CanUpgrade(var7_upvw.Parent.Name, var7_upvw.Name, var7_upvw.Parent)
		if any_CanUpgrade_result1 then
			Remotes_upvr.Upgrade:FireServer(var7_upvw)
			return
		end
		if any_CanUpgrade_result2 then
			Ui_upvr.Error.Visible = true
			Ui_upvr.Error.Text = any_CanUpgrade_result2
			game.SoundService.GameSounds.Error:Play()
			wait(1)
			Ui_upvr.Error.Visible = false
		end
	end
end)
Ui_upvr.Upgrade.Sell.Activated:Connect(function() -- Line 79
	--[[ Upvalues[3]:
		[1]: var7_upvw (read and write)
		[2]: Remotes_upvr (readonly)
		[3]: Ui_upvr (readonly)
	]]
	if var7_upvw then
		Remotes_upvr.Sell:FireServer(var7_upvw)
		Ui_upvr.Upgrade.Visible = false
		var7_upvw = nil
	end
end)
workspace.SpawnTower:FindFirstChild(LocalPlayer_upvr.Team.Name).ChildAdded:Connect(function(arg1) -- Line 88
	--[[ Upvalues[2]:
		[1]: var7_upvw (read and write)
		[2]: Range_upvr (readonly)
	]]
	if var7_upvw and arg1.Stats.TowerObject.Value == var7_upvw.Parent then
		Range_upvr.Range(arg1:WaitForChild("Range", 5000), 0.8)
	end
end)
Remotes_upvr.Upgrade.OnClientEvent:Connect(function(arg1) -- Line 97
	--[[ Upvalues[4]:
		[1]: var7_upvw (read and write)
		[2]: SetUp_upvr (readonly)
		[3]: Ui_upvr (readonly)
		[4]: Range_upvr (readonly)
	]]
	var7_upvw = arg1
	SetUp_upvr.SetUp(var7_upvw, Ui_upvr.Upgrade)
	Range_upvr.Range(arg1:WaitForChild("Range"), 0.8)
	if arg1.Parent.Name == "Aviator" then
		Range_upvr.Range(arg1.Plane:WaitForChild("Range"), 0.8)
	end
end)
Assistant: