diff --git a/_build/Noir.lua b/_build/Noir.lua
index 1c3310c..739638a 100644
--- a/_build/Noir.lua
+++ b/_build/Noir.lua
@@ -1357,6 +1357,30 @@ function Noir.Classes.ObjectClass:Heal(amount)
self:SetData(health + amount, false, false)
end
+--[[
+ Get this fire's data (if fire).
+]]
+---@return boolean isLit
+function Noir.Classes.ObjectClass:GetFireData()
+ local isLit, success = server.getFireData(self.ID)
+
+ if not success then
+ Noir.Libraries.Logging:Error("Object", "server.getFireData(...) was unsuccessful. Returning false.", false)
+ return false
+ end
+
+ return isLit
+end
+
+--[[
+ Set this fire's data (if fire).
+]]
+---@param isLit boolean
+---@param isExplosive boolean
+function Noir.Classes.ObjectClass:SetFireData(isLit, isExplosive)
+ server.setFireData(self.ID, isLit, isExplosive)
+end
+
-------------------------------
-- // Intellisense
-------------------------------
@@ -3015,6 +3039,178 @@ function Noir.Services.ObjectService:RemoveObject(object_id)
self:_RemoveObjectSavedata(object_id)
end
+--[[
+ Spawn an object.
+]]
+---@param objectType SWObjectTypeEnum
+---@param position SWMatrix
+---@return NoirObject|nil
+function Noir.Services.ObjectService:SpawnObject(objectType, position)
+ -- Spawn the object
+ local object_id, success = server.spawnObject(position, objectType)
+
+ if not success then
+ Noir.Libraries.Logging:Error("ObjectService", ":SpawnObject() failed due to server.spawnObject() being unsuccessful.", false)
+ return
+ end
+
+ -- Wrap object in a class
+ local object = self:GetObject(object_id)
+
+ if not object then
+ Noir.Libraries.Logging:Error("ObjectService", ":GetObject() returned nil in :SpawnObject().", false)
+ return
+ end
+
+ -- Return
+ return object
+end
+
+--[[
+ Spawn a character.
+]]
+---@param outfitType SWOutfitTypeEnum
+---@param position SWMatrix
+---@return NoirObject|nil
+function Noir.Services.ObjectService:SpawnCharacter(outfitType, position)
+ -- Spawn the character
+ local object_id, success = server.spawnCharacter(position, outfitType)
+
+ if not success then
+ Noir.Libraries.Logging:Error("ObjectService", ":SpawnCharacter() failed due to server.spawnCharacter() being unsuccessful.", false)
+ return
+ end
+
+ -- Wrap object in a class
+ local object = self:GetObject(object_id)
+
+ if not object then
+ Noir.Libraries.Logging:Error("ObjectService", ":GetObject() returned nil in :SpawnCharacter().", false)
+ return
+ end
+
+ -- Return
+ return object
+end
+
+--[[
+ Spawn a creature.
+]]
+---@param creatureType SWCreatureTypeEnum
+---@param position SWMatrix
+---@param sizeMultiplier number|nil Default: 1
+---@return NoirObject|nil
+function Noir.Services.ObjectService:SpawnCreature(creatureType, position, sizeMultiplier)
+ -- Spawn the creature
+ local object_id, success = server.spawnCreature(position, creatureType, sizeMultiplier or 1)
+
+ if not success then
+ Noir.Libraries.Logging:Error("ObjectService", ":SpawnCreature() failed due to server.spawnCreature() being unsuccessful.", false)
+ return
+ end
+
+ -- Wrap object in a class
+ local object = self:GetObject(object_id)
+
+ if not object then
+ Noir.Libraries.Logging:Error("ObjectService", ":GetObject() returned nil in :SpawnCreature().", false)
+ return
+ end
+
+ -- Return
+ return object
+end
+
+--[[
+ Spawn an animal.
+]]
+---@param animalType SWAnimalTypeEnum
+---@param position SWMatrix
+---@param sizeMultiplier number|nil Default: 1
+---@return NoirObject|nil
+function Noir.Services.ObjectService:SpawnAnimal(animalType, position, sizeMultiplier)
+ -- Spawn the animal
+ local object_id, success = server.spawnAnimal(position, animalType, sizeMultiplier or 1)
+
+ if not success then
+ Noir.Libraries.Logging:Error("ObjectService", ":SpawnAnimal() failed due to server.spawnAnimal() being unsuccessful.", false)
+ return
+ end
+
+ -- Wrap object in a class
+ local object = self:GetObject(object_id)
+
+ if not object then
+ Noir.Libraries.Logging:Error("ObjectService", ":GetObject() returned nil in :SpawnAnimal().", false)
+ return
+ end
+
+ -- Return
+ return object
+end
+
+--[[
+ Spawn an equipment item.
+]]
+---@param equipmentType SWEquipmentTypeEnum
+---@param position SWMatrix
+---@param int integer
+---@param float integer
+---@return NoirObject|nil
+function Noir.Services.ObjectService:SpawnEquipment(equipmentType, position, int, float)
+ -- Spawn the equipment
+ local object_id, success = server.spawnEquipment(position, equipmentType, int, float)
+
+ if not success then
+ Noir.Libraries.Logging:Error("ObjectService", ":SpawnEquipment() failed due to server.spawnEquipment() being unsuccessful.", false)
+ return
+ end
+
+ -- Wrap object in a class
+ local object = self:GetObject(object_id)
+
+ if not object then
+ Noir.Libraries.Logging:Error("ObjectService", ":GetObject() returned nil in :SpawnEquipment().", false)
+ return
+ end
+
+ -- Return
+ return object
+end
+
+--[[
+ Spawn a fire.
+]]
+---@param position SWMatrix
+---@param size number 0 - 10
+---@param magnitude number -1 explodes instantly. Nearer to 0 means the explosion takes longer to happen. Must be below 0 for explosions to work.
+---@param isLit boolean Lights the fire. If the magnitude is >1, this will need to be true for the fire to first warm up before exploding.
+---@param isExplosive boolean
+---@param parentVehicleID integer|nil
+---@param explosionMagnitude number The size of the explosion (0-5)
+---@return NoirObject|nil
+function Noir.Services.ObjectService:SpawnFire(position, size, magnitude, isLit, isExplosive, parentVehicleID, explosionMagnitude)
+ -- Spawn the fire
+ local object_id, success = server.spawnFire(position, size, magnitude, isLit, isExplosive, parentVehicleID or 0, explosionMagnitude)
+
+ if not success then
+ Noir.Libraries.Logging:Error("ObjectService", ":SpawnFire() failed due to server.spawnFire() being unsuccessful.", false)
+ return
+ end
+
+ -- Wrap object in a class
+ local object = self:GetObject(object_id)
+
+ if not object then
+ Noir.Libraries.Logging:Error("ObjectService", ":GetObject() returned nil in :SpawnFire().", false)
+ return
+ end
+
+ -- Return
+ return object
+end
+
+
----------------------------------------------
-- // [File] ..\src\Noir\Callbacks.lua
----------------------------------------------
@@ -3341,7 +3537,7 @@ end
The current version of Noir.
Follows [Semantic Versioning.](https://semver.org)
]]
-Noir.Version = "1.3.3"
+Noir.Version = "1.3.4"
--[[
This event is called when the framework is started.