Modulescript wont affect other characters

I’m trying to make an area invisibility move for my suke suke no mi. The tool runs through a localscript and detects the button the player is pressing, if it’s E then it fires a remote that finds the modulescript of the move in replicatedstorage and require it and activate the move. However, It’s supposed to affect other characters that are touching the sphere hitbox that the modulescript creates. The sphere detects if the touching parts are of a character’s and if the character is a player’s. If it’s a player character then it invokes a certain remotefunction and if it’s an NPC then it just tweens the transparency of the NPC’s parts. EXCEPT, the script doesn’t do that at all. It doesn’t even add a stringvalue inside the sphere to indicate the touching characters, but it does add the player that activated the script’s name in.
Also just to clarify, the localscript has a transparency part onto it because I want the localplayer to see himself while invisible. Also the “Certain remotefunction” I was mentioning is a localscript (InvokeClient), to obviously, let the players that turn invisible see themselves.

Localscript in tool (I'm not sure if it works perfectly)

image

local UIS = game:GetService("UserInputService")
local RS = game:GetService("ReplicatedStorage")
local Modules = RS:WaitForChild("Modules")
local Fruit = Modules:WaitForChild("Fruit")
local HM = Modules:WaitForChild("Handlers")
local Tool = script.Parent
local Player = game.Players.LocalPlayer
local remote = RS.RemoteEvents.Fruit
local PlayerGui = Player:WaitForChild("PlayerGui")
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Cooldown1 = false
local Holding1 = false
local Cooldown2 = false
local Holding2 = false
local Debounce = 1
local Mouse = Player:GetMouse()
local track1 = Humanoid:LoadAnimation(Tool.Animations.Spin)
local tweeninfo = TweenInfo.new(1.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut)
local ts = game:GetService("TweenService")

local function zmove()
	Tool.Active.Value = "Z"
	remote:FireServer("Suke", "Self Invisibility", "Start")
	wait(2)
	for i, v in pairs(Character:GetDescendants()) do
		if (v.Name ~= "HumanoidRootPart" and v:IsA("MeshPart") or v:IsA("Part")  and  v.Name ~= "HumanoidRootPart") then
			v.Transparency = 0.7
		elseif v:IsA("Decal") then
			v.Transparency = 0.7
		end
	end
	wait(10)
	for i, v in pairs(Character:GetDescendants()) do
		if (v.Name ~= "HumanoidRootPart" and v:IsA("MeshPart") or v:IsA("Part")  and  v.Name ~= "HumanoidRootPart") then
			v.Transparency = 0
		elseif v:IsA("Decal") then
			v.Transparency = 0
		end
	end
	remote:FireServer("Suke", "Self Invisibility", "End")
	Tool.Active.Value = "None"
end

local function xmove()
	Tool.Active.Value = "Z"
	remote:FireServer("Suke", "Area Invisibility", "Start")
	wait(2)
	for i, v in pairs(Character:GetDescendants()) do
		if (v.Name ~= "HumanoidRootPart" and v:IsA("MeshPart") or v:IsA("Part")  and  v.Name ~= "HumanoidRootPart") then
			v.Transparency = 0.7
		elseif v:IsA("Decal") then
			v.Transparency = 0.7
		end
	end
	wait(10)
	remote:FireServer("Suke", "Self Invisibility", "End")
	Tool.Active.Value = "None"
end

UIS.InputBegan:Connect(function(Input)
	if Input.KeyCode == Enum.KeyCode.E and Debounce == 1 and Tool.Equip.Value == true and Tool.Active.Value == "None"  and Cooldown1 == false then
		Debounce = 2
		local HIS = Tool.Animations["Area Charge"]
		HoldTrack = Player.Character.Humanoid:LoadAnimation(HIS)
		HoldTrack:Play()
		for i = 1,math.huge do
			if Debounce == 2 then
				local RootPos, MousePos = Player.Character.HumanoidRootPart.Position, Mouse.Hit.Position
				Player.Character.HumanoidRootPart.CFrame = CFrame.new(RootPos, Vector3.new(MousePos.X, RootPos.Y, MousePos.Z))
				Player.Character.HumanoidRootPart.Anchored = true
			else
				break
			end
			wait()
		end
	elseif Input.KeyCode == Enum.KeyCode.Z and Tool.Equip.Value == true and Tool.Active.Value == "None"  and Cooldown1 == false then
		track1:Play()
		zmove()
		Cooldown1 = true
		wait(3)
		Cooldown1 = false
	end
end)

UIS.InputEnded:Connect(function(Input)
	if Input.KeyCode == Enum.KeyCode.E and Debounce == 2 and Tool.Equip.Value == true and Tool.Active.Value == "None" and Cooldown1 == false then
		Cooldown1 = true
		Debounce = 3
		local PIS = Tool.Animations["Area Release"]
		local PunchTrack = Player.Character.Humanoid:LoadAnimation(PIS)
		PunchTrack:Play()
		HoldTrack:Stop()
		PunchTrack:GetMarkerReachedSignal("Release"):Connect(function()
			xmove()
			task.wait(3)
			Cooldown1 = false
		end)
		wait(1)
		Player.Character.HumanoidRootPart.Anchored = false
		wait(2)
		Tool.Active.Value = "None"
		wait(0.1)
		Debounce = 1
	end
end)
Remote Event to find the move modulescript (Works perfectly)
local rs = game:GetService("ReplicatedStorage")
local remote = rs.RemoteEvents.Fruit
local modules = rs.Modules
local fruitmodules = modules.Fruit

remote.OnServerEvent:Connect(function(plr, ability, move, functions, option1, option2)
	if plr then
		for i, k in pairs(fruitmodules:GetChildren()) do
			if k.Name == tostring(ability) then
				local abilitymove = k[move]
				local required = require(abilitymove)
				required[functions](plr, option2)
			end
		end 
	end
end)
Modulescript for the area invisibility move
local functions = {}
local targets = {}
local remote = game.ReplicatedStorage.RemoteEvents.Suke.Invisible

function functions.Start(plr)
	local tweeninfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut)
	local tweenservice = game:GetService("TweenService")
	local chr = plr.Character
	local hum = chr:FindFirstChildOfClass("Humanoid")
	local health = hum.Health
	sphere = script.Sphere:Clone()
	sphere.Parent = workspace.Effects
	sphere.Position = chr.HumanoidRootPart.Position
	local tween = tweenservice:Create(sphere, tweeninfo, {Size = Vector3.new(38.75, 38.75, 38.75)})
	
	for i, part in pairs(chr:GetDescendants()) do
		if (part.Name ~= "HumanoidRootPart" and part:IsA("MeshPart") or part:IsA("Part")  and  part.Name ~= "HumanoidRootPart") then
			local tween2 = tweenservice:Create(part, tweeninfo, {Transparency = 1})
			tween2:Play()
			part.Material = Enum.Material.Glass
		elseif part:IsA("BillboardGui") then
			part.Enabled = false
		elseif part:IsA("Decal") then
			local tween3 = tweenservice:Create(part, tweeninfo, {Transparency = 1})
			tween3:Play()
		end
	end
	
	tween:Play()
	
	local aoe = workspace:GetPartsInPart(sphere)
	
	for i, things in pairs(aoe) do
		if game.Players:GetPlayerFromCharacter(things.Parent) then
			if not sphere:FindFirstChild(things.Parent.Name) then
				local playur = game.Players:GetPlayerFromCharacter(things.Parent)
				for i, kk in pairs(playur.Character:GetDescendants()) do
					if (kk:IsA("BasePart") or kk:IsA("Decal") and kk.Name ~= "HumanoidRootPart") then
						local twin = tweenservice:Create(kk, tweeninfo, {Transparency = 1})
						twin:Play()
						remote:InvokeClient(playur, 0.7)
					elseif kk:IsA("BillboardGui") then
						kk.Enabled = false
					end
				end
				local bool = Instance.new("StringValue")
				bool.Parent = sphere
				bool.Name = playur.Name
			end
		elseif not game.Players:GetPlayerFromCharacter(things.Parent) then
			if not sphere:FindFirstChild(things.Parent.Name) then
				for i, kk in pairs(things.Parent:GetDescendants()) do
					if (kk:IsA("BasePart") or kk:IsA("Decal") and kk.Name ~= "HumanoidRootPart") then
						local twin = tweenservice:Create(kk, tweeninfo, {Transparency = 1})
						twin:Play()
					elseif kk:IsA("BillboardGui") then
						kk.Enabled = false
					end
				end
			end
			local bool = Instance.new("StringValue")
			bool.Parent = sphere
			bool.Name = things.Parent.Name
	    end
	end
	
end

function functions.End(plr)
	local tweeninfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut)
	local tweenservice = game:GetService("TweenService")
	local chr = plr.Character
	local hum = chr:FindFirstChildOfClass("Humanoid")
	local health = hum.Health
	local sphere = script.Sphere:Clone()
	sphere.Parent = workspace.Effects
	sphere.Position = chr.HumanoidRootPart.Position
	local tween = tweenservice:Create(sphere, tweeninfo, {Size = Vector3.new(38.75, 38.75, 38.75)})

	for i, part in pairs(chr:GetDescendants()) do
		if part:IsA("BasePart") or part:IsA("Decal") and part.Name ~= "HumanoidRootPart" then
			local tween2 = tweenservice:Create(part, tweeninfo, {Transparency = 0})
			tween2:Play()
			part.Material = Enum.Material.SmoothPlastic
		elseif part:IsA("BillboardGui") then
			part.Enabled = true
		end
	end

	tween:Play()
	
	for i, p in pairs(sphere:GetChildren()) do
		if p:IsA("StringValue") then
			for i, w in pairs(workspace:GetChildren()) do
				if w.Name == p.Name then
					if game.Players:GetPlayerFromCharacter(w) then
						local playur = game.Players:GetPlayerFromCharacter(w)
						for i, kk in pairs(w:GetDescendants()) do
							if (kk:IsA("BasePart") or kk:IsA("Decal") and kk.Name ~= "HumanoidRootPart") then
								local twin = tweenservice:Create(kk, tweeninfo, {Transparency = 0})
								twin:Play()
							elseif kk:IsA("BillboardGui") then
								kk.Enabled = true
							end
						end
						p:Destroy()
					elseif not game.Players:GetPlayerFromCharacter(w) then
							for i, kk in pairs(w:GetDescendants()) do
								if (kk:IsA("BasePart") or kk:IsA("Decal") and kk.Name ~= "HumanoidRootPart") then
									local twin = tweenservice:Create(kk, tweeninfo, {Transparency = 0})
									twin:Play()
								elseif kk:IsA("BillboardGui") then
									kk.Enabled = true
								end
						end
						p:Destroy()
					end
				end
			end
		end
	end
	
end

return functions