Skip to content

Version 4.7 Release [Active]

Latest

Choose a tag to compare

@TF2Autoswap TF2Autoswap released this 10 Jun 03:46
· 1 commit to main since this release
62f4186

Changelog - Version 4.7

[4.7] - 2026-06-10


Fixed

  • World model flat path generation — the flat candidate in _world_base_candidates() now correctly drops the c_<name> subfolder when building the w_models/ path. Previously generated w_models/c_<name>/w_<name> (wrong); now correctly generates w_models/w_<name>. World models for flat-structure weapons like the minigun now pack correctly.
  • Windows pip PATH warning — pip auto-installs now pass --no-warn-script-location so the harmless but alarming PATH warning no longer appears on first run.
  • Custom path filename — custom output paths with no .vpk extension now have the generated filename appended automatically, consistent with folder path behaviour.
  • Invalid character check — expanded to catch shell-special characters (|, &, ;, etc.) in addition to null bytes and non-printable characters. Now also applied correctly in CLI mode and dry-run paths.
  • Ornament models in weapon searchc_xms_festive_ornament and similar schema-less non-weapon models are now excluded via a path-based blocklist, preventing them appearing in festive weapon searches.

Changed

  • All-class items with no class-specific variants now appear in all class searches rather than being silently excluded.

Added

  • Schema cachingitems_game.txt is parsed once and saved to output/schema_cache.json. Subsequent runs load the cache instead of re-parsing, significantly reducing startup time. Cache automatically refreshes if TF2 updates items_game.txt.
  • Startup risk warning — shown on every run. First run requires typing agree before continuing. Covers VAC risk, competitive league policies, and using the tool while TF2 is closed. Retries on wrong input rather than exiting.
  • Acknowledgement flag — stored in output/.acknowledged as a SHA256 hash rather than plain text. Not to hide anything (source is fully open); provides light tamper-resistance for liability purposes. Verifiable with: hashlib.sha256(b"tf2autoswap_acknowledged").hexdigest()

Author Notes

4.7 ended up being a bigger release than planned. What started as a world model path fix turned into a proper testing session that caught several issues that had slipped through — the ornament filter, the invalid character check missing CLI paths, and the flat path bug being more broken than originally thought.

The risk warning and acknowledgement system were added this release for liability reasons. If you're wondering about the hashed flag file — it's documented in the changelog, the source is fully readable, and the verification snippet is right there. Nothing is hidden, it's just not plain text for tamper-resistance purposes.

Also switching to GPL v3 this release to align with the mods.tf source code license, making future integration work cleaner. This was always the plan before v5 — it just happened a little earlier than expected.

Thanks to everyone who's downloaded, tested, or given feedback so far. Still very much learning as I go.