Prevent player from firing an RemoteFunction that controls their location

I have a RemoteFunction which I fire when a player enters a door, and if they are heading inside of their own house. This will later on be used on the server to prevent exploiters from placing items outside of their plot. However, I believe exploiters could easily just fire this RemoteFunction whenever they want, and thus set them as ‘Inside’ on the server, and then could place objects around the map.

if from.Parent.Parent.Parent == Exteriors then
	EnteringHouse:FireServer(true, from.Parent.Parent.Name)
end
	
if from.Parent.Parent.Parent == Interiors then
	EnteringHouse:FireServer(false, from.Parent.Parent.Name)
end

So when ‘true’ it basically tells the server they have gone inside their house.

What’s a better solution to this? This stuff all gets done with doors (I have doors that teleport players, etc.) however, the whole door teleportation is run from the client. Should this be run on the server? I don’t want to have the same kinda code running on both client and server, as it feels redundant

Try using Region3 on the server. When a player enters a specific Region3 give them the ability to build only in that Region3. If they’re not in the Region3 they requested to place a part in then reject their request.