Jump to content
Gen. MERICA

[Solved!] Someone who doesn't understand cfgClutter yet again

Recommended Posts

I have been trying to get cfgClutter to appear with no avail, I have tried following the atlas guide and PMC's guide however I still don't quite understand what is needed, nor why what I have isn't working.

 

First I would like to see if I understand what is supposed to happen before I post everything I have.

 

CfgSurfaces apply CfgSurfaceCharacters when it finds a match with the designated layers in layers.cfg, then it references CfgClutter for what to spawn. Is this correct?

 

Either way here is everything else

Layers.cfg
 

class Layers
{
	class tut_grass_green
	{
		texture = "";
		material = "BIO\BIO_IwoJima\data\tut_grass_green.rvmat";
	};
};
 
class Legend
{
	picture = "maplegend.png";
 
	class Colors
	{
		tut_grass_green[] = {{ 230, 230, 120 }};
	};
};

 

cfgClutter.hpp

class Clutter
{
	class BIO_IwoJima_GrassGreenGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d";
		affectedByWind = 0.6;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.0;
	};
	class BIO_IwoJima_GrassDryGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDry_group.p3d";
		affectedByWind = 0.65;
		swLighting = "true";
		scaleMin = 0.65;
		scaleMax = 1.0;
	};
    class BIO_IwoJima_GrassDryMediumGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDryMedium_group.p3d";
		affectedByWind = 0.7;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.0;
	};
    class BIO_IwoJima_WeedBrownTallGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrWeedBrownTall_group.p3d";
		affectedByWind = 0.3;
		swLighting = "true";
		scaleMin = 0.9;
		scaleMax = 1.25;
	};
    class BIO_IwoJima_WeedGreenTall: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrWeedGreenTall.p3d";
		affectedByWind = 0.3;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.2;
	};
    class BIO_IwoJima_PlantMullein: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrPlantMullein.p3d";
		affectedByWind = 0.35;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.15;
	};
    class BIO_IwoJima_ThistleYellowShrub: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrThistleYellowShrub.p3d";
		affectedByWind = 0.2;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.1;
	};
    class BIO_IwoJima_ThistleThornGreen: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d";
		affectedByWind = 0.3;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 1.0;
	};
    class BIO_IwoJima_ThistleThornGreenSmall: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d";
		affectedByWind = 0.25;
		swLighting = "false";
		scaleMin = 0.4;
		scaleMax = 0.7;
	};
};

cfgSurfaces.hpp

class CfgSurfaces
{
	class Default{};
	class tut_grass_green_surface : Default
	{
		files = "tut_grass_green*";
		rough = 0.09;
		maxSpeedCoef = 0.9;
		dust = 0.5;
		soundEnviron = "dirt";
		character = "BIO_IwoJima_green_grass_Character";
		soundHit = "soft_ground";
		lucidity = 1;
		grassCover = 0.1;
	};
};

class CfgSurfaceCharacters
{
	class BIO_IwoJima_green_grass_Character
  	{
		probability[] = {0.021875,0.04375,0.134375,0.175,0.25,0.175,0.134375,0.04375,0.021875};
		names[] = {"BIO_IwoJima_GrassGreenGroup","BIO_IwoJima_GrassDryGroup","BIO_IwoJima_GrassDryMediumGroup","BIO_IwoJima_WeedBrownTallGroup","BIO_IwoJima_WeedGreenTall",
		"BIO_IwoJima_PlantMullein","BIO_IwoJima_ThistleYellowShrub","BIO_IwoJima_ThistleThornGreen","BIO_IwoJima_ThistleThornGreenSmall"};
  	};
};

tut_grass_green.rvmat

ambient[] = { 1, 1, 1, 1 };
diffuse[] = { 1, 1, 1, 1 };
forcedDiffuse[] = { 0.02, 0.02, 0.02, 1 };
specular[] = { 0, 0, 0, 0 };
specularPower = 1;
emmisive[] = { 0, 0, 0, 0 };
 
PixelShaderID = "NormalMapDiffuse";
VertexShaderID = "NormalMapDiffuseAlpha";
 
class Stage1
{
	texture = "a3\map_data\gdt_grass_green_nopx.paa";
	uvSource = "tex";
	class uvTransform
	{
		aside[] = { 10, 0, 0 };
		up[]    = { 0, 10, 0 };
		dir[]   = { 0, 0, 10 };
		pos[]   = { 0, 0, 0 };
	};
};
 
class Stage2
{
	texture = "a3\map_data\gdt_grass_green_co.paa";
	uvSource = "tex";
	class uvTransform
	{
		aside[] = { 10, 0, 0 };
		up[]    = { 0, 10, 0 };
		dir[]   = { 0, 0, 10 };
		pos[]   = { 0, 0, 0 };
	};
};

Lastly the config.cpp

class CfgPatches
{
    class BIO_IwoJima
    {
        units[] =
        {
            "IwoJima"
        };
        weapons[] = {};
        requiredVersion = 1;
        requiredAddons[] =
        {
            "A3_Map_Stratis"
        };
    };
};
 
class CfgWorldList
{
    class BIO_IwoJima{};
};
 
class CfgWorlds
{
	//Start DefaultLighting
	class DefaultLighting
	{
		groundReflection[] = {0.085,0.068,0.034};
		moonObjectColorFull[] = {0.9,0.9,1,0.7};
		moonHaloObjectColorFull[] = {0.9,0.9,1,0.01};
		moonsetObjectColor[] = {0.9,0.75,0.4};
		moonsetHaloObjectColor[] = {0.9,0.5,0.2};
		starEmissivity = 0.3;
		nightAngle = 5;
		sunSunset = 20;
		endSunset = 10;
		
	};
	//End DefaultLighting
	
	//Start DefaultWorld
    class DefaultWorld
	{
		worldId = 0;
		plateFormat = "$$$ ## - ##";
		plateLetters = "ABCDEFHIKLMOPRSTVXYZ";
		centerPosition[] = {2560,2560,0};
		latitude = -40;
		longitude = 15;
		cutscenes[] = {""};
		landGrid = 50;
		startTime = "16:45";
		startDate = "17/11/2006";
		startWeather = 0.12;
		startFog = 0;
		startFogBase = 0;
		forecastFogBase = 0;
		startFogDecay = 0.005;
		forecastFogDecay = 0.005;
		fogBeta0Min = 0.0001;
		fogBeta0Max = 0.02;
		hazeBaseHeight = 0;
		hazeBaseBeta0 = 0;
		hazeDensityDecay = 0.005;
		startWind = 0.1;
		startWindDir = 0;
		startWaves = 0.1;
		startRain = 0;
		startLightnings = 0;
		startGusts = 0;
		forecastWeather = 0.3;
		forecastFog = 0;
		forecastWind = 0.1;
		forecastWaves = 0.1;
		forecastRain = 0;
		forecastLightnings = 0;
		forecastGusts = 0;
		forecastWindDir = 0;
		timeOfChanges = 1800;
		rainForced = 0;
		lightningsForced = 0;
		wavesForced = 0;
		windForced = 0;
		humidityUpCoef = 0.1;
		humidityDownCoef = 0.05;
		skyTexture = "#(argb,8,8,3)color(0.35,0.47,0.66,1)";
		skyTextureR = "#(argb,8,8,3)color(0.35,0.47,0.66,1)";
		seaTexture = "#(rgb,8,8,3)color(0,0,0,1)";
		midDetailTexture = "#(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt)";
		outsideMaterial = "";
		outsideHeight = -199;
		minHeight = -10;
		shoreTop = 0;
		peakWaveTop = -1;
		peakWaveBottom = -5;
		clouds[] = {"core\default\default.p3d","core\default\default.p3d","core\default\default.p3d","core\default\default.p3d"};
		noDetailDist = 150;
		fullDetailDist = 200;
		soundMapSizeCoef = 1;
		satelliteNormalBlendStart = 180;
		satelliteNormalBlendEnd = 200;
		satelliteNormalOnDetail = 1;
		terrainBlendMaxDarkenCoef = 0;
		terrainBlendMaxBrightenCoef = 1;
		interpolateClutterColoring = 0;
		clutterColoringFarCoef = 5;
		clutterColoringFarStart = "15.0f";
		clutterColoringFarSpeed = "1.0f";
		clutterRoadwayCheckRadiusCoef = "0.0f";
		hazeDistCoef = -1;
		hazeFogCoef = -1;
		aroundSunCoefMultiplier = 1;
		aroundSunCoefExponent = 4;
		horizonParallaxCoef = 0.045;
		horizonFogColorationStart = 0.8;
		skyFogColorationStart = 0.7;
		skyColorInfluencesFogColor = 1;
		horizonSunColorationScale = 10;
		horizonSunColorationIntensity = 1;
		mapDrawingBrightnessModifier = "1.0f";
		seaBedUnderwaterDepth = "-1.0f";
		clutterGrid = 2;
		clutterDist = 50;
		clutterRadius = 1;
		skyObject = "core\skyobject\skyobject.p3d";
		starsObject = "core\default\default.p3d";
		pointObject = "core\default\default.p3d";
		horizontObject = "core\default\default.p3d";
		haloObject = "core\default\default.p3d";
		sunObject = "core\default\default.p3d";
		rainbowObject = "core\default\default.p3d";
		moonObject = "core\default\default.p3d";
		waterTexture = "#(argb,8,8,3)color(0.35,0.47,0.66,1)";
		causticsEnabled = 1;
		causticsTextureNumRows = 4;
		causticsTextureCount = 32;
		causticsTextureArea = 4;
		causticsTextureAreaDeep = 150;
		causticsTextureChangeInterval = 0.09;
		causticsDistanceLimit = 200;
		causticsDepthLimit = 50;
		causticsDepthFadeCoef = 1;
		causticsTextureDepthGranularity = 3;
		causticsBrightnessCoef = 4;
		dynLightMinBrightnessAmbientCoef = 0.1;
		dynLightMinBrightnessAbsolute = 0.001;
		envTexture = "";
		satelliteMap = "";
		layerMask = "";
		seaMaterial = "#water";
		shoreMaterial = "#shore";
		shoreFoamMaterial = "#shoreFoam";
		shoreWetMaterial = "#shoreWet";
		terrainMaterial = "#terrain";
		enableTracks = 1;
		enableFootsteps = 1;
		enableBloodSplashes = 1;
		underwaterOcclusionObject = "A3\data_f\horizont_sphere.p3d";
		causticsTexture = "A3\data_f\caustics\caustic_anim_ca.paa";
		causticsTextureMask = "A3\data_f\caustics\caustics_anim_%03d.paa";
		gridNumbersOverLines = 1;
		
		//Start Lighting
		class Lighting: DefaultLighting
		{
			groundReflection[] = {0.085,0.068,0.034};
			moonObjectColorFull[] = {0.9,0.9,1,0.7};
			moonHaloObjectColorFull[] = {0.9,0.9,1,0.01};
			moonsetObjectColor[] = {0.9,0.75,0.4};
			moonsetHaloObjectColor[] = {0.9,0.5,0.2};
			starEmissivity = 0.3;
			nightAngle = 5;
			sunSunset = 20;
			endSunset = 10;
		};
		//End Lighting
		
		//Start Weather
		class Weather
		{
			rainEnabled = 1;
			temperatureDayMax[] = {10,12,15,20,25,35,35,35,25,20,10,10};
			temperatureDayMin[] = {-10,-6,-5,-1,5,6,7,10,5,2,-5,-10};
			temperatureNightMax[] = {5,6,8,10,13,18,26,25,15,13,8,4};
			temperatureNightMin[] = {-10,-10,-10,-5,0,4,5,6,5,0,-5,-10};
			overcastTemperatureFactor = 0.4;
			blackSurfaceTemperatureDelta = 5;
			whiteSurfaceTemperatureDelta = -2;
			
			//Start Overcast
			class Overcast
			{
				class Weather1
				{
					overcast = 0;
					sky = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					skyR = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					horizon = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					alpha = 0;
					bright = 0.5;
					speed = 0.2;
					size = 0.2;
					height = 1;
					through = 1;
					lightingOvercast = 0;
					diffuse = 1;
					cloudDiffuse = 1;
					waves = 0.15;
				};
				class Weather2
				{
					overcast = 0.1;
					sky = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					skyR = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					horizon = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					alpha = 0.3;
					size = 0.3;
					height = 0.9;
					bright = 0.5;
					speed = 0.25;
					through = 1;
					lightingOvercast = 0.1;
					diffuse = 1;
					cloudDiffuse = 0.9;
					waves = 0.22;
				};
				class Weather3
				{
					overcast = 0.4;
					sky = "#(argb,8,8,3)color(0.51,0.57,0.79,1)";
					skyR = "#(argb,8,8,3)color(0.51,0.57,0.79,1)";
					horizon = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					alpha = 0.98;
					size = 0.5;
					height = 0.8;
					bright = 0.45;
					speed = 0.4;
					through = 0.8;
					lightingOvercast = 0.6;
					diffuse = 0.7;
					cloudDiffuse = 0.4;
					waves = 0.5;
				};
				class Weather4
				{
					overcast = 0.7;
					sky = "#(argb,8,8,3)color(0.56,0.6,0.76,1)";
					skyR = "#(argb,8,8,3)color(0.56,0.6,0.76,1)";
					horizon = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					alpha = 0.97;
					size = 0.75;
					height = 0.75;
					bright = 0.45;
					speed = 0.7;
					through = 0.2;
					diffuse = 0.4;
					lightingOvercast = 0.9;
					cloudDiffuse = 0.75;
					waves = 0.6;	
				};
				class Weather5
				{
					overcast = 1;
					sky = "#(argb,8,8,3)color(0.39,0.39,0.4,1)";
					skyR = "#(argb,8,8,3)color(0.39,0.39,0.4,1)";
					horizon = "#(argb,8,8,3)color(0.46,0.51,0.67,1)";
					alpha = 0.98;
					size = 0.9;
					height = 0.7;
					bright = 0.45;
					speed = 1;
					through = 0;
					diffuse = 0.2;
					cloudDiffuse = 0.95;
					waves = 0.7;
					lightingOvercast = 1;
				};
			};
			//End Overcast
		};
		//End Weather
	};
	//End DefaultWorld
    
	//Start CAWorld
	class CAWorld: DefaultWorld
	{
		class Grid;
		
	};
	//End CAWorld
	
	//Start IwoJima
	class BIO_IwoJima: CAWorld{
		cutscenes[] = {};
		description = "IwoJima";
		worldName = "\BIO\BIO_IwoJima\BIO_IwoJima.wrp";
		author = "bio138";
		icon = "";
		previewVideo = "";
		pictureMap = "";
		pictureShot = "";
 
		newRoadsShape = "";
 
		centerPosition[] =
		{
			2560, 2560
		};
		ilsDirection[] =
		{
			0, 0.08, 1
		};
		ilsPosition[] =
		{
			0, 0
		};
		ilsTaxiIn[] = {};
		ilsTaxiOff[] = {};
		drawTaxiway = 0;
		class SecondaryAirports{};
		class ReplaceObjects{};
		
		class Grid: Grid
		{
			offsetX = 0;
		    offsetY = 5120;
		    class Zoom1
		    {
				zoomMax = 0.15;
				format = "XY";
				formatX = "000";
				formatY = "000";
				stepX = 100;
				stepY = -100;
		    };
		    class Zoom2
		    {
				zoomMax = 0.85;
				format = "XY";
				formatX = "00";
				formatY = "00";
				stepX = 1000;
				stepY = -1000;
		    };
		   class Zoom3
		    {
				zoomMax = 1e+030.0;
				format = "XY";
				formatX = "0";
				formatY = "0";
				stepX = 10000;
				stepY = -10000;
		    };
		 };
 
		class Sounds
		{
			sounds[] = {};
		};
 
		class Animation
		{
			vehicles[] = {};
		};
 
		minTreesInForestSquare = 2;
		minRocksInRockSquare = 2;
 
		class Subdivision{};
		class Names{};
		class DefaultClutter{};
		
		#include "cfgClutter.hpp"
	};
	//End IwoJima
	
};

#include "cfgSurfaces.hpp"

 

It compiles and launches with no errors. Just nothing appears in-game. My settings are standard, I see clutter on other maps perfectly fine.

Also, should I be able to see clutter in terrain builder? Or does clutter only appear in game?

 

Thanks in advance

 

Share this post


Link to post
Share on other sites

In the rvmat you are using default names

a3\map_data\gdt_grass_green_nopx.paa etc

 

But in your surfaces you are looking for

files = "tut_grass_green*";

 

So what you need to do is, copy the files from the a3\map_data folder

gdt_grass_green_nopx

gdt_grass_green_co

 

to YOUR data folder and rename them, so you have

tut_grass_green.rvmat

tut_grass_green_nopx.paa

tut_grass_green_co.paa

Also change the path in the rvmat to match your newly copied textures.

Then re export layers to update the layers .rvmat files to use the new texture names.

 

Also if you jump on the arma discord (its text not voice) its way more active than this place and you will get help quicker

  • Like 1

Share this post


Link to post
Share on other sites

Bruh, if your a bruh I would do things to you. #nohomo

 

Real talk though do most guides tend to skip this? Even the atlas just straight up says "copy everything and hope it works lol". Or was I just retarded and read right over it?

 

Thanks again

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×