A little advice on modmodding...

Alzara

Emperor
Joined
Jan 2, 2008
Messages
1,214
Location
Florida
Hey guys

I've been thinking of making my own modmod for Fall from Heaven.

One thing that crossed my mind however is that there are scenarios and trophies in the main game. Seeing as the modmod I'd be making will use different civilisations and a different tech tree, how will this impact on the scenarios and the trophies? Will I need to disable these features to prevent wierd conflicts? If so how can I do this?

Thanks guys

Al :)
 
Just copy it all over to your new directory, and expect if people want to play scenarios, they will play the original fall from heaven instead of your mod?
 
A lot of this that arn't scenarios and trophies could go wrong. For example if your tech tree doesn't contain Infernal Pact it could crash the game.
 
For example if your tech tree doesn't contain Infernal Pact it could crash the game.

Oh? Why is that? Because of Hyborem entering the game with this tech? Any way I can remake my own fantasy game without using the tech tree etc?

Al
 
The problem is that some techs are named in python codes such as the event manager
Code:
if iTechType == gc.getInfoTypeForString('TECH_CORRUPTION_OF_SPIRIT'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_THE_ASHEN_VEIL')
				iReligion = gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL')
			if iTechType == gc.getInfoTypeForString('TECH_ORDERS_FROM_HEAVEN'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_THE_ORDER')
				iReligion = gc.getInfoTypeForString('RELIGION_THE_ORDER')
			if iTechType == gc.getInfoTypeForString('TECH_WAY_OF_THE_FORESTS'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_FELLOWSHIP_OF_LEAVES')
				iReligion = gc.getInfoTypeForString('RELIGION_FELLOWSHIP_OF_LEAVES')
			if iTechType == gc.getInfoTypeForString('TECH_WAY_OF_THE_EARTHMOTHER'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_RUNES_OF_KILMORPH')
				iReligion = gc.getInfoTypeForString('RELIGION_RUNES_OF_KILMORPH')
			if iTechType == gc.getInfoTypeForString('TECH_MESSAGE_FROM_THE_DEEP'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_OCTOPUS_OVERLORDS')
				iReligion = gc.getInfoTypeForString('RELIGION_OCTOPUS_OVERLORDS')
			if iTechType == gc.getInfoTypeForString('TECH_HONOR'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_EMPYREAN')
				iReligion = gc.getInfoTypeForString('RELIGION_THE_EMPYREAN')
			if iTechType == gc.getInfoTypeForString('TECH_DECEPTION'):
				iUnit = gc.getInfoTypeForString('UNIT_NIGHTWATCH')
				iReligion = gc.getInfoTypeForString('RELIGION_COUNCIL_OF_ESUS')

Civs are also named in there as well as leaders and all sorts of other stuff. Your best option would probably be to go ahead woth your changes and fix the files that cause problems as you go.
 
The problem is that some techs are named in python codes such as the event manager
Code:
if iTechType == gc.getInfoTypeForString('TECH_CORRUPTION_OF_SPIRIT'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_THE_ASHEN_VEIL')
				iReligion = gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL')
			if iTechType == gc.getInfoTypeForString('TECH_ORDERS_FROM_HEAVEN'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_THE_ORDER')
				iReligion = gc.getInfoTypeForString('RELIGION_THE_ORDER')
			if iTechType == gc.getInfoTypeForString('TECH_WAY_OF_THE_FORESTS'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_FELLOWSHIP_OF_LEAVES')
				iReligion = gc.getInfoTypeForString('RELIGION_FELLOWSHIP_OF_LEAVES')
			if iTechType == gc.getInfoTypeForString('TECH_WAY_OF_THE_EARTHMOTHER'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_RUNES_OF_KILMORPH')
				iReligion = gc.getInfoTypeForString('RELIGION_RUNES_OF_KILMORPH')
			if iTechType == gc.getInfoTypeForString('TECH_MESSAGE_FROM_THE_DEEP'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_OCTOPUS_OVERLORDS')
				iReligion = gc.getInfoTypeForString('RELIGION_OCTOPUS_OVERLORDS')
			if iTechType == gc.getInfoTypeForString('TECH_HONOR'):
				iUnit = gc.getInfoTypeForString('UNIT_DISCIPLE_EMPYREAN')
				iReligion = gc.getInfoTypeForString('RELIGION_THE_EMPYREAN')
			if iTechType == gc.getInfoTypeForString('TECH_DECEPTION'):
				iUnit = gc.getInfoTypeForString('UNIT_NIGHTWATCH')
				iReligion = gc.getInfoTypeForString('RELIGION_COUNCIL_OF_ESUS')

Civs are also named in there as well as leaders and all sorts of other stuff. Your best option would probably be to go ahead woth your changes and fix the files that cause problems as you go.

OK will have to figure it out as I go I guess :)

Thanks!

Al
 
Actualy, I doubt the removing of infernal pact would break the game. If it is done entirely in python, there is no problem. If there is no such tech, it will simply not spawn.
Techs are generally not a problem as they tend to be starters for an action. Typically, as the above example shows, when tech is researched, an action is performed.
Problems will arise not if the starter is not present, but if resulting units/buildings do not exist.

As for the original question, trophies should be fine for the same reson (although you will never get them as starters are not present)
Scenarios are a bigger problem - they are pre-generated maps with civs, buildings, units and techs. If any element is missing, you get errors or the scenario is unplayable.
Scenartios can be adjusted to a modmod. It takes some work, but it worked for Orbis. Trust me, playing "Against the Wall" is quite differenet with workable peaks for khazad and fielding some poleaxemen to counter hippus ;)
If you completly remove the civs in taking part, the scenarios will be lost. But why would you want them to be playable if you tell completly different story?
 
Oh? Why is that? Because of Hyborem entering the game with this tech? Any way I can remake my own fantasy game without using the tech tree etc?

Al

For one example, see my DA - 133rd KRAG scenario. The tech tree is intact, but never gets used because no one ever builds cities. The code stays intact, the game does not crash because of weird incompatibilities, and there is no tech!
 
IIRC, a scenario states in the first few lines of the scenario file which Mod it is designed for. It will not run under any other mod (selecting it will attempt to load the proper mod instead of the current one). So you don't have to worry about them at all until you are ready to convert them manually, or make new ones.
 
Actualy, I doubt the removing of infernal pact would break the game. If it is done entirely in python, there is no problem. If there is no such tech, it will simply not spawn.
Techs are generally not a problem as they tend to be starters for an action. Typically, as the above example shows, when tech is researched, an action is performed.
Problems will arise not if the starter is not present, but if resulting units/buildings do not exist.

As for the original question, trophies should be fine for the same reson (although you will never get them as starters are not present)
Scenarios are a bigger problem - they are pre-generated maps with civs, buildings, units and techs. If any element is missing, you get errors or the scenario is unplayable.
Scenartios can be adjusted to a modmod. It takes some work, but it worked for Orbis. Trust me, playing "Against the Wall" is quite differenet with workable peaks for khazad and fielding some poleaxemen to counter hippus ;)
If you completly remove the civs in taking part, the scenarios will be lost. But why would you want them to be playable if you tell completly different story?

Thanks that answers a lot of questions! True that I wouldn't be bothered about scenarios at first due to this being my own line of work! :)

IIRC, a scenario states in the first few lines of the scenario file which Mod it is designed for. It will not run under any other mod (selecting it will attempt to load the proper mod instead of the current one). So you don't have to worry about them at all until you are ready to convert them manually, or make new ones.

New scenarios... that would be cool... best work on my base mod first :)

Is it easy to cause leader switches (and associated traits)? Is there a tutorial anywhere that details this?

Thanks

Al
 
Back
Top Bottom