# - type: example # the type/name is used for overwriting or deleting purposes.
# firstMonth: 0 # months this command runs on, 0 runs on startup of a new game (default 0)
# lastMonth: 0 # don't run after this month. in this context we mean "run once". -1 denotes no limit (default -1)
# label: 1 # label, used for conditionals (default 0)
# conditionals: [1, -2] # conditional list, just like mapscripts (default none)
# missionWeights: # the type of mission to spawn (omit to pick one from the mission table) (default none)
# 0: # these are split into monthly chunks, and can contain multiple entries,
# STR_ALIEN_RESEARCH: 20 # including weighted odds, but there is a caveat here:
# STR_ALIEN_ABDUCTION: 30 # you cannot mix and match missions with mission site objectives (ie: terror) with regular missions,
# STR_ALIEN_CROP_CIRCLES: 30 # they are generated too differently. using executionOdds and conditionals instead can achieve
# STR_CATTLE_MUTILATION: 20 # exactly the same thing. similarly, terror missions should not appear in regional mission weights (regions.rul)
# executionOdds: 100 # % chances of this command executing (default 100)
# targetBaseOdds: 75 # % chances of this mission targeting a region containing an xcom base instead of random (default 0)
# startDelay: 120 # number of minutes to delay the start of the mission (rounded down to the nearest 30, 0 to use the wave timer from the mission itself) (default 0)
# raceWeights: # can override established monthly race weights here if desired (default empty)
# 0:
# STR_SECTOID: 100 # in this case we want a sectoid mission, so they get 100%
# regionWeights: # again, this can override the defined mission region weights (default empty)
# 0: # this won't come into play here unless the mission doesn't target an xcom base, as described above.
# STR_SAMPLE_REGION1: 20 # IF OMITTED:
# STR_SAMPLE_REGION2: 30 # for a terror type mission, all regions that meet the criteria will be weighed equally.
# STR_SAMPLE_REGION3: 50 # for regular missions the normal regional distribution weights will be applied.
# minDifficulty: 0 # this command only applies to difficulty levels of this or above (default 0)
# researchTriggers: # a list of research topics that can influence the execution of this mission (default empty)
# STR_THE_MARTIAN_SOLUTION: true # in this case, the mission would only run if the player has the martian solution
# STR_CYDONIA_OR_BUST: false # and does NOT have Cydonia or bust
# maxRuns: 12 # this mission type can only execute this number of times, -1 for infinite (default -1)
# avoidRepeats: 12 # this means "store an array of the 12 previous coordinates, and don't use them again" (default 0)
# varName: researching # this is an internal variable name, used for tracking maxruns and avoidRepeats (default none)
# useTable: false # check this mission type appears in the mission tables, and remove it if it does? (default true)
Didn't find this anyware (it's from Warboy) so I'm posting it here:
This explanation is included as comments in the missionScript.rul file :)Yeah, Warboy edited my post pasting that (an updated version of what I posted initially). I still haven't looked into it.
so... any questions? have people been messing about with it at all? any problems? (apart from the loading/deleting issue that's already solved)
Research trigger is going to be giving a lot of amazing options; you could research an alien weapon, and then the aliens change to adapt[/quote]
Being able to force a mission of a type/enemy is wonderful, especially being able to force a mission in a region that has an XCOM base in it. You can actually ensure that you get a UFO in the first week.
- type: researchRetaliation
missionWeights:
0:
STR_ALIEN_RETALIATION: 100
researchTriggers:
STR_THE_MARTIAN_SOLUTION: true
startDelay: 150
targetBaseOdds: 100
useTable: false
label: 1
- type: beginnerRetaliation
missionWeights:
0:
STR_ALIEN_RETALIATION: 100
firstMonth: 14
targetBaseOdds: 100
useTable: false
conditionals: [-1]
label: 2
startDelay: 150
Looking at these I understand that "beginnerRetaliation" (conditionals: [-1]) starts if "researchRetaliation" (label: 1) fails.
Is this interpretation correct?
(Also what exactly "fails" means? The player shoots down the UFOs/wipes clean the mission site, or the command itself fails because" executionOdds" missed?)
hobbes, check your comparators, you've got = where you should have >=, but otherwise, yes. that.
So that whole thing means that, from a certain point in time depending on various factors (research, month, game difficulty), aliens will start retaliating in loop.
This in addition to normal retaliation triggered by soothing down UFOs.
to do "normal" mission generation all you _NEED_ to define in the command is the "type"
- type: artifacts
label: 1
missionWeights:
# 0 is just for safety
0:
STR_ALIEN_ARTIFACT: 100
regionWeights:
0:
ARTIFACT_SITES: 100
avoidRepeats: 12
maxRuns: 12
varName: artifacts
useTable: false
firstMonth: 6
executionOdds: 50
startDelay: 0
I have a question. I am trying to implement an Artefact style mission in the later months (I've almost got this to work). How does the TFTD ruleset implement the artefact and ship terror missions (or is this not implemented yet and I am wasting my time)? I am assuming the TFTD ruleset is using invisible points on the globe similar to cities as targets to spawn mission sites, but without the city globe marker?About Artifact Site, these are examples that Warboy made to me.
I've gotten close to implementing these myself, but my hangup seems to be the spawnZone command in alienMissions.rul. For mission site missions (objective: 3), the UFOs will always try to land in zone 3 for the UFO with objective: true regardless what spawnZone is set to. This causes a crash when the UFO lands and it cant find the right zone since it's landed in a city for a normal terror mission. I did modify the UFOTrajectories.rul correctly. I know that is working because if the spawnZone is set to 3 (default), then the objective: true UFO will land in the correct zone, but not spawn a mission (instead its just a normal UFO landing). Is this a bug or is it intended behavior and I'm going about this completely wrong?
waves:
- ufo: dummy #don't spawn a ufo, we only want the site
count: 1
trajectory: P10
timer: 0
objective: true
waves:
- ufo: STR_ARTIFACT_SITE_P1 # spawn this site directly
count: 1
trajectory: P10
timer: 0
objective: true
first case uses a random choice from the terrain it's spawned on, according to the trajectory
second case spawns an artifact site no matter what
I have a question. I am trying to implement an Artefact style mission in the later months (I've almost got this to work). How does the TFTD ruleset implement the artefact and ship terror missions (or is this not implemented yet and I am wasting my time)? I am assuming the TFTD ruleset is using invisible points on the globe similar to cities as targets to spawn mission sites, but without the city globe marker?
I've gotten close to implementing these myself, but my hangup seems to be the spawnZone command in alienMissions.rul. For mission site missions (objective: 3), the UFOs will always try to land in zone 3 for the UFO with objective: true regardless what spawnZone is set to. This causes a crash when the UFO lands and it cant find the right zone since it's landed in a city for a normal terror mission. I did modify the UFOTrajectories.rul correctly. I know that is working because if the spawnZone is set to 3 (default), then the objective: true UFO will land in the correct zone, but not spawn a mission (instead its just a normal UFO landing). Is this a bug or is it intended behavior and I'm going about this completely wrong?
I have a question. I am trying to implement an Artefact style mission in the later months (I've almost got this to work). How does the TFTD ruleset implement the artefact and ship terror missions (or is this not implemented yet and I am wasting my time)? I am assuming the TFTD ruleset is using invisible points on the globe similar to cities as targets to spawn mission sites, but without the city globe marker?
I've gotten close to implementing these myself, but my hangup seems to be the spawnZone command in alienMissions.rul. For mission site missions (objective: 3), the UFOs will always try to land in zone 3 for the UFO with objective: true regardless what spawnZone is set to. This causes a crash when the UFO lands and it cant find the right zone since it's landed in a city for a normal terror mission. I did modify the UFOTrajectories.rul correctly. I know that is working because if the spawnZone is set to 3 (default), then the objective: true UFO will land in the correct zone, but not spawn a mission (instead its just a normal UFO landing). Is this a bug or is it intended behavior and I'm going about this completely wrong?
I reserve labels 90-150 for Myself :P
Too late, I already reserved those for myself. ;)
<hellrazor> Warboy, [13-08-2015 21:05:02] [FATAL] Mission generator encountered an error: multiple commands: navigatorConsequenceAlienResearch and researchRetaliation are sharing the same label: 1
<hellrazor> researchRetaliation is defined in the xcom1 ruleset
<hellrazor> so we definitly have a Problem with labelnumbers
<@Warboy> isn't that the problem you had in the first place?
<hellrazor> i did
<hellrazor> but i changed my label numbers
<hellrazor> by +100
<hellrazor> nad now i changed them back beginning with 1
--> Mine4Fish (~Zeph@46.246.124.91) has joined #openxcom
<@Warboy> ok, remember i said start at 6?
<hellrazor> jeah
<@Warboy> start at 6, xcom1 uses 1-5 :P
<hellrazor> i wanted to test this anway
<@Warboy> ah gotcha
<hellrazor> Warboy, no we have confirmation!
<hellrazor> ;>
Shouldn't this be an issue only if you load multiple mods with missions in them? I would expect UFORedux and Hardmode to crash (or be completely unplayable) even if you somehow managed to make them load.
##BEGIN CONSEQUENCES
#BEGIN NAVIGATOR CONSEQUENCE
- type: navigatorConsequenceAlienResearch
label: 101
missionWeights:
0:
STR_ALIEN_RESEARCH: 100
executionOdds: 50
startDelay: 6000
researchTriggers:
STR_ALIEN_RESEARCH: true
maxRuns: 1
varName: navigatorConsequenceAlienResearch
- type: navigatorConsequenceAlienResearchTerror
label: 102
conditionals: [-101]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 6000
researchTriggers:
STR_ALIEN_RESEARCH: true
maxRuns: 1
varName: navigatorConsequenceAlienResearch
- type: navigatorConsequenceAlienHarvest
label: 103
conditionals: [-101, -102]
missionWeights:
0:
STR_ALIEN_HARVEST: 100
3:
STR_ALIEN_HARVEST: 60
STR_ALIEN_BASE: 20
STR_ALIEN_RETALIATION: 20
6:
STR_ALIEN_HARVEST: 40
STR_ALIEN_INFILTRATION: 40
STR_ALIEN_RETALIATION: 20
9:
STR_ALIEN_HARVEST: 20
STR_ALIEN_INFILTRATION: 80
startDelay: 6000
researchTriggers:
STR_ALIEN_HARVEST: true
maxRuns: 1
varName: navigatorConsequenceAlienHarvest
- type: navigatorConsequenceAlienAbduction
label: 104
conditionals: [-101, -102, -103]
missionWeights:
0:
STR_ALIEN_ABDUCTION: 100
3:
STR_ALIEN_ABDUCTION: 60
STR_ALIEN_BASE: 20
STR_ALIEN_HARVEST: 20
6:
STR_ALIEN_ABDUCTION: 40
STR_ALIEN_INFILTRATION: 40
STR_ALIEN_RETALIATION: 20
9:
STR_ALIEN_ABDUCTION: 20
STR_ALIEN_INFILTRATION: 80
startDelay: 6000
researchTriggers:
STR_ALIEN_ABDUCTION: true
maxRuns: 1
varName: navigatorConsequenceAlienAbduction
- type: navigatorConsequenceAlienBase
label: 105
conditionals: [-101, -102, -103, -104]
missionWeights:
0:
STR_ALIEN_BASE: 100
3:
STR_ALIEN_BASE: 50
STR_ALIEN_HARVEST: 50
6:
STR_ALIEN_BASE: 40
STR_ALIEN_INFILTRATION: 20
STR_ALIEN_HARVEST: 40
9:
STR_ALIEN_BASE: 20
STR_ALIEN_INFILTRATION: 80
startDelay: 6000
researchTriggers:
STR_ALIEN_BASE: true
maxRuns: 1
varName: navigatorConsequenceAlienBase
- type: navigatorConsequenceAlienSupply
label: 106
conditionals: [-101, -102, -103, -104, -105]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 6000
researchTriggers:
STR_ALIEN_SUPPLY: true
maxRuns: 1
varName: navigatorConsequenceAlienSupply
- type: navigatorConsequenceAlienTerror
label: 107
conditionals: [-101, -102, -103, -104, -105, -106]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 6000
researchTriggers:
STR_ALIEN_TERROR: true
maxRuns: 1
varName: navigatorConsequenceAlienTerror
- type: navigatorConsequenceAlienInfiltration
label: 108
conditionals: [-101, -102, -103, -104, -105, -106, -107]
missionWeights:
0:
STR_ALIEN_BASE: 100
3:
STR_ALIEN_BASE: 50
STR_ALIEN_RETALIATION: 50
6:
STR_ALIEN_BASE: 60
STR_ALIEN_INFILTRATION: 40
9:
STR_ALIEN_BASE: 20
STR_ALIEN_INFILTRATION: 80
startDelay: 9000
researchTriggers:
STR_ALIEN_INFILTRATION: true
maxRuns: 1
varName: navigatorConsequenceAlienInfiltration
- type: navigatorConsequenceAlienRetaliation
label: 109
conditionals: [-101, -102, -103, -104, -105, -106, -107, -108]
missionWeights:
0:
STR_ALIEN_RETALIATION: 100
startDelay: 6000
researchTriggers:
STR_ALIEN_RETALIATION: true
maxRuns: 1
varName: navigatorConsequenceAlienRetaliation
#END NAVIGATOR CONSEQUENCE
#BEGIN ENGINEER CONSEQUENCE
- type: engineerConsequenceSmallScout
label: 110
missionWeights:
0:
STR_ALIEN_RESEARCH: 100
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_SMALL_SCOUT: true
maxRuns: 1
varName: engineerConsequenceSmallScout
- type: engineerConsequenceSmallScoutTerror
label: 111
conditionals: [-110]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_SMALL_SCOUT: true
maxRuns: 1
varName: engineerConsequenceSmallScout
- type: engineerConsequenceMediumScout
label: 112
conditionals: [-110, -111]
missionWeights:
0:
STR_ALIEN_RESEARCH: 50
STR_ALIEN_BASE: 50
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_MEDIUM_SCOUT: true
maxRuns: 1
varName: engineerConsequenceMediumScout
- type: engineerConsequenceMediumScoutTerror
label: 113
conditionals: [-110, -111, -112]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_MEDIUM_SCOUT: true
maxRuns: 1
varName: engineerConsequenceMediumScout
- type: engineerConsequenceLargeScout
label: 114
conditionals: [-110, -111, -112, -113]
missionWeights:
0:
STR_ALIEN_RESEARCH: 33
STR_ALIEN_BASE: 33
STR_ALIEN_RETALIATION: 33
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_LARGE_SCOUT: true
maxRuns: 1
varName: engineerConsequenceLargeScout
- type: engineerConsequenceLargeScoutTerror
label: 115
conditionals: [-110, -111, -112, -113, -114]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_LARGE_SCOUT: true
maxRuns: 1
varName: engineerConsequenceLargeScout
- type: engineerConsequenceFighterShip
label: 116
conditionals: [-110, -111, -112, -113, -114, -115]
missionWeights:
0:
STR_ALIEN_BASE: 33
STR_ALIEN_RETALIATION: 33
STR_ALIEN_INFILTRATION: 33
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_FIGHTER_SHIP: true
maxRuns: 1
varName: engineerConsequenceFighterShip
- type: engineerConsequenceFighterShipTerror
label: 117
conditionals: [-110, -111, -112, -113, -114, -115, -116]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_FIGHTER_SHIP: true
maxRuns: 1
varName: engineerConsequenceFighterShip
- type: engineerConsequenceSentryShip
label: 118
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117]
missionWeights:
0:
STR_ALIEN_BASE: 33
STR_ALIEN_RETALIATION: 33
STR_ALIEN_INFILTRATION: 33
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_SENTRY_SHIP: true
maxRuns: 1
varName: engineerConsequenceSentryShip
- type: engineerConsequenceSentryShipTerror
label: 119
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_SENTRY_SHIP: true
maxRuns: 1
varName: engineerConsequenceSentryShip
- type: engineerConsequenceExcavator
label: 120
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119]
missionWeights:
0:
STR_ALIEN_BASE: 50
STR_ALIEN_RESEARCH: 50
startDelay: 9000
researchTriggers:
STR_EXCAVATOR: true
maxRuns: 1
varName: engineerConsequenceExcavator
- type: engineerConsequenceAbductor
label: 121
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120]
missionWeights:
0:
STR_ALIEN_ABDUCTION: 33
STR_ALIEN_HARVEST: 33
STR_ALIEN_RESEARCH: 33
startDelay: 9000
researchTriggers:
STR_ABDUCTOR: true
maxRuns: 1
varName: engineerConsequenceAbductor
- type: engineerConsequenceHarvester
label: 122
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121]
missionWeights:
0:
STR_ALIEN_ABDUCTION: 33
STR_ALIEN_HARVEST: 33
STR_ALIEN_RESEARCH: 33
startDelay: 9000
researchTriggers:
STR_HARVESTER: true
maxRuns: 1
varName: engineerConsequenceHarvester
- type: engineerConsequenceLabShip
label: 123
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122]
missionWeights:
0:
STR_ALIEN_ABDUCTION: 33
STR_ALIEN_HARVEST: 33
STR_ALIEN_RESEARCH: 33
startDelay: 9000
researchTriggers:
STR_LAB_SHIP: true
maxRuns: 1
varName: engineerConsequenceLabShip
- type: engineerConsequenceSupplyShip
label: 124
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123]
missionWeights:
0:
STR_ALIEN_INFILTRATION: 50
STR_ALIEN_BASE: 50
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_SUPPLY_SHIP: true
maxRuns: 1
varName: engineerConsequenceSupplyShip
- type: engineerConsequenceSupplyShipTerror
label: 125
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_SUPPLY_SHIP: true
maxRuns: 1
varName: engineerConsequenceSupplyShip
- type: engineerConsequenceTerrorShip
label: 126
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_TERROR_SHIP: true
maxRuns: 1
varName: engineerConsequenceTerrorShip
- type: engineerConsequenceBattleShip
label: 127
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125, -126]
missionWeights:
0:
STR_ALIEN_INFILTRATION: 50
STR_ALIEN_BASE: 50
executionOdds: 50
startDelay: 9000
researchTriggers:
STR_BATTLESHIP: true
maxRuns: 1
varName: engineerConsequenceBattleShip
- type: engineerConsequenceBattleShipTerror
label: 128
conditionals: [-110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125, -126, -127]
missionWeights:
0:
STR_ALIEN_TERROR: 100
startDelay: 9000
researchTriggers:
STR_BATTLESHIP: true
maxRuns: 1
varName: engineerConsequenceBattleShip
#END ENGINEER CONSEQUENCE
##END CONSEQUENCES
Shouldn't this be an issue only if you load multiple mods with missions in them? I would expect UFORedux and Hardmode to crash (or be completely unplayable) even if you somehow managed to make them load.
ERROR: Error with MissionScript: XXX cannot mix terror/non-terror missions in a single command, so sayeth the wise Alaundo.Alaundo how could you?!
Alaundo how could you?!
:P
Actually the mighty Mapscript is used for doing the Missionscripting.
huh?
What are the type names for Infiltration and Base building missions ?
I would like to postpone "Base building" missions and "Infiltrations" missions to July in TFTD
So, is there a way to postpone them ?
Should I start a new topic to increase my chances of having more detailed answers ?
By studying regions.rul, I guess i see the probabilities of each mission to happen... so I could simply change the probabilities of these missions to happen...
Am I right ?
Yes, that's a very easy way to do it.
Technically speaking, you are not really postponing those missions, they can still happen in month 1 if you're unlucky... but in majority of the games, it will look like as if they were postponed.
PS: also please avoid necro-posting, opening a new thread is easy
No, please don't open a thread if an appropriate thread already exists... It would be duplication.
Necroposting can only be relevant to forums covering timed events, like sports.
So, thats my solution : I modify the values in regions.rul to have low chances of having these two missions types in seas/oceans featuring most of the funding countries (north pacific, north atlantic, indian ocean, japan sea, south china sea, mediterraneans sea) ?
The question is what is an "appropriate thread", in my opinion almost every question is unique... otherwise he would not have to ask again.
Also, opening a new thread is always a good idea IMO... after you searched the history of course and didn't find what you were looking for.
We want short threads with a clear topic, and clear answer (if the point of the thread was a question).
That way it is easier to search too.
The WORST examples on this forum are threads like "A thread for little questions" from piratez subforum and similar... I guarantee that vast majority of questions and answers from such threads are LOST forever. You cannot find them, because the forum search only shows the last match per thread. So if you're looking for example for "coelacanth" and that word is on the first page of a giant thread and the last page of that same giant thread, the search only ever shows you the last page... even though the question you were looking for might have been in the first page.
And I could continue naming dozens of other reasons why opening a new thread is a better idea... not kidding.