π« Weapon
Weapons are entities with firing, reloading and aiming functionalities.
They are fully customizable, all pieces of the weapon can be changed with immense possibility of creation.
π Examplesβ
-- Spawning a Weapon with an AK47 model
local new_weapon = Weapon(
Vector(-900, 185, 215),
Rotator(0, 0, 0),
"nanos-world::SK_AK47"
)
-- Configures Weapon Base Settings
new_weapon:SetAmmoSettings(30, 1000)
new_weapon:SetDamage(30)
new_weapon:SetSpread(30)
new_weapon:SetRecoil(0.25)
new_weapon:SetBulletSettings(1, 20000, 20000, Color(100, 58, 0))
new_weapon:SetCadence(0.1)
new_weapon:SetWallbangSettings(50, 0.75)
-- Configures how the Character Grabs and Aims the Weapon
new_weapon:SetHandlingMode(HandlingMode.DoubleHandedWeapon)
new_weapon:SetSightTransform(Vector(0, 0, -1), Rotator(-1.5, 0, 0))
new_weapon:SetLeftHandTransform(Vector(22, 0, 9), Rotator(0, 60, 90))
new_weapon:SetRightHandOffset(Vector(-10, 0, 0))
-- Configures Weapon Particles
new_weapon:SetParticlesBulletTrail("nanos-world::P_Bullet_Trail")
new_weapon:SetParticlesBarrel("nanos-world::P_Weapon_BarrelSmoke")
new_weapon:SetParticlesShells("nanos-world::P_Weapon_Shells_762x39")
-- Configures Weapon Sounds
new_weapon:SetSoundDry("nanos-world::A_Rifle_Dry")
new_weapon:SetSoundLoad("nanos-world::A_Rifle_Load")
new_weapon:SetSoundUnload("nanos-world::A_Rifle_Unload")
new_weapon:SetSoundZooming("nanos-world::A_AimZoom")
new_weapon:SetSoundAim("nanos-world::A_Rattle")
new_weapon:SetSoundFire("nanos-world::A_AK47_Shot")
-- Configures Weapon Animations
new_weapon:SetAnimationFire("nanos-world::A_AK47_Fire")
new_weapon:SetAnimationCharacterFire("nanos-world::AM_Mannequin_Sight_Fire")
new_weapon:SetAnimationReload("nanos-world::AM_Mannequin_Reload_Rifle")
-- Configures the Mesh to drop when reloading
new_weapon:SetMagazineMesh("nanos-world::SM_AK47_Mag_Empty")
-- Configures the Crosshair Material
new_weapon:SetCrosshairMaterial("nanos-world::MI_Crosshair_Regular")
Using the default-weapons Package to spawn an AK47:
# install the default-weapons package
./NanosWorldServer.exe --cli install package default-weapons
-- Loads the default-weapons (note: it's recommended to add it to your Package's packages_requirements instead)
Server.LoadPackage("default-weapons")
-- Spawning the AK47 from default-weapons package
local my_ak47 = AK47(Vector(1035, 154, 300), Rotator())
-- Giving the Weapon to a Character
my_character:PickUp(my_ak47)
More related examples:
Prop Shootergetting-started/tutorials-and-examples/prop-shooter Weapon Scopegetting-started/tutorials-and-examples/weapon-scope Weapon Flashlightgetting-started/tutorials-and-examples/weapon-flashlightπ Constructorsβ
Default Constructor
No description provided
local my_weapon = Weapon(location, rotation, asset, collision_type?, gravity_enabled?)
Type | Name | Default | Description |
---|---|---|---|
Vector | location | Required parameter | No description provided |
Rotator | rotation | Required parameter | No description provided |
SkeletalMesh Reference | asset | Required parameter | No description provided |
CollisionType | collision_type | CollisionType.Auto | No description provided |
boolean | gravity_enabled | true | No description provided |
πΏ Static Functionsβ
Inherited Entity Static Functions
This class doesn't have own static functions.
π¦ Functionsβ
Inherited Entity Functions
Inherited Actor Functions
Inherited Paintable Functions
Inherited Pickable Functions
Returns | Name | Description | |
---|---|---|---|
![]() | integer | GetAmmoBag | Gets this Weapon's Ammo Bag |
![]() | integer | GetAmmoClip | Gets this Weapon's Ammo Clip |
![]() | integer | GetAmmoToReload | No description provided |
![]() | Animation Reference | GetAnimationCharacterFire | No description provided |
![]() | Animation Reference | GetAnimationFire | No description provided |
![]() | Animation Reference | GetAnimationReload | Gets the reload animation |
![]() | Color | GetBulletColor | No description provided |
![]() | integer | GetBulletCount | No description provided |
![]() | float | GetCadence | No description provided |
![]() | boolean | GetCanHoldUse | No description provided |
![]() | integer | GetClipCapacity | No description provided |
![]() | integer | GetDamage | No description provided |
![]() | HandlingMode | GetHandlingMode | No description provided |
![]() | boolean | GetHoldReleaseUse | No description provided |
![]() | Vector | GetLeftHandLocation | No description provided |
![]() | Rotator | GetLeftHandRotation | No description provided |
![]() | StaticMesh Reference | GetMagazineMesh | No description provided |
![]() | Particle Reference | GetParticlesBulletTrail | No description provided |
![]() | Particle Reference | GetParticlesShells | No description provided |
![]() | float | GetRecoil | No description provided |
![]() | Vector | GetRightHandOffset | No description provided |
![]() | float | GetSightFOVMultiplier | No description provided |
![]() | Vector | GetSightLocation | No description provided |
![]() | Rotator | GetSightRotation | No description provided |
![]() | Sound Reference | GetSoundAim | No description provided |
![]() | Sound Reference | GetSoundDry | No description provided |
![]() | Sound Reference | GetSoundFire | No description provided |
![]() | Sound Reference | GetSoundLoad | No description provided |
![]() | Sound Reference | GetSoundUnload | No description provided |
![]() | Sound Reference | GetSoundZooming | No description provided |
![]() | float | GetSpread | No description provided |
![]() | PlayAnimation | Plays an Animation on this Weapon | |
Reload | Forces this Weapon to reload | ||
SetAmmoBag | Sets this Weapon's Ammo in the Bag | ||
SetAmmoClip | Sets this Weapon's Ammo in the Clip | ||
SetAmmoSettings | Aux for setting and configuring ammo | ||
SetAnimationCharacterFire | Animation played by the Character when Firing | ||
SetAnimationFire | Animation played by the Weapon when Firing | ||
SetAnimationReload | Animation played by the Character when Reloading | ||
SetAutoReload | If the Character will reload automatically when ammo empties | ||
SetBulletColor | Set the Bullet Color | ||
SetBulletSettings | Aux for setting and configuring the Bullet | ||
SetCadence | Speed of shots | ||
SetClipCapacity | Capacity of the Weapon's clip | ||
SetDamage | Set the Base Weapon's Damage | ||
SetHandlingMode | Sets how the Character grabs this Weapon | ||
SetLeftHandTransform | Left Hand Offset | ||
SetMagazineMesh | Set the mesh used when the Character reloads the weapon | ||
SetParticlesBarrel | Particle of the Fire Blast in the muzzle | ||
SetParticlesBulletTrail | Particle of the Bullet flying | ||
SetParticlesShells | Particle of the empty bullet flying from the weapon when shooting | ||
SetRecoil | Base Weapon's Recoil | ||
SetRightHandOffset | Set the offset of Right Hand | ||
SetSightFOVMultiplier | The FOV multiplier when ADS | ||
SetSightTransform | Offset applied to align player's head to weapon's sight and rotation applied on the weapon when ADS | ||
SetSoundAim | Sound when Aiming | ||
SetSoundDry | Sound when weapon has not bullet and try to shoot | ||
SetSoundFire | Sound when Shooting | ||
SetSoundFireLastBullets | Sound when firing with only having X remaining bullets in the magazine | ||
SetSoundLoad | Sound when Loading a magazine | ||
SetSoundUnload | Sound when Unloading a magazine | ||
SetSoundZooming | Sound when Zooming | ||
SetSpread | Base Weapon's Spread | ||
SetUsageSettings | Sets if the Weapon can hold to keep firing and if it needs to release to fire | ||
SetWallbangSettings | Sets how the bullet will pass through walls |

GetAmmoBag
Gets this Weapon's Ammo Bag
β Returns integer.
local ret = my_weapon:GetAmmoBag()
See also SetAmmoBag.

GetAmmoClip
Gets this Weapon's Ammo Clip
β Returns integer.
local ret = my_weapon:GetAmmoClip()
See also SetAmmoClip.

GetAmmoToReload
β Returns integer.
local ret = my_weapon:GetAmmoToReload()

GetAnimationCharacterFire
β Returns Animation Reference.
local ret = my_weapon:GetAnimationCharacterFire()
See also SetAnimationCharacterFire.

GetAnimationFire
β Returns Animation Reference.
local ret = my_weapon:GetAnimationFire()
See also SetAnimationFire.

GetAnimationReload
Gets the reload animation
β Returns Animation Reference.
local ret = my_weapon:GetAnimationReload()
See also SetAnimationReload.

GetBulletColor
β Returns Color.
local ret = my_weapon:GetBulletColor()
See also SetBulletColor.

GetBulletCount
β Returns integer.
local ret = my_weapon:GetBulletCount()

GetCadence
β Returns float.
local ret = my_weapon:GetCadence()
See also SetCadence.

GetCanHoldUse
β Returns boolean.
local ret = my_weapon:GetCanHoldUse()

GetClipCapacity
β Returns integer.
local ret = my_weapon:GetClipCapacity()
See also SetClipCapacity.

GetDamage
β Returns integer.
local ret = my_weapon:GetDamage()
See also SetDamage.

GetHandlingMode
β Returns HandlingMode.
local ret = my_weapon:GetHandlingMode()
See also SetHandlingMode.

GetHoldReleaseUse
β Returns boolean.
local ret = my_weapon:GetHoldReleaseUse()

GetLeftHandLocation
β Returns Vector.
local ret = my_weapon:GetLeftHandLocation()

GetLeftHandRotation
β Returns Rotator.
local ret = my_weapon:GetLeftHandRotation()

GetMagazineMesh
β Returns StaticMesh Reference.
local ret = my_weapon:GetMagazineMesh()
See also SetMagazineMesh.

GetParticlesBulletTrail
β Returns Particle Reference.
local ret = my_weapon:GetParticlesBulletTrail()
See also SetParticlesBulletTrail.

GetParticlesShells
β Returns Particle Reference.
local ret = my_weapon:GetParticlesShells()
See also SetParticlesShells.

GetRecoil
β Returns float.
local ret = my_weapon:GetRecoil()
See also SetRecoil.

GetRightHandOffset
β Returns Vector.
local ret = my_weapon:GetRightHandOffset()
See also SetRightHandOffset.

GetSightFOVMultiplier
β Returns float.
local ret = my_weapon:GetSightFOVMultiplier()
See also SetSightFOVMultiplier.

GetSightLocation
β Returns Vector.
local ret = my_weapon:GetSightLocation()

GetSightRotation
β Returns Rotator.
local ret = my_weapon:GetSightRotation()

GetSoundAim
β Returns Sound Reference.
local ret = my_weapon:GetSoundAim()
See also SetSoundAim.

GetSoundDry
β Returns Sound Reference.
local ret = my_weapon:GetSoundDry()
See also SetSoundDry.

GetSoundFire
β Returns Sound Reference.
local ret = my_weapon:GetSoundFire()
See also SetSoundFire.

GetSoundLoad
β Returns Sound Reference.
local ret = my_weapon:GetSoundLoad()
See also SetSoundLoad.

GetSoundUnload
β Returns Sound Reference.
local ret = my_weapon:GetSoundUnload()
See also SetSoundUnload.

GetSoundZooming
β Returns Sound Reference.
local ret = my_weapon:GetSoundZooming()
See also SetSoundZooming.

GetSpread
β Returns float.
local ret = my_weapon:GetSpread()
See also SetSpread.

PlayAnimation
Plays an Animation on this Weapon
my_weapon:PlayAnimation(animation_path, slot_name?, loop_indefinitely?, blend_in_time?, blend_out_time?, play_rate?, stop_all_montages?)
Type | Parameter | Default | Description |
---|---|---|---|
Animation Reference | animation_path | Required parameter | No description provided |
string | slot_name? | DefaultSlot | No description provided |
boolean | loop_indefinitely? | false | This parameter is only used if the Weapon has an Animation Blueprint |
float | blend_in_time? | 0.25 | This parameter is only used if the Weapon has an Animation Blueprint |
float | blend_out_time? | 0.25 | This parameter is only used if the Weapon has an Animation Blueprint |
float | play_rate? | 1.0 | This parameter is only used if the Weapon has an Animation Blueprint |
boolean | stop_all_montages? | false | Stops all running Montages from the same Group. This parameter is only used if the Weapon has an Animation Blueprint |

Reload
Forces this Weapon to reload (only if being handled by a Character)
my_weapon:Reload()

SetAmmoBag
Sets this Weapon's Ammo in the Bag
my_weapon:SetAmmoBag(new_ammo_bag)
Type | Parameter | Default | Description |
---|---|---|---|
integer | new_ammo_bag | Required parameter | No description provided |
See also GetAmmoBag.

SetAmmoClip
Sets this Weapon's Ammo in the Clip
my_weapon:SetAmmoClip(new_ammo_clip)
Type | Parameter | Default | Description |
---|---|---|---|
integer | new_ammo_clip | Required parameter | No description provided |
See also GetAmmoClip.

SetAmmoSettings
Aux for setting and configuring ammo
my_weapon:SetAmmoSettings(ammo_clip, ammo_bag, ammo_to_reload?, clip_capacity?)
Type | Parameter | Default | Description |
---|---|---|---|
integer | ammo_clip | Required parameter | No description provided |
integer | ammo_bag | Required parameter | No description provided |
integer | ammo_to_reload? | ammo_clip | No description provided |
integer | clip_capacity? | ammo_clip | No description provided |

SetAnimationCharacterFire
Animation played by the Character when Firing
my_weapon:SetAnimationCharacterFire(animation_character_fire_path, play_rate?)
Type | Parameter | Default | Description |
---|---|---|---|
Animation Reference | animation_character_fire_path | Required parameter | No description provided |
float | play_rate? | 1 | No description provided |
See also GetAnimationCharacterFire.

SetAnimationFire
Animation played by the Weapon when Firing
my_weapon:SetAnimationFire(animation_fire_path, play_rate?)
Type | Parameter | Default | Description |
---|---|---|---|
Animation Reference | animation_fire_path | Required parameter | No description provided |
float | play_rate? | 1 | No description provided |
See also GetAnimationFire.

SetAnimationReload
Animation played by the Character when Reloading
my_weapon:SetAnimationReload(reload_animation_path, play_rate?)
Type | Parameter | Default | Description |
---|---|---|---|
Animation Reference | reload_animation_path | Required parameter | No description provided |
float | play_rate? | 1 | No description provided |
See also GetAnimationReload.

SetAutoReload
If the Character will reload automatically when ammo empties. Default is true
my_weapon:SetAutoReload(auto_reload)
Type | Parameter | Default | Description |
---|---|---|---|
boolean | auto_reload | Required parameter | No description provided |

SetBulletColor
Set the Bullet Color
Only has effect if using Bullet Trail particle P_Bullet_Trail or if you particle has the Color parameter
my_weapon:SetBulletColor(bullet_color)
Type | Parameter | Default | Description |
---|---|---|---|
Color | bullet_color | Required parameter | No description provided |
See also GetBulletColor.

SetBulletSettings
Aux for setting and configuring the Bullet
my_weapon:SetBulletSettings(bullet_count, bullet_max_distance, bullet_velocity, bullet_color)
Type | Parameter | Default | Description |
---|---|---|---|
integer | bullet_count | Required parameter | 1 for common weapons > 1 for shotguns |
integer | bullet_max_distance | Required parameter | No description provided |
integer | bullet_velocity | Required parameter | Visuals only |
Color | bullet_color | Required parameter | No description provided |

SetCadence
Speed of shots
my_weapon:SetCadence(cadence)
Type | Parameter | Default | Description |
---|---|---|---|
float | cadence | Required parameter | 1 shot at each cadence second |
See also GetCadence.

SetClipCapacity
Capacity of the Weapon's clip
my_weapon:SetClipCapacity(clip)
Type | Parameter | Default | Description |
---|---|---|---|
integer | clip | Required parameter | No description provided |
See also GetClipCapacity.

SetDamage
Base Weapon's Damage
This will be multiplied by multiplier factors when hitting specific bones
my_weapon:SetDamage(damage)
Type | Parameter | Default | Description |
---|---|---|---|
integer | damage | Required parameter | No description provided |
See also GetDamage.

SetHandlingMode
Sets how the Character grabs this Weapon
my_weapon:SetHandlingMode(handling_mode)
Type | Parameter | Default | Description |
---|---|---|---|
HandlingMode | handling_mode | Required parameter | No description provided |
See also GetHandlingMode.

SetLeftHandTransform
Left Hand Offset
my_weapon:SetLeftHandTransform(left_hand_location, left_hand_rotation)
Type | Parameter | Default | Description |
---|---|---|---|
Vector | left_hand_location | Required parameter | No description provided |
Rotator | left_hand_rotation | Required parameter | No description provided |

SetMagazineMesh
Set the mesh used when the Character reloads the weapon.
Will drop this Mesh as an animation effect.
my_weapon:SetMagazineMesh(magazine_mesh, magazine_mesh_hide_bone?)
Type | Parameter | Default | Description |
---|---|---|---|
StaticMesh Reference | magazine_mesh | Required parameter | No description provided |
string | magazine_mesh_hide_bone? | b_gun_mag | Weapon bone to hide when reloading it |
See also GetMagazineMesh.

SetParticlesBarrel
Particle of the Fire Blast in the muzzle
my_weapon:SetParticlesBarrel(particle_asset_path)
Type | Parameter | Default | Description |
---|---|---|---|
Particle Reference | particle_asset_path | Required parameter | No description provided |

SetParticlesBulletTrail
Particle of the Bullet flying
my_weapon:SetParticlesBulletTrail(particle_bullet_trail_asset_path)
Type | Parameter | Default | Description |
---|---|---|---|
Particle Reference | particle_bullet_trail_asset_path | Required parameter | No description provided |
See also GetParticlesBulletTrail.

SetParticlesShells
Particle of the empty bullet flying from the weapon when shooting
my_weapon:SetParticlesShells(particle_shells_asset_path)
Type | Parameter | Default | Description |
---|---|---|---|
Particle Reference | particle_shells_asset_path | Required parameter | No description provided |
See also GetParticlesShells.

SetRecoil
Base Weapon's Recoil
my_weapon:SetRecoil(recoil)
Type | Parameter | Default | Description |
---|---|---|---|
float | recoil | Required parameter | 0 means no Recoil, default is 1 |
See also GetRecoil.

SetRightHandOffset
Set the Offset of Right Hand. To position relative to the camera.
my_weapon:SetRightHandOffset(right_hand_offset)
Type | Parameter | Default | Description |
---|---|---|---|
Vector | right_hand_offset | Required parameter | No description provided |
See also GetRightHandOffset.

SetSightFOVMultiplier
The FOV multiplier when ADS
my_weapon:SetSightFOVMultiplier(sight_fov_multiplier)
Type | Parameter | Default | Description |
---|---|---|---|
float | sight_fov_multiplier | Required parameter | No description provided |
See also GetSightFOVMultiplier.

SetSightTransform
Offset applied to align player's head to weapon's sight and rotation applied on the weapon when ADS
my_weapon:SetSightTransform(sight_location, sight_rotation)
Type | Parameter | Default | Description |
---|---|---|---|
Vector | sight_location | Required parameter | No description provided |
Rotator | sight_rotation | Required parameter | No description provided |

SetSoundAim
Sound when Aiming
my_weapon:SetSoundAim(sound_aim_asset_path, volume?, pitch?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_aim_asset_path | Required parameter | No description provided |
float | volume? | 1 | No description provided |
float | pitch? | 1 | No description provided |
See also GetSoundAim.

SetSoundDry
Sound when weapon has not bullet and try to shoot
my_weapon:SetSoundDry(sound_dry_asset_path, volume?, pitch?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_dry_asset_path | Required parameter | No description provided |
float | volume? | 1 | No description provided |
float | pitch? | 1 | No description provided |
See also GetSoundDry.

SetSoundFire
Sound when Shooting
my_weapon:SetSoundFire(sound_fire_asset_path, volume?, pitch?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_fire_asset_path | Required parameter | No description provided |
float | volume? | 1 | No description provided |
float | pitch? | 1 | No description provided |
See also GetSoundFire.

SetSoundFireLastBullets
Sound when firing with only having X remaining bullets in the magazine, useful for last shot 'ping' or sound when low on bullets
my_weapon:SetSoundFireLastBullets(sound_asset_path, remaining_bullets_count?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_asset_path | Required parameter | No description provided |
integer | remaining_bullets_count? | 1 | The amount of remaining bullet to start playing this sound |

SetSoundLoad
Sound when Loading a magazine
my_weapon:SetSoundLoad(sound_load_asset_path, volume?, pitch?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_load_asset_path | Required parameter | No description provided |
float | volume? | 1 | No description provided |
float | pitch? | 1 | No description provided |
See also GetSoundLoad.

SetSoundUnload
Sound when Unloading a magazine
my_weapon:SetSoundUnload(sound_unload_asset_path, volume?, pitch?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_unload_asset_path | Required parameter | No description provided |
float | volume? | 1 | No description provided |
float | pitch? | 1 | No description provided |
See also GetSoundUnload.

SetSoundZooming
Sound when Zooming
my_weapon:SetSoundZooming(sound_zooming_asset_path, volume?, pitch?)
Type | Parameter | Default | Description |
---|---|---|---|
Sound Reference | sound_zooming_asset_path | Required parameter | No description provided |
float | volume? | 1 | No description provided |
float | pitch? | 1 | No description provided |
See also GetSoundZooming.

SetSpread
Base Weapon's Spread
my_weapon:SetSpread(spread)
Type | Parameter | Default | Description |
---|---|---|---|
float | spread | Required parameter | the higher the less precision - recommended value: 20 |
See also GetSpread.

SetUsageSettings
Sets if the Weapon can hold to keep firing and if it needs to release to fire
my_weapon:SetUsageSettings(can_hold_use, hold_release_use)
Type | Parameter | Default | Description |
---|---|---|---|
boolean | can_hold_use | Required parameter | No description provided |
boolean | hold_release_use | Required parameter | No description provided |

SetWallbangSettings
Sets how the bullet will pass through walls
my_weapon:SetWallbangSettings(max_distance, damage_multiplier)
Type | Parameter | Default | Description |
---|---|---|---|
integer | max_distance | Required parameter | Max distance to pass through another wall |
float | damage_multiplier | Required parameter | Damage given if wallbangged |
π Eventsβ
Inherited Entity Events
Inherited Actor Events
Inherited Pickable Events
Name | Description | |
---|---|---|
![]() | AmmoBagChange | When the Ammo Bag is changed, by reloading or manually setting through scripting |
![]() | AmmoClipChange | When the Ammo Clip is changed, by reloading or manually setting through scripting |
![]() | Fire | Triggered when Weapon fires (this will be triggered for each shot) |
![]() | Reload | When a Weapon is reloaded, optionally by a Character |

AmmoBagChange
When the Ammo Bag is changed, by reloading or manually setting through scripting
Weapon.Subscribe("AmmoBagChange", function(self, old_ammo_clip, new_ammo_clip)
-- AmmoBagChange was called
end)
Type | Argument | Description |
---|---|---|
Weapon | self | No description provided |
integer | old_ammo_clip | No description provided |
integer | new_ammo_clip | No description provided |

AmmoClipChange
When the Ammo Clip is changed, by reloading or manually setting through scripting
Weapon.Subscribe("AmmoClipChange", function(self, old_ammo_clip, new_ammo_clip)
-- AmmoClipChange was called
end)
Type | Argument | Description |
---|---|---|
Weapon | self | No description provided |
integer | old_ammo_clip | No description provided |
integer | new_ammo_clip | No description provided |

Fire
Triggered when Weapon fires (this will be triggered for each shot)
Weapon.Subscribe("Fire", function(self, shooter)
-- Fire was called
end)

Reload
When a Weapon is reloaded, optionally by a Character
Weapon.Subscribe("Reload", function(self, character, ammo_to_reload)
-- Reload was called
end)