<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?action=history&amp;feed=atom&amp;title=Template%3ASkillRollBandDef</id>
	<title>Template:SkillRollBandDef - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?action=history&amp;feed=atom&amp;title=Template%3ASkillRollBandDef"/>
	<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:SkillRollBandDef&amp;action=history"/>
	<updated>2026-10-10T10:21:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:SkillRollBandDef&amp;diff=18184&amp;oldid=prev</id>
		<title>76561198026315966: obelisk-bot: Fixing bad field declaration</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:SkillRollBandDef&amp;diff=18184&amp;oldid=prev"/>
		<updated>2026-05-19T01:24:32Z</updated>

		<summary type="html">&lt;p&gt;obelisk-bot: Fixing bad field declaration&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&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 01:24, 19 May 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-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&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;{{#cargo_declare:_table=SkillRollBand&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;{{#cargo_declare:_table=SkillRollBand&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;| id = String&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;| id = String&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;| levels = List &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of Integer &lt;/del&gt;(,)&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;| levels = List (,) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of Integer&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;div&gt;| description = Wikitext&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;| description = Wikitext&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&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;{{SkillRollBandDef&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;{{SkillRollBandDef&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;| id = String (allowed values=default,magic_levels,signature_levels,level_20_mega)&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;| id = String (allowed values=default,magic_levels,signature_levels,level_20_mega)&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;| levels = List &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of Integer &lt;/del&gt;(,)    &amp;lt;!-- comma-separated, e.g. &quot;4,8,12,16,24,28,32,36,40,44,48&quot; --&amp;gt;&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;| levels = List (,) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of Integer &lt;/ins&gt;   &amp;lt;!-- comma-separated, e.g. &quot;4,8,12,16,24,28,32,36,40,44,48&quot; --&amp;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;| description = Wikitext          &amp;lt;!-- human-readable trigger explanation --&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;| description = Wikitext          &amp;lt;!-- human-readable trigger explanation --&amp;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;}}&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;!-- diff cache key HOMM_:diff:1.41:old-18178:rev-18184:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561198026315966</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:SkillRollBandDef&amp;diff=18178&amp;oldid=prev</id>
		<title>76561198026315966: obelisk-bot: Adding new tables for hero skill rolls</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Template:SkillRollBandDef&amp;diff=18178&amp;oldid=prev"/>
		<updated>2026-05-19T01:14:09Z</updated>

		<summary type="html">&lt;p&gt;obelisk-bot: Adding new tables for hero skill rolls&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Small reference table — &amp;#039;&amp;#039;&amp;#039;4 rows&amp;#039;&amp;#039;&amp;#039;, class-invariant — listing which levels each &amp;lt;code&amp;gt;band_kind&amp;lt;/code&amp;gt; applies to. Every &amp;lt;code&amp;gt;SkillRollWeightDef&amp;lt;/code&amp;gt; row&amp;#039;s &amp;lt;code&amp;gt;band_kind&amp;lt;/code&amp;gt; joins to a row here.&lt;br /&gt;
&lt;br /&gt;
The level grid is identical across all 12 standard tables (and the 12 arena tables). Rather than embed the grid 24× into per-table data, the bot extracts it once and stores it here. If a future patch differentiates the grid per-class, this table promotes to &amp;lt;code&amp;gt;(table_id, band_kind, levels)&amp;lt;/code&amp;gt; at the cost of 24× the rows.&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
{{#cargo_declare:_table=SkillRollBand&lt;br /&gt;
| id = String&lt;br /&gt;
| levels = List of Integer (,)&lt;br /&gt;
| description = Wikitext&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
{{SkillRollBandDef&lt;br /&gt;
| id = String (allowed values=default,magic_levels,signature_levels,level_20_mega)&lt;br /&gt;
| levels = List of Integer (,)    &amp;lt;!-- comma-separated, e.g. &amp;quot;4,8,12,16,24,28,32,36,40,44,48&amp;quot; --&amp;gt;&lt;br /&gt;
| description = Wikitext          &amp;lt;!-- human-readable trigger explanation --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Field notes ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; is the &amp;lt;code&amp;gt;band_kind&amp;lt;/code&amp;gt; value used in &amp;lt;code&amp;gt;SkillRollWeightDef&amp;lt;/code&amp;gt; rows. Enum of 4 fixed values.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;levels&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; is a Cargo &amp;lt;code&amp;gt;List of Integer&amp;lt;/code&amp;gt; column with comma delimiter. Use the &amp;lt;code&amp;gt;HOLDS&amp;lt;/code&amp;gt; operator to test membership in a query: &amp;lt;code&amp;gt;WHERE levels HOLDS &amp;quot;20&amp;quot;&amp;lt;/code&amp;gt; matches every band that fires at level 20.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; is editor-authored prose explaining when the band fires. Bot writes a default (&amp;quot;Applies on the magic-milestone levels: …&amp;quot;); a wiki editor may rewrite for readability.&lt;br /&gt;
&lt;br /&gt;
== Canonical row contents ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; !! &amp;lt;code&amp;gt;levels&amp;lt;/code&amp;gt; !! description (en)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1,2,3,…,50&amp;lt;/code&amp;gt; (50 entries) || Applies to every level-up from 1 through 50. The baseline pool every roll draws from.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;magic_levels&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;4,8,12,16,24,28,32,36,40,44,48&amp;lt;/code&amp;gt; || Every 4th level except 20 (which is covered by the level-20 milestone). Adds the four magic-element schools at their baseline weights — effectively doubling the chance of a magic-school offering on those levels.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;signature_levels&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5,10,15,25,30&amp;lt;/code&amp;gt; || Every 5th level from 5 through 30, except 20. Adds &amp;lt;code&amp;gt;+100&amp;lt;/code&amp;gt; weight to the table&amp;#039;s own faction skill and &amp;lt;code&amp;gt;+100&amp;lt;/code&amp;gt; to the class-signature skill (battle_artistry for might, wisdom for magic).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;level_20_mega&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || The level-20 milestone — fires alone. Adds doubled magic-element weights (160/40/120/80 for day/night/space/primal) plus &amp;lt;code&amp;gt;+100&amp;lt;/code&amp;gt; faction and &amp;lt;code&amp;gt;+100&amp;lt;/code&amp;gt; class-signature. The single most-distinctive level in the roll system.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Why additive, not replacing ==&lt;br /&gt;
At level 20 in &amp;lt;code&amp;gt;humans_might_skills_table&amp;lt;/code&amp;gt;, the engine produces an effective &amp;lt;code&amp;gt;magic_day&amp;lt;/code&amp;gt; weight of &amp;#039;&amp;#039;&amp;#039;240&amp;#039;&amp;#039;&amp;#039; (= 80 default + 160 level_20_mega), not 160. This is empirically consistent with the &amp;quot;doubled magic at level 20&amp;quot; player-facing description and matches HoMM design tradition for milestone-level boosts.&lt;br /&gt;
&lt;br /&gt;
Verified by working backwards: if the overlay replaced the default, faction_humans at level 20 would drop from 200 to 100 (worse than baseline) — incoherent. If the overlay adds, faction_humans goes from 200 to 300 (better at milestone) — coherent.&lt;br /&gt;
&lt;br /&gt;
== Related tables ==&lt;br /&gt;
* [[Template:SkillRollWeightDef|SkillRollWeight]] — joined on &amp;lt;code&amp;gt;band_kind = SkillRollBand.id&amp;lt;/code&amp;gt; (1:N from band side).&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* The negative-level sentinels &amp;lt;code&amp;gt;[-1]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[-2]&amp;lt;/code&amp;gt; in source are &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; represented here. &amp;lt;code&amp;gt;[-1]&amp;lt;/code&amp;gt; is dropped at extract (byte-identical to the default 1..50 band in every file — suspected engine fallback for a never-occurring code path; the audit flags it if a future patch breaks the equality). &amp;lt;code&amp;gt;[-2]&amp;lt;/code&amp;gt; is the pseudo-skill fallback for &amp;quot;main pool can&amp;#039;t supply 3 valid offerings&amp;quot; and lives in [[Template:StatBonusRollDef|StatBonusRoll]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Cargo Definitions]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#cargo_store:_table=SkillRollBand&lt;br /&gt;
| id = {{{id|}}}&lt;br /&gt;
| levels = {{{levels|}}}&lt;br /&gt;
| description = {{{description|}}}&lt;br /&gt;
}}&lt;br /&gt;
Created &amp;lt;code&amp;gt;SkillRollBand&amp;lt;/code&amp;gt; entry: &amp;lt;code&amp;gt;{{{id|}}}&amp;lt;/code&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>76561198026315966</name></author>
	</entry>
</feed>