How expensive is rapidly firing remote events?

Hello. I’m trying to make an ability that teleports you a certain amount of distance based on how long you hold it. Think of it as a channeling teleport. I would like the player to be stationary when channeling this ability. The catch is I want to make the player stationary by firing remote events. (If you’re wondering why I don’t want to just change the walk speed and jump power, it’s because I need this to be compatible with a “player status” value I made, and that doesn’t detect the “player status” by jump power or walk speed). Basically, I’m wondering just how efficient this is and how much lag it will cause.

local function holdingDown()
return userInputService:IsKeyDown(N)
end

abilities.ChannelingTeleport.OnServerEvent:Connect(function(player)
local heldTime = 0

while holdingDown() do
	wait(0.01)
	heldTime = heldTime + 0.01
	RP.RemoteEvents.ChangeStatus:FireClient(player, "Root", 0.01)
end


end)

In terms of lag, it’ll probably vary depending on the Player’s network connection.
It might be better to fire a remote to toggle the charge on the server side instead.

Player fires remote once -> Server does loop until player fires remote again. Server also does checks to make sure Player is standing still

Player fires remote again -> Server stops doing the loop

You should find a different method. Rather than holding down, send a ‘key down’ event and a ‘key up’ event.

what if you need to send mouse position in a very rapid succesion? such as for a weapon such as a flamethrower, which has to move and point towards the mouse position?