A loadout customization addon for Garry's Mod.
- Search weapons by name
- Gives ammo to all weapons
- Supports URS
- Supports WUMA
- Supports Builder-X
- Server owners can set global ammo limits with
custom_loadout_primary_limitandcustom_loadout_secondary_limit - You can choose which weapon you prefer to hold when the loadout is applied
If you want to blacklist weapons, you can either install and use URS/WUMA, or copy the example hook below and modify it as you wish.
-- Example: Only allow admins to use the Annabelle
hook.Add('CustomLoadout.IsWeaponBlacklisted', 'cloadout_blacklist_example', function(ply, weaponClass)
if weaponClass == 'weapon_annabelle' and not ply:IsAdmin() then
return true
end
end)Returning true prevents the weapon from being given, and also marks them as unavailable on the loadout. Also, keep these in mind:
- URS/WUMA/BuilderX/sandbox's
PlayerGiveSWEPrestrictions still apply even if this hook doesn't block a weapon - The hook must be added on a shared realm (both on CLIENT and SERVER)
- It doesn't work in single player (so if you need to test it, do it on a local, peer-to-peer or dedicated server instead.)
You can also override which weapon is preferred by using this hook:
hook.Add( "CLoadoutOverridePreferredWeapon", "OverridePreferredWeaponExample", function( ply, preferredClass )
-- With godmode, prefer to use the Physics Gun
if ply:HasGodMode() then
return "weapon_physgun"
end
-- You can return false instead to disable the automatic selection of
-- a preferred weapon, allowing you to do custom logic after a loadout is given
ply:Give( "weapon_physgun" )
ply:SelectWeapon( "weapon_physgun" )
return false
end )You can block a player from changing their loadout by using the CLoadoutCanGiveWeapons hook. It gives a isManualChange argument, which is true if the player changed the loadout using the loadout UI, and false if the loadout is being given by gamemode events (such as respawning).
hook.Add( "CLoadoutCanGiveWeapons", "BlockLoadoutExample", function( ply, isManualChange )
-- Don't allow players to manually change the loadout while
-- they are on a "PvP mode", to prevent reloading all weapons.
if isManualChange and ply:IsOnPVPMode() then
-- You can also return a second string value
-- as a message to print to the player's chat.
return false, "Your loadout will apply on the next time you respawn."
end
end )Please follow the CFC style guidelines before opening pull requests.