I'm facing a pretty big issue right now. When my module sets itself to game.ServerScriptService, everything runs perfectly. When I don't set my modules parent anywhere, only the main module runs.
I'm curious about how I can keep my main module away from ServerScriptService, and keep the scripts inside of it working. This is very important to me, as if I don't fix this you can easily exploit on of my vulnerabilities.

14 comments
Why wouldn't you want them in ServerScriptService?
You can use SavePlaceAsync() and grab my source. Admins like HD Admin don't do this.
Where is your module currently located in, and why would ServerScriptService make your module exploitable? ServerScriptService is like the safest place to store your scripts.
I use a loader, meaning anyone can require it and save it using SavePlaceAsync. SavePlaceAsync allows you to save ServerScriptService, this is because ROBLOX thinks the game is yours. Since my loader can be used anywhere, anyone can load it, and ROBLOX allows it to be stolen. So SSS is not the safest place. I need to know where HD Admin or some other popular loader puts their modules.
My module is currently located in ServerScriptService. I've done testing myself on my security, and trust me, it can be stolen. Please just help me find a new place to put my stuff.
^ Not sure if this would solve your problem, but would destroying the module as soon as it's required secure it? I tested and module scripts still work when destroyed, and you can't bring back items that were destroyed.
It should work just fine when you parent it to nil. I dont know why it doesn't work for you. Also, private modules are going to be removed in february 2019 so you might want to start looking for alternatives.
Kiriot, I'm probably going to release my source. But just in case I'm keeping it private sourced if they change their minds.
ReplicatedStorage
Should consider to some open Admin Source, like Sceleratis's
Parent it to nil, make sure there is no reference to the script in the fenv
Parent all descendants to nil also and destroy them after they run if they are one time use
Also have a
.Changedin the module and have it automatically destroy its self if the module detects its parent being changedExploits can easily get instances parented to nil and disconnect events. This is not a proper solution.