Skip to main content
Version: latest - a1.30.x ⚖️

🔫 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.

💂Authority
This class can only be spawned on 🟦 Server.
👪Inheritance
This class shares methods and events from Base Entity Base Actor Base Paintable Base Pickable .
tip

Please take a look at our Default's Weapon package with all built-in Weapons already properly configured and ready to use: https://github.com/nanos-world/nanos-world-weapons.

This Package is already included in the base game, you just need to Package.RequirePackage("nanos-world-weapons") and use it!

🎒 Examples

Server/Index.lua
-- 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 our Default Weapons Package https://github.com/nanos-world/nanos-world-weapons to spawn an AK47:

Server/Index.lua
-- Includes the nanos world Default Weapons Package in your Package
-- (you don't need to download it, just include it!)
Package.RequirePackage("nanos-world-weapons")

-- Spawning the AK47
local my_ak47 = NanosWorldWeapons.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-shooterWeapon Scopegetting-started/tutorials-and-examples/weapon-scopeWeapon Flashlightgetting-started/tutorials-and-examples/weapon-flashlight

🛠 Constructors

Default Constructor

local my_weapon = Weapon(location, rotation, asset, collision_type?, gravity_enabled?)
TypeNameDefaultDescription
Vector location
Rotator rotation
SkeletalMesh Reference asset
CollisionTypecollision_typeCollisionType.Normal
boolean gravity_enabledtrue

🗿 Static Functions

Inherited Entity Static Functions
Base Entityscripting-reference/classes/base-classes/entity
ReturnsNameDescription
table of Base Entity GetAllReturns a table containing all Entities of the class this is called on
Base Entity GetByIndexReturns a specific Entity of this class at an index
integer GetCountReturns how many Entities of this class exist
iterator GetPairsReturns an iterator with all Entities of this class to be used with pairs()
table InheritInherits this class with the Inheriting System
table of table GetInheritedClassesGets a list of all directly inherited classes from this Class created with the Inheriting System
table or nilGetParentClassGets the parent class if this Class was created with the Inheriting System
boolean IsChildOfGets if this Class is child of another class if this Class was created with the Inheriting System
function SubscribeSubscribes to an Event for all entities of this Class
function SubscribeRemoteSubscribes to a custom event called from server
UnsubscribeUnsubscribes all callbacks from this Event in this Class within this Package, or only the callback passed
This entity doesn't have own static functions.

🦠 Functions

Inherited Entity Functions
Base Entityscripting-reference/classes/base-classes/Entity
ReturnsNameDescription
integer GetIDGets the universal network ID of this Entity (same on both client and server)
table GetClassGets the class of this entity
boolean IsARecursively checks if this entity is inherited from a Class
function SubscribeSubscribes to an Event on this specific entity
function SubscribeRemoteSubscribes to a custom event called from server on this specific entity
UnsubscribeUnsubscribes all callbacks from this Event in this Entity within this Package, or only the callback passed
SetValueSets a Value in this Entity
any GetValueGets a Value stored on this Entity at the given key
DestroyDestroys this Entity
boolean IsValidReturns true if this Entity is valid (i.e. wasn't destroyed and points to a valid Entity)
CallRemoteEventCalls a custom remote event directly on this entity to a specific Player
CallRemoteEventCalls a custom remote event directly on this entity
BroadcastRemoteEventCalls a custom remote event directly on this entity to all Players
Inherited Actor Functions
Base Actorscripting-reference/classes/base-classes/actor
ReturnsNameDescription
AddImpulseApplies a force in world world to this Actor
AttachToAttaches this Actor to any other Actor, optionally at a specific bone
DetachDetaches this Actor from AttachedTo Actor
SetCollisionSets this Actor's collision type
SetDimensionSets this Actor's Dimension
SetForceAdds a permanent force to this Actor, set to Vector(0, 0, 0) to cancel
SetGravityEnabledSets whether gravity is enabled on this Actor
SetVisibilitySets whether the actor is visible or not
SetHighlightEnabledSets whether the highlight is enabled on this Actor, and which highlight index to use
SetOutlineEnabledSets whether the outline is enabled on this Actor, and which outline index to use
SetLifeSpanSets the time (in seconds) before this Actor is destroyed. After this time has passed, the actor will be automatically destroyed.
SetLocationSets this Actor's location in the game world
SetRotationSets this Actor's rotation in the game world
SetRelativeLocationSets this Actor's relative location in local space (only if this actor is attached)
SetRelativeRotationSets this Actor's relative rotation in local space (only if this actor is attached)
SetScaleSets this Actor's scale
SetNetworkAuthoritySets the Player to have network authority over this Actor
SetNetworkAuthorityAutoDistributedSets if this Actor will auto distribute the network authority betwen players
TranslateToSmoothly moves this actor to a location over a certain time
RotateToSmoothly rotates this actor to an angle over a certain time
boolean IsBeingDestroyedReturns true if this Actor is being destroyed
boolean IsVisibleReturns true if this Actor is visible
boolean IsGravityEnabledReturns true if gravity is enabled on this Actor
boolean IsInWaterReturns true if this Actor is in water
boolean IsNetworkDistributedReturns true if this Actor is currently network distributed
table of Base Actor GetAttachedEntitiesGets all Actors attached to this Actor
Base Actor or nilGetAttachedToGets the Actor this Actor is attached to
table GetBoundsGets this Actor's bounds
CollisionTypeGetCollisionGets this Actor's collision type
Vector GetLocationGets this Actor's location in the game world
Vector GetRelativeLocationGets this Actor's Relative Location if it's attached
Player or nilGetNetworkAuthorityGets this Actor's Network Authority Player
Rotator GetRotationGets this Actor's angle in the game world
Rotator GetRelativeRotationGets this Actor's Relative Rotation if it's attached
Vector GetForceGets this Actor's force (set by SetForce())
integer GetDimensionGets this Actor's dimension
boolean HasNetworkAuthorityReturns true if the local Player is currently the Network Authority of this Actor
boolean HasAuthorityGets if this Actor was spawned by the client side
Vector GetScaleGets this Actor's scale
Vector GetVelocityGets this Actor's current velocity
AddActorTagAdds an Unreal Actor Tag to this Actor
RemoveActorTagRemoves an Unreal Actor Tag from this Actor
table of string GetActorTagsGets all Unreal Actor Tags on this Actor
boolean WasRecentlyRenderedGets if this Actor was recently rendered on screen
float GetDistanceFromCameraGets the distance of this Actor from the Camera
float GetScreenPercentageGets the percentage of this Actor size in the screen
Inherited Paintable Functions
Base Paintablescripting-reference/classes/base-classes/paintable
ReturnsNameDescription
SetMaterialSets the material at the specified index of this Actor
SetMaterialFromCanvasSets the material at the specified index of this Actor to a Canvas object
SetMaterialFromSceneCaptureSets the material at the specified index of this Actor to a SceneCapture object
SetMaterialFromWebUISets the material at the specified index of this Actor to a WebUI object
ResetMaterialResets the material from the specified index to the original one
SetMaterialColorParameterSets a Color parameter in this Actor's material
SetMaterialScalarParameterSets a Scalar parameter in this Actor's material
SetMaterialTextureParameterSets a texture parameter in this Actor's material to an image on disk
SetMaterialVectorParameterSets a Vector parameter in this Actor's material
SetPhysicalMaterialOverrides this Actor's Physical Material with a new one
Inherited Pickable Functions
Base Pickablescripting-reference/classes/base-classes/pickable
ReturnsNameDescription
AddSkeletalMeshAttachedAttaches a Skeletal Mesh as master pose to this entity
AddStaticMeshAttachedAttaches a Static Mesh to this entity
PullUsePulls the usage of this Pickable (will start firing if this is a weapon)
ReleaseUseReleases the usage of this Pickable (will stop firing if this is a weapon)
RemoveSkeletalMeshAttachedRemoves, if it exists, a SkeletalMesh from this Pickable given its custom ID
RemoveStaticMeshAttachedRemoves, if it exists, a StaticMesh from this Pickable given its custom ID
SetAttachmentSettingsSets the Attachment Settings for this Pickable (how it attaches to the Character when Picking up)
SetCrosshairMaterialSets the crosshair material for this Pickable
SetPickableSets if this Pickable can be picked up from ground by the player
SkeletalMesh Reference GetMeshGets the name of the asset this Pickable uses
Character or nilGetHandlerGets the Character, if it exists, that's holding this Pickable
ReturnsNameDescription
ReloadForces this Weapon to reload
SetAmmoBagSets this Weapon's Ammo in the Bag
SetAmmoClipSets this Weapon's Ammo in the Clip
SetAmmoSettingsAux for setting and configuring ammo
SetAnimationFireAnimation played by the Weapon when Firing
SetAnimationCharacterFireAnimation played by the Character when Firing
SetAnimationReloadAnimation played by the Character when Reloading
Animation Reference GetAnimationReloadGets the reload animation
SetAutoReloadIf the Character will reload automatically when ammo empties
SetBulletColorSet the Bullet Color
SetAutoReloadSets if the Weapon auto reloads when ammo empties
SetBulletSettingsAux for setting and configuring the Bullet
SetCadenceSpeed of shots
SetClipCapacityCapacity of the Weapon's clip
SetDamageSet the Base Weapon's Damage
SetHandlingModeSets how the Character grabs this Weapon
SetLeftHandTransformLeft Hand Offset
SetMagazineMeshSet the mesh used when the Character reloads the weapon
SetParticlesBulletTrailParticle of the Bullet flying
SetParticlesBarrelParticle of the Fire Blast in the muzzle
SetParticlesShellsParticle of the empty bullet flying from the weapon when shooting
SetRightHandOffsetSet the offset of Right Hand
SetSightFOVMultiplierThe FOV multiplier when ADS
SetSightTransformOffset applied to align player's head to weapon's sight and rotation applied on the weapon when ADS
SetSoundDrySound when weapon has not bullet and try to shoot
SetSoundLoadSound when Loading a magazine
SetSoundUnloadSound when Unloading a magazine
SetSoundZoomingSound when Zooming
SetSoundFireSound when Shooting
SetSoundAimSound when Aiming
SetSoundFireLastBulletsSound when firing with only having X remaining bullets in the magazine
SetSpreadBase Weapon's Spread
SetRecoilBase Weapon's Recoil
SetUsageSettingsSets if the Weapon can hold to keep firing and if it needs to release to fire
SetWallbangSettingsSets how the bullet will pass through walls
integer GetAmmoBagGets this Weapon's Ammo Bag
integer GetAmmoClipGets this Weapon's Ammo Clip
integer GetAmmoToReload
HandlingModeGetHandlingMode
Animation Reference GetAnimationCharacterFire
Animation Reference GetAnimationFire
StaticMesh Reference GetMagazineMesh
Particle Reference GetParticlesBulletTrail
Particle Reference GetParticlesShells
Sound Reference GetSoundDry
Sound Reference GetSoundLoad
Sound Reference GetSoundUnload
Sound Reference GetSoundZooming
Sound Reference GetSoundAim
Sound Reference GetSoundFire
boolean GetCanHoldUse
boolean GetHoldReleaseUse
table GetBoneTransformGets a Bone Transform in world space given a bone name
integer GetBulletCount
Color GetBulletColor
float GetCadence
integer GetClipCapacity
integer GetDamage
Vector GetRightHandOffset
Vector GetLeftHandLocation
Rotator GetLeftHandRotation
Vector GetSightLocation
Rotator GetSightRotation
float GetSightFOVMultiplier
float GetSpread
float GetRecoil

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)
TypeParameterDefaultDescription
integer new_ammo

SetAmmoClip

Sets this Weapon's Ammo in the Clip
my_weapon:SetAmmoClip(new_ammo)
TypeParameterDefaultDescription
integer new_ammo

SetAmmoSettings

Aux for setting and configuring ammo
my_weapon:SetAmmoSettings(ammo_clip, ammo_bag, ammo_to_reload?, clip_capacity?)
TypeParameterDefaultDescription
integer ammo_clip
integer ammo_bag
integer ammo_to_reload?ammo_clip
integer clip_capacity?ammo_clip

SetAnimationFire

Animation played by the Weapon when Firing
my_weapon:SetAnimationFire(animation_asset_path, play_rate?)
TypeParameterDefaultDescription
Animation Reference animation_asset_path
float play_rate?1

SetAnimationCharacterFire

Animation played by the Character when Firing
my_weapon:SetAnimationCharacterFire(animation_path, play_rate?)
TypeParameterDefaultDescription
Animation Reference animation_path
float play_rate?1

SetAnimationReload

Animation played by the Character when Reloading
my_weapon:SetAnimationReload(animation_path, play_rate?)
TypeParameterDefaultDescription
Animation Reference animation_path
float play_rate?1

GetAnimationReload

Gets the reload animation

Returns Animation Reference
local ret = my_weapon:GetAnimationReload()

SetAutoReload

If the Character will reload automatically when ammo empties. Default is true
my_weapon:SetAutoReload(auto_reload)
TypeParameterDefaultDescription
boolean auto_reload

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(color)
TypeParameterDefaultDescription
Color color

SetAutoReload

Sets if the Weapon auto reloads when ammo empties
my_weapon:SetAutoReload(auto_reload)
TypeParameterDefaultDescription
boolean auto_reload

SetBulletSettings

Aux for setting and configuring the Bullet
my_weapon:SetBulletSettings(bullet_count, bullet_max_distance, bullet_velocity, bullet_color)
TypeParameterDefaultDescription
integer bullet_count1 for common weapons
> 1 for shotguns
integer bullet_max_distance
integer bullet_velocityVisuals only
Color bullet_color

SetCadence

Speed of shots
my_weapon:SetCadence(cadence)
TypeParameterDefaultDescription
float cadence1 shot at each cadence second

SetClipCapacity

Capacity of the Weapon's clip
my_weapon:SetClipCapacity(clip)
TypeParameterDefaultDescription
integer clip

SetDamage

Base Weapon's Damage

This will be multiplied by multiplier factors when hitting specific bones
my_weapon:SetDamage(damage)
TypeParameterDefaultDescription
integer damage

SetHandlingMode

Sets how the Character grabs this Weapon
my_weapon:SetHandlingMode(mode)
TypeParameterDefaultDescription
HandlingModemode

SetLeftHandTransform

Left Hand Offset
my_weapon:SetLeftHandTransform(location, rotation)
TypeParameterDefaultDescription
Vector location
Rotator rotation

SetMagazineMesh

Set the mesh used when the Character reloads the weapon.

Will drop this Mesh as an animation effect.
my_weapon:SetMagazineMesh(static_mesh_asset_path, magazine_mesh_hide_bone?)
TypeParameterDefaultDescription
StaticMesh Reference static_mesh_asset_path
string magazine_mesh_hide_bone?b_gun_magWeapon bone to hide when reloading it

SetParticlesBulletTrail

Particle of the Bullet flying
my_weapon:SetParticlesBulletTrail(particle_asset_path)
TypeParameterDefaultDescription
Particle Reference particle_asset_path

SetParticlesBarrel

Particle of the Fire Blast in the muzzle
my_weapon:SetParticlesBarrel(particle_asset_path)
TypeParameterDefaultDescription
Particle Reference particle_asset_path

SetParticlesShells

Particle of the empty bullet flying from the weapon when shooting
my_weapon:SetParticlesShells(particle_asset_path)
TypeParameterDefaultDescription
Particle Reference particle_asset_path

SetRightHandOffset

Set the Offset of Right Hand. To position relative to the camera.
my_weapon:SetRightHandOffset(offset)
TypeParameterDefaultDescription
Vector offset

SetSightFOVMultiplier

The FOV multiplier when ADS
my_weapon:SetSightFOVMultiplier(multiplier)
TypeParameterDefaultDescription
float multiplier

SetSightTransform

Offset applied to align player's head to weapon's sight and rotation applied on the weapon when ADS
my_weapon:SetSightTransform(location, rotation)
TypeParameterDefaultDescription
Vector location
Rotator rotation

SetSoundDry

Sound when weapon has not bullet and try to shoot
my_weapon:SetSoundDry(sound_asset_path, volume?, pitch?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
float volume?1
float pitch?1

SetSoundLoad

Sound when Loading a magazine
my_weapon:SetSoundLoad(sound_asset_path, volume?, pitch?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
float volume?1
float pitch?1

SetSoundUnload

Sound when Unloading a magazine
my_weapon:SetSoundUnload(sound_asset_path, volume?, pitch?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
float volume?1
float pitch?1

SetSoundZooming

Sound when Zooming
my_weapon:SetSoundZooming(sound_asset_path, volume?, pitch?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
float volume?1
float pitch?1

SetSoundFire

Sound when Shooting
my_weapon:SetSoundFire(sound_asset_path, volume?, pitch?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
float volume?1
float pitch?1

SetSoundAim

Sound when Aiming
my_weapon:SetSoundAim(sound_asset_path, volume?, pitch?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
float volume?1
float pitch?1

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?)
TypeParameterDefaultDescription
Sound Reference sound_asset_path
integer remaining_bullets_count?1The amount of remaining bullet to start playing this sound

SetSpread

Base Weapon's Spread
my_weapon:SetSpread(spread)
TypeParameterDefaultDescription
float spreadthe higher the less precision - recommended value: 20

SetRecoil

Base Weapon's Recoil
my_weapon:SetRecoil(recoil)
TypeParameterDefaultDescription
float recoil0 means no Recoil, default is 1

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)
TypeParameterDefaultDescription
boolean can_hold_use
boolean hold_release_use

SetWallbangSettings

Sets how the bullet will pass through walls
my_weapon:SetWallbangSettings(max_distance, damage_multiplier)
TypeParameterDefaultDescription
integer max_distanceMax distance to pass through another wall
float damage_multiplierDamage given if wallbangged

GetAmmoBag

Gets this Weapon's Ammo Bag

Returns integer
local ret = my_weapon:GetAmmoBag()

GetAmmoClip

Gets this Weapon's Ammo Clip

Returns integer
local ret = my_weapon:GetAmmoClip()

GetAmmoToReload



Returns integer
local ret = my_weapon:GetAmmoToReload()

GetHandlingMode



Returns HandlingMode
local ret = my_weapon:GetHandlingMode()

GetAnimationCharacterFire



Returns Animation Reference
local ret = my_weapon:GetAnimationCharacterFire()

GetAnimationFire



Returns Animation Reference
local ret = my_weapon:GetAnimationFire()

GetMagazineMesh



Returns StaticMesh Reference
local ret = my_weapon:GetMagazineMesh()

GetParticlesBulletTrail



Returns Particle Reference
local ret = my_weapon:GetParticlesBulletTrail()

GetParticlesShells



Returns Particle Reference
local ret = my_weapon:GetParticlesShells()

GetSoundDry



Returns Sound Reference
local ret = my_weapon:GetSoundDry()

GetSoundLoad



Returns Sound Reference
local ret = my_weapon:GetSoundLoad()

GetSoundUnload



Returns Sound Reference
local ret = my_weapon:GetSoundUnload()

GetSoundZooming



Returns Sound Reference
local ret = my_weapon:GetSoundZooming()

GetSoundAim



Returns Sound Reference
local ret = my_weapon:GetSoundAim()

GetSoundFire



Returns Sound Reference
local ret = my_weapon:GetSoundFire()

GetCanHoldUse



Returns boolean
local ret = my_weapon:GetCanHoldUse()

GetHoldReleaseUse



Returns boolean
local ret = my_weapon:GetHoldReleaseUse()

GetBoneTransform

Gets a Bone Transform in world space given a bone name

Returns table (in the format { Location: Vector, Rotation: Rotator })
local ret = my_weapon:GetBoneTransform(bone_name)
TypeParameterDefaultDescription
string bone_name

GetBulletCount



Returns integer
local ret = my_weapon:GetBulletCount()

GetBulletColor



Returns Color
local ret = my_weapon:GetBulletColor()

GetCadence



Returns float
local ret = my_weapon:GetCadence()

GetClipCapacity



Returns integer
local ret = my_weapon:GetClipCapacity()

GetDamage



Returns integer
local ret = my_weapon:GetDamage()

GetRightHandOffset



Returns Vector
local ret = my_weapon:GetRightHandOffset()

GetLeftHandLocation



Returns Vector
local ret = my_weapon:GetLeftHandLocation()

GetLeftHandRotation



Returns Rotator
local ret = my_weapon:GetLeftHandRotation()

GetSightLocation



Returns Vector
local ret = my_weapon:GetSightLocation()

GetSightRotation



Returns Rotator
local ret = my_weapon:GetSightRotation()

GetSightFOVMultiplier



Returns float
local ret = my_weapon:GetSightFOVMultiplier()

GetSpread



Returns float
local ret = my_weapon:GetSpread()

GetRecoil



Returns float
local ret = my_weapon:GetRecoil()

🚀 Events

Inherited Entity Events
Base Entityscripting-reference/classes/base-classes/Entity
NameDescription
SpawnTriggered when an Entity is spawned/created
DestroyTriggered when an Entity is destroyed
ValueChangeTriggered when an Entity has a value changed with :SetValue()
ClassRegisterTriggered when a new Class is registered with the Inheriting System
Inherited Actor Events
Base Actorscripting-reference/classes/base-classes/actor
NameDescription
DimensionChangeTriggered when an Actor changes it's dimension
Inherited Pickable Events
Base Pickablescripting-reference/classes/base-classes/pickable
NameDescription
DropWhen a Character drops this Pickable
HitWhen this Pickable hits something
InteractTriggered when a Character interacts with this Pickable (i.e. tries to pick it up)
PickUpTriggered When a Character picks this up
PullUseTriggered when a Character presses the use button for this Pickable (i.e. clicks left mouse button with this equipped)
ReleaseUseTriggered when a Character releases the use button for this Pickable (i.e. releases left mouse button with this equipped)
NameDescription
FireTriggered when Weapon fires (this will be triggered for each shot)
ReloadWhen a Weapon is reloaded, optionally by a Character
AmmoClipChangeWhen the Ammo Clip is changed, by reloading or manually setting through scripting
AmmoBagChangeWhen the Ammo Bag is changed, by reloading or manually setting through scripting

Fire

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

end)
TypeArgumentDescription
Weapon self
Character shooter

Reload

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

end)
TypeArgumentDescription
Weapon self
Character character
integer ammo_to_reload

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)

end)
TypeArgumentDescription
Weapon self
integer old_ammo_clip
integer new_ammo_clip

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)

end)
TypeArgumentDescription
Weapon self
integer old_ammo_clip
integer new_ammo_clip