engine
This namespace provides methods that allow you to interact with the iw3 engine through Anvil.
Methods
engine.addEventListener(name, callable)
engine.addEventListener(name, callable)event- The type of event you want to listen forcallable- A defined function or a lambda
This method registers a eventlistener for the specified event, that is a function that will be executed every time the event occurs.
Example:
function hi()
print("whats up")
end
engine.addEventListener("render", hi);This will print whats up every time a new frame is rendered.
Available Events
render- Emitted when a new frame is being renderedonBeforeEndScene- Emitted right before a new frame is being renderedonAfterEndScene- Emitted after a new frame has been renderedonBeforeCL_WritePacket- Emitted right before the game sends a packet to the serveronAfterCL_CreateNewCommands- Emitted after a new user command has been createdonLoad- Emitted when you load your positiononSave- Emitted when you save your positiononBounce- Emitted when you bounce
engine.removeEventListener(name)
engine.removeEventListener(name)event- The name of the event you dont want to listen/react to anymore
Removes a previously attachted event listener by the name of the event.
Example:
engine.removeEventListener("render")engine.removeAllEventListeners()
engine.removeAllEventListeners()Removes all attached event listeners for the current script.
Example:
engine.removeAllEventListeners()engine.getServerName()
engine.getServerName()Returns the name of the server you're currently connected to.
Example:
--Suppose you play on 3xP
local name = engine.getServerName()
print(name) -- 3xP' Codjumperengine.getPlayerState()
engine.getPlayerState()Returns the predicted playerState.
Example:
local playerState = engine.getPlayerState()
print(playerState.Origin.x)engine.getRefDef()
engine.getRefDef()Returns the refDef object.
Example:
local refdef = engine.getRefDef()
print(refdef.width) -- CoD4 window widthengine.getCG()
engine.getCG()Returns the cg object.
Example:
local cg = engine.getCG()
print(cg.ClientNum) -- Your client numberengine.getDvar(dvarName)
engine.getDvar(dvarName)Returns the dvar you requested. You can then change the values of the dvar with methods.
Example:
local sens = engine.getDvar("sensitivity")
sens:setFloat(1.5) -- sets sensitivity to 1.5engine.getUserCmd()
engine.getUserCmd()Returns the latest user command.
Example:
local usercmd = engine.getUserCmd();
usercmd:jump(); -- Makes you jump
usercmd:shoot(); -- Shoots your weapon onceengine.getPreviousUserCmd()
engine.getPreviousUserCmd()Returns the previous user command. Use previous user cmd's for silent stuff.
Example:
local usercmd = engine.getPreviousUserCmd();
usercmd:jump(); -- Makes you jump
usercmd:shoot(); -- Shoots your weapon onceengine.execCommand(command)
engine.execCommand(command)command- A console command to execute
Executes the given command
Example:
engine.execCommand("say hi from lua");engine.getPlayerList()
engine.getPlayerList()Returns a list of players in the server as a list of clientEntity's
Example:
local players = engine.getPlayerList()
-- Print the position of all players right now
for i, entity in ipairs(players) do
print(entity.origin:toString())
endengine.getLocalClientEntity()
engine.getLocalClientEntity()Returns the clientEntity for yourself.
Example:
local me = engine.getLocalClientEntity()
-- Prints your team
print("I am in team " .. tostring(me.team))engine.getClosestPlayer()
engine.getClosestPlayer()Returns the closest player as a clientEntity
Example:
local closestPlayer = engine.getClosestPlayer()
-- Makes you look at the closest player
player.lookAtPosition(closestPlayer.origin)engine.isVisible(target)
engine.isVisible(target)target- The position as a Vec3 to check if it is visible
Returns true if target is visible from your currnent position, false otherwise.
Example:
-- True if the map origin is visible from your current position
engine.isVisible(Vec3:new(0, 0, 0))
-- True if you can see the closest player
engine.isVisible(engine.getClosestPlayer())engine.trace(start, end)
engine.trace(start, end)Performs a ray trace from start to end and returns a trace object.
Example:
local pointA = Vec3:new(0, 0, 0)
local pointB = Vec3:new(500, 500, 1000)
local trace = engine.trace(pointA, pointB)
print("Hit something at: " .. trace.getHitLocation(pointA, pointB))engine.getForwardVector(viewangles)
engine.getForwardVector(viewangles)Obtain the forward vector as a Vec3 from the given viewangles as a Vec3
Example:
local forward = engine.getForwardVector(player.getView())
print("Forward: " .. forward:toString())engine.angle2short(angle)
engine.angle2short(angle)Converts the decimal angle to a 2 byte integer representation.
Example:
-- Prints 16384
print("90 degree as short: " .. tostring(engine.angle2short(90.0)))engine.short2angle(short)
engine.short2angle(short)Converts a 2 byte integer representation of an angle back to a float.
Example:
-- Prints 90.0
print("16384 as angle: " .. tostring(engine.short2angle(16384)))engine.getWindowSize()
engine.getWindowSize()Returns the CoD4 window size as a Vec2
Example:
-- Prints your window dimensions
print("Window dimensions: " .. engine.getWindowSize():toString())engine.notify(message)
engine.notify(message)Displays a notification on the right hand side of the screen with the given message.
Example:
-- Display notification
engine.notify("Test toast")engine.disconnect()
engine.disconnect()Disconnect from current server.
Example:
-- Disconnects
engine.disconnect()engine.setStat(id, value)
engine.setStat(id, value)Sets a stat id to a given value (Equivalent of GSC player setStat).
id- The id of the stat
value- The value you wish to set
Example:
-- Set ruby currency on Vistic CodJumper
engine.setStat(2392, 99999)engine.isVisible(target)
engine.isVisible(target)target- The position as a Vec3 to check if it is visible
Returns true if target is visible from your currnent position, false otherwise.
Example:
-- True if the map origin is visible from your current position
engine.isVisible(Vec3:new(0, 0, 0))
-- True if you can see the closest player
engine.isVisible(engine.getClosestPlayer())engine.getScriptId()
engine.getScriptId()Returns the id of the current script. Use this to uniquely identify your script. Useful for ImGui Window ID's etc.
Example:
print("script id: " .. engine.getScriptId())Last updated