Вопрос по разрешённым пропам

    if table.HasValue(AccsesGroup, LocalPlayer():GetUserGroup()) or LocalPlayer():IsSuperAdmin() then 
        if !LocalPlayer():IsSuperAdmin() or !LocalPlayer():GetUserGroup() == "root" then 
            for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
                if table.HasValue(tabstoremoveSup, v.Tab:GetText()) then
                    g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
                    RemoveSandboxTabs()
                end
            end
        end

Вот тут в скобках только root как прописать другие привелегии?

Тут вообще я бы код немного переделал. Убрал бы лишнее условие и суть остается таже. Оставлю тут на всякий, может сработает?

if (!AccsesGroup[LocalPlayer():GetUserGroup()] or !LocalPlayer():IsSuperAdmin()) then
   for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
      if (tabstoremoveSup[v.Tab:GetText()]) then
         g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
         RemoveSandboxTabs()
      end
   end
end

а тут где ранг прописывать?

Я читал твою прошлую тему, там у тебя есть таблица с рангами AccsesGroup. Но я только что понял ты скинул не полный код и этот может не правильно работать. Тогда наверное так будет:

if (AccsesGroup[LocalPlayer():GetUserGroup()] or LocalPlayer():IsSuperAdmin()) then
   if (!AccsesGroup[LocalPlayer():GetUserGroup()] or !LocalPlayer():IsSuperAdmin()) then
      for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
         if tabstoremoveSup[v.Tab:GetText()] then
            g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
            RemoveSandboxTabs()
         end
      end
   end
end

щас полный скину

if CLIENT then
    local CfgVars = {}
    local WEBSITE = {}
    CfgVars["EquipmentDecayTimer"] = 3
    CfgVars["WeaponDecayTimer"] = 3
    CfgVars["DrugDecayTimer"] = 3
    local buytable = {}
    buytable["1) Конструкции:"] = {}
    buytable["1) Конструкции:"].Model = Props_1
    buytable["1) Конструкции:"].Data = Props_1
    buytable["2) Пластины, кубы:"] = {}
    buytable["2) Пластины, кубы:"].Model = Props_3
    buytable["2) Пластины, кубы:"].Data = Props_3
    buytable["3) Декор:"] = {}
    buytable["3) Декор:"].Model = Props_4
    buytable["3) Декор:"].Data = Props_4
    local PANEL = {}

    function PANEL:Init()
        self.PanelList = vgui.Create("DPanelList", self)
        self.PanelList:SetPadding(4)
        self.PanelList:SetSpacing(2)
        self.PanelList:EnableVerticalScrollbar(true)
        self:BuildList()
    end

    local function AddComma(n)
        local sn = tostring(n)
        sn = string.ToTable(sn)
        local tab = {}

        for i = 0, #sn - 1 do
            if i % 3 == #sn % 3 and not (i == 0) then
                table.insert(tab, ",")
            end

            table.insert(tab, sn[i + 1])
        end

        return string.Implode("", tab)
    end

    function PANEL:BuildList()
        self.PanelList:Clear()
        local Categorised = {}

        for k, v in pairs(buytable) do
            v.Category = k
            Categorised[v.Category] = Categorised[v.Category] or {}
            table.insert(Categorised[v.Category], v)
        end

        for CategoryName, v in SortedPairs(Categorised) do
            local Category = vgui.Create("DCollapsibleCategory", self)
            self.PanelList:AddItem(Category)
            Category:SetExpanded(false)
            Category:SetLabel(CategoryName)
            Category:SetCookieName("EntitySpawn." .. CategoryName)
            local Content = vgui.Create("DPanelList")
            Category:SetContents(Content)
            Content:EnableHorizontal(true)
            Content:SetDrawBackground(false)
            Content:SetSpacing(2)
            Content:SetPadding(2)
            Content:SetAutoSize(true)
            number = 1

            for k, v in pairs(buytable[CategoryName].Model) do
              
                local Icon = vgui.Create("SpawnIcon", self)
                local Model = buytable[CategoryName].Model[number]

                if (buytable[CategoryName].Model[number] ~= nil) then
                    Icon:SetModel(buytable[CategoryName].Model[number])
                else
                    Icon:SetModel("models/error.mdl")
                end

                Icon.DoClick = function()
                    RunConsoleCommand("gm_spawn", Model)
                end

                local lable = vgui.Create("DLabel", Icon)
                lable:SetFont("DebugFixedSmall")
                lable:SetTextColor(color_black)
                lable:SetText(Model)
                lable:SetContentAlignment(5)
                lable:SetWide(self:GetWide())
                lable:AlignBottom(-42)
                Content:AddItem(Icon)
                number = number + 1
            end
        end

        self.PanelList:InvalidateLayout()
    end

    function PANEL:PerformLayout()
        self.PanelList:StretchToParent(0, 0, 0, 0)
    end

    local CreationSheet = vgui.RegisterTable(PANEL, "Panel")

    local function CreateContentPanel()
        local ctrl = vgui.CreateFromTable(CreationSheet)

        return ctrl
    end
   	
    local function RemoveSandboxTabs()
    	local AccsesGroup = {"superadmin","root","sponsor","admin","moderator","operator"}
        local tabstoremove = {
	        	language.GetPhrase("spawnmenu.content_tab"), 
		        language.GetPhrase("spawnmenu.category.npcs"), 
		        language.GetPhrase("spawnmenu.category.entities"), 
		        language.GetPhrase("spawnmenu.category.weapons"), 
		        language.GetPhrase("spawnmenu.category.vehicles"), 
		        language.GetPhrase("spawnmenu.category.postprocess"), 
		        language.GetPhrase("spawnmenu.category.dupes"), 
		        language.GetPhrase("spawnmenu.category.saves")
    	}
        local tabstoremoveSup = {
                language.GetPhrase("spawnmenu.content_tab"), 
                language.GetPhrase("spawnmenu.category.npcs"), 
                language.GetPhrase("spawnmenu.category.entities"),  
                language.GetPhrase("spawnmenu.category.vehicles"), 
                language.GetPhrase("spawnmenu.category.postprocess"), 
                language.GetPhrase("spawnmenu.category.dupes"), 
                language.GetPhrase("spawnmenu.category.saves")
        }
        if table.HasValue(AccsesGroup, LocalPlayer():GetUserGroup()) or LocalPlayer():IsSuperAdmin() then 
            if !LocalPlayer():IsSuperAdmin() or !LocalPlayer():GetUserGroup() == "root" then 
                for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
                    if table.HasValue(tabstoremoveSup, v.Tab:GetText()) then
                        g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
                        RemoveSandboxTabs()
                    end
                end
            end
        else
            for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
               -- if table.HasValue(tabstoremove, v.Tab:GetText()) then
                if v.Tab:GetText() != "Разрешенные пропы" then
                    g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
                    RemoveSandboxTabs()
                end
            end
        end
    end

    hook.Add("SpawnMenuOpen", "blockmenutabs", RemoveSandboxTabs)

    local function BunkMenu()
        return
    end

    spawnmenu.AddCreationTab("Разрешенные пропы", CreateContentPanel, "icon16/application_view_tile.png", 4)
end```

там где только root прописан там всё может выдавать а там где superadmin root sponsor итд ток оружие

Пробуй этот

if (AccsesGroup[LocalPlayer():GetUserGroup()] or LocalPlayer():IsSuperAdmin()) then 
   if (!AccsesGroup[LocalPlayer():GetUserGroup()] or !LocalPlayer():IsSuperAdmin()) then 
       for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
           if (tabstoremoveSup[v.Tab:GetText()]) then
               g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
               RemoveSandboxTabs()
           end
       end
   end
else
   for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
      -- if table.HasValue(tabstoremove, v.Tab:GetText()) then
       if v.Tab:GetText() != "Разрешенные пропы" then
           g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
           RemoveSandboxTabs()
       end
   end
end

куда тут вписать ранги которые всё могут выдавать

local AccsesGroup = {"superadmin","root","sponsor","admin","moderator","operator"} Найди ее

они ток оружие могут

Суперадмин тоже?

оно пока не настроенно

Я теперь не совсем понимаю что ты хочешь сказать… Ты проверил код? Он работает или нет?
и еще попробуй заменить это:

if (AccsesGroup[LocalPlayer():GetUserGroup()] or LocalPlayer():IsSuperAdmin()) then 
   if (!AccsesGroup[LocalPlayer():GetUserGroup()] or !LocalPlayer():IsSuperAdmin()) then 
       for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
           if (tabstoremoveSup[v.Tab:GetText()]) then
               g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
               RemoveSandboxTabs()
           end
       end
   end
else
   for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
      -- if table.HasValue(tabstoremove, v.Tab:GetText()) then
       if v.Tab:GetText() != "Разрешенные пропы" then
           g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
           RemoveSandboxTabs()
       end
   end
end

на это:

if (!AccsesGroup[LocalPlayer():GetUserGroup()] or !LocalPlayer():IsSuperAdmin()) then
   for k, v in pairs(g_SpawnMenu.CreateMenu.Items) do
      if tabstoremoveSup[v.Tab:GetText()] then
         g_SpawnMenu.CreateMenu:CloseTab(v.Tab, true)
         RemoveSandboxTabs()
      end
   end
end

мой который был да но я не могу вписать другие привилегии кроме root а у тебя нельзя вписать привилегии


у меня щас такой тут ток рут прописан а мне нужно ещё другие добавить

Честно? Ты сам не знаешь что ты просишь. Зачем ты тогда просишь о помощи если ты не используешь или не пытаешься использовать то тебе скидывают и все просишь чтобы помогли… Я тебе уже указал таблицу с юзергруппами, там все есть. Изучай lua тогда чтобы понимать. Прописывай все строкой и будет это так:

if !LocalPlayer():IsSuperAdmin() or !LocalPlayer():GetUserGroup() == "root" or !LocalPlayer():GetUserGroup() == "admin" or !LocalPlayer():GetUserGroup() == "superadmin" or !LocalPlayer():GetUserGroup() == "moder" then