|
| 23 Mar 2013 12:06 PM |
InstanceProtector is a plugin that can protect things from being edited by scripts (Which could help stop exploiters)
How to use: 1. Select your stuff to protect 2. Click the button 3. Your stuff is protected!
It's also reversible, just select the objects to unprotect and hit the button again.
This plugin uses the RobloxLocked property to make it so scripts cannot use or edit the protected objects. This SHOULD work on servers, and it will protect it.
If there is anything in your game that you are not modifying with a script, you should protect it!
Here is the source: (It's ugly without tabs, fix the tabs, Roblox!)
local plugin = PluginManager():CreatePlugin() local toolbar = plugin:CreateToolbar("InstanceProtector") local protect = toolbar:CreateButton("InstanceProtector","Instance Protector: Protect stuff from being modified by scripts!","")
function changeSelection(value) protect:SetActive(value) end
protect.Click:connect(function() if #game.Selection:Get() == 0 then changeSelection(true) print("Select an object to protect") repeat wait() until #game.Selection:Get() > 0 end changeSelection(false) for i=1,#game.Selection:Get() do if game.Selection:Get()[i].RobloxLocked == true then print("Unprotecting "..game.Selection:Get()[i].ClassName.." "..game.Selection:Get()[i].Name.."...") game.Selection:Get()[i].RobloxLocked = false else print("Protecting "..game.Selection:Get()[i].ClassName.." "..game.Selection:Get()[i].Name.."...") game.Selection:Get()[i].RobloxLocked = true end end end) |
|
|
| Report Abuse |
|
|
MrNicNac
|
  |
| Joined: 29 Aug 2008 |
| Total Posts: 26567 |
|
|
| 23 Mar 2013 12:12 PM |
RobloxLocked isn't saved, so it won't work on servers.
I see no reason why you would protect items from yourself, unless you're just careless. |
|
|
| Report Abuse |
|
|
|
| 23 Mar 2013 12:13 PM |
It's not? :c
It's to help stop exploiters
crescendoflip |
|
|
| Report Abuse |
|
|
|
| 23 Mar 2013 01:04 PM |
1)Exploits probably have level 4. It's not exactly hard. 2)RobloxLocked isn't saved 3)You can do InsertService::Insert on a robloxlocked object to reparent it to workspace, which can still break your scripts. |
|
|
| Report Abuse |
|
|
Tenal
|
  |
| Joined: 15 May 2011 |
| Total Posts: 18684 |
|
| |
|
|
| 23 Mar 2013 02:48 PM |
| Render,this might be a dumb question but could you use InsertService::Insert on the data model? |
|
|
| Report Abuse |
|
|
UnAdmin
|
  |
| Joined: 10 Jul 2012 |
| Total Posts: 4706 |
|
| |
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 23 Mar 2013 04:12 PM |
Interesting idea. Pause for a second...
Reported for spam. |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 23 Mar 2013 04:16 PM |
Wait...what?
> game:GetService("Debris"):AddItem(game, 0) 14:14:19.172 - The Parent property of Workspace is locked
Not...
14:13:29.665 - The Parent property of Place1 is locked?
|
|
|
| Report Abuse |
|
|
UnAdmin
|
  |
| Joined: 10 Jul 2012 |
| Total Posts: 4706 |
|
| |
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 23 Mar 2013 04:31 PM |
| I could make this plugin about 10x better. Doesn't change the fact it doesn't work. An easier way would be to build a source variable randomizer. Such as find something that has an equals sign, or a space and an equals sign, and replacing it all the way through the source with a random string. Do the same with instance names, and you have a pretty basic thing. |
|
|
| Report Abuse |
|
|