That didn’t show me how
To make games fe compatible, you need to use remote events and remote functions to execute code on the server with calls from the client.
Anything you want other players to be able to see that’s currently being done in a local script, should have its code moved to a server script and executed by the server, connected to a remote event that the client calls.
Filtering Enabled disables Client-To-Server Replication.
What that means if that if a part is created on the client, it won’t replicate to the server which in turn, won’t appear for other players.
With Filtering Disabled (Experimental Mode), that part will appear on all the Clients in the game. And it’ll Replicate to the Server. This is how a user can kill and modify other player’s characters with exploits with Filtering Disabled. If Filtering is enabled. It’ll only happen on their screen.
To enable it click on the Workspace in Studio and in Properties under Behavior they’ll be a checkbox called “Filtering Enabled” this is turned on by default whenever you create a new studio file. But if your place is older, you’ll need to manually check it.
In order to cross the Client-To-Server Bountry you’re gonna need to hook things up Via RemoteEvents/Functions. The pages of which I’ll Link down below.
Also the video @railworks2 linked explains it well.
Example These Scripts would create a Part that’ll show to All Clients With Filtering Enabled
--Server Script local RemoteEvent = game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent") RemoteEvent.OnServerEvent:Connect(function(player, Shape) local s = Instance.new("Part", game:GetService("Workspace")) if Shape == nil then --Nothing elseif Shape == Enum.PartType.Ball then s.Shape = Enum.PartType.Ball elseif Shape == Enum.PartType.Cylinder then s.Shape = Enum.PartType.Cylinder end end) --Local Script local RemoteEvent = game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent") local function CreatePart(shape) RemoteEvent:FireServer(shape) end CreatePart() CreatePart(Enum.PartType.Ball)
More Information including Convering.
I made a Similiar Post a few months ago. And that’s all I have to say.
Hello! Recently, Developer Relations released a tweet on this issue, I’ll link it in the end. However, in essence experimental mode is used for starting games to ensure safety while development is done. I still believe that FE in aviation is important so following the advice here for that is of utmost importance.
Ok, well say I have a plane in a game and people get on it. It starts moving. Will the people stay on the plane? Any aviation devs/reps here?
If the plane exists on the server, and is powered by a Server Sided Script. Yes they will.
So it can’t be :ins’d?
Yes, depending on the scripts that are embeded within. I can get you in contact with some people from Beta Airlines if you have further questions!
Yeah, i would love to contact beta devs pls.
Feel free to DM me on discord, Frost#7467, I can get you in touch ASAP!
I’d appreciate it if you could provide a tad more context into that reply. Thanks!
Inserting the plane from owners inventory on client end using admin.
You would need to hook that up via a Remote Event. As I said in my post. With the example Scripts.
It even works for models. I’ll put Example Scripts here. This would clone a model to All clients instead of one with Filtering Enabled.
--Server Script local RemoteEvent = game:GetService("ReplicatedStorage"):FindFirstChild("RemoteEvent") RemoteEvent.OnServerEvent:Connect(function(player, Model) if Model then Model:Clone().Parent = game:GetService("Workspace") print(player.Name .. " Cloned a Model to the Server") end end)
--Local Script local RemoteEvent = game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent") local model = script:WaitForChild("Model") RemoteEvent:FireServer(model)
I’ll also provide a Screenshot showing how Studio is set-up.
I’m just so confused on how to integrate this lol
I suck at scripting
To provide a more advanced Example. These scripts will clone a Basic Car from the ServerStorage via the firing of a Tool.
--Brick Creator local Tool = script.Parent local Mouse = game:GetService("Players").LocalPlayer:GetMouse() local RemoteEvent = game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent") Tool.Activated:Connect(function() RemoteEvent:FireServer("Car", Mouse.Hit.p) end)
local Car = game:GetService("ServerStorage"):FindFirstChild("Car") local RemoteEvent = game:GetService("ReplicatedStorage"):FindFirstChildOfClass("RemoteEvent") RemoteEvent.OnServerEvent:Connect(function(player, Clone, MousePos) if Clone == "Car" then local x = Car:Clone() x.Parent = game:GetService("Workspace") x:SetPrimaryPartCFrame(CFrame.new(MousePos + Vector3.new(0, 8, 0))) end end)
Studio is set-up Like this. If you want to check the place file for yourself feel free to DM me.
Geeez you all could have just Linked this Thread to save everyone’s trouble.
Very useful thread, however it doesn’t address the OP’s questions about experimental vs. FE and aviation scripting.
Ok you are right.
How about this one?
Perfect! Overall, both of these will lead the OP in the right direction.