UHS Build 7668 Released – Happy New Year!

New Year 2015 formed from sparking digits over black backgroundUHS Build 7668 – December 29 2014
This build is primarily focused on back-end system improvements and a few minor UI changes. I’m trying to get things to a point with UHS where I don’t really need to do much to maintain it as it feels like the clock is ticking. Unfortunately the only thing I can’t automate is the creation of empty databases for new leagues… DreamHost won’t allow that with their mysql API. Eventually I’ll find a way around it. I’m also looking at keeping league data fairly trim…  I’ve had to change how much Play by Play data is kept from Unlimited to just two seasons… I’ve also had to make a similar change to SavePoints. The goal here is to allow leagues to grow to 100 seasons or more with a minimal impact on performance.

Deleting Old Play-by-Play data / Instant Replays / Further Data Trimming
On each Season Change, Play-by-Play reports older than the previous season will be deleted from your league’s database. The reports were previously available with the Instant Replay option, however, our usage records indicate this feature is seldom used and only in the current season. You will still see the Instant Replay option for games played in your Current and Previous Season.

This change is being made to keep leagues as trim as possible… as leagues get older they take up more space and get slower… we have seen the impact slow responses have as we’ve had to make a few hotfixes over the last few days to support our new Game Deletion functionality.

We have also made quite a few back-end table changes to continue to “trim the fat”. It is likely our next build will focus on further response improvements due to increased demand on UHS systems.

Roster / Line Error Checking
We have removed the cron job that runs each minute in favour of a Roster & Line check each time there is a page load for when GMs are using UHS. There will continue to be a Roster & Line check for all teams appearing in the COM’s Play Games page to ensure games cannot be run for teams with errors.

League Groups for the General Job
We are experimenting with creating separate jobs for leagues based on your league size. We’re going to group up all of our leagues based on 500 MB chunks. Leagues larger than this (typically older leagues) will be getting their own separate cron job. The thought here is that as UHS usage grows, we can scale as needed. We are only applying this to the General job… so things like Free Agency, Waivers, Trade Deadlines, Junior & Farm (automatic) Roster setting jobs will be affected. I’ve been seeing warnings that this job has been taking more time than usual and it’s a directly related to the number of leagues we have running. I’m hoping you all don’t see any negative impacts with this change… if things seem slower or you’re seeing waiver items not going through, please contact me.

If things go well, I might apply this to the AutoGM and Live Game Update jobs as well.

SavePoint Maximum Back to Five
Originally when SavePoints were introduced we had released it as Unlimited, however, we quickly had to change it to three SavePoints per league. Once we moved to our current host (which offers unlimited storage) we were able to remove the SavePoint cap. Over the past two – three years that we’ve been with DreamHost, UHS usage has gone through the roof. DH has not asked us to limit our storage, however, the recent performance issues high-lighted an area of concern regarding SavePoints.

We are adding the Five SavePoint limit back to the system to try and keep leagues lean and slim. At one point we were looking for a new host, however, storage cost played a huge factor in UHS remaining with DreamHost. Most of this build is focused on keeping UHS running reliably with minimal human intervention… my goal is to get UHS to a point where it can operate when I’m no longer able to.

Please be assured that your current SavePoints will not be deleted. If you have five or more SavePoints you just won’t be able to create any new ones until you delete enough of them so you can create a new one.

Idle League Handling
We’ve made some changes to our idle league policies. In order for a league to be idle there must be no activity for 30 days (previously 90 days). Additionally, UHS would send out FOUR warnings before deletion each of which came after 3 days of no activity. This is being changed a single warning once the league has gone idle. If there continues to be no activity after 4 days, the league will be deleted. Leagues that are older than a year will continue to be automatically protected from going Idle.

Additionally, newly created leagues that have no login activity will now be deleted after 4 days instead of 7.

Sim Engine Tweak
I’ve increased the factor that skill plays in determining a Pass or Skate outcome from 2.00 to 2.25. This will make it slightly more likely that the player’s skill is going to determine the outcome vs. random chance. It also means that playing highly-skilled teams will not yield quite as many upset victories as before. We will be monitoring team records as we continue on since the last thing we want is to go back to unbeatable teams.

Deleting & Deactivating Teams
Teams can no longer be deleted if they have games present in the Schedule table regardless of what season it is. Additionally, Deactivating Teams will now result in a check for scheduled games for the team in the current season. If there are none, deactivation will go ahead.

Waiver Claims
Since the inception of UHS, teams could make claims on players placed on waivers under the right circumstances. According to NHL rules, this is not allowed. Going forward teams placing their players on waivers will not be able to make a claim on them.

Mass Coach Scouting
The Mass Coach Scouting option will only appear if there are more than 4 coaches available for scouting. This was changed as it was possible to scout a single coach at a reduced rate.

Trade Request Checks
Trade Request Checks will now only happen when Pro teams are playing in the Regular Season.

Automatic Draft Lists
GMs now have an option to automatically create a draft list based on the average skill of each eligible player. For goalies, this skill is calculated at Total / 9 while players are calculated at Total / 11.

Debug Deletion Job
We’ll be running a daily job to delete debug files that are older than one week. If you have experienced any errors or need us to look at the debug file for a game you’ve simmed, please let us know ASAP. If you take longer than a week, we won’t be able to look at the debug file. Typically errors are reported same or next day, so we keeping months worth of debug files didn’t do anything except waste storage (~250 GB).

Season Change Messaging
The Pre-Season to Regular Season advance screen has been changed to remove the old Junior player warning as it is no longer valid. A warning has been added concerning Player Training and Lawyers since these features cannot be modifed in the Regular Season and beyond. This was actually inadvertantly released with a hotfix on December 26 2014.

Bug Fixes
– Fixed an issue where setting the Max Farm Skill Age to All Ages would still show “Use Max Age Protected” in the General Settings, however, All Ages was in fact being applied.
– Fixed an issue where Player and Prospect scouting reports were not being shown properly in the Current Scouting page.
– Fixed an issue that would allow a Commissioner to over-write a GM’s draft pick if both COM and GM are accessing the Entry Draft at the same time.
– Fixed an issue where Upcoming Games would all show up as Pending even if there was no live game scheduled.
– Fixed an issue where the AutoGM would not place Forwards into key positions to fill gaps in C, LW, RW. This resulted in Game Roster errors despite having enough players to ice a team.

Hot Fixes
– Fixed an issue where AutoGMs would sometimes not move players down to the farm team if the league was in Season 1. Released as hotfix on December 2 2014.
– Fixed an issue where Teams edited to Farm or Junior would still hold draft picks and prevent entry drafts from moving forward. Released as hotfix on December 8 2014.
– Fixed an issue where searching for coaches would always return no results. Released as hotfix on December 12 2014.
– Fixed an issue where an error for updating LeagueData would appear when attempting to create schedules. Released as hotfix on December 15 2014.
– Fixed an issue where the Total Games field was not being updated when selecting the number of games per Div, Conf while creating a schedule. Released as hotfix on December 15 2014.
– Fixed an issue where Live Mode games that were Queued were not properly saving player, goalie or game stats, however, team standings were okay. Released as hotfix on December 16 2014.
– Fixed an issue where the RetireEarly setting was not being loaded. This resulted in pre-mature retirements and retired player/coach deletions. Released as hotfix on December 17 2014.
– Added the text ‘early’ for player & coach early retirements. Released as hotfix on December 17 2014.
– Fixed an issue where Live Mode games that were Queued were storing the incorrect GameID. Released as hotfix on December 17 2014.
– Fixed an issue where Fixing (Deleting) lines from the Play Games screen would result in an error. Released as hotfix on December 19 2014.
– Fixed several issues where Live Games (Queued or otherwise) were taking an excessively long time to run. Released as hotfix on December 20 2014.
– Fixed an issue where leagues could move from the Off-Season without having teams assigned to a conference or division. This resulted in teams not getting an entry in the TeamStandings table. Released as a hotfix on December 26 2014.

UHS Build 7468 – Merry Christmas!


UHS Build 7468 – December 2 2014
It’s been a full two months since our last Build Release. This build does not focus on any one aspect of UHS, instead, it has a smattering of developments that should help out most people. The major changes include: Chemistry Unhidden, Game Deletions, Defenseman Scoring Adjustments, Time Zones that actually work as well as some adjustments to the AutoGM trade logic.

Chemistry Unhidden (sort of) + Rerate Updates
For leagues that allow skills to be shown, Chemistry will now be shown on the player’s profile, team’s personnel pages and COM’s team rosters. Skills Hidden leagues will continue to have Chemistry completely hidden.

Chemistry changes from a 1.0 – 10.0 range to 1.00 to 9.99 range. Any player with a Chemistry value of 10.0 will be immediately changed to 9.99.

Chemistry will rerate only if your league has rerates enabled and will use new rules (previously Chemistry was rerated based on average chemistry for team). All players will now rerate towards 5.5. While 5.5 can be considered “perfect” Chemistry, values anywhere in the 4.0 to 7.0 range will likely provide Chemistry bonuses for players on the same line.

When rerating, if a player has a Not Applicable or Decrease rerate, their Chemistry will rerate by a random value between 0.01 and 0.24. If the player has a No Change or Increase rerate, their Chemistry will rerate by a random value between 0.25 and 0.50.

Defensemen Scoring
In some leagues D-men lead the league in goal scoring, in others it’s all Forwards. Such is the way of RNG. However, there is a tendancy for D-men to score a little too much. As such I’ve added a buff to the Tip chance when a D-man (or rather someone placed in the Defense position) takes a shot on goal. The Tip Chance will increase by 25% when a D-man is taking a shot.

Finally, we’ve added consideration for timezones. The underlying code was always there… it just never really worked. I’ve gone through all the date/times that are shown to COMs and GMs and have added whatever timezone is applicable to the user.

In order to set your timezone, log into UHS and click your username at the top-right of the screen. You will see the options available for setting the number of hours your timezone is off of Pacific Time (server time). There are two timestamps (one the server time and one your new timezone) for you to use to make sure you’ve entered the correct offset. Please keep in mind the offset is in whole hours.

Game Deletions
Commissioners now have the ability to delete previously played games from UHS. This tool should only be used if absolutely necessary. Before using the tool, please make a SavePoint… things may not turn out as you (we) expected.

Games being deleted must meet the following criteria:
– Be in the current Season.
– Be in the current Season Type (Pre-Season, Regular Season, Playoff).
– Must be played in Build 7468 (this build) or higher. Games from previous builds cannot be deleted.

Team, Player, Goalie and Coach statistics from the selected game will be completely reversed from UHS. There are some key points to consider:
– Injuries and Suspensions will not be affected. If a player was hurt, the COM will need to manually update the player.
– Team Win/Loss streak RECORDS will not be updated.

Farm League Toggle
There is a new Farm League Enabled setting in the General Settings for your league. You can now disable having a Farm League… please note this will also disable Waivers. By default Farm Leagues are enabled.

Players on Deactivated/Deleted Junior Teams
Going forward players on Junior Teams being either Deactivated or Deleted will no longer have their ownership rights removed. Instead, they will be moved to a random active Junior Team. This is being done to ensure Junior Players remain on a visible team. Junior Players should not be in “Free Agency” until they are 21 or there are no active Junior teams available for placement.

For Commissioners that want to control where the junior players end up, you should manually move each player to their new team before deactivating or deleting their current team.

Simming an Off Day
Commissioners now have the ability to Sim an Off Day. This will simply decrease the number of Injury Games and Suspension Games by 1 for all players in the league.

When there are no players on waivers a message will now be shown instead of an empty table.

AutoGM Trading
The AutoGM weighting has been removed from the code where the AutoGM initiates a trade. It should be more likely now to see AutoGMs trading with each other.

Stats Central
The PlayOff Tree will now be the default stat view loaded when the league is in the Playoffs.
Games appearing in the Schedule area will no longer have an Instant Replay link if they have not been played or if they are Not Needed.

Retirement Outputs
The activity output for player retirements will now show the player’s age or “NA” if the age cannot be found.

Coaches and the Cup
Coaches will now have their Cups shown on their profile. Previously Cup victories for coaches were not being recorded.

NHL Only option
I’ve added an NHL only option for New Leagues and for Commissioners resetting their league. Previously, the NHL option added all NHL, AHL, and OHL teams.

All Pro Teams to AutoGM button
Commissioners will now have an option to change all Active Pro teams to be managed by the AutoGM. Doing so will remove the access for any assigned human GMs for those teams.

Bug Fixes
– Fixed an issue where saving the Entry Draft settings would result in errors appearing on the screen.
– Fixed an issue where the Manual GM trade weight was being applied to trades offered by the AutoGM.
– Fixed an issue where AutoGMs might not switch out their goalies, resulting in unnecessary fatigue injuries.
– Fixed an issue where the roll for Lawyer suspension appeals was being printed to the screen.
– Unused Draft Picks from previous seasons will no longer appear in the Team Draft Picks page.
– Fixed an issue where the actual Last Rerate values were not being shown despite the league having Skills Shown.

Hot Fixes
– Fixed back-end code to remove some restrictions on players being moved to the juniors. Released October 2 2014.
– Fixed an issue where juniors having played games in other seasons were not be allowed back to the Pro or Farm team. Released October 7 2014.
– Fixed an issue where the Makeweight Creation button would not show up even if the team was below the minimum number of players for each position. Released October 9 2014.
– Fixed an issue where AutoGMs were timing out when the AutoGM trade frequency was set to 0. Going forward if the AutoGM Trade Frequency is set to 0, AutoGMs will no longer initiate trades. Released October 29 2014.
– Fixed an issue where suspended players would not have an Activity line inserted if the player they injured had an apostraphe in their name. Released on November 3 2014.
– Fixed an issue where players with less than 10 GP in the previous season were getting random farm rerates (UP and down) despite there being a farm schedule played. This should have resulted in the player randomly rerating DOWN only. Released as hotfix on November 27 2014.
– Fixed an issue where the Rookie GP Pct setting was always being set to 0. Released as hotfix on November 28 2014.
– Fixed an issue where Prospect Scouting reports were not being completed despite the team being charged. Released as hotfix on November 28 2014.