MumboWumbo 0 Posted May 21, 2020 Hi, first time map maker and poster, so please have mercy. I have been following the PMC Terrain Tutorial, which I find very useful. However, there isn't a super streamlined approach to Clutter and I find Pennyworth's guide sort of hard to follow, but I have done my best. To fill in gaps and files, I have pulled some from The Atlas Anyway, I have been running into an issue when I am adding clutter to my terrain. After modifying my config with "CfgSurface, Clutter and CfgSurfaceCharacters" I have not been able to find the clutter on bulldozer or in Arma 3. I have also been receiving "no entry 'bin\config.cpp/CfgSurface/CfgSurfaces.rough'. error. When looking for this entry or lack there of) I haven't found anything in my personal config.cpp or the config.cpp within my P drive. As for my config.cpp and project drive: I have already rewrote the config and re-mounted and set up my P Drive, though I may have done either of these incorrectly. You may note that I have not changed any of the file names for the clutter or clutter group, as I feel that changing these would make things more complicated than they already are and changing them to my own tag didn't solve my problem. Here is my config.cpp: Spoiler class CfgPatches { class mum_rf_terrain { units[] = {}; weapons[] = {}; requiredVersion = 1; requiredAddons[] = { "A3_Map_Stratis" }; }; }; class CfgWorldList { class mum_rf_terrain{}; }; class CfgWorlds { class Stratis; class mum_rf_terrain: Stratis { cutscenes[] = {}; description = "Red Fort, New Mexico"; worldName = "\mum\rf\mum_rf_terrain.wrp"; author = "Mumbo"; icon = ""; previewVideo = ""; pictureMap = ""; pictureShot = ""; newRoadsShape = "\mum\rf\data\roads\roads.shp"; centerPosition[] = { 2560, 2560 }; ilsDirection[] = { 0, 0.08, 1 }; ilsPosition[] = { 0, 0 }; ilsTaxiIn[] = {}; ilsTaxiOff[] = {}; drawTaxiway = 0; class SecondaryAirports{}; class ReplaceObjects{}; class Sounds { sounds[] = {}; }; class Animation { vehicles[] = {}; }; minTreesInForestSquare = 2; minRocksInRockSquare = 2; class Subdivision{}; class Names{}; { class DefaultClutter; class Clutter { class StrBigFallenBranches_pine: DefaultClutter { model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine.p3d"; affectedByWind = 0.0; swLighting = "false"; scaleMin = 0.3; scaleMax = 0.7; }; class StrBigFallenBranches_pine02: DefaultClutter { model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine02.p3d"; affectedByWind = 0.0; swLighting = "false"; scaleMin = 0.3; scaleMax = 0.7; }; class StrBigFallenBranches_pine03: DefaultClutter { model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine03.p3d"; affectedByWind = 0.0; swLighting = "false"; scaleMin = 0.3; scaleMax = 0.7; }; class StrGrassGreenGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d"; affectedByWind = 0.6; swLighting = "true"; scaleMin = 0.7; scaleMax = 1.0; }; class StrGrassDry: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassDry.p3d"; affectedByWind = 0.5; swLighting = "true"; scaleMin = 0.8; scaleMax = 1.2; }; class StrGrassDryGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassDry_group.p3d"; affectedByWind = 0.65; swLighting = "true"; scaleMin = 0.65; scaleMax = 1.0; }; class StrGrassDryMediumGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassDryMedium_group.p3d"; affectedByWind = 0.7; swLighting = "true"; scaleMin = 0.8; scaleMax = 1.0; }; class StrWeedBrownTallGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrWeedBrownTall_group.p3d"; affectedByWind = 0.3; swLighting = "true"; scaleMin = 0.9; scaleMax = 1.25; }; class StrWeedGreenTall: DefaultClutter { model = "A3\plants_f\Clutter\c_StrWeedGreenTall.p3d"; affectedByWind = 0.3; swLighting = "true"; scaleMin = 0.8; scaleMax = 1.2; }; class StrPlantMullein: DefaultClutter { model = "A3\plants_f\Clutter\c_StrPlantMullein.p3d"; affectedByWind = 0.35; swLighting = "true"; scaleMin = 0.7; scaleMax = 1.15; }; class StrThistleYellowShrub: DefaultClutter { model = "A3\plants_f\Clutter\c_StrThistleYellowShrub.p3d"; affectedByWind = 0.2; swLighting = "true"; scaleMin = 0.7; scaleMax = 1.1; }; class StrThistleThornGreen: DefaultClutter { model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d"; affectedByWind = 0.3; swLighting = "false"; scaleMin = 0.3; scaleMax = 1.0; }; class StrThistleThornGreenSmall: DefaultClutter { model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d"; affectedByWind = 0.25; swLighting = "false"; scaleMin = 0.4; scaleMax = 0.7; }; class StrFlowerLowYellow2: DefaultClutter { model = "A3\plants_f\Clutter\c_Flower_Low_Yellow2.p3d"; affectedByWind = 0.4; swLighting = "true"; scaleMin = 0.6; scaleMax = 1.0; }; }; class CfgSurfaces { class Default {}; class mum_rf_dirt_Surface : Default { files = "mum_rf_dirt_*"; rough = 0.09; maxSpeedCoef = 0.9; dust = 0.5; soundEnviron = "dirt"; character = "Empty"; soundHit = "soft_ground"; lucidity = 1; grassCover = 0.03; }; class mum_rf_dry_grass_Surface : Default { files = "mum_rf_dry_grass_*"; rough = 0.08; maxSpeedCoef = 0.9; dust = 0.75; soundEnviron = "drygrass"; character = "mum_rf_dry_grass_Character"; soundHit = "soft_ground"; lucidity = 2; grassCover = 0.1; }; class mum_rf_forest_pine_Surface : Default { files = "mum_rf_forest_pine_*"; rough = 0.12; maxSpeedCoef = 0.8; dust = 0.4; soundEnviron = "drygrass"; character = "mum_rf_forest_pine_Character"; soundHit = "soft_ground"; lucidity = 3.5; grassCover = 0.04; }; class mum_rf_grass_short_Surface : Default { files = "mum_rf_grass_green_*"; rough = 0.08; maxSpeedCoef = 0.9; dust = 0.15; soundEnviron = "grass"; character = "mum_rf_green_grass_Character"; soundHit = "soft_ground"; lucidity = 4; grassCover = 0.05; }; class mum_rf_soil_Surface : Default { files = "mum_rf_soil_*"; rough = 0.09; maxSpeedCoef = 0.9; dust = 0.5; soundEnviron = "dirt"; character = "Empty"; soundHit = "hard_ground"; lucidity = 1; grassCover = 0.0; }; }; class CfgSurfaceCharacters { class mum_rf_forest_pine_Character { probability[] = {0.05,0.012,0.01,0.1,0.05}; names[] = {"StrigFallenBranches_pine","StrBigFallenBranches_pine02","StrBigFallenBranches_pine03","StrGrassDryGroup","StrGrassGreenGroup"}; }; class mum_rf_grass_short_Character { probability[] = {0.92,0.07}; names[] = {"StrGrassGreenGroup","StrFlowerLowYellow2"}; }; class mum_rf_dry_grass_Character { probability[] = {0.21,0.35,0.21,0.09,0.06,0.02}; names[] = {"StrGrassDryGroup","StrGrassDryMediumgroup","StrWeedBrownTallGroup","StrWeedGreenTall","StrThistleYellowShrub","StrPlantMullein"}; }; }; I really appreciate any help, as I feel like my issue is related to my smooth ass brain. Share this post Link to post Share on other sites
RoF 241 Posted May 21, 2020 Make sure your rvmat's and textures are named the same, like this mum_rf_grass_green.rvmat mum_rf_grass_green_co.paa mum_rf_grass_green_nopx.paa Make sure the paths (lowercase!) in the rvmat point to your textures (paa) and not A3 textures in map_data. If you have been using map_data files, after changing rvmat, you will need to export mask from TB again to update layers rvmat's Then surfaces use files = "mum_rf_grass_green*"; (lowercase!) always best to remove that _ before * Quote You may note that I have not changed any of the file names for the clutter or clutter group, as I feel that changing these would make things more complicated wrong, very very wrong! lol those are default names and are already used by Altis and Tanoa etc. Tag everything you add, clutter and textures etc, this makes stuff unique to YOUR map, so stops conflicts. For config.cpp, take a look at the config in Atlas guide and you will see cfgClutter.hpp is in your cfgworlds, but cfgSurfaces.hpp goes right at the end of the file Also the Arma Discord is a lot more active then the forums for terrain making. Share this post Link to post Share on other sites
MumboWumbo 0 Posted May 22, 2020 Thanks for the information, I made a few changes to no avail. I am still getting the same error and no clutter. Am I supposed to add CfgSurfaceCharacters into my config.cpp or is that for a3 configs? I was a bit confused as to where to make changes within the P drive and where to place each config section, Is it absolutely necessary to have .hpp links, or can I place these sections within my original config? I understand that they link outside information into the config to keep it trim. Share this post Link to post Share on other sites
RoF 241 Posted May 22, 2020 6 hours ago, MumboWumbo said: Thanks for the information, I made a few changes to no avail. I am still getting the same error and no clutter. Am I supposed to add CfgSurfaceCharacters into my config.cpp or is that for a3 configs? I was a bit confused as to where to make changes within the P drive and where to place each config section, Is it absolutely necessary to have .hpp links, or can I place these sections within my original config? I understand that they link outside information into the config to keep it trim. You don't need to add it to buldozer, I never bother tbh. Just edit your config.cpp for your map. You can do config either way You are using pboproject to pack the map right? Share this post Link to post Share on other sites
MumboWumbo 0 Posted May 22, 2020 Yes, I'm using all of the tools called for in PMC's tutorial. I also checked for the rvmat formatting issues you talked about, but couldn't see any issues. My textures and surfaces appear where they need to be. I will give the map a try in a bit to see if the p drive is till wonky. Share this post Link to post Share on other sites
MumboWumbo 0 Posted May 22, 2020 Okay, I got into a dark place, drank a little too much and replaced my config with the one in the Atlas. From there I renamed all of my config tags and got the clutter to work in Arma 3! Now I just have to add a new clutter group and outside files for a desert. Thanks for the help RoF. Share this post Link to post Share on other sites
MumboWumbo 0 Posted May 22, 2020 Okay, two steps forward ones step back. I have added two entries for some rocks for desert clutter and am now running into another issue when I attempt to pack my files in pboProject Quote In File mum\RF\cfgClutter.hpp: circa Line 4 rap: missing inheritence class(es) I had this issue before I rewrote everything, now its back. Here is my config, clutter and surface files: Spoiler #define _ARMA_ //Class config.bin{ class CfgPatches { class mum_rf_terrain { units[] = {"mum_rf_terrain"}; weapons[] = {}; requiredVersion = 1.0; requiredaddons[]={"A3_Map_Stratis"}; version = "25/01/2015"; fileName = "RF.pbo"; author = "Mumbo"; }; }; class CfgWorlds { class CAWorld; class Stratis: CAWorld { class Grid; class DefaultClutter; }; class mum_rf_terrain: Stratis { cutscenes[] = {}; author = "Mumbo"; description = "Red Fort, New Mexico"; pictureMap = ""; worldName = "mum\rf\mum_rf_terrain.wrp"; startTime = "11:00"; startDate = "05/03/2001"; startWeather = 0.2; startFog = 0.0; forecastWeather = 0.6; forecastFog = 0.0; centerPosition[] = {1024,1024,500}; seagullPos[] = {1024,1024,500}; longitude = 65; latitude = -34; elevationOffset = 5; envTexture = ""; minTreesInForestSquare = 2; minRocksInRockSquare = 2; newRoadsShape = "\mum\rf\data\roads\roads.shp"; ilsPosition[] = {1024,1024}; ilsDirection[] = {0.5075,0.08,-0.8616}; ilsTaxiIn[] = {}; ilsTaxiOff[] = {}; drawTaxiway = 0; class SecondaryAirports {}; class Sea { seaTexture = "a3\data_f\seatexture_co.paa"; seaMaterial = "#water"; shoreMaterial = "#shore"; shoreFoamMaterial = "#shorefoam"; shoreWetMaterial = "#shorewet"; WaterMapScale = 20; WaterGrid = 50; MaxTide = 0; MaxWave = 0; SeaWaveXScale = "2.0/50"; SeaWaveZScale = "1.0/50"; SeaWaveHScale = 2.0; SeaWaveXDuration = 5000; SeaWaveZDuration = 10000; }; }; #include "cfgClutter.hpp" class Names { #include "mum_rf_terrain.hpp" }; }; }; #include "cfgSurfaces.hpp" }; }; Spoiler class Clutter { class mum_rf_BigFallenBranches_pine: DefaultClutter { model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine.p3d"; affectedByWind = 0.0; swLighting = "false"; scaleMin = 0.3; scaleMax = 0.7; }; class mum_rf_BigFallenBranches_pine02: DefaultClutter { model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine02.p3d"; affectedByWind = 0.0; swLighting = "false"; scaleMin = 0.3; scaleMax = 0.7; }; class mum_rf_BigFallenBranches_pine03: DefaultClutter { model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine03.p3d"; affectedByWind = 0.0; swLighting = "false"; scaleMin = 0.3; scaleMax = 0.7; }; class mum_rf_GrassGreenGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d"; affectedByWind = 0.6; swLighting = "true"; scaleMin = 0.7; scaleMax = 1.0; }; class mum_rf_GrassDry: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassDry.p3d"; affectedByWind = 0.5; swLighting = "true"; scaleMin = 0.8; scaleMax = 1.2; }; class mum_rf_GrassDryGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassDry_group.p3d"; affectedByWind = 0.65; swLighting = "true"; scaleMin = 0.65; scaleMax = 1.0; }; class mum_rf_GrassDryMediumGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrGrassDryMedium_group.p3d"; affectedByWind = 0.7; swLighting = "true"; scaleMin = 0.8; scaleMax = 1.0; }; class mum_rf_WeedBrownTallGroup: DefaultClutter { model = "A3\plants_f\Clutter\c_StrWeedBrownTall_group.p3d"; affectedByWind = 0.3; swLighting = "true"; scaleMin = 0.9; scaleMax = 1.25; }; class mum_rf_WeedGreenTall: DefaultClutter { model = "A3\plants_f\Clutter\c_StrWeedGreenTall.p3d"; affectedByWind = 0.3; swLighting = "true"; scaleMin = 0.8; scaleMax = 1.2; }; class mum_rf_PlantMullein: DefaultClutter { model = "A3\plants_f\Clutter\c_StrPlantMullein.p3d"; affectedByWind = 0.35; swLighting = "true"; scaleMin = 0.7; scaleMax = 1.15; }; class mum_rf_ThistleYellowShrub: DefaultClutter { model = "A3\plants_f\Clutter\c_StrThistleYellowShrub.p3d"; affectedByWind = 0.2; swLighting = "true"; scaleMin = 0.7; scaleMax = 1.1; }; class mum_rf_ThistleThornGreen: DefaultClutter { model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d"; affectedByWind = 0.3; swLighting = "false"; scaleMin = 0.3; scaleMax = 1.0; }; class mum_rf_ThistleThornGreenSmall: DefaultClutter { model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d"; affectedByWind = 0.25; swLighting = "false"; scaleMin = 0.4; scaleMax = 0.7; }; class mum_rf_FlowerLowYellow2: DefaultClutter { model = "A3\plants_f\Clutter\c_Flower_Low_Yellow2.p3d"; affectedByWind = 0.4; swLighting = "true"; scaleMin = 0.6; scaleMax = 1.0; }; class mum_rf_c_rock_stones: DefaultClutter { model ="A3\vegetation_f_exp\clutter\cliff\c_rock_stones.p3d"; affectedByWind = 0.0; swLighting = "true"; scaleMin = 0.6; scaleMax = 1.0; }; class mum_rf_c_red_dirt_small_stones: DefaultClutter { model ="A3\vegetation_f_exp\clutter\red_dirt\c_red_dirt_small_stones.p3d"; affectedByWind = 0.0; swLighting = "true"; scaleMin = 0.6; scaleMax = 1.0; }; }; Spoiler class CfgSurfaces { class Default {}; class rf_desert_Surface : Default { files = "rf_desert*"; rough = 0.01; maxSpeedCoef = 0.9; dust = 0.90; soundEnviron = "sand"; character = "mum_rf_desert_Character"; soundHit = "soft_ground"; lucidity = 1; grassCover = 0.00; }; class rf_dry_grass_Surface : Default { files = "rf_dry_grass*"; rough = 0.08; maxSpeedCoef = 0.9; dust = 0.75; soundEnviron = "drygrass"; character = "mum_rf_dry_grass_Character"; soundHit = "soft_ground"; lucidity = 2; grassCover = 0.1; }; class mum_rf_forest_pine_Surface : Default { files = "mum_rf_forest_pine*"; rough = 0.12; maxSpeedCoef = 0.8; dust = 0.4; soundEnviron = "drygrass"; character = "mum_rf_forest_pine_Character"; soundHit = "soft_ground"; lucidity = 3.5; grassCover = 0.04; }; class rf_grass_short_Surface : Default { files = "rf_grass_short*"; rough = 0.08; maxSpeedCoef = 0.9; dust = 0.15; soundEnviron = "grass"; character = "mum_rf_grass_short_Character"; soundHit = "soft_ground"; lucidity = 4; grassCover = 0.05; }; class mum_rf_soil_Surface : Default { files = "mum_rf_soil*"; rough = 0.09; maxSpeedCoef = 0.9; dust = 0.5; soundEnviron = "dirt"; character = "Empty"; soundHit = "hard_ground"; lucidity = 1; grassCover = 0.0; }; }; class CfgSurfaceCharacters { class mum_rf_desert_Character { probability[] = {0.10,0.45,0.45}; names[] = {"mum_rf_GrassDryGroup","mum_rf_c_rock_stones","mum_rf_c_red_dirt_small_stones"}; }; class mum_rf_grass_short_Character { probability[] = {0.95,0.05}; names[] = {"mum_rf_GrassGreenGroup","mum_rf_FlowerLowYellow2"}; }; class mum_rf_dry_grass_Character { probability[] = {0.21,0.35,0.21,0.09,0.06,0.02}; names[] = {"mum_rf_GrassDryGroup","mum_rf_GrassDryMediumgroup","mum_rf_WeedBrownTallGroup","mum_rf_WeedGreenTall","mum_rf_ThistleYellowShrub","mum_rf_PlantMullein"}; }; }; I also have an issue with Stratis Map Markers being placed on my map. I haven''t gotten to this step yet, so I'm not super worried about it. Thanks for any help Share this post Link to post Share on other sites
RoF 241 Posted May 22, 2020 For anyone coming across this post, the issue was 2 }; at the end of class Sea class Sea { seaTexture = "a3\data_f\seatexture_co.paa"; seaMaterial = "#water"; shoreMaterial = "#shore"; shoreFoamMaterial = "#shorefoam"; shoreWetMaterial = "#shorewet"; WaterMapScale = 20; WaterGrid = 50; MaxTide = 0; MaxWave = 0; SeaWaveXScale = "2.0/50"; SeaWaveZScale = "1.0/50"; SeaWaveHScale = 2.0; SeaWaveXDuration = 5000; SeaWaveZDuration = 10000; }; }; <-- this Share this post Link to post Share on other sites