cwd30
(seawead30)
March 26, 2020, 4:48am
#20
I don’t think scripting games run full server side scripts, cause if they do then an exploiter can easily break the game.
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 4:48am
#21
or i could make a logs thing and ban plrs who break the rules
Just do this. Its almost fool proof assuming you implement it properly. No need to employ a staff team to ban people. They’ll just rejoin on alts. Just prevent the problem from even happening in the first place.
filuslolol
(Chickerino)
March 26, 2020, 4:49am
#23
That would be the lazy approach, guilty of that myself. Plus it doesn’t prevent it, it just adds consequences to player’s actions.
1 Like
Txppin
(Txppin)
March 26, 2020, 4:49am
#24
Even if they make a module the scripts would keep checking.
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 4:51am
#25
but
require(235789253647892612487237w1567w125376y5e23614e23y5723e1y5693e25y934qswhadswy)
doesn’t include any blacklisted words (like game would replace with fake object
Txppin
(Txppin)
March 26, 2020, 4:52am
#26
You wrap it with your custom environment with the help of a Loadstring module.
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 4:52am
#27
im using a loadstring module. AAA 30 CHARS
Txppin
(Txppin)
March 26, 2020, 4:53am
#28
But did you wrap everything in a custom environment tho.
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 4:53am
#29
wym. aaaaaaaaaaaaaaaaaaaaaa 30 chars
Txppin
(Txppin)
March 26, 2020, 4:53am
#30
Alright, add me on discord @Josh.8574 , we can talk normally there instead of spamming replies.
1 Like
Just don’t allow them to require un-sanitizable content then.
Alternatively:
IIRC the environment requiring a module sets the module’s environment to that of the one requiring it.
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 4:55am
#32
messaged u. AAAAAAAAAAA 30 CHARS
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 4:55am
#33
what i dont understand my brain is too small
Read this post in its entirety. If you don’t understand something then do research.
This is a tutoral on using metatables to create wrappers around Roblox’s locked objects, such as Instances and special data types. This gives you the freedom to change or add new functionality to the existing API. The following guide assumes you’re comfortable with Lua, particularly with metatables, and are familiar with the direction Roblox’s object-based scripting tends to go.
I’ll preface this with a disclaimer: This isn’t a very good idea. Using Roblox’s API the way it was intended helps wi…
PlanetZYN
(EdwardSkeletrix)
March 26, 2020, 5:00am
#35
oh teefus solved. AAAAAAAAAAA 30 CHARS
What you would do in this case (specifically for a script builder) is have something like a sandbox.
If you want a sandbox as a reference, you can check out this script I have made here:
--[[
Written by Jacob (mrparkerlol on Github), with contributions by others.
This is the sandbox source for the Script Builder Project,
licensed GPL V3 only.
This is provided free of charge, no warranty or liability
provided. Use of this project is at your own risk.
Documentation is also provided on Github, if needed.
]]
local typeof = typeof;
local unpack = unpack;
local newproxy = newproxy;
local setfenv = setfenv;
local Sandbox = {};
Sandbox.SandboxInstances = {}; -- Created instances of the sandbox
This file has been truncated. show original
It is relatively complex - but if you’re running untrusted code in your game, this could be a potential solution. It has tables which allow you to override methods and functions. As far as I am aware of there are no breakouts.
The main project it is apart of is exactly what it sounds like you want to build - which is a script builder.
To use the code above, here’s an example located here:
--[[
Written by Jacob (mrparkerlol on Github), with contributions by others.
This is the server script source for the Script Builder Project,
licensed GPL V3 only.
This is provided free of charge, no warranty or liability
provided. Use of this project is at your own risk.
Documentation is also provided on Github, if needed.
]]
local game = game;
local workspace = workspace;
local Instance = Instance;
local Debris = game:GetService("Debris");
local InsertService = game:GetService("InsertService");
local spawn = spawn;
This file has been truncated. show original
Usage of shared
is optional - it is only used to make the script builder “sourceless” (to make it not rely on StringValues for storing the code).
Hopefully this was of help!
2 Likes
DR1FTTR
(everett)
March 26, 2020, 8:54pm
#37
Just put the part on lock…
0Techy
(Techy)
March 27, 2020, 5:50am
#38
Locking the part makes it non-deletable in studio, but in game, exploiters can delete locked parts.
PlanetZYN
(EdwardSkeletrix)
March 27, 2020, 11:42pm
#39
No because exploiters can delete it.