Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hello, people of the Roblox Community, I hope this message finds you all well.
- This message is written and produced by StyxDeveloper, just StyxDeveloper, and thanks to my friend for posting this. “Jupiter Development” a team made up of 2 individuals (talking in the past tense), where we made exploits a reality for a well known Roblox experience, known as “Prison Life”, my goal is to stop the major increase in exploiters on this game, a problem that never seems to go away. So today, I’ve put forth an effort and hoping this doesn’t fall on deaf ears, since there’s no way of contacting him, no Discord, Twitter, and no group wall. I hope this post reaches him, I want him to see the vulnerabilities and problems of his game which he either neglected, or never paid attention to. I want him to patch my old source, and I’m going to be exposing all these methods and how I would go about repairing Prison Life.
- Let’s get started, I recognize, that a former cheater, turned Anti-Cheat Developer isn’t something everyone wants to see posted on this platform, but I believe there’s a major problem within Prison Life, and it ruins the entire game, Im sure everyone’s seen this if they’ve played Prison Life. This is a major problem and creates a poor environment for the people who play this game, from roleplayers to PVPers, to people playing because of nostalgia. This game is deemed “needing a rewrite” but that’s far from the case, it’s not true at all. So let’s begin, if we play our cards right, it could be fixed; without a lengthy rewrite.
- The reason Im helping the developer is simple.
- There’s a need to stop these cheats.
- Scripts are blatantly unoriginal.
- There is no fun in it anymore, everyone just crashes the game.
- Starting first, the magnitude check put forth on the item handler (these methods already are leaked, you can find it anywhere now)? We will be using both of Jupiter’s sources as our reference.
- I don’t know how I comment on this method, I’d have to view your code to understand why this works.
- The second method to bypass this magnitude check is simple and easy to understand. Teleport to the item/tool and run the remote.
- We need a proper AntiCheat in place to actually stop this.
- Next thing, stop cheaters from going to guards after several strikes. They do this by abusing the teamevent remote, which is simple to patch, anytime they call that, and go to guards check the amount of strikes, if they bypass this kick them. Again if you give me a DM, Id be willing to help you patch things.
- Additionally, we need a way of stopping cheaters from just switching teams, on this, we can’t do much, its a sad aspect, but I don’t see much about being able to patch this. Due to the nature of it.
- We can stop them from going to criminal, simply by preventing them from teleporting.
- Next thing, we’ve seen heavily abusive kill commands happening.
- Melee kill is a problem, it abuses what would normally be accessible via “F” or through punching other players, we have simple methods of stopping this.
- Through an anti-cheat, or limiting the amount of remote spam that can occur, maybe 1 punch every half a second. No way to get an instant 20 hits on one player.
- Moving on, we have gun kill, which is the most commonly abused, and its simple to fix.
- Simply preventing remote spam once again, adding a delay would work.
- A cap on spawning guns, guns should be limited to one that can be spawned. They shouldn’t be able to delete the tool and respawn it.
- We can also check the distances and prevent any players across the map from hitting players as if their right there (you can see it in my code snippet on how this works).
- We should be capable of detecting players who spawn guns on the neutral team, as many exploit scripts currently have a kill all and you go to neutral and then kills everyone.
- We can also see that’s malicious, store everything being hit with a gun, and being hit with a melee event, log it all, if they kill several players within 5 seconds, kick them. – I don’t think it’s needed but possible
- Next on the list of problems is arresting players, any exploiter can arrest anyone by just teleporting to them (see code), we can do an anti-cheat, and stop this.
- Next, server laggers, and breaking the doors. Spamming the remote exploiters can cause the server to lag immensely, I’m not sure how this works, I haven’t made one, so Im assuming they just spam the remote.
- Add a delay
- Another thing I’ve heard (unsure of how true this is) you can set variables through the remote, again why is this able to pass through (if that’s the case of course)?
- Add a magnitude check so they have to be next to it to open the gate.
- Next, while I’ve never made a server crash personally, Ill tell you how it works.
- This functions by spamming the remote, however for the event, they have it hitting a part, and the ray being massive in length, causing massive lag spikes on the server, and possible server timeout.
- A. By limiting the size of the ray for each gun, have it stored on the server, and prevent the client from even setting that.
- B. Prevent the client from spamming it, you need a delay.
- Next, shall we discuss brings? No, because simply speaking, their using a car seat to bring a player, don’t even bother, Ill rig up an anti-cheat, and we can have that stopped.
- I can help you do this, please get in touch with me. I’d happily patch this whole game, for credits in the description of your game. That’s all I’d ask for. Moreover, if you still choose to ignore me helping you patch all this for nothing besides credits, I don’t know what more to offer you. I can properly maintain this game, for nothing besides credits. Yeah, I might not have the time, I’ve got a life too so it might take me some time, but I could help you patch it. Id love to work with you on this, please reach out to me we can stop all these exploiters, stop teleporting, stop speed hacks, stop jump hacks, stop flying cheats, we can stop it all.
- If you ignore my help, you can check out my anti-cheat, it would need to be modified to work with this, but it would give you an idea.
- - GitHub - Jupiter-Development-Revamp/Armed-Vortex: An open-source serversided anti-cheat for Roblox games. 1
- If you need extra help understanding things use this.
- - Security Tactics and Cheat Mitigation | Documentation - Roblox Creator Hub 1
- Thanks for reading, want to contact me? Im available on
- Discord: styxdeveloper (Responses vary, up to a day)
- Gmail: [email protected] (Checked daily)
- Twitter: x.com (not very active wait times up to a week)
- -- Method to bypassing the item handler
- remote.ItemHandler:InvokeServer({Position = localPlayer.Character.PrimaryPart.CFrame.Position, Parent = item});
- -- Team event
- local function teamEvent(team: string | nil, unwantedTeam: string | nil)
- local originalCFrame = nil
- if localPlayer.Character:FindFirstChild("Head") then
- originalCFrame = localPlayer.Character.Head.CFrame;
- else
- originalCFrame = localPlayer.Character:FindFirstChildWhichIsA("Part") or localPlayer.Character:FindFirstChildWhichIsA("BasePart");
- end
- local teamsAndFunc = {
- inmates = function()
- remote.TeamEvent:FireServer("Bright orange");
- task.wait(1);
- localPlayer.Character:PivotTo(originalCFrame);
- end,
- criminals = function()
- local CrimPads = workSpace["Criminals Spawn"]:FindFirstChild("SpawnLocation");
- localPlayer.Character:PivotTo(CrimPads.CFrame);
- task.wait(0.2);
- localPlayer.Character:PivotTo(originalCFrame);
- end,
- guards = function()
- while #game.Teams.Guards:GetPlayers() == 8 do
- task.wait(1);
- end;
- remote.TeamEvent:FireServer("Bright blue");
- task.wait(1);
- localPlayer.Character:PivotTo(originalCFrame);
- end,
- neutral = function()
- remote.TeamEvent:FireServer("Medium stone grey");
- task.wait(1);
- localPlayer.Character:PivotTo(originalCFrame);
- end
- }
- for name, func in pairs(teamsAndFunc) do
- if type(team) == "string" and name == team then
- func();
- log:print("Success", "Team changed to " .. team);
- break;
- elseif type(team) == "nil" and type(unwantedTeam) == "string" and name ~= unwantedTeam then
- func();
- log:print("Success", "Swapped to team: " .. name);
- break;
- end
- log:print("Error", "Invalid team: " .. tostring(team));
- end
- end
- -- Arrest
- local function Arrest(Player)
- if Player.Character and Player.Character:FindFirstChild("Head") and LocalPlayer then
- local OldPos = LocalPlayer.Head.CFrame
- LocalPlayer:SetPrimaryPartCFrame(Player.Character.Head.CFrame)
- wait(0.07)
- Remote.arrest:InvokeServer(Player.Character.Head)
- LocalPlayer:SetPrimaryPartCFrame(OldPos)
- end
- end
- -- Kill
- local function killPlayer(Player : Player | string)
- if killSettings.settings.killMethod == "Melee" then
- local pivotPoint = localPlayer.Character:GetPivot();
- localPlayer.Character:PivotTo(Player.Character:GetPivot());
- task.wait(0.4);
- for i = 1, 20 do
- replicatedStorage.meleeEvent:FireServer(players:FindFirstChild(Player));
- if Player.Character.Humanoid.Health == 0 then
- break;
- end
- end
- localPlayer.Character:PivotTo(pivotPoint);
- log:print("Success", "Melee killed player: " .. Player);
- elseif killSettings.settings.killMethod == "Gun" then
- local info = {didChangeTeamColor = nil, oldTeamColor = nil};
- if localPlayer.TeamColor == Player.TeamColor then
- info.didChangeTeamColor = true;
- info.oldTeamColor = localPlayer.Team.Name;
- teamEvent(nil, Player.Team.Name);
- end
- for i = 1, 6 do
- if not localPlayer.Backpack:FindFirstChild("M9") or not localPlayer.Character:FindFirstChild("M9") then
- itemHandler("m9");
- end
- if not localPlayer.Character:FindFirstChild("M9") then
- localPlayer.Backpack:FindFirstChild("M9").Parent = localPlayer.Character;
- end
- if Player.Character.Humanoid.Health == 0 then
- break;
- end
- replicatedStorage:FindFirstChild("ShootEvent"):FireServer({{RayObject = Ray.new(Vector3.new(0)), Distance = 1, Cframe = CFrame.new(0, 0, 0), Hit = Player.Character:FindFirstChild("Head")}}, localPlayer.Character:FindFirstChild("M9"));
- localPlayer.Character:FindFirstChild("M9"):Destroy();
- log:print("Success", "Gun killed player: " .. Player);
- end
- teamEvent(info.oldTeamColor);
- end
- end
- -- Gate
- remote.ItemHandler:InvokeServer(workSpace.Prison_ITEMS.buttons["Prison Gate"]["Prison Gate"]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement