I have problem, that I need to make model invisible for some players, but I also need to make it unexploitable, so the player cant just remove the local script deleting the model. Is this possible? If no, can i check if playr delete the local script?
You can make an
in pairs do (Model:GetChildren()) and change it’s visiblity to false if exsits for each model. I don’t think you can make it ‘unexploitable’ but you can make it harder for exploiters to exploit your model. The Locked function in part’s does protect some low key exploits from detecting models for example: btools.
You can’t make it completely unexploitable if it exists on the server. If it gets replicated to the client, it’s fair game for exploiters to do whatever they want with it. If you really want to make it hard for exploiters, just send the instructions for the positioning of parts to the clients you want to be able to see it. If the clients that are allowed to see it have to make it themselves, then it would never need to replicate to the exploiter’s client.
This isn’t foolproof, though, so what’s your use case? There might be a better solution to your problem.
could always do what i do, hide some local code in the roblox character script
Ya, i had this idea too, so when I delete the model by this script, will it be unexploitable?
I need to make the parts visible only for 1 team and for the second team only when the are in range.
Why? Would it be game-breaking if one exploiter on the other team could see it? You can probably just use Artic’s solution, since exploiters don’t seem like a huge issue in this situation.
In that case you could maybe make the server periodically check if each player from Team 2 is in range to see Team 1’s secret parts, if yes, the server will send them (via RemoteEvents) the parts they can see and the client will make them. By this method the exploiter will still be able to “remember” what parts they saw, but they wouldn’t initially be able to see where they are.
They are, because when the other team must first find it and exploiter will see it from begening, it wont be ok.
Just make them invisible by solutions written above all of them are useful. Maybe you could add a random name string script which creates different name for each model also ‘Locked’ function is pretty useful for low key exploits as I mentioned above. Your exploiters will firstly have to decode how your game works before they will create an script which allows them to see your model. The problem is that localscript are always bad idea for some sort of anti-exploit things.
What model are you trying to hide and why? What is the significance of the model to gameplay value? You’re probably propagating an unnecessary worry if an exploiter sets the model visible. If that’s not the case, you need to think of a different strategy that relies less on parts and more on pure data (e.g. CFrames, regions for bounding boxes, …).
I have game, where the players control their ship and the other team can see them only when at least 1 player (of his scouting plane) is in range, and it will be devasting when carier can send planes directly to player on other side of map, almost at game start, or when some ships have strategy, that they have bigger shoot range, that range from that they are visible, but exploiter can freely see them.
if you want the model to be invisible to some players, just have a local script make the model instead of having a model already in the workspace.