{"name":"setWaypointType","title":"setWaypointType","type":"command","url":"https://community.bistudio.com/wiki/setWaypointType","revid":377747,"updated":"2026-01-03T00:58:00Z","groups":["Waypoints"],"status":"ok","games":{"arma1":"1.00","arma2":"1.00","arma2oa":"1.50","tkoh":"1.00","arma3":"0.50"},"since":"arma1 1.00","arma3_since":"0.50","description":"Sets the waypoint type of given waypoint.\n\nMore details at Waypoints.","syntaxes":[{"syntax":"waypoint setWaypointType type","params":[{"name":"waypoint","type":"Waypoint","type_expr":"Waypoint"},{"name":"type","type":"String","description":"waypoint type. Can be:\n\n- `\"MOVE\"`\n- `\"DESTROY\"`\n- `\"GETIN\"`\n- `\"SAD\"` *(Seek And Destroy)*\n- `\"JOIN\"`\n- `\"LEADER\"`\n- `\"GETOUT\"`\n- `\"CYCLE\"`\n- `\"LOAD\"`\n- `\"UNLOAD\"`\n- `\"TR UNLOAD\"`\n- `\"HOLD\"`\n- `\"SENTRY\"`\n- `\"GUARD\"` (used with GUARDED BY trigger or createGuardedPoint)\n- `\"TALK\"`\n- `\"SCRIPTED\"`\n- `\"SUPPORT\"`\n- `\"GETIN NEAREST\"`\n- `\"DISMISS\"`\n- `\"LOITER\"` (Arma 3)\n- Arma 3 v1.34 `\"HOOK\"` (slingload object)\n- Arma 3 v1.34 `\"UNHOOK\"` (slingload drop)\n- `\"AND\"` (only for game logics)\n- `\"OR\"` (only for game logics)","type_expr":"String"}],"returns":{"type":"Nothing","type_expr":"Nothing"},"form":"binary","left":{"text":"waypoint"},"right":{"text":"type"}}],"examples":[{"code":["_myWaypoint setWaypointType \"HOLD\";"]}],"see_also":["2D Editor: Waypoints","waypointType"],"notes":[{"user":"ArmAtec","date":"2007-11-23T07:44:00Z","text":"Using **MOVE** on a game logic group will move the logic to the set location just like setPos. In the editor, only **AND** and **OR** type of waypoints are available for GAME LOGICS but you can use CYCLE type as well with setWaypointType."},{"user":"RHfront","date":"2017-05-06T16:09:00Z","text":"To use the **LAND** function in a waypoint, you must set *\"A3\\functions_f\\waypoints\\fn_wpLand.sqf\"* as the script for that waypoint."},{"user":"Nelis75733126","date":"2017-05-30T09:14:00Z","text":"In **Arma 3 v1.70**, if you add a **MOVE** waypoint very soon after a **LOITER** waypoint, (assuming that the index of the MOVE waypoint is HIGHER than the index of the LOITER waypoint) then the LOITER waypoint will be considered as a MOVE waypoint.\nAnd, if you add another waypoint after ( for example ) more than 1 second after adding the LOITER waypoint,\nthen the LOITER waypoint will never complete even when its condition has been met.\nThere are two ways to quit an existing LOITER waypoint that was added more than about 1 second before adding a MOVE waypoint:\n\n- use the setCurrentWaypoint command\n- create a waypoint that has the same ID as the LOITER waypoint.\n\nThe difference between those two methods is that the latter prevents the LOITER waypoint from executing its statement."}]}