UHS Build 12261 – Goalies Be Shakin’ in the Dark

We add two new features to the system with this build: Team Shake-ups and Goalie Empty-Net controls. We’ve also fully completed making the Public Site responsive, meaning you should be able to view your league’s public site on any device or screen size. The site is made for mobile first and expands outwards from there.

We’ve made a number of changes to the css styling of the public site, so if things look wrong, the best thing to do is to hit CTRL-F5 to force a full refresh. If that doesn’t work you can try clearing your browser’s cache. After that, let us know. You may have found a bug we missed in testing.

Our focus will likely be on making the regular UHS site fully responsive. I will tell you that will be a very big task and likely take up to 5 or 6 months. It would probably take us longer but we have learned a lot from converting the Public Site to being responsive.

Also: HOCKEY IS BACK!!!

Team Shake-Ups
When firing a coach, the GM has the option to shake-up that team’s players. This option is available only once per season for that particular team (Pro or Farm). Essentially the GM will have the option to perform two shake-ups in a season: once for each the Pro and Farm teams. This option is ONLY available if the GM is firing a coach; you would not have the option to shakeup your Farm team if you promote your Farm coach to the Pro team, however, you would have the option to shakeup your Pro team since you are firing the Pro coach.

When a shakeup is allowed, the players on that team have their Streaks recalculated randomly. The chances are: 40% Hot streak (3 – 9 games), 10% Cold streak (1 – 5 games), 50% No streak. The new streak overrides whatever streak the player is currently on. For example a player that is already on a Hot streak could still get a new Hot streak but won’t get the games added on and it’s also certainly possible that a player on a Hot streak could suddenly find themselves with no streak or on a Cold streak.

Goalie Empty-Net / Extra Attacker Settings
GMs now have the ability to modify their team’s empty-net / extra attacker settings. You will be able to modify the goal difference your team is losing by as well the time remaining in the game. The goal difference will be 0 – 3 goals, with 2 being the default. Setting the goal difference to 0 will prevent your goalie from being pulled at all.

The time options are in increments of 15 seconds, with the default being 1m 30s (90 seconds) left in the game. You can set this up to a maximum of 3 minutes (180 seconds). If the goal difference is set to 0, it won’t matter what the time option is set to: your goalie will not be pulled.

Public Site Team Pages
All Public Site Team Pages have been updated to be responsive (ie. The data on the page should look good regardless of media device or screen size.) These pages were not fully optimized for responsiveness when the new Public Sites went live. If you are seeing any issues with your Public Site, please let us know.

Public Sites Go Dark
We now have a “Dark Theme” for public sites. To enable, simply go to your public site, go to the UHS navigation menu, click “Go Dark”. Once you’re in Dark Mode you can re-enable the default light theme by navigating to the same location and click “Go Light”.

Public Site Live Games
The Live Games show on Public Sites should now be fully responsive (meaning you should be able to watch them reasonably well on any device). We’ve updated the page to add the teams’ logos and made sure the Live Game mode looks reasonably decent with the Dark Theme.

Player Profile Age Rerate Fix – Hotfix: Oct.1 2017
We’ve updated the player profile’s rerate information (for age-based rerates only) to now show the player’s rerate percentages based on their current age and the current progress of the team through the current regular season.

The values were actually showing their rerate values as if they were a year younger. Additionally the leadership bonus was based on when the team played half their regular season games, so effectively the leadership bonus would be 0% until the pro team played half the season. The leadership bonus will now apply at all times and is a PROJECTION based on players that have played at least half the team’s current regular season games. Reminder: the Leadership Bonus is only applied to players marked as Pro (played more Pro games than Farm + Junior).

NHL Players w/ Injuries – Hotfix: Sept.24 2017
We’ve changed how UHS handles NHL players with injuries. Previously, we simply removed the player from the team and had them placed in free agency, however, this meant any team could then pick them up, despite being injured.

We will now keep the player on the team but have them set to be injured for 99 games. Once the real team takes the player off the injured reserve list (again, going by the data on CapFriendly.com), we’ll unset the injury. If you want to use the player anyway, you can still go in and edit their injured games back to 0.

This change takes effect for new leagues or leagues importing NHL Teams w/ players or leagues importing NHL Players individually. It will not change the injury status of NHL Players that already exist in your league.

Bug Fixes & Miscellaneous Changes
– Team Names and Logos will now link to that team’s Home Page for Public Sites.
– Public Site League Standings now show less information on small screen sizes.
– Fixed an issue where Team logos were not appearing for the League – Special Teams statistics page for some leagues.
– Fixed an issue where Games Results in public sites were showing OT goals despite the game being decided by a shootout.

Hot Fixes
– Changes were made to Public Site’s Team Personnel pages to prevent columns from being hidden underneath the Social section on the right side. These changes include: removing the Status column, changing the Jersey header name to #, and moving the Total / OV column to appear at the beginning of the player’s characteristics block. Hotfix: Sept.19 2017.
– Fixed an issue where the Home, Away and Last-10 records were not summing properly. OTW & SOW will count as Wins, OTL & SOL will count as Losses in these columns. Hotfix: Sept.26 2017.
– Fixed an issue where COMs could not import NHL players when creating / importing NHL Teams. Hotfix: Oct.4 2017.

NHL Player Injury Hotfix – Sept.24 2017

We’ve changed how UHS handles NHL players with injuries. Previously, we simply removed the player from the team and had them placed in free agency, however, this meant any team could then pick them up, despite being injured.

We will now keep the player on the team but have them set to be injured for 99 games. Once the real team takes the player off the injured reserve list (again, going by the data on CapFriendly.com), we’ll unset the injury. If you want to use the player anyway, you can still go in and edit their injured games back to 0.

This change takes effect for new leagues or leagues importing NHL Teams w/ players or leagues importing NHL Players individually. It will not change the injury status of NHL Players that already exist in your league.

UHS Build 12101 – Show Me the MONEY!

UHS Build 12101 – September 2017
It’s almost hockey season again! I’m really looking forward to seeing the NHL get back on the ice, watching the best league in the world. This build has several changes around player salary expectations; AutoGM player, trade and free agency evaluations; a new target ticket price alert for COMs; rookie handling and applying a maximum skill for players sent to the juniors and many more miscellaneous changes and bug fixes.

We are also continually updating NHL rosters based on the player movements and signings found on CapFriendly.com. Through September I’ll be updating rosters on Sundays but once we get into the regular season, I’ll be trying to make changes for major moves as soon as they happen and again, Sundays will be for the remainder of changes that may have happened that week. Once the regular season starts, I’ll be going through all NHL rosters to remove players that are on the IR (for new leagues these players will still be present, however, they won’t be assigned to any team).

Salary Expectations – Salary / Contract Changes
We have implemented a new method of determining salary expectations, replacing the old method of using the player’s or coach’s last contract value offered. The old method allowed teams to get 90+ players at a fraction of their true value.

The new method will create a salary expectation on a per-season basis based on your league’s salary cap, the player’s skill and their age. This also applies to coaches and free agency.

The logic for accepting an offer (regular contract or free agency) has also changed to be focused more on what you are offering in terms of salary. The Salary Expectation sets to the ceiling at 90% acceptance, however, contract length, player/coach age, the team’s winpct and when the contract starts all still play a part in determining whether your offer will accepted.

Additionally, there is no longer a minimum of 10% acceptance, in fact, it’s entirely possible for your signing factor to go into the negatives if your offer is too low. The maximum of 90% acceptance is still in effect.

Further to address lowball offers, if the offer is declined (and the GM permitted to make a new offer), the Minimum Offer will be increased by 30%. It is entirely possible for the minimum offer to exceed the salary expectations, however, occurrences of this should be rare.

By default all leagues will come with a new SalaryCap of $75 million to match that of the NHL. This will apply to leagues that get reset using the Reset League tool. NHL leagues will have player contract lengths randomly set on league creation.

While we try and catch as many bugs as we can in testing, there are invariably, some that get found when we go live. As always, if you find any issues or have any questions that are not covered in the wiki, please let us know via ticket or discord.

Maximum Farm (JUNIOR) Skills
To prevent fully automated leagues from sending highly skilled young players down to the juniors (see Edmonton’s McDavid and Toronto’s Matthews), we’ve changed the Max Farm Skill to also apply to junior players. Additionally, all new leagues will have the Maximum Farm Skill Age set to All Ages by default. Existing leagues will not see this setting changed. These changes will ensure that players that are 20 and younger and highly skilled will remain on their pro team and not be sent to the juniors for development.

Rookie Determination
Speaking of Rookies, we’ve changed how we are storing Rookie players in the database. Currently Rookies really only works for your current season, when you go back to look at previous seasons’  league leaders the rookie designation may be gone as the player is no longer currently considered a rookie. Additionally, we are no longer evaluating rookies at the farm level: The Rookie designation is for pro league only.

By default Rookies are considered to be any player that is 25 or under and played in at least 25% of their team’s regular season games.

Creating Draftable Juniors
COMs will now have a new Age Group option when using the Add Players function: Draftable players. These players are basically juniors except all created at Age 18.

AutoGM Trading – Player Evaluations
We’ve added code to impose the following restrictions on AutoGM trading:

– Trading will only happen during the Regular Season.
– Trading will only happen if the AutoGM does not have any pending free agency bids, players waiting to clear waivers or pending claims on other players waiting to clear waivers.
– Players being traded to the AutoGM will be evaluated as to whether they will actually be used on the team.

AutoGM Outgoing Trades
Previously AutoGMs were creating trade proposals once every X hours, depending on how the COM had set it. We’ve changed this to instead be a trade proposal CHECK will be made once every X Regular Season Games Played by the AutoGM team. By default we have changed this to be once every 7 GP.

Additionally, the chance was previously accumulative, so that successive trade proposal failures would eventually result in SOME kind of trade being offered to help generate movement in All-AutoGM leagues. This has changed to now be a flat 20% chance (by default). This chance will be checked once every X regular season GP (see the previous paragraph) and will only be made ONCE.

You can disabled AutoGM initiated Outgoing Trades by setting the GP to 0.

Using the default settings all AutoGM teams will have a 20% chance to look at making an outgoing trade every 7, 14, 21, 28, etc GP. If the chance is successful there are further checks made to determine whether a VIABLE trade will be offered or even whether that particular AutoGM should initiate a trade (ie. The best team in the league probably won’t be making offers… it’s possible, just not likely).

AutoGM Prospect Handling
By default, we’ve changed how AutoGM’s handle age 20 and younger prospects. Previously AutoGMs would send the prospect down to the juniors if they are 20 or younger, regardless of their skill. This makes sense for leagues using Stat rerates since it’s beneficial for the player to be in the lowest league allowed to rerate up.

This has changed now so that Age-Rerate Leagues (this is default rerate method for new leagues) will allow the AutoGM to keep the player on the pro team if their skill is higher than the Max Farm Skill value (by default set to 70). This means that players like Auston Matthews and Connor McDavid will actually play on their team’s pro rosters by default when creating new NHL-based leagues.

Once the NHL season has begun, if you notice any 20 and under player that has earned a permanent spot on their team’s pro roster (the real NHL team) and is being sent down by the AutoGM in UHS, please let me know so we can adjust their skill appropriately (71+ and Age-Rerates). Alternatively, you can lower the MaxFarmSkill value so that some of these players will not be forced down.

AutoGM Free Agency Poaching Changes
Previously, we had the AutoGM look at most, if not all, free agents and see if they could fit somewhere on the team. In some cases, this could result in the AutoGM signing a FA and then immediately buying them out due to protecting prospects.

If the AutoGM is not looking to fill their team (meaning they have a full pro roster), the AutoGM will now consider whether the replacement player will replace a prospect. If this is true, the AutoGM will not make a bid on the free agent and instead opt to keep the prospect. A prospect is defined as a player that is at MaxAgeProtected or younger.

Target Ticket Price
By default, league ticket prices are set to $100 maximum. With leagues that run shorter regular season schedules, the ticket prices need to be increased otherwise teams will not earn enough money to pay their players. We will show an alert to COMs and Owners if the league’s current maximum ticket price is lower than the target price.

The target price is calculated as (SalaryCap * 80%) / Arena_Seat_Average / Regular_Season_Home_Games.

Relegation League Roster Changes (Hotfix: August 2 2017)
Relegation Leagues are run very differently from standard leagues: There are no farm or junior leagues, so no waivers. In some relegation leagues the AutoGM would treat players under the MaxAgeProtected (by default, age 23), as farm players and mark them as Farm, thereby allowing those players to escape the wrath of the Pro team’s “skill culling” (signing higher skill free agents and buying out lower skilled players).

The following changes will take effect for Relegation Leagues only:

– Teams will be allowed a maximum of 10 centers, 10 left wingers, 10 right wingers, 16 defensemen and 6 goaltenders for a total of 52 players. (Forwards are added to the list of C, LW, RW as needed).

– Lesser skilled players that fall out of the maximums for each position will be bought out and placed in free agency if the team has enough funds to buy the player out.

– All players, regardless of age are fair game for a pro roster position (even as low as age 15). If they are skilled enough then they are worthy.

When adding new players (using Manage > Players > Add), it may take some time for AutoGMs to get all the best free agents they could possibly have as AutoGMs are limited to making only a handful of offers if their team already meets the minimums for a game roster.

AutoGM teams will still create Makeweight players if the team’s next scheduled game is expected to occur before their free agents are signed (this is done to ensure all AutoGM teams have a game roster set).

Age Rerates – Leadership & Coach Bonus Changes (Hotfix: July 31 2017)
To add an incentive to keep around older players, we have added a Leadership bonus to all players that qualify at the Pro Level. Additionally, we are decreasing the Experience and Development bonus that coaches apply to rerates by half (10% is now 5% and 5% is now 2.5%). This is being done to add another factor for the GM to decide if it’s better for their team to play a younger player on the pro instead of the farm.

The Leadership bonus is based on your league’s UFA Age and is generated if that particular player is over the UFA Age (28 by default) and played at least half the season on the pro team. The player will generate a +0.1% to ALL PRO PLAYERS (again, Pro qualifying) for every year they are above the UFA Age. For example: A player that was 30 years old would grant all Pro qualifying players a +0.2% increase bonus on their rerate increase chance (30yo – 28yo * 0.1%) if they played at least half their games on the pro team.

This bonus is cumulative. So multiple players qualifying will grant higher bonuses. It is quite possible to stack old players to get a high bonus, however, you will have to weigh that against not developing your younger players and possibly dealing with Salary Cap issues.

The default bonus for being considered a farm player has changed from +10% to +5% for players of all ages. This decrease is designed to make the GM really look at their team and see where the best place is for their players to rerate. If that’s the pro team, they’ll need to get them the pro games to qualify as a pro players, if that’s the farm or juniors, they can move them down. This will also put more emphasis on maximizing your coach’s (both pro and farm) Development and Experience skills.

The default bonus for being considered a junior player has changed from +5% to +7.5%. Overall we are targeting an average of +7.5% bonus to the increase chance, so the bump to Juniors was needed to keep it as a viable option.

Age Rerate – Player Level Determination (Hotfix: July 28 2017)
The default Player Rerate code (by age) has been updated to look at the number of games played at each level for the player to determine what level they should be processed at. Previously the level was taken from wherever the player ended up at the end of the season, even if the player didn’t play any games there. For example: a junior could never have played a game on the Pro team but then get promoted right at the end to benefit from the Pro team’s coach development bonus.

What we are doing now is looking at all the Regular Season games played for the player. Whatever level has the highest games played will be the level that is used for their rerates. In cases of ties we use Pro > Farm > Junior.

Waiver Claim Adjustments (Hotfix: July 28 2017)
From time to time we make adjustments to the code to mimic the rules and procedures of the NHL. In this case we are adjusting / adding a rule concerning Player Waivers. When a player is placed on waivers and gets claimed, if the new team also places them on waivers, the original team can make a claim, and, if the player is won, they will automatically clear waivers for the remainder of the season.

In the case of UHS, the player will be found on the pro team (like a regular player claimed via waivers), however, they will now have the ‘Send to Farm’ option so the team can send them immediately to the farm without having to place them on waivers again (for that season). This is being implemented to remove a scenario I call “Waiver Wars” which has come up in our TJHL test league (Thanks to the TJHL for bringing this to my attention).

Bug Fixes & Miscellaneous Changes
– Farm Team information will no longer appear on the GM’s Team Home page if a real farm team has not been assigned to the pro team.

– Teams can no longer hire a farm coach if there is no real farm team assigned to the pro team.
– By default all new leagues will show OTL and SOL in league standings with Ties hidden.
– By default all new leagues will have OTL worth 1 point.
– Fixed an issue where creating junior players after season 1 would result in the players’ ages being only 15-16. This will now only happen if the league actually has junior teams.
– Fixed a minor sorting issue with league’s activity reports.
– The banner / login area has been changed slightly to make the area shorter. The advertisement for non-Premium leagues will now appear as a separate row.
– Your league’s database information can now be found on your league’s information bar.
– Fixed an issue where AutoGMs were either claiming players from waivers or signing players from free agency and then immediately turned around to buy them out. (hopefully it’s fixed!!)
– Fixed an issue where new leagues were not having their Season 4 entry draft picks created.
– Fixed an issue where the Last Wage column was incorrectly appearing for Junior Prospects in the COM’s Team view.

Hot Fixes
– Updated the one-time Paypal donation button to also be applied against a League’s Premium Service expiration date. Works for every increment of $5. Hotfix: July 16 2017.

– Released a change to automatically protect any league that purchases a year Premium Service or league’s that have purchased 10 or more months of Premium Service. Hotfix: July 17 2017.
– Fixed an issue where player were not having their Cup value increased after their team won the Pro championship. Hotfix: July 18 2017.
– Removed option to create leagues with AHL and OHL leagues / teams. Hotfix: July 19 2017.
– Fixed an issue where a player’s Quickness skill was not being correctly used to mitigate the strength of a check against them. Hotfix: July 19 2017.
– Fixed an issue where an advertisement banner was being shown on the Public Site for Premium leagues. Hotfix: July 19 2017.
– Fixed an issue where AutoGMs were not using free agency properly to fill their rosters. Hotfix: July 19 2017.
– Fixed an issue where goaltender’s Minutes and GAA were not being calculated properly on Public Sites. Hotfix: July 19 2017.
– Fixed an issue where loading a SavePoint for relegation leagues and would result in creating blank positions in the League Structure if relegation was re-processed. This also resulted in causing the AutoGM to go haywire (time-outs, excessive lag due to reaching 100 player limit). Hotfix: July 20 2017.
– Fixed an issue where goaltender’s Minutes were being calculated and shown as seconds. Hotfix: July 20 2017.
– Fixed an issue where All-Star games could not be created if the regular season schedule was completed. Hotfix: July 21 2017.
– Automatic setting of a GM Draft list has been added to the Premium service. Hotfix: July 23 2017.
– Fixed behind the scenes issues that were generated E_NOTICES and WARNINGS. Hotfix: July 24 2017.
– Fixed an issue where moving a player between Pro/Farm/Junior levels would result in an incorrect Finance SeasonNet and Balance calculation (Media revenue was not being considered). Hotfix: July 28 2017.
– Fixed an issue where UHS was always reporting incorrect lines. Hotfix: July 31 2017.
– Fixed an issue where the base percentage for free agency offers was always 50% during the off-season and pre-season despite there being a regular season winpct available from the previous season. Hotfix: August 2 2017.
– Fixed an issue where free agency offers were not considering the Minimum Offer and the potential for a decreased Last Contract Value (due to lack of playing). Hotfix: August 3 2017.
– Fixed an issue where the AutoGM was under-evaluating players being traded away. Hotfix: August 5 2017.
– Changed the AutoGM to only make “Troubled Finances” offers to teams that can afford the asset being traded. Hotfix: August 15 2017.
– Fixed an issue where the AutoGM would continue to make “Troubled Finances” trade offers even if they had exceeded the 10 offer limit in a season. Hotfix: August 15 2017.
– Fixed an issue where playing an individual game in live game mode would not actually sim the game. Hotfix: August 17 2017.
– Fixed an issue where leagues that had unused picks due to changing the number of draft rounds would not have newly created players or unsigned players moved to free agency until the OffSeason was completed. Hotfix: August 20 2017.

Relegation League Roster Changes (Hotfix: August 2 2017)

Relegation League Roster Changes (Hotfix: August 2 2017)
Relegation Leagues are run very differently from standard leagues: There are no farm or junior leagues, so no waivers. In some relegation leagues the AutoGM would treat players under the MaxAgeProtected (by default, age 23), as farm players and mark them as Farm, thereby allowing those players to escape the wrath of the Pro team’s “skill culling” (signing higher skill free agents and buying out lower skilled players).

The following changes will take effect for Relegation Leagues only:

– Teams will be allowed a maximum of 10 centers, 10 left wingers, 10 right wingers, 16 defensemen and 6 goaltenders for a total of 52 players. (Forwards are added to the list of C, LW, RW as needed).

– Lesser skilled players that fall out of the maximums for each position will be bought out and placed in free agency if the team has enough funds to buy the player out.

– All players, regardless of age are fair game for a pro roster position (even as low as age 15). If they are skilled enough then they are worthy.

When adding new players (using Manage > Players > Add), it may take some time for AutoGMs to get all the best free agents they could possibly have as AutoGMs are limited to making only a handful of offers if their team already meets the minimums for a game roster.

AutoGM teams will still create Makeweight players if the team’s next scheduled game is expected to occur before their free agents are signed (this is done to ensure all AutoGM teams have a game roster set).

UHS Hotfixes – July 31 2017 (Leadership & Coach, Farm/Junior Bonus Changes)

Age Rerates – Leadership & Coach Bonus Changes (Hotfix: July 31 2017)
To add an incentive to keep around older players, we have added a Leadership bonus to all players that qualify at the Pro Level. Additionally, we are decreasing the Experience and Development bonus that coaches apply to rerates by half (10% is now 5% and 5% is now 2.5%). This is being done to add another factor for the GM to decide if it’s better for their team to play a younger player on the pro instead of the farm.

The Leadership bonus is based on your league’s UFA Age and is generated if that particular player is over the UFA Age (28 by default) and played at least half the regular season on the pro team. The player will generate a +0.1% to ALL PRO PLAYERS (again, Pro qualifying) for every year they are above the UFA Age. For example: A player that was 30 years old would grant all Pro qualifying players a +0.2% increase bonus on their rerate increase chance (30yo – 28yo * 0.1%) if they played at least half their games on the pro team.

This bonus is cumulative. So multiple players qualifying will grant higher bonuses. It is quite possible to stack old players to get a high bonus, however, you will have to weigh that against not developing your younger players and possibly dealing with Salary Cap issues.

The default bonus for being considered a farm player has changed from +10% to +5% for players of all ages. This decrease is designed to make the GM really look at their team and see where the best place is for their players to rerate. If that’s the pro team, they’ll need to get them the pro games to qualify as a pro players, if that’s the farm or juniors, they can move them down. This will also put more emphasis on maximizing your coach’s (both pro and farm) Development and Experience skills.

The default bonus for being considered a junior player has changed from +5% to +7.5%. Overall we are targeting an average of +7.5% bonus to the increase chance, so the bump to Juniors was needed to keep it as a viable option.

UHS Hotfixes – July 28 2017 (Age Rerates & Waivers)

Two hotfixes were released today, one to close a rerate loophole for Age Rerates and another to implement an NHL waiver rule to prevent / reduce the frequency of players being stuck in the middle of a waiver war (This can happen from time to time with the AutoGM).

Age Rerate – Player Level Determination (Hotfix: July 28 2017)
The default Player Rerate code (by age) has been updated to look at the number of games played at each level for the player to determine what level they should be processed at. Previously the level was taken from wherever the player ended up at the end of the season, even if the player didn’t play any games there. For example: a junior could never have played a game on the Pro team but then get promoted right at the end to benefit from the Pro team’s coach development bonus.

What we are doing now is looking at all the Regular Season games played for the player. Whatever level has the highest games played will be the level that is used for their rerates. In cases of ties we use Pro > Farm > Junior.

Waiver Claim Adjustments (Hotfix: July 28 2017)
From time to time we make adjustments to the code to mimic the rules and procedures of the NHL. In this case we are adjusting / adding a rule concerning Player Waivers. When a player is placed on waivers and gets claimed, if the new team also places them on waivers, the original team can make a claim, and, if the player is won, they will automatically clear waivers for the remainder of the season.

In the case of UHS, the player will be found on the pro team (like a regular player claimed via waivers), however, they will now have the ‘Send to Farm’ option so the team can send them immediately to the farm without having to place them on waivers again (for that season). This is being implemented to remove a scenario I call “Waiver Wars” which has come up in our TJHL test league (Thanks to the TJHL for bringing this to my attention).

UHS Build 11454 – Warning: Biohazard!

UHS Build 11454 – July 2017
This is another large build that comprises many technical / system changes as well as a handful of quality of life and enhancements for league COMs and GMs. We’ve automated most of the build deployment processes and are removing a few tables where data was being duplicated, resulting in inflated league database sizes. We’ve updated all NHL teams based on the amnesiac rosters over at wasserlasser.com, including an updated NHL schedule for the 2017-18 season (yes, including the Vegas Golden Knights).

We’ve added a Team Salary Projection page that uses a CapFriendly.com style display to let you see how your player contracts line up at a glance. Players can now get sick: the Contagion has been released! AutoGMs have been further tweaked to introduce trade fatigue to further prevent poaching.

It’s a big build. Happy birthday to me (I’m a day late!)

NHL Updates
We have updated our NHL defaults by adding the new Vegas Golden Knights, the full 2017-18 NHL schedule and all player skills & characteristics. Player skill / characteristics were created by converting the amnesiac NHL09 rosters from NHL09 skills to UHS skills. Mileage may vary, I’m sure.

If you set the AutoGM on for all teams, there will be a handful of players that will be bought out. Two teams will require makeweights (one each for Boston and Philadelphia) as they are short on positions to fill a game roster. I will be updating the rosters with transactions as the month progresses, however, I will not be updating player skills until next summer unless there is something drastically wrong.

If you are interested in volunteering your time towards maintaining player skill characteristics for us, please open a ticket and let us know.  We’re looking for someone that can objectively quantify player skill values using the UHS set of skill characteristics for new players (farm players that are moved up from time to time) and then a larger update based on the previous season once a year.

Team Salary Projections
Instead of using Excel to manually generate a CapFriendly-style layout for your team’s salaries, you can now go to Team > Finances > Salary Proj. to find them. The salary projections will show player salaries for up to 6 seasons and will also consider things like contract extensions, player ages and free agent status.

For seasons beyond the current one, the projections will make some assumptions:
– Players 20 and under will be in the juniors and have their salaries adjusted appropriately (10% of regular contract value).
– Players aged 21 to the Maximum Protection Age (the max age they can be sent to the farm without clearing waivers) will be assumed to be on the farm team and have their salaries adjusted appropriately (25% of regular contract value).
– Players older than the Maximum Protection Age are assumed to be on the Pro team and will use the full value of their regular contract.

Players are also grouped by C, LW, RW, F, D, G to help you see where contracts are running out by position. Player’s Level, Age and Skill are based on the current season only, the first column holding salaries. The Skill column will display either the player’s total skill (skills shown on) or the player’s skill class (skills shown off).

The projections will show the salaries for a full season only, so once a contract is expected to expire at the start of the next season either a red UFA or green RFA will be display to let you see when that player will be leaving your team.

Player Contagion / Sickness
Players can now get sick. There is a low base chance they will contract some kind of illness / flu. The lower the player’s IJ skill, the more games they will miss. If a player is ill, they are still allowed to play, however, their skills in the game are drastically reduced (by at least 50%). Players may spread the illness to other players in the same game on both their own team and their opponents. AutoGMs will never play a sick player and treat them as Injured / Suspended.

Player sickness does not apply to junior or all-star level games. If a junior player becomes sick during a pro/farm game and is moved back to the junior league before recovering, they will recover at the normal rate, however, they will not infect any other players.

AutoGM Logic Changes
– AutoGMs now have trade fatigue applied to incoming trades. Fatigue will adjust depending on the success of the team and the number of trades that they’ve already accepted.
– AutoGM teams will now be processed in a random order instead of the order they were added in UHS.
– AutoGM teams will no longer make bids on free agents that have at least 10 teams with valid / active bids on them. This is being done to cut down on the churn the AutoGM is creating with large numbers of free agent offers in bigger leagues.

Saved Lines
Previously we stored your teams’ Saved Lines in the overall UHS DB, however, we’ve decided to move them into your respective leagues. You should not see any difference in how they operate, however, if your Owner/COM decides to restore an older SavePoint where your lines did not exist, you would no longer see those saved lines.

Build Releases Going Forward
We’ve changed up how our build releases will be handled. A lot of the manual processes / activities are now automated. We’ve also split out the SavePoint updates so that once the build is released to current Leagues, you’ll be able to get back into the game and continue simming sooner than before.

What we have done, however, is that while UHS will be unlocked, loading or creating save points will be disabled as we will be processing your SavePoints behind-the-scenes. As a result, you may not be able to move your league forward from the playoffs to the offseason as this requires a SavePoint to be created.

Overall, this will allow us to release smaller builds more quickly with far less downtime since SavePoint updates take up about 90% of the entire processing time.

Bug Fixes & Miscellaneous Changes
– Fixed an issue where Goalies were using old code to check if they were rookies in the Team Players statistics.
– Fixed an issue where a warning would appear when deactivating an All-star team.
– Fixed an issue with Public Sites where the statistics drop-down would always display Playoff Series if the league was in the Playoff SeasonType.
– The default Salary Cap for new leagues or reset leagues is now $75 million (up from $50 million).
– Fixed an issue in public sites where the drop-down menu link for a team’s Personnel list would instead lead to the News page.

Hot Fixes
– Updated PubSite’s League Standings and Team Home pages to properly display team logos. Hotfix: May 6 2017.
– Updated PubSite’s Game Results to properly display team logos. Hotfix: May 6 2017.
– Updated PubSite’s Schedule page to properly display team logos. Hotfix: May 6 2017.
– Updated PubSite’s Players by Team, League Leaders – Goalies, League Leaders – Players stats pages to properly display team logos. Hotfix: May 6 2017.
– Updated pages to reflect TJHL’s faces and logo directories. Hotfix: May 7 2017.
– Released fix for issue where League’s Free Agency begins before the Entry Draft is over. In these cases, players will not be removed from teams even if the Free Agency time has started until all Entry Draft picks have been made. Hotfix: May 16 2017.
– Fixed an issue where players getting a Major + Game penalty were only getting the 10 PIM instead of 15. Hotfix: May 16 2017.
– Applied another fix for the Major + Game penalty issue. Hotfix: May 24 2017.
– Fixed an issue where Coach Rerates would return warnings. Hotfix: May 24 2017.
– Fixed an issue where only a small portion of teams were being shown in each standings division, regardless of how much vertical space was present on the page. Hotfix: May 30 2017.
– Fixed an issue where Game Results were not appearing on the League Home page for relegation leagues. Hotfix: May 30 2017.
– Fixed an issue where logos could not get uploaded if the team’s current logo no longer existed. Hotfix: June 5 2017.
– Fixed an issue in Public Sites where games going to overtime were not displayed properly when viewing the Game Results. Hotfix: June 25 2017.

UHS Build 11138 – Building a Foundation (Six)

UHS Build 11138 – May 2017
This build is more focused on the Public Site front-end to make the site more responsive by device as well as adds a few back-end system improvements.

Public Site Overhaul
The public websites for all leagues have been given a much needed overhaul. The sites were made with Foundation 6 with the intention that they could be used on pretty much any device. Most of the site is completely new with new or updated functionality. Near the end, we cut a few corners and simply did a Foundation 6 theme update / application so the pages would work. Team pages and the Live Game functionality are part of this and are slated for an update in the future.

One of the more important changes that happened is on the back-end. Previously league websites pulled from their own specific directory… when it came time to deploy an update for public sites, we had to deploy it to 80+ league sites every time. All leagues will now be running from a single directory: PubSite.

Your public website location will be found in UHS when you log in. The Public Site link has been updated to use the new site location… you should copy and send this link to your GMs, especially to GMs that are a member of more than one UHS league. Your LeagueID is passed through URL (don’t worry, we check things to make sure we don’t get an injection attack) so that you can look at the league you want.

By default the PubSite league will show TJHL (our original and official testing league).

The long-term goal here is to move the UHS site towards a responsive platform, using Foundation 6 and the Public Site as the basis for the change.

More info on Public Sites can be found at http://wiki.hockeysim.ca/index.php?title=Public_Sites

New Coach Stats
We added some random coach stats… more to fill out the coach’s stats profile. The stats are randomly generated and have no impact on the game or rerates. What do they all mean? We’re leaving that up to you. Some will be obvious, others won’t.

Bug Fixes & Miscellaneous Changes
– Access Logs for leagues will now only keep entries that are 180 days or newer. Anything older will be permanently deleted.

Hot Fixes
– Deployed a logic fix for AutoGMs attempting to sell off players to get under the Salary Cap. The AutoGM will no longer make sell off trade offers if they have made 10 or more attempts to a single team. Additionally, the value of the player will be decreased (desperation) after the 4th attempt by 15% to a maximum of 75% of the regular value of the player.  This will reset once the season has changed over. Deployed February 8 2017.
– Deployed a fix to Leagues’ season change-overs where the offer tables for free agency were not being purged.  Deployed February 8 2017.
– Fixed an issue where team account balances would be recalculated without considering Marketing Revenue. Deployed February 8 2017.
– Beefed up AutoGM trade logic to protect younger prospects from getting traded for low return players. Deployed February 19 2017.

UHS Build 10635 – Finally Time for Bed

UHS Build 10635 – January 5 2017
This is a hybrid maintenance / enhancement build. Initially I had begun creating the new Team Home and the Marketing / Bonus Revenue additions when I had noticed a relatively new league with an abysmally slow sim run time. One thing led to another and I suddenly found myself smack in the middle of some DB optimizations.

I had also uncovered the issue with page load times being centered around AutoGM teams appearing in the UHS instant messenger. Once that was fixed I kind of felt like I was on a roll and decided to go all in on the optimization issues I had been seeing.

This was certainly a lengthy release. As I write this I’ve been up for 24 hours straight. The build release itself has been going for nearly 12 hours, a lot longer than I thought it would go. Hopefully we won’t have to go through nights like this again. Time for bed.

Marketing / Bonus Revenue
We’ve added an option for pro teams to earn extra revenue. Initially this was supposed to be something where the team invested in something like Lawyers/Medical, however, it became apparent that eventually all teams would just wind up at the maximum level anyway. I decided to go in a different direction.

For each game your pro team plays there is a 5% chance (by default) that you will earn extra revenue. By default the extra revenue will be 10% – 100% of the normal revenue that would have been earned for that game. All settings are manageable by the COM. Setting the chance to 0% will disable the functionality.

All finance pages have been updated to show the extra Marketing revenue.

Team Home
The Team Home page has been slightly redesigned. The layout was intended for PC browsers as you’ll very likely see some overlapping on mobile browsers. The page will now feature the last 5 game results (instead of just the last game), next 5 upcoming games and the roster/line checker for the Pro and Farm team in their own sections.

Sim Engine & DB Optimizations
I spent most of the day looking at the SIM Engine performance and added a few indices to our tables to speed things up. Overall for very large leagues or ones that simmed quite a bit, the engine ran very slow, sometimes taking as long as 50 seconds to sim just a single game. That will change back to the more normal speed / average of between 1-3 seconds per game (sometimes a little more depending on server usage).

Additionally I added other indices to help prevent duplicate stat inserts. I’m not sure exactly why the duplicates are happening yet, however, adding a unique index for specific fields in each table will basically prevent the duplicates from getting inserted. When this build is released I plan on wiping all league’s aggregate Player and Goalie stats and rebuild them before UHS is brought back online to remove the duplicated stats.

Bug Fixes & Miscellaneous Changes
– Fixed an issue where errors were being logged in the database if a team did not have a coach assigned to a team. User would never see these errors.

Hot Fixes
– Fixed an issue where teams no longer owned coaches after the build deployment. Hotfix: Jan.1.2017.

– Fixed an issue where users were not able to reset their password. Hotfix: Jan.2.2017.
– AutoGMs will no longer appear in the UHS IM. This GREATLY improves the loadtimes for pages. Hotfix: Jan.3.2017.
– Released code to better handle Live vs. QA leagues. Hotfix: Jan.3.2017.

UHS Build 10515 – Age Rerates, Farm Coaches and more

UHS Build 10515 – January 2017
Happy New Year! This build was intended to be only for adding Age Rerates into the system, however, I got ambitious and decided to add Farm Coaches as well. The addition of Farm Coaches added a LOT more functionality and customization to the system than I thought was going to be needed. I was really hoping to get this in before the turn of the year but such is life.

Age Rerates
We are introducing a new rerate system that is based on Age. The goal is to add a rerate system that is very much based on the real world instead of the rerate system UHS has traditionally used. With the new system, younger players will typically rerate up, peak at around age 26 and start to decline around age 29 and on.

Coaches for the TEAM the player is on will grant bonuses or penalties based on the Coach’s Development (young players) and Experience (older players) skills. Additionally, bonuses will be granted to younger to mid-aged players if they are on the farm or junior team for development.

Player Training is still an option for GMs that want to focus on a particular player as it will no longer be possible to micro-manage a player’s rerate via games played.

All players are still required to have played in ten regular season games otherwise they will suffer a rerate penalty. It will still be possible for them to rerate up, they’ll just have less of a chance to do so.

By default, all NEW leagues will use the Age Rerate method. All existing leagues will continue to use the traditional Stats Rerate method.

More detailed information on the rerate percentages and modifiers can be found on the UHS Wiki.

Farm Coaches
Farm Coaches are here!

The Manage Coach page has been updated to show you both your Pro and Farm coach. For leagues where Skills are Hidden, we will now show you the coach’s game modifier (+2, -1, etc) for each of their skills instead of the description (Excellent, Poor, etc). The action buttons for each coach will now take you to a new page with further information on the desired action before you actually commit to it.

GMs coach options are:
– Fire: Fire the coach. There will be an option to promote the Farm coach to the Pro team if you desire.
– Renew: Renew the coach’s contract.
– Promote: Promote your farm coach to the pro team.
– Perm: Respond to the coach’s permission request to speak to other teams.

Coach Profiles have been updated to add Permission texts as well as whether the coach is holding out and/or Disgruntled with the team. The scouting / skills section has been moved to appear directly underneath the Coach’s vitals instead of way over on the right side of the page.

GMs have the option to request permission to speak with another team’s FARM coach. If permission is granted, any team may make an offer to that Farm Coach as long as it is to take a PRO TEAM coaching position. Permission must be granted within 72 hours (by default) or else the coach will automatically be given permission. Should the team decide to not grant permission, they run the risk the coach will no longer sign with them and possibly become disgruntled, negatively affecting players during farm games.

Offers made to Farm Coaches cannot be retracted at all. Once made, the offer will be acted upon in time (as set by the COM). Additionally, offers made must exceed the Farm Coach’s current offer. Any offer made automatically comes with a 25% penalty, so offers will need to be financially adjusted to compensate.

Coach “Free Agency” pages are now gone for GMs. Instead, all options to manage a coach will be found in the Personnel page under Manage Coaches. COMs will still have a modified version of the Coach Free Agency page, however, information on number of offers and expiration dates have been added to help the COM troubleshoot any potential issues.

Passing / Skating Determinations
Previously the Passing/Skating starting chance was at 50% (before modifications) for the home team, however, this has now been bumped up to 55%. The extra 5% was actually supposed to be there but never got changed. It’s intended to simulate ‘home ice advantage’.

Draft Toggle
We have added an option to toggle the Draft for Standard UHS leagues (Relegation leagues already have this option disabled). If Drafts are disabled, all players will be added to free agency, including Junior players.

Bug Fixes & Miscellaneous Changes
– On Public Sites, the team’s Coach will now appear at the top of the Personnel page.
– Fixed an issue where a Coach’s Pct would not consider Ties if they had no wins.
– Fixed an issue where home coaches losing a game would always be credited with a shootoutwin when simmed in live game mode.

Hot Fixes
– Fixed an issue where some AutoGM teams would not send players down to their farm team. Hotfix: Sep.15 2016.
– Fixed an issue where debug information was being printed out on the GM Latest Trades screen. Hotfix: Sep.15 2016.
– Applied a change to Live Game update jobs so that they can overlap without duplicating statistics. Hotfix: Sep.23 2016.
– Added code to prevent AutoGMs from buying out players that are on waivers. Hotfix: Oct.1 2016.
– Fixed an issue where newly created leagues were not able to use the Media Article system properly. Hotfix: Nov.10 2016.
– Fixed an issue where only the first five picks were available for trading during a league’s inaugural season. Hotfix: Nov.10 2016.
– Fixed an issue where duplicate teams were allowed to be selected for the entry draft order. Added extra messaging in the list to highlight draft order positions that are not set. Hotfix:Nov.13 2016.
– Added code to adjust AutoGM decision making for waiver claims. Hoping this will stop some of the Claim / Place on Waivers cycles that have been happening. Hotfix: Nov.22.2016.