"pp/copy" Material Exploit

Currently, if a certain material can be used to blind all players on a server. Steps to reproduce:

  1. Run in console to set material: material_override “pp/copy”
  2. Use material tool on any prop
  3. Physgun or colorize the prop to blind all players on server

I am letting more people know about this because:

  1. The exploit is reversible by applying the material on another prop and setting its color to white
  2. It should be fixed

Before anyone comes in here crying “BUT WHY DID YOU POST THIS OMG NOW EVERYONE KNOWS!!1”

That’s the point.
The more people know, the more people to abuse it.
The more people abuse it, the higher chance of Garry looking at it to be fixed.
If only a select few people know, there is a low probability of it being fixed. And those people who know are free to use it as much as they like.

Basically it’s a way of saying “HEY, THERE’S AN EXPLOIT. EVERYONE KNOWS NOW. NOW YOU HAVE TO FIX IT.”

Simple fix: Block paint tool.

:slight_smile:

Not really, you pick it up with physgun it will make it black.

Get a script that detects if you have material_override “pp/cop” if so then kick, ban what ever you desire.

Besides from that you can make an adv dupe with it

I can’t replicate this.

This exploit does not involve the paint tool.

I just tested it again in singleplayer and it works fine. Check that you used the right console command to set the material. If done correctly the prop’s material will be a copy of your screenspace.


hook.Add("CanTool", "AntiExploit", function(Player, Trace, ToolMode)
	if ToolMode:lower() == "material" then
		if IsValid(Player:GetActiveWeapon()) and Player:GetActiveWeapon().GetToolObject and Player:GetActiveWeapon():GetToolObject() then
			local tool = Player:GetActiveWeapon():GetToolObject()
			local Val = tool:GetClientInfo("override")
			if Val == "pp/copy" then
				Player:Kick("You are a cunt.")
				return false
			end
		end
	end
end)

Wouldn’t that work for a while?

Should check on prop spawns too, someone could just spawn a dupe of it…

It works, but gives an error:

[ERROR] lua/autorun/antiexploit.lua:7: attempt to call method ‘Kick’ (a nil value)

  1. fn - lua/autorun/antiexploit.lua:7
  2. Call - addons/ulib/lua/ulib/shared/hook.lua:183
    3. unknown - gamemodes/sandbox/entities/weapons/gmod_tool/shared.lua:247

Because it can’t be used clientside.

[editline]9th February 2013[/editline]

*I’m talking about the Kick method

Has anyone got the script that fixed the ar2_altfire2 exploit? It used to remove props spawned with the material and kick people with it set using various tools.

I didn’t post this exploit so it wouldn’t get abused, but your points are valid…

By the way, I don’t know what materials they are, but there are apparently a few more that have the same effect.

Yea, ok, I did it now.

PP/cOpY lol.

Well thats my fun over…

[lua]
hook.Add(“Think”, “materialcheck”, function()
for k,v in pairs(player.GetAll()) do
if GetConVarString(“material_override”) == “PP/COPY” then
v:Ban(0, “Blocked Exploit”)
v:Kick(“Blocked Exploit”)
end
end
end
[/lua]
maybe? not sure

Use string.lower() and compare to “pp/copy”. Solves any cases of people trying to use Pp/cOpY or any other forms of mixed cases.

There’s a workaround for this in FPP (and therefore DarkRP).
I was told a day after I read this thread. The guy who told me is getting shit about it, though, because I fixed it when he told me about it. This is bullshit.

This exploit community is retarded. They tell every member what the exploit is, each one telling the next that it’s a secret. This spreads throughout the playerbase until loads of people know. The stupid thing is that no one knows how many people are aware of the exploit because people only tell their friends about it. Then when someone tells someone with influence (Garry or me, I have a reputation of making workarounds for these things in DarkRP), all hell breaks loose. This is bullshit.

Why not share such workarounds here?

It’s on the FPP github.