Module argus
Advanced detections/drawing library
World Draw Fields
u32color | Integer color value used in Argus functions |
World Draw Structures
rgbFill | Structure used for old Argus timed draws |
World Draw Functions
Argus.addArrowFilled | Draw a filled arrow on the ground at world coordinates for this frame. |
Argus.addChevronFilled | Draw a filled chevron on the ground at world coordinates for this frame. |
Argus.addCircleFilled | Draw a filled circle on the ground at world coordinates for this frame. |
Argus.addConeFilled | Draw a timed cone on the ground at world coordinates for this frame. |
Argus.addCrossFilled | Draw a filled cross on the ground at world coordinates for this frame. |
Argus.addDonutFilled | Draw a filled donut (torus) on the ground at world coordinates for this frame. |
Argus.addLineFilled | Draw a timed line between two world coordinate positions for this frame. |
Argus.addRectFilled | Draw a filled rectangle on the ground at world coordinates for this frame. |
Argus.addTimedCircleFilled | THIS FUNCTION IS DEPRECATED. |
Argus.addTimedConeFilled | THIS FUNCTION IS DEPRECATED. |
Argus.addTimedCrossFilled | THIS FUNCTION IS DEPRECATED. |
Argus.addTimedDonutFilled | THIS FUNCTION IS DEPRECATED. |
Argus.addTimedLineFilled | THIS FUNCTION IS DEPRECATED. |
Argus.addTimedRectFilled | THIS FUNCTION IS DEPRECATED. |
Argus.deleteTimedShape | Deletes a timed draw given a uuid |
Argus2.addTimedArrowFilled | Draw a filled arrow on the ground at world coordinates for a specified duration. |
Argus2.addTimedChevronFilled | Draw a filled chevron on the ground at world coordinates for a specified duration. |
Argus2.addTimedCircleFilled | Draw a filled circle on the ground at world coordinates for a specified duration. |
Argus2.addTimedConeFilled | Draw a timed cone on the ground at world coordinates for a specified duration. |
Argus2.addTimedCrossFilled | Draw a filled cross on the ground at world coordinates for a specified duration. |
Argus2.addTimedDonutFilled | Draw a filled donut (torus) on the ground at world coordinates for a specified duration. |
Argus2.addTimedLineFilled | Draw a timed line between two world coordinate positions for a specified duration. |
Argus2.addTimedRectFilled | Draw a filled rectangle on the ground at world coordinates for a specified duration. |
Class ShapeDrawer
Argus2.ShapeDrawer:new | Create a new shape drawer object. |
ShapeDrawer.colorEnd | |
ShapeDrawer.colorMid | |
ShapeDrawer.colorOutline | |
ShapeDrawer.colorStart | |
ShapeDrawer.gradientIntensity | |
ShapeDrawer.gradientMinOpacity | |
ShapeDrawer.outlineThickness | |
ShapeDrawer.segments | |
ShapeDrawer:addArrow | Draw an arrow on the ground for this frame. |
ShapeDrawer:addChevron | Draw a chevron on the ground for this frame. |
ShapeDrawer:addCircle | Draw a filled circle on the ground at world coordinates for this frame. |
ShapeDrawer:addCone | Draw a cone on the ground at world coordinates for this frame. |
ShapeDrawer:addCross | Draw a cross on the ground at world coordinates for this frame. |
ShapeDrawer:addDonut | Draw a donut on the ground at world coordinates for this frame. |
ShapeDrawer:addLine | Draw a line between two points on the ground for this frame. |
ShapeDrawer:addRect | Draw a filled rectangle on the ground at world coordinates for this frame. |
ShapeDrawer:addTimedArrow | Draw an arrow on the ground for timeout milliseconds. |
ShapeDrawer:addTimedArrowOnEnt | Draw an arrow on the ground for timeout milliseconds. |
ShapeDrawer:addTimedChevron | Draw a chevron on the ground for timeout milliseconds. |
ShapeDrawer:addTimedChevronOnEnt | Draw a chevron on an entity for timeout milliseconds. |
ShapeDrawer:addTimedCircle | Draw a filled circle on the ground at world coordinates for timeout milliseconds. |
ShapeDrawer:addTimedCircleOnEnt | Draw a filled circle on an entity for timeout milliseconds. |
ShapeDrawer:addTimedCone | Draw a cone on the ground at world coordinates for timeout milliseconds. |
ShapeDrawer:addTimedConeOnEnt | Draw a cone on an entity for timeout milliseconds. |
ShapeDrawer:addTimedCross | Draw a cross on the ground at world coordinates for timeout milliseconds. |
ShapeDrawer:addTimedCrossOnEnt | Draw a cross on an entity for timeout milliseconds. |
ShapeDrawer:addTimedDonut | Draw a donut on the ground at world coordinates for timeout milliseconds. |
ShapeDrawer:addTimedDonutOnEnt | Draw a donut on an entity for timeout milliseconds. |
ShapeDrawer:addTimedLine | Draw a line between two points on the ground for timeout milliseconds. |
ShapeDrawer:addTimedRect | Draw a filled rectangle on the ground at world coordinates for timeout milliseconds. |
ShapeDrawer:addTimedRectOnEnt | Draw a filled rectangle on an entity for timeout milliseconds. |
ShapeDrawer:setGradient |
Detection Structures
DirectionalAOE | Structure for Directional AOEs that are usually originating from an entity |
GroundAOE | Structure for Ground AOEs that are not usually attached to any entity |
aoeAnimationInfo | Structure that contains information about an aoe's animation. |
aoeEffectInfo | Structure that contains information about an omen/telegraph. |
castType | An integer to identify some aoe types. |
Detection Functions
Argus.forceMisdirectionMovement | Normal movement options in minion will not move the player when under misdirection. |
Argus.getCurrentAOEs | Returns a merged list of GroundAOEs and DirectionalAOEs. |
Argus.getCurrentDirectionalAOEs | Returns list of current AOEs that are cast on the ground where each key is the entityID source, and value is the DirectionalAOE structure. |
Argus.getCurrentGroundAOEs | Returns list of current AOEs that are on the ground where each key is the entityID source, and value is the DirectionalAOE. |
Argus.getCurrentTethers | Returns table where each key is number entityID and each value is table tethers. |
Argus.getEntityAuras | Returns the current auras on the target entity. |
Argus.getEntityModel | Sometimes contentid isn't enough to distinguish an entity (such as housing target dummies), in which case this function will provide a subcontentid. |
Argus.getMisdirectionHeading | This is for buffs where the finger points above the players head in a direction, and the player is forced to go in that direction. |
Argus.getSpellAOEInfo | Returns a structure similar to DirectionalAOE or GroundAOE but without any instance specific data. |
Argus.getTethersOnEnt | Returns a list of tethers that are attached to entity. |
Argus.getWaymarkInfo | Returns information about the marker. |
Argus.isEntityVisible | Returns whether or not the entity is visible to the player. |
Argus.registerOnAOECreateFunc | Registers func into on aoe create func list. |
Argus.registerOnEntityCast | Registers func into entity cast func list. |
Argus.registerOnEntityChannel | Registers func into entity channel func list. |
Argus.registerOnEventObjectScript2Func | Registers func into on event object script2 func list. |
Argus.registerOnEventObjectScriptFunc | Registers func into on event object script func list. |
Argus.registerOnFloorChangeFunc | Registers func into on floor change func list. |
Argus.registerOnMapEffect | Registers func into on map effect func list. |
Argus.registerOnMarkerAdd | Registers func into marker func list, and func will get called any time there is an overhead marker added to an entity. |
Argus.registerOnTetherChange | Registers func into on tether change func list. |
Argus.setMisdirectionHeading | This is for buffs where the finger points above the players head in a direction, and the player can adjust the direction of the finger with their movement. |
onAOECreateFunc | |
onEntityCastFunc | Cast position may be nil if the cast was not casted at a specific position. |
onEntityChannelFunc | |
onEventObjectScript2Func | |
onEventObjectScriptFunc | |
onFloorChangeFunc | |
onMapEffectFunc | The numbers/identifiers sent to this function are simply numbers to indicate which pattern it is. |
onMarkerAddFunc | |
onTetherChangeFunc |
World Draw Fields
- u32color
-
Integer color value used in Argus functions
- u32color Use GUI:ColorConvertFloat4ToU32(r, g, b, a) to get this U32 value. The r, g, b, a values are all [0,1], not [0,255].
World Draw Structures
- rgbFill
-
Structure used for old Argus timed draws
Fields:
- r number [0,1]
- g number [0,1]
- b number [0,1]
- a number [0,1]
World Draw Functions
- Argus.addArrowFilled (x, y, z, length, baseWidth, tipLength, tipWidth, heading, colorFill[, colorOutline][, outlineThickness=1.0][, gradientIntensity=3][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled arrow on the ground at world coordinates for this frame.
The arrow base/bottom is centered on x,y,z, and then rotated such that there is an arrow facing the specified heading.
Parameters:
- x number
- y number
- z number
- length number Length of the base rectangle of the arrow.
- baseWidth number Width of the base rectangle of the arrow.
- tipLength number Length of the tip triangle of the arrow.
- tipWidth number Width of the tip triangle of the arrow.
- heading number The direction the arrow will point towards in radians.
- colorFill u32color Fill Color of rectangle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 3)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addChevronFilled (x, y, z, length, thickness, heading, colorFill[, colorOutline][, outlineThickness=1.0][, gradientIntensity=3][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled chevron on the ground at world coordinates for this frame.
The chevron base/bottom is centered on x,y,z, and then rotated such that it is pointing towards specified heading.
Parameters:
- x number
- y number
- z number
- length number
- thickness number Width of the base rectangle of the arrow.
- heading number The direction the chevron will point towards in radians.
- colorFill u32color Fill Color of rectangle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 3)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addCircleFilled (x, y, z, radius, segments, colorFill[, colorOutline][, outlineThickness=1.0][, gradientIntensity=3][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled circle on the ground at world coordinates for this frame.
Parameters:
- x number
- y number
- z number
- radius number Radius of the circle in yalms.
- segments int Number of segments for the circle. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments.
- colorFill u32color Fill Color of circle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 3)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addConeFilled (x, y, z, radius, angle, heading, segments, colorFill[, colorOutline][, outlineThickness=1.0][, gradientIntensity=4][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a timed cone on the ground at world coordinates for this frame.
The cone originates from x,y,z, and will go in the direction of heading.
Parameters:
- x number
- y number
- z number
- radius number If the cone was a circle instead, this gives the radius of that circle. Basically this is the length of the cone.
- angle number Arc angle of the cone in radians. Basically, this is how wide the cone is.
- heading number The direction the cone will face in radians.
- segments int Generally only 30 segments is needed to draw a cone that looks round. For performance reasons I would recommend not going above 30 segments.
- colorFill u32color Fill Color of rectangle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 4)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addCrossFilled (x, y, z, length, width, heading, colorFill[, colorOutline][, outlineThickness=1.0][, gradientIntensity=4][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled cross on the ground at world coordinates for this frame.
The cross is centered on x,y,z, and then rotated such that there is a rectangle facing the specified heading.
Parameters:
- x number
- y number
- z number
- length number
- width number
- heading number The direction the cross will face in radians.
- colorFill u32color Fill Color of rectangle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 4)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addDonutFilled (x, y, z, radiusInner, radiusOuter, segments, colorFill[, colorOutline][, outlineThickness=1.0][, gradientIntensity=2][, gradientMinOpacity=0.15][, oldDraw=false])
-
Draw a filled donut (torus) on the ground at world coordinates for this frame.
Parameters:
- x number
- y number
- z number
- radiusInner number Inner radius of the donut.
- radiusOuter number Outer radius of the donut
- segments int Number of segments for the circle. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments.
- colorFill u32color Fill Color of rectangle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 2)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.15)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addLineFilled (x1, y1, z1, x2, y2, z2, colorFill, outlineThickness, endpointThickness)
-
Draw a timed line between two world coordinate positions for this frame.
Parameters:
- x1 number
- y1 number
- z1 number
- x2 number
- y2 number
- z2 number
- colorFill u32color
- outlineThickness number
- endpointThickness number
- Argus.addRectFilled (x, y, z, length, width, heading, colorFill[, colorOutline][, outlineThickness][, ignoreBase=false][, gradientIntensity=4][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled rectangle on the ground at world coordinates for this frame.
The rectangle originates from x,y,z, and will go width/2 yalms out in each direction up and down, then length yalms out in the direction of heading.
Parameters:
- x number
- y number
- z number
- length number
- width number
- heading number The direction the rectangle will face in radians.
- colorFill u32color Fill Color of rectangle. If argument is nil, then no fill will be drawn.
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (optional)
- ignoreBase bool If true, Argus will not draw the outline connecting the base of the rectangle. Useful for drawing crosses, however Argus already has a function for that, see Argus.addCrossFilled. (default false)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 4)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
- Argus.addTimedCircleFilled (timeout, x, y, z, radius, segments, rgbFill, alphaMin, alphaMax[, delay=0][, entityAttachID][, colorOutline][, outlineThickness=1.0])
-
THIS FUNCTION IS DEPRECATED. Use Argus2.addTimedCircleFilled instead.
Draw a filled circle on the ground at world coordinates for a specified duration.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- radius number Radius of the circle in yalms.
- segments int Number of segments for the circle. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments.
- rgbFill rgbFill
- alphaMin number Starting alpha value [0,1]
- alphaMax number Ending alpha value, Argus will gradually increase from alphaMin to alphaMax over the duration of the draw. [0,1]
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus.addTimedConeFilled (timeout, x, y, z, radius, angle, heading, segments, rgbFill, alphaMin, alphaMax[, delay=0][, entityAttachID][, targetAttachID][, colorOutline][, outlineThickness=1.0])
-
THIS FUNCTION IS DEPRECATED. Use Argus2.addTimedConeFilled instead.
Draw a filled cone on the ground at world coordinates for a specified duration.
The cone originates from x,y,z, and will go in the direction of heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- radius number If the cone was a circle instead, this gives the radius of that circle. Basically this is the length of the cone.
- angle number Arc angle of the cone in radians. Basically, this is how wide the cone is.
- heading number The direction the cone will face in radians.
- segments int Generally only 30 segments is needed to draw a cone that looks round. For performance reasons I would recommend not going above 30 segments.
- rgbFill rgbFill
- alphaMin number Starting alpha value [0,1]
- alphaMax number Ending alpha value, Argus will gradually increase from alphaMin to alphaMax over the duration of the draw. [0,1]
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the cone will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus.addTimedCrossFilled (timeout, x, y, z, length, width, heading, rgbFill, alphaMin, alphaMax[, delay=0][, entityAttachID][, targetAttachID][, colorOutline][, outlineThickness=1.0])
-
THIS FUNCTION IS DEPRECATED. Use Argus2.addTimedCrossFilled instead.
Draw a filled cross on the ground at world coordinates for a specified duration.
The cross is centered on x,y,z, and then rotated such that there is a rectangle facing the specified heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- length number
- width number
- heading number The direction the cross will face in radians.
- rgbFill rgbFill
- alphaMin number Starting alpha value [0,1]
- alphaMax number Ending alpha value, Argus will gradually increase from alphaMin to alphaMax over the duration of the draw. [0,1]
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the cone will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus.addTimedDonutFilled (timeout, x, y, z, radiusInner, radiusOuter, segments, rgbFill, alphaMin, alphaMax[, delay=0][, entityAttachID][, colorOutline][, outlineThickness=1.0])
-
THIS FUNCTION IS DEPRECATED. Use Argus2.addTimedDonutFilled instead.
Draw a filled donut (torus) on the ground at world coordinates for a specified duration.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- radiusInner number Inner radius of the donut.
- radiusOuter number Outer radius of the donut
- segments int Number of segments for the circle. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments.
- rgbFill rgbFill
- alphaMin number Starting alpha value [0,1]
- alphaMax number Ending alpha value, Argus will gradually increase from alphaMin to alphaMax over the duration of the draw. [0,1]
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus.addTimedLineFilled (timeout, x1, y1, z1, x2, y2, z2[, delay=0], rgbFill, outlineThickness, endpointThickness)
-
THIS FUNCTION IS DEPRECATED. Use Argus2.addTimedLineFilled instead.
Draw a filled line between two world coordinate positions for a specified duration.
Parameters:
- timeout int Duration of the draw
- x1 number
- y1 number
- z1 number
- x2 number
- y2 number
- z2 number
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- rgbFill rgbFill Color of line
- outlineThickness number
- endpointThickness number
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus.addTimedRectFilled (timeout, x, y, z, length, width, heading, rgbFill, alphaMin, alphaMax[, delay=0][, entityAttachID][, targetAttachID[, keepLength=false]][, colorOutline][, outlineThickness=1.0])
-
THIS FUNCTION IS DEPRECATED. Use Argus2.addTimedRectFilled instead.
Draws a filled rectangle on the ground for a specified duration.
The rectangle originates from x,y,z, and will go width/2 yalms out in each direction up and down, then length yalms out in the direction of heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- length number
- width number
- heading number The direction the rectangle will face in radians.
- rgbFill rgbFill
- alphaMin number Starting alpha value [0,1]
- alphaMax number Ending alpha value, Argus will gradually increase from alphaMin to alphaMax over the duration of the draw. [0,1]
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the rectangle will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. (optional)
- keepLength bool If specified with targetAttach, then the length won't be adjusted to the target, the length will stay constant. (default false)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus.deleteTimedShape ([uuid=nil])
-
Deletes a timed draw given a uuid
Parameters:
- uuid string If nil, all timed draws will be deleted (default nil)
- Argus2.addTimedArrowFilled (timeout, x, y, z, length, baseWidth, tipLength, tipWidth, heading, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, targetAttachID][, colorOutline][, outlineThickness=1.0][, gradientIntensity=3][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled arrow on the ground at world coordinates for a specified duration.
The arrow base/bottom is centered on x,y,z, and then rotated such that there is an arrow facing the specified heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- length number Length of the base rectangle of the arrow.
- baseWidth number Width of the base rectangle of the arrow.
- tipLength number Length of the tip triangle of the arrow.
- tipWidth number Width of the tip triangle of the arrow.
- heading number The direction the arrow will point towards in radians.
- colorStart u32color color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z,h will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the arrow will point from it's source position (either specified or attached to entity) -> the position of targetAttach entity (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 3)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedChevronFilled (timeout, x, y, z, length, thickness, heading, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, targetAttachID][, colorOutline][, outlineThickness=1.0][, gradientIntensity=3][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled chevron on the ground at world coordinates for a specified duration.
The chevron base/bottom is centered on x,y,z, and then rotated such that it is pointing towards specified heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- length number
- thickness number Width of the base rectangle of the arrow.
- heading number The direction the chevron will point towards in radians.
- colorStart u32color color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z,h will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the chevron will point from it's source position (either specified or attached to entity) -> the position of targetAttach entity (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 3)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedCircleFilled (timeout, x, y, z, radius, segments, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, colorOutline][, outlineThickness=1.0][, gradientIntensity=3][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled circle on the ground at world coordinates for a specified duration.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- radius number Radius of the circle in yalms.
- segments int Number of segments for the circle. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments.
- colorStart u32color Color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 3)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedConeFilled (timeout, x, y, z, radius, angle, heading, segments, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, targetAttachID][, colorOutline][, outlineThickness=1.0][, gradientIntensity=4][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a timed cone on the ground at world coordinates for a specified duration.
The cone originates from x,y,z, and will go in the direction of heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- radius number If the cone was a circle instead, this gives the radius of that circle. Basically this is the length of the cone.
- angle number Arc angle of the cone in radians. Basically, this is how wide the cone is.
- heading number The direction the cone will face in radians.
- segments int Generally only 30 segments is needed to draw a cone that looks round. For performance reasons I would recommend not going above 30 segments.
- colorStart u32color color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the cone will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 4)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedCrossFilled (timeout, x, y, z, length, width, heading, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, targetAttachID][, colorOutline][, outlineThickness=1.0][, gradientIntensity=4][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled cross on the ground at world coordinates for a specified duration.
The cross is centered on x,y,z, and then rotated such that there is a rectangle facing the specified heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- length number
- width number
- heading number The direction the cross will face in radians.
- colorStart u32color color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the cone will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 4)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedDonutFilled (timeout, x, y, z, radiusInner, radiusOuter, segments, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, colorOutline][, outlineThickness=1.0][, gradientIntensity=2][, gradientMinOpacity=0.15][, oldDraw=false])
-
Draw a filled donut (torus) on the ground at world coordinates for a specified duration.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- radiusInner number Inner radius of the donut.
- radiusOuter number Outer radius of the donut
- segments int Number of segments for the circle. Generally only 50 segments is needed to draw a circle that looks round. For performance reasons I would recommend not going above 50 segments.
- colorStart u32color color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (default 1.0)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 2)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.15)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedLineFilled (timeout, x1, y1, z1, x2, y2, z2[, delay=0], colorFill, outlineThickness, endpointThickness)
-
Draw a timed line between two world coordinate positions for a specified duration.
Parameters:
- timeout int duration of the draw
- x1 number
- y1 number
- z1 number
- x2 number
- y2 number
- z2 number
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- colorFill u32color
- outlineThickness number
- endpointThickness number
Returns:
-
string
uuid, see Argus.deleteTimedShape
- Argus2.addTimedRectFilled (timeout, x, y, z, length, width, heading, colorStart, colorEnd[, colorMid][, delay=0][, entityAttachID][, targetAttachID[, keepLength=false]][, colorOutline][, outlineThickness][, gradientIntensity=4][, gradientMinOpacity=0.05][, oldDraw=false])
-
Draw a filled rectangle on the ground at world coordinates for a specified duration.
The rectangle originates from x,y,z, and will go width/2 yalms out in each direction up and down, then length yalms out in the direction of heading.
Parameters:
- timeout int duration of the draw
- x number
- y number
- z number
- length number
- width number
- heading number The direction the rectangle will face in radians.
- colorStart u32color color to start with.
- colorEnd u32color U32 Color to end with. Argus will transition from color start to color end.
- colorMid u32color If specified, Argus will shift from start -> mid -> end color instead of start -> finish (optional)
- delay int Time in milliseconds to wait before the draw is shown. Useful for when mechanics happen back to back, and you want to delay showing the circles without precise timing. (default 0)
- entityAttachID int Will attach to specified entity ID, and x,y,z will dynamically be changed to specified entity (optional)
- targetAttachID int If specified, the rectangle will be drawn from it's source position (either specified or attached to entity) and stopping at the position of targetAttach entity. (optional)
- keepLength bool If specified with targetAttach, then the length won't be adjusted to the target, the length will stay constant. (default false)
- colorOutline u32color U32 Color for outline. If unspecified, an outline is not drawn. (optional)
- outlineThickness number If outlineThickness is specified and colorOutline is not specified, Argus will use your current color shift value based on percent complete, and the alpha will be 1. (optional)
- gradientIntensity int If specified, will control how quickly the gradient fades to minOpacity. A value of 0 means there is no gradient, just a constant fill. (default 4)
- gradientMinOpacity number If specified, will control the minimum opacity of the gradient. (default 0.05)
- oldDraw bool If true, will use the old draw method. Can be useful for certain types of draws to always overlay on top of everything, such as drawing your partner in a mechanic where the boss model is huge. (default false)
Returns:
-
string
uuid, see Argus.deleteTimedShape
Class ShapeDrawer
- Argus2.ShapeDrawer:new ([colorStart][, colorMid], colorEnd, colorOutline[, outlineThickness=1.5])
-
Create a new shape drawer object. It will use the color values specified. You can also freely edit the color values at any point in time.
Parameters:
- colorStart u32color If not using timed draws, this can be left nil, only colorEnd will be used for frame draws (optional)
- colorMid u32color If not specified, colorMid is ignored in timed draws and goes colorStart -> colorEnd. Frame draws only use colorEnd (optional)
- colorEnd u32color Required for timed draws and frame draws.
- colorOutline u32color
- outlineThickness number (default 1.5)
Returns:
- ShapeDrawer.colorEnd
-
- colorEnd u32color Required for timed draws and frame draws.
- ShapeDrawer.colorMid
-
- colorMid u32color If not specified, colorMid is ignored in timed draws and goes colorStart -> colorEnd. Frame draws only use colorEnd (optional)
- ShapeDrawer.colorOutline
-
- colorOutline u32color
- ShapeDrawer.colorStart
-
- colorStart u32color If not using timed draws, this can be left nil, only colorEnd will be used for frame draws (optional)
- ShapeDrawer.gradientIntensity
-
- gradientIntensity int (optional)
- ShapeDrawer.gradientMinOpacity
-
- gradientMinOpacity number (optional)
- ShapeDrawer.outlineThickness
-
- outlineThickness number (default 1.5)
- ShapeDrawer.segments
-
- segments number Only used for circular draws. (default 50.0)
- ShapeDrawer:addArrow (x, y, z, heading, baseLength, baseWidth[, tipLength][, tipWidth][, oldDraw])
-
Draw an arrow on the ground for this frame.
Parameters:
- x number
- y number
- z number
- heading number Heading in radians.
- baseLength number
- baseWidth number
- tipLength number If unspecified, it will be the same as tipWidth. (optional)
- tipWidth number If unspecified, it will be 2x baseWidth. (optional)
- oldDraw bool (optional)
- ShapeDrawer:addChevron (x, y, z, length, thickness, heading[, oldDraw])
-
Draw a chevron on the ground for this frame.
Parameters:
- x number
- y number
- z number
- length number
- thickness number Width of the base rectangle of the arrow.
- heading number Heading in radians.
- oldDraw bool (optional)
- ShapeDrawer:addCircle (x, y, z, radius[, oldDraw])
-
Draw a filled circle on the ground at world coordinates for this frame.
Parameters:
- x number
- y number
- z number
- radius number
- oldDraw bool (optional)
- ShapeDrawer:addCone (x, y, z, radius, angle, heading[, oldDraw])
-
Draw a cone on the ground at world coordinates for this frame.
Parameters:
- x number
- y number
- z number
- radius number
- angle number Angle in radians.
- heading number Heading in radians.
- oldDraw bool (optional)
- ShapeDrawer:addCross (x, y, z, length, width, heading[, oldDraw])
-
Draw a cross on the ground at world coordinates for this frame.
The cross will be centered around xyz and rotated towards heading. One rectangle will point at heading, the others 90 and 180 degrees rotated.
Parameters:
- x number
- y number
- z number
- length number
- width number
- heading number Heading in radians.
- oldDraw bool (optional)
- ShapeDrawer:addDonut (x, y, z, radiusInner, radiusOuter[, oldDraw])
-
Draw a donut on the ground at world coordinates for this frame.
Parameters:
- x number
- y number
- z number
- radiusInner number
- radiusOuter number
- oldDraw bool (optional)
- ShapeDrawer:addLine (x1, y1, z1, x2, y2, z2[, thickness][, endpointThickness])
-
Draw a line between two points on the ground for this frame.
Parameters:
- x1 number
- y1 number
- z1 number
- x2 number
- y2 number
- z2 number
- thickness number (optional)
- endpointThickness number (optional)
- ShapeDrawer:addRect (x, y, z, length, width, heading[, oldDraw])
-
Draw a filled rectangle on the ground at world coordinates for this frame.
XYZ pos is the bottom center of the rectangle. The rectangle will be created outwards in length, and then rotated to the heading.
Parameters:
- x number
- y number
- z number
- length number
- width number
- heading number Heading in radians.
- oldDraw bool (optional)
- ShapeDrawer:addTimedArrow (timeout, x, y, z, heading, baseLength, baseWidth[, tipLength][, tipWidth][, delay=0.0][, oldDraw])
-
Draw an arrow on the ground for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- heading number Heading in radians.
- baseLength number
- baseWidth number
- tipLength number If unspecified, it will be the same as tipWidth. (optional)
- tipWidth number If unspecified, it will be 2x baseWidth. (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedArrowOnEnt (timeout, entID, baseLength, baseWidth[, tipLength][, tipWidth][, targetID][, delay=0.0][, oldDraw])
-
Draw an arrow on the ground for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the arrow on.
- baseLength number
- baseWidth number
- tipLength number If unspecified, it will be the same as tipWidth. (optional)
- tipWidth number If unspecified, it will be 2x baseWidth. (optional)
- targetID number or table Entity ID to draw the arrow towards. Length will be automatically extended. (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedChevron (timeout, x, y, z, length, thickness, heading[, delay][, oldDraw])
-
Draw a chevron on the ground for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- length number
- thickness number Width of the base rectangle of the arrow.
- heading number Heading in radians.
- delay number Milliseconds to delay the start of the draw. (optional)
- oldDraw bool (optional)
- ShapeDrawer:addTimedChevronOnEnt (timeout, entID, length, thickness[, targetID][, delay=0.0][, oldDraw])
-
Draw a chevron on an entity for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the arrow on.
- length number
- thickness number Width of the base rectangle of the arrow.
- targetID number Entity ID to draw the chevron towards. Length will be automatically extended. (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedCircle (timeout, x, y, z, radius[, delay=0.0][, oldDraw])
-
Draw a filled circle on the ground at world coordinates for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- radius number
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedCircleOnEnt (timeout, entID, radius[, delay=0.0][, oldDraw])
-
Draw a filled circle on an entity for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the circle on.
- radius number
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedCone (timeout, x, y, z, radius, angle, heading[, delay=0.0][, oldDraw])
-
Draw a cone on the ground at world coordinates for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- radius number
- angle number Angle in radians.
- heading number Heading in radians.
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedConeOnEnt (timeout, entID, radius, angle[, targetID][, delay=0.0][, oldDraw])
-
Draw a cone on an entity for timeout milliseconds.
The cone's origin position will be set to XYZ, and then rotated to the entity's heading, unless targetID is specified.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the cone on.
- radius number How far out the cone will go. This is the radius of the full circle that would be drawn by this cone if it was extended to 360 degrees.
- angle number Angle in radians. Basically how wide the cone is.
- targetID number or table Target ID or target table to draw the cone to. It will go from ent -> target. This parameter is optional. (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedCross (timeout, x, y, z, length, width, heading[, delay=0.0][, oldDraw])
-
Draw a cross on the ground at world coordinates for timeout milliseconds.
The cross will be centered around xyz and rotated towards heading. One rectangle will point at heading, the others 90 and 180 degrees rotated.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- length number
- width number
- heading number Heading in radians.
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedCrossOnEnt (timeout, entID, length, width[, targetID][, delay=0.0][, oldDraw])
-
Draw a cross on an entity for timeout milliseconds.
The cross will be centered around the entity, and rotated towards the entity's heading, unless targetID is specified.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the cross on.
- length number
- width number
- targetID number or table Entity ID to draw the cross towards. Length will be automatically extended. (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedDonut (timeout, x, y, z, radiusInner, radiusOuter[, delay=0.0][, oldDraw])
-
Draw a donut on the ground at world coordinates for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- radiusInner number
- radiusOuter number
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedDonutOnEnt (timeout, entID, radiusInner, radiusOuter[, delay=0.0][, oldDraw])
-
Draw a donut on an entity for timeout milliseconds.
The donut will be centered around the entity.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the donut on.
- radiusInner number Inner radius of the donut.
- radiusOuter number Outer radius of the donut. This also includes the inner radius.
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedLine (timeout, x1, y1, z1, x2, y2, z2[, thickness][, endpointThickness][, delay=0.0])
-
Draw a line between two points on the ground for timeout milliseconds.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x1 number
- y1 number
- z1 number
- x2 number
- y2 number
- z2 number
- thickness number (optional)
- endpointThickness number (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- ShapeDrawer:addTimedRect (timeout, x, y, z, length, width, heading[, delay=0.0][, oldDraw])
-
Draw a filled rectangle on the ground at world coordinates for timeout milliseconds.
XYZ pos is the bottom center of the rectangle. The rectangle will be created outwards in length, and then rotated to the heading.
Parameters:
- timeout number Milliseconds to draw the shape for.
- x number
- y number
- z number
- length number
- width number
- heading number Heading in radians.
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- oldDraw bool (optional)
- ShapeDrawer:addTimedRectOnEnt (timeout, entID, length, width[, targetID][, delay=0.0][, keepLength=false][, oldDraw])
-
Draw a filled rectangle on an entity for timeout milliseconds.
The rectangle's bottom center position will be set to XYZ, and then rotated to the entity's heading, unless targetID is specified.
Parameters:
- timeout number Milliseconds to draw the shape for.
- entID number or table Entity ID or Entity Table to draw the rectangle on.
- length number
- width number
- targetID number or table Target ID or target table to draw the rectangle to. It will go from ent -> target. This parameter is optional. (optional)
- delay number Milliseconds to delay the start of the draw. (default 0.0)
- keepLength bool If specified with targetID, then the length won't be adjusted to the target, the length will stay constant, instead only the heading will be updated. (default false)
- oldDraw bool (optional)
- ShapeDrawer:setGradient ([intensity][, minOpacity])
-
Parameters:
- intensity int (optional)
- minOpacity number (optional)
Detection Structures
- DirectionalAOE
-
Structure for Directional AOEs that are usually originating from an entity
Fields:
- x number X position of aoe
- y number Y position of aoe
- z number Z position of aoe
- aoeType int Animation/omen type of aoe
- heading number Direction the aoe is facing
- aoeLength int Length of aoe
- aoeWidth int Width of aoe, mostly used for Line aoes. This value is 0 for cones and circles.
- aoeName string Name of aoe
- aoeID number Cast/Spell ID of aoe
- aoeCastType number Cast type/shape of AOE. See castType for known castType values.
- targetAttach int ID of entity that current aoe is attached to, if found. Value is nil otherwise.
- aoeAnimationInfo aoeAnimationInfo Contains information about the animation that will play when the aoe completes and gets casted.
- aoeEffectInfo aoeEffectInfo Contains information about the aoe's omen/telegraph.
- isAreaTarget bool If the spell is a free target ability or not, this is useful for identifying aoes that will attach to target or not. Argus already processes this information combined with a few more heuristics internally, and will update the x,y,z and well as targetAttachID correctly.
- GroundAOE
-
Structure for Ground AOEs that are not usually attached to any entity
Fields:
- x number X position of aoe
- y number Y position of aoe
- z number Z position of aoe
- aoeType int Animation/omen type of aoe
- aoeLength int Length/radius in yalms of aoe
- aoeWidth int Width in yalms of aoe (0 for circles and cones etc)
- aoeName string Name of aoe
- aoeID int Cast/Spell ID of aoe
- aoeCastType int Cast type/shape of AOE. See castType for known castType values.
- targetAttach int ID of entity that current aoe is attached to, if found. Value is nil otherwise.
- aoeAnimationInfo aoeAnimationInfo Contains information about the animation that will play when the aoe completes and gets casted.
- aoeEffectInfo aoeEffectInfo Contains information about the aoe's omen/telegraph.
- isAreaTarget bool If the spell is a free target ability or not, this is useful for identifying aoes that will attach to target or not. Argus already processes this information combined with a few more heuristics internally, and will update the x,y,z and well as targetAttachID correctly.
- aoeAnimationInfo
-
Structure that contains information about an aoe's animation.
Useful in case there is additional info that can be grabbed to determine cone width/donut inner radius.
Fields:
- aoeAnimationTypeStart int
- aoeAnimationTypeEnd int
- aoeAnimationTimelineHit int
- aoeCastVFX int
- aoeEffectInfo
-
Structure that contains information about an omen/telegraph.
Useful for identifying cone width and donut inner radius for telegraphed aoes.
Fields:
- aoeEffectName string Name of omen
- aoeEffectCastType int If this value is non-zero, then the game override the original aoeCastType with this castType value internally. Argus already updates the original aoeCastType value correctly, so this field can be generally ignored. See castType for known castType values.
- aoeEffectRestrictYScale bool If true, the aoe will be 10% of it's original size. Argus already adjusts the original aoe size values correctly, so this field can be generally ignored.
- aoeEffectLargeScale int Some value that changes internal orientation for drawing the telegraph effects. Argus already handles this value interanlly, so it can be generally ignored.
- castType
-
An integer to identify some aoe types.
These are not guaranteed for every AOE. But generally, these are how AOEs are categorized in the game.
Fields:
- [2, 5, 7] Circle AOE
- [3, 13] Directional Cone/arc AOE
- [4, 12] Directional Line AOE
- [6] Meteor mechanic (more damage the closer you are to the center), usually unavoidable
- [8] Line AOE that's targeted to either a position, or specific entity. Argus will adjust the length and heading automatically
- [10] Donut AOE
- [11] Cross AOE (new type to shadowbringers, like last boss of grand cosmos)
Detection Functions
- Argus.forceMisdirectionMovement (value)
-
Normal movement options in minion will not move the player when under misdirection. This function will allow you to start/stop movement while under misdirection.
Note that the movement will always go in the direction of Argus.getMisdirectionHeading.
Parameters:
- value bool true to start movement, false or nil to stop movement
Returns:
-
bool
Returns the value set if successful, nil if not (cases of nil can be TensorCore Exe not being loaded.)
- Argus.getCurrentAOEs ()
-
Returns a merged list of GroundAOEs and DirectionalAOEs.
Due to the nature of this function, this list is always in order.
Returns:
-
table
Merged list of GroundAOEs and DirectionalAOEs.
- Argus.getCurrentDirectionalAOEs ([inOrder=false])
-
Returns list of current AOEs that are cast on the ground where each key is the entityID source, and value is the DirectionalAOE structure.
These are not attached to an entity (they do not originate from an entity centerpoint).
Also returns AOEs before the telegraphs are drawn, and returns AOEs with no telegraphs.
Parameters:
- inOrder bool If true, then the AOEs will return in order of appearance, instead of having each key be entityID. (default false)
Returns:
-
table
List of DirectionalAOE, keys based on inOrder
- Argus.getCurrentGroundAOEs ([inOrder=false])
-
Returns list of current AOEs that are on the ground where each key is the entityID source, and value is the DirectionalAOE.
These are attached to an entity (they originate from the source entity's center point).
Most commonly used for line AOEs, conals, and donuts, but also includes circles.
Also returns AOEs before the telegraphs are drawn, and returns AOEs with no telegraphs.
Parameters:
- inOrder bool If true, then the AOEs will return in order of appearance, instead of having each key be entityID. (default false)
Returns:
- Argus.getCurrentTethers ()
-
Returns table where each key is number entityID and each value is table tethers.
The list is all active tethers/chains/links between 2 entities.
Each tether table has the following values: number type, number targetID.
This type is similar to overhead marker types, each type will have exactly the same animation for every instance that shares that type (ex type 2 tethers will always look the same).
However, how or when the tether resolves, is not known to the client.
Returns:
-
table
List where each key is number entityID and each value is table tethers.
Usage:
-- simple function to print all tethers on player local tethers = Argus.getCurrentTethers() for id, ts in pairs(tethers) do for t = 1, #ts do -- there can be multiple tethers going from one entity local tether = ts[t] if tether.targetid == Player.id then d("Entity " .. id .. " is tethered to player with type " .. tether.type) end end end
- Argus.getEntityAuras (ent)
-
Returns the current auras on the target entity. This function returns 3 values: persistentAura, activeAura1, activeAura2.
Parameters:
- ent int or table Entity Object (from TensorCore.mGetEntity()) or entity ID to check
Returns:
- int persistentAura
- int activeAura1
- int activeAura2
- Argus.getEntityModel (ent)
-
Sometimes contentid isn't enough to distinguish an entity (such as housing target dummies), in which case this function will provide a subcontentid.
Parameters:
- ent int or table Entity Object (from TensorCore.mGetEntity()) or entity ID to check
Returns:
-
int
modelID
- Argus.getMisdirectionHeading ()
-
This is for buffs where the finger points above the players head in a direction, and the player is forced to go in that direction.
This mechanic is always associated with a buff.
Examples include first boss of Vanaspati, and the final boss of Alzadaal's Legacy.
While Vanaspati is the standard mechanic where the game spins the finger, Alzadaal has a special variant of this mechanic where the player can control the direction of this finger.
For this mechanic, use Argus.setMisdirectionHeading to set the direction and Player:Move(FFXIV.MOVEMENT.FORWARD) to move in that direction.
Returns:
-
number
Heading in radians, betwee -pi and +pi, same format as the game.
- Argus.getSpellAOEInfo (id)
-
Returns a structure similar to DirectionalAOE or GroundAOE but without any instance specific data.
That is, there will be no entity/target attach nor any position info. However the other identifiers will be present.
Can be combined with onEntityCast to draw snapshots after an aoe has been casted.
Parameters:
- id
Returns:
- Argus.getTethersOnEnt (entityID)
-
Returns a list of tethers that are attached to entity.
This includes tethers that are both going from entity, and attached to entity.
Each tether object in the list has 2 fields, .type and .partnerid
Parameters:
- entityID int ID of the entity to get tethers for
Returns:
-
table
List of tethers attached to entity
Usage:
local pTethers = Argus.getTethersOnEnt(Player.id) -- returned table is a list, indices are keys and not entity ID -- draw a circle on all entities tethered to player for i = 1, #pTethers do local tether = pTethers[i] local partner = TensorCore.mGetEntity(tether.partnerid) if partner ~= nil then Argus.addCircleFilled( partner.pos.x, partner.pos.y, partner.pos.z, 3, 30, GUI:ColorConvertFloat4ToU32(1, 1, 0, 0.1), GUI:ColorConvertFloat4ToU32(1, 1, 0, 1), 1.5 ) end end
- Argus.getWaymarkInfo (markerID)
-
Returns information about the marker.
Parameters:
- markerID int This is just the same spell ID from ActionList type 15.
Returns:
- number x
- number y
- number z
- bool isActive
- int timeLastModify
- Argus.isEntityVisible (ent)
-
Returns whether or not the entity is visible to the player.
Parameters:
- ent int or table Entity Object (from TensorCore.mGetEntity()) or entity ID to check
Returns:
-
bool
True if entity is visible to the player, false if not
- Argus.registerOnAOECreateFunc (func)
-
Registers func into on aoe create func list.
This is called whenever a directional or ground aoe is greated.
Ground aoes just have a heading of 0 since it doesn't apply to them.
Be warned, the table sent is a copy and will not receive position updates, so you will have to calculate the position yourself based on the target attach and if there is one.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onAOECreateFunc
- Argus.registerOnEntityCast (func)
-
Registers func into entity cast func list.
This func will get called any time the server sends a successful entity cast packet to the client.
This means that this function is almost 100% reliable to use.
This is also useful to detect certain mechanics, such as Sirensong Sea 2nd boss, where there are 6 entities in the middle facing a certain way, and they cast an action with no preceding channel.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onEntityCastFunc
- Argus.registerOnEntityChannel (func)
-
Registers func into entity channel func list.
This func will get called any time the server sends a packet to the client, that entity has begun channeling.
This means that the function is almost 100% reliable to use.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onEntityChannelFunc
- Argus.registerOnEventObjectScript2Func (func)
-
Registers func into on event object script2 func list.
This is called when event entities perform certain scripted events.
These functions were called a lot in stormblood and prior, but not so much in shadowbringers and beyond.
Some examples of where it's used:
- it's generally used on meteor entities (where they have a meteor dropping on them and you have to kill them before the meteor touches the ground),
- thordan ex for the big eye on the edge of the map (but not in DSR, that's a map effect), that one is differentiated by contentid of the entity for where the eye position is
- p5s, the crystals that spawn, whether or not its green or normal is shown by the args
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- Argus.registerOnEventObjectScriptFunc (func)
-
Registers func into on event object script func list.
This is called when event entities perform certain scripted events.
These functions were called a lot in stormblood and prior, but not so much in shadowbringers and beyond.
Some examples of where it's used:
- it's generally used on meteor entities (where they have a meteor dropping on them and you have to kill them before the meteor touches the ground),
- thordan ex for the big eye on the edge of the map (but not in DSR, that's a map effect), that one is differentiated by contentid of the entity for where the eye position is
- p5s, the crystals that spawn, whether or not its green or normal is shown by the args
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- Argus.registerOnFloorChangeFunc (func)
-
Registers func into on floor change func list.
This is called whenever the ground floor itself changes texture, like transitions in DSR.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onFloorChangeFunc
- Argus.registerOnMapEffect (func)
-
Registers func into on map effect func list.
This function is called any time a visual map effect happens.
For example: Zodiark snakes, star patterns in zodiark (when the arrows come down, to see what the star is), shiva savage mirror colors, wol triangle patterns, etc.
Seems to be only used in shadowbringers and beyond, stormblood and before don't really have map effects, everything is done through channel animation or cast animations, or entities themselves.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onMapEffectFunc
- Argus.registerOnMarkerAdd (func)
-
Registers func into marker func list, and func will get called any time there is an overhead marker added to an entity.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onMarkerAddFunc
- Argus.registerOnTetherChange (func)
-
Registers func into on tether change func list.
This function is called any time tether id, tether flags, or tether target id changes for a given enity.
In other words, it reports any time an entity adds/removes/modifies it's tether.
This can be useful to track certain changes since checking onupdate for tethers can be unreliable.
Note: MUST BE CALLED IN YOUR "Module.Initalize" HANDLER, not when your file loads. Otherwise you will get nil errors!
Parameters:
- func onTetherChangeFunc
- Argus.setMisdirectionHeading (value)
-
This is for buffs where the finger points above the players head in a direction, and the player can adjust the direction of the finger with their movement.
This mechanic is always associated with a buff.
For example, the final boss of Alzadaal's Legacy has a special variant of this mechanic where the player can control the direction of this finger.
Use this function to set the direction and Player:Move(FFXIV.MOVEMENT.FORWARD) to move in that direction.
Parameters:
- value number Heading in radians, betwee -pi and +pi, same format as the game.
- onAOECreateFunc (aoe)
-
Parameters:
- aoe table GroundAOE or DirectionalAOE object
- onEntityCastFunc (entityID, actionID, castPosX, castPosY, castPosZ, heading, mainTargetID, targets)
-
Cast position may be nil if the cast was not casted at a specific position. For example, if the spell was casted on self, the position will be nil.
Tip: You can get the radius of the ability through ActionList:Get(1, actionID).radius
Parameters:
- entityID int ID of the caster
- actionID int Spell ID of action being casted
- castPosX number X position of cast
- castPosY number Y position of cast
- castPosZ number Z position of cast
- heading number Heading of the casted ability, this is only used for rectangles and cones
- mainTargetID number This is the main target of the spell, however it may not be the target that gets hit by the spell. Use the targets list to get the targets hit. For example, if a white mage casts holy, the mainTargetID would be the player.id, but the targets list would contain the list of enemies hit.
- targets table List of target IDs the ability is cast on
- onEntityChannelFunc (entityID, channelID, targetID, channelTimeMax)
-
Parameters:
- entityID int ID of the caster
- channelID int Spell ID of the ability being channeled
- targetID int Target that the spell is being channeled on
- channelTimeMax number How long the cast will be channeled for
- onEventObjectScript2Func (entityID, a2, a3)
-
Parameters:
- entityID int
- a2 int
- a3 int
- onEventObjectScriptFunc (entityID, a2, a3, a4)
-
Parameters:
- entityID int
- a2 int
- a3 int
- a4 int
- onFloorChangeFunc (a1, a2, a3)
-
Parameters:
- a1 int
- a2 int
- a3 int
- onMapEffectFunc (a1, a2, a3)
-
The numbers/identifiers sent to this function are simply numbers to indicate which pattern it is. They appear to be indexes/types of map effects, however usually a combination of all this data can give you which pattern it is exactly.
Parameters:
- a1 int
- a2 int
- a3 int
- onMarkerAddFunc (entityID, markerType)
-
Parameters:
- entityID int The id of the entity to which the marker is being added to.
- markerType int The marker type that is added to entity. Marker type is consistent across mechanics. A marker of type 2 will always have the same animation.
- onTetherChangeFunc (sourceEntityID, oldTetherID, oldTetherFlags, oldTargetID, newTetherID, newTetherFlags, newTargetID)
-
Parameters:
- sourceEntityID int Source entity of the tether
- oldTetherID int Previous tether type/id
- oldTetherFlags int Previous tether flags
- oldTargetID int Previous target ID
- newTetherID int New tether type/id
- newTetherFlags int New tether flags
- newTargetID int New target ID