How to make Level-Specific Side Modifications?

Started by Idren, February 07, 2017, 09:20:35 PM

Previous topic - Next topic
Hi,

I'm working on my first mod in a while, and I'm hoping for some help figuring out how to make edits to a side.  Specifically I'm trying to re-skin / make various edits to the IMP side (renames, retextures, etc.) but only for my new map/world - and not for the entire game. (I don't want to overwrite the game's standard setup.)

I've been searching / reading tons of topics that are somewhat related to this on the site, but I haven't been able to find a tutorial / someone else's question regarding this specific portion.

I'm still a newbie when it comes to anything outside of ZeroEdit.

Thanks in advance!

Make your sides then call them from the DC: location. See jabbas palace lua for an example.
Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

Thanks for the quick reply!  For how short it was it made something click in my brain (hopefully correctly) :)
The proces doesn't seem quite so mysterious after looking at the TAT3 stuff REALLY in depth.  I couldn't see the connections between the LVL, REQ, ODF, MSH, and TGA files before. I think I've got at least a general idea of what's going on now?

So for a reskin: I would make a new side using the BFBuilder Pro (import side) - change the various .tgas I want changed, munge, take the new side's .lvl file and put it in my map's "Data\_lvl_pc\Side" folder.  Add the side via the mission.LUAs and it should work?

So my current understanding / guesswork has led me to believe the following order of events:

1. "addme" appends the level to the game's list and runs the scripts under "Common\Scripts". 
2. These scripts create the missions/eras by reading in the .LVL files for the Sound, Sides, and Level
          (made from ZeroEdit) and their required .REQ files.
3. The .REQ files are used to load in their .ODFs
4. The .ODFs load their respective .MSHs
5. The .MSHs load their respective .TGA files.
???

I don't currently have time to test it out (gotta get to classes)
But I'm attaching the tat3a.lua script found here:"DataTAT3\Common\Scripts\TAT\tat3a.lua"
with comments of my attempt at figuring out the various functions and any additional questions/clarifications I have.  I'll be attempting adding the new side later today when I'm back from school.


Here's the tat3a.lua with my comments in green
I'm kind of hoping for clarification where I'm right/wrong (hoping that's not too much to ask)
So thanks a TON for anyone willing to spend the time helping me out.
[spoiler]---------------------------------------------------------------------------
-- FUNCTION:    ScriptInit
-- PURPOSE:     This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES:       The name, 'ScriptInit' is a chosen convention, and each
--              mission script must contain a version of this function, as
--              it is called from C to start the mission.
---------------------------------------------------------------------------

function ScriptInit()
--  Empire Attacking (attacker is always #1)
    local ALL = 1
    local IMP = 2
--  These variables do not change
    local ATT = 1
    local DEF = 2

   -- my guess is that the AddMissionObjective function sets up
   -- the localization for the objectives added? I have no clue
   -- what the "red" / "orange" stands for or why it's important.

    AddMissionObjective(IMP, "red", "level.tat3.objectives.1");
    AddMissionObjective(IMP, "orange", "level.tat3.objectives.2");
    AddMissionObjective(IMP, "orange", "level.tat3.objectives.3");
    AddMissionObjective(ALL, "red", "level.tat3.objectives.1");
    AddMissionObjective(ALL, "orange", "level.tat3.objectives.2");
    AddMissionObjective(ALL, "orange", "level.tat3.objectives.3");
   
      SetTeamAggressiveness(IMP, 0.95)
SetTeamAggressiveness(ALL, 0.95)


   -- So ReadDataFile is the function you add in your
   -- .lvl files that you've created and their respective
   -- ".req" files? - I'm not 100% sure what's being
   -- referenced here.
   -- It looks like the arguments for ReadDataFile
   -- should be:
   --ReadDataFile(location of main .lvl file, comma separated list of reqs (w/o the .req) needed for that .lvl file)
   --I'm not sure about the 1st call to ReadDataFile though with the ";" seemingly out of place...

    ReadDataFile("dc:sound\\tat.lvl;tat3gcw")
    ReadDataFile("SIDE\\all.lvl",
        "all_inf_basicdesert",
        "all_inf_smuggler");

    ReadDataFile("SIDE\\imp.lvl",
        "imp_inf_basic_tie",
        "imp_inf_dark_trooper");

    ReadDataFile("dc:SIDE\\gam.lvl",
        "gam_inf_gamorreanguard")
   
    SetAttackingTeam(ATT);

--      Alliance Stats
    --SetTeamName(team, Name as seen ingame?)
   --SetTeamIcon(I would assume it's referencing a texture or something, but I can't find it.
    -- AddUnitClass looks like it's referencing ".odf" files and not ".reqs"
   -- Do these ODFs have to match up with the .reqs read from ReadDataFile above?

    SetTeamName(ALL, "Alliance")
    SetTeamIcon(ALL, "all_icon")
    AddUnitClass(ALL, "all_inf_soldierdesert",10)
    AddUnitClass(ALL, "all_inf_vanguard",1)
    AddUnitClass(ALL, "all_inf_pilot",2)
    AddUnitClass(ALL, "all_inf_marksman",2)
    AddUnitClass(ALL, "all_inf_smuggler",1)

--      Imperial Stats
    SetTeamName(IMP, "Empire")
    SetTeamIcon(IMP, "imp_icon")
    AddUnitClass(IMP, "imp_inf_storm_trooper",10)
    AddUnitClass(IMP, "imp_inf_shock_trooper",1)
    AddUnitClass(IMP, "imp_inf_pilottie",2)
    AddUnitClass(IMP, "imp_inf_scout_trooper",2)
    AddUnitClass(IMP, "imp_inf_dark_trooper",1)

   
--  Attacker Stats   
   -- These sections I'm not sure how the BleedThreshold works.
   -- I know it has to do with when a team isn't holding enough bases
   -- and starts losing reinforcements, but I'm not sure about these
   -- values that are being entered.

    SetUnitCount(ATT, 16)
    SetReinforcementCount(ATT, 200)
--    AddBleedThreshold(ATT, 31, 0.0)
--    AddBleedThreshold(ATT, 21, 0.75)
    AddBleedThreshold(ATT, 11, 0.75)
    AddBleedThreshold(ATT, 10, 1.5)
    AddBleedThreshold(ATT, 1, 3.0)

--  Defender Stats
    SetUnitCount(DEF, 16)
    SetReinforcementCount(DEF, 200)
--    AddBleedThreshold(DEF, 31, 0.0)
--    AddBleedThreshold(DEF, 21, 0.75)
    AddBleedThreshold(DEF, 11, 0.75)
    AddBleedThreshold(DEF, 10, 1.5)
    AddBleedThreshold(DEF, 1, 3.0)

--  Local Stats
    SetTeamName(3, "locals")
    AddUnitClass(3, "gam_inf_gamorreanguard",3)
    SetUnitCount(3, 3)
    SetTeamAsEnemy(3, ATT)
    SetTeamAsEnemy(3, DEF)

   
   
--  Level Stats
   
   --This section is a mystery to me. I've seen around that the
   --AddWalkerType(x,y) references walkers w/0 legs (droideka)
   --1 pair(atst), 2 pair(atat/spider?), and 3 pair(atte)
   -- I'm not sure why this section is clearing/adding walker types for
   -- Jabbas Palace though?
   --
   -- I'm also lost on what SetMemoryPoolSize() is doing and how I would
   -- be able to use it in a map
   -- Also I noticed there's another ReadDataFile("dc:TAT\\tat3.lvl") here
   -- and I'm curious as to why it's not up with the other ReadDataFile() calls

   ClearWalkers()
    AddWalkerType(0, 0)
    AddWalkerType(1, 4)
    AddWalkerType(2, 0)
    --SetMemoryPoolSize("EntityHover", 12)
    --SetMemoryPoolSize("EntityFlyer", 5)
--  SetMemoryPoolSize("EntityBuildingArmedDynamic", 16)
--  SetMemoryPoolSize("EntityTauntaun", 0)
--  SetMemoryPoolSize("MountedTurret", 22)
    SetMemoryPoolSize("PowerupItem", 60)
    SetMemoryPoolSize("SoundSpaceRegion", 81)
    SetMemoryPoolSize("EntityMine", 40)
    SetMemoryPoolSize("Aimer", 200)
    SetMemoryPoolSize("Obstacle", 725)
    SetSpawnDelay(10.0, 0.25)
    ReadDataFile("dc:TAT\\tat3.lvl")
    SetDenseEnvironment("true")
    --AddDeathRegion("Sarlac01")
    SetMaxFlyHeight(90)
    SetMaxPlayerFlyHeight(90)


--  Sound Stats
    OpenAudioStream("sound\\tat.lvl",  "tatgcw_music");
    OpenAudioStream("dc:sound\\tat.lvl",  "tat3");
    OpenAudioStream("dc:sound\\tat.lvl",  "tat3");
    OpenAudioStream("sound\\gcw.lvl",  "gcw_vo");
    OpenAudioStream("sound\\gcw.lvl",  "gcw_tac_vo");
    OpenAudioStream("dc:sound\\tat.lvl",  "tat3_emt");
    --OpenAudioStream("dc:sound\\tat.lvl",  "tat3_emt");

    SetBleedingVoiceOver(ALL, ALL, "all_off_com_report_us_overwhelmed", 1);
    SetBleedingVoiceOver(ALL, IMP, "all_off_com_report_enemy_losing",   1);
    SetBleedingVoiceOver(IMP, ALL, "imp_off_com_report_enemy_losing",   1);
    SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1);

    SetLowReinforcementsVoiceOver(ALL, ALL, "all_off_defeat_im", .1, 1);
    SetLowReinforcementsVoiceOver(ALL, IMP, "all_off_victory_im", .1, 1);
    SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1, 1);
    SetLowReinforcementsVoiceOver(IMP, ALL, "imp_off_victory_im", .1, 1);

    SetOutOfBoundsVoiceOver(2, "Allleaving");
    SetOutOfBoundsVoiceOver(1, "Impleaving");

    SetAmbientMusic(ALL, 1.0, "all_tat_amb_start",  0,1);
    SetAmbientMusic(ALL, 0.99, "all_tat_amb_middle", 1,1);
    SetAmbientMusic(ALL, 0.1,"all_tat_amb_end",    2,1);
    SetAmbientMusic(IMP, 1.0, "imp_tat_amb_start",  0,1);
    SetAmbientMusic(IMP, 0.99, "imp_tat_amb_middle", 1,1);
    SetAmbientMusic(IMP, 0.1,"imp_tat_amb_end",    2,1);

    SetVictoryMusic(ALL, "all_tat_amb_victory");
    SetDefeatMusic (ALL, "all_tat_amb_defeat");
    SetVictoryMusic(IMP, "imp_tat_amb_victory");
    SetDefeatMusic (IMP, "imp_tat_amb_defeat");



    SetSoundEffect("ScopeDisplayZoomIn",  "binocularzoomin");
    SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout");
    --SetSoundEffect("WeaponUnableSelect",  "com_weap_inf_weaponchange_null");
    --SetSoundEffect("WeaponModeUnableSelect",  "com_weap_inf_modechange_null");
    SetSoundEffect("SpawnDisplayUnitChange",       "shell_select_unit");
    SetSoundEffect("SpawnDisplayUnitAccept",       "shell_menu_enter");
    SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change");
    SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter");
    SetSoundEffect("SpawnDisplayBack",             "shell_menu_exit");

    --SetPlanetaryBonusVoiceOver(IMP, IMP, 0, "imp_bonus_imp_medical");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 0, "imp_bonus_all_medical");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 1, "");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 1, "");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 2, "imp_bonus_imp_sensors");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 2, "imp_bonus_all_sensors");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 3, "imp_bonus_imp_hero");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 3, "imp_bonus_all_hero");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 4, "imp_bonus_imp_reserves");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 4, "imp_bonus_all_reserves");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 5, "imp_bonus_imp_sabotage");--sabotage
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 5, "imp_bonus_all_sabotage");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 6, "");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 6, "");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 7, "imp_bonus_imp_training");--advanced training
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 7, "imp_bonus_all_training");--advanced training

    --SetPlanetaryBonusVoiceOver(ALL, ALL, 0, "all_bonus_all_medical");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 0, "all_bonus_imp_medical");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 1, "");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 1, "");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 2, "all_bonus_all_sensors");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 2, "all_bonus_imp_sensors");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 3, "all_bonus_all_hero");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 3, "all_bonus_imp_hero");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 4, "all_bonus_all_reserves");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 4, "all_bonus_imp_reserves");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 5, "all_bonus_all_sabotage");--sabotage
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 5, "all_bonus_imp_sabotage");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 6, "");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 6, "");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 7, "all_bonus_all_training");--advanced training
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 7, "all_bonus_imp_training");--advanced training


--  Camera Stats
   --These are for the end-screen-shot at Victory/Defeat and you get
   --the coordinates from SPTest's dumpcamera functionality I think?

--Tat 3 - Jabbas' Palace
    AddCameraShot(0.685601, -0.253606, -0.639994, -0.236735, -65.939224, -0.176558, 127.400444);
    AddCameraShot(0.786944, 0.050288, -0.613719, 0.039218, -80.626396, 1.175180, 133.205551);
    AddCameraShot(0.997982, 0.061865, -0.014249, 0.000883, -65.227898, 1.322798, 123.976990);
    AddCameraShot(-0.367869, -0.027819, -0.926815, 0.070087, -19.548307, -5.736280, 163.360519);
    AddCameraShot(0.773980, -0.100127, -0.620077, -0.080217, -61.123989, -0.629283, 176.066025);
    AddCameraShot(0.978189, 0.012077, 0.207350, -0.002560, -88.388947, 5.674968, 153.745255);
    AddCameraShot(-0.144606, -0.010301, -0.986935, 0.070304, -106.872772, 2.066469, 102.783096);
    AddCameraShot(0.926756, -0.228578, -0.289446, -0.071390, -60.819584, -2.117482, 96.400620);
    AddCameraShot(0.873080, 0.134285, 0.463274, -0.071254, -52.071609, -8.430746, 67.122437);
    AddCameraShot(0.773398, -0.022789, -0.633236, -0.018659, -32.738083, -7.379394, 81.508003);
    AddCameraShot(0.090190, 0.005601, -0.993994, 0.061733, -15.379695, -9.939115, 72.110054);
    AddCameraShot(0.971737, -0.118739, -0.202524, -0.024747, -16.591295, -1.371236, 147.933029);
    AddCameraShot(0.894918, 0.098682, -0.432560, 0.047698, -20.577391, -10.683214, 128.752563);

end
[/spoiler]

I know these things have probably been laid out plain before, so I'm incredibly thankful for any/all help from you all.

February 08, 2017, 12:58:17 PM #3 Last Edit: February 08, 2017, 01:00:59 PM by Phobos
Quote from: bboettcher on February 08, 2017, 10:38:36 AM
Thanks for the quick reply!  For how short it was it made something click in my brain (hopefully correctly) :)
The proces doesn't seem quite so mysterious after looking at the TAT3 stuff REALLY in depth.  I couldn't see the connections between the LVL, REQ, ODF, MSH, and TGA files before. I think I've got at least a general idea of what's going on now?

So for a reskin: I would make a new side using the BFBuilder Pro (import side) - change the various .tgas I want changed, munge, take the new side's .lvl file and put it in my map's "Data\_lvl_pc\Side" folder.  Add the side via the mission.LUAs and it should work?

So my current understanding / guesswork has led me to believe the following order of events:

1. "addme" appends the level to the game's list and runs the scripts under "Common\Scripts". 
2. These scripts create the missions/eras by reading in the .LVL files for the Sound, Sides, and Level
          (made from ZeroEdit) and their required .REQ files.
3. The .REQ files are used to load in their .ODFs
4. The .ODFs load their respective .MSHs
5. The .MSHs load their respective .TGA files.
???

I don't currently have time to test it out (gotta get to classes)
But I'm attaching the tat3a.lua script found here:"DataTAT3\Common\Scripts\TAT\tat3a.lua"
with comments of my attempt at figuring out the various functions and any additional questions/clarifications I have.  I'll be attempting adding the new side later today when I'm back from school.


Here's the tat3a.lua with my comments in green
I'm kind of hoping for clarification where I'm right/wrong (hoping that's not too much to ask)
So thanks a TON for anyone willing to spend the time helping me out.
[spoiler]---------------------------------------------------------------------------
-- FUNCTION:    ScriptInit
-- PURPOSE:     This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES:       The name, 'ScriptInit' is a chosen convention, and each
--              mission script must contain a version of this function, as
--              it is called from C to start the mission.
---------------------------------------------------------------------------

function ScriptInit()
--  Empire Attacking (attacker is always #1)
    local ALL = 1
    local IMP = 2
--  These variables do not change
    local ATT = 1
    local DEF = 2

   -- my guess is that the AddMissionObjective function sets up
   -- the localization for the objectives added? I have no clue
   -- what the "red" / "orange" stands for or why it's important.

    AddMissionObjective(IMP, "red", "level.tat3.objectives.1");
    AddMissionObjective(IMP, "orange", "level.tat3.objectives.2");
    AddMissionObjective(IMP, "orange", "level.tat3.objectives.3");
    AddMissionObjective(ALL, "red", "level.tat3.objectives.1");
    AddMissionObjective(ALL, "orange", "level.tat3.objectives.2");
    AddMissionObjective(ALL, "orange", "level.tat3.objectives.3");
   
      SetTeamAggressiveness(IMP, 0.95)
SetTeamAggressiveness(ALL, 0.95)


   -- So ReadDataFile is the function you add in your
   -- .lvl files that you've created and their respective
   -- ".req" files? - I'm not 100% sure what's being
   -- referenced here.
   -- It looks like the arguments for ReadDataFile
   -- should be:
   --ReadDataFile(location of main .lvl file, comma separated list of reqs (w/o the .req) needed for that .lvl file)
   --I'm not sure about the 1st call to ReadDataFile though with the ";" seemingly out of place...

    ReadDataFile("dc:sound\\tat.lvl;tat3gcw")
    ReadDataFile("SIDE\\all.lvl",
        "all_inf_basicdesert",
        "all_inf_smuggler");

    ReadDataFile("SIDE\\imp.lvl",
        "imp_inf_basic_tie",
        "imp_inf_dark_trooper");

    ReadDataFile("dc:SIDE\\gam.lvl",
        "gam_inf_gamorreanguard")
   
    SetAttackingTeam(ATT);

--      Alliance Stats
    --SetTeamName(team, Name as seen ingame?)
   --SetTeamIcon(I would assume it's referencing a texture or something, but I can't find it.
    -- AddUnitClass looks like it's referencing ".odf" files and not ".reqs"
   -- Do these ODFs have to match up with the .reqs read from ReadDataFile above?

    SetTeamName(ALL, "Alliance")
    SetTeamIcon(ALL, "all_icon")
    AddUnitClass(ALL, "all_inf_soldierdesert",10)
    AddUnitClass(ALL, "all_inf_vanguard",1)
    AddUnitClass(ALL, "all_inf_pilot",2)
    AddUnitClass(ALL, "all_inf_marksman",2)
    AddUnitClass(ALL, "all_inf_smuggler",1)

--      Imperial Stats
    SetTeamName(IMP, "Empire")
    SetTeamIcon(IMP, "imp_icon")
    AddUnitClass(IMP, "imp_inf_storm_trooper",10)
    AddUnitClass(IMP, "imp_inf_shock_trooper",1)
    AddUnitClass(IMP, "imp_inf_pilottie",2)
    AddUnitClass(IMP, "imp_inf_scout_trooper",2)
    AddUnitClass(IMP, "imp_inf_dark_trooper",1)

   
--  Attacker Stats   
   -- These sections I'm not sure how the BleedThreshold works.
   -- I know it has to do with when a team isn't holding enough bases
   -- and starts losing reinforcements, but I'm not sure about these
   -- values that are being entered.

    SetUnitCount(ATT, 16)
    SetReinforcementCount(ATT, 200)
--    AddBleedThreshold(ATT, 31, 0.0)
--    AddBleedThreshold(ATT, 21, 0.75)
    AddBleedThreshold(ATT, 11, 0.75)
    AddBleedThreshold(ATT, 10, 1.5)
    AddBleedThreshold(ATT, 1, 3.0)

--  Defender Stats
    SetUnitCount(DEF, 16)
    SetReinforcementCount(DEF, 200)
--    AddBleedThreshold(DEF, 31, 0.0)
--    AddBleedThreshold(DEF, 21, 0.75)
    AddBleedThreshold(DEF, 11, 0.75)
    AddBleedThreshold(DEF, 10, 1.5)
    AddBleedThreshold(DEF, 1, 3.0)

--  Local Stats
    SetTeamName(3, "locals")
    AddUnitClass(3, "gam_inf_gamorreanguard",3)
    SetUnitCount(3, 3)
    SetTeamAsEnemy(3, ATT)
    SetTeamAsEnemy(3, DEF)

   
   
--  Level Stats
   
   --This section is a mystery to me. I've seen around that the
   --AddWalkerType(x,y) references walkers w/0 legs (droideka)
   --1 pair(atst), 2 pair(atat/spider?), and 3 pair(atte)
   -- I'm not sure why this section is clearing/adding walker types for
   -- Jabbas Palace though?
   --
   -- I'm also lost on what SetMemoryPoolSize() is doing and how I would
   -- be able to use it in a map
   -- Also I noticed there's another ReadDataFile("dc:TAT\\tat3.lvl") here
   -- and I'm curious as to why it's not up with the other ReadDataFile() calls

   ClearWalkers()
    AddWalkerType(0, 0)
    AddWalkerType(1, 4)
    AddWalkerType(2, 0)
    --SetMemoryPoolSize("EntityHover", 12)
    --SetMemoryPoolSize("EntityFlyer", 5)
--  SetMemoryPoolSize("EntityBuildingArmedDynamic", 16)
--  SetMemoryPoolSize("EntityTauntaun", 0)
--  SetMemoryPoolSize("MountedTurret", 22)
    SetMemoryPoolSize("PowerupItem", 60)
    SetMemoryPoolSize("SoundSpaceRegion", 81)
    SetMemoryPoolSize("EntityMine", 40)
    SetMemoryPoolSize("Aimer", 200)
    SetMemoryPoolSize("Obstacle", 725)
    SetSpawnDelay(10.0, 0.25)
    ReadDataFile("dc:TAT\\tat3.lvl")
    SetDenseEnvironment("true")
    --AddDeathRegion("Sarlac01")
    SetMaxFlyHeight(90)
    SetMaxPlayerFlyHeight(90)


--  Sound Stats
    OpenAudioStream("sound\\tat.lvl",  "tatgcw_music");
    OpenAudioStream("dc:sound\\tat.lvl",  "tat3");
    OpenAudioStream("dc:sound\\tat.lvl",  "tat3");
    OpenAudioStream("sound\\gcw.lvl",  "gcw_vo");
    OpenAudioStream("sound\\gcw.lvl",  "gcw_tac_vo");
    OpenAudioStream("dc:sound\\tat.lvl",  "tat3_emt");
    --OpenAudioStream("dc:sound\\tat.lvl",  "tat3_emt");

    SetBleedingVoiceOver(ALL, ALL, "all_off_com_report_us_overwhelmed", 1);
    SetBleedingVoiceOver(ALL, IMP, "all_off_com_report_enemy_losing",   1);
    SetBleedingVoiceOver(IMP, ALL, "imp_off_com_report_enemy_losing",   1);
    SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1);

    SetLowReinforcementsVoiceOver(ALL, ALL, "all_off_defeat_im", .1, 1);
    SetLowReinforcementsVoiceOver(ALL, IMP, "all_off_victory_im", .1, 1);
    SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1, 1);
    SetLowReinforcementsVoiceOver(IMP, ALL, "imp_off_victory_im", .1, 1);

    SetOutOfBoundsVoiceOver(2, "Allleaving");
    SetOutOfBoundsVoiceOver(1, "Impleaving");

    SetAmbientMusic(ALL, 1.0, "all_tat_amb_start",  0,1);
    SetAmbientMusic(ALL, 0.99, "all_tat_amb_middle", 1,1);
    SetAmbientMusic(ALL, 0.1,"all_tat_amb_end",    2,1);
    SetAmbientMusic(IMP, 1.0, "imp_tat_amb_start",  0,1);
    SetAmbientMusic(IMP, 0.99, "imp_tat_amb_middle", 1,1);
    SetAmbientMusic(IMP, 0.1,"imp_tat_amb_end",    2,1);

    SetVictoryMusic(ALL, "all_tat_amb_victory");
    SetDefeatMusic (ALL, "all_tat_amb_defeat");
    SetVictoryMusic(IMP, "imp_tat_amb_victory");
    SetDefeatMusic (IMP, "imp_tat_amb_defeat");



    SetSoundEffect("ScopeDisplayZoomIn",  "binocularzoomin");
    SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout");
    --SetSoundEffect("WeaponUnableSelect",  "com_weap_inf_weaponchange_null");
    --SetSoundEffect("WeaponModeUnableSelect",  "com_weap_inf_modechange_null");
    SetSoundEffect("SpawnDisplayUnitChange",       "shell_select_unit");
    SetSoundEffect("SpawnDisplayUnitAccept",       "shell_menu_enter");
    SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change");
    SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter");
    SetSoundEffect("SpawnDisplayBack",             "shell_menu_exit");

    --SetPlanetaryBonusVoiceOver(IMP, IMP, 0, "imp_bonus_imp_medical");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 0, "imp_bonus_all_medical");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 1, "");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 1, "");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 2, "imp_bonus_imp_sensors");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 2, "imp_bonus_all_sensors");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 3, "imp_bonus_imp_hero");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 3, "imp_bonus_all_hero");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 4, "imp_bonus_imp_reserves");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 4, "imp_bonus_all_reserves");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 5, "imp_bonus_imp_sabotage");--sabotage
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 5, "imp_bonus_all_sabotage");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 6, "");
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 6, "");
    --SetPlanetaryBonusVoiceOver(IMP, IMP, 7, "imp_bonus_imp_training");--advanced training
    --SetPlanetaryBonusVoiceOver(IMP, ALL, 7, "imp_bonus_all_training");--advanced training

    --SetPlanetaryBonusVoiceOver(ALL, ALL, 0, "all_bonus_all_medical");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 0, "all_bonus_imp_medical");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 1, "");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 1, "");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 2, "all_bonus_all_sensors");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 2, "all_bonus_imp_sensors");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 3, "all_bonus_all_hero");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 3, "all_bonus_imp_hero");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 4, "all_bonus_all_reserves");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 4, "all_bonus_imp_reserves");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 5, "all_bonus_all_sabotage");--sabotage
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 5, "all_bonus_imp_sabotage");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 6, "");
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 6, "");
    --SetPlanetaryBonusVoiceOver(ALL, ALL, 7, "all_bonus_all_training");--advanced training
    --SetPlanetaryBonusVoiceOver(ALL, IMP, 7, "all_bonus_imp_training");--advanced training


--  Camera Stats
   --These are for the end-screen-shot at Victory/Defeat and you get
   --the coordinates from SPTest's dumpcamera functionality I think?

--Tat 3 - Jabbas' Palace
    AddCameraShot(0.685601, -0.253606, -0.639994, -0.236735, -65.939224, -0.176558, 127.400444);
    AddCameraShot(0.786944, 0.050288, -0.613719, 0.039218, -80.626396, 1.175180, 133.205551);
    AddCameraShot(0.997982, 0.061865, -0.014249, 0.000883, -65.227898, 1.322798, 123.976990);
    AddCameraShot(-0.367869, -0.027819, -0.926815, 0.070087, -19.548307, -5.736280, 163.360519);
    AddCameraShot(0.773980, -0.100127, -0.620077, -0.080217, -61.123989, -0.629283, 176.066025);
    AddCameraShot(0.978189, 0.012077, 0.207350, -0.002560, -88.388947, 5.674968, 153.745255);
    AddCameraShot(-0.144606, -0.010301, -0.986935, 0.070304, -106.872772, 2.066469, 102.783096);
    AddCameraShot(0.926756, -0.228578, -0.289446, -0.071390, -60.819584, -2.117482, 96.400620);
    AddCameraShot(0.873080, 0.134285, 0.463274, -0.071254, -52.071609, -8.430746, 67.122437);
    AddCameraShot(0.773398, -0.022789, -0.633236, -0.018659, -32.738083, -7.379394, 81.508003);
    AddCameraShot(0.090190, 0.005601, -0.993994, 0.061733, -15.379695, -9.939115, 72.110054);
    AddCameraShot(0.971737, -0.118739, -0.202524, -0.024747, -16.591295, -1.371236, 147.933029);
    AddCameraShot(0.894918, 0.098682, -0.432560, 0.047698, -20.577391, -10.683214, 128.752563);

end
[/spoiler]

I know these things have probably been laid out plain before, so I'm incredibly thankful for any/all help from you all.
It sounds like you already have a basic understanding of the mod files. Yes, basically the builders munge all of those filetypes, and the REQs determines which files are contained in the LVL.

All files referenced within side ODFs that are listed in the REQ should munge. This means secondary ODFs (such as _ord and _exp), MSH, and the TGA called on by MSH, along with .option files, effects, and munged animations. And for world LVLs, other files in the World1 folder are munged.

Addme.lua appends the map to the game's missionlist as an AddOn, there is a hardcoded limit of around 20-24 maps. Though it is possible to add more maps to the stock missionlist.LUA by editing the game's shell.lvl, this process isn't needed for most mod maps.

Regarding the mission.LUA you posted:
- The mission objectives can be hard-coded in the LUA by adding them in the quotes, OR you can reference a localization string stored within the core.lvl, which is useful if you want to edit CP names to, see this thread for more info http://www.swbfgamers.com/index.php?topic=11610
- I forget what the colors "red" and "orange" is for
- ReadDataFile is a LUA command that tells the game engine to read an LVL file (though it also works for .config files and some other munged formats), using the DC: command tells it to look in the AddOn folder for the LVL. It can also be stored in the root _LVL_PC folder, or a custom subfolder (as was done for ICW) which is useful if you're using the same SIDE files for multiple mod maps. 
- When you see the custom sound LVL, it's calling on a sub-LVL for the GCW sound era (these have their own sub-REQ files accordingly). Sound LVL modding is rather tricky, and should probably be learned after you understand more about modding sides, worlds, LUA, and other LVL files.
- SetTeamIcon loads the texture from stock common.lvl textures I think, you can probably add a new one there if needed.
- AddUnitClass does call on ODFs in the side LVL, but they must also be referenced in the side REQ in order to munge. And yes, for SIDE.lvl REQs called on in the ReadDataFileSection, such as imp_inf_basic_tie, these must be called in order to load into game memory the units listed in those REQs.
- BleedThreshhold is just something you have to tweak a few times to get the right feel for it, there is "autobleed" settings I discovered which drain a server reinforcements when the CPs are equal and nobody is in the server. You can also disable bleed, or make it very slow. I think the first number after the faction indicates the rate of bleed, the last number has to do with how imbalanced the CP ownership is for the current map. There are some LUA tutorials on here you can find by doing some additional searching
- The WalkerTypes are usually set to 0 on maps they aren't loaded for, one of them is for Dekas.
- The ReadDataFile mentioned down in the Level Stats section calls on the World LVL, it should not be called until after the sides are loaded.
- SetMemoryPoolSize lets you specify max settings for certain memory pools. However, these limits are hard-coded in the game EXE, and cannot be increased by modders, since the EXE source for SWBF1 (and SWBF2) can't be released. Modders can only set them as high as the LUA supports, anything higher will be ignored and limited to the EXE max limit. You can increase things like EntityMine and PowerUpItem, but sound is more limited. If not listed in the LUA, the default setting is used (for those it is 40). Also to check the limits in SPtest, type mem
- Yes, you can use dumpcamera with SPtest to generate custom camera values.

More threads with useful info about SPTest and LUA modding
http://www.swbfgamers.com/index.php?topic=5689
http://www.swbfgamers.com/index.php?topic=3641
http://www.swbfgamers.com/index.php?topic=979
http://www.swbfgamers.com/index.php?topic=9619

February 09, 2017, 10:46:54 AM #4 Last Edit: February 09, 2017, 10:59:49 AM by bboettcher
Thanks so much for helping me out! I was finally able to add my own re-textured Side!
The strange thing was that the Imperial base showed up Yellow, and were all labeled as killed Gammoreans?
Is this something to do with it being a dc:SIDE and it defaulting to gammorean stuff?  Where do I go to change this?

Quote from: bboettcher on February 09, 2017, 10:46:54 AM
Thanks so much for helping me out! I was finally able to add my own re-textured Side!
The strange thing was that the Imperial base showed up Yellow, and were all labeled as killed Gammoreans?
Is this something to do with it being a dc:SIDE and it defaulting to gammorean stuff?  Where do I go to change this?
It probably has to do with the LUA and imp being set to team 3 instead of team 2. Post your mission LUA here and I'll see what needs to be changed.




Quote from: SleepKiller on May 27, 2017, 09:20:24 AM
Quote from: DylanRocket on May 27, 2017, 07:49:43 AM
The first two Battlefront games both use the Zero Engine. Renegade/Elite Squadron uses Asura Engine and EA's Battlefronts use the Frostbite engine.
Sorry this is incorrect and also an old pet peeve of mine that people constantly get wrong. (So I naturally can't help but be pretentious and correct you on it.)

The way SWBF used Zero was in the form of Zero Editor as an external tool for level creation. People have often taken this to mean that SWBF's engine must then be Zero but that is incorrect. The SWBF engine itself was nameless and distinct from Zero.

Not really incorrect, since Psych0fred already confirmed the engine was named ZeroEngine after it was developed. If you'd rather call it "The Nameless Engine Used In SWBF" go right ahead, but nobody is actually "getting it wrong" by calling it what the devs called it.

https://en.wikipedia.org/wiki/Zero_(game_engine)

Quote from: RepComm on February 02, 2014, 06:06:10 PM
If you "Look carefully." you will see that my original post had the ever so disgraceful term "Zero Engine," when the image has an temporarily edited version to say "SALLY" in it's place.
Lol I think pandemic would find naming the engine "sally" more of a disgrace than "zeroengine". What's next, hex editing ZeroEditor to say SallyEditor? :rofl:

February 09, 2017, 02:59:51 PM #6 Last Edit: February 09, 2017, 04:24:54 PM by bboettcher
Quote from: Phobos on February 09, 2017, 02:19:25 PM
It probably has to do with the LUA and imp being set to team 3 instead of team 2. Post your mission LUA here and I'll see what needs to be changed.

Alright here's my Tat4a.lua (where I added my side)
I'll keep looking around for where else the "Gammoreans" might be coming from too.

[spoiler]
--start header
function ScriptInit()
local ALL = 1
local IMP = 2
local ATT = 1
local DEF = 2
--end header

--start objectives
AddMissionObjective(IMP,"red", "level.Tat4.objectives.1");
AddMissionObjective(IMP,"orange", "level.Tat4.objectives.2");
AddMissionObjective(IMP,"orange", "level.Tat4.objectives.3");
AddMissionObjective(ALL,"red", "level.Tat4.objectives.1");
AddMissionObjective(ALL,"orange", "level.Tat4.objectives.2");
AddMissionObjective(ALL,"orange","level.Tat4.objectives.3");
--end objectives

--start soundlvl
ReadDataFile("sound\\tat.lvl;tat1gcw");
--end soundlvl

-- Start sidelvls
--ALLIANCE

ReadDataFile("SIDE\\all.lvl",
"all_inf_basicdesert", --The units REQ for the level
"all_inf_lukeskywalker", --The hero's REQ for the level
"all_inf_smuggler"); --The 5th troop's REQ (wookie smuggler)

--EMPIRE
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_basic",
"imp_inf_dark_trooper");
--end sidelvls

--start loadouts
--ALLIANCE

SetTeamName(ALL, "Alliance")
SetTeamIcon(ALL, "all_icon")
AddUnitClass(ALL, "all_inf_soldierdesert",10)
AddUnitClass(ALL, "all_inf_vanguard",1)
AddUnitClass(ALL, "all_inf_pilot",2)
AddUnitClass(ALL, "all_inf_marksman",2)
AddUnitClass(ALL, "all_inf_smuggler",1)
SetHeroClass(ALL, "all_inf_lukeskywalker")

--EMPIRE
SetTeamName(IMP, "Empire")
SetTeamIcon(IMP, "imp_icon")
AddUnitClass(IMP, "imp_inf_storm_trooper",10)
AddUnitClass(IMP, "imp_inf_shock_trooper",1)
AddUnitClass(IMP, "imp_inf_pilottie",2)
AddUnitClass(IMP, "imp_inf_scout_trooper",2)
AddUnitClass(IMP, "imp_inf_dark_trooper",1)
--end loadouts


--start teamstats
SetUnitCount(ATT, 16)
SetReinforcementCount(ATT, 200)
SetUnitCount(DEF, 16)
SetReinforcementCount(DEF, 200)
--end teamstats

--start alliances
SetTeamAsFriend(ATT, 1)
SetTeamAsEnemy(ATT, 2)
SetTeamAsFriend(DEF, 2)
SetTeamAsEnemy(DEF, 1)
SetAttackingTeam(ATT);
--end alliances

--start memorypools
ClearWalkers()
AddWalkerType(0, 0)-- special -> droidekas
AddWalkerType(1, 0)-- 1x2 (1 pair of legs)
AddWalkerType(2, 0)-- 2x2 (2 pairs of legs)
AddWalkerType(3, 0)-- 3x2 (3 pairs of legs)
SetMemoryPoolSize("PowerupItem", 60)
SetMemoryPoolSize("EntityMine", 40)
--end memorypools

--start worldlvl
ReadDataFile("dc:Tat4\\Tat4.lvl")
--end worldlvl

--start spawndelay
SetSpawnDelay(10.0, 0.25)
--end spawndelay

--start flyheight
--end flyheight

--start ainotify
--end ainotify

--start stayinturrets
--end stayinturrets

--start denseenvironment

SetDenseEnvironment("false")
--end denseenvironment

--start birdsandfish
--end birdsandfish

--start deathregions
--end deathregions

--start soundconfig

OpenAudioStream("sound\\tat.lvl","tatgcw_music");
OpenAudioStream("sound\\tat.lvl","tat1");
OpenAudioStream("sound\\tat.lvl","tat1");
OpenAudioStream("sound\\gcw.lvl","gcw_vo");
OpenAudioStream("sound\\gcw.lvl","gcw_tac_vo");
OpenAudioStream("sound\\tat.lvl","tat1_emt");
SetBleedingVoiceOver(ALL,ALL,"all_off_com_report_us_overwhelmed",1);
SetBleedingVoiceOver(ALL,IMP,"all_off_com_report_enemy_losing",1);
SetBleedingVoiceOver(IMP,ALL,"imp_off_com_report_enemy_losing",1);
SetBleedingVoiceOver(IMP,IMP,"imp_off_com_report_us_overwhelmed",1);
SetLowReinforcementsVoiceOver(ALL, ALL, "all_off_defeat_im", .1,1);
SetLowReinforcementsVoiceOver(ALL, IMP, "all_off_victory_im", .1,1);
SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1,1);
SetLowReinforcementsVoiceOver(IMP, ALL, "imp_off_victory_im", .1,1);
SetOutOfBoundsVoiceOver(2,"Allleaving");
SetOutOfBoundsVoiceOver(1,"Impleaving");
SetAmbientMusic(ALL,1.0,"all_tat_amb_start",0,1);
SetAmbientMusic(ALL,0.99,"all_tat_amb_middle",1,1);
SetAmbientMusic(ALL,0.1,"all_tat_amb_end",2,1);
SetAmbientMusic(IMP,1.0,"imp_tat_amb_start",0,1);
SetAmbientMusic(IMP,0.99,"imp_tat_amb_middle",1,1);
SetAmbientMusic(IMP,0.1,"imp_tat_amb_end",2,1);
SetVictoryMusic(ALL,"all_tat_amb_victory");
SetDefeatMusic (ALL,"all_tat_amb_defeat");
SetVictoryMusic(IMP,"imp_tat_amb_victory");
SetDefeatMusic (IMP,"imp_tat_amb_defeat");
SetSoundEffect("ScopeDisplayZoomIn","binocularzoomin");
SetSoundEffect("ScopeDisplayZoomOut","binocularzoomout");
SetSoundEffect("SpawnDisplayUnitChange","shell_select_unit");
SetSoundEffect("SpawnDisplayUnitAccept","shell_menu_enter");
SetSoundEffect("SpawnDisplaySpawnPointChange","shell_select_change");
SetSoundEffect("SpawnDisplaySpawnPointAccept","shell_menu_enter");
SetSoundEffect("SpawnDisplayBack","shell_menu_exit");
SetPlanetaryBonusVoiceOver(IMP,IMP,0,"imp_bonus_imp_medical");
SetPlanetaryBonusVoiceOver(IMP,ALL,0,"imp_bonus_all_medical");
SetPlanetaryBonusVoiceOver(IMP,IMP,1,"");
SetPlanetaryBonusVoiceOver(IMP,ALL,1,"");
SetPlanetaryBonusVoiceOver(IMP,IMP,2,"imp_bonus_imp_sensors");
SetPlanetaryBonusVoiceOver(IMP,ALL,2,"imp_bonus_all_sensors");
SetPlanetaryBonusVoiceOver(IMP,IMP,3,"imp_bonus_imp_hero");
SetPlanetaryBonusVoiceOver(IMP,ALL,3,"imp_bonus_all_hero");
SetPlanetaryBonusVoiceOver(IMP,IMP,4,"imp_bonus_imp_reserves");
SetPlanetaryBonusVoiceOver(IMP,ALL,4,"imp_bonus_all_reserves");
SetPlanetaryBonusVoiceOver(IMP,IMP,5,"imp_bonus_imp_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(IMP,ALL,5,"imp_bonus_all_sabotage");
SetPlanetaryBonusVoiceOver(IMP,IMP,6,"");
SetPlanetaryBonusVoiceOver(IMP,ALL,6,"");
SetPlanetaryBonusVoiceOver(IMP,IMP,7,"imp_bonus_imp_training");--advanced training
SetPlanetaryBonusVoiceOver(IMP,ALL,7,"imp_bonus_all_training");--advanced training
SetPlanetaryBonusVoiceOver(ALL,ALL,0,"all_bonus_all_medical");
SetPlanetaryBonusVoiceOver(ALL,IMP,0,"all_bonus_imp_medical");
SetPlanetaryBonusVoiceOver(ALL,ALL,1,"");
SetPlanetaryBonusVoiceOver(ALL,IMP,1,"");
SetPlanetaryBonusVoiceOver(ALL,ALL,2,"all_bonus_all_sensors");
SetPlanetaryBonusVoiceOver(ALL,IMP,2,"all_bonus_imp_sensors");
SetPlanetaryBonusVoiceOver(ALL,ALL,3,"all_bonus_all_hero");
SetPlanetaryBonusVoiceOver(ALL,IMP,3,"all_bonus_imp_hero");
SetPlanetaryBonusVoiceOver(ALL,ALL,4,"all_bonus_all_reserves");
SetPlanetaryBonusVoiceOver(ALL,IMP,4,"all_bonus_imp_reserves");
SetPlanetaryBonusVoiceOver(ALL,ALL,5,"all_bonus_all_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(ALL,IMP,5,"all_bonus_imp_sabotage");
SetPlanetaryBonusVoiceOver(ALL,ALL,6,"");
SetPlanetaryBonusVoiceOver(ALL,IMP,6,"");
SetPlanetaryBonusVoiceOver(ALL,ALL,7,"all_bonus_all_training");--advanced training
SetPlanetaryBonusVoiceOver(ALL,IMP,7,"all_bonus_imp_training");--advanced training
--end soundconfig

--start activebonus
--end activebonus

--start camerashots

AddCameraShot(-0.404895, 0.000992, -0.914360, -0.002240, -85.539894, 20.536297, 141.699493);
AddCameraShot(0.040922, 0.004049, -0.994299, 0.098381, -139.729523, 17.546598, -34.360893);
AddCameraShot(-0.312360, 0.016223, -0.948547, -0.049263, -217.381485, 20.150953, 54.514324);
--end camerashots

--start footer

end
--end footer
[/spoiler]

EDIT: I re-munged and apparently it's fixed now? I'm not sure what was wrong - I might try to re-create the problem to find out what was going on.

EDIT 2: So in the .lua - at one point I changed the line: SetTeamName(IMP, "Empire") to something that wasn't "Empire" - and it apparently defaulted everything to Gammorean - not sure when I changed it back, but that fixed it after re-munging.  I just tried: SetTeamName(IMP, "CIS") and ingame my side had the CIS base holograms, and all the units were labeled as "Unit 123" like the real CIS.  So apparently the SetTeamName() adds all those Unit strings that show up when you kill them, and sets up the base holograms and stuff.

Where do you edit in order to change that? I haven't been able to find it in the Sides folders and stuff.  Like if I wanted to change the base holograms for a team / the list of names the units have?

I believe what you want is Localization which makes the core.lvl file.  There is a tool for it, but it is not complete.
Quote from: Abraham Lincoln. on November 04, 1971, 12:34:40 PM
Don't believe everything you read on the internet

Quote from: bboettcher on February 09, 2017, 02:59:51 PM
Alright here's my Tat4a.lua (where I added my side)
I'll keep looking around for where else the "Gammoreans" might be coming from too.

[spoiler]
--start header
function ScriptInit()
local ALL = 1
local IMP = 2
local ATT = 1
local DEF = 2
--end header

--start objectives
AddMissionObjective(IMP,"red", "level.Tat4.objectives.1");
AddMissionObjective(IMP,"orange", "level.Tat4.objectives.2");
AddMissionObjective(IMP,"orange", "level.Tat4.objectives.3");
AddMissionObjective(ALL,"red", "level.Tat4.objectives.1");
AddMissionObjective(ALL,"orange", "level.Tat4.objectives.2");
AddMissionObjective(ALL,"orange","level.Tat4.objectives.3");
--end objectives

--start soundlvl
ReadDataFile("sound\\tat.lvl;tat1gcw");
--end soundlvl

-- Start sidelvls
--ALLIANCE

ReadDataFile("SIDE\\all.lvl",
"all_inf_basicdesert", --The units REQ for the level
"all_inf_lukeskywalker", --The hero's REQ for the level
"all_inf_smuggler"); --The 5th troop's REQ (wookie smuggler)

--EMPIRE
ReadDataFile("dc:SIDE\\imp.lvl",
"imp_inf_basic",
"imp_inf_dark_trooper");
--end sidelvls

--start loadouts
--ALLIANCE

SetTeamName(ALL, "Alliance")
SetTeamIcon(ALL, "all_icon")
AddUnitClass(ALL, "all_inf_soldierdesert",10)
AddUnitClass(ALL, "all_inf_vanguard",1)
AddUnitClass(ALL, "all_inf_pilot",2)
AddUnitClass(ALL, "all_inf_marksman",2)
AddUnitClass(ALL, "all_inf_smuggler",1)
SetHeroClass(ALL, "all_inf_lukeskywalker")

--EMPIRE
SetTeamName(IMP, "Empire")
SetTeamIcon(IMP, "imp_icon")
AddUnitClass(IMP, "imp_inf_storm_trooper",10)
AddUnitClass(IMP, "imp_inf_shock_trooper",1)
AddUnitClass(IMP, "imp_inf_pilottie",2)
AddUnitClass(IMP, "imp_inf_scout_trooper",2)
AddUnitClass(IMP, "imp_inf_dark_trooper",1)
--end loadouts


--start teamstats
SetUnitCount(ATT, 16)
SetReinforcementCount(ATT, 200)
SetUnitCount(DEF, 16)
SetReinforcementCount(DEF, 200)
--end teamstats

--start alliances
SetTeamAsFriend(ATT, 1)
SetTeamAsEnemy(ATT, 2)
SetTeamAsFriend(DEF, 2)
SetTeamAsEnemy(DEF, 1)
SetAttackingTeam(ATT);
--end alliances

--start memorypools
ClearWalkers()
AddWalkerType(0, 0)-- special -> droidekas
AddWalkerType(1, 0)-- 1x2 (1 pair of legs)
AddWalkerType(2, 0)-- 2x2 (2 pairs of legs)
AddWalkerType(3, 0)-- 3x2 (3 pairs of legs)
SetMemoryPoolSize("PowerupItem", 60)
SetMemoryPoolSize("EntityMine", 40)
--end memorypools

--start worldlvl
ReadDataFile("dc:Tat4\\Tat4.lvl")
--end worldlvl

--start spawndelay
SetSpawnDelay(10.0, 0.25)
--end spawndelay

--start flyheight
--end flyheight

--start ainotify
--end ainotify

--start stayinturrets
--end stayinturrets

--start denseenvironment

SetDenseEnvironment("false")
--end denseenvironment

--start birdsandfish
--end birdsandfish

--start deathregions
--end deathregions

--start soundconfig

OpenAudioStream("sound\\tat.lvl","tatgcw_music");
OpenAudioStream("sound\\tat.lvl","tat1");
OpenAudioStream("sound\\tat.lvl","tat1");
OpenAudioStream("sound\\gcw.lvl","gcw_vo");
OpenAudioStream("sound\\gcw.lvl","gcw_tac_vo");
OpenAudioStream("sound\\tat.lvl","tat1_emt");
SetBleedingVoiceOver(ALL,ALL,"all_off_com_report_us_overwhelmed",1);
SetBleedingVoiceOver(ALL,IMP,"all_off_com_report_enemy_losing",1);
SetBleedingVoiceOver(IMP,ALL,"imp_off_com_report_enemy_losing",1);
SetBleedingVoiceOver(IMP,IMP,"imp_off_com_report_us_overwhelmed",1);
SetLowReinforcementsVoiceOver(ALL, ALL, "all_off_defeat_im", .1,1);
SetLowReinforcementsVoiceOver(ALL, IMP, "all_off_victory_im", .1,1);
SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1,1);
SetLowReinforcementsVoiceOver(IMP, ALL, "imp_off_victory_im", .1,1);
SetOutOfBoundsVoiceOver(2,"Allleaving");
SetOutOfBoundsVoiceOver(1,"Impleaving");
SetAmbientMusic(ALL,1.0,"all_tat_amb_start",0,1);
SetAmbientMusic(ALL,0.99,"all_tat_amb_middle",1,1);
SetAmbientMusic(ALL,0.1,"all_tat_amb_end",2,1);
SetAmbientMusic(IMP,1.0,"imp_tat_amb_start",0,1);
SetAmbientMusic(IMP,0.99,"imp_tat_amb_middle",1,1);
SetAmbientMusic(IMP,0.1,"imp_tat_amb_end",2,1);
SetVictoryMusic(ALL,"all_tat_amb_victory");
SetDefeatMusic (ALL,"all_tat_amb_defeat");
SetVictoryMusic(IMP,"imp_tat_amb_victory");
SetDefeatMusic (IMP,"imp_tat_amb_defeat");
SetSoundEffect("ScopeDisplayZoomIn","binocularzoomin");
SetSoundEffect("ScopeDisplayZoomOut","binocularzoomout");
SetSoundEffect("SpawnDisplayUnitChange","shell_select_unit");
SetSoundEffect("SpawnDisplayUnitAccept","shell_menu_enter");
SetSoundEffect("SpawnDisplaySpawnPointChange","shell_select_change");
SetSoundEffect("SpawnDisplaySpawnPointAccept","shell_menu_enter");
SetSoundEffect("SpawnDisplayBack","shell_menu_exit");
SetPlanetaryBonusVoiceOver(IMP,IMP,0,"imp_bonus_imp_medical");
SetPlanetaryBonusVoiceOver(IMP,ALL,0,"imp_bonus_all_medical");
SetPlanetaryBonusVoiceOver(IMP,IMP,1,"");
SetPlanetaryBonusVoiceOver(IMP,ALL,1,"");
SetPlanetaryBonusVoiceOver(IMP,IMP,2,"imp_bonus_imp_sensors");
SetPlanetaryBonusVoiceOver(IMP,ALL,2,"imp_bonus_all_sensors");
SetPlanetaryBonusVoiceOver(IMP,IMP,3,"imp_bonus_imp_hero");
SetPlanetaryBonusVoiceOver(IMP,ALL,3,"imp_bonus_all_hero");
SetPlanetaryBonusVoiceOver(IMP,IMP,4,"imp_bonus_imp_reserves");
SetPlanetaryBonusVoiceOver(IMP,ALL,4,"imp_bonus_all_reserves");
SetPlanetaryBonusVoiceOver(IMP,IMP,5,"imp_bonus_imp_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(IMP,ALL,5,"imp_bonus_all_sabotage");
SetPlanetaryBonusVoiceOver(IMP,IMP,6,"");
SetPlanetaryBonusVoiceOver(IMP,ALL,6,"");
SetPlanetaryBonusVoiceOver(IMP,IMP,7,"imp_bonus_imp_training");--advanced training
SetPlanetaryBonusVoiceOver(IMP,ALL,7,"imp_bonus_all_training");--advanced training
SetPlanetaryBonusVoiceOver(ALL,ALL,0,"all_bonus_all_medical");
SetPlanetaryBonusVoiceOver(ALL,IMP,0,"all_bonus_imp_medical");
SetPlanetaryBonusVoiceOver(ALL,ALL,1,"");
SetPlanetaryBonusVoiceOver(ALL,IMP,1,"");
SetPlanetaryBonusVoiceOver(ALL,ALL,2,"all_bonus_all_sensors");
SetPlanetaryBonusVoiceOver(ALL,IMP,2,"all_bonus_imp_sensors");
SetPlanetaryBonusVoiceOver(ALL,ALL,3,"all_bonus_all_hero");
SetPlanetaryBonusVoiceOver(ALL,IMP,3,"all_bonus_imp_hero");
SetPlanetaryBonusVoiceOver(ALL,ALL,4,"all_bonus_all_reserves");
SetPlanetaryBonusVoiceOver(ALL,IMP,4,"all_bonus_imp_reserves");
SetPlanetaryBonusVoiceOver(ALL,ALL,5,"all_bonus_all_sabotage");--sabotage
SetPlanetaryBonusVoiceOver(ALL,IMP,5,"all_bonus_imp_sabotage");
SetPlanetaryBonusVoiceOver(ALL,ALL,6,"");
SetPlanetaryBonusVoiceOver(ALL,IMP,6,"");
SetPlanetaryBonusVoiceOver(ALL,ALL,7,"all_bonus_all_training");--advanced training
SetPlanetaryBonusVoiceOver(ALL,IMP,7,"all_bonus_imp_training");--advanced training
--end soundconfig

--start activebonus
--end activebonus

--start camerashots

AddCameraShot(-0.404895, 0.000992, -0.914360, -0.002240, -85.539894, 20.536297, 141.699493);
AddCameraShot(0.040922, 0.004049, -0.994299, 0.098381, -139.729523, 17.546598, -34.360893);
AddCameraShot(-0.312360, 0.016223, -0.948547, -0.049263, -217.381485, 20.150953, 54.514324);
--end camerashots

--start footer

end
--end footer
[/spoiler]

EDIT: I re-munged and apparently it's fixed now? I'm not sure what was wrong - I might try to re-create the problem to find out what was going on.

EDIT 2: So in the .lua - at one point I changed the line: SetTeamName(IMP, "Empire") to something that wasn't "Empire" - and it apparently defaulted everything to Gammorean - not sure when I changed it back, but that fixed it after re-munging.  I just tried: SetTeamName(IMP, "CIS") and ingame my side had the CIS base holograms, and all the units were labeled as "Unit 123" like the real CIS.  So apparently the SetTeamName() adds all those Unit strings that show up when you kill them, and sets up the base holograms and stuff.

Where do you edit in order to change that? I haven't been able to find it in the Sides folders and stuff.  Like if I wanted to change the base holograms for a team / the list of names the units have?
The default name for local factions is probably Gammoreans in that core.lvl, you would have to edit the localization and remunge if you wanted a custom name.

I think for changing base hologram textures, you want to use the common.lvl builder. Here are the most updated builders for common and shell http://tiny.cc/perfectbuilders

February 12, 2017, 10:57:28 PM #9 Last Edit: February 13, 2017, 10:33:51 AM by bboettcher
Quote from: Phobos on February 10, 2017, 07:31:07 AM
The default name for local factions is probably Gammoreans in that core.lvl, you would have to edit the localization and remunge if you wanted a custom name.

I think for changing base hologram textures, you want to use the common.lvl builder. Here are the most updated builders for common and shell http://tiny.cc/perfectbuilders

Thanks for that link and all the help! There's a LOT of stuff to look through here lol :D

EDIT: So I realized that the hologram textures are actually .MSH files (com_icon_imperial) called on by the controlzone ODF files. I made my alternate icon msh and replaced the com_icon_imperial.msh in my DataTat4/Common/MSHs (which I thought would work, but didn't in-game. Is this why I would need a common.lvl builder?

So if using the builder, would I just copy the whole Data\Common folder into the Custom\Common folder - replace the com_icon_imperial.msh with my version, and munge?
Where do I put the common.lvl file once I've created it using the builder? Do I have to do a ReadDataFile() on it in my mission .lua?

Also when I munge the common.lvl file, I have several interesting things that might be affecting this process: "Missing file empire com_icon_imperial.model
              required by ..\..\_build_pc\common\munged\com_bldg_controlzone.class.req
                              ..\..\_build_pc\common\munged\com_bldg_major_controlzone.class.req

So I've changed the "com_icon_imperial.MSH" but idk how to change (or if I need to find/change) the .model version.

Sorry for the bump...  :confused: - I didn't want to create another new topic because I've been posting a lot of new ones lately and don't want to crowd other people out... And my new issue fits in this topic so hopefully it's alright..

I'm having issues getting a custom common.lvl file to work with my map.  I'm using the common.lvl builder you pointed me to.  In the builder, I copied the stuff in "Data" into "Custom" and then changed/added some .tga/.msh files, added them to the custom.req file, munged, and got the new common.lvl file. 

Here's where I'm getting lost though - I've added a "ReadDataFile("dc:COMMON\\common.lvl");" to my map's mission.lua (right before reading in side.lvls), but I'm not sure where to put the common.lvl after getting it from the builder.

Thanks for all the help you guys have already given me (and all your huge contributions to the community!)