{"name":"Arma 3: CfgWorlds Config Reference","title":"Arma 3: CfgWorlds Config Reference","type":"topic","url":"https://community.bistudio.com/wiki/Arma_3:_CfgWorlds_Config_Reference","revid":373245,"updated":"2025-04-12T22:20:54Z","aliases":["Arma 3 CfgWorlds Config Reference","CfgWorlds Config Reference"],"markdown":"> [!WARNING]\n> This reference page was created for Arma 3 v1.66+, some fields may not exist in prior games and versions.\n\n#### A\n\n##### class AmbientA3\n\n```cpp\nclass AmbientA3\n{\n    maxCost = 500; // max. cost of all animals spawned by the ambient system\n\n    class Main_spawn_circle_name\n    {\n        areaSpawnRadius = 440.0;    // radius of the main spawn circle, testing circles are placed on this radius\n        areaMaxRadius = 500.0;        // radius where animals are removed\n        spawnCircleRadius = 30.0;    // radius of testing circles\n        spawnInterval = 4.7;        // how often is the creation process started in seconds\n\n        class Species\n        {\n            class Animal_config_class    // class of animal from CfgVehicles\n            {\n                maxCircleCount = 5;        // expression - max. number of a given kind in testing circle\n                maxWorldCount = 8;        // max. number of animals on map\n                cost = 3;                // cost of animal\n                spawnCount = 1;            // how many animals should be spawned at once\n                groupSpawnRadius = 10;    // radius for spawning of animal group\n                maxAlt = 200;            // if defined, an animal can be created only if [camera height above/under water/ground] < maxAlt\n                minAlt = -10;            // if defined, an animal can be created only if [camera height above/under water/ground] > minAlt\n            };\n        };\n    };\n};\n```\n\nFor more information visit the Ambient Animals System Page\n\n##### class AnomalyPars\n\n```cpp\nclass AnomalyPars\n{\n    // outer model (should be sphere with radius of 1 and normals directed outwards)\n    outerModel = \"\"; /// path should be defined in data\n    // inner model (should be sphere with radius of 1 and normals directed inwards)\n    innerModel = \"\"; /// path should be defined in data\n    // scale of refraction (R, G, B - you can use different values to achieve abberation effect)\n    refractScale[] = {0.04, 0.03, 0.05};\n    // animation time coef (horizontal, vertical), use {0,0, 0} for no animation (third value not used)\n    timeScale[] = {0.03, 0.03, 0.0};\n    // distance (in meters) from the anomaly boundary, where the postprocess effect should be used (0 = no postprocess)\n    postProcessDistance = 3.0;\n};\n```\n\n##### aroundSunCoefExponent\n\nArma 3 v1.60\nFloat: Modifiers of around sun coefficient for pixel shader computations.\n\n```cpp\n// coef = pow(coef * _aroundSunCoefMultiplier, _aroundSunCoefExponent);\naroundSunCoefExponent = \"12.0f\"; //value used by BI in all A3 terrains\n```\n\n##### aroundSunCoefMultiplier\n\nArma 3 v1.60\nFloat: Modifiers of around sun coefficient for pixel shader computations.\n\n```cpp\n// coef = pow(coef * _aroundSunCoefMultiplier, _aroundSunCoefExponent);\naroundSunCoefMultiplier = \"1.4f\"; //value used by BI in all A3 terrains\n```\n\n##### author\n\nString: Defines the author of the world, which is shown in the loading screen\n\n```cpp\nauthor = \"$STR_A3_Bohemia_Interactive\"; //value used by Tanoa, $STR_A3_Bohemia_Interactive corresponds to a stringtable entry\n```\n\n#### C\n\n##### causticsBrightnessCoef\n\nFloat: Brightness coefficient\n\n```cpp\naroundSunCoefMultiplier = \"1.4f\"; //value used by BI in all A3 terrains\n```\n\n##### causticsDepthFadeCoef\n\nFloat: Coef used for caustics intensity fading with depth (how fast the intensity fades with depth), 1.0 = linear, 2.0 = quadratic,...\n\n```cpp\ncausticsDepthFadeCoef = \"0.05f\"; //value used by Tanoa\n```\n\n##### causticsDepthLimit\n\nFloat: Depth limit (under water) for caustics drawing (in m)\n\n```cpp\ncausticsDepthLimit = \"80.0f\"; //value used by Tanoa\n```\n\n##### causticsDistanceLimit\n\nFloat: Distance limit for caustics drawing (in m)\n\n```cpp\ncausticsDistanceLimit = \"200.0f\"; //value used by Tanoa\n```\n\n##### causticsEnabled\n\nInteger: Enable/disable caustics\n\n```cpp\ncausticsEnabled = 1; //value used by Tanoa\n```\n\n##### causticsTexture\n\nString: Caustics texture path\n\n```cpp\ncausticsTexture = \"A3\\data_f\\caustics\\caustic_anim_ca.paa\"; //value used by Tanoa\n```\n\n##### causticsTextureArea\n\nFloat: Length of the side of the rectangle, that covers one caustics texture (in meters) in zero depth\n\n```cpp\ncausticsTextureArea = \"2.0f\"; //value used by Tanoa\n```\n\n##### causticsTextureAreaDeep\n\nFloat: Length of the side of the rectangle, that covers one caustics texture (in meters) in max depth causticsDepthLimit(causticsDepthLimit)\n\n```cpp\ncausticsTextureAreaDeep = \"156.0f\"; //value used by Tanoa\n```\n\n##### causticsTextureChangeInterval\n\nFloat: Interval of texture change (in s)\n\n```cpp\ncausticsTextureChangeInterval = \"0.04f\"; //value used by Tanoa\n```\n\n##### causticsTextureCount\n\nInteger: Number of caustics textures\n\n```cpp\ncausticsTextureCount = 32; //value used by Tanoa\n```\n\n##### causticsTextureDepthGranularity\n\nFloat: Distance (in meters) over which we interpolate two caustics textures (in different depth)\n\n```cpp\ncausticsTextureDepthGranularity = \"2.5f\"; //value used by Tanoa\n```\n\n##### causticsTextureMask\n\nString: Caustics texture mask path\n\n```cpp\ncausticsTextureMask = \"A3\\data_f\\caustics\\caustics_anim_%03d.paa\"; //value used by Tanoa\n```\n\n##### causticsTextureNumRows\n\nInteger: Number of textures in one row in caustic texture (we suppose that number of rows and columns is the same)\n\n```cpp\ncausticsTextureNumRows = 4; //value used by Tanoa\n```\n\n##### centerPosition[]\n\nArray: Default center position\n\n```cpp\ncenterPosition[] = {7228, 6987, 0}; //value used by Tanoa\n```\n\n##### clouds[]\n\nArray:\n\n```cpp\nclouds[] = {\"A3\\data_f\\mrak1.p3d\", \"A3\\data_f\\mrak2.p3d\", \"A3\\data_f\\mrak3.p3d\", \"A3\\data_f\\mrak4.p3d\"}; //value used by Tanoa\n```\n\n##### class clutter\n\n```cpp\nclass clutter\n{\n    class YourClutterName : DefaultClutter\n    {\n        // Determines the affection of the clutter to the wind (0 - stone, 1 - common grass)\n        affectedByWind = 0;\n        // Path to your clutter model\n        model = \"path\\to\\your\\clutter.p3d\";\n        // If colored by the ground, desired color relative to the ground\n        relativeColor[] = {1, 1, 1, 1}; //not used in any A3 Clutter configs\n        // Maximal scale for random clutter scaling\n        scaleMax = 1.0;\n        // Minimal scale for random clutter scaling\n        scaleMin = 0.5;\n        // Use default lighting (0 = disable, 1 = enable). This should be enabled if your clutter uses the \"Grass\" pixel or vertex shader, otherwise it should be disabled\n        swLighting = 1;\n    };\n};\n```\n\n##### clutterColoringFarCoef\n\nFloat: Max coef for clutter coloring at far distance (must be >=1, large coef means we can colorize more)\n\n```cpp\nclutterColoringFarCoef = \"5.0f\"; //value used by Tanoa\n```\n\n##### clutterColoringFarSpeed\n\nFloat: Speed of far clutter coloration (1 = linear, 2 = quadratic, etc.)\n\n```cpp\nclutterColoringFarSpeed = \"2.0f\"; //value used by Tanoa\n```\n\n##### clutterColoringFarStart\n\nFloat: Distance (in m) when clutterColoringFarCoef when we start to interpolate to clutterColoringFarCoef\n\n```cpp\nclutterColoringFarStart = \"20.0f\"; //value used by Tanoa\n```\n\n##### clutterDist\n\nInteger: How far clutter is visible\n\n```cpp\nclutterDist = 100; //value used by Tanoa\n```\n\n##### clutterGrid\n\nInteger: Controls density of clutters (size of square where single clutter is present)\n\n```cpp\nclutterGrid = 0.8; //value used by Tanoa\n```\n\n##### clutterRadius\n\nInteger: Maximal size of clutters (for clipping)\n\n```cpp\nclutterRadius = 1; //value used by Tanoa\n```\n\n##### clutterRoadwayCheckRadiusCoef\n\nFloat: Coefficient for clutter radius to check against roadways (0 = check only center, 1 = check whole radius)\n\n```cpp\nclutterRoadwayCheckRadiusCoef = \"0.8f\"; //value used by Tanoa\n```\n\n##### cutscenes[]\n\nArray:\n\n```cpp\ncutscenes[] = {\"Tanoa_intro1\"}; //value used by Tanoa\n```\n\n#### D\n\n##### description\n\nString: Name of the terrain\n\n```cpp\ndescription = \"$STR_A3_CFGWORLDS_TANOA0\"; //value used by Tanoa, corresponds to a stringtable entry\n```\n\n##### class DOFPars\n\nParameters for depth of field\n\n```cpp\nclass DOFPars\n{\n    // standard dof parameters\n    focusDistance = 25.0;\n    blur = 1.0;\n    farOnly = 1; //blur only far objects? (0 = disable, 1 = enable)\n\n    // underwater dof parameters (no goggles)\n    focusDistanceWater = 1.0;\n    blurWater = 1.3;\n    farOnlyWater = 1; //blur only far objects? (0 = disable, 1 = enable)\n\n    // underwater dof parameters (with goggles)\n    focusDistanceWaterGoggles = 4.0;\n    blurWaterGoggles = 1.0;\n    farOnlyWaterGoggles = 1; //blur only far objects? (0 = disable, 1 = enable)\n};\n```\n\n##### drawTaxiway\n\nInteger:\n\n```cpp\ndrawTaxiway = 0; //value used by Tanoa\n```\n\n##### dynLightMinBrightnessAbsolute\n\nInteger: These constants are used to determine the radius of dynamic lights. Radius is computed based on minimal brightness. Minimal brightness is computed: max(dynLightMinBrightnessAbsolute, sceneAmbient * dynLightMinBrightnessAmbientCoef) where sceneAmbient is current brightness of scene ambient light.\n\n```cpp\ndynLightMinBrightnessAbsolute = 0.05; //value used by Tanoa\n```\n\n##### dynLightMinBrightnessAmbientCoef\n\nInteger: These constants are used to determine the radius of dynamic lights. Radius is computed based on minimal brightness. Minimal brightness is computed: max(dynLightMinBrightnessAbsolute, sceneAmbient * dynLightMinBrightnessAmbientCoef) where sceneAmbient is current brightness of scene ambient light.\n\n```cpp\ndynLightMinBrightnessAmbientCoef = 0.5; //value used by Tanoa\n```\n\n#### E\n\n##### elevationOffset\n\nFloat:\n\n```cpp\nelevationOffset = 0; //value used by Tanoa\n```\n\n##### enableBloodSplashes\n\nInteger: Enable blood splashes\n\n```cpp\nenableBloodSplashes = 1; //value used by Tanoa\n```\n\n##### enableFootsteps\n\nInteger: Enable footsteps\n\n```cpp\nenableFootsteps = 1; //value used by Tanoa\n```\n\n##### enableTracks\n\nInteger: Enable vehicle tracks\n\n```cpp\nenableTracks = 1; //value used by Tanoa\n```\n\n##### class EnvMaps\n\n```cpp\nclass EnvMaps\n{\n    class EnvMap1\n    {\n        // overcast value for which this is used\n        overcast = 0;\n        texture = \"A3\\Map_Tanoabuka\\data\\env_land_ClearSky_ca.paa\";\n    };\n    class EnvMap2\n    {\n        // overcast value for which this is used\n        overcast = 0.4;\n        texture = \"A3\\Map_Tanoabuka\\data\\env_land_SemiCloudySky_ca.paa\";\n    };\n    class EnvMap3\n    {\n        // overcast value for which this is used\n        overcast = 0.8;\n        texture = \"A3\\Map_Tanoabuka\\data\\env_land_OvercastSky_ca.paa\";\n    };\n};\n```\n\n##### envTexture\n\nString: Set global envTexture to be used instead of assets specific one if defined for the world.\n\n```cpp\nenvTexture = \"\"; //value used by Tanoa\n```\n\n#### F\n\n##### fogBeta0Max\n\nInteger: beta0 (macroscopic cross-section of atmospheric scatterers at base level) for fog value 1\n\n```cpp\nfogBeta0Max = 0.05; //value used by Tanoa\n```\n\n##### fogBeta0Min\n\nInteger: beta0 (macroscopic cross-section of atmospheric scatterers at base level) for fog value 0\n\n```cpp\nfogBeta0Min = 0; //value used by Tanoa\n```\n\n##### fogHeight\n\nInteger: Max height of the Arma fog for clouds (in meters)\n\n```cpp\nfogHeight = 2000; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### forecastFog\n\nInteger:\n\n```cpp\nforecastFog = 0; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### forecastFogBase\n\nInteger: Base forecasted altitude for fog computations (in meters)\n\n```cpp\nforecastFogBase = 250; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### forecastFogDecay\n\nInteger: Forecasted decay coefficient - decay of fog with altitude\n\n```cpp\nforecastFogDecay = 0.014; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### forecastGusts\n\nInteger: Forecasted gusts\n\n```cpp\nforecastGusts = 0; //value used by Tanoa\n```\n\nRelated commands: gusts, setGusts\n\n##### forecastLightnings\n\nInteger: Forecasted lightning\n\n```cpp\nforecastLightnings = 0; //value used by Tanoa\n```\n\nRelated commands: lightnings, setLightnings\n\n##### forecastRain\n\nInteger:\n\n```cpp\nforecastRain = 0; //value used by Tanoa\n```\n\nRelated commands: rain, setRain\n\n##### forecastWaves\n\nInteger: Forecasted waves\n\n```cpp\nforecastWaves = 0.1; //value used by Tanoa\n```\n\nRelated commands: waves, setWaves\n\n##### forecastWeather\n\nInteger: Forecasted weather\n\n```cpp\nforecastWeather = 0; //value used by Tanoa\n```\n\n##### forecastWind\n\nInteger: Forecasted wind\n\n```cpp\nforecastWind = 0.1; //value used by Tanoa\n```\n\nRelated commands: wind, setWind\n\n##### forecastWindDir\n\nInteger: Forecasted wind direction\n\n```cpp\nforecastWindDir = 0; //value used by Tanoa\n```\n\nRelated commands: windDir, windDir\n\n##### fullDetailDist\n\nFloat: Distance where ground detail texture is fully visible (begin fading out)\n\n```cpp\nfullDetailDist = 5; //value used by Tanoa\n```\n\n#### G\n\n##### gridNumbersOverLines\n\nInteger: Displays Numbering over Grid lines instead between\n\n```cpp\ngridNumbersOverLines = 1; //value used by Tanoa\n```\n\n#### H\n\n##### haloObject\n\nString: Path to halo object model\n\n```cpp\nhaloObject = \"A3\\data_f\\sunhalo.p3d\"; //value used by Tanoa\n```\n\n##### hazeBaseBeta0\n\nInteger: Linear regression according to the base height. More information\n\n```cpp\nhazeBaseBeta0 = 8e-005; //value used by Tanoa\n```\n\n##### hazeBaseHeight\n\nInteger: Base height for the haze computation (in meters). More information\n\n```cpp\nhazeBaseHeight = 0; //value used by Tanoa\n```\n\n##### hazeDensityDecay\n\nInteger: Density decay based on height. More information\n\n```cpp\nhazeDensityDecay = 0.00036; //value used by Tanoa\n```\n\n##### hazeDistCoef\n\nInteger: Coefficient used to compute haze distance (haze distance = fogFar * hazeDistCoef), can be > 1. If the value is negative, then standard haze computation is used.\n\n```cpp\nhazeDistCoef = 0.1; //value used by Tanoa\n```\n\n##### hazeFogCoef\n\nInteger: Fog value, that we want to have at haze distance (=distance computed using hazeDistCoef), 0 = full fog, 1 = no fog. If the value is negative, then standard haze computation is used\n\n```cpp\nhazeFogCoef = 0.98; //value used by Tanoa\n```\n\n##### class HDRNewPars\n\n```cpp\nclass HDRNewPars\n{\n    //@{ global aperture settings\n    // global minimal possible aperture\n    minAperture = 0.00001;\n    // global maximal possible aperture\n    maxAperture = 256;\n    // how many times greater than standard avg luminance must be current avg luminance to reach current max aperture\n    apertureRatioMax = 4;\n    // how many times smaller than standard avg luminance must be current avg luminance to reach current min aperture\n    apertureRatioMin = 10;\n    //@}\n\n    //@{ Bloom settings\n    // image scale for bloom composition\n    bloomImageScale = 1.0;\n    // bloom scale for bloom composition\n    bloomScale = 0.3;\n    // bloom exponent for bloom computation\n    bloomExponent = 1.0;\n    // luminance offset for bloom computation\n    bloomLuminanceOffset = 0.8;\n    // luminance scale for bloom computation\n    bloomLuminanceScale = 1;\n    // luminance exponent for bloom computation\n    bloomLuminanceExponent = 1.2;\n    //@}\n\n    //@{ Tone mapping settings\n    // tonemapping method (0 = none, 1 = filmic, 2 = Reinhard)\n    tonemapMethod = 2;\n    // params for filmic tonemapping\n    // Uncharted 2 tone mappping filmic curve\n    // for more information see http://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting\n    tonemapShoulderStrength = 0.22;\n    tonemapLinearStrength = 0.30;\n    tonemapLinearAngle = 0.10;\n    tonemapToeStrength = 0.20;\n    tonemapToeNumerator = 0.01;\n    tonemapToeDenominator = 0.30;\n    tonemapLinearWhite = 11.2;\n    tonemapExposureBias = 2.0;\n    // params for Reinhard tonemapping\n    tonemapLinearWhiteReinhard = 2.5;\n    //@}\n\n    //@{ settings for NVG\n    // min aperture when using NVG\n    nvgApertureMin = 1;\n    // standard aperture when using NVG\n    nvgApertureStandard = 7;\n    // max aperture when using NVG\n    nvgApertureMax = 15;\n    // average scene luminance for standard aperture when using NVG\n    nvgStandardAvgLum = 3;\n    // light gain when using NVG\n    nvgLightGain = 100;\n    // use transition effects when going to/from NVG (0 = disable, 1 = enable)\n    nvgTransition = 1;\n    // transition coefficient when we are putting NVG on\n    nvgTransitionCoefOn = 40.0;\n    // transition coefficient when we are putting NVG off\n    nvgTransitionCoefOff = 0.01;\n    //@}\n\n    //@{ settings for night eye (blue shift)\n    // min avg intensity (when the night shift is at full effect)\n    nightShiftMinAperture = 0;\n    // max avg intensity (when the night shift is at zero effect and begins to take some effect, effect of night shift is then interpolated based on min and max aperture)\n    nightShiftMaxAperture = 0.002;\n    // maximal possible effect of night shift (0-1, 0 disables it)\n    nightShiftMaxEffect = 0.6;\n    // luminance scale to determine night shift effects for individual pixels\n    nightShiftLuminanceScale = 600;\n    //@}\n\n    //@{ settings for light adaptation\n    // speed factor for adapting to light (greater number = faster)\n    eyeAdaptFactorLight = 0.6;\n    // speed factor for adapting to dark (greater number = faster)\n    eyeAdaptFactorDark = 0.2;\n    //@}\n};\n```\n\n##### horizonFogColorationStart\n\nFloat: Starting vertical texture coordinate for horizon coloration with fog (use 1 to disable coloration)\n\n```cpp\nhorizonFogColorationStart = \"0.8f\"; //value used by Tanoa\n```\n\n##### horizonParallaxCoef\n\nInteger: Parallax coef used for shifting horizon - the higher the camera, the lower we want the horizon range to be placed use 0 to switch off shifting\n\n```cpp\nhorizonParallaxCoef = 0; //value used by Tanoa\n```\n\n##### horizonSunColorationIntensity\n\nFloat: Intensity coefficient for horizon coloration by Sun\n\n```cpp\nhorizonSunColorationIntensity = \"0.001f\"; //value used by Tanoa\n```\n\n##### horizonSunColorationScale\n\nInteger: Scale coefficient for horizon coloration by Sun\n\n```cpp\nhorizonSunColorationScale = 10; //value used by Tanoa\n```\n\n##### horizontObject\n\nString: Path to model used for horizon object\n\n```cpp\nhorizontObject = \"A3\\Map_Tanoabuka\\data\\horizon.p3d\"; //value used by Tanoa\n```\n\n##### humidityDownCoef\n\nInteger:\n\n```cpp\nhumidityDownCoef = 0.05; //value used by Tanoa\n```\n\n##### humidityUpCoef\n\nInteger:\n\n```cpp\nhumidityUpCoef = 0.1; //value used by Tanoa\n```\n\n#### I\n\n##### icon\n\nString:\n\n```cpp\nicon = \"\"; //value used by Tanoa\n```\n\n##### ilsDirection[]\n\nArray:\n\n```cpp\nilsDirection[] = {-0.2002, 0.087, 0.9798}; //value used by Tanoa\n```\n\n##### ilsPosition[]\n\nArray:\n\n```cpp\nilsPosition[] = {7085.57, 7681.84}; //value used by Tanoa\n```\n\n##### ilsTaxiIn[]\n\nArray:\n\n```cpp\nilsTaxiIn[] = {6942.61, 7386.26, 6933.84, 7429.14, 6971.82, 7500.5, 7039.36, 7652, 7043.89, 7676.38, 7057.89, 7705.92, 7073.11, 7708.36, 7085.32, 7700.25, 7087.86, 7688.26}; //value used by Tanoa\n```\n\n##### ilsTaxiOff[]\n\nArray:\n\n```cpp\nilsTaxiOff[] = {7220.87, 7017.23, 7198.22, 7021.06, 6985.25, 7287.09, 6955.16, 7323.2, 6942.61, 7386.26}; //value used by Tanoa\n```\n\n##### interpolateClutterColoring\n\nInteger: If we should use interpolation of clutter coloring coef based on distance of clutter from camera. (0 = false, 1 = true)\n\n```cpp\ninterpolateClutterColoring = 1; //value used by Tanoa\n```\n\n#### L\n\n##### landGrid\n\nInteger: Grid size\n\n```cpp\nlandGrid = 50; //value used by Tanoa\n```\n\n##### latitude\n\nInteger: Latitude on globe, positive is south\n\n```cpp\nlatitude = 17.698; //value used by Tanoa\n```\n\n##### layerMask\n\nString:\n\n```cpp\nlayerMask = \"\"; //value used by Tanoa\n```\n\n##### lightningsForced\n\nInteger: (0 = false, 1 = true)\n\n```cpp\nlightningsForced = 0; //value used by Tanoa\n```\n\n##### loadingTexts[]\n\nArray: Random text shown during loading screens\n\n```cpp\nloadingTexts[] = {\"The mining and heavy ship industry have already devastated many areas of the Tanoan paradise archipelago.\", \"During the hottest summers, there are many occurrences of native men missing in the jungle.\", \"Local tribes claim that huge reptilian creatures can be encountered at the foot of the volcano.\", \"The native people have turned many parts of the wild jungle into fertile fields and plantations.\", \"Around the Tanoa archipelago, the native people worship a god of fertility and festivity called Darkon.\", \"The name of the archipelago comes from the Fijian word tanoa which means a bowl (the main island resembles a large bowl).\", \"Once upon a time, there was a living, fire-breathing volcano...\"}; //value used by Tanoa\n```\n\n##### longitude\n\nInteger: Longitude on globe, positive is east\n\n```cpp\nlongitude = 178.783; //value used by Tanoa\n```\n\n#### M\n\n##### mapArea[]\n\nArray: Lon/lat coordinates (not in UTM to assure .kml precision). Looks in Arma 3 this parameter is not used anyhow. *[verify required]*\n\n```cpp\nmapArea[] = {\n    -20.268, 174.003, //Bottom Left\n    -20.1353, 174.146 //Top Right\n}; //value used by Tanoa\n```\n\n##### mapDrawingBrightnessModifier\n\nFloat: Modifier for brightness of satellite map textures drawn on the map display view\n\n```cpp\nmapDrawingBrightnessModifier = \"1.0f\"; //value used by Tanoa\n```\n\n##### mapSize\n\nInteger: Size of the map in meters\n\n```cpp\nmapSize = 15360; //value used by Tanoa\n```\n\n##### mapZone\n\nInteger: UTM Zone\n\n```cpp\nmapZone = 60; //value used by Tanoa\n```\n\n##### maxHillsAltitude\n\nInteger:\n\n```cpp\nmaxHillsAltitude = 450; //value used by Tanoa\n```\n\n##### midDetailTexture\n\nString: Path to mid detail texture used\n\n```cpp\nmidDetailTexture = \"A3\\Map_Tanoabuka\\Data\\L_middle_mco.paa\"; //value used by Tanoa\n```\n\n##### minHeight\n\nInteger: Min. height - used to clamp data inside of the map during rendering\n\n```cpp\nminHeight = -10; //value used by Tanoa\n```\n\n##### minHillsAltitude\n\nInteger:\n\n```cpp\nminHillsAltitude = 80; //value used by Tanoa\n```\n\n##### minRocksInRockSquare\n\nInteger: Minimum rocks needed in a square to show rock polygons on 2D map\n\n```cpp\nminRocksInRockSquare = 2; //value used by Tanoa\n```\n\n##### minTreesInForestSquare\n\nInteger: Minimum trees needed in a square to show forest polygons on 2D map\n\n```cpp\nminTreesInForestSquare = 3; //value used by Tanoa\n```\n\n##### minObjInTownSquare\n\nInteger: Unknown\n\n```cpp\nminObjInTownSquare = 1.4; //value used by Tanoa\n```\n\n##### moonObject\n\nString: Path to model used for moon object\n\n```cpp\nmoonObject = \"A3\\data_f\\moon.p3d\"; //value used by Tanoa\n```\n\n#### N\n\n##### class Names\n\n```cpp\nclass Names\n{\n    class SomeLocation\n    {\n        angle = 0;\n        demography = \"CIV\"; //not used by every location\n        name = \"Some Location Name\"; //name of the location, can be stringtable entry\n        position[] = {2089.06, 3523.68}; //position in world\n        radiusA = 300;\n        radiusB = 100;\n        type = \"Airport\";\n    };\n};\n```\n\n##### newRoadsShape\n\nString: Path to roads shape file\n\n```cpp\nnewRoadsShape = \"A3\\Map_Tanoabuka\\data\\roads\\roads.shp\"; //value used by Tanoa\n```\n\n##### noDetailDist\n\nInteger: Where ground detail texture is no longer visible (end fading out)\n\n```cpp\nnoDetailDist = 50; //value used by Tanoa\n```\n\n##### class NVGPars\n\n```cpp\nclass NVGPars\n{\n    // is film grain enabled for NVG (0 = disabled, 1 = enabled)?\n    filmGrainEnabled = true;\n    // film grain params (intensity, sharpness, grain size, intensityX0, intensityX1, monochromatic (0=mono, 1=color))\n    filmGrainPars[] = {0.4, 2.75, 1, 3, 1, 0};\n};\n```\n\n#### O\n\n##### outsideHeight\n\nInteger: Height used outside of the map\n\n```cpp\noutsideHeight = -10; //value used by Tanoa\n```\n\n##### outsideMaterial\n\nString:\n\n```cpp\noutsideMaterial = \"\"; //value used by Tanoa\n```\n\n##### class OutsideTerrain\n\n```cpp\nclass OutsideTerrain\n{\n    colorOutside[] = {0.227451, 0.27451, 0.384314, 1};\n    enableTerrainSynth = 0; // enable procedural terrain generation, can cause issues in some circumstances (0 = disable, 1 = enable)\n    satellite = \"A3\\map_Stratis\\data\\s_satout_co.paa\"; // defines the satellite texture to be used outside of the terrain when viewing from a distance\n    class Layers\n    {\n        class Layer0\n        {\n            nopx = \"A3\\Map_Data\\gdt_grass_green_nopx.paa\"; // defines the parallax texture to be used outside of the terrain when viewing from close\n            texture = \"A3\\Map_Data\\gdt_grass_green_co.paa\"; // defines the diffuse texture to be used outside of the terrain when viewing from close\n        };\n    };\n\n    angleAltitudes[] = { { min1, max1 }, ... , { min512, max512 } };    // since Arma 3 v2.04 - min and max height for out-of-bounds terrain (360°/512 angles)\n                                                                        // angle starts from the East, next values go counter-clockwise up to 512 entries\n    analysisLength = 123;                                                // since Arma 3 v2.04 - altitude analysis distance from terrain's border towards its centre\n};\n```\n\n#### P\n\n##### peakWaveBottom\n\nInteger: Point where water peaks should start appearing\n\n```cpp\npeakWaveBottom = -5; //value used by Tanoa\n```\n\n##### peakWaveTop\n\nInteger: Point where water peaks should be max. visible before going offshore\n\n```cpp\npeakWaveTop = -1; //value used by Tanoa\n```\n\n##### pictureMap\n\nString: Path to map picture shown on world selection screen and background of loading screen for that terrain.\n\n```cpp\npictureMap = \"A3\\Map_Tanoabuka\\data\\pictureMap_ca.paa\"; //value used by Tanoa\n```\n\n##### plateFormat\n\nString:\n\n```cpp\nplateFormat = \"T#$-####\"; //value used by Tanoa\n```\n\n##### plateLetters\n\nString:\n\n```cpp\nplateLetters = \"ABCDEGHIKLMNOPRSTVXZ\"; //value used by Tanoa\n```\n\n##### pointObject\n\nString: Path to model used for point object\n\n```cpp\npointObject = \"A3\\data_f\\point.p3d\"; //value used by Tanoa\n```\n\n##### previewVideo\n\nString: Path to video used for video preview in main menu for the terrain\n\n```cpp\npreviewVideo = \"A3\\Map_Tanoa_Scenes_F\\Video\\previewVideo.ogv\"; //value used by Tanoa\n```\n\n#### R\n\n##### class Rain\n\n```cpp\nclass Rain\n{\n    levels[] = {8, 2};\n    raindrop = \"\\A3\\data_f\\raindrop.p3d\"; //path to model used for rain drop\n    speed = 1;\n    texture = \"A3\\data_f\\rain_ca.paa\"; //path to texture used for rain drop\n};\n```\n\n##### rainbowObject\n\nString: Path to model used for rainbow object\n\n```cpp\nrainbowObject = \"A3\\data_f\\rainbow.p3d\"; //value used by Tanoa\n```\n\n##### rainForced\n\nInteger: (0 = false, 1 = true)\n\n```cpp\nrainForced = 0; //value used by Tanoa\n```\n\n##### class RainParticles\n\n> [!NOTE]\n> When **snow** param is true the following changes occur in the engine:\n>\n> - environmental 'snow' sound controller is set to 1\n> - environmental 'rain' sound controller is set to 0\n> - thunder and lightnings effects are disabled\n> - humidity stops updating (use setHumidity if specific value is needed)\n\n```cpp\nclass RainParticles\n{\n    // Parameters for the new particle rain\n    // texture of the particle (r = alpha; g = normalX; b = normalY; a = color;)\n    rainDropTexture=PathDTextureAbs;\n    // dropsInTexture - the number of drops that are present in the drop texture\n    texDropCount=4;\n    // minimum rain strength when the effect starts to be rendered\n    minRainDensity = 0.01;\n    // distance of the effect\n    effectRadius=15;\n    // coefficient of how much the wind influences water drops\n    windCoef=0.05;\n    // fall speed of the drops\n    dropSpeed=15.0;\n    // random part of the fall speed\n    rndSpeed=0.2;\n    // coefficient of how much the drop could randomly change direction\n    rndDir=0.1;\n    // width of the single drop\n    dropWidth=0.04;\n    // height of the single drop\n    dropHeight=0.8;\n    // color of the drop\n    dropColor[]={0.1, 0.1, 0.1, 0.1};\n    // luminescence of the drop facing to sun\n    lumSunFront=0.3;\n    // luminescence of the drop opposite to sun\n    lumSunBack=0.1;\n    // coefficient that tells us how much \"refracted\" light from the scene is added to the drop color\n    refractCoef=0.3;\n    // coefficient to tune color saturation of the refraction effect (0=BW, 1=original color)\n    refractSaturation = 0.3;\n\n    // SINCE Arma 3 v2.07.148385\n    // rain is snow, will be used in \"snow\" env sound controller (optional, default is false)\n    snow=false;\n    // SINCE Arma 3 v2.07.148416\n    // when true, the dropColor is preserved and not affected by eye accommodation (optional, default is false)\n    dropColorStrong=false;\n};\n```\n\n#### S\n\n##### safePositionAnchor[]\n\nArray: Used for random safe position finding.\n\n```cpp\nsafePositionAnchor[] = {9158, 9962}; //value used by Tanoa\n```\n\n##### safePositionRadius\n\nInteger: Used for random safe position finding.\n\n```cpp\nsafePositionRadius = 100; //value used by Tanoa\n```\n\n##### satelliteMap\n\nString:\n\n```cpp\nsatelliteMap = \"\"; //value used by Tanoa\n```\n\n##### satelliteNormalBlendEnd\n\nInteger: Distance, where blending of detail normal ends (satellite normal is fully visible)\n\n```cpp\nsatelliteNormalBlendEnd = 100; //value used by Tanoa\n```\n\n##### satelliteNormalBlendStart\n\nInteger: Distance, where ground detail normal is starts to blend to satellite normal texture\n\n```cpp\nsatelliteNormalBlendStart = 10; //value used by Tanoa\n```\n\n##### satelliteNormalOnDetail\n\nInteger: If the satellite normal map on detail maps is enabled. (0 = false, 1 = true)\n\n```cpp\nsatelliteNormalOnDetail = 1; //value used by Tanoa\n```\n\n##### seaBedUnderwaterDepth\n\nInteger: Depth of sea bed plane under water, positive value means depth under water, negative value means autodetection.\n\n```cpp\nseaBedUnderwaterDepth = 52; //value used by Tanoa\n```\n\n##### seagullPos[]\n\nArray:\n\n```cpp\nseagullPos[] = {1024, 130, 1024}; //value used by Tanoa\n```\n\n##### seaMaterial\n\nString: Water material is used for sea landscape parts\n\n```cpp\nseaMaterial = \"#water\"; //value used by Tanoa\n```\n\n##### seaTexture\n\nString: Wave detection texture expected by the shaders\n\n```cpp\nseaTexture = \"#(rgb,8,8,3)color(0,0,0,1)\"; //value used by Tanoa\n```\n\n##### class SeaWaterShaderPars\n\n```cpp\nclass SeaWaterShaderPars\n{\n    // coefficient used to multiply move value of refractions\n    refractionMoveCoef = 0.01;\n    // minimal water surface opacity, when we are looking from above the water surface down\n    minWaterOpacity = 0.65;\n    // coef used to multiply square root of distance of pixel from water surface when coputing final opacity of water surface\n    // waterOpacity = MinWaterOpacity + sqrt(distance)*WaterOpacityDistCoef;\n    waterOpacityDistCoef = 0.07;\n    // opacity of water surface when we are under water\n    underwaterOpacity = 0.2;\n    // distance from object, where we start to fade the water surface to full opacity\n    waterOpacityFadeStart = 100;\n    // length of water surface opacity fading\n    waterOpacityFadeLength = 20;\n};\n```\n\nFor more information see the Visual update documentation.\n\n##### shoreFoamMaterial\n\nString: Shore material is used for sea and landscape interface parts - the foam part\n\n```cpp\nshoreFoamMaterial = \"#shoreFoam\"; //value used by Tanoa\n```\n\n##### shoreMaterial\n\nString: Shore material is used for sea and landscape interface parts\n\n```cpp\nshoreMaterial = \"#shore\"; //value used by Tanoa\n```\n\n##### shoreTop\n\nInteger: Top point where water is considered off-shore\n\n```cpp\nshoreTop = 0; //value used by Tanoa\n```\n\n##### shoreWetMaterial\n\nString: Shore wet material is used for sea and landscape interface parts - the wet part\n\n```cpp\nshoreWetMaterial = \"#shoreWet\"; //value used by Tanoa\n```\n\n##### skyColorInfluencesFogColor\n\nArma 3 v1.60\nInteger: If sky color influences fog color. (0 = false, 1 = true) More information\n\n```cpp\nskyColorInfluencesFogColor = 0; //value used by Tanoa\n```\n\n##### skyFogColorationStart\n\nFloat: Starting vertical texture coordinate for skybox coloration with fog (use 1 to disable coloration)\n\n```cpp\nskyFogColorationStart = \"0.7f\"; //value used by Tanoa\n```\n\n##### skyObject\n\nString: Path to model used for sky object\n\n```cpp\nskyObject = \"A3\\Map_Tanoabuka\\data\\skydome.p3d\"; //value used by Tanoa\n```\n\n##### skyTexture\n\nString: Path to sky texture\n\n```cpp\nskyTexture = \"A3\\Map_Tanoabuka\\data\\sky_semicloudy_sky.paa\"; //value used by Tanoa\n```\n\n##### skyTextureR\n\nString: Path to sky reflection texture, used only as default when there is no weather\n\n```cpp\nskyTextureR = \"A3\\Map_Tanoabuka\\data\\sky_semicloudy_lco.paa\"; //value used by Tanoa\n```\n\n##### soundMapSizeCoef\n\nInteger: Defines size of soundMap as multiplier of landRange (soundMap.dimX = landRange * soundMapCoef). In more simple terms how detailed/rough the environment sounds areas are to be computed (trees, houses, sea, meadows).\n\n```cpp\nsoundMapSizeCoef = 4; //value used by Tanoa\n```\n\n##### class SpriteRefractionPars\n\n```cpp\nclass SpriteRefractionPars\n{\n    // scale of refraction (R, G, B - you can use different values to achieve abberation effect)\n    refractScale[] = {0.02, 0.02, 0.02};\n    // animation time coef (horizontal, vertical), use {0,0, 0} for no animation (third value not used)\n    timeScale[] = {0.03, 0.03, 0.0};\n};\n```\n\n##### starsObject\n\nString: Path to model used for stars object\n\n```cpp\nstarsObject = \"A3\\data_f\\stars.p3d\"; //value used by Tanoa\n```\n\n##### startDate\n\nString: Start date when terrain is loaded without a date preset (e.g. loading into editor)\n\n```cpp\nstartDate = \"6/6/2035\"; //value used by Tanoa\n```\n\n##### startFog\n\nInteger: Start fog\n\n```cpp\nstartFog = 0; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### startFogBase\n\nInteger: Start base altitude for fog computations (in meters)\n\n```cpp\nstartFogBase = 250; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### startFogDecay\n\nInteger: Start decay coefficient - decay of fog with altitude\n\n```cpp\nstartFogDecay = 0.014; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast\n\n##### startGusts\n\nInteger: Start gusts\n\n```cpp\nstartGusts = 0; //value used by Tanoa\n```\n\nRelated commands: gusts, setGusts\n\n##### startLightnings\n\nInteger: Start lightning\n\n```cpp\nstartLightnings = 0; //value used by Tanoa\n```\n\nRelated commands: lightnings, setLightnings\n\n##### startRain\n\nInteger: Start rain\n\n```cpp\nstartRain = 0; //value used by Tanoa\n```\n\nRelated commands: rain, setRain\n\n##### startTime\n\nString: Start time (military time)\n\n```cpp\nstartTime = \"12:00\"; //value used by Tanoa\n```\n\n##### startWaves\n\nInteger: Start waves\n\n```cpp\nstartWaves = 0.1; //value used by Tanoa\n```\n\nRelated commands: waves, setWaves\n\n##### startWeather\n\nInteger:\n\n```cpp\nstartWeather = 0.3; //value used by Tanoa\n```\n\n##### startWind\n\nInteger:\n\n```cpp\nstartWind = 0.1; //value used by Tanoa\n```\n\nRelated commands: wind, setWind\n\n##### startWindDir\n\nInteger:\n\n```cpp\nstartWindDir = 0; //value used by Tanoa\n```\n\nRelated commands: windDir, windDir\n\n##### class Subdivision\n\nFractal and white noise random offset are added. White noise generated more \"wild\" terrain, while fractal tends to generate smooth, varied terrain\n\n```cpp\nclass Subdivision\n{\n    // fractal component of subdivision\n    // changes are smaller for smaller rectangles\n    class Fractal\n    {\n        // texture roughness factor\n        rougness = 10;\n        // max. value for squares containing road\n        maxRoad = 0.2;\n        // max. value for squares containing track\n        maxTrack = 1.0;\n        // max. coeficient depending on slope\n        maxSlopeFactor = 0.05;\n    };\n    // white noise component of subdivision\n    // change size is independent on rectangle size\n    class WhiteNoise\n    {\n        rougness = 5;\n        // max. value for squares containing road\n        maxRoad = 0.1;\n        // max. value for squares containing track\n        maxTrack = 0.5;\n        // max. coeficient depending on slope\n        maxSlopeFactor = 0.025;\n    };\n\n    // do not divide surfaces that are under given limit\n    minY = -0.0;\n    // do not divide flat surfaces\n    minSlope = 0.02;\n};\n```\n\n##### sunObject\n\nString: Path to model used for sun object\n\n```cpp\nsunObject = \"A3\\data_f\\sun.p3d\"; //value used by Tanoa\n```\n\n#### T\n\n##### terrainBlendMaxBrightenCoef\n\nFloat: Maximal brightening coef for blending of satellite map and detail map on terrain (default = 1.0f, no brightening = 0.0f)\n\n```cpp\nterrainBlendMaxBrightenCoef = \"0.0f\"; //value used by Tanoa\n```\n\n##### terrainBlendMaxDarkenCoef\n\nFloat: Maximal darkening coef for blending of satellite map and detail map on terrain (default = 0.0f, no darkening = 1.0f)\n\n```cpp\nterrainBlendMaxDarkenCoef = \"1.0f\"; //value used by Tanoa\n```\n\n##### terrainMaterial\n\nString: Terrain material is used for terrain solid ground, by default load from CfgMaterials\n\n```cpp\nterrainMaterial = \"#terrain\"; //value used by Tanoa\n```\n\n##### timeOfChanges\n\nDefault time (in seconds) over which the weather changes. BI terrains usually have this set to 30 mins (i.e. 1800s). Mission maker can change this value from the weather settings window in the Eden editor.\n\nInteger:\n\n```cpp\ntimeOfChanges = 1800; //value used by Tanoa\n```\n\n#### U\n\n##### class Underwater\n\nParameters for underwater fog\n\n```cpp\nclass Underwater\n{\n    /// fog color is changed based on the depth under the water surface\n    /// normal fog color    -> water color    -> deep water color\n    /// ^\n    /// noWaterFog            -> fullWaterFog    -> deepWaterFog\n\n    /// depth under the water, where water color starts (can be negative = distance above water)\n    noWaterFog = -0.3;\n    /// depth under the water, where water color is at full strength and deep water color starts\n    fullWaterFog = 0.1;\n    /// depth under the water, where deep water color is at full strength\n    deepWaterFog = 10;\n\n    /// distance of the water fog (fog far)\n    waterFogDistance = 20;\n    /// distance of the water fog (fog near)\n    waterFogDistanceNear = 0;\n\n    /// color of the water fog at fullWaterFog depth\n    waterColor[] = {0.02,0.08,0.12};\n    /// color of the water fog at deepWaterFog depth\n    deepWaterColor[] = {0.01,0.06,0.14};\n\n    /// skyTopColor (zenith) at fullWaterFog depth (reflections on water surface?)\n    surfaceColor[] = {0.20,0.30,0.25};\n    /// skyTopColor (zenith) at deepWaterFog depth (reflections on water surface?)\n    deepSurfaceColor[] = {0.10,0.18,0.22};\n};\n```\n\nFor more information see the Visual update documentation.\n\n##### underwaterOcclusionObject\n\nString: Path to model used for underwater occlusion object\n\n```cpp\nunderwaterOcclusionObject = \"A3\\data_f\\horizont_sphere.p3d\"; //value used by Tanoa\n```\n\n#### W\n\n##### class WaterExPars\n\n```cpp\n// parameters for water in expansion\nclass WaterExPars\n{\n    // base density for water fog (exp coef used for water fog computation) (_A3_MULTI_COMPONENT_FOG)\n    fogDensity = 0.04;\n\n    // color of the water fog when the camera is on or above water surface\n    fogColor[] = { 0.003, 0.005, 0.01 };\n\n    // coefficients for water fog color extinction based on depth of the camera under water (coefs for RGB)\n    // this influences how fast the water fog color darkens when camera moves under water (depends on camera position)\n    fogColorExtinctionSpeed[] = { 0.2, 0.1, 0.04 };\n\n    // defines how light influences fog color (r = ambient influence, g = diffuse (sun) influence, b = overall light influence)\n    fogColorLightInfluence[] = { 0.6, 0.15, 0.5 };\n\n    // coefficient for water fog gradient (MIN coef, MIDDLE coef, MAX coef)\n    fogGradientCoefs[] = { 0.4, 1.0, 1.5 };\n\n    // coefficients for light extinction in water based on the point under water (coefs for RGB)\n    // this influences extinction of ambient light under water (depends on shaded point position)\n    ligtExtinctionSpeed[] = { 0.3, 0.1, 0.05 };\n    // coefficients for diffuse light extinction\n    diffuseLigtExtinctionSpeed[] = { 0.3, 0.1, 0.05 };\n\n    // screen space reflections - strength of reflections\n    // [0,1] (0 = no reflections, 1 = full reflections)\n    ssReflectionStrength = 0.85;\n    // screen space reflections - max. jitter used when sampling - this is used to randomize artifacts caused by sparse sampling\n    // [0,1] (0 = no jitter, 1 = max jitter)\n    ssReflectionMaxJitter = 1.0;\n    // screen space reflections - how much small ripples (from water normal map) influence the reflection\n    // [0,1] (0 = no influence, 1 = max influence)\n    ssReflectionRippleInfluence = 0.15;\n    // screen space reflections - coefficient for fading of reflection near screen borders (larger number = faster fading)\n    ssReflectionEdgeFadingCoef = 10.0;\n    // screen space reflections - coefficient for fading of reflection based on distance (larger number = faster fading)\n    ssReflectionDistFadingCoef = 4.0;\n\n    // minimal coef for refraction (at water surface)\n    refractionMinCoef = 0.02;\n    // maximal coef for refraction (at refractionMaxDist)\n    refractionMaxCoef = 0.07;\n    // distance (in meters) of the point from water surface, where refraction coefficient becomes refractionMaxCoef;\n    refractionMaxDist = 20.0;\n\n    // water surface opacity (should be 0 because of multicomponent fog, use higher values for debugging (-> Buldozer))\n    surfaceOpacity = 0.0;\n\n    // intensity of shadow on the water (1 = full shadow, 0 = no shadow)\n    shadowIntensity = 0.5;\n\n    // max intensity of specular on water\n    specularMaxIntensity = 25.0;\n    // specular power for overcast 0\n    specularPowerOvercast0 = 200.0;\n    // specular power for overcast 1\n    specularPowerOvercast1 = 50.0;\n    // how much we modify the normal for specular computation (0 = no modification, 1 = full modification)\n    specularNormalModifyCoef = 1.0;\n\n    // intensity of foam around objects\n    foamAroundObjectsIntensity = 0.25;\n    // coef for fading of foam (larger number = faster fade)\n    foamAroundObjectsFadeCoef = 8.0;\n    // coef for color of the foam\n    foamColorCoef = 2.0;\n    // coef for deformation of foam texture based on normal of water\n    foamDeformationCoef = 0.02;\n    // coef for mapping of foam texture based on world coordinates\n    foamTextureCoef = 0.2;\n    // speed of movement of foam based on time\n    foamTimeMoveSpeed = 0.2;\n    // amount of movement of foam based on time\n    foamTimeMoveAmount = 0.1;\n\n    // darkening of terrain near shore params\n    // maximal darkening coef (1.0 = max darkening, 0.0 = no darkening)\n    shoreDarkeningMaxCoef = 0.5;\n    // height offset above water level, where darkening is in its full power\n    shoreDarkeningOffset = 0.2;\n    // darkening gradient size\n    shoreDarkeningGradient = 0.2;\n\n    // speed of the waves (scaling of time)\n    shoreWaveTimeScale = 0.8;\n    // offset used to delay when the thick edge of foam appears and dissolves based on wave phase\n    shoreWaveShifDerivativeOffset = -0.8;\n    // overall shore foam intensity\n    shoreFoamIntensity = 0.5;\n    // max wave height on shore (in meters)\n    shoreMaxWaveHeight = 0.15;\n    // reflection intensity on the shore wet layer\n    shoreWetLayerReflectionIntensity = 1.0;\n};\n```\n\nFor more information see the Visual update documentation.\n\n##### waterTexture\n\nString:\n\n```cpp\nwaterTexture = \"#(argb,8,8,3)color(0.35,0.47,0.66,1)\"; //value used by Tanoa\n```\n\n##### wavesForced\n\nInteger: (0 = false, 1 = true)\n\n```cpp\nwavesForced = 0; //value used by Tanoa\n```\n\n##### windForced\n\nInteger: (0 = false, 1 = true)\n\n```cpp\nwindForced = 0; //value used by Tanoa\n```\n\n##### worldName\n\nString: Path to WRP\n\n```cpp\nworldName = \"A3\\Map_Tanoabuka\\Tanoa.wrp\"; //value used by Tanoa\n```","sections":[{"heading":null,"level":1,"markdown":"> [!WARNING]\n> This reference page was created for Arma 3 v1.66+, some fields may not exist in prior games and versions."},{"heading":"A","level":4,"markdown":""},{"heading":"class AmbientA3","level":5,"markdown":"```cpp\nclass AmbientA3\n{\n    maxCost = 500; // max. cost of all animals spawned by the ambient system\n\n    class Main_spawn_circle_name\n    {\n        areaSpawnRadius = 440.0;    // radius of the main spawn circle, testing circles are placed on this radius\n        areaMaxRadius = 500.0;        // radius where animals are removed\n        spawnCircleRadius = 30.0;    // radius of testing circles\n        spawnInterval = 4.7;        // how often is the creation process started in seconds\n\n        class Species\n        {\n            class Animal_config_class    // class of animal from CfgVehicles\n            {\n                maxCircleCount = 5;        // expression - max. number of a given kind in testing circle\n                maxWorldCount = 8;        // max. number of animals on map\n                cost = 3;                // cost of animal\n                spawnCount = 1;            // how many animals should be spawned at once\n                groupSpawnRadius = 10;    // radius for spawning of animal group\n                maxAlt = 200;            // if defined, an animal can be created only if [camera height above/under water/ground] < maxAlt\n                minAlt = -10;            // if defined, an animal can be created only if [camera height above/under water/ground] > minAlt\n            };\n        };\n    };\n};\n```\n\nFor more information visit the Ambient Animals System Page"},{"heading":"class AnomalyPars","level":5,"markdown":"```cpp\nclass AnomalyPars\n{\n    // outer model (should be sphere with radius of 1 and normals directed outwards)\n    outerModel = \"\"; /// path should be defined in data\n    // inner model (should be sphere with radius of 1 and normals directed inwards)\n    innerModel = \"\"; /// path should be defined in data\n    // scale of refraction (R, G, B - you can use different values to achieve abberation effect)\n    refractScale[] = {0.04, 0.03, 0.05};\n    // animation time coef (horizontal, vertical), use {0,0, 0} for no animation (third value not used)\n    timeScale[] = {0.03, 0.03, 0.0};\n    // distance (in meters) from the anomaly boundary, where the postprocess effect should be used (0 = no postprocess)\n    postProcessDistance = 3.0;\n};\n```"},{"heading":"aroundSunCoefExponent","level":5,"markdown":"Arma 3 v1.60\nFloat: Modifiers of around sun coefficient for pixel shader computations.\n\n```cpp\n// coef = pow(coef * _aroundSunCoefMultiplier, _aroundSunCoefExponent);\naroundSunCoefExponent = \"12.0f\"; //value used by BI in all A3 terrains\n```"},{"heading":"aroundSunCoefMultiplier","level":5,"markdown":"Arma 3 v1.60\nFloat: Modifiers of around sun coefficient for pixel shader computations.\n\n```cpp\n// coef = pow(coef * _aroundSunCoefMultiplier, _aroundSunCoefExponent);\naroundSunCoefMultiplier = \"1.4f\"; //value used by BI in all A3 terrains\n```"},{"heading":"author","level":5,"markdown":"String: Defines the author of the world, which is shown in the loading screen\n\n```cpp\nauthor = \"$STR_A3_Bohemia_Interactive\"; //value used by Tanoa, $STR_A3_Bohemia_Interactive corresponds to a stringtable entry\n```"},{"heading":"C","level":4,"markdown":""},{"heading":"causticsBrightnessCoef","level":5,"markdown":"Float: Brightness coefficient\n\n```cpp\naroundSunCoefMultiplier = \"1.4f\"; //value used by BI in all A3 terrains\n```"},{"heading":"causticsDepthFadeCoef","level":5,"markdown":"Float: Coef used for caustics intensity fading with depth (how fast the intensity fades with depth), 1.0 = linear, 2.0 = quadratic,...\n\n```cpp\ncausticsDepthFadeCoef = \"0.05f\"; //value used by Tanoa\n```"},{"heading":"causticsDepthLimit","level":5,"markdown":"Float: Depth limit (under water) for caustics drawing (in m)\n\n```cpp\ncausticsDepthLimit = \"80.0f\"; //value used by Tanoa\n```"},{"heading":"causticsDistanceLimit","level":5,"markdown":"Float: Distance limit for caustics drawing (in m)\n\n```cpp\ncausticsDistanceLimit = \"200.0f\"; //value used by Tanoa\n```"},{"heading":"causticsEnabled","level":5,"markdown":"Integer: Enable/disable caustics\n\n```cpp\ncausticsEnabled = 1; //value used by Tanoa\n```"},{"heading":"causticsTexture","level":5,"markdown":"String: Caustics texture path\n\n```cpp\ncausticsTexture = \"A3\\data_f\\caustics\\caustic_anim_ca.paa\"; //value used by Tanoa\n```"},{"heading":"causticsTextureArea","level":5,"markdown":"Float: Length of the side of the rectangle, that covers one caustics texture (in meters) in zero depth\n\n```cpp\ncausticsTextureArea = \"2.0f\"; //value used by Tanoa\n```"},{"heading":"causticsTextureAreaDeep","level":5,"markdown":"Float: Length of the side of the rectangle, that covers one caustics texture (in meters) in max depth causticsDepthLimit(causticsDepthLimit)\n\n```cpp\ncausticsTextureAreaDeep = \"156.0f\"; //value used by Tanoa\n```"},{"heading":"causticsTextureChangeInterval","level":5,"markdown":"Float: Interval of texture change (in s)\n\n```cpp\ncausticsTextureChangeInterval = \"0.04f\"; //value used by Tanoa\n```"},{"heading":"causticsTextureCount","level":5,"markdown":"Integer: Number of caustics textures\n\n```cpp\ncausticsTextureCount = 32; //value used by Tanoa\n```"},{"heading":"causticsTextureDepthGranularity","level":5,"markdown":"Float: Distance (in meters) over which we interpolate two caustics textures (in different depth)\n\n```cpp\ncausticsTextureDepthGranularity = \"2.5f\"; //value used by Tanoa\n```"},{"heading":"causticsTextureMask","level":5,"markdown":"String: Caustics texture mask path\n\n```cpp\ncausticsTextureMask = \"A3\\data_f\\caustics\\caustics_anim_%03d.paa\"; //value used by Tanoa\n```"},{"heading":"causticsTextureNumRows","level":5,"markdown":"Integer: Number of textures in one row in caustic texture (we suppose that number of rows and columns is the same)\n\n```cpp\ncausticsTextureNumRows = 4; //value used by Tanoa\n```"},{"heading":"centerPosition[]","level":5,"markdown":"Array: Default center position\n\n```cpp\ncenterPosition[] = {7228, 6987, 0}; //value used by Tanoa\n```"},{"heading":"clouds[]","level":5,"markdown":"Array:\n\n```cpp\nclouds[] = {\"A3\\data_f\\mrak1.p3d\", \"A3\\data_f\\mrak2.p3d\", \"A3\\data_f\\mrak3.p3d\", \"A3\\data_f\\mrak4.p3d\"}; //value used by Tanoa\n```"},{"heading":"class clutter","level":5,"markdown":"```cpp\nclass clutter\n{\n    class YourClutterName : DefaultClutter\n    {\n        // Determines the affection of the clutter to the wind (0 - stone, 1 - common grass)\n        affectedByWind = 0;\n        // Path to your clutter model\n        model = \"path\\to\\your\\clutter.p3d\";\n        // If colored by the ground, desired color relative to the ground\n        relativeColor[] = {1, 1, 1, 1}; //not used in any A3 Clutter configs\n        // Maximal scale for random clutter scaling\n        scaleMax = 1.0;\n        // Minimal scale for random clutter scaling\n        scaleMin = 0.5;\n        // Use default lighting (0 = disable, 1 = enable). This should be enabled if your clutter uses the \"Grass\" pixel or vertex shader, otherwise it should be disabled\n        swLighting = 1;\n    };\n};\n```"},{"heading":"clutterColoringFarCoef","level":5,"markdown":"Float: Max coef for clutter coloring at far distance (must be >=1, large coef means we can colorize more)\n\n```cpp\nclutterColoringFarCoef = \"5.0f\"; //value used by Tanoa\n```"},{"heading":"clutterColoringFarSpeed","level":5,"markdown":"Float: Speed of far clutter coloration (1 = linear, 2 = quadratic, etc.)\n\n```cpp\nclutterColoringFarSpeed = \"2.0f\"; //value used by Tanoa\n```"},{"heading":"clutterColoringFarStart","level":5,"markdown":"Float: Distance (in m) when clutterColoringFarCoef when we start to interpolate to clutterColoringFarCoef\n\n```cpp\nclutterColoringFarStart = \"20.0f\"; //value used by Tanoa\n```"},{"heading":"clutterDist","level":5,"markdown":"Integer: How far clutter is visible\n\n```cpp\nclutterDist = 100; //value used by Tanoa\n```"},{"heading":"clutterGrid","level":5,"markdown":"Integer: Controls density of clutters (size of square where single clutter is present)\n\n```cpp\nclutterGrid = 0.8; //value used by Tanoa\n```"},{"heading":"clutterRadius","level":5,"markdown":"Integer: Maximal size of clutters (for clipping)\n\n```cpp\nclutterRadius = 1; //value used by Tanoa\n```"},{"heading":"clutterRoadwayCheckRadiusCoef","level":5,"markdown":"Float: Coefficient for clutter radius to check against roadways (0 = check only center, 1 = check whole radius)\n\n```cpp\nclutterRoadwayCheckRadiusCoef = \"0.8f\"; //value used by Tanoa\n```"},{"heading":"cutscenes[]","level":5,"markdown":"Array:\n\n```cpp\ncutscenes[] = {\"Tanoa_intro1\"}; //value used by Tanoa\n```"},{"heading":"D","level":4,"markdown":""},{"heading":"description","level":5,"markdown":"String: Name of the terrain\n\n```cpp\ndescription = \"$STR_A3_CFGWORLDS_TANOA0\"; //value used by Tanoa, corresponds to a stringtable entry\n```"},{"heading":"class DOFPars","level":5,"markdown":"Parameters for depth of field\n\n```cpp\nclass DOFPars\n{\n    // standard dof parameters\n    focusDistance = 25.0;\n    blur = 1.0;\n    farOnly = 1; //blur only far objects? (0 = disable, 1 = enable)\n\n    // underwater dof parameters (no goggles)\n    focusDistanceWater = 1.0;\n    blurWater = 1.3;\n    farOnlyWater = 1; //blur only far objects? (0 = disable, 1 = enable)\n\n    // underwater dof parameters (with goggles)\n    focusDistanceWaterGoggles = 4.0;\n    blurWaterGoggles = 1.0;\n    farOnlyWaterGoggles = 1; //blur only far objects? (0 = disable, 1 = enable)\n};\n```"},{"heading":"drawTaxiway","level":5,"markdown":"Integer:\n\n```cpp\ndrawTaxiway = 0; //value used by Tanoa\n```"},{"heading":"dynLightMinBrightnessAbsolute","level":5,"markdown":"Integer: These constants are used to determine the radius of dynamic lights. Radius is computed based on minimal brightness. Minimal brightness is computed: max(dynLightMinBrightnessAbsolute, sceneAmbient * dynLightMinBrightnessAmbientCoef) where sceneAmbient is current brightness of scene ambient light.\n\n```cpp\ndynLightMinBrightnessAbsolute = 0.05; //value used by Tanoa\n```"},{"heading":"dynLightMinBrightnessAmbientCoef","level":5,"markdown":"Integer: These constants are used to determine the radius of dynamic lights. Radius is computed based on minimal brightness. Minimal brightness is computed: max(dynLightMinBrightnessAbsolute, sceneAmbient * dynLightMinBrightnessAmbientCoef) where sceneAmbient is current brightness of scene ambient light.\n\n```cpp\ndynLightMinBrightnessAmbientCoef = 0.5; //value used by Tanoa\n```"},{"heading":"E","level":4,"markdown":""},{"heading":"elevationOffset","level":5,"markdown":"Float:\n\n```cpp\nelevationOffset = 0; //value used by Tanoa\n```"},{"heading":"enableBloodSplashes","level":5,"markdown":"Integer: Enable blood splashes\n\n```cpp\nenableBloodSplashes = 1; //value used by Tanoa\n```"},{"heading":"enableFootsteps","level":5,"markdown":"Integer: Enable footsteps\n\n```cpp\nenableFootsteps = 1; //value used by Tanoa\n```"},{"heading":"enableTracks","level":5,"markdown":"Integer: Enable vehicle tracks\n\n```cpp\nenableTracks = 1; //value used by Tanoa\n```"},{"heading":"class EnvMaps","level":5,"markdown":"```cpp\nclass EnvMaps\n{\n    class EnvMap1\n    {\n        // overcast value for which this is used\n        overcast = 0;\n        texture = \"A3\\Map_Tanoabuka\\data\\env_land_ClearSky_ca.paa\";\n    };\n    class EnvMap2\n    {\n        // overcast value for which this is used\n        overcast = 0.4;\n        texture = \"A3\\Map_Tanoabuka\\data\\env_land_SemiCloudySky_ca.paa\";\n    };\n    class EnvMap3\n    {\n        // overcast value for which this is used\n        overcast = 0.8;\n        texture = \"A3\\Map_Tanoabuka\\data\\env_land_OvercastSky_ca.paa\";\n    };\n};\n```"},{"heading":"envTexture","level":5,"markdown":"String: Set global envTexture to be used instead of assets specific one if defined for the world.\n\n```cpp\nenvTexture = \"\"; //value used by Tanoa\n```"},{"heading":"F","level":4,"markdown":""},{"heading":"fogBeta0Max","level":5,"markdown":"Integer: beta0 (macroscopic cross-section of atmospheric scatterers at base level) for fog value 1\n\n```cpp\nfogBeta0Max = 0.05; //value used by Tanoa\n```"},{"heading":"fogBeta0Min","level":5,"markdown":"Integer: beta0 (macroscopic cross-section of atmospheric scatterers at base level) for fog value 0\n\n```cpp\nfogBeta0Min = 0; //value used by Tanoa\n```"},{"heading":"fogHeight","level":5,"markdown":"Integer: Max height of the Arma fog for clouds (in meters)\n\n```cpp\nfogHeight = 2000; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"forecastFog","level":5,"markdown":"Integer:\n\n```cpp\nforecastFog = 0; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"forecastFogBase","level":5,"markdown":"Integer: Base forecasted altitude for fog computations (in meters)\n\n```cpp\nforecastFogBase = 250; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"forecastFogDecay","level":5,"markdown":"Integer: Forecasted decay coefficient - decay of fog with altitude\n\n```cpp\nforecastFogDecay = 0.014; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"forecastGusts","level":5,"markdown":"Integer: Forecasted gusts\n\n```cpp\nforecastGusts = 0; //value used by Tanoa\n```\n\nRelated commands: gusts, setGusts"},{"heading":"forecastLightnings","level":5,"markdown":"Integer: Forecasted lightning\n\n```cpp\nforecastLightnings = 0; //value used by Tanoa\n```\n\nRelated commands: lightnings, setLightnings"},{"heading":"forecastRain","level":5,"markdown":"Integer:\n\n```cpp\nforecastRain = 0; //value used by Tanoa\n```\n\nRelated commands: rain, setRain"},{"heading":"forecastWaves","level":5,"markdown":"Integer: Forecasted waves\n\n```cpp\nforecastWaves = 0.1; //value used by Tanoa\n```\n\nRelated commands: waves, setWaves"},{"heading":"forecastWeather","level":5,"markdown":"Integer: Forecasted weather\n\n```cpp\nforecastWeather = 0; //value used by Tanoa\n```"},{"heading":"forecastWind","level":5,"markdown":"Integer: Forecasted wind\n\n```cpp\nforecastWind = 0.1; //value used by Tanoa\n```\n\nRelated commands: wind, setWind"},{"heading":"forecastWindDir","level":5,"markdown":"Integer: Forecasted wind direction\n\n```cpp\nforecastWindDir = 0; //value used by Tanoa\n```\n\nRelated commands: windDir, windDir"},{"heading":"fullDetailDist","level":5,"markdown":"Float: Distance where ground detail texture is fully visible (begin fading out)\n\n```cpp\nfullDetailDist = 5; //value used by Tanoa\n```"},{"heading":"G","level":4,"markdown":""},{"heading":"gridNumbersOverLines","level":5,"markdown":"Integer: Displays Numbering over Grid lines instead between\n\n```cpp\ngridNumbersOverLines = 1; //value used by Tanoa\n```"},{"heading":"H","level":4,"markdown":""},{"heading":"haloObject","level":5,"markdown":"String: Path to halo object model\n\n```cpp\nhaloObject = \"A3\\data_f\\sunhalo.p3d\"; //value used by Tanoa\n```"},{"heading":"hazeBaseBeta0","level":5,"markdown":"Integer: Linear regression according to the base height. More information\n\n```cpp\nhazeBaseBeta0 = 8e-005; //value used by Tanoa\n```"},{"heading":"hazeBaseHeight","level":5,"markdown":"Integer: Base height for the haze computation (in meters). More information\n\n```cpp\nhazeBaseHeight = 0; //value used by Tanoa\n```"},{"heading":"hazeDensityDecay","level":5,"markdown":"Integer: Density decay based on height. More information\n\n```cpp\nhazeDensityDecay = 0.00036; //value used by Tanoa\n```"},{"heading":"hazeDistCoef","level":5,"markdown":"Integer: Coefficient used to compute haze distance (haze distance = fogFar * hazeDistCoef), can be > 1. If the value is negative, then standard haze computation is used.\n\n```cpp\nhazeDistCoef = 0.1; //value used by Tanoa\n```"},{"heading":"hazeFogCoef","level":5,"markdown":"Integer: Fog value, that we want to have at haze distance (=distance computed using hazeDistCoef), 0 = full fog, 1 = no fog. If the value is negative, then standard haze computation is used\n\n```cpp\nhazeFogCoef = 0.98; //value used by Tanoa\n```"},{"heading":"class HDRNewPars","level":5,"markdown":"```cpp\nclass HDRNewPars\n{\n    //@{ global aperture settings\n    // global minimal possible aperture\n    minAperture = 0.00001;\n    // global maximal possible aperture\n    maxAperture = 256;\n    // how many times greater than standard avg luminance must be current avg luminance to reach current max aperture\n    apertureRatioMax = 4;\n    // how many times smaller than standard avg luminance must be current avg luminance to reach current min aperture\n    apertureRatioMin = 10;\n    //@}\n\n    //@{ Bloom settings\n    // image scale for bloom composition\n    bloomImageScale = 1.0;\n    // bloom scale for bloom composition\n    bloomScale = 0.3;\n    // bloom exponent for bloom computation\n    bloomExponent = 1.0;\n    // luminance offset for bloom computation\n    bloomLuminanceOffset = 0.8;\n    // luminance scale for bloom computation\n    bloomLuminanceScale = 1;\n    // luminance exponent for bloom computation\n    bloomLuminanceExponent = 1.2;\n    //@}\n\n    //@{ Tone mapping settings\n    // tonemapping method (0 = none, 1 = filmic, 2 = Reinhard)\n    tonemapMethod = 2;\n    // params for filmic tonemapping\n    // Uncharted 2 tone mappping filmic curve\n    // for more information see http://www.slideshare.net/ozlael/hable-john-uncharted2-hdr-lighting\n    tonemapShoulderStrength = 0.22;\n    tonemapLinearStrength = 0.30;\n    tonemapLinearAngle = 0.10;\n    tonemapToeStrength = 0.20;\n    tonemapToeNumerator = 0.01;\n    tonemapToeDenominator = 0.30;\n    tonemapLinearWhite = 11.2;\n    tonemapExposureBias = 2.0;\n    // params for Reinhard tonemapping\n    tonemapLinearWhiteReinhard = 2.5;\n    //@}\n\n    //@{ settings for NVG\n    // min aperture when using NVG\n    nvgApertureMin = 1;\n    // standard aperture when using NVG\n    nvgApertureStandard = 7;\n    // max aperture when using NVG\n    nvgApertureMax = 15;\n    // average scene luminance for standard aperture when using NVG\n    nvgStandardAvgLum = 3;\n    // light gain when using NVG\n    nvgLightGain = 100;\n    // use transition effects when going to/from NVG (0 = disable, 1 = enable)\n    nvgTransition = 1;\n    // transition coefficient when we are putting NVG on\n    nvgTransitionCoefOn = 40.0;\n    // transition coefficient when we are putting NVG off\n    nvgTransitionCoefOff = 0.01;\n    //@}\n\n    //@{ settings for night eye (blue shift)\n    // min avg intensity (when the night shift is at full effect)\n    nightShiftMinAperture = 0;\n    // max avg intensity (when the night shift is at zero effect and begins to take some effect, effect of night shift is then interpolated based on min and max aperture)\n    nightShiftMaxAperture = 0.002;\n    // maximal possible effect of night shift (0-1, 0 disables it)\n    nightShiftMaxEffect = 0.6;\n    // luminance scale to determine night shift effects for individual pixels\n    nightShiftLuminanceScale = 600;\n    //@}\n\n    //@{ settings for light adaptation\n    // speed factor for adapting to light (greater number = faster)\n    eyeAdaptFactorLight = 0.6;\n    // speed factor for adapting to dark (greater number = faster)\n    eyeAdaptFactorDark = 0.2;\n    //@}\n};\n```"},{"heading":"horizonFogColorationStart","level":5,"markdown":"Float: Starting vertical texture coordinate for horizon coloration with fog (use 1 to disable coloration)\n\n```cpp\nhorizonFogColorationStart = \"0.8f\"; //value used by Tanoa\n```"},{"heading":"horizonParallaxCoef","level":5,"markdown":"Integer: Parallax coef used for shifting horizon - the higher the camera, the lower we want the horizon range to be placed use 0 to switch off shifting\n\n```cpp\nhorizonParallaxCoef = 0; //value used by Tanoa\n```"},{"heading":"horizonSunColorationIntensity","level":5,"markdown":"Float: Intensity coefficient for horizon coloration by Sun\n\n```cpp\nhorizonSunColorationIntensity = \"0.001f\"; //value used by Tanoa\n```"},{"heading":"horizonSunColorationScale","level":5,"markdown":"Integer: Scale coefficient for horizon coloration by Sun\n\n```cpp\nhorizonSunColorationScale = 10; //value used by Tanoa\n```"},{"heading":"horizontObject","level":5,"markdown":"String: Path to model used for horizon object\n\n```cpp\nhorizontObject = \"A3\\Map_Tanoabuka\\data\\horizon.p3d\"; //value used by Tanoa\n```"},{"heading":"humidityDownCoef","level":5,"markdown":"Integer:\n\n```cpp\nhumidityDownCoef = 0.05; //value used by Tanoa\n```"},{"heading":"humidityUpCoef","level":5,"markdown":"Integer:\n\n```cpp\nhumidityUpCoef = 0.1; //value used by Tanoa\n```"},{"heading":"I","level":4,"markdown":""},{"heading":"icon","level":5,"markdown":"String:\n\n```cpp\nicon = \"\"; //value used by Tanoa\n```"},{"heading":"ilsDirection[]","level":5,"markdown":"Array:\n\n```cpp\nilsDirection[] = {-0.2002, 0.087, 0.9798}; //value used by Tanoa\n```"},{"heading":"ilsPosition[]","level":5,"markdown":"Array:\n\n```cpp\nilsPosition[] = {7085.57, 7681.84}; //value used by Tanoa\n```"},{"heading":"ilsTaxiIn[]","level":5,"markdown":"Array:\n\n```cpp\nilsTaxiIn[] = {6942.61, 7386.26, 6933.84, 7429.14, 6971.82, 7500.5, 7039.36, 7652, 7043.89, 7676.38, 7057.89, 7705.92, 7073.11, 7708.36, 7085.32, 7700.25, 7087.86, 7688.26}; //value used by Tanoa\n```"},{"heading":"ilsTaxiOff[]","level":5,"markdown":"Array:\n\n```cpp\nilsTaxiOff[] = {7220.87, 7017.23, 7198.22, 7021.06, 6985.25, 7287.09, 6955.16, 7323.2, 6942.61, 7386.26}; //value used by Tanoa\n```"},{"heading":"interpolateClutterColoring","level":5,"markdown":"Integer: If we should use interpolation of clutter coloring coef based on distance of clutter from camera. (0 = false, 1 = true)\n\n```cpp\ninterpolateClutterColoring = 1; //value used by Tanoa\n```"},{"heading":"L","level":4,"markdown":""},{"heading":"landGrid","level":5,"markdown":"Integer: Grid size\n\n```cpp\nlandGrid = 50; //value used by Tanoa\n```"},{"heading":"latitude","level":5,"markdown":"Integer: Latitude on globe, positive is south\n\n```cpp\nlatitude = 17.698; //value used by Tanoa\n```"},{"heading":"layerMask","level":5,"markdown":"String:\n\n```cpp\nlayerMask = \"\"; //value used by Tanoa\n```"},{"heading":"lightningsForced","level":5,"markdown":"Integer: (0 = false, 1 = true)\n\n```cpp\nlightningsForced = 0; //value used by Tanoa\n```"},{"heading":"loadingTexts[]","level":5,"markdown":"Array: Random text shown during loading screens\n\n```cpp\nloadingTexts[] = {\"The mining and heavy ship industry have already devastated many areas of the Tanoan paradise archipelago.\", \"During the hottest summers, there are many occurrences of native men missing in the jungle.\", \"Local tribes claim that huge reptilian creatures can be encountered at the foot of the volcano.\", \"The native people have turned many parts of the wild jungle into fertile fields and plantations.\", \"Around the Tanoa archipelago, the native people worship a god of fertility and festivity called Darkon.\", \"The name of the archipelago comes from the Fijian word tanoa which means a bowl (the main island resembles a large bowl).\", \"Once upon a time, there was a living, fire-breathing volcano...\"}; //value used by Tanoa\n```"},{"heading":"longitude","level":5,"markdown":"Integer: Longitude on globe, positive is east\n\n```cpp\nlongitude = 178.783; //value used by Tanoa\n```"},{"heading":"M","level":4,"markdown":""},{"heading":"mapArea[]","level":5,"markdown":"Array: Lon/lat coordinates (not in UTM to assure .kml precision). Looks in Arma 3 this parameter is not used anyhow. *[verify required]*\n\n```cpp\nmapArea[] = {\n    -20.268, 174.003, //Bottom Left\n    -20.1353, 174.146 //Top Right\n}; //value used by Tanoa\n```"},{"heading":"mapDrawingBrightnessModifier","level":5,"markdown":"Float: Modifier for brightness of satellite map textures drawn on the map display view\n\n```cpp\nmapDrawingBrightnessModifier = \"1.0f\"; //value used by Tanoa\n```"},{"heading":"mapSize","level":5,"markdown":"Integer: Size of the map in meters\n\n```cpp\nmapSize = 15360; //value used by Tanoa\n```"},{"heading":"mapZone","level":5,"markdown":"Integer: UTM Zone\n\n```cpp\nmapZone = 60; //value used by Tanoa\n```"},{"heading":"maxHillsAltitude","level":5,"markdown":"Integer:\n\n```cpp\nmaxHillsAltitude = 450; //value used by Tanoa\n```"},{"heading":"midDetailTexture","level":5,"markdown":"String: Path to mid detail texture used\n\n```cpp\nmidDetailTexture = \"A3\\Map_Tanoabuka\\Data\\L_middle_mco.paa\"; //value used by Tanoa\n```"},{"heading":"minHeight","level":5,"markdown":"Integer: Min. height - used to clamp data inside of the map during rendering\n\n```cpp\nminHeight = -10; //value used by Tanoa\n```"},{"heading":"minHillsAltitude","level":5,"markdown":"Integer:\n\n```cpp\nminHillsAltitude = 80; //value used by Tanoa\n```"},{"heading":"minRocksInRockSquare","level":5,"markdown":"Integer: Minimum rocks needed in a square to show rock polygons on 2D map\n\n```cpp\nminRocksInRockSquare = 2; //value used by Tanoa\n```"},{"heading":"minTreesInForestSquare","level":5,"markdown":"Integer: Minimum trees needed in a square to show forest polygons on 2D map\n\n```cpp\nminTreesInForestSquare = 3; //value used by Tanoa\n```"},{"heading":"minObjInTownSquare","level":5,"markdown":"Integer: Unknown\n\n```cpp\nminObjInTownSquare = 1.4; //value used by Tanoa\n```"},{"heading":"moonObject","level":5,"markdown":"String: Path to model used for moon object\n\n```cpp\nmoonObject = \"A3\\data_f\\moon.p3d\"; //value used by Tanoa\n```"},{"heading":"N","level":4,"markdown":""},{"heading":"class Names","level":5,"markdown":"```cpp\nclass Names\n{\n    class SomeLocation\n    {\n        angle = 0;\n        demography = \"CIV\"; //not used by every location\n        name = \"Some Location Name\"; //name of the location, can be stringtable entry\n        position[] = {2089.06, 3523.68}; //position in world\n        radiusA = 300;\n        radiusB = 100;\n        type = \"Airport\";\n    };\n};\n```"},{"heading":"newRoadsShape","level":5,"markdown":"String: Path to roads shape file\n\n```cpp\nnewRoadsShape = \"A3\\Map_Tanoabuka\\data\\roads\\roads.shp\"; //value used by Tanoa\n```"},{"heading":"noDetailDist","level":5,"markdown":"Integer: Where ground detail texture is no longer visible (end fading out)\n\n```cpp\nnoDetailDist = 50; //value used by Tanoa\n```"},{"heading":"class NVGPars","level":5,"markdown":"```cpp\nclass NVGPars\n{\n    // is film grain enabled for NVG (0 = disabled, 1 = enabled)?\n    filmGrainEnabled = true;\n    // film grain params (intensity, sharpness, grain size, intensityX0, intensityX1, monochromatic (0=mono, 1=color))\n    filmGrainPars[] = {0.4, 2.75, 1, 3, 1, 0};\n};\n```"},{"heading":"O","level":4,"markdown":""},{"heading":"outsideHeight","level":5,"markdown":"Integer: Height used outside of the map\n\n```cpp\noutsideHeight = -10; //value used by Tanoa\n```"},{"heading":"outsideMaterial","level":5,"markdown":"String:\n\n```cpp\noutsideMaterial = \"\"; //value used by Tanoa\n```"},{"heading":"class OutsideTerrain","level":5,"markdown":"```cpp\nclass OutsideTerrain\n{\n    colorOutside[] = {0.227451, 0.27451, 0.384314, 1};\n    enableTerrainSynth = 0; // enable procedural terrain generation, can cause issues in some circumstances (0 = disable, 1 = enable)\n    satellite = \"A3\\map_Stratis\\data\\s_satout_co.paa\"; // defines the satellite texture to be used outside of the terrain when viewing from a distance\n    class Layers\n    {\n        class Layer0\n        {\n            nopx = \"A3\\Map_Data\\gdt_grass_green_nopx.paa\"; // defines the parallax texture to be used outside of the terrain when viewing from close\n            texture = \"A3\\Map_Data\\gdt_grass_green_co.paa\"; // defines the diffuse texture to be used outside of the terrain when viewing from close\n        };\n    };\n\n    angleAltitudes[] = { { min1, max1 }, ... , { min512, max512 } };    // since Arma 3 v2.04 - min and max height for out-of-bounds terrain (360°/512 angles)\n                                                                        // angle starts from the East, next values go counter-clockwise up to 512 entries\n    analysisLength = 123;                                                // since Arma 3 v2.04 - altitude analysis distance from terrain's border towards its centre\n};\n```"},{"heading":"P","level":4,"markdown":""},{"heading":"peakWaveBottom","level":5,"markdown":"Integer: Point where water peaks should start appearing\n\n```cpp\npeakWaveBottom = -5; //value used by Tanoa\n```"},{"heading":"peakWaveTop","level":5,"markdown":"Integer: Point where water peaks should be max. visible before going offshore\n\n```cpp\npeakWaveTop = -1; //value used by Tanoa\n```"},{"heading":"pictureMap","level":5,"markdown":"String: Path to map picture shown on world selection screen and background of loading screen for that terrain.\n\n```cpp\npictureMap = \"A3\\Map_Tanoabuka\\data\\pictureMap_ca.paa\"; //value used by Tanoa\n```"},{"heading":"plateFormat","level":5,"markdown":"String:\n\n```cpp\nplateFormat = \"T#$-####\"; //value used by Tanoa\n```"},{"heading":"plateLetters","level":5,"markdown":"String:\n\n```cpp\nplateLetters = \"ABCDEGHIKLMNOPRSTVXZ\"; //value used by Tanoa\n```"},{"heading":"pointObject","level":5,"markdown":"String: Path to model used for point object\n\n```cpp\npointObject = \"A3\\data_f\\point.p3d\"; //value used by Tanoa\n```"},{"heading":"previewVideo","level":5,"markdown":"String: Path to video used for video preview in main menu for the terrain\n\n```cpp\npreviewVideo = \"A3\\Map_Tanoa_Scenes_F\\Video\\previewVideo.ogv\"; //value used by Tanoa\n```"},{"heading":"R","level":4,"markdown":""},{"heading":"class Rain","level":5,"markdown":"```cpp\nclass Rain\n{\n    levels[] = {8, 2};\n    raindrop = \"\\A3\\data_f\\raindrop.p3d\"; //path to model used for rain drop\n    speed = 1;\n    texture = \"A3\\data_f\\rain_ca.paa\"; //path to texture used for rain drop\n};\n```"},{"heading":"rainbowObject","level":5,"markdown":"String: Path to model used for rainbow object\n\n```cpp\nrainbowObject = \"A3\\data_f\\rainbow.p3d\"; //value used by Tanoa\n```"},{"heading":"rainForced","level":5,"markdown":"Integer: (0 = false, 1 = true)\n\n```cpp\nrainForced = 0; //value used by Tanoa\n```"},{"heading":"class RainParticles","level":5,"markdown":"> [!NOTE]\n> When **snow** param is true the following changes occur in the engine:\n>\n> - environmental 'snow' sound controller is set to 1\n> - environmental 'rain' sound controller is set to 0\n> - thunder and lightnings effects are disabled\n> - humidity stops updating (use setHumidity if specific value is needed)\n\n```cpp\nclass RainParticles\n{\n    // Parameters for the new particle rain\n    // texture of the particle (r = alpha; g = normalX; b = normalY; a = color;)\n    rainDropTexture=PathDTextureAbs;\n    // dropsInTexture - the number of drops that are present in the drop texture\n    texDropCount=4;\n    // minimum rain strength when the effect starts to be rendered\n    minRainDensity = 0.01;\n    // distance of the effect\n    effectRadius=15;\n    // coefficient of how much the wind influences water drops\n    windCoef=0.05;\n    // fall speed of the drops\n    dropSpeed=15.0;\n    // random part of the fall speed\n    rndSpeed=0.2;\n    // coefficient of how much the drop could randomly change direction\n    rndDir=0.1;\n    // width of the single drop\n    dropWidth=0.04;\n    // height of the single drop\n    dropHeight=0.8;\n    // color of the drop\n    dropColor[]={0.1, 0.1, 0.1, 0.1};\n    // luminescence of the drop facing to sun\n    lumSunFront=0.3;\n    // luminescence of the drop opposite to sun\n    lumSunBack=0.1;\n    // coefficient that tells us how much \"refracted\" light from the scene is added to the drop color\n    refractCoef=0.3;\n    // coefficient to tune color saturation of the refraction effect (0=BW, 1=original color)\n    refractSaturation = 0.3;\n\n    // SINCE Arma 3 v2.07.148385\n    // rain is snow, will be used in \"snow\" env sound controller (optional, default is false)\n    snow=false;\n    // SINCE Arma 3 v2.07.148416\n    // when true, the dropColor is preserved and not affected by eye accommodation (optional, default is false)\n    dropColorStrong=false;\n};\n```"},{"heading":"S","level":4,"markdown":""},{"heading":"safePositionAnchor[]","level":5,"markdown":"Array: Used for random safe position finding.\n\n```cpp\nsafePositionAnchor[] = {9158, 9962}; //value used by Tanoa\n```"},{"heading":"safePositionRadius","level":5,"markdown":"Integer: Used for random safe position finding.\n\n```cpp\nsafePositionRadius = 100; //value used by Tanoa\n```"},{"heading":"satelliteMap","level":5,"markdown":"String:\n\n```cpp\nsatelliteMap = \"\"; //value used by Tanoa\n```"},{"heading":"satelliteNormalBlendEnd","level":5,"markdown":"Integer: Distance, where blending of detail normal ends (satellite normal is fully visible)\n\n```cpp\nsatelliteNormalBlendEnd = 100; //value used by Tanoa\n```"},{"heading":"satelliteNormalBlendStart","level":5,"markdown":"Integer: Distance, where ground detail normal is starts to blend to satellite normal texture\n\n```cpp\nsatelliteNormalBlendStart = 10; //value used by Tanoa\n```"},{"heading":"satelliteNormalOnDetail","level":5,"markdown":"Integer: If the satellite normal map on detail maps is enabled. (0 = false, 1 = true)\n\n```cpp\nsatelliteNormalOnDetail = 1; //value used by Tanoa\n```"},{"heading":"seaBedUnderwaterDepth","level":5,"markdown":"Integer: Depth of sea bed plane under water, positive value means depth under water, negative value means autodetection.\n\n```cpp\nseaBedUnderwaterDepth = 52; //value used by Tanoa\n```"},{"heading":"seagullPos[]","level":5,"markdown":"Array:\n\n```cpp\nseagullPos[] = {1024, 130, 1024}; //value used by Tanoa\n```"},{"heading":"seaMaterial","level":5,"markdown":"String: Water material is used for sea landscape parts\n\n```cpp\nseaMaterial = \"#water\"; //value used by Tanoa\n```"},{"heading":"seaTexture","level":5,"markdown":"String: Wave detection texture expected by the shaders\n\n```cpp\nseaTexture = \"#(rgb,8,8,3)color(0,0,0,1)\"; //value used by Tanoa\n```"},{"heading":"class SeaWaterShaderPars","level":5,"markdown":"```cpp\nclass SeaWaterShaderPars\n{\n    // coefficient used to multiply move value of refractions\n    refractionMoveCoef = 0.01;\n    // minimal water surface opacity, when we are looking from above the water surface down\n    minWaterOpacity = 0.65;\n    // coef used to multiply square root of distance of pixel from water surface when coputing final opacity of water surface\n    // waterOpacity = MinWaterOpacity + sqrt(distance)*WaterOpacityDistCoef;\n    waterOpacityDistCoef = 0.07;\n    // opacity of water surface when we are under water\n    underwaterOpacity = 0.2;\n    // distance from object, where we start to fade the water surface to full opacity\n    waterOpacityFadeStart = 100;\n    // length of water surface opacity fading\n    waterOpacityFadeLength = 20;\n};\n```\n\nFor more information see the Visual update documentation."},{"heading":"shoreFoamMaterial","level":5,"markdown":"String: Shore material is used for sea and landscape interface parts - the foam part\n\n```cpp\nshoreFoamMaterial = \"#shoreFoam\"; //value used by Tanoa\n```"},{"heading":"shoreMaterial","level":5,"markdown":"String: Shore material is used for sea and landscape interface parts\n\n```cpp\nshoreMaterial = \"#shore\"; //value used by Tanoa\n```"},{"heading":"shoreTop","level":5,"markdown":"Integer: Top point where water is considered off-shore\n\n```cpp\nshoreTop = 0; //value used by Tanoa\n```"},{"heading":"shoreWetMaterial","level":5,"markdown":"String: Shore wet material is used for sea and landscape interface parts - the wet part\n\n```cpp\nshoreWetMaterial = \"#shoreWet\"; //value used by Tanoa\n```"},{"heading":"skyColorInfluencesFogColor","level":5,"markdown":"Arma 3 v1.60\nInteger: If sky color influences fog color. (0 = false, 1 = true) More information\n\n```cpp\nskyColorInfluencesFogColor = 0; //value used by Tanoa\n```"},{"heading":"skyFogColorationStart","level":5,"markdown":"Float: Starting vertical texture coordinate for skybox coloration with fog (use 1 to disable coloration)\n\n```cpp\nskyFogColorationStart = \"0.7f\"; //value used by Tanoa\n```"},{"heading":"skyObject","level":5,"markdown":"String: Path to model used for sky object\n\n```cpp\nskyObject = \"A3\\Map_Tanoabuka\\data\\skydome.p3d\"; //value used by Tanoa\n```"},{"heading":"skyTexture","level":5,"markdown":"String: Path to sky texture\n\n```cpp\nskyTexture = \"A3\\Map_Tanoabuka\\data\\sky_semicloudy_sky.paa\"; //value used by Tanoa\n```"},{"heading":"skyTextureR","level":5,"markdown":"String: Path to sky reflection texture, used only as default when there is no weather\n\n```cpp\nskyTextureR = \"A3\\Map_Tanoabuka\\data\\sky_semicloudy_lco.paa\"; //value used by Tanoa\n```"},{"heading":"soundMapSizeCoef","level":5,"markdown":"Integer: Defines size of soundMap as multiplier of landRange (soundMap.dimX = landRange * soundMapCoef). In more simple terms how detailed/rough the environment sounds areas are to be computed (trees, houses, sea, meadows).\n\n```cpp\nsoundMapSizeCoef = 4; //value used by Tanoa\n```"},{"heading":"class SpriteRefractionPars","level":5,"markdown":"```cpp\nclass SpriteRefractionPars\n{\n    // scale of refraction (R, G, B - you can use different values to achieve abberation effect)\n    refractScale[] = {0.02, 0.02, 0.02};\n    // animation time coef (horizontal, vertical), use {0,0, 0} for no animation (third value not used)\n    timeScale[] = {0.03, 0.03, 0.0};\n};\n```"},{"heading":"starsObject","level":5,"markdown":"String: Path to model used for stars object\n\n```cpp\nstarsObject = \"A3\\data_f\\stars.p3d\"; //value used by Tanoa\n```"},{"heading":"startDate","level":5,"markdown":"String: Start date when terrain is loaded without a date preset (e.g. loading into editor)\n\n```cpp\nstartDate = \"6/6/2035\"; //value used by Tanoa\n```"},{"heading":"startFog","level":5,"markdown":"Integer: Start fog\n\n```cpp\nstartFog = 0; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"startFogBase","level":5,"markdown":"Integer: Start base altitude for fog computations (in meters)\n\n```cpp\nstartFogBase = 250; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"startFogDecay","level":5,"markdown":"Integer: Start decay coefficient - decay of fog with altitude\n\n```cpp\nstartFogDecay = 0.014; //value used by Tanoa\n```\n\nRelated commands: fog, setFog, fogParams, fogForecast"},{"heading":"startGusts","level":5,"markdown":"Integer: Start gusts\n\n```cpp\nstartGusts = 0; //value used by Tanoa\n```\n\nRelated commands: gusts, setGusts"},{"heading":"startLightnings","level":5,"markdown":"Integer: Start lightning\n\n```cpp\nstartLightnings = 0; //value used by Tanoa\n```\n\nRelated commands: lightnings, setLightnings"},{"heading":"startRain","level":5,"markdown":"Integer: Start rain\n\n```cpp\nstartRain = 0; //value used by Tanoa\n```\n\nRelated commands: rain, setRain"},{"heading":"startTime","level":5,"markdown":"String: Start time (military time)\n\n```cpp\nstartTime = \"12:00\"; //value used by Tanoa\n```"},{"heading":"startWaves","level":5,"markdown":"Integer: Start waves\n\n```cpp\nstartWaves = 0.1; //value used by Tanoa\n```\n\nRelated commands: waves, setWaves"},{"heading":"startWeather","level":5,"markdown":"Integer:\n\n```cpp\nstartWeather = 0.3; //value used by Tanoa\n```"},{"heading":"startWind","level":5,"markdown":"Integer:\n\n```cpp\nstartWind = 0.1; //value used by Tanoa\n```\n\nRelated commands: wind, setWind"},{"heading":"startWindDir","level":5,"markdown":"Integer:\n\n```cpp\nstartWindDir = 0; //value used by Tanoa\n```\n\nRelated commands: windDir, windDir"},{"heading":"class Subdivision","level":5,"markdown":"Fractal and white noise random offset are added. White noise generated more \"wild\" terrain, while fractal tends to generate smooth, varied terrain\n\n```cpp\nclass Subdivision\n{\n    // fractal component of subdivision\n    // changes are smaller for smaller rectangles\n    class Fractal\n    {\n        // texture roughness factor\n        rougness = 10;\n        // max. value for squares containing road\n        maxRoad = 0.2;\n        // max. value for squares containing track\n        maxTrack = 1.0;\n        // max. coeficient depending on slope\n        maxSlopeFactor = 0.05;\n    };\n    // white noise component of subdivision\n    // change size is independent on rectangle size\n    class WhiteNoise\n    {\n        rougness = 5;\n        // max. value for squares containing road\n        maxRoad = 0.1;\n        // max. value for squares containing track\n        maxTrack = 0.5;\n        // max. coeficient depending on slope\n        maxSlopeFactor = 0.025;\n    };\n\n    // do not divide surfaces that are under given limit\n    minY = -0.0;\n    // do not divide flat surfaces\n    minSlope = 0.02;\n};\n```"},{"heading":"sunObject","level":5,"markdown":"String: Path to model used for sun object\n\n```cpp\nsunObject = \"A3\\data_f\\sun.p3d\"; //value used by Tanoa\n```"},{"heading":"T","level":4,"markdown":""},{"heading":"terrainBlendMaxBrightenCoef","level":5,"markdown":"Float: Maximal brightening coef for blending of satellite map and detail map on terrain (default = 1.0f, no brightening = 0.0f)\n\n```cpp\nterrainBlendMaxBrightenCoef = \"0.0f\"; //value used by Tanoa\n```"},{"heading":"terrainBlendMaxDarkenCoef","level":5,"markdown":"Float: Maximal darkening coef for blending of satellite map and detail map on terrain (default = 0.0f, no darkening = 1.0f)\n\n```cpp\nterrainBlendMaxDarkenCoef = \"1.0f\"; //value used by Tanoa\n```"},{"heading":"terrainMaterial","level":5,"markdown":"String: Terrain material is used for terrain solid ground, by default load from CfgMaterials\n\n```cpp\nterrainMaterial = \"#terrain\"; //value used by Tanoa\n```"},{"heading":"timeOfChanges","level":5,"markdown":"Default time (in seconds) over which the weather changes. BI terrains usually have this set to 30 mins (i.e. 1800s). Mission maker can change this value from the weather settings window in the Eden editor.\n\nInteger:\n\n```cpp\ntimeOfChanges = 1800; //value used by Tanoa\n```"},{"heading":"U","level":4,"markdown":""},{"heading":"class Underwater","level":5,"markdown":"Parameters for underwater fog\n\n```cpp\nclass Underwater\n{\n    /// fog color is changed based on the depth under the water surface\n    /// normal fog color    -> water color    -> deep water color\n    /// ^\n    /// noWaterFog            -> fullWaterFog    -> deepWaterFog\n\n    /// depth under the water, where water color starts (can be negative = distance above water)\n    noWaterFog = -0.3;\n    /// depth under the water, where water color is at full strength and deep water color starts\n    fullWaterFog = 0.1;\n    /// depth under the water, where deep water color is at full strength\n    deepWaterFog = 10;\n\n    /// distance of the water fog (fog far)\n    waterFogDistance = 20;\n    /// distance of the water fog (fog near)\n    waterFogDistanceNear = 0;\n\n    /// color of the water fog at fullWaterFog depth\n    waterColor[] = {0.02,0.08,0.12};\n    /// color of the water fog at deepWaterFog depth\n    deepWaterColor[] = {0.01,0.06,0.14};\n\n    /// skyTopColor (zenith) at fullWaterFog depth (reflections on water surface?)\n    surfaceColor[] = {0.20,0.30,0.25};\n    /// skyTopColor (zenith) at deepWaterFog depth (reflections on water surface?)\n    deepSurfaceColor[] = {0.10,0.18,0.22};\n};\n```\n\nFor more information see the Visual update documentation."},{"heading":"underwaterOcclusionObject","level":5,"markdown":"String: Path to model used for underwater occlusion object\n\n```cpp\nunderwaterOcclusionObject = \"A3\\data_f\\horizont_sphere.p3d\"; //value used by Tanoa\n```"},{"heading":"W","level":4,"markdown":""},{"heading":"class WaterExPars","level":5,"markdown":"```cpp\n// parameters for water in expansion\nclass WaterExPars\n{\n    // base density for water fog (exp coef used for water fog computation) (_A3_MULTI_COMPONENT_FOG)\n    fogDensity = 0.04;\n\n    // color of the water fog when the camera is on or above water surface\n    fogColor[] = { 0.003, 0.005, 0.01 };\n\n    // coefficients for water fog color extinction based on depth of the camera under water (coefs for RGB)\n    // this influences how fast the water fog color darkens when camera moves under water (depends on camera position)\n    fogColorExtinctionSpeed[] = { 0.2, 0.1, 0.04 };\n\n    // defines how light influences fog color (r = ambient influence, g = diffuse (sun) influence, b = overall light influence)\n    fogColorLightInfluence[] = { 0.6, 0.15, 0.5 };\n\n    // coefficient for water fog gradient (MIN coef, MIDDLE coef, MAX coef)\n    fogGradientCoefs[] = { 0.4, 1.0, 1.5 };\n\n    // coefficients for light extinction in water based on the point under water (coefs for RGB)\n    // this influences extinction of ambient light under water (depends on shaded point position)\n    ligtExtinctionSpeed[] = { 0.3, 0.1, 0.05 };\n    // coefficients for diffuse light extinction\n    diffuseLigtExtinctionSpeed[] = { 0.3, 0.1, 0.05 };\n\n    // screen space reflections - strength of reflections\n    // [0,1] (0 = no reflections, 1 = full reflections)\n    ssReflectionStrength = 0.85;\n    // screen space reflections - max. jitter used when sampling - this is used to randomize artifacts caused by sparse sampling\n    // [0,1] (0 = no jitter, 1 = max jitter)\n    ssReflectionMaxJitter = 1.0;\n    // screen space reflections - how much small ripples (from water normal map) influence the reflection\n    // [0,1] (0 = no influence, 1 = max influence)\n    ssReflectionRippleInfluence = 0.15;\n    // screen space reflections - coefficient for fading of reflection near screen borders (larger number = faster fading)\n    ssReflectionEdgeFadingCoef = 10.0;\n    // screen space reflections - coefficient for fading of reflection based on distance (larger number = faster fading)\n    ssReflectionDistFadingCoef = 4.0;\n\n    // minimal coef for refraction (at water surface)\n    refractionMinCoef = 0.02;\n    // maximal coef for refraction (at refractionMaxDist)\n    refractionMaxCoef = 0.07;\n    // distance (in meters) of the point from water surface, where refraction coefficient becomes refractionMaxCoef;\n    refractionMaxDist = 20.0;\n\n    // water surface opacity (should be 0 because of multicomponent fog, use higher values for debugging (-> Buldozer))\n    surfaceOpacity = 0.0;\n\n    // intensity of shadow on the water (1 = full shadow, 0 = no shadow)\n    shadowIntensity = 0.5;\n\n    // max intensity of specular on water\n    specularMaxIntensity = 25.0;\n    // specular power for overcast 0\n    specularPowerOvercast0 = 200.0;\n    // specular power for overcast 1\n    specularPowerOvercast1 = 50.0;\n    // how much we modify the normal for specular computation (0 = no modification, 1 = full modification)\n    specularNormalModifyCoef = 1.0;\n\n    // intensity of foam around objects\n    foamAroundObjectsIntensity = 0.25;\n    // coef for fading of foam (larger number = faster fade)\n    foamAroundObjectsFadeCoef = 8.0;\n    // coef for color of the foam\n    foamColorCoef = 2.0;\n    // coef for deformation of foam texture based on normal of water\n    foamDeformationCoef = 0.02;\n    // coef for mapping of foam texture based on world coordinates\n    foamTextureCoef = 0.2;\n    // speed of movement of foam based on time\n    foamTimeMoveSpeed = 0.2;\n    // amount of movement of foam based on time\n    foamTimeMoveAmount = 0.1;\n\n    // darkening of terrain near shore params\n    // maximal darkening coef (1.0 = max darkening, 0.0 = no darkening)\n    shoreDarkeningMaxCoef = 0.5;\n    // height offset above water level, where darkening is in its full power\n    shoreDarkeningOffset = 0.2;\n    // darkening gradient size\n    shoreDarkeningGradient = 0.2;\n\n    // speed of the waves (scaling of time)\n    shoreWaveTimeScale = 0.8;\n    // offset used to delay when the thick edge of foam appears and dissolves based on wave phase\n    shoreWaveShifDerivativeOffset = -0.8;\n    // overall shore foam intensity\n    shoreFoamIntensity = 0.5;\n    // max wave height on shore (in meters)\n    shoreMaxWaveHeight = 0.15;\n    // reflection intensity on the shore wet layer\n    shoreWetLayerReflectionIntensity = 1.0;\n};\n```\n\nFor more information see the Visual update documentation."},{"heading":"waterTexture","level":5,"markdown":"String:\n\n```cpp\nwaterTexture = \"#(argb,8,8,3)color(0.35,0.47,0.66,1)\"; //value used by Tanoa\n```"},{"heading":"wavesForced","level":5,"markdown":"Integer: (0 = false, 1 = true)\n\n```cpp\nwavesForced = 0; //value used by Tanoa\n```"},{"heading":"windForced","level":5,"markdown":"Integer: (0 = false, 1 = true)\n\n```cpp\nwindForced = 0; //value used by Tanoa\n```"},{"heading":"worldName","level":5,"markdown":"String: Path to WRP\n\n```cpp\nworldName = \"A3\\Map_Tanoabuka\\Tanoa.wrp\"; //value used by Tanoa\n```"}],"categories":["Arma 3: Reference Lists"],"groups":["Reference Lists"]}