dpottavio / CombatDen

Randomized missions for Arma 3
GNU Lesser General Public License v3.0
8 stars 3 forks source link

Problems with adding new faction #118

Open MajorBarf opened 2 years ago

MajorBarf commented 2 years ago

I've successfully added the Sefrou Ramal terrain (from the Western Sahara extension) as per your guide on the wiki. But I am having problems adding the Tura from that extension as a new faction. Using the existing faction cpp files as examples, I constructed the attached file and added it to the config\factions.cpp. But when I start the scenario, this does not show as one of the factions in the settings. There is just the standard NATO, CSAT, AAF, FIA & random choices.

I'll admit that this is all new to me, so I may be missing something obvious. Please can you take a look? If I can get this working, I'd like to do an ION faction. And then I'd like to move onto Madrigal from the Operation Trebuchet mod and add some Halo factions (which then means asking how you declare dependencies in these files?).

/* Copyright (C) 2019 D. Ottavio

This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program.  If not, see
<https://www.gnu.org/licenses/>.

*/

class Tura : Faction { addon = "WS"; ammoBox = "Box_IND_Ammo_F"; cargoBox = "I_CargoNet_01_ammo_F"; climateDenyList[] = { "Tropic", "Wood", "Winter" }; era = ERA_2034; flagTexture = "\A3\Data_F\Flags\Flag_Green_CO.paa"; fullMoonOnly = 1; name = "Tura"; side = SIDE_GUER;

class Arsenal : ArsenalLowTech
{
    class SemiArid : Base
    {
        grenades[] += {
            "HandGrenade",
            "MiniGrenade",
            "SmokeShell",
            "SmokeShellBlue",
            "SmokeShellGreen",
            "SmokeShellOrange",
            "SmokeShellPurple",
            "SmokeShellRed",
            "SmokeShellYellow"
        };
        mags[] = {
            "20Rnd_762x51_slr_lxWS",
            "30Rnd_762x39_Mag_F",
            "75Rnd_762x39_Mag_F",
            "30Rnd_9x21_Mag",
            "1Rnd_40mm_HE_lxWS",
            "1Rnd_58mm_AT_lxWS",
            "RPG32_F",
            "RPG32_HE_F",
            "APERSTripMine_Wire_Mag",
            "APERSTripMine_Range_Mag",
            "10Rnd_9x21_Mag"
        };
        weapons[] = {
           "arifle_SLR_GL_lxWS",
           "arifle_Galat_lxWS",
           "hgun_PDW2000_F",
           "arifle_SLR_KHS_old_lxWS",
           "hgun_Pistol_01_F";
        };
        launchers[] = {
            "launch_RPG32_F"
        };
        backpacks[] = {
            "B_Kitbag_cbr_Hireling_1_lxWS",
            "B_FieldPack_oli_Medic_1_lxWS",
            "B_FieldPack_khk_Bandit_2_lxWS"
        };
        vests[] = {
            "V_lxWS_TacVestIR_oli",
            "V_lxWS_HarnessO_oli",
            "V_Chestrig_khk"
        };
        headgear[] = {
            "lxWS_H_turban_02_green_bandit",
            "lxWS_H_turban_02_black_bandit",
            "lxWS_H_turban_02_sand_bandit",
            "lxWS_H_turban_03_sand",
            "G_Bandanna_Oli",
            "G_Bandanna_beast",
            "G_Bandanna_sport",
            "G_Aviator",
            "G_Shades_Green"
        };
        uniforms[] = {
            "U_lxWS_SFIA_soldier_1",
            "U_lxWS_SFIA_deserter",
            "U_lxWS_Djella_02_Grey",
            "U_lxWS_Djella_02_Brown",
            "U_lxWS_Djella_02_Sand",
            "U_lxWS_Djella_03_Green"
        };
        bipods[] = {
            "bipod_01_f_snd",
            "bipod_03_f_blk"
        };
        items[] = {
            "FirstAidKit",
            "ToolKit"
        };
    };
    class Arid : SemiArid {};
};

class Vehicle
{
    class SemiArid
    {
        truckAssault     = "I_Tura_Offroad_armor_armed_lxWS";
        truckSupplyAmmo  = "I_Tura_Offroad_armor_lxWS";
        truckSupplyCargo = "I_Tura_Offroad_armor_lxWS";
        truckSupplyFuel  = "C_Van_01_fuel_F";
        truckTransport   = "I_Tura_Offroad_armor_lxWS";
    };
    class Arid : SemiArid {};
};

class Group : Group
{
    class Couple : Couple {};
    class Single : Single {};
    class Squad  : Squad {};
    class Team   : Team {};
    class Triple : Triple {};

    class SemiArid
    {
        class TruckCrew : Couple
        {
            class Unit0 : Unit0
            {
                vehicle = "I_SFIA_enforcer_lxWS";
            };
            class Unit1 : Unit1
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
        };
        class HeloPilot : Couple
        {
            class Unit0 : Unit0
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
            class Unit1 : Unit1
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
        };
        class HeloCrew : Couple
        {
            class Unit0 : Unit0
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
            class Unit1 : Unit1
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
        };
        class Pilot : Single
        {
            class Unit0 : Unit0
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
        };
        class Sentry : Couple
        {
            class Unit0 : Unit0
            {
                vehicle = "I_SFIA_watcher_lxWS";
            };
            class Unit1 : Unit1
            {
                vehicle = "I_SFIA_deserter_lxWS";
            };
        };
        class FireTeam : Team
        {
            class Unit0 : Unit0
            {
                vehicle="I_SFIA_enforcer_lxWS";
            };
            class Unit1 : Unit1
            {
                vehicle="I_SFIA_hireling_lxWS";
            };
            class Unit2 : Unit2
            {
                vehicle="I_SFIA_watcher_lxWS";
            };
            class Unit3 : Unit3
            {
                vehicle="I_SFIA_deserter_lxWS";
            };
        };
        class AssaultSquad : Squad
        {
            class Unit0 : Unit0
            {
                vehicle="I_SFIA_enforcer_lxWS";
            };
            class Unit1 : Unit1
            {
                vehicle="I_SFIA_scout_lxWS";
            };
            class Unit2 : Unit2
            {
                vehicle="I_SFIA_hireling_lxWS";
            };
            class Unit3 : Unit3
            {
                vehicle="I_SFIA_watcher_lxWS";
            };
            class Unit4 : Unit4
            {
                vehicle="I_SFIA_defector_lxWS";
            };
            class Unit5 : Unit5
            {
                vehicle="I_SFIA_deserter_lxWS";
            };
            class Unit6 : Unit6
            {
                vehicle="I_SFIA_thug_lxWS";
            };
            class Unit7 : Unit7
            {
                vehicle="I_SFIA_medic2_lxWS";
            };
        };
        class ReconSquad : AssaultSquad
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
            class Unit4 : Unit4 {};
            class Unit5 : Unit5 {};
            class Unit6 : Unit6 {};
            class Unit7 : Unit7 {};
        };
        class ReconTeam : FireTeam
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
        };
        class MotorizedHmg : Single
        {
            class Unit0 : Unit0
            {
                vehicle="I_Tura_Offroad_armor_armed_lxWS";
            };
        };
        class MotorizedTeam : Triple
        {
            class Unit0 : Unit0
            {
                 vehicle="I_Tura_Offroad_armor_armed_lxWS";
            };
            class Unit1 : Unit1
            {
                 vehicle="I_SFIA_hireling_lxWS";
            };
            class Unit2 : Unit2
            {
                 vehicle="I_SFIA_deserter_lxWS";
            };
        };
        class MotorizedAssault : AssaultSquad
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
            class Unit4 : Unit4 {};
            class Unit5 : Unit5 {};
            class Unit6 : Unit6 {};
            class Unit7 : Unit7 {};
            class Unit8
            {
                position[] = {-20,-20,0};
                rank = "LIEUTENANT";
                vehicle="I_Tura_Offroad_armor_lxWS";
            };
        };
    };
    class Arid : SemiArid
    {
        class TruckCrew : TruckCrew
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
        };
        class HeloPilot : HeloPilot
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
        };
        class HeloCrew : HeloCrew
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
        };
        class Pilot : Pilot
        {
            class Unit0 : Unit0 {};
        };
        class Sentry   : Sentry
        {
           class Unit0 : Unit0 {};
           class Unit1 : Unit1 {};
        };
        class FireTeam : FireTeam
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
        };
        class AssaultSquad : AssaultSquad
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
            class Unit4 : Unit4 {};
            class Unit5 : Unit5 {};
            class Unit6 : Unit6 {};
            class Unit7 : Unit7 {};
        };
        class ReconSquad : ReconSquad
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
            class Unit4 : Unit4 {};
            class Unit5 : Unit5 {};
            class Unit6 : Unit6 {};
            class Unit7 : Unit7 {};
        };
        class ReconTeam : ReconTeam
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
        };
        class MotorizedHmg : MotorizedHmg
        {
            class Unit0 : Unit0 {};
        };
        class MotorizedTeam : MotorizedTeam
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
        };
        class MotorizedAssault : MotorizedAssault
        {
            class Unit0 : Unit0 {};
            class Unit1 : Unit1 {};
            class Unit2 : Unit2 {};
            class Unit3 : Unit3 {};
            class Unit4 : Unit4 {};
            class Unit5 : Unit5 {};
            class Unit6 : Unit6 {};
            class Unit7 : Unit7 {};
            class Unit8 : Unit8 {};
        };
    };
};

class Loadout : Loadout
{
    class Base : Base
    {
        handgun             = "hgun_Pistol_01_F";

        class Uniform : Uniform { items[] += {"10Rnd_9x21_Mag","10Rnd_9x21_Mag","FirstAidKit"}; };
        class Vest : VestLowTech {};
        class Backpack : Backpack {};
        class LinkedItems : LinkedItemsLowTech {};
    };
    class RiflemanBase : Base
    {
        unit                = "I_SFIA_deserter_lxWS";
        rifle               = "arifle_Galat_lxWS";
        primaryMag          = "30Rnd_762x39_Mag_F";
        primaryMagCount     = 11;

        class Uniform : Uniform { type = "U_lxWS_SFIA_deserter"; };
        class Vest : Vest { type = "V_lxWS_HarnessO_oli"; items[] += {"MiniGrenade","MiniGrenade","SmokeShell","SmokeShell"}; };
        class Backpack : Backpack {};
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_green_bandit","G_Bandanna_beast"}; };
    };
    class GrenadierBase : Base
    {
        unit                = "I_SFIA_defector_lxWS";
        rifle               = "arifle_SLR_GL_lxWS";
        primaryMag          = "20Rnd_762x51_slr_lxWS";
        primaryMagCount     = 4;
        secondaryMag        = "1Rnd_40mm_HE_lxWS";
        secondaryMagCount   = 14;

        class Uniform : Uniform { type = "U_lxWS_SFIA_soldier_1"; };
        class Vest : Vest { type = "V_lxWS_TacVestIR_oli"; items[] += {"1Rnd_Smoke_Grenade_shell","SmokeShellBlue","SmokeShellBlue"}; };
        class Backpack : Backpack {};
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_green_bandit","G_Bandanna_Oli"}; };
    };
    class AutorifleBase : Base
    {
        unit                = "I_SFIA_enforcer_lxWS";
        rifle               = "arifle_Galat_lxWS";
        primaryMag          = "75Rnd_762x39_Mag_F";
        primaryMagCount     = 11;

        class Uniform : Uniform { type = "U_lxWS_Djella_02_Grey"; };
        class Vest : Vest { type = "V_lxWS_TacVestIR_oli"; items[] += {"MiniGrenade","MiniGrenade","SmokeShellGreen","SmokeShellGreen"}; };
        class Backpack : Backpack { type = "B_FieldPack_khk_Bandit_2_lxWS"; };
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_03_sand"}; };
    };
    class MarksmanBase : Base
    {
        unit                = "I_SFIA_scout_lxWS";
        rifle               = "arifle_SLR_KHS_old_lxWS";
        primaryMagCount     = 11;
        rifleSight          = "optic_KHS_old";

        class Uniform : Uniform { type = "U_lxWS_Djella_02_Sand"; };
        class Vest : Vest { type = "V_Chestrig_khk"; items[] += {"MiniGrenade","MiniGrenade","SmokeShellOrange","SmokeShellOrange"}; };
        class Backpack : Backpack {};
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_sand_bandit"}; };
    };
    class MedicBase : Base
    {
        unit                = "I_SFIA_medic2_lxWS";
        rifle               = "arifle_Galat_lxWS";
        primaryMag          = "30Rnd_762x39_Mag_F";
        primaryMagCount     = 11;

        class Uniform : Uniform { type = "U_lxWS_Djella_03_Green"; items[] += {"FirstAidKit","FirstAidKit","SmokeShellPurple","SmokeShellPurple"}; };
        class Vest : Vest {};
        class Backpack : Backpack { type = "B_FieldPack_oli_Medic_1_lxWS"; items[] += {"Medikit","FirstAidKit","FirstAidKit","FirstAidKit","FirstAidKit"}; };
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_black_bandit"}; };
    };
    class AtBase : Base
    {
        unit                = "I_SFIA_hireling_lxWS";
        rifle               = "hgun_PDW2000_F";
        primaryMag          = "30Rnd_9x21_Mag";
        primaryMagCount     = 11;
        launcher            = "launch_RPG32_F";
        secondaryMag        = "RPG32_HE_F";
        secondaryMagCount   = 2;            

        class Uniform : Uniform { type = "U_lxWS_Djella_02_Brown"; items[] += {"MiniGrenade","MiniGrenade","SmokeShellRed","SmokeShellRed"}; };
        class Vest : Vest {};
        class Backpack : Backpack { type = "B_Kitbag_cbr_Hireling_1_lxWS"; items[] += {"RPG32_F","RPG32_F","RPG32_F","RPG32_HE_F","RPG32_HE_F"}; };
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_black_bandit","G_Bandanna_sport"}; };
    };
    class EodBase : Base
    {
        unit                = "I_SFIA_thug_lxWS";
        rifle               = "arifle_Galat_lxWS";
        primaryMag          = "30Rnd_762x39_Mag_F";
        primaryMagCount     = 11;

        class Uniform : Uniform { type = "U_lxWS_Djella_02_Sand"; items[] += {"MiniGrenade","MiniGrenade","SmokeShellYellow","SmokeShellYellow"}; };
        class Vest : Vest {};
        class Backpack : Backpack { type = "B_FieldPack_khk_Bandit_2_lxWS"; items[] += {"APERSTripMine_Wire_Mag","APERSTripMine_Wire_Mag","APERSMine_Range_Mag","APERSMine_Range_Mag"}; };
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_sand_bandit"}; };
    };
    class EngineerBase : Base
    {
        unit                = "I_SFIA_watcher_lxWS";
        rifle               = "arifle_Galat_lxWS";
        primaryMag          = "30Rnd_762x39_Mag_F";
        primaryMagCount     = 11;

        class Uniform : Uniform { type = "U_lxWS_Djella_03_Green"; items[] += {"MiniGrenade","MiniGrenade","SmokeShellYellow","SmokeShellYellow"}; };
        class Vest : Vest {};
        class Backpack : Backpack { type = "B_FieldPack_khk_Bandit_2_lxWS"; items[] += {"ToolKit"};};
        class LinkedItems : LinkedItems { items[] += {"lxWS_H_turban_02_black_bandit"}; };
    };

    class Arid
    {
        class Rifleman
        {
            role = "Rifleman";
            class Deserter : RiflemanBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class Grenadier
        {
            role = "Grenadier";
            class Defector : GrenadierBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class SquadLeader
        {
            role = "Squad Leader";
            class SquidBleeder : GrenadierBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class Autorifleman
        {
            role = "Autorifleman";
            class Enforcer : AutorifleBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class Marksman
        {
            role = "Marksman";
            class Scout : MarksmanBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class Medic
        {
            role = "Medic";
            class Snatcher : MedicBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class At
        {
            role = "Anti-Tank";
            class Hireling : AtBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class Eod
        {
            role = "EOD";
            class Thug : EodBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
        class Engineer
        {
            role = "Engineer";
            class Watcher : EngineerBase
            {
                class Uniform     : Uniform {};
                class Vest        : Vest {};
                class Backpack    : Backpack {};
                class LinkedItems : LinkedItems {};
            };
        };
    };

    class SemiArid : Arid
    {
    };
};

};

dpottavio commented 2 years ago

Hi,

Factions also need to be included in CfgFactions.cpp. Take a look at that file and follow the same pattern with your new faction.

To create a dependency for a faction you need to add a patches array to the config. Take a look at this example. The variables in this list must be variables that exist in the mod the faction depends on. You can find them using the config viewer.

MajorBarf commented 2 years ago

Thanks for the quick response, but I have already done that as you can see below. (Sorry, I typed "config\factions.cpp" in the original issue when I actually meant "config\CfgFactions.cpp")

The other things I had to guess in the faction file I originally posted was the "addon" and "era" settings at the top. "WS" is the folder in which the Western Sahara extension installs itself (where all the ebo & bisign files are) so I asume that is what goes in the "addon" value. The "era" one is guess because that is what the NATO, FIA etc. factions use and they show up OK.

Thanks for any help you can provide.

/* Copyright (C) 2018 D. Ottavio

This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program.  If not, see
<https://www.gnu.org/licenses/>.

*/

class CfgFactions {

include "factions\faction.cpp" // must be declaired first

/*

dpottavio commented 2 years ago

Ah, I think the issue is you don't have patches defined. This is used to determine if the addon/mod is loaded. Factions are only included if all the config variables defined in patches are loaded. Take look at the example I posted above.

MajorBarf commented 2 years ago

Thanks for your prompt reply. So I started the Combat Den scenario and found my way to the "CfgFactionClasses" section in the config viewer. There was an entry in there called "IND_TURA_lxWS" (as well as "BLU_TURA_lxWS" & "OPFOR_TURA_lxWS") with the following values against it:

displayName = "Tura"; flag = "\lxws\data_f_lxws\img\Flags\flag_Argana_CO.paa"; icon = "\lxws\data_f_lxws\img\ui\cfgFactionClasses_Tura_ca.paa"; priority = 3; side = 2;

So I amended my cpp file so that it starts like this:

class Tura : Faction { name = "Tura"; side = SIDE_GUER; addon = "WS"; patches[] = { "IND_TURA_lxWS" }; era = ERA_2034; ammoBox = "Box_IND_Ammo_F"; cargoBox = "I_CargoNet_01_ammo_F"; climateDenyList[] = { "Tropic","Wood","Winter" }; flagTexture = "\lxws\data_f_lxws\img\Flags\flag_Argana_CO.paa"; fullMoonOnly = 1;

But I am still not having any luck with this. After each change, I've closed Arma and the launcher, deleted the mission folder and rebuilt it using "build.py". I then restart Arma, select the scenario and it opens the CBA_A3 screen where I click on "configure addons". The faction selection dropdowns only show Random, NATO, CSAT etc., not the Tura.

There is an entry in the config viewer for "CfgAddons", which then had "PreloadAddons" and below that "A3_lxWS" with the following value. Should I be using one or more of the values here? list[] = {"Characters_f_lxWS","Characters_f_lxWS_headgear","data_f_lxWS","dubbing_F_lxWS","EditorPreviews_F_lxWS","functions_f_lxWS","Language_f_lxWS","Missions_F_lxWS","Missions_F_lxWS_Data","Missions_F_lxWS_Video","animals_f_lxWS","animals_F_lxWS_camel","anims_F_lxWS","music_f_lxWS","Rocks_F_lxWS","Shield_F_lxWS","sounds_f_lxWS","structures_F_lxWS","structures_F_lxWS_Civ","structures_F_lxWS_Civ_InfoBoards","structures_F_lxWS_Commercial","structures_F_lxWS_Cultural","structures_F_lxWS_Cultural_Fortress","structures_F_lxWS_Cultural_Statues","structures_F_lxWS_Decals","structures_F_lxWS_Decals_Horizontal","structures_F_lxWS_Furniture","structures_F_lxWS_Furniture_A2","structures_F_lxWS_Furniture_Misc","structures_F_lxWS_HouseA","structures_F_lxWS_HouseC","structures_F_lxWS_HouseK","structures_F_lxWS_HouseL","structures_F_lxWS_Industrial","structures_F_lxWS_Industrial_Agriculture","structures_F_lxWS_Industrial_Mining","structures_F_lxWS_Items","structures_F_lxWS_Items_Food","structures_F_lxWS_Items_Misc","structures_F_lxWS_Mil","structures_F_lxWS_Mil_Fortificaton","structures_F_lxWS_Misc","structures_F_lxWS_Misc_Powerlines","structures_F_lxWS_Misc_Runways","structures_F_lxWS_Pavements","structures_F_lxWS_Rail","structures_F_lxWS_Tents","structures_F_lxWS_Tower","Vegetation_F_lxWS","Vehicles_F_lxWS","Vehicles_F_lxWS_APC_Wheeled_01","Vehicles_F_lxWS_Offroad_01","Vehicles_F_lxWS_Truck_02","Vehicles_F_lxWS_zu23","walls_f_lxWS","walls_f_lxWS_PalmFence","Weapons_F_lxWS","Weapons_F_lxWS_Ammoboxes","Weapons_F_lxWS_Camera","Weapons_F_lxWS_Rifles","Air_F_lxWS","Air_F_lxWS_Heli_Light_02","map_wsahara_data_lxWS","map_wsahara_data_layers_lxWS","map_wsahara_lxWS","map_wsahara_scenes_f_lxWS"};

Sorry if I am being incredibly stupid, but I am obviously missing something here! I did wonder about the "era" but because that is what the standard factions use, it seems like the right value. I have also tried "fullMoonOnly" with both 0 and 1 in case that makes any difference.

dpottavio commented 2 years ago

Which terrain are you loading the faction into? I would try removing the climateDeny list to make sure you're not trying to start the faction in one of those terrains.

The factions are loaded from this function. You can add some logging to this function to see if you're hitting any that is blocking your new faction from being loaded.

One other thing you can try is take an existing faction and create a copy of it with a new name and see that works. For example, take AAF config create a copy and rename the class to Aaf2 and `name = "AAF2". Reload, and see if that duplicate faction shows up in Altis. If you can load this duplicate faction then you can probably rule out there is something about your setup causing the issue and it's just your config.

MajorBarf commented 2 years ago

I'm using the Western Sahara DLC that was recently issued by Rotators Collective and sold through Bohemia. It's a desert so I can't see it being anything but "Arid". I've tried removing the climateDeny as you suggested but that doesn't make any difference.

I've also done a copy of the FIA faction, called it FIA2 and changed the faction name. Then added it to the CfgFactions.cpp and rebuilt the scenario. It doesn't show up in the list.

I'll try doing some logging and get back to you with the results. Thanks.