Yzaxtol Posted March 16, 2016 Share Posted March 16, 2016 Hi I've been trying to generate themed missions by allowing only certain units to spawn on different missions. Things were going steadily well creating the new units and forcing them to spawn as I tested them on my test map. However when trying to get them to spawn using the InclusionExclusion lists in XComMissions.ini unless the Gods are smiling on me it just crashes to desktop. It seems there's something truly hard-coded that crashes without even mentioning something in the logs (I checked) if you haven't designed something just exactly. In my code i've copied what I have that's relevant in my XComMission.ini and an example of the spawning restrictions (or lack thereof) for testing the 3 new units i've created.It seems so far My code: [XComGame.XComTacticalMissionManager] +InclusionExclusionLists=(ListID="ToxLeader", bIncludeNames=true, TemplateName[0]="AdvCaptainG1") +InclusionExclusionLists=(ListID="ToxFollower", bIncludeNames=true, TemplateName[0]="AdvTrooperG1", TemplateName[1]="AdvHeavyG2") +InclusionExclusionLists=(ListID="PsiLeader", bIncludeNames=true, TemplateName[0]="Sectoid" , TemplateName[1]="Gatekeeper") +InclusionExclusionLists=(ListID="ZombieFollower", bIncludeNames=true, TemplateName[0]="PsiZombie") ----DOES NOT WORK---- ;+ConfigurableEncounters=(EncounterID="Test1", MaxSpawnCount=4, LeaderInclusionExclusionCharacterTypes="ToxLeader", FollowerInclusionExclusionCharacterTypes="ToxFollower") ;+ConfigurableEncounters=(EncounterID="Test2", MaxSpawnCount=2, LeaderInclusionExclusionCharacterTypes="ToxLeader", FollowerInclusionExclusionCharacterTypes="ToxFollower") ;+ConfigurableEncounters=(EncounterID="Test3", MaxSpawnCount=3, LeaderInclusionExclusionCharacterTypes="ToxLeader", FollowerInclusionExclusionCharacterTypes="ToxFollower") ----DOES WORK---- +ConfigurableEncounters=(EncounterID="Test1", MaxSpawnCount=4, ForceSpawnTemplateNames[0]="AdvHeavyG2", ForceSpawnTemplateNames[1]="AdvTrooperG1", ForceSpawnTemplateNames[2]="AdvTrooperG1", ForceSpawnTemplateNames[3]="AdvCaptainG1") +ConfigurableEncounters=(EncounterID="Test2", MaxSpawnCount=2, LeaderInclusionExclusionCharacterTypes="PsiLeader", FollowerInclusionExclusionCharacterTypes="ZombieFollower") +ConfigurableEncounters=(EncounterID="Test3", MaxSpawnCount=3, ForceSpawnTemplateNames[0]="AdvHeavyG2", ForceSpawnTemplateNames[1]="AdvTrooperM1", ForceSpawnTemplateNames[2]="AdvTrooperM1") -MissionSchedules=(ScheduleID="SabotageCC_D1_Standard", IdealXComSpawnDistance=28, MinXComSpawnDistance=24, EncounterZonePatrolDepth=8.0, PrePlacedEncounters[0]=(EncounterID="SabotageCC_Patrolx2", EncounterZoneOffsetAlongLOP=3.0, EncounterZoneWidth=26.0), PrePlacedEncounters[1]=(EncounterID="SabotageCC_Guardx3", EncounterZoneOffsetAlongLOP=-11.0, EncounterZoneWidth=20.0), MinRequiredAlertLevel=1, MaxRequiredAlertLevel=1) -MissionSchedules=(ScheduleID="SabotageCC_D2_Standard", IdealXComSpawnDistance=28, MinXComSpawnDistance=24, EncounterZonePatrolDepth=8.0, PrePlacedEncounters[0]=(EncounterID="SabotageCC_Patrolx3", EncounterZoneOffsetAlongLOP=3.0, EncounterZoneWidth=26.0), PrePlacedEncounters[1]=(EncounterID="SabotageCC_Guardx3", EncounterZoneOffsetAlongLOP=-11.0, EncounterZoneWidth=20.0), MinRequiredAlertLevel=2, MaxRequiredAlertLevel=2) -MissionSchedules=(ScheduleID="SabotageCC_D3_Standard", IdealXComSpawnDistance=28, MinXComSpawnDistance=24, EncounterZonePatrolDepth=8.0, PrePlacedEncounters[0]=(EncounterID="SabotageCC_Patrolx3", EncounterZoneOffsetAlongLOP=3.0, EncounterZoneWidth=26.0), PrePlacedEncounters[1]=(EncounterID="SabotageCC_Guardx3", EncounterZoneOffsetAlongLOP=-11.0, EncounterZoneWidth=20.0), PrePlacedEncounters[2]=(EncounterID="OPNx2_Weak", EncounterZoneOffsetAlongLOP=-24.0, EncounterZoneWidth=4.0, EncounterZoneOffsetFromLOP=-10.0, EncounterZoneDepthOverride=36.0), MinRequiredAlertLevel=3, MaxRequiredAlertLevel=1000) +MissionSchedules=(ScheduleID="SabotageCC_D1_Standard", IdealXComSpawnDistance=28, MinXComSpawnDistance=24, EncounterZonePatrolDepth=8.0, PrePlacedEncounters[0]=(EncounterID="Test1", EncounterZoneOffsetAlongLOP=3.0, EncounterZoneWidth=26.0), PrePlacedEncounters[1]=(EncounterID="Test2", EncounterZoneOffsetAlongLOP=-11.0, EncounterZoneWidth=20.0), MinRequiredAlertLevel=1, MaxRequiredAlertLevel=1) +MissionSchedules=(ScheduleID="SabotageCC_D2_Standard", IdealXComSpawnDistance=28, MinXComSpawnDistance=24, EncounterZonePatrolDepth=8.0, PrePlacedEncounters[0]=(EncounterID="Test1", EncounterZoneOffsetAlongLOP=3.0, EncounterZoneWidth=26.0), PrePlacedEncounters[1]=(EncounterID="Test2", EncounterZoneOffsetAlongLOP=-11.0, EncounterZoneWidth=20.0), MinRequiredAlertLevel=2, MaxRequiredAlertLevel=2) +MissionSchedules=(ScheduleID="SabotageCC_D3_Standard", IdealXComSpawnDistance=28, MinXComSpawnDistance=24, EncounterZonePatrolDepth=8.0, PrePlacedEncounters[0]=(EncounterID="Test1", EncounterZoneOffsetAlongLOP=3.0, EncounterZoneWidth=26.0), PrePlacedEncounters[1]=(EncounterID="Test2", EncounterZoneOffsetAlongLOP=-11.0, EncounterZoneWidth=20.0), PrePlacedEncounters[2]=(EncounterID="Test3", EncounterZoneOffsetAlongLOP=-24.0, EncounterZoneWidth=4.0, EncounterZoneOffsetFromLOP=-10.0, EncounterZoneDepthOverride=36.0), MinRequiredAlertLevel=3, MaxRequiredAlertLevel=1000) [AdvCaptainG1 X2CharacterTemplate] +CharacterBaseStats[eStat_AlertLevel]=2 +CharacterBaseStats[eStat_ArmorChance]=100 +CharacterBaseStats[eStat_ArmorMitigation]=1 +CharacterBaseStats[eStat_ArmorPiercing]=0 +CharacterBaseStats[eStat_CritChance]=0 +CharacterBaseStats[eStat_Defense]=0 +CharacterBaseStats[eStat_Dodge]=0 +CharacterBaseStats[eStat_HP]=6 +CharacterBaseStats[eStat_Mobility]=12 +CharacterBaseStats[eStat_Offense]=65 +CharacterBaseStats[eStat_PsiOffense]=0 +CharacterBaseStats[eStat_ReserveActionPoints]=0 +CharacterBaseStats[eStat_SightRadius]=27 +CharacterBaseStats[eStat_DetectionRadius]=12 +CharacterBaseStats[eStat_UtilityItems]=1 +CharacterBaseStats[eStat_Will]=50 +CharacterBaseStats[eStat_HackDefense]=125 +CharacterBaseStats[eStat_FlankingCritChance]=33 +CharacterBaseStats[eStat_FlankingAimBonus]=0 +CharacterBaseStats[eStat_Strength]=50 +XpKillscore=7.18 +DirectXpAmount=10 +MaxCharactersPerGroup=1 ;+LeaderLevelSpawnWeights=(MinForceLevel=1, MaxForceLevel=7, SpawnWeight=15, MaxAlertSpawnWeight=12) ;+FollowerLevelSpawnWeights=(MinForceLevel=99, MaxForceLevel=98, SpawnWeight=0, MaxAlertSpawnWeight=0) ;+UntetheredLeaderLevelSpawnWeights=(MinForceLevel=99, MaxForceLevel=98, SpawnWeight=0, MaxAlertSpawnWeight=12) +LeaderLevelSpawnWeights=(MinForceLevel=1, MaxForceLevel=20, SpawnWeight=8.5, MaxAlertSpawnWeight=9) +FollowerLevelSpawnWeights=(MinForceLevel=1, MaxForceLevel=20, SpawnWeight=17, MaxAlertSpawnWeight=9) +UntetheredLeaderLevelSpawnWeights=(MinForceLevel=1, MaxForceLevel=20, SpawnWeight=17, MaxAlertSpawnWeight=9) +SupportedFollowers=AdvCommanderM2 +SupportedFollowers=AdvCommanderM3 <---------- This Unit no longer exists -----------------> +SupportedFollowers=AdvTrooperG1 +SupportedFollowers=AdvTrooperG2 +SupportedFollowers=AdvTrooperG3 +SupportedFollowers=AdvTrooperM1 +SupportedFollowers=AdvTrooperM2 +SupportedFollowers=AdvTrooperM3 +SupportedFollowers=AdvCaptainG1 +SupportedFollowers=AdvCaptainG2 +SupportedFollowers=AdvCaptainG3 +SupportedFollowers=AdvHeavyG2 +SupportedFollowers=AdvHeavyG3 +SupportedFollowers=Viper +SupportedFollowers=Andromedon +HackRewards=SummonCodex +HackRewards=SkulljackLootIntel_T1 +HackRewards=SkulljackLootIntel_T2 +HackRewards=SKULLFeedback +HackRewards=ALittleIntel +HackRewards=FacilityLead +HackRewards=ALotOfIntel A picture of them being succesfully spawned using ForceSpawnTemplate http://images.akamai.steamusercontent.com/ugc/528417746332558746/E925C6766193EBBF1B459A9F643714A7FDFCE5BF/ EDIT: Ok I managed to solve this by the time I was going to give up tonight, if anyone else tries to use the Inclusion Exclusion List to spawn units they MUST make 100% sure that the SupportedFollowers list in their Character Template does not contain any mistakes or else the game will crash to desktop as soon as the mission is loaded and a Leader is chosen with an unfindable SupportedFollower. Link to comment Share on other sites More sharing options...
DerBK Posted March 20, 2016 Share Posted March 20, 2016 "make 100% sure that the SupportedFollowers list in their Character Template does not contain any mistakes or else the game will crash to desktop as soon as the mission is loaded and a Leader is chosen with an unfindable SupportedFollower." That's true.And a huge pain in the ass both for modders that make additional enemies.Besides being a source for CTDs that needs to be double-,triple- and quadruplechecked, this behaviour makes it really difficult to make different mods that add enemies work together more seamless. I wish i could add all the followers from other mods to the SupportedFollowers list of my leader units, for example :/ Link to comment Share on other sites More sharing options...
Recommended Posts