{"name":"setFog","title":"setFog","type":"command","url":"https://community.bistudio.com/wiki/setFog","revid":379150,"updated":"2026-10-17T01:44:03Z","groups":["Environment"],"status":"ok","games":{"ofp":"1.00","ofpe":"1.00","arma1":"1.00","arma2":"1.00","arma2oa":"1.50","tkoh":"1.00","arma3":"0.50"},"since":"ofp 1.00","arma3_since":"0.50","locality":{"effect":"global","server_exec":true},"description":"Smoothly change the fog over given time (in seconds). See also fogParams.\n\n> [!NOTE]\n> This command is MP synchronised, if executed on server, the changes will propagate globally. If executed on client effect is temporary as it will soon change to the server setting.","syntaxes":[{"syntax":"time setFog fog","params":[{"name":"time","type":"Number","description":"transition time to the new value","type_expr":"Number"},{"name":"fog","type":"Number","description":"fog density in range 0..1","type_expr":"Number"}],"returns":{"type":"Nothing","type_expr":"Nothing"},"form":"binary","left":{"text":"time"},"right":{"text":"fog"}},{"syntax":"time setFog [fogValue, fogDecay, fogBase]","since":"arma3 0.50","params":[{"name":"time","type":"Number","description":"transition time to the new value","type_expr":"Number"},{"name":"fogValue","type":"Number","description":"normal fog value that represents fog density at *fogBase* level, in range 0..1","type_expr":"Number"},{"name":"fogDecay","type":"Number","description":"decay of fog density with altitude, in range -1..1; a negative value means a \"ceiling\" fog","type_expr":"Number"},{"name":"fogBase","type":"Number","description":"base altitude (ASL) of fog (in meters), in range -5000..5000","type_expr":"Number"}],"returns":{"type":"Nothing","type_expr":"Nothing"},"form":"binary","left":{"text":"time"},"right":{"text":"[fogValue, fogDecay, fogBase]"}}],"examples":[{"code":["15 setFog 0.5;"]},{"text":"Force no fog:\n\n```sqf\n0 setFog 0;\n// forceWeatherChange; // change is immediate\n999999 setFog 0;\n```","code":["0 setFog 0;\n// forceWeatherChange; // change is immediate\n999999 setFog 0;"]},{"text":"```sqf\n// Arma 3 examples:\n0 setFog [1, 0.01, 0];\n0 setFog [1, -1, 70];    // mountain fog, starts from 70m ASL and thickens the higher you climb\n0 setFog [1, 1, 60];    // valley fog, starts from 60m ASL and thickens the lower you descend\n0 setFog [1, 1, 0];        // fooooog on the waaaater\n```","code":["// Arma 3 examples:\n0 setFog [1, 0.01, 0];\n0 setFog [1, -1, 70];\t// mountain fog, starts from 70m ASL and thickens the higher you climb\n0 setFog [1, 1, 60];\t// valley fog, starts from 60m ASL and thickens the lower you descend\n0 setFog [1, 1, 0];\t\t// fooooog on the waaaater"]}],"multiplayer":"Before Arma 3, server and clients could have each a different (local) fog value.","see_also":["Arma 3: Improved Fog","fog","fogParams","fogForecast","nextWeatherChange","forceWeatherChange","setRain"],"notes":[{"user":"Ceeeb","date":"2007-04-20T04:25:00Z","text":"Only one script command induced weather change (either setOvercast or setFog) can be happening at a time.\nStarting a new weather change will immediately halt the current weather change.\nsetRain changes are independent and can occur simultaneously to a weather change."},{"user":"Zapat","date":"2015-12-15T14:32:00Z","text":"setTimeMultiplier DOES affect transition time."},{"user":"Killzone_Kid","date":"2019-01-10T10:23:00Z","text":"A little information about how Alt Syntax works.\nThe *fogValue* is normal fog value that could be set independently with original setFog command.\n*fogBase* is the ASL altitude at which the fog will start. 0 is the sea level. *fogDecay* is how defined the fog start is. The more defined, the denser is the fog.\n1 (or -1) are the max values. If it is positive the fog will be generated below *fogBase* line, if negative, above it.\nIf *fogDecay* is small, the fog will transition more smoothly from no fog to full fog, and because of that it will cross *fogBase* line by quite a lot, depending on how small is *fogDecay* value.\nCurrent values of *fogDecay* and *fogBase* can be retrieved with fogParams."},{"user":"Sa-Matra","date":"2022-07-05T05:29:31Z","text":"Few notes about network behavior of the fog:\n\n- Fog is the only weather parameter that is *almost* properly network-synchronized by the engine. You can rely on it for both connected players and JIP players without jumping through hoops like other weather commands.\n- *time* is not synchronized over the network exactly, fog values changes will be linear over time where you run the command, while network-synced *time* will be non-linear, but in the end fog is still will be somewhat close between clients and servers, so its not much of a game breaker.\n- Say fog all 0 on both server and client, instantly setting fog on the server with `0 setFog 1` or even `0 setFog [1,1,1]` will not set it instantly on clients, but rather interpolate it there over few seconds (~10-15), non-linearly (slower the closer it gets to server values)\n- Setting *fogValue* to values above 1 is allowed where you run the command, but network sync will still clamp it to 1, so if you do `0 setFog 100`, clients will still interpolate *fogValue* to 1, including JIP, so make sure you don't set it above 1 if you expect consistent values between server and client for some calculations."},{"user":"Sa-Matra","date":"2022-08-01T09:43:29Z","text":"Be aware that this command is affected by setWindStr and windStr! Max fogValue = 1 - windStr, so if you do `0 setWindStr 1`, setting any fog with time>0 will actually set fog to 0! Doing instant fog changes with time=0 strangely still works though."},{"user":"OverlordZorn","date":"2026-10-17T01:44:03Z","text":"Tested in Arma 3 v2.22:\n\n- Confirming the note about `windStr`: with `0 setWindStr 0.6`, `30 setFog 1` clamps `fogForecast` to 0.4 right away, and fog stops at 0.4.\n- `setWind` (even with forced = true) does not change `windStr`, so it does not limit fog.\n- `setFog` sets `nextWeatherChange` to the given transition time. When it runs out, the engine picks a new random forecast (e.g. fog 0.4 → 0.362 with a new `nextWeatherChange` of ~3300s)."}]}