Dev Log · Anpfiff1, Update, Bug fix, v2.0.2
v2.0.2: match engine fixes, and the sponsor bonus that never paid
April 2026, the match engine under the microscope:
Detailed feedback from one player set off a thorough review of the match engine. Strikers benefit most: they now score headers as you would expect, and find the net more often.
Match engine
✅ Headed goals weighted by rating, form and position (attack 1.0, defence 0.8, midfield 0.3); before, every outfield player was equally likely
✅ Corners and crosses given position weighting, midfielders preferred
✅ The designated free-kick taker is now ALWAYS respected (previously skipped about 75% of the time)
✅ Tackling events show up in the live ticker again (a field name typo, position_group instead of primary_position)
✅ Cross-team assist attribution corrected: a cross from team A no longer earns an assist for a goal by team B
✅ Offside ghost assists eliminated
✅ Square-root damping instead of linear weighting, for a more consistent spread
CRITICAL: the sponsor bonuses
⚠️ None of the 15 end-of-season sponsor bonuses (title, Champions League and Europa League qualification, top 3/6/10/15, cup win, cup semi-final, survival, fair play, season completion) were ever paid out. The cause: Engine.has_singleton() does not work for GDScript autoloads, so the guard always returned false and blocked the whole payout.
✅ The fix: direct autoload references, duplicate protection through a season guard, the transaction history reset between seasons, and the same bug patched in 13 further places.
Transfers: rating-7 stars were effectively unsellable
✅ Top European clubs (Real Madrid, Barcelona, Inter, Juventus, PSG …) now make offers along the same path as the Saudi clubs, with an oligarch budget and a 25% chance
✅ Distress-sale fallback at a 30% discount
✅ European tier 1 and 2 clubs: credit limit raised to 300 million
✅ Sold players really join the European squad and can line up against you in the Champions League
✅ Saudi offers rebalanced: now the last fallback, at 1.2 to 1.6× instead of 1.5 to 2.5×
Instant simulation and balance
✅ Your chosen eleven stays put; the AI only substitutes on an injury or a red card
✅ Red card: a side down to ten faces a chance ratio of about 3:1 instead of 1.6:1
✅ Contract talks: a seven-year cap, one negotiation per player per season, and no walking out immediately
✅ A new wage-demand formula, with no gradual downward drift
Saving, cards and events
✅ The user-file conflict is gone; saved games carry a database snapshot
✅ Second yellow: the redundant booking is no longer its own comment
✅ Follow-up events run off an is_followup flag instead of being reconstructed
✅ "Goal from a cross" versus "goal from a corner": the right label
Other
✅ 276 country-mapping warnings eliminated
✅ 39 GDScript compiler warnings down to zero
✅ FinanceManager: third-division validation for custom databases
✅ Player progression rebalanced (about 3 changes per club per season instead of 5 to 7)
Thanks to the community. The match engine bugs were found through a detailed match report in which a rating-7 striker went two seasons without scoring. Without that kind of precise feedback these distortions would have stayed hidden.
The Manufaktur dev
Warm regards from the workshopDigitale Manufaktur Rudolstadt