Space Engineers

Space Engineers

Not enough ratings
DynamicArmor
   
Award
Favorite
Favorited
Unfavorite
Type: Mod
File Size
Posted
Updated
6.162 MB
6 Dec, 2023 @ 10:03am
18 Jul, 2024 @ 8:07pm
19 Change Notes ( view )

Subscribe to download
DynamicArmor

In 1 collection by BDCarrillo
BD's Toolbox
19 items
Description
The mod allows you to set various damage alterations for armor (or any block, really) to make it immune to damage below a certain value, stronger until damaged below a certain integrity percent, or have a flat deduction to incoming damage. This is meant more for undermatch (IE block isn't obliterated) situations.

Don't want rifles to be able to break heavy armor? Easily done. Want to make some fancy composite that holds up really well until partly damaged? Also easily done.

Note than minimum damage modifiers are applied first, then degradation percentages, and finally the flat deduction.


Config Location
\Users\username\AppData\Roaming\SpaceEngineers\Saves\ID Number\WorldName\Storage\

Debug Mode
Type in chat "/da debug" to cycle debug mode when tinkering with settings. This will show a message when a modified block is hit, and show the original and final alteration to damage. If the hit block isn't in the modified list, a message will show the SubtypeID.

Block Lists
Type in chat "/da listblocks" to get a list of all block subtypeIDs for everything in the world, separated by mod. This will output as BlockList.txt in the world storage, same as the configs.

Group Configs
Variable
Type
Description
groupName
string
The name of your group, as referred to in the armor block config
minDamage
integer
Damage less than this amount will be set to 0. Set to 0 to disable this feature
minDamageWhenDegraded
boolean
Only apply the min damage threshold if the block is not degraded (see degradedDmgThreshold)
deductDamage
integer
Amount of damage to deduct from incoming damage. Set to 0 to disable this feature
deductWhenDegraded
boolean
If false, the deductDamage will not apply if the block is degraded. If true, the deductDamage amount will always be factored into the final adjusted damage amount
degradedDmgThreshold
float
Percent (0-1f range). If integrity is below this %, the block is considered degraded. 0 disables the "degraded" functionality and is the default
degradedDmgPercent
float
If the block is degraded, damage is multiplied by this value. 1.1f would add 10% damage for example



Block Configs
Variable
Type
Description
subTypeID
string
List of block subtype IDs to inherit the properties of the group name below. Separate each with a comma
groupName
string
Group name that defines which group properties to apply to each block in the list above.

Order of Operations:
- Determine if block is degraded
- Check if damage is less than minimum and zero it out (or use the specified minimum when degraded)
- Apply degraded percent change if specified and block is degraded
- Apply deductDamage deduction

Samples Explained:
The Experimental 1 armor group contains the large grid heavy armor cube, which ignores all damage below 150 unless the block is less than half integrity. This might represent a fairly strong plate being impervious to weaker weapons, until enough damage has occurred from larger weapons. For example, this block would be immune to gatling gun fire until softened up with larger weapons.

The Experimental 2 armor group contains the large grid light armor cube, which will always deduct 60 damage from any source. Once the block is less than 75% integrity (IE degraded), any damage is multiplied by 1.5 before the 60 damage deduction. For example, this block would only take 30 of the baseline 90 damage from a gatling gun, until the integrity drops below 75%. Then it would begin taking 90*1.5-60, or 75 damage.

Credits:
A certain promiscuous, dumb poop ape for pontificating ideas and complaining about small weps killing thick slabs of armor.
Mitthrawn for suggesting the grouping

Discord: Other Projects -> bd-stuff at https://discord.gg/tXtpNwX8bf
7 Comments
RaptorFoxtrot 18 Sep @ 9:26am 
Nice mod, though I'd would be great to have a multiplier for non-degraded blocks to reduce incoming damage
damienmccain12 8 Jun @ 3:54am 
awesome, clears up my confusions! :)
BDCarrillo  [author] 2 Jun @ 12:41pm 
added order of operations
damienmccain12 1 Jun @ 10:55am 
can we get an equation to show the order of operations that the settings apply in? like min dmg vs deduct dmg vs degraded dmg multiplier
BDCarrillo  [author] 13 Dec, 2023 @ 12:56pm 
Thanks! I don't mind things staying quiet as they rack up some testing hours.
Shinobi 13 Dec, 2023 @ 8:13am 
Nice work BD! You should advertise more, your Workshop is hot, lmaoooo :P
hotdogbun64 9 Dec, 2023 @ 11:57am 
Brilliant! You continue to amaze with your ingenuity! Keep up the great work