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' Codjumper
engine.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 width
engine.getCG()
engine.getCG()
Returns the cg object.
Example:
local cg = engine.getCG()
print(cg.ClientNum) -- Your client number
engine.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.5
engine.getUserCmd()
engine.getUserCmd()
Returns the latest user command.
Example:
local usercmd = engine.getUserCmd();
usercmd:jump(); -- Makes you jump
usercmd:shoot(); -- Shoots your weapon once
engine.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 once
engine.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())
end
engine.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