Skip to content

[TF2] Festivizer Support for weapons that change their models - #2003

Open
Piogre wants to merge 2 commits into
ValveSoftware:masterfrom
Piogre:model_changing_weapons_festivizers
Open

[TF2] Festivizer Support for weapons that change their models#2003
Piogre wants to merge 2 commits into
ValveSoftware:masterfrom
Piogre:model_changing_weapons_festivizers

Conversation

@Piogre

@Piogre Piogre commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

The Festivizers workshop submission that added Festivizer support to numerous weapons last Smissmas included models for several additional weapons that would have required extra implementation to work correctly.

This PR includes in-code support for three weapons that circumstantially change their base weapon models, to add support for implementing festivizers without causing issues under these circumstances.

The Frontier Justice and Rainblower both swap their visible models out for taunt props during their default weapon taunts (a guitar and a bubble wand, respectively). Currently, the code does not account for what should happen for attachments on the current weapon if it is repurposed for these taunts, as it does for the equippable store-bought taunts. This causes the attachment models to appear floating near the props. This PR fixes this issue, so that weapon attachments (such as festivizers) on these weapons get properly hidden during these taunts.
beforetauntfj
aftertauntfj
beforetauntrb
aftertauntrb

Additionally, the Rainblower and the Lollichop both appear as though they were their stock counterparts (the Flamethrower and the Fireaxe) under certain conditions (when viewed in-game, in the hands of another player in 3rd person, and the player is not in Pyroland). This currently does not account for weapon attachments, causing festivizer attachments for these two weapons to appear broken on these two weapons under these conditions -- on the Lollichop it draws the ill-fitting and mismatched Lollichop festivizer over the stock Fireaxe, and on the Rainblower it draws nothing over the Flamethrower and spits errors into the console due to a bones mismatch. This PR fixes this issue, using the stock weapons' festivizer models when appropriate.

beforefilterlc afterfilterlc beforefilterrb afterfilterrb

This also incorporates the fix for the invisible lollichop fireaxe since it was necessary for testing the changes and part of the same code being edited.

The model filepaths referenced in these code changes refer to models already included in the original workshop submission (and included for convenience in the tf_festives shared dropbox).

Other notes on these weapons (to the weapon base model, item schema, etc) unrelated to the source code are being added to the "2026 Implementation Notes" spreadsheet in the dropbox; the notes for these weapons in particular are still a work-in-progress but I will update that sheet as I go.

Piogre added 2 commits August 18, 2026 05:53
…eddon taunts

"special" (equippable) taunts mark the active weapon as being repurposed as a prop for their duration if applicable, preventing its attachments from being drawn

The same is not done for the two default weapon taunts that replace the weapon with a prop, which causes the festivizer attachment to continue drawing for those two weapons (frontier justice and rainblower) if there is one

This commit adds to those taunts' respective scripts to set this variable for the weapon as well, to prevent a floating festivizer from being drawn during the taunts, should it be implemented for these weapons.
Two weapons, the Lollichop and the Rainblower, change their weapon models to their stock counterparts if the viewer isn't in Pyroland, in certain contexts.  If these weapons were to be made festivizer-compatible, this would cause a problem with the drawing of the festivizer, since it would attempt to draw the model fitted to these pyroland weapons over the stock weapon model.

This fixes this issue, correctly applying the vision filter and reverting to the stock weapons' festivizer models where appropriate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant