{"name":"setFog","operator":null,"title":"setFog","type":"command","url":"https://community.bistudio.com/wiki/setFog","revid":370471,"updated":"2024-12-16T18:09:58Z","groups":["Environment"],"status":"ok","replaced_by":[],"games":[{"game":"ofp","name":"Operation Flashpoint","version":"1.00"},{"game":"ofpe","name":"Operation Flashpoint: Elite","version":"1.00"},{"game":"arma1","name":"Armed Assault","version":"1.00"},{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"ofp","name":"Operation Flashpoint","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":null,"effect":"global","server_exec":true},"exec":null,"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","since":null,"effect":null,"exec":null,"params":[{"name":"time","type":"Number","optional":false,"default":null,"description":"transition time to the new value","types":["Number"],"since":null,"text":"time: Number - transition time to the new value"},{"name":"fog","type":"Number","optional":false,"default":null,"description":"fog density in range 0..1","types":["Number"],"since":null,"text":"fog: Number - fog density in range 0..1"}],"returns":{"type":"Nothing","types":["Nothing"],"description":null,"text":"Nothing"},"form":"binary","operator":null,"left":{"text":"time","types":["Number"]},"right":{"text":"fog","types":["Number"]}},{"syntax":"time setFog [fogValue, fogDecay, fogBase]","since":"arma3 0.50","effect":null,"exec":null,"params":[{"name":"time","type":"Number","optional":false,"default":null,"description":"transition time to the new value","types":["Number"],"since":null,"text":"time: Number - transition time to the new value"},{"name":"fogValue","type":"Number","optional":false,"default":null,"description":"normal fog value that represents fog density at *fogBase* level, in range 0..1","types":["Number"],"since":null,"text":"fogValue: Number - normal fog value that represents fog density at *fogBase* level, in range 0..1"},{"name":"fogDecay","type":"Number","optional":false,"default":null,"description":"decay of fog density with altitude, in range -1..1; a negative value means a \"ceiling\" fog","types":["Number"],"since":null,"text":"fogDecay: Number - decay of fog density with altitude, in range -1..1; a negative value means a \"ceiling\" fog"},{"name":"fogBase","type":"Number","optional":false,"default":null,"description":"base altitude (ASL) of fog (in meters), in range -5000..5000","types":["Number"],"since":null,"text":"fogBase: Number - base altitude (ASL) of fog (in meters), in range -5000..5000"}],"returns":{"type":"Nothing","types":["Nothing"],"description":null,"text":"Nothing"},"form":"binary","operator":null,"left":{"text":"time","types":["Number"]},"right":{"text":"[fogValue, fogDecay, fogBase]","types":["Array"]}}],"examples":[{"text":"```sqf\n15 setFog 0.5;\n```","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.","problems":null,"aliases":[],"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- 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."}],"categories":["ArmA: Armed Assault: Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Environment","Introduced with Operation Flashpoint version 1.00","Operation Flashpoint: Elite: Scripting Commands","Operation Flashpoint: New Scripting Commands","Operation Flashpoint: Scripting Commands","Scripting Commands","Scripting Commands: Global Effect","Scripting Commands: Server Execution","Take On Helicopters: Scripting Commands"]}