Jump to content
Sign in to follow this  
Kydoimos

Orbat fsm

Recommended Posts

Hi all! I've put together a little ORBAT FSM:

https://www.dropbox.com/s/l8bg4jb7ezphymj/cfgORBAT.fsm?dl=0

For some reason though, it's not showing up in-game: I've got this in an ORBAT module:

missionConfigFile >> "CfgORBAT" >> "RESIST" >> "O_Support"

What's missing, I wonder? I've compiled the FSM correctly, using the new updated, Arma 3 Tools, with ORBAT compiling functionality. Does anyone have it working yet? :D

Share this post


Link to post
Share on other sites

For some reason, FSM state names are not saved correctly.

Current:

        /*%FSM<STATE "BaseWestGuer">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               ...
       };

Expected (after re-saving it at my PC using FSM editor in Steam default A3 tools):

        /*%FSM<STATE "BaseWestGuer">*/
       class BaseWestGuer/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               ...
       };

Honestly, I have no idea why is it happening, all other FSM data e.g., links, inits, etc.) are correct.

Are you doing something out of ordinary when editing the file? If you create a new FSM ORBAT file, will it be the same? Could you heck if FSMs compiled with other configs (e.g., scriptedFSM.cfg, executable using execFSM) are broken as well?

Share this post


Link to post
Share on other sites

Hi Moricky, thanks ever so much for the response! I'll check this out later this afternoon and report back! I'll try a new FSM file and see what happens - will also try and look at compiling other configs. Again, thanks ever so for your response.

Share this post


Link to post
Share on other sites

I am also having this problem. here is my file

/*%FSM<COMPILE "C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\ORBAT.cfg, NW">*/
/*%FSM<HEAD>*/
/*
item0[] = {"BaseWest",2,250,-75.000000,-150.000000,25.000000,-100.000000,0.000000,"BaseWest"};
item1[] = {"BaseEast",2,250,25.000000,-150.000000,125.000000,-100.000000,0.000000,"BaseEast"};
item2[] = {"BaseGuer",2,250,125.000000,-150.000000,225.000000,-100.000000,0.000000,"BaseGuer"};
item3[] = {"BaseCiv",2,250,225.000000,-150.000000,325.000000,-100.000000,0.000000,"BaseCiv"};
item4[] = {"BaseWestGuer",2,250,325.000000,-150.000000,425.000000,-100.000000,0.000000,"BaseWestGuer"};
item5[] = {"BaseEastGuer",2,250,425.000000,-150.000000,525.000000,-100.000000,0.000000,"BaseEastGuer"};
item6[] = {"B_TF_Firefly",2,4346,-75.000000,-50.000000,25.000000,0.000000,0.000000,"B_TF_Firefly"};
globals[] = {25.000000,1,0,0,0,640,480,1,8,6316128,1,-315.299377,459.581909,293.772705,-179.992905,947,579,1};
window[] = {0,-1,-1,-1,-1,804,300,1626,80,1,965};
*//*%FSM</HEAD>*/
class NW
{
       /*%FSM<STATE "BaseWest">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               side = "West";
               commander = NATOMen;
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "BaseEast">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               side = "East";
               commander = TakistaniMen;
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "BaseGuer">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               side = "Resistance";
               commander = GreekMen;
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "BaseCiv">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               side = "Civilian";
               commander = TakistaniMen;
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "BaseWestGuer">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               side = "West";
               commander = GreekMen;
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "BaseEastGuer">*/
       class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               side = "East";
               commander = GreekMen;
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "B_TF_Firefly">*/
       class /*%FSM<STATEPRECONDITION>*/: BaseWest/*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id = 1;
               Text = "NATO Task Force Firefly";
               TextShort = "TF Firefly";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
};/*%FSM</COMPILE>*/

Share this post


Link to post
Share on other sites

Mmm... seems it must be the compiling function is broken...? I'll carry out some more checks and see if I can work out why it's happening.

Share this post


Link to post
Share on other sites

We are using the very same version (editor, compiler and config) as the version provided with the tools and I'm unable to reproduce the issue. Whatever I do or how I start FSMEditor, I have exactly the same result as Karel, the file is opened and correctly formatted on save.

Share this post


Link to post
Share on other sites

@Tom_48_97 - ah, ok! Thank you! That's good to hear - must be something I've done my end! I've taken the approach suggested by IndeedPete here:

Yes, you need to set the compile config. When opened a file in the FSM Editor hit FSMAttributes >> Compile config. Then navigate to the BI Tools dir, for me it's "D:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition". Depending on what you have in mind you need to pick the right config. I found for most applications (mission flow, scripting) the "scriptedFSM.cfg" works fine. However, I don't know if BI's orbat.fsm uses a different config - for example, their .fsm to handle the campaign flow requires a different config we don't have access to at the moment. If I were you I'd open up the original orbat.fsm and take a look under FSMAttributes >> Compile config. The path to the config of the BI Dev's machine who made the fsm in the first place should still be set, you might get a file name to look for in your own BI Tools dir. Good luck![/Quote]I'll try again - I'm sure it's fine - no doubt an oversight my end! :D

Share this post


Link to post
Share on other sites

Lol! :D Nah, I think your input's spot-on! Ahem - ten-to-one I've bodged something up somewhere! Will report back soon! Promise - it's not part of a MANW smear campaign :)

Share this post


Link to post
Share on other sites

So, after downloading Poseidon tools (0.82.3), it seems to compile correctly now.

the following is a small test I did to make sure.

/*%FSM<COMPILE "C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\ORBAT.cfg, NW">*/
/*%FSM<HEAD>*/
/*
item0[] = {"HQ",2,250,-75.000000,-200.000000,25.000000,-150.000000,0.000000,"HQ"};
item1[] = {"_",4,218,-75.000000,-100.000000,25.000000,-50.000000,0.000000,""};
item2[] = {"__Squad",2,4346,-75.000000,-25.000000,25.000000,25.000000,0.000000,"1Squad"};
link0[] = {0,1};
link1[] = {1,2};
globals[] = {25.000000,1,0,0,0,640,480,1,4,6316128,1,-417.212128,182.787933,389.968140,-210.031677,947,579,1};
window[] = {0,-1,-1,-1,-1,799,75,1401,75,1,965};
*//*%FSM</HEAD>*/
class NW
{
       /*%FSM<STATE "HQ">*/
       class HQ/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id = 1;
               type = "HQ";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
                       /*%FSM<LINK "_">*/
                       1Squad,
                       /*%FSM</LINK>*/
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "__Squad">*/
       class 1Squad/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id = 1000;
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
};/*%FSM</COMPILE>*/

Share this post


Link to post
Share on other sites

@IndeedPete - by the way, cool work with your MERCS FSMs! All your scripting's so clean and quick! Man, just been overlooking some of my old scripts... jeez... it's amazing anything worked! If only I'd learnt of the forEach command 6 months ago! :P

---------- Post added at 15:55 ---------- Previous post was at 15:54 ----------

Ah, great stuff, Nathan! Thanks! :D Might try that this evening!

---------- Post added at 15:56 ---------- Previous post was at 15:55 ----------

Can I just ask: what exactly is Poseidon Tools?

Share this post


Link to post
Share on other sites
Lol! :D Nah, I think your input's spot-on! Ahem - ten-to-one I've bodged something up somewhere! Will report back soon! Promise - it's not part of a MANW smear campaign :)

Too late anyway, public voting's over.^^ Maybe you can just upload your Orbat FSM and we'll check it for errors or if it compiles on our systems.

@IndeedPete - by the way, cool work with your MERCS FSMs! All your scripting's so clean and quick! Man, just been overlooking some of my old scripts... jeez... it's amazing anything worked! If only I'd learnt of the forEach command 6 months ago! :P

Thanks, I've learnt a lot while developing M.E.R.C.S. The ealier missions are not as clean as the later ones, believe me. If I had to do it again I'd do one or two things differently - for example the shop is a bit 2000ish in terms of design and usability.^^ But let's not go back to my editing past. There are still one or two projects mirrored somewhere out there - I don't want to talk about them. Still have some source files burried deep on my hard drive with my first steps in SQF, pretty funny actually. :D

Share this post


Link to post
Share on other sites

Just for clarification, how would I call this in game. I have the cfgORBAT.fsm in the mission file but it is not showing in the game. I tried the one provided in OP but with no avail.

Here is my code in the cfgORBAT.fsm

/*%FSM<COMPILE "C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\ORBAT.cfg, NW">*/
/*%FSM<HEAD>*/
/*
item0[] = {"TF_Firefox",2,250,-75.000000,-150.000000,25.000000,-100.000000,0.000000,"TF_Firefox"};
item1[] = {"_",4,218,-775.000000,-75.000000,-675.000000,-25.000000,2.000000,""};
item2[] = {"infantry",2,250,-775.000000,0.000000,-675.000000,50.000000,0.000000,"infantry"};
item3[] = {"__1",4,218,-75.000000,-75.000000,25.000000,-25.000000,1.000000,""};
item4[] = {"armor",2,250,-75.000000,0.000000,25.000000,50.000000,0.000000,"armor"};
item5[] = {"__2",4,218,375.000000,-75.000000,475.000000,-25.000000,0.000000,""};
item6[] = {"air",2,250,375.000000,0.000000,475.000000,50.000000,0.000000,"air"};
item7[] = {"_",4,218,-1075.000000,75.000000,-975.000000,125.000000,2.000000,""};
item8[] = {"A_Coy",2,250,-1075.000000,150.000000,-975.000000,200.000000,0.000000,"A_Coy"};
item9[] = {"__1",4,218,-775.000000,75.000000,-675.000000,125.000000,1.000000,""};
item10[] = {"B_Coy",2,250,-775.000000,150.000000,-675.000000,200.000000,0.000000,"B_Coy"};
item11[] = {"__2",4,218,-525.000000,75.000000,-425.000000,125.000000,0.000000,""};
item12[] = {"C_Coy",2,250,-525.000000,150.000000,-425.000000,200.000000,0.000000,"C_Coy"};
item13[] = {"_",4,218,-1075.000000,225.000000,-975.000000,275.000000,2.000000,""};
item14[] = {"A1Plt",2,250,-950.000000,225.000000,-850.000000,275.000000,0.000000,"A1Plt"};
item15[] = {"__1",4,218,-1075.000000,300.000000,-975.000000,350.000000,1.000000,""};
item16[] = {"A2Plt",2,250,-950.000000,300.000000,-850.000000,350.000000,0.000000,"A2Plt"};
item17[] = {"__2",4,218,-1075.000000,375.000000,-975.000000,425.000000,0.000000,""};
item18[] = {"A3Plt",2,4346,-950.000000,375.000000,-850.000000,425.000000,0.000000,"A3Plt"};
item19[] = {"_",4,218,-775.000000,225.000000,-675.000000,275.000000,2.000000,""};
item20[] = {"B1Plt",2,250,-650.000000,225.000000,-550.000000,275.000000,0.000000,"B1Plt"};
item21[] = {"__2",4,218,-775.000000,300.000000,-675.000000,350.000000,0.000000,""};
item22[] = {"B2Plt",2,250,-650.000000,300.000000,-550.000000,350.000000,0.000000,"B2Plt"};
item23[] = {"__1",4,218,-775.000000,375.000000,-675.000000,425.000000,0.000000,""};
item24[] = {"C3Plt",2,250,-650.000000,375.000000,-550.000000,425.000000,0.000000,"C3Plt"};
item25[] = {"_",4,218,-525.000000,225.000000,-425.000000,275.000000,1.000000,""};
item26[] = {"C1Plt",2,250,-400.000000,225.000000,-300.000000,275.000000,0.000000,"C1Plt"};
item27[] = {"__1",4,218,-525.000000,300.000000,-425.000000,350.000000,0.000000,""};
item28[] = {"C2Plt",2,250,-400.000000,300.000000,-300.000000,350.000000,0.000000,"C2Plt"};
link0[] = {0,1};
link1[] = {0,3};
link2[] = {0,5};
link3[] = {1,2};
link4[] = {2,7};
link5[] = {2,9};
link6[] = {2,11};
link7[] = {3,4};
link8[] = {5,6};
link9[] = {7,8};
link10[] = {8,13};
link11[] = {8,15};
link12[] = {8,17};
link13[] = {9,10};
link14[] = {10,19};
link15[] = {10,21};
link16[] = {10,23};
link17[] = {11,12};
link18[] = {12,25};
link19[] = {12,27};
link20[] = {13,14};
link21[] = {15,16};
link22[] = {17,18};
link23[] = {19,20};
link24[] = {21,22};
link25[] = {23,24};
link26[] = {25,26};
link27[] = {27,28};
globals[] = {25.000000,1,0,0,0,640,480,1,35,6316128,1,-1177.775391,13.992081,641.981201,-87.440643,946,579,1};
window[] = {0,-1,-1,-1,-1,924,200,1526,200,1,964};
*//*%FSM</HEAD>*/
class NW
{
       /*%FSM<STATE "TF_Firefox">*/
       class TF_Firefox/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1000;
               side = "West";
               size = "Division";
               type = "HQ";
               Commander = "White";
               CommanderRank = "GENERAL";
               text = "Task Force Firefox (Afghanistan deployment)";
               textShort = "TF Firefox";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
                       /*%FSM<LINK "_">*/
                       infantry,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__1">*/
                       armor,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__2">*/
                       air,
                       /*%FSM</LINK>*/
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "infantry">*/
       class infantry/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1100;
               side = "West";
               size = "Battalion";
               type = "Infantry";
               Commander = "Goldstein";
               CommanderRank = "Major";
               text = "Infantry Battalion";
               textShort = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
                       /*%FSM<LINK "_">*/
                       A_Coy,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__1">*/
                       B_Coy,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__2">*/
                       C_Coy,
                       /*%FSM</LINK>*/
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "armor">*/
       class armor/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id = 2000;
               side = "west";
               type = "armor";
               size = "company";                
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "air">*/
       class air/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id = 3000;
               side = "west";
               type = "Helicopter";
               size = "Company";

               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "A_Coy">*/
       class A_Coy/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1110;
               side = "West";
               size = "Company";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
                       /*%FSM<LINK "_">*/
                       A1Plt,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__1">*/
                       A2Plt,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__2">*/
                       A3Plt,
                       /*%FSM</LINK>*/
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "B_Coy">*/
       class B_Coy/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1120;
               side = "West";
               size = "Company";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
                       /*%FSM<LINK "_">*/
                       B1Plt,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__1">*/
                       C3Plt,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__2">*/
                       B2Plt,
                       /*%FSM</LINK>*/
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "C_Coy">*/
       class C_Coy/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1130;
               side = "West";
               size = "Company";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
                       /*%FSM<LINK "_">*/
                       C1Plt,
                       /*%FSM</LINK>*/
                       /*%FSM<LINK "__1">*/
                       C2Plt,
                       /*%FSM</LINK>*/
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "A1Plt">*/
       class A1Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1111;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "A2Plt">*/
       class A2Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1112;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "A3Plt">*/
       class A3Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1113;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "B1Plt">*/
       class B1Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1121;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "B2Plt">*/
       class B2Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1122;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "C3Plt">*/
       class C3Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1123;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "C1Plt">*/
       class C1Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1131;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
       /*%FSM<STATE "C2Plt">*/
       class C2Plt/*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
       {
               /*%FSM<STATEINIT>*/
               id  = 1132;
               side = "West";
               size = "Platoon";
               type = "Infantry";
               /*%FSM</STATEINIT>*/
               subordinates[] = {
               };
       };
       /*%FSM</STATE>*/
};/*%FSM</COMPILE>*/

Share this post


Link to post
Share on other sites

@Nathan423 - hi mate, I think this should do the trick (just add this to an Orbat module):

missionConfigFile >> "CfgORBAT" >> "RESIST" >> "O_Support"

Share this post


Link to post
Share on other sites

So, I've looked a bit into this thing. Correct me if I'm wrong but it seems like the CfgORBAT.fsm is basically what the name says - a config. It's just a way to neatly organise what one can achieve in a plain old description.ext or .hpp as well, right? I originally assumed the ORBAT FSM would somehow interact with the campaign flow, i.e. by automatically moving an ORBAT marker from mission to mission, so it appears an element is actually moving over the course of the campaign, maybe even dynamically. But as said, it seems like the cfgORBAT.fsm is just an easier way to organise this multi-layered ORBAT structure. I already found it gets unclear in plain configs real quick.

As for Kydoimos' problem: Your FSM seems a bit messed up. There are class references missing, some things are defnied twice (seems two connecting arrows to one element is like defining some class twice). So, the game CTDs as usual when messing something up in a config. I'm not sure what you've changed or how much of that FSM is done by yourself. I assume you've used BI's campaign ORBAT as template. Anyway, first step to make it work (and to give you some nice CTDs) is getting the game to know your config by adding it to your description.ext:

class cfgORBAT
{
#include "cfgORBAT.fsm"
};

I've started to fix some broken connections, however I'm still getting "base class thisandthat not defined" errors. I'm hardly an expert but I'd start with tracing down these errors. Here's what I've done so far: https://www.dropbox.com/s/p028qw50xslojd2/cfgORBAT.fsm?dl=0

Share this post


Link to post
Share on other sites

@Indeedpete - You legend! Thanks, matey! Really! I had no idea I had two connecting arrows - that would explain a lot! I'll add it in to the description as you suggest and troubleshoot from there! Thanks man! :D

---------- Post added at 19:07 ---------- Previous post was at 19:02 ----------

Lol, oh joy, let the CTDs begin! :D ha ha

---------- Post added at 20:58 ---------- Previous post was at 19:07 ----------

Yay! Made a very, very simple ORBAT.cfg and have got it working! :D Can build on that!

@Devs - thanks chaps, for your patience and advice! I'll be building some cool ORBAT pages now!

@IndeedPete - Thanks, man! By including my ORBAT.cfg in the description.ext I was able to troubleshoot properly - nice one!

Share this post


Link to post
Share on other sites

So, here's a little test ORBAT fsm I've put together: https://www.dropbox.com/s/l8bg4jb7ezphymj/cfgORBAT.fsm?dl=0. It works fine - however, if I edit the single statement, and change

text = "working"

to

text = "Something New"

it stops showing up in-game. I've tried re-compiling and saving. Not getting any CTDs through the Description.ext. Maybe saving over the original FSM causes problems? Pretty confident I'll work it out though! :D

Share this post


Link to post
Share on other sites

Just a quickie - if I've got an FSM error in, say, "line 25", how would I find that on the FSM table? Is there a way to arrange the table into lines? I've discovered the FSM manual online, but still finding it quite hard going! :)

EDIT: Ah, ok, can open it in notepad, lol! Got it.

Edited by Kydoimos

Share this post


Link to post
Share on other sites

You can open it in a text editor as well. What's in line 25 might give you a hint which states / connections are involved.

Share this post


Link to post
Share on other sites

@IndeedPete - thanks man! It's really odd. I've noticed that in BIS' ORBAT.cfg there's loads of duplicates via the unnamed 'conditions'. I guess they in themselves aren't an issue. Though I have no idea why my line 25 is an issue - it's not a duplicate class, as far as I can tell. Line 25 is the highlighted one below...

This FSM is really just Bohemia's ORBAT, just trying to get my head around it!

/*%FSM<COMPILE "C:\Program Files (x86)\Steam\SteamApps\steamapps\common\Arma 3 Tools\FSMEditor\ORBAT.cfg, ORBAT">*/
/*%FSM<HEAD>*/
/*
item0[] = {"BaseWestGuer",2,250,-750.000000,-75.000000,-650.000000,-25.000000,0.000000,"BaseWestGuer"};
item1[] = {"BaseWest",2,250,-750.000000,-125.000000,-650.000000,-75.000000,0.000000,"BaseWest"};
item2[] = {"BaseEast",2,250,-650.000000,-125.000000,-550.000000,-75.000000,0.000000,"BaseEast"};
item3[] = {"BaseGuer",2,250,-550.000000,-125.000000,-450.000000,-75.000000,0.000000,"BaseGuer"};
item4[] = {"BaseCiv",2,250,-450.000000,-125.000000,-350.000000,-75.000000,0.000000,"BaseCiv"};
item5[] = {"Resist_OPFOR",2,250,-450.000000,0.000000,-350.000000,50.000000,0.000000,"Resist_OPFOR"};
item6[] = {"Resist_Battalion",2,250,-75.000000,75.000000,25.000000,125.000000,0.000000,"Resist_Battalion"};
item7[] = {"_",4,218,-200.000000,75.000000,-100.000000,125.000000,3.000000,""};
item8[] = {"Resist_Trainers",2,250,725.000000,200.000000,825.000000,250.000000,0.000000,"Resist_Trainers"};
item9[] = {"_",4,218,725.000000,125.000000,825.000000,175.000000,3.000000,""};
item10[] = {"_",4,218,325.000000,275.000000,425.000000,325.000000,4.000000,""};
item11[] = {"Resist_OPFOR_01",2,250,325.000000,350.000000,425.000000,400.000000,0.000000,"Resist_OPFOR_01"};
item12[] = {"__1",4,218,600.000000,275.000000,700.000000,325.000000,3.000000,""};
item13[] = {"Resist_OPFOR_02",2,250,600.000000,350.000000,700.000000,400.000000,0.000000,"Resist_OPFOR_02"};
item14[] = {"__2",4,218,875.000000,275.000000,975.000000,325.000000,2.000000,""};
item15[] = {"Resist_OPFOR_03",2,250,875.000000,350.000000,975.000000,400.000000,0.000000,"Resist_OPFOR_03"};
item16[] = {"__3",4,4314,1150.000000,275.000000,1250.000000,325.000000,1.000000,""};
item17[] = {"Resist_OPFOR_04",2,250,1150.000000,350.000000,1250.000000,400.000000,0.000000,"Resist_OPFOR_04"};
item18[] = {"",7,210,771.000000,96.000000,779.000000,104.000000,0.000000,""};
item19[] = {"",7,210,196.000000,96.000000,204.000000,104.000000,0.000000,""};
item20[] = {"",7,210,-404.000000,96.000000,-396.000031,104.000000,0.000000,""};
[b]item21[] = {"Resist_FIA",2,250,-750.000000,0.000000,-650.000000,50.000000,0.000000,"Resist_FIA"};[/b]
item22[] = {"__3",4,218,-750.000000,675.000000,-650.000000,725.000000,0.000000,""};
item23[] = {"Resist_South",2,250,-925.000000,125.000000,-825.000000,175.000000,0.000000,"Resist_South"};
item24[] = {"_",4,218,-750.000000,125.000000,-650.000000,175.000000,0.000000,""};
item25[] = {"Resist_West",2,250,-925.000000,525.000000,-825.000000,575.000000,0.000000,"Resist_West"};
item26[] = {"__1",4,218,-750.000000,525.000000,-650.000000,575.000000,0.000000,""};
item27[] = {"Resist_East",2,250,-925.000000,600.000000,-825.000000,650.000000,0.000000,"Resist_East"};
item28[] = {"__2",4,218,-750.000000,600.000000,-650.000000,650.000000,0.000000,""};
item29[] = {"Resist_North",2,250,-925.000000,675.000000,-825.000000,725.000000,0.000000,"Resist_North"};
item30[] = {"__4",4,218,-1075.000000,425.000000,-975.000000,475.000000,0.000000,""};
item31[] = {"Resist_Group_04",2,250,-1250.000000,350.000000,-1150.000000,400.000000,0.000000,"Resist_Group_04"};
item32[] = {"_",4,218,-1075.000000,125.000000,-975.000000,175.000000,0.000000,""};
item33[] = {"Resist_Group_03",2,250,-1250.000000,275.000000,-1150.000000,325.000000,0.000000,"Resist_Group_03"};
item34[] = {"__1",4,218,-1075.000000,200.000000,-975.000000,250.000000,0.000000,""};
item35[] = {"Resist_Group_05",2,250,-1250.000000,425.000000,-1150.000000,475.000000,0.000000,"Resist_Group_05"};
item36[] = {"__2",4,218,-1075.000000,275.000000,-975.000000,325.000000,0.000000,""};
item37[] = {"Resist_Group_02",2,250,-1250.000000,200.000000,-1150.000000,250.000000,0.000000,"Resist_Group_02"};
item38[] = {"__3",4,218,-1075.000000,350.000000,-975.000000,400.000000,0.000000,""};
item39[] = {"Resist_Group_01",2,250,-1250.000000,125.000000,-1150.000000,175.000000,0.000000,"Resist_Group_01"};
item40[] = {"Resist_Aegis",2,250,-925.000000,-175.000000,-825.000000,-125.000000,0.000000,"Resist_Aegis"};
item41[] = {"Resist_Survivors",2,250,-1100.000000,-50.000000,-1000.000000,0.000000,0.000000,"Resist_Survivors"};
item42[] = {"_",4,218,-925.000000,-50.000000,-825.000000,0.000000,0.000000,""};
link0[] = {5,20};
link1[] = {6,18};
link2[] = {6,19};
link3[] = {7,6};
link4[] = {8,10};
link5[] = {8,12};
link6[] = {8,14};
link7[] = {8,16};
link8[] = {9,8};
link9[] = {10,11};
link10[] = {12,13};
link11[] = {14,15};
link12[] = {16,17};
link13[] = {18,9};
link14[] = {20,7};
link15[] = {21,22};
link16[] = {21,24};
link17[] = {21,26};
link18[] = {21,28};
link19[] = {22,29};
link20[] = {23,30};
link21[] = {23,32};
link22[] = {23,34};
link23[] = {23,36};
link24[] = {23,38};
link25[] = {24,23};
link26[] = {26,25};
link27[] = {28,27};
link28[] = {30,35};
link29[] = {32,39};
link30[] = {34,37};
link31[] = {36,33};
link32[] = {38,31};
link33[] = {40,42};
link34[] = {42,41};
globals[] = {25.000000,1,0,0,16777215,640,480,1,489,6316128,1,-1380.531494,600.035889,911.388733,-302.808167,1486,911,1};
window[] = {2,-1,-1,-32000,-32000,845,75,1158,75,3,1504};
*//*%FSM</HEAD>*/
class ORBAT
{
/*%FSM<STATE "BaseWestGuer">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
side = "West";
commander = GreekMen;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "BaseWest">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
side = "West";
commander = NATOMen;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "BaseEast">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
side = "East";
commander = TakistaniMen;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "BaseGuer">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
side = "Resistance";
commander = GreekMen;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "BaseCiv">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
side = "Civilian";
commander = GreekMen;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_OPFOR">*/
class /*%FSM<STATEPRECONDITION>*/: BaseEast/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 24;
type = "MechanizedInfantry";
size = "Regiment";
delete textureSize;

insignia = "\a3\missions_f_epb\data\img\orbat\csat_ca.paa";
colorInsignia[] = {0,0,0,1};
commander = $STR_A3_cfgORBAT.fsmBIS_O_Brigade0;
commanderRank = "General";
description = $STR_A3_cfgORBAT.fsmBIS_O_Brigade1;
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Battalion">*/
class /*%FSM<STATEPRECONDITION>*/: BaseEast/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 1;
type = "Infantry";
size = "Battalion";
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Trainers">*/
class /*%FSM<STATEPRECONDITION>*/: BaseEast/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 1;
idType = 2;
type = "Infantry";
size = "Company";
assets[] = {{O_MRAP_02_hmg_F,8},{O_MRAP_02_gmg_F,4}};
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__1">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__2">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__3">*/
,
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_OPFOR_01">*/
class /*%FSM<STATEPRECONDITION>*/: BaseEast/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 1;
type = "Infantry";
size = "Platoon";
assets[] = {{O_MRAP_02_hmg_F,2},{O_MRAP_02_gmg_F,1}};
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_OPFOR_02">*/
class /*%FSM<STATEPRECONDITION>*/: Resist_OPFOR_01/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 2;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_OPFOR_03">*/
class /*%FSM<STATEPRECONDITION>*/: Resist_OPFOR_01/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 3;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_OPFOR_04">*/
class /*%FSM<STATEPRECONDITION>*/: Resist_OPFOR_01/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
id = 4;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_FIA">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_a3_cfgfactionclasses_ind_g_f0;
textShort = $STR_a3_cfgfactionclasses_ind_g_f0;
texture = "flag_FIA";
insignia = "\a3\missions_f_epb\data\img\orbat\fia_ca.paa";
colorInsignia[] = {0,0,0,1};
description = $STR_A3_cfgORBAT.fsmBIS_B_I_FIA0;
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__1">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__2">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__3">*/
,
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_South">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
texture = "\a3\missions_f_epb\data\img\orbat\fia_marker_ca.paa";
textureSize = 0.8;
color[] = {0,0,0,1};
text = $STR_ORBAT_04_Text;
textShort = $STR_ORBAT_04_Text_Short;
commander = "Drakon";
commanderRank = "Captain";
description = $STR_ORBAT_04_Description;
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__1">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__2">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__3">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__4">*/
,
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_West">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
//texture = "hd_unknown";
texture = "\a3\missions_f_epb\data\img\orbat\fia_marker_ca.paa";
textureSize = 0.8;
color[] = {0,0,0,1};
text = $STR_A3_cfgORBAT.fsmBIS_B_I_20;
textShort = $STR_A3_cfgORBAT.fsmBIS_B_I_20;
commander = "";
size = "Size4";
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_East">*/
class /*%FSM<STATEPRECONDITION>*/: B_I_2/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_A3_cfgORBAT.fsmBIS_B_I_30;
textShort = $STR_A3_cfgORBAT.fsmBIS_B_I_30;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_North">*/
class /*%FSM<STATEPRECONDITION>*/: B_I_2/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_A3_cfgORBAT.fsmBIS_B_I_40;
textShort = $STR_A3_cfgORBAT.fsmBIS_B_I_40;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Group_04">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
type = "Infantry";
size = "Squad";
commander = $STR_a3_missions_f_gamma_cfgidentities_rc_b_kerry0;
commanderRank = "CORPORAL";
text = $STR_A3_Group_Omega;
textShort = $STR_A3_Group_Omega;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Group_03">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_A3_Group_Kappa;
textShort = $STR_A3_Group_Kappa;
commander = "GreekMen";
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Group_05">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_A3_Group_Sigma;
textShort = $STR_A3_Group_Sigma;
commander = "GreekMen";
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Group_02">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_A3_Group_Gamma;
textShort = $STR_A3_Group_Gamma;
commander = "GreekMen";
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Group_01">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWestGuer/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
type = "Recon";
text = $STR_A3_Group_Falcon;
textShort = $STR_A3_Group_Falcon;
commander = $STR_a3_cfgidentities_miller0;
commanderRank = "Captain";
description = $STR_A3_cfgORBAT.fsmBIS_B_I_CTRG2;
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Aegis">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_A3_cfgORBAT.fsmBIS_B_Aegis0;
textShort = $STR_A3_cfgORBAT.fsmBIS_B_Aegis1;
texture = "\a3\missions_f_epa\data\img\orbat\B_Aegis_texture_ca.paa";
color[] = {0,0,0,1};
insignia = "\a3\missions_f_epa\data\img\orbat\B_Aegis_ca.paa";
colorInsignia[] = {0,0,0,1};
commander = $STR_A3_CfgIdentities_MacKinnon;
commanderRank = "Colonel";
description = $STR_A3_cfgORBAT.fsmBIS_B_Aegis_description;
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "Resist_Survivors">*/
class /*%FSM<STATEPRECONDITION>*/: BaseWest/*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
texture = "\a3\ui_f\data\map\markers\NATO\b_inf.paa";
text = $STR_ORBAT_01_Text;
textShort = $STR_ORBAT_01_Text_Short;
commander = "Knight";
commanderRank = "Lieutenant";
description = $STR_ORBAT_01_Description;
assets[] = {"B_Heli_Transport_01_F", "B_Heli_Light_01_F"};
/*%FSM</STATEINIT>*/
subordinates[] = {
};
};
/*%FSM</STATE>*/
};/*%FSM</COMPILE>*/[/Code]

And here's the entry (it's basically BIS' own entry from their ORBAT.cfg):

[Code] /*%FSM</STATE>*/
/*%FSM<STATE "Resist_FIA">*/
class /*%FSM<STATEPRECONDITION>*//*%FSM</STATEPRECONDITION>*/
{
/*%FSM<STATEINIT>*/
text = $STR_a3_cfgfactionclasses_ind_g_f0;
textShort = $STR_a3_cfgfactionclasses_ind_g_f0;
texture = "flag_FIA";
insignia = "\a3\missions_f_epb\data\img\orbat\fia_ca.paa";
colorInsignia[] = {0,0,0,1};
description = $STR_A3_cfgORBAT.fsmBIS_B_I_FIA0;
/*%FSM</STATEINIT>*/
subordinates[] = {
/*%FSM<LINK "_">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__1">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__2">*/
,
/*%FSM</LINK>*/
/*%FSM<LINK "__3">*/
,
/*%FSM</LINK>*/
};
};
[/Code]

Edited by Kydoimos

Share this post


Link to post
Share on other sites

I'm getting:

File C:\Users\User\Documents\Other Profiles\Kydoimos\Missions\Test.Altis\cfgORBAT.fsm, line 25: /cfgORBAT/ORBAT.: Member already defined.[/Quote]The name of the last ORBAT is the name of my FSM. I've tried naming it lots of different things but to no avail. Curiously, I've tried to change as little as possible from BIS' ORBAT. At the moment, it's only the names of the states that I've altered, not what they contain. As well, I've added two states and a condition, and linked them in the same manner as the other states. I think I'm doing something wrong with every ORBAT I'm building, as the 'member already defined error' is coming up a lot!

Share this post


Link to post
Share on other sites

Member already defined sounds like there's some state twice. If I understand that Orbat.fsm thing correctly then state names represent class names in an old school config. Check if two states share a name. OR upload your current FSM so we can have another look.

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
Sign in to follow this  

×