Simulating/Emulating Filtering-Enabled... Disabled?

No, I’m not making games with this, calm down.

I am however, making A Game specifically for me and my friends to mess about in and I’m very interested in updating/fixing very ancient… Assets… using Remotes.

I’m just curious, is there an easy, hacky way to emulate an environment WITHOUT Filtering Enabled?
Like, a simple way to make a localscript just be absolutely trusted. (or all local scripts if thats even possible)

I also want to challenge you guys on the experiment; Take the classic BTools for example. I want that thing to work with absolutely zero security, how simple can you make it?

1 Like

Well, Filtering was removed, so the only other way for stuff to be replicated to the server will be through character networking (parent BaseParts to a player’s character)

Unfortunately there is not an easy, hacky way to disable filtering-enabled
If I recall, it was a setting at some point, but then the option was completely removed. To recreate it, you’d need to build a framework around it.

If you are not making game public and friends only (so no bad actors can expose people to harmful content with exploits) then you can Make it very easy actually althrough not really optimized.

Every change of part on client must be hooked to event and data sent to a server via remote event.
Just like with part creation (althrough problematic to keep track of instance and you need to use workarounds here)
Basically server should interpreter every action you do.
:GetPropertyChangedSignal() to EVERY instance and every property.
Currently its problematic to get properties of instance but i had made tutorial while ReflectionService is not avalible yet:

Have all clients reproduce a single client’s action, without the server itself reproducing the action.

--single client calls following function
local function PlacePart(...)
	--do code to place a part
	PlacePartRemote:FireServer(...) --fire a remote sending the part's information to the server
end

--server script handles the remote
local function OnPlacePartRemoteFired(Player, ...)
	for _, _Player in ipairs(Players) do --cycle through players
		if _Player ~= Player then --don't need the client who fired the remote to be fired
			PlacePartRemote:FireClient(_Player, ...) --fire the client to place the part
		end
	end
end

--remaining clients handle the remote
local function OnPlacePartRemoteFired(...)
	--do code to place a part
end

The only two ways I can think of doing this for as much content as possible is either:

  1. Handling everything on the server (ie use almost exclusively server sided scripts, only having local scripts to activate the server and nothing else) OR

  2. “Manually” replicating all client sided actions to the server (through dozens of remote events) - This could be super laggy considering it doesn’t take much remote spam to cause the clients ping to spike

Depending on how much stuff you’re trying to replicate between clients, you might be better off just re-coding the tools to replicate to the server (shouldn’t be too hard considering the original btools are pretty straightforward + I think it’s been done before)

I miss this setting :((
I used to treat ROBLOX Studio like it’s GMod and change stuff on the fly and treat it like its own game, can’t do that anymore.

I have actually “fixed” the BTools before, and I believe Clonetrooper1019 at one point did it too.
But that’s why I’m here because I’m wondering if there’s another way to do it to emulate how it worked before…For SCIENCE!!!