Looking for SWEP bases.

Hi I am looking for SWEP bases like this one here and is unable to find a similar one like it. So if anyone as any idea where to find tutorials covering the features of the SWEP base or knows anywhere to get a similar one, please reply. Thanks in advance.

The best way would be editing the old default swep base.
Problem is that gmod does not have the CS:S sweps anymore.

You can extract the flechette weapon from gmod’s gcf and edit it.
I can give you some directions if you want to create CS:S style sweps as I have made my little swep base before the 13 update. Add me on steam.

You could try using the one from VorteX’s Weaponry, it’s decent, basic and works great for CS:S weapons since I think it is essentially the original base editied a bit.

[lua]
if SERVER then

AddCSLuaFile()
SWEP.Weight 				= 5
SWEP.AutoSwitchTo 			= false
SWEP.AutoSwitchFrom			= false

end

if CLIENT then

SWEP.DrawAmmo				= true
SWEP.DrawCrosshair			= true
SWEP.ViewModelFOV			= 70
SWEP.ViewModelFlip			= true
SWEP.CSMuzzleFlashes 		= true
SWEP.DrawWeaponInfoBox		= false

end

SWEP.VorteXWeapon = true
SWEP.SupportsSilencer = false
SWEP.SpecialUsing = false

SWEP.Author = “VorteX”
SWEP.Contact = “”
SWEP.Purpose = “”
SWEP.Instructions = “”

SWEP.Category = “VorteX’s Weaponry”

SWEP.Spawnable = false
SWEP.AdminSpawnable = false

SWEP.Ironsight_Time = 0.33

SWEP.HoldType = “pistol”
SWEP.IronHoldType = “revolver”

SWEP.Pistol = false
SWEP.Rifle = false
SWEP.Shotgun = false
SWEP.SMG = false
SWEP.Melee = false
SWEP.Sniper = false

SWEP.Primary.Sound = Sound(“Weapon_AK47.Single”)
SWEP.Primary.SilencedSound = Sound(“Weapon_AK47.Single”)
SWEP.Primary.Recoil = 1.5
SWEP.Primary.Damage = 40
SWEP.Primary.NumShots = 1
SWEP.Primary.Cone = 0.02
SWEP.Primary.RPM = 800
SWEP.Primary.Delay = 0.15

SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = “none”

SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = “none”

function SWEP:GetIronsights()

return self.Weapon:GetNetworkedBool("Ironsights", false)

end

function SWEP:GetSilenced()

return self.Weapon:GetNetworkedBool("Silencer", false)

end

function SWEP:GetPrimaryDelay()

if self.Primary.RPM != nil then
			
	return 1 / ( self.Primary.RPM / 60 )
	
end

return self.Primary.Delay

end

function SWEP:GetPrimarySound()

if self:GetSilenced() then
	
	return self.Primary.SilencedSound
	
else
	
	return self.Primary.Sound
	
end

end

function SWEP:OwnerIsRunning()

return self.Owner:KeyDown(IN_SPEED)

end

function SWEP:Initialize()

self:SetWeaponHoldType(self.HoldType)
self.Weapon:SetNetworkedBool("Ironsights", false)
self.Weapon:SetNetworkedBool("Silencer", false)

end

function SWEP:Reload()

if self:GetSilenced() then
	
	self.Weapon:DefaultReload(ACT_VM_RELOAD_SILENCED)
	
else
	
	self.Weapon:DefaultReload(ACT_VM_RELOAD)
	
end

self:SetIronsights(false)

end

function SWEP:Deploy()

if self:GetSilenced() then
	
	self.Weapon:SendWeaponAnim(ACT_VM_DRAW_SILENCED)
	
else
	
	self.Weapon:SendWeaponAnim(ACT_VM_DRAW)
	
end

self.Weapon:SetNextPrimaryFire(CurTime() + 1)

end

function SWEP:Think()

if self.Owner:KeyDown(IN_USE) and self.Owner:KeyDown(IN_ATTACK2) and !self.SpecialUsing then
	
	self:SetIronsights(false)
	self.SpecialUsing = true
	
	if self:GetSilenced() then
		
		self.Weapon:SetNetworkedBool("Silencer", false)
		self.Weapon:SendWeaponAnim(ACT_VM_DETACH_SILENCER)
		self.Weapon:SetNextPrimaryFire(CurTime() + 3)
		
	else
		
		self.Weapon:SetNetworkedBool("Silencer", true)
		self.Weapon:SendWeaponAnim(ACT_VM_ATTACH_SILENCER)
		self.Weapon:SetNextPrimaryFire(CurTime() + 3)
		
	end
	
elseif !self.Owner:KeyDown(IN_USE) or !self.Owner:KeyDown(IN_ATTACK2) then
	
	self.SpecialUsing = false
	
end

end

function SWEP:CanPrimaryAttack()

if self.Weapon:Clip1() <= 0 then
	
    return false
    
end

return true

end

function SWEP:PrimaryAttack()

-- self.Weapon:SetNextSecondaryFire( CurTime() + self.Primary.Delay )
-- self.Weapon:SetNextPrimaryFire( CurTime() + self.Primary.Delay )

self.Weapon:SetNextSecondaryFire( CurTime() + self:GetPrimaryDelay() )
self.Weapon:SetNextPrimaryFire( CurTime() + self:GetPrimaryDelay() )

if !self:CanPrimaryAttack() then
	// weapons/pistol/pistol_empty.wav
	// weapons/shotgun/shotgun_empty.wav
	// Weapons/ClipEmpty_Pistol.wav
	
	local snd = "Weapons/ClipEmpty_Pistol.wav"
	if self.Shotgun then
		
		snd = "weapons/shotgun/shotgun_empty.wav"
		
	end
	
	self:EmitSound(snd)
	if self.Primary.Automatic then
		
		// so realistic!
		self.Weapon:SetNextPrimaryFire(CurTime() + 0.5)
		
	end
	return
	
end

self.Weapon:EmitSound(self:GetPrimarySound())

self:CSShootBullet(self.Primary.Damage, self.Primary.Recoil, self.Primary.NumShots, self.Primary.Cone)

self:TakePrimaryAmmo(1)
local topunch = Angle( math.Rand(-0.5,-0.5) * self.Primary.Recoil, math.Rand(-0.5,0.5) * self.Primary.Recoil, math.Rand(-0.09, 0.09) * self.Primary.Recoil ) 
if self.Weapon:GetNetworkedBool("Ironsights", false) then
	self.Owner:ViewPunch(topunch)
else
	self.Owner:ViewPunch(topunch * 1.5)
end

// custom recoil, stolen from css base
if ( (game.SinglePlayer() and SERVER) or ( !game.SinglePlayer() and CLIENT and IsFirstTimePredicted() ) ) then

	local eyeang = self.Owner:EyeAngles()
	eyeang.pitch = eyeang.pitch - self.Primary.Recoil
	eyeang.yaw = eyeang.yaw - math.random(self.Primary.Recoil * -0.5, self.Primary.Recoil / 2)
	self.Owner:SetEyeAngles( eyeang )

end

end

function SWEP:CSShootBullet(dmg, recoil, numbul, cone)

numbul 	= numbul 	or 1
cone 	= cone 		or 0.01

local bullet = {}
bullet.Num 		= numbul
bullet.Src 		= self.Owner:GetShootPos()
bullet.Dir 		= self.Owner:GetAimVector()
bullet.Spread 	= Vector( cone, cone, 0 )
bullet.Tracer	= 1
bullet.Force	= 20
bullet.Damage	= dmg

self.Owner:FireBullets(bullet)

if self:GetSilenced() then
	
	self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK_SILENCED)
	
else
	
	self.Weapon:SendWeaponAnim(ACT_VM_PRIMARYATTACK)
	
end

self.Owner:MuzzleFlash()
self.Owner:SetAnimation(PLAYER_ATTACK1)

end

function SWEP:GetViewModelPosition(pos, ang)

if !self.IronSightsPos then return pos, ang end

local bIron = self.Weapon:GetNetworkedBool("Ironsights")

if bIron != self.bLastIron then
	
	self.bLastIron = bIron
	self.fIronTime = CurTime()
	
	if bIron then
		self.SwayScale	= 0.3
		if self.Pistol then
			self.SwayScale = 0.3
		elseif self.Rifle then
			self.SwayScale = 1.66
		elseif self.Shotgun then
			self.SwayScale = 1.83
		elseif self.SMG then
			self.SwayScale = 1
		end
		self.BobScale 	= 0.1
	else
		self.SwayScale	= 2.5
		if self.Pistol then
			self.SwayScale	= 1
		elseif self.Rifle then
			self.SwayScale	= 5
		elseif self.Shotgun then
			self.SwayScale	= 5.5
		elseif self.SMG then
			self.SwayScale	= 3
		end
		
		self.BobScale	= 1
	end
	
end

local fIronTime = self.fIronTime or 0

if !bIron and fIronTime < CurTime() - self.Ironsight_Time then
	return pos, ang
end

	local Mul = 1.0

if ( fIronTime > CurTime() - self.Ironsight_Time ) then

	Mul = math.Clamp( (CurTime() - fIronTime) / self.Ironsight_Time, 0, 1 )
	
	if (!bIron) then Mul = 1 - Mul end

end

local Offset	= self.IronSightsPos

if ( self.IronSightsAng ) then

	ang = ang * 1
	ang:RotateAroundAxis( ang:Right(), 		self.IronSightsAng.x * Mul )
	ang:RotateAroundAxis( ang:Up(), 		self.IronSightsAng.y * Mul )
	ang:RotateAroundAxis( ang:Forward(), 	self.IronSightsAng.z * Mul )


end

local Right 	= ang:Right()
local Up 		= ang:Up()
local Forward 	= ang:Forward()



pos = pos + Offset.x * Right * Mul
pos = pos + Offset.y * Forward * Mul
pos = pos + Offset.z * Up * Mul

return pos, ang

end

function SWEP:SetIronsights(bool)

if bool then
	self.Weapon:SetWeaponHoldType(self.IronHoldType)
else
	self.Weapon:SetWeaponHoldType(self.HoldType)
end

self.DrawCrosshair = !bool

self.Weapon:SetNetworkedBool("Ironsights", bool)

end

SWEP.NextSecondaryAttack = 0

function SWEP:SecondaryAttack()

if self.SpecialUsing then return end
if !self.IronSightsPos then return end
if self.NextSecondaryAttack > CurTime() then return end

bIronsights = !self.Weapon:GetNetworkedBool( "Ironsights", false )

self:SetIronsights( bIronsights )

self.NextSecondaryAttack = CurTime() + 0.3

end
[/lua]

Thanks ill try using that.