<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://chronocrash.com/openbor/wiki/index.php?action=history&amp;feed=atom&amp;title=Damage_Control</id>
	<title>Damage Control - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://chronocrash.com/openbor/wiki/index.php?action=history&amp;feed=atom&amp;title=Damage_Control"/>
	<link rel="alternate" type="text/html" href="https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;action=history"/>
	<updated>2026-09-01T10:17:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=555&amp;oldid=prev</id>
		<title>Dcurrent: /* Defense */</title>
		<link rel="alternate" type="text/html" href="https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=555&amp;oldid=prev"/>
		<updated>2026-07-26T01:59:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Defense&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:59, 25 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l110&quot;&gt;Line 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 110:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (Global)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (Global)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Selects the resource damaged by a blocked attack:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Selects the resource damaged by a blocked attack:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; – HP only.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; – Global; use the module&#039;s global MP-block setting.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; – HP only.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; – MP first, then apply any remainder to HP.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; – Global; use the module&#039;s global MP-block setting.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; – MP only; excess damage is discarded when MP reaches 0.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; – MP first, then apply any remainder to HP.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; – Both MP and HP receive the full blocked damage.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; – MP only; excess damage is discarded when MP reaches 0.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/ins&gt;&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; – Both MP and HP receive the full blocked damage.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&amp;lt;code&amp;gt;defense.damage.adjust&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&amp;lt;code&amp;gt;defense.damage.adjust&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dcurrent</name></author>
	</entry>
	<entry>
		<id>https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=353&amp;oldid=prev</id>
		<title>Dcurrent at 20:25, 22 July 2026</title>
		<link rel="alternate" type="text/html" href="https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=353&amp;oldid=prev"/>
		<updated>2026-07-22T20:25:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:25, 22 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OpenBOR includes a native system of damage control and mitigation. These settings adjust how entities deliver and respond to damage from different sources. For example, a character may resist, ignore, or absorb burn damage while remaining vulnerable to another attack type.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OpenBOR includes a native system of damage control and mitigation. These settings adjust how entities deliver and respond to damage from different sources. For example, a character may resist, ignore, or absorb burn damage while remaining vulnerable to another &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Attack Type|&lt;/ins&gt;attack type&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Offense properties modify damage delivered by an attacker. Defense properties modify incoming damage and reactions for the target. Both sets of properties may be configured independently for each [[Attack Type|attack type]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Offense properties modify damage delivered by an attacker. Defense properties modify incoming damage and reactions for the target. Both sets of properties may be configured independently for each [[Attack Type|attack type]].  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Model ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Model ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dcurrent</name></author>
	</entry>
	<entry>
		<id>https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=351&amp;oldid=prev</id>
		<title>Dcurrent: Added to categories.</title>
		<link rel="alternate" type="text/html" href="https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=351&amp;oldid=prev"/>
		<updated>2026-07-22T20:08:05Z</updated>

		<summary type="html">&lt;p&gt;Added to categories.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:08, 22 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l180&quot;&gt;Line 180:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 180:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; Factors and adjustments accept negative values. A negative final damage value restores hit points, up to the entity&amp;#039;s maximum health.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; Factors and adjustments accept negative values. A negative final damage value restores hit points, up to the entity&amp;#039;s maximum health.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Openbor]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Game Mechanics]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dcurrent</name></author>
	</entry>
	<entry>
		<id>https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=350&amp;oldid=prev</id>
		<title>Dcurrent: Created page with &quot;OpenBOR includes a native system of damage control and mitigation. These settings adjust how entities deliver and respond to damage from different sources. For example, a character may resist, ignore, or absorb burn damage while remaining vulnerable to another attack type.  Offense properties modify damage delivered by an attacker. Defense properties modify incoming damage and reactions for the target. Both sets of properties may be configured independently for each At...&quot;</title>
		<link rel="alternate" type="text/html" href="https://chronocrash.com/openbor/wiki/index.php?title=Damage_Control&amp;diff=350&amp;oldid=prev"/>
		<updated>2026-07-22T20:07:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;OpenBOR includes a native system of damage control and mitigation. These settings adjust how entities deliver and respond to damage from different sources. For example, a character may resist, ignore, or absorb burn damage while remaining vulnerable to another attack type.  Offense properties modify damage delivered by an attacker. Defense properties modify incoming damage and reactions for the target. Both sets of properties may be configured independently for each At...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;OpenBOR includes a native system of damage control and mitigation. These settings adjust how entities deliver and respond to damage from different sources. For example, a character may resist, ignore, or absorb burn damage while remaining vulnerable to another attack type.&lt;br /&gt;
&lt;br /&gt;
Offense properties modify damage delivered by an attacker. Defense properties modify incoming damage and reactions for the target. Both sets of properties may be configured independently for each [[Attack Type|attack type]].&lt;br /&gt;
&lt;br /&gt;
== Model ==&lt;br /&gt;
The following commands are model properties. They apply to every entity spawned from the model unless changed at runtime through script.&lt;br /&gt;
&lt;br /&gt;
=== Pain Configuration ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
pain_config &amp;lt;flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Default&lt;br /&gt;
pain_config none&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Controls basic reactions to hits. The command accepts one or more of the following flags:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; – No pain configuration. This flag has no effect when combined with other flags.&lt;br /&gt;
* &amp;lt;code&amp;gt;back_pain&amp;lt;/code&amp;gt; – Enables back-pain animations when the entity is hit from behind and does not otherwise ignore pain.&lt;br /&gt;
* &amp;lt;code&amp;gt;fall_disable&amp;lt;/code&amp;gt; – Prevents knockdown while the entity is at ground level. An airborne hit may still cause knockdown unless &amp;lt;code&amp;gt;fall_disable_air&amp;lt;/code&amp;gt; is also enabled.&lt;br /&gt;
* &amp;lt;code&amp;gt;fall_disable_air&amp;lt;/code&amp;gt; – Prevents the automatic knockdown normally caused by an airborne hit.&lt;br /&gt;
* &amp;lt;code&amp;gt;pain_disable&amp;lt;/code&amp;gt; – Prevents the entity from entering a pain animation.&lt;br /&gt;
&lt;br /&gt;
==== Script ====&lt;br /&gt;
Pain configuration is an integer bitmask. The corresponding script constants are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;openborconstant(&amp;quot;PAIN_CONFIG_NONE&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openborconstant(&amp;quot;PAIN_CONFIG_BACK_PAIN&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openborconstant(&amp;quot;PAIN_CONFIG_FALL_DISABLE&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openborconstant(&amp;quot;PAIN_CONFIG_FALL_DISABLE_AIR&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openborconstant(&amp;quot;PAIN_CONFIG_PAIN_DISABLE&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Damage Types ===&lt;br /&gt;
Offense and defense commands accept an attack type followed by the property value. See [[Attack Type|Attack Types]] for full details.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; – Applies the property to every non-special attack type, including creator-defined types. Special types must be configured individually.&lt;br /&gt;
* &amp;lt;code&amp;gt;normal#&amp;lt;/code&amp;gt; – A numbered attack type. Replace &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; with the creator-facing, one-indexed type number; for example, &amp;lt;code&amp;gt;normal5&amp;lt;/code&amp;gt; selects attack type 5.&lt;br /&gt;
* &amp;lt;code&amp;gt;blast&amp;lt;/code&amp;gt; – Blast type.&lt;br /&gt;
* &amp;lt;code&amp;gt;burn&amp;lt;/code&amp;gt; – Burn type.&lt;br /&gt;
* &amp;lt;code&amp;gt;freeze&amp;lt;/code&amp;gt; – Freeze type.&lt;br /&gt;
* &amp;lt;code&amp;gt;shock&amp;lt;/code&amp;gt; – Shock type.&lt;br /&gt;
* &amp;lt;code&amp;gt;steal&amp;lt;/code&amp;gt; – Steal type.&lt;br /&gt;
* &amp;lt;code&amp;gt;boss_death&amp;lt;/code&amp;gt; – Special type used to KO remaining enemies when a boss is defeated.&lt;br /&gt;
* &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; – Special type used when an item is collected.&lt;br /&gt;
* &amp;lt;code&amp;gt;land&amp;lt;/code&amp;gt; – Special type used for landing damage.&lt;br /&gt;
* &amp;lt;code&amp;gt;lifespan&amp;lt;/code&amp;gt; – Special type used when an entity&amp;#039;s lifespan expires.&lt;br /&gt;
* &amp;lt;code&amp;gt;lose&amp;lt;/code&amp;gt; – Special type used when time expires for players with a lose animation.&lt;br /&gt;
* &amp;lt;code&amp;gt;pit&amp;lt;/code&amp;gt; – Special type used when an entity reaches pit depth.&lt;br /&gt;
* &amp;lt;code&amp;gt;sub_entity_parent_kill&amp;lt;/code&amp;gt; – Special type used to KO a summon when its parent is removed.&lt;br /&gt;
* &amp;lt;code&amp;gt;sub_entity_unsummon&amp;lt;/code&amp;gt; – Special type used to KO a summon at its unsummon frame.&lt;br /&gt;
* &amp;lt;code&amp;gt;timeover&amp;lt;/code&amp;gt; – Special type used when time expires for players without a lose animation.&lt;br /&gt;
&lt;br /&gt;
=== Offense ===&lt;br /&gt;
Offense properties modify the attacker&amp;#039;s damage output before ordinary defense mitigation is applied.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Command&lt;br /&gt;
!Default&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;offense.damage.adjust&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a fixed amount to damage after applying &amp;lt;code&amp;gt;offense.damage.factor&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;offense.damage.max&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;MAX_INT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Maximum damage after applying the offense factor and adjustment.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;offense.damage.min&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;MIN_INT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Minimum damage after applying the offense factor and adjustment.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;offense.damage.factor&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Multiplies damage output. The intended property is floating-point; for example, &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt; produces 150% damage. Fractional calculation results are truncated toward zero when converted to an integer.&lt;br /&gt;
|}&lt;br /&gt;
The following model delivers 50% more damage with burn attacks:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
offense.damage.factor burn 1.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defense ===&lt;br /&gt;
Defense properties modify incoming damage, blocking, pain, knockdown, and death behavior for each attack type.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Command&lt;br /&gt;
!Default&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.damage.adjust&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a fixed amount to blocked damage after applying &amp;lt;code&amp;gt;defense.block.ratio&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.damage.max&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;MAX_INT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Maximum damage taken from a blocked attack after applying the block ratio and adjustment.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.damage.min&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;MIN_INT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Minimum damage taken from a blocked attack after applying the block ratio and adjustment.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.power&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Works with &amp;lt;code&amp;gt;attack.block.penetrate&amp;lt;/code&amp;gt;. When either value is nonzero, block power must be strictly greater than the attack&amp;#039;s penetration value for the attack to remain blockable.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.ratio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Special&lt;br /&gt;
|Multiplies damage when an attack is blocked. For example, &amp;lt;code&amp;gt;0.25&amp;lt;/code&amp;gt; causes a blocked attack to inflict 25% of its raw damage. The internal default is &amp;lt;code&amp;gt;openborconstant(&amp;quot;DEFENSE_BLOCKRATIO_COMPATABILITY_DEFAULT&amp;quot;)&amp;lt;/code&amp;gt;, allowing an explicit value of &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; to be distinguished from an unset property. When the special default remains in place, the engine uses &amp;lt;code&amp;gt;0.25&amp;lt;/code&amp;gt; if the legacy global block-ratio option is enabled and &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.threshold&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Added to the entity&amp;#039;s [[Blocking#Threshold|thold]] value. In the current implementation, a nonzero combined threshold is compared with the attack&amp;#039;s raw damage force; attacks below the threshold cannot be blocked, while attacks meeting or exceeding it pass this eligibility test.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.block.type&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (Global)&lt;br /&gt;
|Selects the resource damaged by a blocked attack:&lt;br /&gt;
&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; – HP only.&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; – Global; use the module&amp;#039;s global MP-block setting.&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; – MP first, then apply any remainder to HP.&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; – MP only; excess damage is discarded when MP reaches 0.&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; – Both MP and HP receive the full blocked damage.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.damage.adjust&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Adds a fixed amount to incoming damage after applying &amp;lt;code&amp;gt;defense.factor&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.damage.max&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;MAX_INT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Maximum damage taken after applying the ordinary defense factor and adjustment.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.damage.min&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;MIN_INT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Minimum damage taken after applying the ordinary defense factor and adjustment.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.death.config&amp;lt;/code&amp;gt;&lt;br /&gt;
|Default death configuration&lt;br /&gt;
|Sets death behavior when the entity is killed by the selected attack type. The accepted flags are otherwise identical to model [[Killed and Dead#Death Configuration|death configuration]].&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.factor&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Multiplies damage from an unblocked attack after the attacker&amp;#039;s offense calculation.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.knockdown&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Multiplies the attack&amp;#039;s knockdown force before it is deducted from the target&amp;#039;s knockdown counter. A value of &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; prevents the attack type from accumulating knockdown.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;defense.pain&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|Minimum raw attack damage required to trigger pain. A value of &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; disables this resistance, so ordinary pain behavior is always eligible. This test uses the attack&amp;#039;s original damage force, not damage after offense or defense calculations.&lt;br /&gt;
|}&lt;br /&gt;
This model takes half damage from attack type 5, requires at least 20 raw damage from that type to enter pain, and prevents that type from accumulating knockdown. It takes 150% damage from unblocked burn attacks and 50% of raw damage when a burn attack is blocked.&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
defense.factor normal5 0.5&lt;br /&gt;
defense.pain normal5 20&lt;br /&gt;
defense.knockdown normal5 0.0&lt;br /&gt;
&lt;br /&gt;
defense.factor burn 1.5&lt;br /&gt;
defense.block.ratio burn 0.5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Under the current block-threshold implementation, the following additionally prevents burn attacks with less than 20 raw damage from being blocked:&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
defense.block.threshold burn 20&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calculation Order ==&lt;br /&gt;
For an unblocked hit, OpenBOR calculates damage in this order:&lt;br /&gt;
&lt;br /&gt;
# Begin with &amp;lt;code&amp;gt;attack.damage.force&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Multiply by &amp;lt;code&amp;gt;offense.damage.factor&amp;lt;/code&amp;gt;, then convert the result to an integer by truncating toward zero.&lt;br /&gt;
# Add &amp;lt;code&amp;gt;offense.damage.adjust&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Clamp to &amp;lt;code&amp;gt;offense.damage.min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;offense.damage.max&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Multiply by &amp;lt;code&amp;gt;defense.factor&amp;lt;/code&amp;gt;, then convert the result to an integer by truncating toward zero.&lt;br /&gt;
# Add &amp;lt;code&amp;gt;defense.damage.adjust&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Clamp to &amp;lt;code&amp;gt;defense.damage.min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;defense.damage.max&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For a blocked hit, OpenBOR first calculates the attacker’s offense-adjusted damage exactly as it would for an unblocked hit. It then applies the defender’s block-specific mitigation in place of the ordinary defense properties:&lt;br /&gt;
&lt;br /&gt;
# Begin with &amp;lt;code&amp;gt;attack.damage.force&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Multiply by &amp;lt;code&amp;gt;offense.damage.factor&amp;lt;/code&amp;gt;, then truncate the result toward zero.&lt;br /&gt;
# Add &amp;lt;code&amp;gt;offense.damage.adjust&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Clamp to &amp;lt;code&amp;gt;offense.damage.min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;offense.damage.max&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Multiply by &amp;lt;code&amp;gt;defense.block.ratio&amp;lt;/code&amp;gt;, then truncate the result toward zero.&lt;br /&gt;
# Add &amp;lt;code&amp;gt;defense.block.damage.adjust&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Clamp to &amp;lt;code&amp;gt;defense.block.damage.min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;defense.block.damage.max&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Apply the resulting damage to HP, MP, or both according to &amp;lt;code&amp;gt;defense.block.type&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The ordinary &amp;lt;code&amp;gt;defense.factor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;defense.damage.adjust&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;defense.damage.min&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;defense.damage.max&amp;lt;/code&amp;gt; properties do not apply to blocked hits.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; Factors and adjustments accept negative values. A negative final damage value restores hit points, up to the entity&amp;#039;s maximum health.&lt;/div&gt;</summary>
		<author><name>Dcurrent</name></author>
	</entry>
</feed>