To not make too many stupid suggestions of things impossible to do I'd like to know what the limitations of modding are:
General info about tools:
FinalBig to open .big files, containing the files with the unit data and all other stuff.
GenTool for playing the game with larger displays (open menu using Insert-button, navigate and change settings with arrow key buttons, has some imo shitty features when exiting the game, trying to patch itself and to install some maps without asking the user)
1) How many weapons can a single units have ?
Edit: Found PRIMARY, SECONDARY, TERTIARY as weapon slot declarations and not any more than that on any unit so I assume the weapon cap per unit is 3 weapons. Still a unit can have additional special abilities, like the Toxin Tractor's toxic puddle, also turrets and bunkers.
2) How many special abilities can a unit have and are there single unit upgrade caps ?
Edit: The only thing that limits the amount of special abilities a unit can have is the remaining space for buttons to use these special abilities. Some buttons are required to actually be able to control a unit, like "Attack", "Stop", "Guard". Upgrade caps do exist in the form of only once per upgrade type while some upgrades may be edited afterwards if certain conditions are met, like the SpecialAbilityUpdate ModuleTag that allows to set new values for a special ability.
3) Is there a limit of upgrades a building can have for research ?
Edit: The only thing that limits the amount of researchable upgrades a building can have is the remaining space for buttons for these. Whether it's possible to create new upgrades from scratch or modders are stuck with the amount of upgrades the original game had and may only edit these is something I don't know.
4) Is there a limit of total upgrades or units in the game ?
Edit: I'm quite sure that there's no unit limit, looking back at the Tank General challenge as Stealth General. Also no limit of how many units can be be modded into the game. There's just limited button space for build-this-unit buttons. Whether or not the amount of upgrades is limited in the game I don't know (yet). Unit can have a build cap, though, like Jarmen Kell / Col. Burton / Black Lotus.
5) What ways are there of creating units other than by building them by a costruction unit or within a building ?
Edit: Projectile death (Airforce General's A10 Thunderbolt ability), unit death can (GLA building holes), using special abilities (Jarmen Kell Rebel Ambush), General Powers (Parachute units) can create things.
6) Can a unit gain new weapons each experience rank or only at certain experience ranks ?
Answer: At each experience rank. Two ways to grant a unit new weapons (WeaponSets).
#1 being: just using the unit's experience rank as WeaponSet condition, like...
WeaponSet
Conditions = Veteran
Weapon = PRIMARY ThisUnitsVeteranWeapon_ExperienceRank_one_of_three
End
WeaponSet
Conditions = Elite
Weapon = PRIMARY ThisUnitsEliteWeapon_ExperienceRank_two_of_three
End
WeaponSet
Conditions = Hero
Weapon = PRIMARY ThisUnitsHeroicWeapon_ExperienceRank_three_of_three
End
Note: WeaponSet conditions can have multiple conditions, like...
Conditions = Hero PLAYER_UPGRADE
Initially I falsely assumed that these conditions were treated as AND conditions, meaning every single must be true to activate the WeaponSet. Testing revealed that they're treated as OR conditions.
It works like this (tested): The more matches within the Conditions the more likely it is that that WeaponSet is selected. It also means if there's a single condition true while all others are not and yet there's no other WeaponSet that has this condition then the sole WeaponSet offering that condition is chosen despite all other Conditions not being met. So take care of that by making sure all of the unit's intended weapon upgrade stages have their proper conditions.
The one thing ModuleTags can't check for (at least it seems so) are salvage crate turret upgrades.
These WeaponSet conditions are named as:
CRATEUPGRADE_ONE - one time upgraded turret by a salvage crate
CRATEUPGRADE_TWO - two times upgraded turret by a salvage crate
Use ModuleTags to more precisely check for conditions:
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY ThisUnitsHeroicWeapon_ExperienceRank_three_of_three
End
Behavior = WeaponSetUpgrade ModuleTag_12345 ;once all requirements are met the PLAYER_UPGRADE condition is enabled, enabling the WeaponSet that required it.
TriggeredBy = Upgrade_Veterancy_HEROIC ;sets a condition that requires the unit to reach experience rank 3 of 3
TriggeredBy = Upgrade_ResearchableUpgradeName ;sets a condition that requires an upgrade which needs to be researched
ScienceRequired = SCIENCE_GeneralPointsScienceStuffHere ;sets a condition that requires at least one general point into this general power
End
Note: TriggeredBy can be used in a manner to have OR but also AND checking conditions.
OR-checking:
TriggeredBy = Upgrade_Veterancy_Heroic Upgrade_ResearchableUpgrade
-> This will check if either the unit reached experience rank 3 of 3 OR a certain researchable upgrade that you can define has been researched.
AND-checking:
TriggeredBy = Upgrade_Veterancy_Heroic
TriggeredBy = Upgrade_ResearchableUpgrade
-> This will check if the unit has reached experience rank 3 of 3 AND certain researchable upgrade that you can define has been researched.
If you just want to improve a weapon's %-damage output it's also possible to use a ModuleTag entry within the unit's data and a Weapon.ini entry.
Example of the Quad Cannon's AP-Bullets upgrade:
Behavior = WeaponBonusUpgrade ModuleTag_12
TriggeredBy = Upgrade_APBullets
End
Inside the Weapon.ini for the weapon(s) the Quad Cannon uses:
Weapon QuadCannonGun
PrimaryDamage = 16.0
PrimaryDamageRadius = 3.0
AttackRange = 150.0
DamageType = GATTLING
DeathType = NORMAL
WeaponSpeed = 900
WeaponRecoil = 1
MinimumAttackRange = 30
ProjectileObject = GenericBulletGGMediumWhite
ProjectileDetonationFX = FX_BulletHitWhite
FireFX = WeaponFX_QuadCannonGunFire
FireSound = QuadCannonWeapon
RadiusDamageAffects= ALLIES ENEMIES NEUTRALS
DelayBetweenShots = 200
AntiAirborneVehicle= No
AntiAirborneInfantry = No
WeaponBonus = PLAYER_UPGRADE DAMAGE 125% ; AP-Bullets' damage bonus triggered by the research triggering the ModuleTag triggering the WeaponBonus effect increasing damage by 25%.
End
ModuleTag conditions you might want to use:
1) TriggeredBy conditions:
Upgrade_Veterancy_HEROIC - unit experience rank 3 of 3
Upgrade_Veterancy_ELITE - unit experience rank 2 of 3
Upgrade_Veterancy_VETERAN - unit experience rank 1 of 3
Upgrade_UpgradeName - any upgrade that affects the unit or that is a researchable upgrade
2) Science (General points required) condition:
ScienceRequired = SCIENCE_GeneralPowerThatRequiresPointsIntoIt
Note: ModuleTags can't (it seems) check for salvage crate turret upgrades. That requires a WeaponSet's condition.
-----
Complicated example#1: Let's say you want a Scorpion tank that will get a special weapon once it's at 3/3 experience rank, has a 2/2 turret upgrade and a specific upgrade was researched:
WeaponSet
Conditions = None
Weapon = PRIMARY GenericBoringWeapon
End
WeaponSet
Conditions = Hero CRATEUPGRADE_TWO PLAYER_UPGRADE
Weapon = PRIMARY SpecialScorpionTankWeaponWithMaxEXPAndAllUpgrades
End
Behavior = WeaponSetUpgrade ModuleTag_12345
TriggeredBy = Upgrade_ScorpionRelevantUpgradeName
End
Sadly the game only checks whether or not a WeaponSetUpgrade caused the PLAYER_UPGRADE condition but not how many times. So if you're trying to grant a unit more than one WeaponSet upgrade using the PLAYER_UPGRADE condition either twice or sequentially by using a second WeaponSet with PLAYER_UPGRADE condition this doesn't work. So you can only have one WeaponSet replacing weapon upgrade but it works to have additional %-bonus applied using the WeaponBonusUpgrade command.
7) Is it generally possible for experience ranks to improve a special ability of a unit as it levels up ?
Edit:
Yes, by using a ModuleTag with a SpecialAbilityUpdate command, using a TriggeredBy condition representing the desired rank: Upgrade_Veterancy_HEROIC or Upgrade_Veterancy_ELITE or Upgrade_Veterancy_VETERAN, upgrading the desired special ability by setting new values for it. Haven't personally tested this yet, just read the data.
8) Is it possible to also change hotkeys for special powers instead of just to issue unit production ?
Edit: This seems to require a tool to edit .csf files. Haven't touched those yet.
9) Is it possible to support super weapon side-buttons for all super weapons no matter whether or not it's your own faction so that in case a super weapon has been captured there's no need to always go back or to hotkey it just because the side button is missing ?
10) How is stealth handled in the game ? I can't GPS improve units with inferior stealth. Neither while they're visible nor while they're invisible. So I assume a unit sticks with one type of stealth ?
Edit: Any source that applies stealth to a unit installs a module handling stealth. A unit may not have more than one module of the same type. So I can't use GPS Scrambler on Stealth General's Hazael so that this unit not only remains stealthed while attacking but also while taking damage and neither can any other unit using some kind of stealth gain another kind of stealth. But I think it'd be possible to have a special ability or any condition that uninstalls a certain module.
As I read here modules can be added, removed, replaced:
Added:
AddModule ModuleTag_XX
Behavior = YYY ModuleTag_XX_Override
[parameters]
End
End
Removed:
ReplaceModule ModuleTag_XX_Override
Behavior = YYY ModuleTag_XX
[parameters]
End
End
Replaced:
RemoveModule ModuleTag_XX
What I'd like to get working right now is initial stealth for units just leaving the production queue. They shouldn't require time to stealth but start stealthed and they shouldn't make a stealth sound once created and entering stealth but only after stealth has been dropped because a condition for that has been met.
11) How are these area effects scripted (simplified) that destroy mines, heal or buff units and would it be possible to have either general or units specific upgrades for them ?
12) Do options such as weapon toggle options or attack / hold fire toggle limit a unit's total number of available upgrades / abilities ?
Edit: The buttons reduce the space for remaining buttons but other than that: No.
13) How are immunities applied ?
Edit: By changing a weapon's target types which are normally "ALLIES ENEMIES NEUTRALS", to "ENEMIES" only or "ENEMIES NEUTRALS", not affecting own units and allies anymore. I have only tried if adding a new armor type works but not the actual effect yet but I'm quite sure that's also an option: Adding a new armor type that's less or not at all affected by a certain weapon category.
14) Is there some kind of special weapon behaviour to certain weapons ?
Edit: Elbrus Launcher adding a super weapon side button and being a unit that carries a mini-superweapon, projectile attacking weapons (anti missile lasers), flames and anything causing contamination, any projectile death spawned units, emp, vehicle driver killing weapons, suicide weapons, traps, mines, Jammer Station area effect, anti radar missiles, lasers, area effect weapons, water, drones, target range bonus weapons (Patriot missiles), status effect weapons (Gun Buggy weapon disabling jammer beam). I'm sure there are more I can't remember or haven't encountered / found within the files yet.
15) Is there an option that each unit may only have one unit targeted with that certain weapon and all other units with the same weapon need to look for another target within range ?
16) Is it possible to change the values of stealth after an upgrade, like restealth time and get's visible condition ?
AI questions:
1) Is it possible to disable the maphacking for the AI (using superweapons and general's power stuff on locations where no one ever scouted - hitting stealthed units) ?
Edit: It doesn't look like anyone ever thought about that despite this being an issue basically since stealth was introduced in the C&C series.
2) How much does the AI resource cheat and when ?
Edit: Difficulty setting or map.ini controled per map. Otherwise not sure. The AI cheats all the time, always know what kind of units are where, always has simultaneous control of all units across the map, seems to be some building upgrades right from the start when building something new (noticed a newly built Chinese Power Plan already starting with a mine field instead of having to take the time to build one first).
3) Does the AI have build speed bonus ?
4) Does the AI get upgrades for free ?
Edit: Map.ini dependant what's pre-researched already. Otherwise it seems to get some things for free (Chinese Power Plant example).
5) Would it be possible to design a more human-like AI with click per second instead of omnipresent unit control ?
Edited by UsernameUsername, 24 August 2017 - 09:17 AM.