TTT Cannibalism and DeathStation Icon Error

Hello , i have a problem with my server of TTT.
I installed the mod Cannibalism and DeathStation but the icon won’t work:
Screenshot:

Cannibalism:



if SERVER then
AddCSLuaFile( "weapon_ttt_cannibalism.lua" )
resource.AddFile("materials/vgui/ttt/ttt_cannibalism.vmt")
resource.AddFile("materials/vgui/ttt/ttt_cannibalism.vtf")
end

if CLIENT then
SWEP.PrintName = "Cannibalismo"
SWEP.Slot      = 7 -- add 1 to get the slot number key

SWEP.ViewModelFOV  = 72
SWEP.ViewModelFlip = true
end

-- Always derive from weapon_tttbase.
SWEP.Base				= "weapon_tttbase"

--- Standard GMod values

SWEP.HoldType			= "melee"

SWEP.Primary.Delay       = 10
SWEP.Primary.Recoil      = 0
SWEP.Primary.Automatic   = false
SWEP.Primary.Damage      = 0
SWEP.Primary.Cone        = 0.025
SWEP.Primary.Ammo        = ""
SWEP.Primary.ClipSize    = 1
SWEP.Primary.ClipMax     = 1
SWEP.Primary.DefaultClip = 1

SWEP.IronSightsPos = Vector( 6.05, -5, 2.4 )
SWEP.IronSightsAng = Vector( 2.2, -0.1, 0 )

SWEP.ViewModel  = "models/weapons/v_knife_t.mdl"
SWEP.WorldModel = "models/weapons/w_knife_t.mdl"

function SWEP:ShouldDropOnDie()
	self:Remove()
end

function SWEP:OnDrop()
self:Remove()
end

function SWEP:PrimaryAttack()
	if not self:CanPrimaryAttack() then return end

	self.Weapon:SetNextPrimaryFire( CurTime() + self.Primary.Delay )
	
	local tracedata = {}
	tracedata.start = self.Owner:GetShootPos()
	tracedata.endpos = self.Owner:GetShootPos() + (self.Owner:GetAimVector() * 100)
	tracedata.filter = self.Owner
	tracedata.mins = Vector(1,1,1) * -10
	tracedata.maxs = Vector(1,1,1) * 10
	tracedata.mask = MASK_SHOT_HULL
	local tr = util.TraceHull( tracedata )

	local ply = self.Owner

		if IsValid(tr.Entity) then
		if tr.Entity.player_ragdoll then

		timer.Simple(0.1, function() 
    ply:Freeze(true) 
    ply:SetColor(Color(255,0,0,255))
		end)
          self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
					
          timer.Create("GivePlyHealth_"..self.Owner:UniqueID(),0.5,6,function() self.Owner:SetHealth(self.Owner:Health()+5) end)
					
					timer.Simple(3.1, function() 
					ply:Freeze(false)
					ply:SetColor(Color(255,255,255,255))
          tr.Entity:Remove()
          self:Remove()
					end )
				
					
				end
		end
					self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
				
end

--- TTT config values

-- Kind specifies the category this weapon is in. Players can only carry one of
-- each. Can be: WEAPON_... MELEE, PISTOL, HEAVY, NADE, CARRY, EQUIP1, EQUIP2 or ROLE.
-- Matching SWEP.Slot values: 0      1       2     3      4      6       7        8
SWEP.Kind = WEAPON_EQUIP2

-- If AutoSpawnable is true and SWEP.Kind is not WEAPON_EQUIP1/2, then this gun can
-- be spawned as a random weapon. Of course this AK is special equipment so it won't,
-- but for the sake of example this is explicitly set to false anyway.
SWEP.AutoSpawnable = false

-- The AmmoEnt is the ammo entity that can be picked up when carrying this gun.
SWEP.AmmoEnt = ""

-- CanBuy is a table of ROLE_* entries like ROLE_TRAITOR and ROLE_DETECTIVE. If
-- a role is in this table, those players can buy this.
SWEP.CanBuy = {ROLE_TRAITOR}

-- InLoadoutFor is a table of ROLE_* entries that specifies which roles should
-- receive this weapon as soon as the round starts. In this case, none.
SWEP.InLoadoutFor = nil

-- If LimitedStock is true, you can only buy one per round.
SWEP.LimitedStock = true

-- If AllowDrop is false, players can't manually drop the gun with Q
SWEP.AllowDrop = true

-- If IsSilent is true, victims will not scream upon death.
SWEP.IsSilent = false

-- If NoSights is true, the weapon won't have ironsights
SWEP.NoSights = true

-- Equipment menu information is only needed on the client
if CLIENT then
-- Path to the icon material
SWEP.Icon = "VGUI/ttt/ttt_cannibalism"

-- Text shown in the equip menu
SWEP.EquipMenuData = {
	type = "Arma",
	desc = "Cannibalismo!/nSbarazzati dell'evidenza e recupera vita!"
};
end


Death Station




if SERVER then
   AddCSLuaFile( "weapon_ttt_deathstation.lua" )
   resource.AddFile("materials/vgui/ttt/icon_fon_deathstation.vmt")
   resource.AddFile("materials/vgui/ttt/icon_fon_deathstation.vtf")
end

SWEP.HoldType = "normal"


if CLIENT then
   SWEP.PrintName = "Stazione Della Morte"
   SWEP.Slot = 6

   SWEP.ViewModelFOV = 10

   SWEP.EquipMenuData = {
      type = "Arma",
      desc = "La stazione della Morte è il contrario della stazione della salute, ferisce quando si usa."
   }

   SWEP.Icon = "VGUI/ttt/icon_deathstation"
end

SWEP.Base = "weapon_tttbase"

SWEP.ViewModel          = "models/weapons/v_crowbar.mdl"
SWEP.WorldModel         = "models/props/cs_office/microwave.mdl"

SWEP.DrawCrosshair      = false
SWEP.Primary.ClipSize       = -1
SWEP.Primary.DefaultClip    = -1
SWEP.Primary.Automatic      = true
SWEP.Primary.Ammo       = "none"
SWEP.Primary.Delay = 1.0

SWEP.Secondary.ClipSize     = -1
SWEP.Secondary.DefaultClip  = -1
SWEP.Secondary.Automatic    = true
SWEP.Secondary.Ammo     = "none"
SWEP.Secondary.Delay = 1.0

SWEP.Kind = WEAPON_EQUIP
SWEP.CanBuy = {ROLE_TRAITOR} -- Traitor Weapon
SWEP.LimitedStock = true -- True = You can buy only once per round

SWEP.AllowDrop = false

SWEP.NoSights = true

function SWEP:OnDrop()
   self:Remove()
end

function SWEP:PrimaryAttack()
   self.Weapon:SetNextPrimaryFire( CurTime() + self.Primary.Delay )
   self:HealthDrop()
end
function SWEP:SecondaryAttack()
   self.Weapon:SetNextSecondaryFire( CurTime() + self.Secondary.Delay )
   self:HealthDrop()
end

local throwsound = Sound( "Weapon_SLAM.SatchelThrow" )

-- Original Health Station Drop Code.... With some changes.
function SWEP:HealthDrop()
   if SERVER then
      local ply = self.Owner
      if not IsValid(ply) then return end

      if self.Planted then return end

      local vsrc = ply:GetShootPos()
      local vang = ply:GetAimVector()
      local vvel = ply:GetVelocity()
      
      local vthrow = vvel + vang * 200

      local health = ents.Create("ttt_death_station")
      if IsValid(health) then
         health:SetPos(vsrc + vang * 10)
         health:Spawn()

         health:SetPlacer(ply)

         health:PhysWake()
         local phys = health:GetPhysicsObject()
         if IsValid(phys) then
            phys:SetVelocity(vthrow)
         end   
         self:Remove()

         self.Planted = true
      end
   end

   self.Weapon:EmitSound(throwsound)
end


function SWEP:Reload()
   return false
end

function SWEP:OnRemove()
   if CLIENT and IsValid(self.Owner) and self.Owner == LocalPlayer() and self.Owner:Alive() then
      RunConsoleCommand("lastinv")
   end
end

if CLIENT then
   function SWEP:Initialize()
      self:AddHUDHelp("Se qualcuno ha 100 HP non può essere usato , soltanto quando qualcuno e' ferito.", nil, true)

      return self.BaseClass.Initialize(self)
   end
end

function SWEP:Deploy()
   if SERVER and IsValid(self.Owner) then
      self.Owner:DrawViewModel(false)
   end
   return true
end

function SWEP:DrawWorldModel()
end

function SWEP:DrawWorldModelTranslucent()
end



Cannibalism.vmt



"UnlitGeneric"
{
 "$basetexture" "vgui/ttt/ttt_cannibalism"
 "$vertexcolor" 1
 "$vertexalpha" 1
 "$translucent" 1
}


Icon Fon Death Station



"UnlitGeneric"
{
 "$basetexture" "vgui/ttt/icon_fon_death_station"
 "$vertexcolor" 1
 "$vertexalpha" 1
 "$translucent" 1
}


Did you upload the materials to your fastdl or let your user download them via. workshop?

First file looks fine; make sure you are sending it over FastDL.

In the second file, change


SWEP.Icon = "VGUI/ttt/icon_deathstation"

to


SWEP.Icon = "vgui/ttt/icon_fon_deathstation"

Also, lowercase all instances of VGUI in both files.

Ok , thanks

Yes