UHS Build 6890 – Automatic Playoff Series Creation

tourneybracketUHS Build 6890 – July 30 2014
This build is aimed primarily at adding in the automatic playoff series creation settings. When this was first proposed about six years ago, my approach to it was pretty much all wrong… I started thinking about all the possible methods you could choose for your playoffs and was going to set up each one as a different type… this even went as far as specifying the number of teams too.

I guess it’s true that with experience comes *some* wisdom… as the work wasn’t nearly as bad or complicated as I thought it was going to be. Don’t get me wrong… it took a bit to debug and figure out but overall I think we’re okay with the method I’ve chosen to go with.

I also did a little work on the random player name generation logic as well as cut out some of the acronym names in favour of automatically generating acronyms if it’s needed.

Playoff Series Generation
After nearly six years I’ve finally gotten around to adding in the option to automatically generation playoff series. You will find the new options in Settings > Play-off Settings. In here you will select the Playoff grouping, number of qualifying teams, toggle whether division winners are always ranked higher and the length of the series.

If you opt to select “Manually Create Playoffs”, when it’s time to generate playoff series, you’ll basically be on your own…  you’ll be using the method we’ve used since day 1. You’ll pick your Home & Away teams, Round type (Preliminary, Quarter-Final, Semi-Final, Final) and Series Length. Once you create all of your series, you’ll then go to set your starting date and hit Create Games. You’ll notice that levels that did not have Manual selected will not have their teams present for selection.

If you opt to select anything other than Manual for playoff groupings, you’ll be able to select the following options:

– by Division: teams are grouped by their Division, then by Conference to create playoff series.
– by Conference: teams are grouped by their Conference only to create playoff series.
– League Grouped Together: teams are grouped together regardless of Conference or Division. Sort of like what they tried in the NHL back in the 1979-80 season.

Qualifying Teams
You can select from 1 up to the maximum number of teams for the grouping you’ve selected previously. In the cases of unbalanced conferences and divisions, the highest number of teams allowed per grouping will be the number of teams from the smallest division. So in the case of conferences of 14 teams and 16 teams, the most you would be able to select for qualifying teams is 14 (the lowest of the conferences).

Division Winners Ranked Higher
Here you have the option to allow division winners to be re-seeded higher in their respective conference or league (this doesn’t really apply for Group by Division). This is similar to how the NHL operated their playoff format in the late 90’s and 2000’s… the top division winners of each conference were ranked 1-2-3 regardless of their point totals compared to the other teams that did not win their division.

Series Length
Quite simply, how many games do you want your series to run?

So now that you’ve selected your play-off settings for each level (Pro, Farm, Junior), how do you go about creating your series? Well…  when you advance your season from Regular Season to Play-Offs, you’ll go to the Manage > Schedule – Play-offs like you would have done with Manual Setup. You should notice that all of the series have already been created for you… all you need to do now is enter your Start Date and click “Create Games”.

For subsequent rounds you’ll do the same thing… once the round is over, you’ll enter the Manage > Schedule – Play-offs page and find your new series automatically created for you.

Manual Playoff Series Updates
We’ve added a few quality-of-life improvements if you still want to create your playoff series manually. When creating new series the page will remember the last Type and Length that you used, so you don’t necessariy have to re-select the options you want… just pick your teams and carry on. Also, you will now only be allowed to create one Final, one Farm Final, and one Junior Final series…  once you create that, the option will be removed from the drop-down. If you made a mistake, it’s okay… delete the series and re-add it.

Player / Coach Born field: Early Retirements & Rerates
We’ve added a new “Born” field behind the scenes to record the season that a player (or coach) was created. This field will now be used to determine whether a player / coach will retire early from not having been in any games for X number of seasons (as set by the COM) since their last game. This was a problem since if there were no games played EVER, how would we know when it was okay to force a retirement? The Born field will now be used when the player / coach has never been in any games.

Additionally, this will also apply to rerates in that a player cannot be rerated if the last season (meaning the one we just came from prior to the season change) is the same as their Born date. I *might* put in a small chance at some random rerates (perhaps like 10% chance for each skill), however, for now, we’re going to leave it as is.

Player / Coach Deletions
After all retirements have run, the season change code will check for any retired Player or Coach and see if they have any statistics whatsoever. If there are none, the Player or Coach will be deleted from the DB. This was previously running only for Players, however, we’ve increased the scope to also run for Coaches.

Player First Name Creation
I’ve removed the names that consist of two capital letters (like PK, RJ, PC, JC, etc) in favour of adding some random hyphenization when creating a random first name. I’ve also added quite a few more Quebec French First Names. There will be a 1 in 1000 chance that a player will have a hyphenated first name and a 50-50 chance that hyphenated name will actually be shortened to something like PK, RJ, etc. I’ve also optimized some of the name generation queries… I doubt anyone will notice on unless you are making a LOT of names at once, however, it should be a little faster now. This was released as a “hotfix” on July 14 2014.

Special Last Names
We’ve removed the code that could potentially add a “Jr.”, II, or III to the end of the player’s last name. Not really seen in hockey… it’s more of a soccer thing. Player last names have a 1 in 1000 chance of being “Special”…  where they will either become hyphenated or a new country will be randomly chosen for that last name.

Player Dodging Checks
There was a change made in a prior build that removed “dodged pass interceptions” being counted as a Check Avoided. All leagues should be seeing a decrease in the Checks Avoided category because of this.

Additionally, players successfully making their Quickness skill check will only be hit for half the defender’s strength (Power) skill when hit by the check. This should give the Quickness skill a little more oomph when considering a player as they’ll likely be able to stay on the ice for a longer period of time than those with low Quickness skills.

Public Site Contact Forms
I’ve added a validation question to the public site contact form as I’ve noticed (and you have probably too) that the form was being hit by spammers. While this won’t defeat human spammers, it should defeat bots.

League Member List
When logged into UHS all users will now see a “Members” link under the League menu. This will show all Owners, Commissioners and GMs assigned to teams. The member’s role, email address and last login time will also be shown to let everyone get a gauge of league activity. Further to this, members that have not logged in for 14 or more days will have their time highlight Red. If not logged in within the last 7 days the time is highlighted Orange.

Please note, we are intentionally not including this on the Public Site as I don’t want to be putting everyone’s real names and email addresses on a website where anyone can just go grab them. Privacy is important to me.

Bug Fixes
– Fixed an issue where the original owner of the pick was being shown in the Entry Draft list on the UHS site.
– Fixed an issue where teams were not receiving scouting reports for their own players when the season changed to the new Off-Season.
– Fixed an issue where players were able to be bought out despite still being on waivers.
– Fixed an issue where the value of contract offers was not rounding properly. Example: $0.3 * 3 years = $0.89999 instead of $0.9.
– Fixed an issue where the Search Ahead / Suggestion box for the player search was too light.
– Fixed an issue where the League Salaries page on the Public Site would display a multisort error.
– Fixed an issue where Ledger entries on the Public Site were appearing in ascending order instead of most recent at the top.
– Fixed an issue where hitting save would return “Array” in the message area for Settings > General Settings.
– Fixed an issue where lines would not shift off when reaching exactly 0 energy due to a floating point error.
– Fixed an issue where PK lines would have phantom players contributing to line energy… this resulted in PK lines spending more time on the ice than they should have been.
– Fixed an issue where the AutoGM would only set their farm roster when there was an injury. This fix will set the roster anytime a player is sent down to the farm team so good players are not benched waiting for an injury.

Hot Fixes
– Fixed an issue where new leagues were not creating owner accounts due to an old table being referenced. Released July 9 2014.
– Fixed an issue where COMs could not delete users with apostrophes in their username. Released July 12 2014.
– The Rookie table population job will now ignore leagues that have Inactivity Warnings. Released July 12 2014.
– The Rookie table population job will now ignore leagues that have not had anyone log in. Released July 18 2014.

UHS on KickStarter – Please help us!

kickstarter-logoUHS has started a KickStarter project to help raise some funds to pay for some basic things like server costs (around $100 / month). If we get a LOT more the money will go to things like developing random faces for our players among some other “Blue Sky” ideas I have.

If you pledge $25 to us, we’ll give you a big thanks on Facebook and Twitter.

If you pledge $50 to us, you’ll get a big thanks in addition to some awesome Chocolate Chip cookies home-made by my wife (Canada only unfortunately… not sure if they would survive the trip through customs to the US… but I’d be willing to give it a shot anyway).

Anything you can pledge to us will help.


UHS Build 6771 – Finance Hotfix Deployed

financejarUHS Build 6771 -July 7 2014
This is a small build to address a fix for older UHS leagues where the Money Traded Away Expense was not set up properly… this resulted in teams being able to trade money away and not get charged for it. This only affect a handful of our leagues (the veteran) ones, however, we are deploying the fix to all leagues to ensure we’re all up to date.

We’ve also hotfixed one of the Coach scouting funtions…  this resulted in some coaches being skipped during the new Mass Scouting addition.