Разрешить брать игроков физганом только определенным профам

Ну значит все должно работать. У меня все работает. А суперадмин может?

Да может

TEAM точно ADMIN называется?

Профа или что?

Ну TEAM_ это как бы профессия игрока

Да, админ.

Тогда это странно. сделай принт print(ply:GetUserGroup()) перед условием и напиши что тебе выдало.
Я не внимательно прочитал твой вопрос. Вот исправленный код:

local USERGROUP = {
   ["root"] = true
}

hook.Add("PhysgunPickup", "pickUpPlayer", function(ply, ent)
 if (ply:IsSuperAdmin() or (USERGROUP[ply:GetUserGroup()] or ply:Team() == TEAM_ADMIN) ) and ent:IsPlayer() then
    return true
 end
      
    return false
end)


Не могу пропы брать…

Ты ввел код который я тебе дал выше?

Да, написал.

Но теперь ты не можешь брать пропы?

Да не могуу

Замени тогда ent:IsPlayer() на IsValid(ent). Но тогда игроки не смогут брать пропы

Так?
local USERGROUP = {
[“root”] = true
}

hook.Add(“PhysgunPickup”, “pickUpPlayer”, function(ply, ent)
if (ply:IsSuperAdmin() or (USERGROUP[ply:GetUserGroup()] or ply:Team() == TEAM_ADMIN) ) and IsValid(ent) then
return true
end

return false

end)

Да, так

зображення
Дальше не могу брать пропы!

Ну попробуй вот этот тогда

local USERGROUP = {
   ["root"] = true
}

hook.Add("PhysgunPickup", "pickUpPlayer", function(ply, ent)
 if (ply:IsSuperAdmin() or USERGROUP[ply:GetUserGroup()] or ply:Team() == TEAM_ADMIN ) and ent:IsPlayer() then
    return true
 end
end)

Может быть интересно:

Вообще, нужно посмотреть, что этот хук делает в самом SAM, потому что этот хук не желательно просто вот так брать и делать в нем return true / return false. Это может отключить срабатывание этого хука в других аддонах

Вот код, который будет работать при условии, что другой хук не создаст конфликт для этого хука

local allowed_usergroups = {
	["root"] = true,
	["superadmin"] = true,
}

hook.Add("PhysgunPickup", "restrict_groups", function(pl, targ)
	if not targ:IsPlayer() then return end -- если цель - не игрок, то дальше не идем
	
	local allow_use = allowed_usergroups[ pl:GetUserGroup() ] or pl:Team() == TEAM_ADMIN
	return allow_use
end)

Но при этом и этот код может сломать другие хуки PhysgunPickup, поэтому лучше действительно посмотреть, как этот хук устроен в SAM

Я закинул настроил все работает, но игрока которго берут физганом его начинает дергать вниз в верх и он умирает, как это исправить ? Подскажи пожалуйста.