From Multi Theft Auto: Wiki

This function creates a projectile of the specified type on the specified coordinates.

[[{{{image}}}|link=]] Note:
  • Model argument is not synchronized between clients. Clients differs from local player see always standard projectile model.
  • Target argument can only be defined as a player or another projectile.


projectile createProjectile ( element creator, int weaponType [, float posX, float posY, float posZ, float force = 1.0, element target = nil, float rotX, float rotY, float rotZ, float velX, float velY, float velZ, int model ] )

OOP Syntax Help! I don't understand this!

Method: Projectile(...)

Required Arguments

  • creator: The element representing creator of the projectile. In case you want the projectile to be synced for everybody creator must be the local player or his vehicle.
  • weaponType: int representing the projectile weaponType (characteristics). Valid IDs are:
ID Name/Description
16 Grenade
17 Tear Gas Grenade
18 Molotov
19 Rocket (simple)
20 Rocket (heat seeking)
21 Air Bomb
39 Satchel Charge
58 Flare from hydra (doesn't work)

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • posX, posY, posZ: float starting coordinates for the projectile. They are coordinates of creator by default.
  • force: float representing the starting force for throwable projectiles.
  • target: element target used for heat seeking rockets.
  • rotX, rotY, rotZ: float starting rotation for the projectile.
  • velX, velY, velZ: float starting velocity for the projectile.
  • model: Integer representing the projectile's model, uses default model for weaponType if not specified.


Returns a projectile element if projectile creation was successful. Returns false if unable to create a projectile (wrong weapon ID or projectiles limit was reached).


This example makes a rocket minigun (minigun shooting with rockets).

-- This function gets triggered everytime player shoots.
function onClientPlayerWeaponFireFunc(weapon,ammo,ammoInClip,hitX,hitY,hitZ,hitElement)
	if weapon == 38 then -- if source is a local player and he uses minigun...
                x,y,z = getElementPosition(getLocalPlayer())
		if not createProjectile(getLocalPlayer(),19,x,y,z,200) then -- then we either create a projectile...
			outputChatBox ( "Rocket minigun overheated! Give it a rest pal!", source ) -- or if projectile limit is reached we output player a chat message

-- Don't forget to add the onClientPlayerWeaponFireFunc function as a handler for onClientPlayerWeaponFire.
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), onClientPlayerWeaponFireFunc)

This example code shoots a projectile from your occupied vehicle that travels in the direction your vehicle is facing when you press vehicle_fire (left mouse button with default controls)

function shootProjectile()
	local vehicle = getPedOccupiedVehicle(localPlayer)
	-- Only create projectile if we are inside a vehicle
		local x, y, z = getElementPosition(vehicle)
		createProjectile(vehicle, 19, x, y, z)

bindKey("vehicle_fire", "down", shootProjectile)


Issue ID Description
#8132 Projectile target only allows player element (and a projectile?)
#5072 createProjectile creates one projectile for every person in the vehicle

See also