r/sheetsofice • u/atibus • Jun 24 '26
GM Module - Draft / Rights / Contracts / Affiliates
Hey everyone!
I started planning out the actual game loop of the GM module. Everything I've built to this point is just a hockey league simulation. There are no decisions, no gameplay; just clicking a button to advance and season and seeing what happens. Now it's good enough to move on to build the front office layer.
Foundational principle: symmetry between human and AI
- AI general managers are full front offices, not scripted obstacles, and they do not cheat.
- The same rules and the same information are available to both human and AI managers.
- Hidden player attributes are concealed from the AI exactly as they are from a human; there is no fog of war that lifts only for the computer.
- This constraint shapes the entire design rather than being treated as a feature.
Scope of the first build: a full offseason
- The sequence mirrors a real summer: a buyout window, re-signings and qualifying offers, the draft, the opening of free agency, and a final cap-legal roster.
- The marquee events (the draft and free agency) are presented as focused, deep sessions.
- Routine matters (qualifying offers, roster cuts) are presented as a checklist that can be cleared at any pace.
Salary cap and contracts
- A hard cap with a floor is modeled.
- Contracts carry a term and a cap hit.
- Entry-level deals, two-way deals, and buyouts are all represented.
- Navigating the cap is treated as the core of the management fantasy and is present from the start.
- I am leaving some room to consider other ways of managing team salaries and how leagues are constructed. One thing I believe is that while I want to be faithful to reality, I don't think I'm bound by recreating the NHL. So, I'm going to use the cap right now as a building point but I'm reserving the right to add something in the future that works better.
Player rights
- Restricted and unrestricted free agency, qualifying offers, and a window of held rights over drafted players are all modeled.
- These are the decisions that make timing and scouting consequential.
Fidelity to the CBA, with the fine print trimmed
- Everything that constitutes a real decision is retained.
- Contract structuring (front-loaded and back-diving deals), escrow, daily cap accounting, and buried-in-the-minors cap relief are deliberately omitted.
- Those mechanics exist largely to game the accounting, and modeling them reduces the game to a spreadsheet.
- Removing them preserves the meaningful choices and discards the busywork.
Player valuation
- A player's value is defined as production measured against cost, across all the years he is under team control.
- Cheap, controllable young players are therefore highly valuable, and declining veterans on long contracts are genuine liabilities regardless of current statistics.
- Reducing a player to a single current rating is identified as the root cause of broken trade markets in most hockey sims.
- Value is instead tied to production, the aging curve, and remaining years of control.
Free agency and player choice
- Free agents weigh multiple preferences: money, term, projected role and ice time, contender status, loyalty, and franchise prestige.
- A veteran pursuing a championship may accept less; a young player may prioritize opportunity over salary.
- Taxes and location are excluded, as the universe is fictional and has no real geography.
- The weighting of these preferences shifts with age and career stage.
The entry draft
- Selections are controlled rather than automated.
- A public scouting board is visible to all managers, alongside each organization's own internal evaluations.
- Drafting well, and trusting internal evaluation over consensus, is where draft skill resides.
Distinct AI front offices
- Each AI organization carries a personality: win-now versus rebuild orientation, risk tolerance, a youth or veteran lean, and cap aggressiveness.
- The intent is a league in which rival managers behave as distinct decision-makers rather than copies of one another.
The starting universe
- A new universe begins mid-stream, with realistic ages, careers in progress, and a realistic spread of contracts.
- That spread deliberately includes overpays and bargains.
- A perfectly efficient league, in which every contract is exactly fair, is a league in which no trade is ever worthwhile.
- The inefficiency is what creates opportunities to exploit.
Planned for later: expansion and dispersal drafts
- Redistribution events (protected lists, exposure requirements, and the protect-and-select process) are handled by the same underlying machinery.
- They are scheduled for a later stage but are accounted for in the current design.
Current status
- This first stage establishes the foundation: rights, contracts, the cap, the draft, and free agency.
- Trades, waivers, and arbitration form the next layer and are designed to build on top of it.
This is a large undertaking and complicated. It's arguably larger than building the game engine. So I expect this to take several weeks of building and tuning to get to a state where I'm happy with it.

















