Version 1.49.1 Released


Version 1.49.1 is a focused stability and quality-of-life hotfix for Company Tactics.

The main priority of this update was resolving a startup failure affecting the Heroes Reborn module, followed by a deeper audit of save integrity, Blackjack rules, economy edge cases, and the Home menu Patch Herald.

Critical Startup Fix

The most important fix in Version 1.49.1 addresses a startup error where the game could fail with:

“Heroes Reborn specialization module failed to load.”

The Heroes Reborn module itself was present in the build, but it was missing from the actual HTML script load order.

Because the main game expects that module during startup, the browser could never complete initialization correctly.

Version 1.49.1 restores the missing module reference and ensures it loads before the main game bootstrap.

Cache and build markers were also updated to prevent browsers from continuing to reuse the broken 1.49.0 startup page.

Blackjack Rules Corrected

The Blackjack implementation received a full rules pass.

A natural Blackjack now pays the correct:

3:2 payout

Standard wins continue to pay:

1:1

Pushes return the original stake.

The dealer now follows a clearly defined rule set:

  • Dealer stands on Soft 17
  • Dealer draws on Soft 16
  • A natural Blackjack requires exactly two cards totaling 21

The current table remains intentionally streamlined around:

  • Hit
  • Stand

Split, Double Down, Insurance, and Surrender are not part of the current implementation.

The important difference is that the existing rules are now centralized and explicitly tested rather than being spread across implicit game logic.

Blackjack Input Hardening

Invalid or corrupted wager values are now rejected before they can affect Gold.

The betting system now validates:

  • finite numeric values
  • integer wagers
  • minimum bet
  • maximum bet
  • valid betting increments

This prevents malformed values such as NaN from propagating into the economy.

Economy Safety Fixes

The same class of input issue was also found in Auction and Friend Sale pricing.

Malformed, imported, or otherwise invalid prices could survive long enough to reach later settlement logic.

Version 1.49.1 introduces stricter price sanitization both when offers are created and again when transactions are resolved.

Invalid prices can no longer silently corrupt Gold values.

Save Import Hardening

Save validation has been expanded.

Nested IDs inside social and market data are now validated recursively rather than only checking top-level Card and Inventory records.

This improves save integrity and prevents malformed imported data from reaching UI attributes or later game systems.

Immediate Persistence for Timed Economy Events

Auction expirations, outbids, and Friend Sale settlements are now saved immediately when they resolve.

Previously, some of these state changes could exist only in memory until the next autosave.

On mobile devices, closing the browser during that window could potentially restore an older state on the next launch.

These events now persist as soon as they complete.

Patch Herald Reworked

The Home menu Patch Herald has been redesigned to stay compact.

Previously, patch notes accumulated directly on the Home screen, making the section increasingly long with every release.

The Home menu now shows only the current release in a condensed form.

The first update item remains immediately visible, while the remaining changes can be expanded with:

Show more changes

The full historical patch archive remains available in the dedicated News section.

This keeps the Home screen useful without removing access to older release information.

Dead Code Cleanup

The audit also identified and removed 15 confirmed unreachable or unused function paths across several systems.

This includes cleanup in areas such as:

  • core game logic
  • Crownstead modules
  • Dwarfs
  • Pixel Sweep

The goal was not aggressive refactoring, but removal of code that could be proven to have no active call path.

Release Pipeline Hardening

This startup issue exposed an important weakness in the release process.

A JavaScript file existing in the build is not enough.

It must also be loaded in the correct browser order.

Version 1.49.1 therefore adds stronger release validation around module dependencies and script load order.

The release gate now explicitly verifies that modules required during startup are actually present in the real HTML dependency chain.

This should prevent the same class of issue from silently surviving into future versions.

Save Compatibility

Version 1.49.1 continues to use:

Save Schema 39

Existing compatible saves remain supported.

No progression reset is required.

Heroes, Arsenal equipment, Abyss progression, Company Tactics, Endless records, Oaths, Specializations, Legacy Tower progression, and other existing systems remain intact.

Technical Validation

The hotfix received a broader QA pass than a normal point release.

Validation included:

  • all JavaScript files passing syntax checks
  • startup dependency order validation
  • Heroes Reborn module initialization
  • Save Compatibility regression tests
  • Blackjack rule tests
  • Soft 17 behavior
  • 3:2 natural Blackjack payout
  • normal win payouts
  • push handling
  • malformed wager rejection
  • economy price sanitization
  • nested save ID validation
  • local asset verification
  • image decoding
  • SVG validation
  • manifest validation
  • case-sensitive path checking
  • ZIP integrity validation

Version 1.49.1 is therefore not only a fix for the startup screen.

It also closes several smaller data-integrity and persistence edge cases discovered during the audit.

Files

Knights_of_Crystalis_1.49.1_Company_Tactics_Hotfix.zip Play in browser
2 days ago

Get Knights of Crystalis

Leave a comment

Log in with itch.io to leave a comment.