How to secure table configs(modules) for tools on the clientside?

i use tables in module scripts as configs for my tools and im wondering how i would go about securing these clientside, as i store values like equip time, reload time for the client there. im not sure if its 100% possible to secure them, but maybe just enough so the average joe exploiter cant do config.equiptime = 0

1 Like

You could possibly add some checks from the server, when you equip your weapon, certain values like canShoot or equipped turn to true, from the server, so no exploiter can start shooting right away with this small protection. I never really worked on this part of protecting my weapons other than the amount of ammo a player has on their weapon, but I’m telling you, not many people are going to exploit this, most people are looking on exploiting any Damage remotes and other similar remotes.
Anyways, that’s I think a lil nice way of protecting this. For the ammo amount, just decrease ammo from server, there is almost 0 lag to it as it doesn’t affect the game that much, it’s up to you though.
If you need anything else, tips, I will try my best to answer you, good luck with your lil project.

2 Likes

thanks, you say not many people are going to exploit configs and clientside things, but rather remotes. since most games are pretty secured serverside, i think exploiters have shifted more to clientside advantages such as no recoil, no spread when firing etc, those are all things i handle using configs as well, and most other games too. thats why im also looking to try to secure the clientside, since a lot more than what i just listed (visual effects) is also handled by config values sent from the client

I get what you mean and I believe you are right to this, I’ve seen games protect their modules by storing the content of the module inside of the table, and they function from that table instead of the actual module, at the end, the module becomes useless for them since it’s stored inside that table. I never got to do that since I don’t really mind yet.

You might be able to send the result from the module to the server right when it runs and check if there are any differences. Depending on what it is, you can do kick or ban them, remove their gun, etc.

An exploiter can take control of local scripts and module scripts which are required by the local scripts. You should try and do some server checks, which may be complicated.

still havent found a way to do this (yes i do server side checks but im talking about clientside table protection)

You could either try and store all the ModuleScript settings into a table inside a local script (that is not located inside of StarterCharacter, preferably in PlayerScripts especially when using a universal GunHandler, so it doesn’t need to reload the script for protection purposes), grabbing the Settings everytime you either equip your weapon, so you grab that certain weapon’s settings, can be exploited if the exploiters do it right, or when the player joins, save all Settings of your Module inside of the table.

I’m not sure if the 2nd way will work 100%, but it’s an idea I had, not really sure if an exploiter could edit it though.