Hello everyone!
I recently registered and I was wondering if their are any specific resources that I should read or watch that concerns the modification of the command and conquer video games.
Anything would be grateful!
-nt
Getting started in Modding for Command and Conquer games.
Hi nt,
welcome to openra.
You can watch the development process and access the source code/yaml of the default mods on the github repository:
https://github.com/OpenRA/OpenRA
If you want to mod, you probably also want to have a look at the wiki pages:
https://github.com/OpenRA/OpenRA/wiki
welcome to openra.
You can watch the development process and access the source code/yaml of the default mods on the github repository:
https://github.com/OpenRA/OpenRA
If you want to mod, you probably also want to have a look at the wiki pages:
https://github.com/OpenRA/OpenRA/wiki
- Graion Dilach
- Posts: 277
- Joined: Fri May 15, 2015 5:57 pm
Keep in mind that modding OpenRA is not equal to modding a traditional C&C game at all.
As modding tools, while OpenRA.Utility works, it's performance is inferior and not exactly modder-friendly, I suggest you to XCC Mixer.
If you want to work with voxels as well, Voxel Section Editor III - or commonly VXLSE is the way to go, along with it's companion, HVA Builder (yea, I know, I'm linking beta builds of these latter two but they work fine).
There's also SHP Builder for quick'n'dirty edits - this is also the tool used at some of the old OpenRA modding tutorials involving assets on the wiki.
Also feel free to ask if you're stuck - there probably will be people around to help you in any way.
As modding tools, while OpenRA.Utility works, it's performance is inferior and not exactly modder-friendly, I suggest you to XCC Mixer.
If you want to work with voxels as well, Voxel Section Editor III - or commonly VXLSE is the way to go, along with it's companion, HVA Builder (yea, I know, I'm linking beta builds of these latter two but they work fine).
There's also SHP Builder for quick'n'dirty edits - this is also the tool used at some of the old OpenRA modding tutorials involving assets on the wiki.
Also feel free to ask if you're stuck - there probably will be people around to help you in any way.
Welcome ! As said above read through the wikis and such before doing anything else. I am still t a very basic level of modding but the way I learned was to take a mod map, look at .yaml file and see how the rules affect the game, what is changed, etc. To view the /yaml take a .oramap and extract using an archive program, I run OS X and use Archive Utility. Once you extract there should be at least 2 files, a .bin which is the map layout and tiles, and a .yaml which controls actors and rules of the map.
This next tip I find is good for understanding the game balance as well. Go into the package contents of the openra game and look for the .yamls of rules, defaults, weapons, vehicles etc. In those you will find the actual numbers and modifiers which give units their stats abilities, etc. You can compare stats of units and buildings to see which is actually stronger/faster etc.
Note that in the files these must be indented correctly to be understood by the game, I just pasted here out of convenience
Ex:
120mm:
ReloadDelay: 90 (decrease to shoot faster)
Range: 4c768
Report: CANNON1.AUD
Burst: 2 (how many shots)
InvalidTargets: Air, Infantry
Projectile: Bullet
Speed: 682
Image: 120MM
Warhead@1Dam: SpreadDamage
Spread: 128
Damage: 60 (base damage of weapon)
InvalidTargets: Air, Infantry
Versus:
None: 20 (strength against armor types)
Wood: 75
Light: 75
Concrete: 50
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: Crater
Warhead@3EffGround: CreateEffect
Explosion: small_explosion
ImpactSound: kaboom12.aud
InvalidImpactTypes: Water
Warhead@4EffWater: CreateEffect
Explosion: small_splash
ImpactSound: splash9.aud
ValidImpactTypes: Water
This is the yaml code for a "120mm cannon" . You can see I put some comments in parenthesis that aren't part of the actual game files. If you increase the amounts under Versus (none, wood, light) the weapon will do more damage targets of those armor types. This is the mammoth tanks weapon I believe, but you could edit the rules of the light tank to have it use this weapon. Put under light tanks weapon, 120mm cannon and it will now use this instead.
Lets look at light tank:
1TNK:
Inherits: ^Tank
Buildable:
Queue: Vehicle
BuildPaletteOrder: 50
Prerequisites: ~vehicles.allies, ~techlevel.low
Valued:
Cost: 700
Tooltip:
Name: Light Tank
Description: Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft
Health:
HP: 220
Armor:
Type: Heavy
Mobile:
Speed: 128
Crushes: wall, mine, crate, infantry
RevealsShroud:
Range: 4c0
Turreted:
ROT: 5
Armament:
Weapon: 25mm (Change this to "120mm" )
Recoil: 85
RecoilRecovery: 25
LocalOffset: 768,0,90
MuzzleSequence: muzzle
AttackTurreted:
WithMuzzleFlash:
RenderUnit:
WithTurret:
AutoTarget:
Explodes:
Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall
LeavesHusk:
HuskActor: 1TNK.Husk
You can see it has the 25 mm cannon, in that area change that to 120mm cannon and you now have a more powerful light tank! Decrease its speed and it won't be moving very fast though.
All these things with " : " next to it (ex. WithMuzzleFlash:) are traits, go to https://github.com/OpenRA/OpenRA/wiki/Traits and learn what modifiers you can use to customize each trait, see which are required, etc.
I am new to this myself so others please correct me if I am wrong about anything.
Edit: keep in mind sometimes things aren't so simple and if you add something to a unit there's a possibility it needs another trait. Very important: always test one new at a time to eliminate variables!
This next tip I find is good for understanding the game balance as well. Go into the package contents of the openra game and look for the .yamls of rules, defaults, weapons, vehicles etc. In those you will find the actual numbers and modifiers which give units their stats abilities, etc. You can compare stats of units and buildings to see which is actually stronger/faster etc.
Note that in the files these must be indented correctly to be understood by the game, I just pasted here out of convenience
Ex:
120mm:
ReloadDelay: 90 (decrease to shoot faster)
Range: 4c768
Report: CANNON1.AUD
Burst: 2 (how many shots)
InvalidTargets: Air, Infantry
Projectile: Bullet
Speed: 682
Image: 120MM
Warhead@1Dam: SpreadDamage
Spread: 128
Damage: 60 (base damage of weapon)
InvalidTargets: Air, Infantry
Versus:
None: 20 (strength against armor types)
Wood: 75
Light: 75
Concrete: 50
DamageTypes: Prone50Percent, TriggerProne, ExplosionDeath
Warhead@2Smu: LeaveSmudge
SmudgeType: Crater
Warhead@3EffGround: CreateEffect
Explosion: small_explosion
ImpactSound: kaboom12.aud
InvalidImpactTypes: Water
Warhead@4EffWater: CreateEffect
Explosion: small_splash
ImpactSound: splash9.aud
ValidImpactTypes: Water
This is the yaml code for a "120mm cannon" . You can see I put some comments in parenthesis that aren't part of the actual game files. If you increase the amounts under Versus (none, wood, light) the weapon will do more damage targets of those armor types. This is the mammoth tanks weapon I believe, but you could edit the rules of the light tank to have it use this weapon. Put under light tanks weapon, 120mm cannon and it will now use this instead.
Lets look at light tank:
1TNK:
Inherits: ^Tank
Buildable:
Queue: Vehicle
BuildPaletteOrder: 50
Prerequisites: ~vehicles.allies, ~techlevel.low
Valued:
Cost: 700
Tooltip:
Name: Light Tank
Description: Light Tank, good for scouting.\n Strong vs Light Vehicles\n Weak vs Tanks, Aircraft
Health:
HP: 220
Armor:
Type: Heavy
Mobile:
Speed: 128
Crushes: wall, mine, crate, infantry
RevealsShroud:
Range: 4c0
Turreted:
ROT: 5
Armament:
Weapon: 25mm (Change this to "120mm" )
Recoil: 85
RecoilRecovery: 25
LocalOffset: 768,0,90
MuzzleSequence: muzzle
AttackTurreted:
WithMuzzleFlash:
RenderUnit:
WithTurret:
AutoTarget:
Explodes:
Weapon: UnitExplodeSmall
EmptyWeapon: UnitExplodeSmall
LeavesHusk:
HuskActor: 1TNK.Husk
You can see it has the 25 mm cannon, in that area change that to 120mm cannon and you now have a more powerful light tank! Decrease its speed and it won't be moving very fast though.
All these things with " : " next to it (ex. WithMuzzleFlash:) are traits, go to https://github.com/OpenRA/OpenRA/wiki/Traits and learn what modifiers you can use to customize each trait, see which are required, etc.
I am new to this myself so others please correct me if I am wrong about anything.
Edit: keep in mind sometimes things aren't so simple and if you add something to a unit there's a possibility it needs another trait. Very important: always test one new at a time to eliminate variables!
-
- Posts: 1086
- Joined: Wed Dec 10, 2014 11:59 am
Thanks for the posts, they're usefull!
Playlist with ALL games of the Dark Tournament Youtube.com/CorrodeCasts
Consider supporting OpenRA by setting a bounty or by donating for a server
Consider supporting OpenRA by setting a bounty or by donating for a server
- Graion Dilach
- Posts: 277
- Joined: Fri May 15, 2015 5:57 pm
@raymundo, there is an actual way to place a comment in yaml, use the # mark, e.g.
Although OpenRA.Utility's --upgrade command cleans the comments.
Code: Select all
harv:
Inherits: ^Harvester
Buildable:
Prerequisites: ~narefn
IconPalette: harvicon
Valued:
Cost: 1400
Tooltip:
Name: War Miner
Voiced:
VoiceSet: WarMinerVoice
Harvester:
Capacity: 10
DeliverVoice: Move
# AI uses harvesters offensively, yay, must be unarmed for now
#Armament@primary:
# Weapon: HarvesterGun
# LocalOffset: 0,50,384, 0,-50,384
# UpgradeTypes: eliteweapon
# UpgradeMaxEnabledLevel: 0
# UpgradeMaxAcceptedLevel: 1
#Armament@elite:
# Weapon: HarvesterGunE
# LocalOffset: 0,50,384, 0,-50,384
# UpgradeTypes: eliteweapon
# UpgradeMinEnabledLevel: 1
#AttackTurreted:
#AutoTarget:
Turreted:
ROT: 10
Offset: -80,0,0
WithVoxelTurret:
LeavesHusk:
HuskActor: harv.Husk
UpgradeActorsNear: #temp 'til harvs can actually be armed
Upgrades: warminer
Range: 5c0
ValidStances: Neutral, Enemy