EgoMoose
|
  |
| Joined: 04 Feb 2009 |
| Total Posts: 2896 |
|
|
| 28 May 2015 04:36 PM |
Ideally I'm trying to stop people from getting their hands on the local script code if they were to copy the place. That way it makes it that much harder for them to:
1. Copy the game 2. See what remote events/functions do (and therefore use them).
I've tried a few things but none of them seem to work (they have loopholes). Is there a way or am I just chasing after the impossible? |
|
|
| Report Abuse |
|
|
|
| 28 May 2015 04:39 PM |
1. If they do copy the game, you can just report it and Roblox will remove it. 2. If seeing how your remote events/remote functions are used all exploiters to do anything damaging to your game, you're using remote events/remote functions wrong.
But if you still want to try to stop exploiters from stealing your localscripts, the only thing I can really recommend is making your localscripts parented to nil and having your localscripts make their own Archivable property = false. |
|
|
| Report Abuse |
|
|
eLunate
|
  |
| Joined: 29 Jul 2014 |
| Total Posts: 13268 |
|
|
| 28 May 2015 04:39 PM |
You don't. Make them require() a ModuleScript and then nil the ModuleScript's parent. |
|
|
| Report Abuse |
|
|
|
| 28 May 2015 04:40 PM |
For number two I meant:
2. If seeing how your remote events/remote functions are used allows exploiters to do anything damaging to your game, you're using remote events/remote functions wrong. |
|
|
| Report Abuse |
|
|
EgoMoose
|
  |
| Joined: 04 Feb 2009 |
| Total Posts: 2896 |
|
|
| 28 May 2015 04:46 PM |
@ nQqzRYVpIKA5jLP
Well, I kinda need to have the remote events a titch vulnerable. I'm sending CFrame values to the server and back to every client except the one who sent the CFrame to replicate the tween (so they can use renderstepped).
The CFrame values aren't really something I can calculate on the server because they're very flexible and dependent on user input. Assuming a hacker figured it out all they could do it tween the arms around, but ideally I'd like to have this loophole shut.
As a side note, is there a better way of doing this without the above mentioned loophole?
Thanks though for the Archivable tip, I'd tried using modules but I didn't set Archivable = false |
|
|
| Report Abuse |
|
|
|
| 28 May 2015 04:50 PM |
| Number one is a joke, because if they don't have the game logic then they don't have the game. |
|
|
| Report Abuse |
|
|
|
| 28 May 2015 04:58 PM |
| They could recreate the game logic if they're smart enough. |
|
|
| Report Abuse |
|
|
|
| 28 May 2015 05:13 PM |
Hi Ego, long time no see. Saw the question and thought I could help.
Do you realize what FE is? FilteringEnabled is used to prevent clients from modifying the server. This means you can't change the server client-sided, it's purely to prevent exploiters from changing the game for all players.
Clearly FilteringEnabled doesn't stop people from accessing LocalScript code. In fact, since it's client-sided, they have full reading privileges if they have a tool or program to get these scripts.
Seeing your point #1 is copy the game, I'm just gonna reassure you that they cannot copy it just from LocalScripts. Do you do ANYTHING server-sided? If you do put it in ServerScriptService and it's blocked off from them. Without those core, necessary scripts, they can't copy anything. Maybe a gui or something, but without the game itself, client code is truly useless.
Point #2 is you want to prevent them from seeing how RemoteEvents and RemoteFunctions are executing. My suggestion here is you do this indirectly. I'll elaborate that in a sec. If you are doing anything big like this, doing it in plain viewage is a bad idea, and I can see why you're worried, but you want to prevent usage also. Do you know how much harder it is to actually execute code? READING is one thing. WRITING is another, harder, but still simple. COMPILING is tougher. If they could re enable the script easily, yes this would be a problem, but actually coding client-sided ingame is probably something to be less concerned about.
Your main focus here is blocking access to LocalScript code. eLunate mentioned something really nice, and it does work. Make a ModuleScript with different functions which execute what each LocalScript does, then in your LocalScripts instead of something like this:
--define a bunch of variables --Make functions --Setup events --Run functions
Simply do this
require(Module):Function(Possible_Arguments)
I'd suggest keep the arguments simple, like maybe a gui or something you're setting up an event to. You don't want to run into the same problem of hiding how the module is used.
Then, after each LocalScript has done it's stuff, nil the parent of any modules used, that way the exploiter in question can't run these over.
But in the end you really can't stop an intelligent exploiter who knows the tricks in this field, but there certainly are ways to prevent it. |
|
|
| Report Abuse |
|
|
|
| 28 May 2015 05:19 PM |
Well you could make everything in your module normal variables then do this:
return module,spawn(function() for i,v in next,getfenv(1) do v = nil end end)
|
|
|
| Report Abuse |
|
|
|
| 28 May 2015 05:23 PM |
return module,spawn(function() for i,v in next,getfenv(1) do v = nil end script.Parent = nil end)
Sorry, had to fix that a bit |
|
|
| Report Abuse |
|
|
|
| 04 Nov 2017 03:25 PM |
| Try to make a big brick that says that you made the map, If it's deleted. A script will release a virus on the game. It'll copy itself to make itself un delete able. Try that. |
|
|
| Report Abuse |
|
|
|
| 04 Nov 2017 03:30 PM |
@arches
they can just delete the script, and you cant make something undeleteable (atleast from what i know) |
|
|
| Report Abuse |
|
|