Planekit sometimes doesn't work when there're too many players in the game

I’m making a planekit which has the system that is similar to Crazyman32’s planekit. The issue is the system sometimes doesn’t work when there are many players in the game or use any admin command like “:freefall”. The throttle worked okay, but I can’t turn the plane to the left or right. I tried to use FE (Filtering Enabled) to avoid this problem, but it’s worse because the control worked laggy. I know this is because the script is LocalScript that doesn’t work for server, it needs a FE to make it worked, but how did others solve this problem? Other planekits such as airplo or a planekit in Pilot Training Flight Simulator can use LocalScript for mouse control without having this problem.

You can see my video, I tried to hover my mouse around to make the plane turn, and I tried to use admin command to show the issue Problem

Here’s my planekit to try https://www.roblox.com/library/4523045729/SKYtech-Planekit

It would be nice if there’s a solution for this, I want to make this planekit for public use.

If I understood right, you want the mouse control to work on server? You can fire a remote event through a local script in your mouse control gui and pick it up in server script. Then do the turn in that script.

Mhmm I tried that, but it sometimes works laggy for low connection users. Thanks for some tips anyways.

You could handle the speed changes and all that related stuff on the server but still keep the turning client side like the old CM32 v1 kit did. This would make the turning feel snappy like cm32 has always been but at the same time allowing the speed to be filtering enabled thus not causing the issues that were speed related in cm32

I would suggest implementing Network Ownership into your system. If a client controls a model, and the model has its Network Ownership set to the server, then the controls will rely on the players internet connection. But if you set the Network Ownership to the player flying the aircraft, they’ll be able to fly it smoothly, as the player is the Network host.

You should try this;

Let’s say pilotSeat is the seat to control the aircraft.

pilotSeat.Changed:Connect(function(change)
	if change == "Occupant" then
		if pilotSeat.Occupant then
			local Player = game:GetService("Players"):GetPlayerFromCharacter(pilotSeat.Occupant)
			if Player then
				pilotSeat:SetNetworkOwner(Player)
			end
		else
			pilotSeat:SetNetworkOwnershipAuto()
		end
	end
end)

I hope this helps you!

I’ve just tried this and it’s solved, thanks!

1 Like

This planekit is becoming outdated. I’m planning to make a 2nd version of planekit in this year. Stay tuned for it!

1 Like