Changelog

0.67.1
2024/10/21

Features

  • Performance & stability improvements.
0.67.0
2024/10/10

Features

  • Migrated to Nuxt.
  • Performance gains.
  • SEO gains.
0.66.4
2024/09/29

Features

  • Performance & stability improvements.
0.66.3
2024/09/24

Features

  • Sims timeout tolerance increased.
  • Stability improvements.
0.66.2
2024/09/18

Features

  • Performance & stability improvements.
0.66.1
2024/09/06

Features

  • Added preset weapon ability: "EXTRA ATTACKS".
0.66.0
2024/09/01

Features

  • Added "Extra attacks" option to "Special" modifier effect.
  • Added "Apply to weapons with the EXTRA ATTACKS ability" checkbox to "Increase weapon attacks" effect (defaults to unchecked). Existing modifiers have been updated to not have this checkbox checked.
  • You can now clone model types within a unit.
  • "Wound type" condition is now available to global modifiers.
  • The "Psychic attack" condition is now available to more effects:
    • "Generate extras"
    • "Mortal wounds"
    • "Override requirements"
  • Added preset profile ability: "+1 to hit roll (if attacker)"
  • Added new FAQ: "Why is 'Damage not ignored' lower than expected?"
  • Removed the following, now-redundant, preset modifiers:
    • "+3 to damage"
    • "+3 to strength"
    • "-3 to armour save roll"
    • "-3 to damage"
    • "-3 to save roll"
    • "-3 to strength"
    • "Degrade AP by 3"
    • "Degrade BS by 3"
    • "Degrade WS by 3"
    • "Hit roll of 6 (unmodified) : 1 mortal wound"
    • "Hit roll of 6 (unmodified) : 2 mortal wounds (max 6) (attack sequence ends)"
    • "Hit roll of 6 (unmodified) : 2 mortal wounds"
    • "Improve AP by 3"
    • "Improve BS by 3"
    • "Improve WS by 3"
    • "Successful hit roll : 1 mortal wound"
    • "Wound roll of 6 (unmodified) : 1 mortal wound (max 6)"
    • "Wound roll of 6 (unmodified) : 2 mortal wounds (attack sequence ends)"
    • "Wound roll of 6 (unmodified) : improve AP by 3"

Fixed

  • Preset profile ability "Degrade AP by 1" replaced with "Degrade AP by 1 (if defender)".
  • Possible incorrect sims timeout when using a modifier that checks if the attack is psychic.

Credits

  • Testing: korzxd
0.65.6
2024/08/24

Fixed

  • Weapons overwriting each other when cloning more than 1 when editing a profile.

Credits

  • Bug reporting: korzxd
0.65.5
2024/08/19

Fixed

  • BLAST sometimes not correctly calculating the number of attacks when targeting an advanced defender profile (was still using each model type's mode count value rather than the computed model count value fo the whole profile).

Credits

  • Bug reporting: KerniusMaximus
0.65.4
2024/08/09

Fixed

  • Stability improvements when running more than 50k sims.
0.65.3
2024/08/06

Fixed

  • On first page load, reset & do not display sim results if the user has disabled auto-running sims. This avoids displaying and processing stale data which would only lead to confusion or underlying errors.
0.65.2
2024/07/31

Fixed

  • Regression: Basic profiles weren't saving their keywords correctly - modifiers that depend on keywords were not working as expected (e.g. ANTI-* modifiers).

Credits

  • Bug reporting: horusmanbuilt, u/Psiense, u/RindFisch
0.65.1
2024/07/30

Features

  • Increased sims timeout when running 500k sims or more.
0.65.0
2024/07/26

Features

  • Added support for an optional "(MELEE)" or "(RANGED)" suffix for the following reserved aliases:
    • "ANTI-*"
    • "DEVASTATING WOUNDS"
    • "LETHAL HITS"
    • "SUSTAINED HITS *"
  • Added the following preset global modifiers, profile abilities & weapon abilities:
    • "DEVASTATING WOUNDS (MELEE)"
    • "DEVASTATING WOUNDS (RANGED)"
    • "LETHAL HITS (MELEE)"
    • "LETHAL HITS (RANGED)"
    • "SUSTAINED HITS 1 (MELEE)"
    • "SUSTAINED HITS 1 (RANGED)"
  • Existing modifiers & abilities will be updated to use the new reserved aliases where applicable.

Credits

  • Testing: korzxd
0.64.6
2024/07/24

Features

  • Increased max number of model types per unit from 3 to 5.
  • Increased sims timeout to 30 seconds when running 100k sims or less.

Fixed

  • Automatic order slain to watch unit leader values & model type model count values.
  • Some imported profiles could not have new abilities added to them.

Credits

  • Bug reporting: korzxd
0.64.5
2024/07/18

Fixed

  • Re-run the 0.64.4 migration as there was an error in it the first time round.
0.64.4
2024/07/18

Fixed

  • Importing a unit from one advanced profile to another didn't handle profile abilities correctly leading to problems activating/deactivating certain abilities. This is now fixed and I've straightened out any profiles that were effected.
  • Regression: Certain profiles with only 1 weapon of the current attack type did not have that weapon selected and there was no way to select it. All sorted now. Again.

Credits

  • Bug reporting: Bluescreech
0.64.3
2024/07/18

Fixed

  • Sims that would hang indefinitely now timeout after a period of time. An error message is then displayed as well as suggestions for how to proceed.

Credits

  • Bug reporting: u/DiabolicIntent
0.64.2
2024/07/16

Fixed

  • Problems for some users updating to 0.64.0 or 0.64.1. Good times.
  • Incorrect weapon validation in some cases when editing advanced profiles.
0.64.1
2024/07/16

Fixed

  • Problems for some users updating to 0.64.0.
0.64.0
2024/07/16

Summary

I've decided that UnitCrunch isn't complicated enough (/s) and have added an "Advanced" mode for profile editing. Profiles can now support multiple units with multiple model types.

Features

  • The profile edit form now has both a "Basic" mode and an "Advanced" mode. "Basic" mode is a new term for what you've used up until now. "Advanced" mode offers new options including:
    • Profiles contain 1-3 units. Units contain 1-3 model types.
    • Units have profile abilities. Model types have characteristics & weapons.
    • Multiple model types allows for more than 1 group of characteristics per profile. This means you can now model things like a squad made up of a sergeant and several grunts, where each of those 2 model types can have varied characteristics and weapons.
    • Multiple units per profile means you can now model attaching leaders to other units. You can even mark one or more units as leaders.
    • Units can have abilities that they can opt to share with the other units in the same profile.
    • You can specify the "Order slain" for a profile's model types. OR you can have UnitCrunch automatically manage a half-sensible "Order slain" for you.
    • Units can both be created manually or copied from other existing profiles to streamline advanced profile creation. Need the same leader unit that you included in a profile earlier? Just search for & select that unit, and it'll be copied into the profile that you're currently editing.
  • Basic profiles can be upgraded to become advanced profiles with ease. Under the hood, basic profiles are just advanced profiles with only one unit that has only one model type. This is hidden from you when in basic mode to keep things simple where needed.
  • With profiles becoming potentially more complex, so have the simulations that use them. Much of the code run during a simulation has been re-written to handle the new profile structure.
  • Charts no longer display overkill damage. The new profile structure makes this much more difficult and so the feature has been removed as a necessary trade-off.
  • All of your existing custom profiles have been updated to support the new profile structure.
  • Demo profiles can now be added to your existing profiles rather than always replace them (so long as you have space).
  • Added 2 new demo profiles designed to showcase what's possible with the advanced profile editor:
    • "Avengers": A single unit squad comprising 2 model types (1 champion and several grunts).
    • "Boys led by Medic": A multi-unit profile with an attached leader that shares a 5+++ FNP ability with other units in the profile.
  • Have made it clearer that the "Generate extras" effect is evaluated per attack and signposted the "Increase weapon attacks" effect for increasing a weapon's "Attacks" characteristic.

Fixed

  • Modal "Cancel" button was concealed behind keyboard when selecting a profile or preset modifier on Chrome-like mobile browsers (Chrome, Brave etc).
  • "Damage not ignored" results now show as expected when adding a "Feel no pain" value to an ad hoc defender. This was just a display bug and didn't affect final results.
  • Selecting the same profile as attacker & defender could lead to some odd visual feedback re selected abilities.
  • Points efficiency results weren't showing if either profile was "ad hoc" despite both profiles having points values.
  • Ultra-niche bug whereby a modifier effect set to always wound and be marked as a crit wouldn't always behave like a crit.
  • Fixed a bug that could sometimes cause the sims to hang indefinitely just after a saving a newly created global modifier.

Credits

  • Bug reporting: Bluescreech, korzxd
0.63.0
2024/06/27

Summary

Changes to the "DEVASTATING WOUNDS" mechanic as per the 40k June 2024 core rules updates.

Features

  • "Mortal wounds" effect now has a checkbox "Do not spill over" (unchecked by default).
  • Updated "DEVASTATING WOUNDS" preset to effectively be an alias for the super-catchy "Critical wound : mortal wounds equal to weapon damage (attack sequence ends) (no spill over)"
  • All "DEVASTATING WOUNDS" modifiers have been automatically updated to use the adjusted "Mortal wounds" effect.
  • Removed "Devastating & mortal wounds" option from "Wound type" condition.
  • All modifiers with a "Wound type" condition that used the "Devastating & mortal wounds" option have been automatically updated to use the "Mortal wounds" option.
0.62.7
2024/06/17

Fixed

  • Fixed an issue where imported profiles could have no weapons selected if they only held 1 weapon of a certain type.

Credits

  • Bug reporting: korzxd
0.62.6
2024/05/20

Fixed

  • Initialising the "Crunch" page with an attacker profile with no weapons selected could sometimes still trigger sims to run (which would then error & never finish).
0.62.5
2024/05/07

Fixed

  • Fixed a niche bug where it could become possible for the "/" & "/manage-profiles" pages to not load correctly.

Credits

  • Bug reporting: u/nachocuban
0.62.4
2024/04/03

Features

  • The "Remained stationary" condition can now be paired with the "Disable mechanic" effect and vice versa.
0.62.3
2024/03/13

Features

  • Added the following preset profile abilities that I can't believe were still missing:
    • "Re-roll all possible failed hit rolls (if attacker)"
    • "Re-roll all hit roll results of 1 (if attacker)"
    • "Re-roll all possible failed wound rolls (if attacker)"
    • "Re-roll all wound roll results of 1 (if attacker)"

Credits

  • Heads up: u/wredcoll
0.62.2
2024/03/06

Fixed

  • Fixed a weird edge case whereby "Wounds dealt" would be slightly off if you combine "Lethal hits", "+1 to wound" & "Re-roll wounds".

Credits

  • Bug reporting: NickDaMan
0.62.1
2024/03/04

Features

  • Added the following preset weapon abilities:
    • "ANTI-DAEMON 2+"
    • "ANTI-DAEMON 3+"
    • "ANTI-DAEMON 4+"

Fixed

  • Fixed a recent regression which introduced a weird interaction between devastating wounds and feel no pain.

Credits

  • Bug reporting: u/Zestyclose_Ad_1013
0.62.0
2024/02/27

Features

  • "Attack context" checkboxes have been moved out of the "Global modifiers" panel and into their own new panel. This not only keeps things distinct and tidier but now you can see at a glance, how many attack context options you have enabled, even when the panel is closed.
  • Added a "Devastating & mortal wounds" option to the "Wound type" condition. You can now model "Feel no pain" profile abilities that only apply to devastating & mortal wounds.
  • Added the following preset profile ability:
    • "Feel no pain 4+ (devastating & mortal wounds only)"
  • The "Attacker charged" condition can now be paired with the "Generate extras" effect and vice versa.
  • Summary & weapon results tabs now persist your selected active tab for up to 5 minutes between simulations and site visits where possible. After 5 minutes they will revert to showing the first tab as active.
  • Performance improvements.

Fixed

  • Fixed a niche bug where it could become possible to not access the global modifiers.

Credits

  • Bug reporting: Malifus
0.61.2
2024/02/21

Fixed

  • Fixed a regression that prevented the "Critical hit/wound" condition from ever triggering a damage-based effect.
0.61.1
2024/01/19

Fixed

  • Fixed a regression that prevented users from cloning certain profiles.

Credits

  • Bug reporting: u/wait_icanfixthis
0.61.0
2024/01/16

Features

  • Switched from using Firebase to Supabase (used as a simple backend for bug reporting). Privacy policy updated accordingly.
  • Performance improvements.
  • Tackled more technical debt in prep for planned 2024 features.

Fixed

  • Modifier description when using "Only" override type ("Override requirements" effect).
  • Defender profile abilities table should not be sortable.
  • Missing input validation on "Attack characteristic" condition.
0.60.1
2023/12/24

Fixed

  • Fixed an issue preventing sims from running on weapon selection for certain profiles.

Credits

  • Bug reporting: B-iggy
0.60.0
2023/12/20

Summary

Ho ho ho... QOL updates & support for psychic gubbins (result of a recent feature poll on Discord).

Features

  • Added "Psychic" option to the "Special" modifier effect.
  • Added "Psychic attack" modifier condition.
  • "Invulnerable save" & "Feel no pain" effects are now available to global modifiers.
  • The "Generate extras" effect is now available when using the "Remained stationary" condition.
  • The "Special" effect is now available when using the "Remained stationary" or "Attack type" condition.
  • Added the following preset weapon abilities:
    • "Psychic" (alias: "PSYCHIC")
    • "Hit roll of 5+ (unmodified) : critical hit"
  • Added the following preset profile abilities:
    • "Feel no pain 4+ (if attack is psychic)"
    • "Feel no pain 5+ (if attack is psychic)"
    • "Re-roll all damage results of 1 (if attacker)"
    • "Hit roll of 5+ (unmodified) : critical hit (if attacker)"
  • Added the following preset global modifiers:
    • "Feel no pain 4+ (if attack is psychic)"
    • "Feel no pain 5+ (if attack is psychic)"
    • "Re-roll all damage results of 1"
    • "4++ invuln save"
  • Attacker & defender selection inputs are now buttons and not text inputs. This saves a bunch of screen space, especially on mobile.
  • Hide “Damage not ignored” column & tab when there's no "Feel no pain" in the mix.
  • Avoid modifier descriptions where "if attacker/defender" is mentioned more than once in sequence.
  • Global modifiers are now updated & preserved when UnitCrunch updates your saved data as part of a new release (starts when updating to >= 0.60.0 from >= 0.59.0).
  • Increase "Save" characteristic maximum value to 8.

Fixed

  • Profiles with ranged & melee weapons could show an empty "Abilities" column.
  • Ensure modifier aliases can always be re-enabled after being un-checked.
  • "Wound type" condition would have no effect on the modifier description if used. Re-saving any affected modifiers should fix the modifier description.

Credits

  • Testing: korzxd
0.59.2
2023/12/19

Fixed

  • Fixed an issue that was preventing a user from updating from v0.58.2 to v0.59.1. Thanks for the debug data, whoever you are!
0.59.1
2023/12/11

Features

  • Added new FAQs:
    • "Can I import data from another app/website into UnitCrunch?"
    • "Is UnitCrunch "open source" software?"
    • "Why are there 3 different types of modifier available (global modifiers, profile abilities & weapon abilities)?"
  • Add link to issue tracker from Feedback page.

Fixed

  • Fixed an issue where custom made re-roll modifiers would fail to record what "Single" or "Range" value(s) they should re-roll when saving the modifier. This will have only affected custom-made modifiers created after the release of v0.59.0. Any affected modifiers can now be fixed by editing the modifier, specifying the correct value(s) & re-saving (modifiers will now save as they should).

Credits

  • Bug reporting: teddyzetterlund
0.59.0
2023/12/06

Summary

Huge "technical debt" update with some minor public-facing improvements here & there. Merry Christmas.

Features

  • Major version upgrades for some key software dependencies. This was A LOT of work and was essential for continued development.
  • Faster simulations.
  • Improved UI performance
  • Improved display & behaviour of tables on mobile.
  • Replaced ReCAPTCHA with hCaptcha (more privacy-friendly).
  • Replaced Google Analytics with Fathom (more privacy-friendly).
  • Removed cookie consent popup as it's no longer necessary now that we're using Fathom.
  • Simpler privacy policy.

Fixed

  • Return keyboard focus to "Add Weapon" / "Add profile" modal after closing "* ability" modal.

Credits

  • Testing: korzxd
  • Bug reporting: u/wredcoll
0.58.3
2023/11/15

Fixed

  • Fixed an issue with BLAST denying the benefits of RAPID FIRE if both abilities are used on the same weapon.

Credits

  • Bug reporting: u/abcismasta
0.58.2
2023/10/03

Fixed

  • Fixed an issue whereby "Critical hit/wound" conditions would always pass when paired with the "Modify (relative)" effect set to modify "Damage".

Credits

  • Bug reporting: tordks
0.58.1
2023/09/26

Fixed

  • The "DEVASTATING WOUNDS" modifier alias is now applied to profile abilities again as you'd expect.
  • The preset profile ability for "DEVASTATING WOUNDS" now uses the effect "Disable save (inc. invuln)" instead of the "Mortal wounds" effect.
  • Ensure that "DEVASTATING WOUNDS" profile abilities updated in v0.58.0 use the "Profile role" condition and ensure it's set to "Attacker".

Credits

  • Bug reporting: korzxd
0.58.0
2023/09/08

Summary

Support for recent changes to the 40k "DEVASTATING WOUNDS" rule. Your existing weapon abilities will be automatically updated.

Features

  • Renamed the "Disable ability" modifier effect to "Disable mechanic".
  • "Disable mechanic" modifier effect can now be paired with the "Critical hit/wound" modifier condition.
  • Added new option to the modifier effect "Disable mechanic": "Disable save (inc. invuln)".
  • The reserved modifier alias "DEVASTATING WOUNDS" is now applied to a modifier with the following generated description: "Critical wound : disable save (inc. invuln)".
  • Updated the preset global modifier & weapon ability for "DEVASTATING WOUNDS" to use the new effect "Disable save (inc. invuln)" instead of the "Mortal wounds" effect.
  • Automatically update any existing weapon abilities that use the "DEVASTATING WOUNDS" modifier alias to use the new effect "Disable save (inc. invuln)" instead of the "Mortal wounds" effect.
0.57.2
2023/08/18

Features

  • Max points increased to 4000.
  • Max toughness increased to 16.
  • "Wound type" condition now only available to profile abilities. It could only be paired with the "Feel no pain" effect which is also only available to profile abilities.

Fixed

  • Corrected effect/condition sort order in effect/condition picker.
0.57.1
2023/08/07

Fixed

  • Fixed a regression that crept in via v0.56.1 & v0.57.0. Combining global modifiers & profile abilities could potentially lead to unexpected results - as if one or more of those modifiers/abilities was having no effect.

Credits

  • Bug reporting: u/Aleser
0.57.0
2023/08/04

Features

  • Added support for re-rolling save rolls and invuln save rolls. This is only available to global modifiers & profile abilities. As such, it is currently not possible to only re-roll a single saving throw (UnitCrunch has no way of knowing which saving throw you'd prefer to re-roll).
  • Added the following preset profile abilities:
    • "Re-roll all save roll results of 1 (if defender)"
    • "Re-roll all invuln save roll results of 1 (if defender)"
  • Added the following preset global modifiers:
    • "Re-roll all save roll results of 1"
    • "Re-roll all invuln save roll results of 1"
    • "Increase attacks by 1 (if attacker charged)"
  • Profile abilities now default to being enabled when added to a profile.
  • Added support for the following keywords:
    • "FORTIFICATION"
    • "TYRANIDS"
0.56.1
2023/07/31

Fixed

  • Modifiers with the reserved alias "DEVASTATING WOUNDS" no longer stack.
  • Modifiers with a reserved alias beginning with "SUSTAINED HITS" no longer stack. If multiple are used in one sim, only the single "best" will be applied. "Best" in this case is determined by the highest potential effect outcome. E.g. "SUSTAINED HITS D3" has a higher potential outcome (3) than "SUSTAINED HITS 2" (2).

Credits

  • Bug reporting: u/whydoyouonlylie
0.56.0
2023/07/21

Features

  • Profile abilities now offer better support for reserved aliases (e.g. USRs).
  • The "Critical hit/wound" condition can now be paired with the "Modify (relative)" effect. The effect's "Application" options are filtered according to how you have the condition configured to prevent nonsense combinations.
  • "Special" effects can now be used when creating profile abilities.
  • Added the following preset profile abilities:
    • "Critical wound : improve AP by 1 (if attacker)"
    • "Critical hit : always wound (if attacker)" - LETHAL HITS
    • "Critical wound : mortal wounds equal to weapon damage (attack sequence ends) (if attacker)" - DEVASTATING WOUNDS
    • "Ignore cover (if attacker)" - IGNORES COVER
    • "Critical hit : 1 extra hit (if attacker)" - SUSTAINED HITS 1
  • Added the following preset global modifiers:
    • "DEVASTATING WOUNDS"
  • Added "SWARM" as a supported keyword.
  • You can now optionally add your Discord username to the form at /send-debug-data when submitting bug reports.
  • Hide "Remove all" button when there are no modifiers/abilities to remove.
0.55.4
2023/07/18

Fixed

  • Melee attacks weren't receiving the benefits of abilities that increase the number of melee attacks.

Credits

  • Bug reporting: Disqordant
0.55.3
2023/07/17

Fixed

  • Toggling an attack context checkbox such as "Defender in cover" had no effect if the attacker was ad hoc.
  • Preset modifiers/abilities are now accessed via clicking a button rather than a text input in order to avoid issues with tab navigation.
  • Fix 2 issues with 0.53.0 & 0.54.0 migrations when force-updating local data.
  • Removed "Force update local data" button as it's now probably causing more harm than good.

Credits

  • Bug reporting: u/External-Garbage5235, u/wredcoll
0.55.2
2023/07/09

Fixed

  • Re-rolling failed results was not observing the adjusted criteria for success imposed by an "ANTI" ability. Under certain conditions ths would have resulted in some successes being re-rolled to be failures.

Credits

  • Bug reporting: u/sumregulaguy
0.55.1
2023/07/06

Fixed

  • Altering the rule for crit hits or wounds to trigger on every successful roll was having no effect.

Credits

  • Bug reporting: teddy
0.55.0
2023/06/29

Features

  • Maximum abilities per profile increased from 4 to 6.
  • Maximum weapon abilities per weapon increased from 4 to 6.
  • Added "LETHAL HITS" as a preset global modifier.
  • Consolidate modifiers/options for re-rolling "all"/"failed":
    • Removed option to re-roll "Failed result(s)".
    • Renamed re-roll option "Possible failure(s)" to "All possible failures".
    • Automatically updated all existing re-roll "all" modifiers to use the "All possible failures" option.
    • Removed FAQ: "What's the difference between re-rolling "failed" and "possible failed" results?"
  • Show explanation when "Re-roll limit" is disabled (re-roll effect).
  • Added support for the WALKER keyword.
  • Added the following preset weapon abilities:
    • ANTI-WALKER 2+
    • ANTI-WALKER 3+
    • ANTI-WALKER 4+
  • Added the following preset profile abilities:
    • "-1 to wound roll (if defender)"
  • Added the following preset global modifiers:
    • "Hit roll of 5+ (unmodified) : critical hit"
    • "Wound roll of 5+ (unmodified) : critical wound"
  • "Attacker charged" condition can now be paired with the following effects: "Increase weapon attacks", "Override requirements", "Re-roll".
  • "Increase weapon attacks" effect is now available to global modifiers & profile abilities (as well as weapon abilities).

Fixed

  • If a profile ability has an active alias it should be displayed in the profile abilities table when selected as the current attacker or defender.
0.54.7
2023/06/26

Fixed

  • Fixed a bug where a TWIN-LINKED weapon with a strength greater than or equal to the defender's toughness AND +1 to wound would lead to wound rolls of 1 not being re-rolled.

Credits

  • Bug reporting: Anonymous user that sent debug data. Thank you!
0.54.6
2023/06/24

Summary

This release makes a change to how UnitCrunch behaves based on how the community apparently plays a specific rules interaction and that's fine. I weathered some online abuse while trying to get to the bottom of this rules interaction, that's not fine. This community really sucks sometimes. I know it's "rules lawyering", I know it's "nit picky", but this is a MathHammer tool - it's in my interest and yours that it's accurate where reasonably possible. I'm not going to apologise for that.

Fixed

  • DEVASTATING WOUNDS now uses the attack's modified damage rather than the unmodified damage when calculating the number of mortal wounds. The rules are a bit fuzzy here but I believe that this is the intention at least.
  • Changed the "Mortal wounds" effect checkbox to now read "Match attack's modified 'Damage' characteristic" (despite DEVASTATING WOUNDS using the weapon's damage characteristic, which can't be modified - whatever).
0.54.5
2023/06/19

Fixed

  • Regression: Ensure confirmed changes to an ad hoc defender triggers a new simulation (if auto re-run is selected).

Credits

  • Bug reporting: u/Phuzzyhead
0.54.4
2023/06/16

Fixed

  • Weapons with the TORRENT ability would not auto-hit if the BS characteristic had no value.
0.54.3
2023/06/16

Fixed

  • Benefit of cover was sometimes still applied for Melee attacks if switching back and forth between Ranged & Melee attack types.
0.54.2
2023/06/11

Fixed

  • Ensure modifiers that trigger off of crit hits/wounds and end the attack sequence trigger as expected
0.54.1
2023/06/10

Fixed

  • Toughness could not be set above 10 when editing a profile with "Inputs" set to "All".
0.54.0
2023/06/10

Summary

Initial support for Warhammer 40k 10th Edition. Please consider supporting the project via the new Patreon.

Features

  • Removed strength characteristic from profiles (it's still available on weapons).
  • Weapon strength characteristic no longer accepts relative values (e.g. "User", "+2" etc).
  • All weapon strength values have been automatically updated. Relative values have been resolved where needed (e.g. a profile with strength 4 using a weapon with strength "+2" becomes a weapon with strength 6).
  • Removed BS & WS characteristic from profiles.
  • Added BS/WS characteristic to weapons (depending on weapon type).
  • All weapon BS/WS values have been automatically updated (WS values copied from profiles to melee weapons and BS values copied from profiles to ranged weapons).
  • Weapon BS/WS inputs are now optional and will display "N/A" if left blank.
  • A weapon with no BS/WS value will not roll to hit (and so will not hit at all) unless it has an ability that gets around this (e.g. it can automatically hit).
  • When creating a new weapon, UC will set the default weapon BS/WS value to a sensible default based on that profile's existing weapons. This should help reduce the amount of manual input required when creating a profile with multiple weapons that all use the same BS/WS.
  • The "Count per unit" input is now available to melee weapons.
  • "Count per unit" now defaults to a value of 1 on new weapons.
  • "Ignore" profile characteristic is now known as "Feel no pain" / "FNP". Profiles have been automatically updated.
  • "Ignore wounds" ability effect is now known as "Feel no pain". Profile abilities have been automatically updated
  • Removed "DSv: melee" & "DSv: ranged" characteristic from profiles. Any existing values have been migrated to "Save" & "Invuln" characteristics.
  • Removed "Profile template" input from profile edit form.
  • "Melee" & "Ranged" are now the only 2 weapon types available. All weapons have been automatically updated to use one of these 2 weapon types.
  • Added modifier effect: "Increase weapon attacks". This is only available to weapon abilities.
  • All weapons that used either the "Dakka" or "Rapid fire" legacy weapon types have been automatically updated to use the new "Increase weapon attacks" effect when within half range.
  • Certain weapon abilities now have an "alias" as well as a description e.g. "RAPID FIRE 1". Some parts of the UI will display the alias instead of the description, others will display both.
  • Need "Re-roll wounds" but don't want it to display as "TWIN-LINKED"? You can choose whether an ability uses the suggested alias or not (checkbox to the right of the suggested alias when editing an ability).
  • Added new modifier condition: "Critical hit/wound" which requires a hit or wound to be critical for an effect to be applied.
  • The "Override requirements" modifier effect now has a "Critical" option to specify when the resulting hit/wound should be marked as "Critical". This replaces the "Treat as unmodified wound roll of 6" option (legacy modifiers have been automatically updated to use the new "Critical" option).
  • You can now specify the following for ranged & melee attacks (look for the new checkboxes in the global modifiers panel):
    • Ranged: Whether the attacker has remained stationary.
    • Ranged: Whether the defender is in cover.
    • Melee: Whether the attacker has charged.
  • Defenders in cover will get +1 to their armour save roll. Units with a save of 3+ or better won't receive this benefit against AP0 attacks.
  • Added new "Ignore cover" option to the "Special" modifier effect (which is still locked to weapon abilities).
  • Added new modifier condition: "Remained stationary" which requires the attacker to have remained stationary (or not) for an effect to be applied.
  • Added new modifier condition: "Attacker charged" which requires the attacker to have charged (or not) for an effect to be applied.
  • "Blast" modifier effect has been updated to instead add 1 attack for each 5 models in the defender unit.
  • Saving throws can not be improved by more than 1 (UnitCrunch will cap the improvement at a value of 1 if needed).
  • "Modify (relative)" modifier effect has been updated to offer more flexibility:
    • Operator & value now handled via 2 separate inputs.
    • Value now supports dice notation.
    • All existing modifier effects & preset modifier effects have been automatically updated.
  • Added preset weapon abilities with the following aliases (variations in square brackets):
    • ANTI-CHARACTER [2/3/4]+
    • ANTI-FLY [2/3/4]+
    • ANTI-INFANTRY [2/3/4]+
    • ANTI-MONSTER [2/3/4]+
    • ANTI-PSYKER [2/3/4]+
    • ANTI-VEHICLE [2/3/4]+
    • BLAST
    • CONVERSION
    • DEVASTATING WOUNDS
    • HEAVY
    • IGNORES COVER
    • LANCE
    • LETHAL HITS
    • MELTA [2/D3/4/6]
    • RAPID FIRE [1/2/3/4/D6+3]
    • SUSTAINED HITS [1/2/D3]
    • TORRENT
    • TWIN LINKED
  • Added preset profile abilities with the following aliases:
    • STEALTH
  • Added preset global modifiers with the following aliases:
    • STEALTH
  • You can no longer add preset weapons (for now). This is mainly down to "Close combat weapon" no longer being a consistent thing.
  • More stable update & profile migrations system.
  • Tweaked changelog entry format.
  • Tweaked demo profiles.

Fixed

  • Adding a melee weapon to a ranged attacker didn't give it the “Attacker: melee” role (which affects where a profile is eligible to be used).
  • Adding a ranged weapon to a melee attacker didn't give it the “Attacker: ranged” role (which affects where a profile is eligible to be used).

Credits

  • Testing: CrinkleBat, Durthu, Grimfang, Llama, Serrato
0.53.12
2023/06/04

Fixed

  • Do not permit importing from files that were created with a newer version of UnitCrunch.
0.53.11
2023/05/04

Fixed

  • Inputs that support dice notation now show a dice icon once again.
0.53.10
2023/04/16

Features

  • Toughness characteristic can be set up to 14.
0.53.9
2023/04/11

Fixed

  • Display bug when editing a "Mortal wounds" modifier effect.
  • Prevent "null" from appearing in modifier description when "Generate extras" effect is selected but incomplete.
0.53.8
2023/04/05

Features

  • Toughness characteristic can be set up to 12.

Fixed

  • Very minor display issue when selecting profiles for export or deletion.
0.53.7
2023/03/22

Fixed

  • Fixed a bug where certain input labels were just appearing as "label". Hats off to the hardcore among you that continued to use UC as you knew what the input labels should read anyway!

Credits

  • Bug report: Plutonium, sasquatchted, V1carium
0.53.6
2023/03/21

Fixed

  • Layout styling bug where summary charts would display incorrectly after browser resize.
0.53.5
2023/03/20

Features

  • Initial page load is now faster.
  • Increased simulation speed thanks to a new dice roller.
0.53.4
2023/03/15

Fixed

  • "Ignore wounds" was not being applied correctly when added via a profile ability (unless limited to just mortal wounds via a condition). This did not affect the "Ignore" profile characteristic.
  • Stacked "Ignore wounds" effects and "Ignore" profile characteristics are now handled correctly - the best value available is now used rather than the last in the stack.

Credits

  • Bug report: Sheenaan
0.53.3
2023/02/27

Fixed

  • Fixed an edge case that was causing the automatic update to v0.53.x to fail. Thanks for submitting the update error report, whoever you are!
0.53.2
2023/02/25

Fixed

  • Regression introduced in version 0.53.0 (I told you there would be bugs!):

    Creation of subsequent modifiers/abilities, within the same scope (global/profile/weapon), that use the same condition type would overwrite previous condition data with the last condition data where the condition type was the same (and this would not be reflected in the generated modifier description).

    E.g. 2 weapon abilities created on the same weapon that both use the "Attack step roll" condition: the 2nd ability would overwrite the first ability's condition with its own condition data (but the ability description would not reflect this). Editing the overwritten ability would reveal the incorrect condition data. This is fairly niche but the effects could potentially be quite misleading in terms of simulation results. Apologies for any confusion caused.

    Unfortunately, this is difficult to automatically correct where it has occurred. You can manually check, correct and re-save any modifiers that may have been affected by this and the correct version will persist. Any newly created modifiers going forward will behave as expected.

    Mitigations:

    • Preset modifiers were not affected.
    • Modifiers created before the release of version 0.53.0 (2023/02/17) were not affected.

    HUGE thanks to u/MB_John_117_NtK for the bug report that lead to this discovery.

0.53.1
2023/02/20

Fixed

  • Ad hoc weapon inputs now properly handle "back to front" dice notation (e.g. "3+D3" instead of "D3+3"). Thanks to u/FR3NDZEL for the bug report.
  • Dice notation is now properly validated when a number that is added to the dice roll contains a zero (e.g. "D6+10").
0.53.0
2023/02/17

Summary

The next evolution of the modifier/ability system. The new system really opens up what's possible and I aim to deliver new modifier conditions & effects off the back of this work ASAP (including some often requested features).

My word, this release took a long time. I've changed a lot of code. There are bound to be some regressions & bugs. If you find something, please tell me by posting at r/UnitCrunch.

Features

Fixed

Credits

Features

0.50.0
2022/10/25

Summary

"Ad hoc" input mode for faster MathHammer data entry.

Features

  • "Ad hoc" input option for attacker and/or defender profiles. Ad hoc input offers a simpler, more streamlined UI for entering profile characteristics for those "I'll just quickly check" MathHammer queries. The standard method of profile selection/entry is still available via the "Profile" option.
  • Weapon names are randomly generated when adding weapons to an ad hoc profile (for the LOLs to save time entering data but still give you a unique identifier per weapon when reviewing weapon results). Generated weapon names can be overwritten with your own weapon names if you wish. Ad hoc attackers are limited to a maximum of 5 weapons.
  • Ad hoc profiles can be mixed & matched with regular profiles to provide full flexibility.
  • Your latest ad hoc profiles (attacker & defender) are remembered between visits to UnitCrunch.com and when switching between "Ad hoc" & "Profile" input types.
  • Added the following new preset profile ability:
    • "Only hit on a 4+ (unmodified) (if defender)"
  • Improved feedback when there is not enough data to perform a simulation. UnitCrunch now tells you what is stopping it from being able to run a simulation so that you can easily correct it.
  • Moved "Attack type" selector into "Attacker" UI panel (only visible/relevant when "Profile" input type is selected).
0.49.0
2022/09/27

Summary

Various squat mechanics now supported. Rollover damage, effects that trigger at over half range, grav melee weapons, re-roll denial etc.

Features

  • Added new conditional effect "Excess damage not lost": Excess damage is allocated to the the defender unit until it is either used up or the defender unit is slain.
  • Added the following new options for profile abilities of type "Special":
    • "Deny re-roll damage"
    • "Deny re-roll hits"
    • "Deny re-roll wounds"
  • Added the following new preset profile abilities:
    • "Deny re-roll damage (if defender)"
    • "Deny re-roll hits (if defender)"
    • "Deny re-roll wounds (if defender)"
  • Added "Over half range" option to range condition.
  • Added the following new preset weapon abilities:
    • "Successful hit roll : 1 extra hit (over half range)"
    • "Wound roll of 6 (unmodified) : excess damage not lost"
  • Added a "Regular" weapon type. This just acts as a generic option to represent weapon types that don't have any special rules/effects.
  • "Grav: *" modifiers now work on melee weapons.
  • "Range" condition is now available to global modifiers & profile abilities.
  • "Range" is now available as an optional, additional modifier condition.
  • Form actions ("Save", "Cancel" etc) are now always visible when displayed in a dialogue window, no matter where you have scrolled to within the dialogue window.
  • Damage re-roll modifiers are now available outside of weapon abilities. Just be aware that when applied in this way, UnitCrunch will apply the re-roll to every selected attacker weapon.
0.48.2
2022/09/12

Features

  • Something (but you have to guess what it is).
0.48.1
2022/09/11

Fixed

  • All profile weapons were still being marked as selected when importing a file that was exported from v0.48.0. The import process has now been fixed.
0.48.0
2022/09/09

Summary

Added "Improve damage" conditional effect. Lots of improvements around weapon selection. Catch errors on a wonky update and offer useful options.

Features

  • Added an "Improve damage" effect option to "Conditional effect" modifiers/abilities.
  • Added the following new preset profile abilities:
    • "Wound roll of 6 (unmodified) : improve damage by 1 (if attacker) (melee only)"
  • Added a new system for catching any errors when trying to update local data. This offers the user helpful options rather than just getting stuck. Options include:
    • Send an error report to the developer (very helpful, please do this).
    • Download a backup of your profile data to file (this is a copy of the data before any updates are applied).
    • Reset UnitCrunch to get unstuck and crack on with some MathHammer (wipes local data including profiles - maybe download a backup first).
  • Exported profiles will now include which weapons a profile has selected. This information will be restored when importing these profiles.
  • Cloning a profile will now clone which weapons the source profile had selected.
  • Weapons are now selected by default when added to a profile.
  • If an attacker profile only has a single weapon compatible with the current attack type (melee/ranged) and that weapon is unselected, it will now be automatically selected.
  • Improved centralised "toast" notifications system (triggers on successful operations such as loading profiles etc).
  • All profile weapons will be marked as selected immediately after upgrading or after importing a file that was exported from a version of UnitCrunch before v0.48.0. This is expected and should only happen in these 2 circumstances.

Fixed

  • It was previously possible under very specific circumstances, to end up with a single unselected weapon on an attacker profile, therefore preventing the simulation from running (and without being able to select the weapon unless jumping through some obscure hoops). Steps have been taken to prevent this edge case from happening.
0.47.6
2022/09/08

Fixed

  • Fixed an error in the preset profile ability "Strength is less than 8 : reduce damage by 1 (if defender)" that caused it to not have any effect. If you created the same ability from scratch it would work fine. Any use of the erroneous preset ability has been automatically fixed. Thanks to u/Eastern-Locksmith837 for the bug report.
0.47.5
2022/08/30

Summary

Features from v0.47.3 return only without any naughty regressions thanks to improved automated tests.

Features

  • See improvements from v0.47.3.
  • Improved validation of inputs that support dice notation.
  • Stability improvements.
0.47.4
2022/08/30

Fixed

  • Reverted changes made in v0.47.3 due to a regression that was introduced. Apologies! These changes will return once the regression is resolved and more robust automated tests are in place. Thanks to u/Eastern-Locksmith837 for bringing this to my attention.
0.47.3
2022/08/29

Features

  • Unconventional dice notation "orientation" (e.g. "3+D3" - integer first) is now accepted in inputs that support dice notation as not everyone is aware of the convention. Unconventional notation will be transformed into conventional notation on successful submission of the current form.
  • Dice notation is now automatically converted to uppercase on successful submission of the current form.
0.47.2
2022/08/29

Fixed

  • Fixed a regression in dice notation input validation that was allowing certain invalid notation to still be saved and used. Thanks to u/Eastern-Locksmith837 for bringing this to my attention.
0.47.1
2022/08/26

Fixed

  • Re-rolling a hit/wound roll when a weapon automatically hits/wounds would throw an error and the UI would hang. Big thanks to u/Another_eve_account and u/dukat_dindu_nuthin for reporting issues that lead to this fix.
0.47.0
2022/08/24

Summary

First class support for Daemon saves. Ranged weapons can now use relative strength values.

Features

  • A "Profile template" input is now available when editing profiles using the "All" and "Defender" input filters. Options include "Standard" & "Daemon". Selecting the "Daemon" template will swap out the "Save" & "Invuln" inputs for "DSv: melee" & "DSv: ranged" inputs.
  • Display "DSv" characteristic for a profile selected as the current defender when relevant.
  • Added Daemon save functionality to the simulated attack sequence.
  • Ranged weapons can now express their "Strength" characteristic as relative to the unit's "Strength" characteristic (e.g. Strength: "User, "+2", "x2"). This was previously only available to melee weapons.
  • A "Strength" input is now available when editing a profile using the "Attacker: Ranged" input filter.
  • A unit's "Strength" characteristic is now only required if it has any weapons that depend on it.
  • Improved input validation for a profile's "Strength" characteristic.
  • To avoid redundancy, "winsorization" notes and UI options are only displayed for summary results that actually use winsorization to calculate mean/median averages (i.e. results where overkill occurs against multi-model units or where excess damage occurs against single model units).
  • Characteristics that indicate requiring a roll value or higher are now displayed with a "+" suffix on the currently selected attacker/defender profile.
  • Stability improvements.
0.46.0
2022/08/16

Summary

"Range" modifier condition, re-worked melta, QOL updates & bugfixes etc.

Features

  • Added "Range" as an option under "Required condition" ("Conditional effect" weapon abilities only). This is now how you model "melta-like" abilities. You now have full control over the buffed damage value (with support for dice notation).
  • Added the following new preset weapon abilities:
    • "Within half range : set damage to D6+2"
    • "Within half range : set damage to D6+4"
  • Added the following new preset profile abilities:
    • "Deny invuln (if attacker)"
  • Profile abilities now have access to the "Special" modifier type (previously only available to weapon abilities). Currently, this only grants access to the "Deny invuln" option (turns out this is relevant to more than just individual weapons).
  • More compact chart tooltips.
  • Modifier effect value will default to the min or max if one is available when setting for the first time.
  • Copy tweaks.
  • Removed all melta variants from "Weapon ability > Special > Options".
  • Removed the following preset weapon abilities:
    • "Melta: D6+2"
    • "Melta: D6+4"
    • "Melta: legacy"
  • Automatically updated any existing use of "Melta: *" weapon abilities to use the new equivalents. Any occurrences of "Melta: legacy" have been migrated to "Within half range : set damage to D6+2" as a best guess.

Fixed

  • The median wasn't always successfully calculated at very low simulation counts (e.g. <5).
  • The cumulative frequency of the median isn't always available at very low simulation counts (e.g. <5). In these cases it's no longer displayed in summarised results.
  • Adding an optional condition and then removing it made it not re-selectable until another optional condition had been selected.
  • "0D6" and "0D3" is no longer considered valid dice notation (it's nonsense).
  • "1D6" and "1D3" is no longer considered valid dice notation (it's redundant).
  • "+0" is no longer considered a valid suffix in dice notation (it's redundant).
0.45.1
2022/07/27

Features

  • Added the following new preset weapon abilities:
    • "Always wound on a 4+ (unmodified) (excludes VEHICLE, TITANIC)"
    • "Always wound on a 2+ (unmodified) (excludes VEHICLE, TITANIC)"
  • Increased the maximum number of weapons a profile can have from 10 to 15.
    Note: This increased maximum is intended to make alternative wargear available in a convenient way. Please remember that selecting a weapon as active (checked) means that it will be used in a single phase (along with any other active weapons, in the same phase).

Fixed

  • Fixed a regression in how points efficiency is calculated. Big thanks to u/PlutoniumPa for reporting this.
0.45.0
2022/07/26

Summary

Big improvements to results reporting which now offers mean, median & modal averages as well as charts that visualise wasted damage & overkill. Improved results summary when simulating attacks vs single-model defender profiles.

Features

  • Added "Averages" tab to summarised results. This shows the mean, median & mode (plus the median & mode's cumulative frequencies).
  • Added an average type selector to the "Weapon results" tab, use this to adjust what average types are displayed in the weapon results table. This preference will be stored between visits.
  • Added the option to toggle whether summary charts display "winsorized" data or not (more on this below).
  • Charts no longer show winsorized data by default (results above the defender wounds/model count are no longer combined when visualising data). This helps show overkill & wasted damage as well as give a better idea of the distribution curve. Note that winsorized data is still used to calculate averages for overall results.
  • Results above the defender's wounds or model count (depends on model count) are now shown as more transparent in summary charts to help emphasise overkill or wasted damage (as well as the point at which winsorization begins).
  • The summarised "Expected result" now uses the median average rather than the modal average (the mode is still available via the "Averages" tab).
  • The "Wounds remaining" summary has been replaced with a "Final damage" summary and uses a chart to visualise data.
  • Individual results will no longer display a single "0" decimal value.
  • "Chance of slaying the defender" is only shown if it's different from the chance of the expected result (saves on possible duplicated, redundant reporting).
  • Clearer notes to aid interpretation of results.
  • Adjusted chart heights.
  • UI & copy tweaks.
  • "Most frequent results" tab renamed to "Weapon results".
  • "Models slain" & "Wounds remaining" tabs have been removed.
  • Previous sim results are now hidden when a new sim is set running.
  • Tweaked demo profiles and the simulation that UnitCrunch initialises with.

Fixed

  • Defender points efficiency would display "Infinity%" when attacker points efficiency was 0.
0.44.1
2022/07/16

Fixed

  • Defense modifiers that use "Override irrespective of attack modifiers" should not win out over "Always" attack modifiers. The former generally apply to the hit/wound roll whereas the latter generally circumvent the hit/wound roll altogether. Thanks to u/noviusspikeiusOnly for spotting this.
0.44.0
2022/06/30

Summary

QOL updates after "dogfooding" my own app. Nothing too crazy here, just improvements that I made during recent personal use.

Features

  • "Modify (absolute)" is now available as a profile ability.
  • "Modify (absolute)" can now be used to modify "BS", "WS" & "Save roll" when used as a profile ability ("Damage" can still be modified when used as a weapon ability).
  • The "Damage" value input on Modify (absolute)" abilities now accepts dice notation.
  • Added the following new preset profile ability:
    • "Hit roll : -1 (if defender)"
  • Added the following new preset weapon abilities:
    • "Always wound on a 4+ (unmodified) (VEHICLE only)"
    • "Hit roll of 6 (unmodified) : 1 auto-wound (excludes VEHICLE)"
  • Improved input masking & validation on "Modify (absolute)" abilities.
  • Only show attacker weapon checkboxes if there's >1 weapon displayed.
  • Each profile's roles are now sorted alphabetically on the "Manage profiles" page.
  • "Manage profiles" > "Roles" column is no longer sortable (this never made much sense).
0.43.0
2022/06/14

Summary

Added points efficiency / ROI reporting. "Invulnerable save" and "Ignore wounds" are now available as configurable profile abilities (including conditions!).

Features

  • Points efficiency reporting for both attacker & defender (if points values are available for both profiles).
  • "Invulnerable save" profile ability type.
  • "Ignore wounds" profile ability type and accompanying "Wound type" condition.
  • Added the following new preset profile abilities:
    • "Invulnerable save : 4++"
    • "Invulnerable save : 5++"
    • "Invulnerable save : 5++ (ranged only)"
    • "Ignore mortal wounds : 4+++"
    • "Ignore mortal wounds : 5+++"
  • Charts: Align right y-axis "ticks" with left y-axis "ticks" by calculating which values are vertically nearest. Rounds displayed values of right y-axis "ticks" to the nearest integer to keep things concise.
  • Validation: Ensure "Roll" condition "Roll value" is between 2 & 6.
  • Stability improvements.
0.42.0
2022/05/25

Features

  • "Override requirements" is now available as a profile ability type.
  • Add "Grav: 2" & "Grav: 3" to the options under "Special" weapon abilities.
  • You can now specify whether auto-wound effects are to be treated as unmodified 6s or not when configuring a "Conditional effect" modifier. The default is to continue to treat auto-wounds as not having roll values.
  • Added the following new preset global modifiers:
    • "Hit roll of 6 (unmodified) : 1 auto-wound (treat as unmodified 6)"
  • Added the following new preset profile abilities:
    • "Only wound on a 3+ (unmodified) (irrespective of attack modifiers) (if defender)"
    • "Only wound on a 4+ (unmodified) (irrespective of attack modifiers) (if defender)"
  • Added the following new preset weapon abilities:
    • "Grav: 2"
    • "Grav: 3"
    • "Hit roll of 6 (unmodified) : 1 auto-wound (treat as unmodified 6)"
  • Renamed the "Grav" weapon ability to "Grav: D3" (and updated all related preset & custom abilities).
  • Warn users that have local storage disabled in their browser (UnitCrunch requires local storage to function).
  • Performance improvements.
0.41.1
2022/05/18

Fixed

  • Fixed a regression where modifiers that set damage to a different value based on a roll condition were not resetting the damage value for subsequent attacks from the same weapon (e.g. the damage value would get stuck at the adjusted value once set for that weapon). Many thanks to u/sixpointfivehd for spotting and reporting the issue.
0.41.0
2022/05/10

Summary

The modifier conditions system has been upgraded. It's now possible to build modifiers that evaluate an attack characteristic as a condition e.g. "Strength is less than 8 : reduce damage by 1".

Features

  • Modifier conditions are now chosen from a select list of options. Sometimes these appear as 2 select lists - one for required and one for optional.
  • The new "Conditional effect" modifier type offers 2 required conditions to choose from:
    • "Attack step roll": Offers the same functionality as the old "Roll for effect" modifier type (trigger an effect based on a roll condition).
    • "Attack characteristic": Build modifiers that trigger an effect by evaluating an attack characteristic.
  • The new "Attack characteristic" condition can evaluate the following characteristics at present: "AP", "Damage" & "Strength".
  • The new "Attack characteristic" condition can evaluate using "less than", "equal to" and "more than" operators.
  • The new "Attack characteristic" condition can evaluate a characteristic in various different states: "modified", "unmodified" and "pre-roll" (e.g. "D3" rather than 1, 2 or 3).
  • Added the following new preset profile abilities:
    • "Strength is less than 8 : reduce damage by 1 (if defender)"
    • "Damage (pre-roll) is equal to 1 : improve armour save by 1 (if defender)"
    • "AP is greater than -3 : set AP to 0 (if defender)"
    • "AP is equal to -2 : set AP to 0 (if defender)"
    • "AP is equal to -1 : set AP to 0 (if defender)"
  • Added the following new preset global modifiers:
    • "AP is greater than -3 : set AP to 0"
    • "AP is equal to -2 : set AP to 0"
    • "AP is equal to -1 : set AP to 0"
  • Some modifier conditions are pre-selected and cannot be removed e.g. "Profile role" when editing a profile ability.
  • Replaced "Roll for effect" modifier type with "Conditional effect".
  • Replaced "Set effect" modifier type with "Modify (absolute)."
  • Renamed "Relative modifier" modifier type to "Modify (relative)".
  • Renamed some inputs within the "Attack step roll" condition when compared to the old "Roll for effect" modifier type. Hopefully these should still be fairly self explanatory.
  • "Keywords (excludes/includes)" conditions have been moved to "Optional conditions".
  • "Attack type" profile ability condition has been moved to "Optional conditions".
  • Improved input validation.
  • Improved input masking.
0.40.4
2022/05/03

Fixed

  • Fixed an issue whereby a profile's selected weapons could appear duplicated in the simulation results under certain obscure conditions.
0.40.3
2022/04/28

Fixed

  • Fixed a regression whereby modifiers that trigger on a successful roll could still trigger if the roll was unsuccessful but the "Mortal wounds / Attack sequence ends" modifier checkbox had been checked. Big thanks to u/EcoWraith for reporting the issue that lead to this fix.
0.40.2
2022/04/28

Fixed

  • Fixed a regression whereby the form at /send-debug-data would not submit if using Chrome or a Chrome-like browser. Big thanks to u/EcoWraith for helping me track this down.
0.40.1
2022/04/18

Features

  • Added preset profile abilities:
    • "AP : degrade by 1 (if defender)",
    • "Hit roll of 6 (unmodified) : 1 auto-wound (ranged only) (if attacker)"
0.40.0
2022/04/10

Summary

Upgraded "Manage profiles" page to now support exporting & deleting selectable groups of profiles. Duplicate profiles can now be skipped on import.

Features

  • Profiles can be exported in user-selected groups ("Manage profiles page").
  • Profiles can be deleted in user-selected groups ("Manage profiles page").
  • Duplicate profiles can now be detected & skipped on import. Watch out for the new checkbox when doing an additive import. Duplicates are only detected by comparing profile names for now.
  • "Add to existing data" is now the default option when importing profiles.
  • Updated "Import" dialogue window to display information about incoming duplicate profiles when relevant.
  • UI improvements on the "Manage profiles" page.
0.39.4
2022/04/03

Fixed

  • Fixed a regression whereby keywords were not always added to the end of the text description for modifiers of type "Roll for effect" (these were always stored & used, this is just a display fix).
0.39.3
2022/04/02

Fixed

  • Generated hits can now trigger auto-wounds if the relevant modifiers/abilities are combined. Big thanks to u/Striky_ for raising this!
  • Generated hits/wounds are now considered "successful" for the purposes of stacking other modifiers/abilities. Note that they will not represent a "rolled value" for the purposes of any other modifiers/abilities that trigger off of one.
0.39.2
2022/04/01

Fixed

  • Fixed regression whereby keywords were not being saved correctly when defined on custom modifiers/abilities. Custom modifiers/abilities that were created before this release may need to have the relevant keywords re-added to behave as expected. Big thanks to u/Striky_ for raising this!
0.39.1
2022/03/25

Features

  • Added preset global modifiers & weapon abilities:
    • "Hit roll of 6 (unmodified) : 1 auto-wound",
    • "Hit roll of 5+ (unmodified) : 1 auto-wound"

Fixed

  • Keywords are now added to the end of the description for "re-roll" modifiers & abilities (these were always stored & used, this is just a display fix).
  • Case inconsistency in profile ability descriptions.
0.39.0
2022/03/18

Summary

UnitCrunch now offers file-based export and import of profile data.

Features

  • Export profile data to file. This includes all profiles and any nested data that is stored with them such as profile abilities, weapons and weapon abilities.
  • Import profile data from file.
  • Option to replace all profile data on import OR add imported profile data to existing profile data (UnitCrunch does not currently remove any resulting duplicates, that's down to you).
  • Profile & modifier data is now stored more efficiently.
  • Added input mask to "AP" input when editing a weapon. Input will now only accept hyphens and digits and will automatically format the value for you.
  • "Manage profiles" table now remembers your preference for "Rows per page" (where the options have also been updated).
  • Improvements to dynamic modifier description as you edit a modifier. Description now makes better use of placeholders to indicate which parts of your modifier are incomplete.
  • Value of "Simulations to perform" will be reset to 10,000 on each visit. This helps prevent triggering slow and CPU intensive simulations on first page load which is most often undesirable. "Simulations to perform" will still persist as you navigate from page to page internally.
  • Accessibility: Removed scale limits from viewport meta in html head.
  • Performance improvements.

Fixed

  • Fixed issue with running updates on local data.
  • Adding a new weapon showed a default AP value of "-0".
0.38.2
2022/03/06

Fixed

  • Fixed validation issue with the form at /send-debug-data. Big thanks to u/Aekiel for raising this!
0.38.1
2022/03/05

Fixed

  • Reset modifier "Effect cap" & "Attack sequence ends" values if "Effect type" is no longer set to "Mortal wound(s)".
0.38.0
2022/03/02

Summary

Override modifiers should now work a lot better when stacked alongside other modifiers that affect the roll that they're overriding. Also added support for overriding "irrespective of attack modifiers".

Features

  • Added "Override irrespective of attack modifiers" checkbox on modifiers/abilities of type "Override requirements" (you'll need to have "Only (conditional)" selected as the "Override type").
  • Added 2 new preset global modifiers:
    • "Only wound on a 4+ (unmodified) (irrespective of attack modifiers)"
    • "Only wound on a 3+ (unmodified) (irrespective of attack modifiers)"
  • Added input masks to various form inputs (i.e. some form inputs will now prevent you from entering unwanted characters).
  • The "Only" option under "Override type" has been renamed to "Only (conditional)" for consistency & clarity ("Override requirements" modifier).
  • Improved input validation on all forms.
  • Improved simulation performance.
  • Removed "Reset" button from modifier/ability edit form.
  • Removed 2 preset global modifiers:
    • "Only wound on a 4+ (unmodified)"
    • "Only wound on a 3+ (unmodified)"

Fixed

  • Stacking other modifiers alongside override modifiers that are based around "Only" should now work as expected.
  • Prevent simulations from running if the value of "Simulations to perform" input is set to 0 and the page is then refreshed.
  • Modifiers that set AP would show an empty "Effect value" when edited.
0.37.2
2022/02/20

Fixed

  • Specifying "Attack sequence ends" on a modifier that triggered on a successful wound roll did not behave as expected. Big thanks to u/Rehwyn for raising this. Zero thanks to Storm Eunice for delaying this release by 2 days.
0.37.1
2022/02/12

Fixed

  • Specifying "Attack sequence ends" on a modifier that triggered on the hit roll had no impact on the results.
0.37.0
2022/02/10

Summary

Armour save modifiers and a better internal update system.

Features

  • New relative modifier application: "Armour save roll". You can now modify just the armour save roll as opposed to the "Save roll" (which is broader and includes invulnerable saves). Big thanks to u/Rehwyn for raising this.
  • Added a range of preset global modifiers & profile abilities that modify the armour save roll.
  • More efficient, performant, stable & fresher smelling update system.
  • UI & copy improvements around updating local data.
  • Global modifiers panel header count has been updated to display the number of active global modifiers as well as the total.
0.36.2
2022/02/03

Fixed

  • Regression introduced in v0.36.1: manually triggering new simulations by clicking the "Run simulations" button no longer worked.
0.36.1
2022/01/28

Fixed

  • Prevent simulations from automatically re-running when returning to the "Crunch" page from another page if nothing has changed and they don't need to be re-run.
  • Inaccuracy in FAQ regarding the definition of a "discrete probability distribution".
0.36.0
2022/01/25

Summary

Profile abilities!

Features

  • Added support for "profile abilities": modifiers that are scoped to individual profiles and activated whenever that profile is used in a simulation (so long as the ability is enabled & its requirements are met).
  • You can choose from preset profile abilities or create your own when editing a profile. Profile abilities are stored and recalled with the profile.
  • Profile abilities can be selected to be active/inactive when a profile is used on the "Crunch" page. These selections are stored and recalled with the profile.
  • Profile abilities require a "Profile role" value to be set ("Attacker" / "Defender"). This denotes what role the profile must be used in for the ability to be applied. This also informs what abilities are available under "Relevant profile abilities" when a profile is selected on the "Crunch" page.
  • Profile abilities have an optional "Attack type" value ("Melee" / "Ranged"). This limits an ability to only be available/applied for a certain attack type on the "Crunch" page.
  • A maximum of 4 profile abilities can be stored on each profile.
  • AP input is now capped at -6 to support even the silliest of weapon profiles (was capped at -5). Thanks to u/NAForgiven for pointing out the need for this.
  • Minor layout improvements on really wide viewports.
  • Stability improvements.
  • Reduced the maximum number of global modifiers that can be selected at once from 8 to 6 (in light of the addition of profile abilities).
  • Removed "Wound roll threshold" from modifier "Application" options as this mechanic has been handled by modifiers of type "Override requirements" for some time now.

Fixed

  • Fixed an issue whereby multiple weapons with exactly the same name couldn't be selected individually to be active/inactive on the attacker profile.
  • Fixed a bug whereby weapon abilities would not save as expected, especially if the per-weapon limit had been reached. Big thanks to u/NAForgiven for reporting this one.
0.35.6
2022/01/03

Fixed

  • Fixed an issue whereby modifiers that re-roll failed or "possible failed" rolls were not factoring in modifiers that can override the requirements for the roll's success (e.g. "Only wound on a 4+ (unmodified)"). This applied to both hit & wound rolls potentially. Many thanks to u/MB_John_117_NtK for reporting the issue at r/UnitCrunch.
0.35.5
2022/01/02

Summary

Happy New Year!

Features

  • Changes to the "Wounds remaining" summary results that only appear when using a single model defender profile. This no longer promotes the most frequent discrete result beside the heading and no longer visualises that result in a linear progress bar. This approach was an over-simplification of the data and could sometimes be confusing, especially when it appeared to contradict the "Models slain" summary (e.g. most frequent discrete result for "Wounds remaining" is 0 but it's cumulative result is still under 50%). To be clear, the accuracy of UnitCrunch has not changed here, just how much emphasis is/isn't placed on a particular result when summarising.
  • Intro message only loads for new user on Home & Manage Profiles pages.
  • Updated privacy policy.
0.35.4
2021/12/29

Summary

Some results could display "NaN" (Not a Number) as a result of accepting invalid and non-standard dice notation. This release should help avoid this by blocking and flagging more invalid and non-standard dice notation when it's added to inputs.

Features

  • Inputs that accept dice notation no longer permit using "-" as an operator.
  • Better validation feedback for inputs that accept dice notation.

Fixed

  • Inputs that accept dice notation no longer permit using operators without dice expressions. You cannot add integers to integers. E.g. "1+2" would be rejected. As this always equates to 3, just enter "3" instead.
  • Inputs that accept dice notation no longer permit dice expressions after an operator. E.g. "3+2D3" would be rejected but "2D3+3" would be accepted.
0.35.3
2021/12/24

Summary

Doing a release on Christmas Eve night like it ain't no thing.
New models = new lists = new MathHammer.
Merry Christmas.

Fixed

  • Reverted a change that was included in v0.35.2: "Ignore auto-passed hits when using the 'Override requirements' modifier type to always wound". It seems that auto-hits should be able to lead to auto-wounds when certain abilities are combined. Note that 'generated' hits are different and still don't trigger further effects (this was what I was getting mixed up with).
  • Similar to the previous change, UnitCrunch now allows auto-passed hits to trigger auto-wounds if said auto-wounds are triggered by a modifier of type 'Roll for effect' (e.g. 'Successful hit roll : 1 auto-wound'). Note that 'generated' hits are different and still don't trigger further effects.
  • Fixed a bunch of potential issues with the handling of multiple stacked modifiers of type "Override requirements". All of these were arguably edge cases which is likely why no bug reports have been raised. Either way, UnitCrunch now does a much better job of working out the correct outcome when a bunch of competing modifiers of this type are active at once.
0.35.2
2021/12/22

Features

  • Added preset global modifier: "Successful hit roll : 1 auto-wound".

Fixed

  • Ignore auto-passed & generated hits when using the "Override requirements" modifier type to always wound. NOTE: These were already ignored if you were using the "Roll for effect" modifier type to model a similar mechanic.
0.35.1
2021/12/09

Features

  • App header bar to no longer hide/show on scroll. In some cases it was vanishing and not coming back unless the page was refreshed. Can't be having that!

Fixed

  • Ensure that the "Attack sequence ends" checkbox only appears when the modifier currently being edited has an effect of "Mortal wound(s)" selected.
0.35.0
2021/12/07

Summary

Ho ho ho! Looks like you've been pretty well-behaved this year. As such, UnitCrunch 0.35.0 presents a bulging stocking of new features, mostly focussed on modifiers & abilities, plus the usual spread of general improvements here & there.

  • Toggle global modifiers!
  • Modifiers can now buff/debuff toughness.
  • Trigger effects on successful rolls.
  • More options for modifiers triggering mortal wounds (hit rolls, dice notation).

Features

  • Global modifiers can now be individually toggled on and off. This makes quick comparisons easier and should help with measuring the impact of each global modifier that is in play.
  • You can now modify toughness: "Toughness" has been added to the "Application" options when creating a modifier/ability of type "Relative modifier".
  • Modifier conditions can now test if a hit or wound roll is successful.
  • Hit rolls can now trigger mortal wounds: "Mortal wound(s)" is now a supported effect type for "Hit roll" conditions.
  • Modifiers & abilities that trigger mortal wounds can now express those mortal wounds as dice notation (e.g. "D3 mortal wounds").
  • Added preset global modifiers / weapon abilities:
    • "Hit roll of 6 (unmodified) : 1 mortal wound"
    • "Hit roll of 6 (unmodified) : 2 mortal wounds"
    • "Successful hit roll : 1 mortal wound"
  • Added preset global modifiers:
    • "Toughness : +1"
    • "Toughness : +2"
    • "Toughness : -1"
    • "Toughness : -2"
    • "Hit roll of 6 (unmodified) : 2 mortal wounds (max 6) (attack sequence ends)"
  • Added preset weapon abilities:
    • "Wound roll of 6 (unmodified) : D3 mortal wounds"
  • Inputs that support dice notation are now denoted by a dice icon.
  • Performance improvements
  • Stability improvements.
  • UI & UX improvements.
  • Removed the "Auto hit" weapon ability. This was always just an alias of "Always hit" which you can continue to use to the same effect.
0.34.2
2021/11/26

Features

  • Removed "Damage" from the available "Outcome" options when creating an "Override requirements" modifier. This is a regression and the option should never have been there.
0.34.1
2021/11/24

Features

  • Removed "Mortal wound(s)" from the available effect type options when creating a modifier that triggers on the hit roll (the option should never have been there - apologies). This feature is currently unsupported but it is on the way!
0.34.0
2021/11/23

Summary

New modifier goodies! Exploding wounds & mortal wounds that replace regular damage when triggered.

Features

  • New modifier effect type: "Extra wound(s)". Currently, this only becomes available if you have "Wound roll" selected as the modifier "Condition event".
  • New modifier effect option: "Attack sequence ends". Currently, this only becomes available if you have "Mortal wound(s)" selected as the modifier "Effect type".
  • Added new preset global modifiers & weapon abilities to demonstrate new options.
  • Stability improvements.
  • UI improvements.

Fixed

  • Edge case issue whereby an "Auto-wound" effect could be set to a value other than 1 via a very specific sequence of steps.
0.33.1
2021/11/18

Fixed

  • Issue whereby a recently cloned profile could lock up the "Crunch" page UI when selected as the current attacker. The previous workaround was to use the "Fix profile data" feature or wait until the next version update - either of which would address the issue on the cloned profile. Big thanks to u/Netbattler11 for the bug report.
0.33.0
2021/11/16

Summary

"Re-roll" vs "Re-roll failed" in 9th Edition 40k - do you know the practical difference?

Features

  • Added modifier option to re-roll "possible failure(s)". This is designed to help model the use of re-roll abilities that omit the word "failed" in more modern rulebooks. This is distinctly different from "re-roll failed" abilities which are still in circulation and are still supported by UnitCrunch.
  • Added accompanying FAQ attempting to explain the difference between re-rolling "failures" and "possible failures" (aka "re-roll failed" vs "re-roll").
  • Added new preset modifiers/abilities:

    • "Hit roll : re-roll all possible failures"
    • "Hit roll : re-roll one possible failure"
    • "Wound roll : re-roll all possible failures"
    • "Wound roll : re-roll one possible failure"
  • Updated favicon. Oooooooh.
  • Draw more attention to the dynamic description when editing a modifier/ability.
  • UI improvements.
  • Performance improvements.
  • Stability improvements.
0.32.0
2021/11/09

Summary

Various tweaks informed by recent UX testing plus some other bits & bobs.

Features

  • New UnitCrunch logo!
  • Added an "Always wound" preset modifier/ability.
  • Remind users to TYPE to search/filter the preset modifiers (everyone seems to just scroll which is crazy slow).
  • "Keywords" fields now automatically close when a value is selected. You can still select multiple values but you will have to click/tap the field once more to open it.
  • Only show the relevant fields/forms when adding/editing a profile from the "Crunch" page. Giving users the option to switch between forms would sometimes lead to correct but confusing validation issues. All forms/fields are still available when adding/editing a profile from the "Manage profiles" page.
  • Only display "Mortal wounds" column in "Most frequent results" table if any weapons have actually produced mortal wounds.
0.31.1
2021/11/05

Features

  • Added "CHARACTER" to available keywords.
  • Updated privacy policy.

Fixed

  • Chart tooltips could sometimes appear above modal windows (again!).
0.31.0
2021/11/01

Summary

Upgraded re-roll system!

Want to fish for 6s? No problem. Want to fish for pretty much anything? Weird, but also no problem. Need to re-roll damage? That's actually a huge problem but either way, UnitCrunch has a solution for you. Advanced re-roll MathHammer is now at your fingertips without a spreadsheet in sight.

Features

  • Re-roll modifier/ability configuration is now even more flexible.
  • Damage can now be re-rolled. This is a complex problem to simulate in an optimal way. UnitCrunch has to apply a bunch of assumptions & simplifications in order to offer this functionality at all. See the relevant FAQ for more info.
  • Re-roll a range of numbers that you set. This opens up the option to support more complex re-roll mechanics including "fishing" for certain numbers.
  • Re-roll occurrences of a specific number beyond just 1.
  • Option to limit any re-roll you configure to just a single roll.
  • New preset re-roll modifiers/abilities.
  • All existing preset modifiers/abilities have been upgraded to use the new re-roll system.
  • All saved weapon abilities have been upgraded to use the new re-roll system.
  • Minor UI improvements.
  • Modifier presets concerned with re-rolling ones have been renamed as per the new system. "re-roll ones" is now "re-roll all results of 1".
0.30.1
2021/10/30

Fixed

  • Charts were displaying results in an incorrect order if any of the result values were over 99. Big thanks to u/Aekiel (dude among dudes) for giving all the Genestealers all the buffs and then reporting this issue. Charts can now handle result values up to 999.
  • Wounds that auto-pass were still able to trigger effects that apply to the save step such as "Set AP" or "Improve AP". Big thanks to u/Aekiel (again) for suspecting this.
0.30.0
2021/10/22

Summary

A pretty boring release for you folks I'm afraid. This one's all about stability, privacy and so on. Important but boring. Better luck next time!

Features

  • Added system for users to be able to manually send debugging data to me to aid in resolving issues. I'll point users to this as & when it's needed.
  • Added simple privacy policy.
  • Chart tooltips auto-hiding when the mouse leaves a chart - now much more reliable.
  • Cookie consent UX improvements.
  • Minor UI improvements.
  • Stability improvements.
  • Removed legacy "Weapon abilities" page.

Fixed

  • Minor visual issue: the 2nd column in the wider 2 column layout wouldn't become "sticky" due to evaluating the attacker's total weapons selected rather than just those that are relevant to the currently selected attack type.
0.29.3
2021/10/11

Fixed

  • Issue whereby profiles that were still using really old UnitCrunch weapon abilities (e.g. "SHURIKEN", "GALVANIC" etc) weren't getting properly updated to the new system. In some cases this caused severe UI issues such as not being able to select an attacker or defender profile. This seems to be isolated to users that first started using UnitCrunch before June 2021 and then did not return before the release of v0.26.0 (2021/09/02). Apologies to any users that have been affected in this way. I try to test as much as I can but I don't always catch everything and am heavily reliant on user feedback. Many thanks to u/flloydcz for reporting the issue that lead to this discovery. Full Reddit post here, feedback welcome.
0.29.2
2021/10/05

Fixed

  • Issue whereby simulation results weren't appearing under specific circumstances.
0.29.1
2021/10/05

Fixed

  • Bug report from u/rumpletuffin: Trouble saving a new attacker profile. Pure muppetry on my part.
  • Bug report from u/Brizzle1072: Inaccuracy calculating effective melee weapon strength when using the "+" operator. Pure muppetry on my part.
0.29.0
2021/10/05

Summary

Melee support!

No more pretending that pistols are swords and whatever bonkers workarounds you've been using. You can now apply the full MathHammer power of UnitCrunch to simulating melee attacks in a way that makes some kind of sense.

Features

  • "Melee" attack type is now enabled and available.
  • "Attacker: Ranged" and "Attacker: Melee" profile roles added (these replace the former "Attacker" role. Existing profiles will be updated automatically. The new roles determine whether an attacker can be selected for a melee or ranged attack type. Profiles can have more than one attacker role so long as they meet the requirements.
  • New "Melee" weapon type. Finally.
  • Melee weapon strength supports a variety of syntax options:

    • Absolute number e.g. "4"
    • "User" keyword (refers to user's "Strength" characteristic)
    • Number to be added to the user's "Strength" characteristic e.g. "+2"
    • Number to multiply the user's "Strength" characteristic by e.g. "x2"
  • Melee weapon "Attacks" characteristic determines how many of the unit's total attacks have been allocated to that weapon. As such, melee weapons will not require a value for "Count per unit" (the field will not appear if you are editing a melee weapon) and profiles do not have an "Attacks" characteristic (tried this - caused nothing but problems).
  • New option to add a melee weapon from a preset. Simply select the preset, enter a value for "Attacks" and you're done. This is a work in progress and currently only offers "Close combat weapon" as a preset. The plan is to eventually enable users to define their own presets and also support preset ranged weapons. More soon!
  • "WS" can now be affected via modifiers & abilities.
  • Added 6 "WS" related modifier/ability presets (improve/degrade by 1-3).
  • Demo attacker profiles now meet the minimum requirements for use in melee attack simulations. Only new users will see this unless you load in the demo profiles - careful, this will clobber all of your custom profiles. Everyone else will need to add values for "WS" & "Strength" plus at least 1 melee weapon to profiles that they wish to gain the "Attacker: Melee" role.
  • UI improvements.
  • Stability improvements.
  • Performance improvements.
  • Moved the "Within half range" checkbox. Again (I know, I'm sorry). It's now back in the "Global modifiers" panel and will only appear if the current attack type is set to "Ranged".
0.28.4
2021/10/03

Fixed

  • Hotfix for the bug reported by u/PraiseHelix_: If for whatever random reason the current attacker or defender is set to null rather than an object, set it to an empty object.
0.28.3
2021/09/26

Fixed

  • When creating a new weapon ability, the options for 'Effect type', 'Effect value' or 'Options' were missing if the modifier type 'Set effect' or 'Special' was selected by clicking a row on the modifier definitions table. This bug is so similar to the one fixed in v0.28.1, I'm amazed I didn't spot it back then.
0.28.2
2021/09/21

Fixed

  • Deleting a profile's 'Invuln' or 'Ignore' value and then saving the profile could save incompatible values and lead to inaccurate results. Big thanks to u/xL_Freak for the bug report!
0.28.1
2021/09/19

Fixed

  • When creating a new modifier, the 'Application' options were missing if the modifier type was selected by clicking a row on the modifier definitions table. This only applied to modifier types 'Re-roll' and 'Modify (relative)'.
0.28.0
2021/09/14

Summary

A bunch of "quality of life" improvements, caps on active modifiers/abilities and a hefty cull of initial demo profiles.

Features

  • Added 2 preset weapon abilities for your MathHammer convenience:

    • Wound roll of 6 (unmodified) : 1 mortal wound
    • Wound roll of 6 : 1 mortal wound

    These were both available in versions prior to v0.26. Not sure why I didn't get round to adding them as presets in the new system.

  • Required form fields are now marked with an asterisk suffix for clarity.
  • Modifier type definitions table now doubles as a UI for selecting the modifier type (just click a row and you'll select that type).
  • Stability improvements.
  • Performance improvements.
  • Copy tweaks.
  • A maximum of 4 weapon abilities can be added to a single weapon. Let me know if you have a use case that suggests I should raise this number.
  • A maximum of 8 global modifiers can be active at once. I'll reduce this to 4 when we get profile abilities (as global modifiers are currently kinda catering for profile abilities until then).
  • I've hugely reduced the number of initial demo profiles and edited the remaining few to use less GW-specific names. UnitCrunch has always been about enabling the user to create their own profiles to help answer their own MathHammer questions. The demo profiles were only ever a way to show off what UnitCrunch can do. In the future I aim to use more video & text content to handle more thorough demo requirements.
0.27.0
2021/09/08

Features

  • New weapon type: "Dakka".
  • Support for a new notation for specifying ranged shots (when using the new "Dakka" weapon type): "[number]/[number]".
  • UX improvements.
  • Stability improvements.
  • Copy tweaks.
0.26.1
2021/09/02

Fixed

  • Some modifiers that trigger off of unmodified roll values were actually triggering off of modified roll values.
0.26.0
2021/09/02

Summary

Huge release after many hours of work. There's a lot to share here, so much that it probably warrants a video.

Features

  • Build your own modifiers & weapon abilities :D
  • Scope to create modifiers & abilities that weren't available in previous versions of UnitCrunch (plus full support for all previously offered modifiers in one way or another).
  • Create modifiers & abilities that don't even exist yet. Come at me new codex releases!
  • Loads of preset modifiers & abilities available to use out of the box or as a base for your own creations - all discoverable via search.
  • Modifiers & abilities automatically label themselves, in plain English, according to the specific mechanics you configure.
  • Add more than 1 of the same modifier. Stacking is fully supported where appropriate (e.g. stacked improvements & degradations to AP) and suppressed where inappropriate (e.g. multiple consecutive re-rolls of the same dice). Hit & wound modifiers are still ultimately capped at +/- 1 of course.
  • This is a very high level overview. There's so much to show off in this release it's bonkers. TLDR: watch the video.
  • Completely rewritten underlying modifier system. Considerably more extendable & future proof.
  • Greatly improved UX for discovering & adding modifiers & abilities.
  • Easier to scan & more streamlined layout of active modifiers - especially on mobile.
  • All of your saved profiles have been automatically updated to use the new weapon ability system.
  • Support for more keywords in profiles, modifiers & abilities.
  • The checkbox to toggle 'Within half range' has been moved to a new 'Attack type' panel. Yes it's a bit lonely but hopefully it's fairly clear where this is all heading ;)
  • Removed the 'Weapon abilities' link from the main menu. The page this linked to is now somewhat redundant in the advent of the new modifier system.

Fixed

  • Legacy melta weapons had their damage inaccurately calculated (results were suggesting that their damage output was slightly less than it should be).
  • Chart tooltips could be displayed over the top of dialogue windows in some cases.
0.25.1
2021/07/09

Summary

Updated the modifier designed to help model the effects of the Ad Mech stratagem 'Enriched Rounds' to reflect the changes in the recent Ad Mech FAQ. i.e. It now triggers on an unmodified hit roll of 5+ rather than 4+.

Features

  • Modifier 'U:4+ = wound non-vehicle' changed to 'U:5+ = wound non-vehicle'.
0.25.0
2021/07/12

Summary

This release sees improvements to how summary results are presented plus more quality of life changes for desktop users with big monitors trying to build the ultimate MathHammer battlestation :D

Features

  • Summary results now show more key metrics for 'Models slain'.
  • Summary results directly include the 'Models slain' chart if the defender profile is a multi-model unit.
  • Summary results now include key metrics for 'Wounds remaining' if the defender profile is a single model unit.
  • Widescreen 2 column layout no longer uses a maximum content width.
  • Widescreen 2 column layout will 'pin' the results column to the top of the viewport to keep it in view as you scroll the left column. This requires that the current number of active weapons is < 4 and that the viewport height is at least 1190px high (otherwise nothing is pinned to ensure that nothing is stuck off-screen). I hope to improve these conditions in time but this approach gets the feature released sooner :)
  • Fluid layout between breakpoints - more efficient use of viewport width in some cases.
  • Minor UI improvements.
0.24.2
2021/07/09

Features

  • UX improvements.
  • FAQ updates.
  • Stability improvements.

Fixed

  • Fixed a bug whereby <50k simulations could auto re-run despite the preference to not auto re-run being set.
0.24.1
2021/07/07

Fixed

  • The 'Reset modifiers' button now works again (was busted in yesterday's release).
0.24.0
2021/07/06

Summary

Attacker weapons can now be individually toggled. This should help with modelling weapons with multiple profiles, units with multiple weapons that can't all be fired at once and units with multiple wargear options that you want to experiment with. This release also includes some UX improvements on mobile.

Features

  • Profile weapons can now be individually toggled to be active/inactive. This affects whether a weapon is included in the attack simulation. The simulation will only run if at least 1 weapon is active. The option to toggle weapons will only be offered for profiles with 2 or more weapons.
  • Your preference for which weapons a profile has active is stored with the profile itself. UnitCrunch will recall your preference when loading a profile.
  • Active profile info is hidden by default on mobile to save considerable vertical space. Users can choose to show and hide profile info via newly provided buttons.
  • Weapon ability 'VEHICLE=WOUND:4+' renamed to 'VEHICLE=WOUND:U:4+' as it operates on an unmodified roll. The internal mechanic is unchanged/correct, only the name is changing for clarity. Relevant demo profiles have been updated. Your own custom profiles have been automatically updated too.
  • Minor UI improvements.
  • Stability improvements.

Fixed

  • Fixed a bug whereby navigating back to the 'Crunch' page from another page would cause auto-run simulations to run twice in quick succession. This didn't impact the accuracy of results.
  • Batch deleting all profiles immediately after a page refresh now correctly updates the profiles table as expected.
  • Fixed a bug whereby >50,000 simulations could be auto re-run.
0.23.2
2021/06/25

Summary

Another fairly pedestrian patch release I'm afraid. There's more MathHammer goodies coming soon though I promise!

Features

  • Minor UI improvements.
  • Performance improvements.
0.23.1
2021/06/11

Features

  • 'ANTI AIR' weapon ability is now +1 to hit against 'AIRCRAFT' (not 'FLY'). This seems more consistent with 9th Edition anti-air weapon abilities. 'ANTI AIR:LEGACY' is unchanged.
  • Demo defender profiles now include an 'Aircraft Equivalent Unit'.
  • Minor UI improvements.
  • Stability improvements.
0.23.0
2021/06/07

Summary

Results charts now include the 'cumulative probability distribution' (wiggly purple line).

Features

  • Added a line graph to results charts to display the cumulative distribution.
  • Chart tooltip now includes cumulative distribution data and is colour coded for clarity.
  • Charts now have legends.
  • Charts now include a second y-axis to the right. This is the percentage range that the cumulative distribution is plotted against and is always a range of 0 to 100. Note that the horizontal dashed lines still pertain to the left y-axis, the range of which is still relative to the results in the discrete distribution (aka the blue bar chart).
  • Added an FAQ entry that attempts to explain what is meant by 'discrete' & 'cumulative' probability distribution in layman's terms.
  • Minor UI improvements.
  • Stability improvements.
0.22.0
2021/06/04

Summary

Support for simulating 'Chain-Taser Protocols'. Better support for large displays.

Features

  • New modifier: 'Hit roll' > 'Trigger additional effects' > '5 = 2 extra hits'. Helps simulate the new Ad Mech stratagem 'Chain-Taser Protocols'.
  • Added a new side by side layout for the 'Crunch' page when displayed in an extra wide browser window.
  • Minor UI improvements.
  • Stability improvements.
  • Weapon abilities starting with 'VEHICLE:' have been updated to start with 'VEHICLE='. Poor consistency on my part therefore I have automated the update to existing profile data for you.
  • Removed 'Known issues' page. The UnitCrunch subreddit is now a more reliable & dynamic source for tracking issues. '/known-issues' now redirects to '/feedback'.
0.21.0
2021/05/27

Summary

Enriched rounds, rending claws and other guff.

Features

  • New modifier: 'Hit roll' > 'Trigger additional effects' > 'U:4+ = wound non-vehicle'. Simulate new Ad Mech stratagem 'Enriched rounds'.
  • New weapon ability: 'WOUND:6+=DAMAGE:3'.
  • New weapon ability: 'WOUND:6+=AP:-4'.
  • New weapon ability: 'WOUND:6+=AP:-6'.
  • Ensure list of weapon abilities is always sorted alphabetically by name, wherever it's displayed.
  • 'SHURIKEN' weapon ability renamed to 'WOUND:6+=AP:-3'. Please manually update any existing custom profiles accordingly.

Fixed

  • Ensure that generated hits don't contribute to generated wounds. E.g. If you're generating hits on unmodified hits rolls of 6, these can't then go on to count as generated wounds on hit rolls of n (because they weren't rolled and there's an FAQ that says you can't do this). This will have produced inaccuracies in v0.20.0 if you combined a hit roll modifier/ability that generated further hits with the weapon ability 'HIT:6=AUTO WOUND:!VEHICLE' (Radium weapon). Apologies, this seems to be a common point of confusion right now.
  • Weapon abilities that are no longer supported were flagged as such but there was no way for the user to remove them. This didn't affect simulation results as unsupported weapon abilities have no affect. From now on UnitCrunch will not display unsupported weapon abilities.
0.20.0
2021/05/26

Summary

Smells like machine spirit...

This release is a first pass at supporting the rules changes that come with the new Adeptus Mechanicus codex.

New Radium weapons, new Arc weapons, new Wrath of Mars, general 9E modernisation of rules plus a bunch more generally useful modifier options.

Features

  • New weapon ability: 'HIT:6=AUTO WOUND:!VEHICLE'. Replacement ability for Radium weapons.
  • New weapon ability: 'WOUND:6=+1MW'. 9E style Sniper/Volkite mechanic (now on an unmodified 6 to wound). Ready for modelling attacks with Serberys Raiders, Transuranic arquebus and so on.
  • New weapon ability: 'WOUND:6=+2MW'. Volkite blaster / Weapon XCIX :)
  • New weapon ability: 'HIT:6=+2HITS'. 9E style Tesla ability triggering on unmodified 6s for all your Electrostatic / Electroleech / Taser needs.
  • New weapon ability: 'VEHICLE:WOUND:4+'. This makes up one half of the new Arc weapon ability (always wound vehicles on a 4+). The other half varies depending on the weapon...
  • New weapon ability: 'VEHICLE:DAMAGE:3'. This makes up the other half of the new Arc weapon ability (damage 3 vs vehicles) if simulating Arc rifles or Heavy arc rifles.
  • New weapon ability: 'VEHICLE:DAMAGE:2'. This makes up the other half of the new Arc weapon ability (damage 2 vs vehicles) if simulating Arc pistols.
  • New weapon ability: 'HIT:6=AUTO WOUND'. Emulate a Space Marine 'Marksman bolt carbine'. Nothing to do with Ad Mech but it's so similar to the new Radium ability that it made sense to include it.
  • Added buttons to expand/collapse all modifier panels at once.
  • 'SNIPER' weapon ability renamed to 'WOUND:6+=+1MW' to help distinguish it from the more modern 9th edition version that triggers on an unmodified 6. Please manually update any profiles that still need the previous 'SNIPER' weapon ability.
  • 'Modify damage' modifier now supports a range of +/- 1-3.
  • Only show modifiers reset button when there's modifiers to reset.
  • Minor UI improvements.
  • Stability improvements.
  • Changed modifier from '6+ = 1 mortal wound' to '6 = 1 mortal wound (max 6)'. This effectively tracks the changes made to the 'Wrath of Mars' stratagem.
  • Changed modifier from 'TESLA' to 'HIT:6+=+2HITS'. Please manually update any profiles that still need the previous 'TESLA' weapon ability.
  • Removed 'ARC:D3' & 'ARC:D6' weapon abilities. These have been superseded with the new 'VEHICLE:*' abilities described above. Please manually update any profiles that used the previous 'ARC:*' weapon abilities.
  • Moved 'Halve damage' modifier option to new 'Modify damage (other)'.
  • Removed 'GALVANIC' weapon ability. Galvanic weapons no longer have an 'ability' as such.
  • Removed demo profile 'Skitarii Rangers x10 (Galvanic Rifles)'. 'GALVANIC' weapon ability mechanic no longer needs to be demonstrated because it no longer exists.
  • Updated relevant stats of all included Ad Mech demo profiles as per the new codex.
0.19.0
2021/05/22

Summary

New modifiers. Improved existing modifiers. More UI improvements.

Features

  • New modifier: 'Modify BS'. Allows for attacker ballistic skill to be modified by a range of +/- 1-3.
  • New modifier: 'Modify save roll'. Allows for saving throws to be modified by a range of +/- 1-3.
  • Strength modifier now supports +/- 1-3 and is no longer specific to heavy weapons.
  • AP modifier now supports +/- 1-3.
  • Revised layout for attack modifiers to accommodate new options.
  • Modifier group panels also now show the total number of active modifiers they contain.
  • Wording of certain modifiers amended to use 'improve/degrade' rather than simply '+/-'. This is key when modifying characteristics such as BS & AP which improve when you reduce them.
  • Positive AP values are automatically converted to negative numbers on weapon save for convenience. Thanks to u/KhorneSlaughter for the great suggestion!
  • Smarter resizing of charts depending on device size.
  • Remember active tabs until page is refreshed. Tabs will reset way less as you tweak modifiers!
  • 'Modifiers' & 'Simulations' panels have swapped positions. Gets the 'Modifiers' panel that bit closer to the results.
  • Minor UI improvements.
0.18.0
2021/05/20

Summary

Lots of UI improvements. Points are no longer required on profiles. Generally clearing my desk in preparation for some major Ad Mech MathHammer...

Features

  • Added optional 'Points' field to defender profile form.
  • Added 2 new demo defender profiles (common meta boogey men): Drukhari Raider & Mortarion.
  • Added 'About' page. This is where much of the site footer info has moved to.
  • Simulation settings & 'Run simulations' button now relocated to new expansion panel ('Simulations'). Expansion panel header shows current value of 'Simulations to perform', even when collapsed.
  • 'Points' are no longer required on profiles.
  • 'Points' column is hidden on profile stats table if empty.
  • Modifiers expansion panel header now displays a count of how many modifiers you have active, even when collapsed.
  • Improved results summary styling on mobile.
  • Minor UI improvements.
  • Stability improvements.
  • Performance improvements.
  • Navigation drawer now opens from the right.
  • Removed site footer. This information can now be found on the new About page and elsewhere on the site.
  • Disabled autocompletion on attacker/defender select lists on mobile - it just doesn't work well enough. This functionality is still available on desktop.
  • Demo profiles no longer have points assigned by default. One less thing for me to keep up to date!

Fixed

  • Fixed a bug whereby simulations would run twice on initial page load if profiles were selected and simulations were configured to auto-run. This never produced inaccurate results and would have just been perceived as a performance issue (i.e. that initial run of simulations would've taken twice as long). All subsequent simulations would run once as expected.
0.17.2
2021/05/19

Fixed

  • Fixed a regression whereby a damage modifier could produce inaccurate results if one or more other certain modifiers were also active. Big thanks to u/Moist1981 for reporting over at r/UnitCrunch.
0.17.1
2021/05/17

Summary

I've decided to no longer display 'Wounds remaining' and 'Models slain' results on a per-weapon basis. Multi-weapon attacker profiles could produce some confusing results in certain scenarios. Having tried it for a while now, I think that it's generally best to only display these results as part of the 'Results overview' where there's much less room for confusion.

Features

  • 'Wounds remaining' and 'Models slain' results are no longer available on a per-weapon basis. These results are still available as simulation totals via the 'Results overview'. As before, 'Wounds remaining' only appears if the defender is a single model unit.
0.17.0
2021/05/16

Summary

New modifier! 'Halve damage (round up)' is now available to help you in your MathHammer calculations when attempting to factor in 'Holy Aegis' (Morvenn Vahl) and 'Contempt for Death' (Urien Rakarth).

This release also adds a new weapon ability that denies invulnerable saves.

Features

  • New modifier: 'Other' > 'Modify damage' > 'Halve damage (round up)'.
  • New weapon ability: 'DENY INVULN'.
  • The select lists for choosing an attacker or defender profile now filter results as you type.
  • Under the hood improvements to how mortal wounds & damage are calculated, handling of ignoring wounds (feel no pain) and the calculation of models slain. Results should be unchanged - these improvements just help pave the way for future features.
  • Copy amends.
  • Minor UI improvements.
  • Stability improvements.
  • 'Simulate attack' is now 'Crunch'.
0.16.0
2021/05/09

Summary

You can now clone profiles.

Features

  • Added the option to clone a profile. See the new icon in the 'Actions' column on the 'Manage profiles' page. Cloned profiles copy all stats and weapons. ' (clone)' is appended to the profile name (which you can of course overwrite).
  • Profile role labels are now colour coded on forms & tables making them easier to spot at a glance.
  • Profile role colours have been tweaked to improve legibility and to help differentiate defenders from validation errors (which were both red).
  • Home page path is now just '/' once again rather than '/simulate-attack'. The old path now redirects to '/' so will still work.
  • Improved form validation when editing profiles & weapons.
  • Attacker weapon stats & defender stats tables now only show table headers for stats in use (i.e. 'Abilities', 'Invuln', 'Ignore' & 'Keywords' will only display when required). This helps save space, especially on mobile.
  • Minor UI improvements.
  • Performance improvements.
  • 200 is now the maximum number of profiles you can create per browser.
  • Weapons are now capped at 10 per profile.

Fixed

  • Minor errors in demo profiles.
0.15.0
2021/05/01

Summary

Huge overhaul of how profiles work and how you can use them. Attacker profiles and defender profiles are gone. There is now only profiles, the mathhammer demands it...

Features

  • When adding/editing any profile you can now switch between 3 'form modes':
    1. All: shows all of the available profile fields, requires the most data.
    2. Attacker: show only the fields required to add a profile for use as an attacker.
    3. Defender: shows only the required & relevant fields for use as a defender.
  • Profiles are now assigned roles: 'Attacker', 'Defender' or both. This is handled automatically depending on what fields have been populated for a given profile. Roles determine whether a profile can be selected as the active attacker or defender in a simulation. You can even have the same profile be the attacker and the defender!
  • Profile roles are now displayed on the 'Manage profiles' page in their own table column.
  • Starting from when you next use UnitCrunch, all profiles will have an 'updated' timestamp associated with them. This is displayed in a new column on the 'Manage profiles' page and is the default column for sorting the table.
  • Profiles are now searchable/filterable on the 'Manage profiles' page.
  • Attacker profiles and defender profiles are gone. There is now only 'profiles' and a profile can be an attacker or a defender or both! It all depends on what data you've provided and will update whenever you save a profile.
  • All of your old profiles have been auto-migrated to the new system. You shouldn't need to do anything.
  • When selecting an active profile, the list of available profiles will be sorted by the date they were last updated (most recent nearest the top).
  • Demo profiles have been updated to take advantage of the new system. A handful have been removed. Most have just had more data added. Note that this will only be noticeable to new users or users that choose to re-import the demo profiles (careful now, this will clobber all of your existing profiles).
  • Profile & weapon edit forms are now submitted when you hit the enter/return key.
  • Profiles now require at least 1 weapon in order to be selected as an attacker.
  • Dialogs are displayed fullscreen on mobile.
  • Improved automated tests.
  • Stability improvements.
  • Minor UI improvements.

Fixed

  • Weapon abilities dialog now shows all weapon abilities rather than just the first 10.
  • Corrected a few errors in some demo profiles - just stuff that was out of date following recent codex releases.
  • Various minor bugs surrounding profile management that have only become apparent during this development sprint.
0.14.1
2021/04/22

Summary

Fixing bugs and generally making the mathhammer taste better.

Features

  • Reduced known issues list to zero :D
  • Stability improvements.
  • Accessibility improvements.
  • Performance improvements.
  • Removed the initial site tour for new users. It was a bit clunky and was dragging down performance.

Fixed

  • Bug fixed: Editing a currently active attacker/defender profile from 'Manage profiles' didn't immediately update the active profile.
  • Bug fixed: An edited demo profile doesn't always appear to be immediately overwritten when re-importing demo profiles.
  • Bug fixed: Adding a new attacker profile could sometimes already have the weapons of the last profile edited.
0.14.0
2021/04/18

Summary

Some new attack modifiers & UI improvements.

Features

  • New attack modifier: 'Hit roll' > 'Trigger additional effects' > '6 = 2 extra hits'. Caters for the Drukhari Blood Dancer warlord trait among other things.
  • New attack modifier: 'Hit roll' > 'Re-roll one failed'.
  • New attack modifier: 'Wound roll' > 'Re-roll one failed'.
  • 'Re-roll' attack modifiers are now select lists rather than radio groups. Yes it's one extra click but it takes up less space in what's become a fairly busy UI for attack modifiers - makes a difference on mobile.
  • 'Range' attack modifier is now a checkbox rather than a 2-option radio group. Again, this is to save space, particularly on mobile.
  • Improved clarity regarding attackers with multiple weapons and how they are handled. Messaging has been added to the 'Most frequent results' table as well as the 'Wounds remaining' and 'Models slain' weapon results charts. I've also added an FAQ on the subject.
  • 'Results notes' that sometimes appear below tables & charts are now collapsible to save space and yet still allow for more/longer notes if required.
  • 'Wounds remaining' chart x-axis is now inverted. This is to keep all charts consistent in that the further right you go on the x-axis, the better the result is for the attacker (i.e. 0 wounds remaining is the ideal target number).

Fixed

  • Various minor UI fixes.
0.13.1
2021/04/10

Fixed

  • Fixed a regression where weapons with the AUTO HIT weapon ability were never dealing any wounds. I've updated the test suite to check for this in future. Big thanks to u/Leky for the bug report over at r/UnitCrunch.
0.13.0
2021/04/05

Summary

More Drukhari stuff and the former RADIUM weapon ability returns under a new, and considerably less catchy name.

Features

  • New attack modifier. 'Wound roll' > 'Trigger additional effects' > '6 = Further -3 AP'. Caters for the Drukhari Hekatrix Bloodbrides upgraded 'Blade Artists' ability. Nasty.
  • New weapon ability: 'WOUND:6+=DAMAGE:2'. This caters for certain Radium weapons (Radium carbine & Radium pistol).
  • New weapon ability: 'WOUND:6=DAMAGE:2'. This caters for Drukhari Spirit weapons (Spirit syphon, Spirit vortex, Spirit-leech tentacles). Is this where 9th edition Radium weapons are heading?
  • More improvements to the underlying attack sequence system and modifier system. This now supports modifiers/abilities that are applied in the damage step but are triggered in a prior step.
  • Slightly lighter grey used in charts to boost visibility.
  • More tests & better tests as usual.
  • Updated POISON weapon ability & description to match recent changes in Drukhari codex.

Fixed

  • The known issue with the RADIUM weapon ability is now fixed. Please update your attacker profiles to use the new weapon ability 'WOUND:6+=DAMAGE:2'.
  • Generated hits are treated as having rolled the same value as the dice roll that generated them (as per the relevant core rules FAQ).
0.12.0
2021/03/28

Summary

This release took a tonne of work but probably looks like not a lot changed! You get some new inter-step-wound-roll-AP-buffing modifiers. I get a much improved underlying modifier system and an even more robust test suite. We're all winners.

Features

  • New attack modifier. 'Wound roll' > 'Trigger additional effects' > '6 = Further -1 AP'.
  • New attack modifier. 'Wound roll' > 'Trigger additional effects' > '6 = Further -2 AP'.
  • New attack modifier. 'Wound roll' > 'Trigger additional effects' > '5/6 = Further -1 AP'.
  • Major upgrade to the underlying modifier system making it easier to extend and capable of more advanced modifiers: e.g. Modifiers that trigger in one step (such as the wound roll) but affect another step (such as the saving throw). This upgrade also makes it possible to handle more advanced scenarios for modifiers to stack and not stack as needed as well as handle mixing the outcomes of both unmodified & modified rolls. This took ages and I have to tell you or you'll never know.
  • More automated tests and more accurate automated tests. These are seriously cool and have become an essential part of helping ensure I don't introduce regressions in what is now a very complex system. I might even share a video of how this works soon.
  • General performance improvements.
  • Options within the old 'Weapon modifiers' select list have now been split and moved to 'Modify strength' and 'Modify AP'.

Fixed

  • Minor styling bugs.
0.11.0
2021/03/21

Summary

This release adds some new attack modifiers & weapon abilities. The new modifiers should be helpful for Ork players in particular looking to simulate the 'Dakka! Dakka! Dakka!' and 'More Dakka!' rules.

I've also done a tonne of behind the scenes work writing automated tests to help ensure stability going forward.

For the first time ever I've decided to disable a weapon ability (RADIUM) having discovered a bug. Apologies for this, it is temporary. See the 'Known issues' page for more info.

Features

  • Added attack modifier: Unmodified 6 to hit generates 1 extra attack (see 'Hit roll' > 'Trigger additional effects').
  • Added attack modifier: Unmodified 5/6 to hit generates 1 extra attack (see 'Hit roll' > 'Trigger additional effects').
  • Added weapon ability: POISON:3.
  • Added weapon ability: ANTI AIR. This is the new style of anti air ability that isn't penalised for targeting non-FLY units. The old style has been retained as ANTI AIR:LEGACY. You'll want to review any of your saved profiles that used the previous version of this ability (e.g. Onager Dunecrawler with Icarus Array).
  • Added E2E tests for all weapon modifiers.
  • Added E2E tests for all weapon abilities that were not previously catered for.
  • Disabled RADIUM weapon ability on discovery of a bug. See 'Known issues' page for more info.
  • Renamed previous ANTI AIR weapon modifier to ANTI AIR:LEGACY.

Fixed

  • Improved integrity checks for when adding/changing attack modifier features.
  • Rewrote EVERY.SINGLE.AUTOMATED.TEST. Many of these have needed updating since moving to the new simulations based model. And breeeeath...
0.10.1
2021/03/07

Features

  • 'Hit roll: Trigger additional effects' modifier is now a multi-value input so you can now stack these effects.

Fixed

  • Fixed regression in modifiers reset button (wasn't always resetting the modifiers).
0.10.0
2021/03/06

Summary

This release focuses on adding some of the most requested attack modifiers. You can now simulate 'Disgustingly Resilient', 'Duty Eternal', 'Transhuman Physiology', 'Overloaded Safeguards', 'Trans-node Power Cores', 'Chaff Launcher' and many more.

Features

  • Added 'Modify damage' modifier. You can now simulate -1 to incoming damage.
  • Added 'Hit roll: Trigger additional effects' modifier. Includes 'Unmodified 6 = 1 extra hit' and 'Unmodified 5/6 = 1 extra hit'.
  • Added 'Wound roll threshold' modifier. Includes 'Only wounded on a 4+ (unmodified)'.
  • Summary results include a bit more detail and are hopefully even more helpful.
  • Improved layout of Modifiers pane, especially on mobile.
  • 'Wound roll: Mortal wounds' modifier is now 'Wound roll: Trigger additional effects'.
0.9.8
2021/03/03

Features

  • All input elements now use an outlined style to improve UX.
  • Various select list inputs are now 'clearable'.
  • Hit/wound modifier inputs no longer need to use the value 'No modifier'.

Fixed

  • Various minor stability & security updates.
0.9.7
2021/02/21

Features

  • Fixed calculation of number of shots for units with multiple variable damage weapons (e.g. 4x D6 shot weapons). Thanks to u/SandiegoJack for the bug report!
0.9.6
2021/02/21

Features

  • Now pointing all feedback, bug reports, feature requests and questions at the new UnitCrunch subreddit: r/UnitCrunch
0.9.5
2021/02/21

Fixed

  • Fixed a regression where saved profiles weren't persisting between sessions. Big thanks to whoever reported this via the feedback form on the 20th!
0.9.4
2021/02/15

Summary

This release is all about improving the accuracy of results and removing points of confusion. I also did a tonne of tidying up & refactoring under the hood. Hopefully this queues things up nicely for the next release to include some new features. Enjoy!

Features

  • Added a 'Models slain' tab/chart to the 'Results overview' section.
  • Added a 'Wounds remaining' tab/chart to the 'Results overview' section. This only displays when relevant (details further down).
  • Logged a new known issue regarding high variance weapons and how it can sometimes be tricky to summarise their final results. Not a huge deal - just wanted to share what's on my mind.
  • 'Lingering wounds' now replaced with 'Wounds remaining'.
  • 'Wounds remaining' data is not displayed unless relevant & useful (e.g. not when the defender comprises of 1 wound models and not when the defender model count is more than 1).
  • 'Damage not ignored' data is not displayed unless the defender can ignore damage.
  • Changed how UC loops through simulations. It now loops after resolving the entire attack with all weapons. Previously it looped simulations of each weapon attack separately and then calculated the final outcome. In tests this didn't make much of a difference to the end result but it does make it a lot easier to comprehend and work with as a developer.
  • Results summary now shows the chance of slaying the defender unit, rather than lingering wounds data.

Fixed

  • Fixed known issue with unusually high lingering wounds results of 0 in some cases.
  • Results values from 1-9 are no longer displayed with leading zeros in bar charts.
  • Performance improvements.
0.9.3
2021/02/01

Features

  • 'Known issues' page. Nobody's perfect.
  • Disabled sorting on attacker stats table (was in the way on mobile).
  • Defender stats table is now more consistent with attacker stats table.
  • Removed displayed '+' suffix from various unit characteristic values.

Fixed

  • Improved unit profile form & weapon form layouts on mobile.
  • Display chart percentage values under 0.5 as '<0.5%' (avoids occasional display of '0.0%' which is nonsense).
  • Performance improvements.
  • Minor presentation improvements.
  • Minor copy tweaks.
0.9.2
2021/01/25

Features

  • Bar charts now have axis labels.
  • Omit the 'Lingering wounds' tab/chart(s) if the defender has a wounds characteristic of 1.
  • Don't round percentages, just limit the displayed decimal places to 1 when displayed.

Fixed

  • Fixed collapsible panels not remembering their state after page refresh.
0.9.1
2021/01/24

Fixed

  • Fixed tab label & table column heading to read 'Damage dealt (inc. MW)'.
0.9.0
2021/01/23

Summary

Happy New Year!

TLDR: UnitCrunch now calculates the MOST LIKELY result (and more) instead of the AVERAGE result. UnitCrunch now uses the Monte Carlo method and presents the distribution of results (second most requested feature). 'Many vs one' is gone (for now).

Features

  • More results data and charts than you'll ever know what to do with.
  • FAQ page.
  • Results are no longer calculated by determining the average dice result of each interaction in the attack sequence.
  • UnitCrunch now simulates the attack sequence, just like you would if you were playing, many thousands of times (or however many times you tell it to). It counts up all of the results, analyses and then presents them. Attention is drawn to the most frequently occurring results as these represent the most likely outcomes. All of the other results are still presented in context for you to review however you wish.
  • The 'One vs one' page has been renamed to 'Simulate attack'.
  • Weapon results table now lives behind a tab labelled 'Frequent results' in the 'Results overview' section.
  • The 'Many vs one' page has been removed for now. It saw a lot less use than 'One vs one'. It was confusing for some and generally less useful. This saves me having to update it to use the new system for calculation - right now I'd rather use that time to develop other more useful features.
0.8.0
2020/11/09

Summary

TLDR: Attack range, rapid fire and melta support.

Please note that because UnitCrunch now rounds results to the nearest whole number, the 'MELTA:LEGACY' weapon ability will return the same result within half range as it does above half range. The average result of rolling 1D6 is 3.5, which rounds to 4. The average result of rolling 2D6 and picking the highest result is ~4.47, which also rounds to 4. Don't kill me, this is what you get with averages and rounding and for now this is what UnitCrunch offers.

Features

  • Added range options to attack modifiers panel (under 'Other').
  • Added support for rapid fire weapons attacking within half range.
  • Added 3 new melta weapon abilities ('MELTA:D6+2', 'MELTA:D6+4', 'MELTA:LEGACY') to cover the various takes on melta rules available in early 9th Edition Warhammer 40k.
  • Added 2 new demo attacker profiles to demonstrate the new melta weapon abilities: 'Inquisitor Karamazov' and 'Harlequin Troupe x5 (Fusion Pistols)'.
  • More automated tests.
  • Improved new version alert UX on mobile.

Fixed

  • Rounding inaccuracy when calculating total damage from multiple variable damage weapons.
0.7.1
2020/11/3

Fixed

  • Weapon strength characteristic now permits '*' as a value (common on poison weapons).
0.7.0
2020/10/30

Features

  • Added GALVANIC weapon ability (-1 AP on 6s to wound).
  • Added Skitarii Rangers demo profile to demonstrate new weapon ability.
  • Added 'Further -2 AP' attack modifier
  • Clarified existing attack modifier name ('Further -1 AP').
  • Minor copy changes, mainly around support for 9th Edition 40k.
0.6.0
2020/10/10

Summary

UnitCrunch now calculates the number of models slain (most requested feature to date).

Results values are now rounded to the nearest whole number which makes it all much easier to get your head around and better relates to the dice rolls you see on the tabletop.

Features

  • Average results values are now rounded to the nearest whole number (excluding 'points efficiency' values).
  • Results now include the number of models slain in the defender unit.
  • 'One vs one' results table now shows 'Lingering wounds'. This is the amount of wounds left on a wounded model once the current weapon has resolved its attack.
  • Added PLAGUE WEAPON ability.
  • Added a bunch more demo profiles.
  • 'Points efficiency (models slain)' is now a thing.
  • An alert is shown when a new version is released (first time users will not see this).
  • More automated tests to help maintain stability.
  • The default sort column for the 'Many vs one' results table now changes according to whether the defender unit has 1 or more models. Single model units default to the 'Points efficiency (damage)' column. Multi-model units default to the 'Points efficiency (models slain)' column. This is just a default, you can still override it.
  • Demo Terminators defender profile increased to 3 wounds as per the new Space Marines codex.
  • 'One vs one' average results table can no longer be sorted by column as this messes with comprehending data on models slain and what happened when.
  • Removed message in footer discouraging users from using UnitCrunch in-game. I'm not your Mum, do what you like.
  • 'Final damage' is now 'Total damage output'.
  • 'Points efficiency' is now 'Points efficiency (damage)'.
  • 'Attack modifiers' panel renamed to just 'Modifiers'. New modifiers coming soon!

Fixed

  • RADIUM weapon ability calculation is now more accurate.
  • Various typos.
  • Improved data integrity checks.
0.5.2
2020/08/27

Fixed

  • Moving between pages no longer resets attack modifiers.
  • Removed text search from select lists to make them easier to un-focus.
  • Fields that expect number values now use the number keyboard on phones/tablets etc.
0.5.1
2020/07/29

Fixed

  • Adding a new attacker would still show the last added weapon in the weapons table of the 'Add attacker' dialog.
0.5.0
2020/07/26

Features

  • Background data integrity check/fix when starting the app.
  • Added 'Fix profile data' button under 'Manage profiles' > 'Batch operations'. This provides a way to manually trigger the data integrity check/fix.
  • 'Demo profiles' panel renamed to 'Batch operations'.

Fixed

  • A bug where users with older profile data would click a button to edit a profile and the popup would not be populated (as if adding a new profile).
0.4.0
2020/07/26

Summary

Accessing and selecting weapon ability rules when editing a weapon is now greatly improved.

There's also now support for weapons with variable strength. E.g:

  • Ork Bubblechukka / Shokk attack gun / Zzap gun
  • Death Guard Plague Sprayer
  • etc...

Features

  • The weapon abilities legend is now an interactive popup which doubles as a UI for selecting abilities as well as providing information about them. Look for the 'Abilities inc.rules' button.
  • Weapon strength now accepts basic dice notation (e.g. D6, 2D3, 2D6+1 etc).

Fixed

  • You no longer lose your weapon editing progress when clicking the weapon abilities legend as it no longer sends you to a different page.
0.3.1
2020/07/25

Fixed

  • Demo profiles sometimes not being auto-loaded for new users.
  • Tour wonkiness resulting from issue above.
0.3.0
2020/07/25

Summary

Hit and wound rolls are now capped at +1 and -1 as per the new core rules for Warhammer 40,000 9th Edition.

Profiles are now easier to edit directly from where you are rather than having to always go via 'Manage profiles'.

Features

  • Hit and wound rolls are now capped at +/- 1.
  • Profiles can now be edited directly from the attack results pages (look for 'Edit attacker' and 'Edit defender' buttons).
  • Improved icons in some places.
  • Panels now remember whether you had them expanded or collapsed as you switch between pages (and when you return to the site!).

Fixed

  • Deleting the currently selected profile leaves its stats table showing.
  • Weapon type is not populated when editing the demo marines profile.
  • Various minor fixes and stability improvements.
0.2.0
2020/07/21

Summary

Eldar players rejoice. Support for shuriken weapons is here!

Features

  • Added SHURIKEN weapon ability.
  • Added essential page links to app bar for tablet and larger device sizes.
  • Added changelog.
  • Added Twitter link to footer (@UnitCrunchApp).
  • Improved whitespace around groups of buttons on mobile.
  • Improved whitespace above tables.
  • Move app version to footer.
0.1.2
2020/07/19

Fixed

  • Chance of failing can never be higher than 100%.
  • Removed legacy 'Model count' table heading from attacker stats table.
0.1.1
2020/07/19

Summary

r/WarhammerCompetitive knows how to MathHammer.

Features

  • Removed legacy 'Model count' property from attacker profiles.
  • Guardsman demo unit wargear adjusted (now 9 Lasguns & 1 Laspistol).

Fixed

  • Use more precise fractions for conveying dice roll probability.
0.1.0
2020/07/17

Summary

Launch release. Hello world!