November 16th, 2015 by

sea of humanity

UHS Build 8971 – November 16 2015
I had a few other developments lined up for this build, however, the changes to the AutoGM were not accompanied by the updated Roster checking/fixing functions so we began seeing a number of errors. The problem was the errors were more on the back end or when a COM attempted to sim a game. There would be no other indication that there was a roster error to the COM other than the game just not simming.

Also… Happy 70th Birthday, Mom!

Tier 3 Relegation Exemptions
Relegation leagues now have an option to make the bottom teams for Tier 3 be exempt from disbanding / relegation. Subsequently, COMs will lose the ability to add a new team to fill the vacant position since it’s no longer being vacated.

Team Power Rankings
GMs will have a new Team Power Rankings option under the Scouting menu. For leagues that have skills shown, this simply takes the overall skill of the team’s top 4 C, 4 LW, 4 RW, 6 D, and 2 G and sums them together. For leagues that have skills hidden, we compare each team’s players against every other team and accumulate points that way.

Auto-Complete Draft
We’ve built in a new option during the draft. Owners and COMs will now be able to select a “Mall All Draft Picks” button that will basically complete the remainder of the draft. A confirmation message will be shown and the button will become disabled. This was tested using 25-round 30-team league (750 picks) and saw a completion time of 40 seconds. With slower connections, it’s possible you could see up to a minute or more. There is a 2-minute time-out period… if you see a Gateway timeout issue it means the draft was a little too large, however, I *believe* the picks are still being made… it’s just that the browser has lost this particular connection.

You will be able to monitor the progress of the draft through your Public Site > League > Entry Draft.

For Inaugural Drafts, the drafter is designed to select 6 forwards, 3 defense and 1 goalie for every 10 picks. For Entry Drafts, the teams will be selecting the highest Total Skill players first.

AutoGM Modifications (not hotfixed)
AutoGMs will now void trades where they are sending out prospects (players equal or under the Max Age Protected age) and they are receiving no prospects in return.

Fixed an issue with draft pick valuations. Previously it was possible for the AutoGM to value high round draft picks the same as late round draft picks, however, there had to be a pretty unique set of circumstances happen. With the fix, the valuation applied to draft picks by the AutoGM has been lowered.

AutoGMs will now assess the state of their team roster and release extraneous players if they meet the following criteria:
– Buying out the player will not bring the team below $10 million.
– Player’s age must be greater than MaxAgeProtected (prospect players are exempt from release).
– Player must not be on a game roster.
– Player must be out of the top X for each position (doubled if a real farm team exists): C/LW/RW = 5; D = 8; G = 3.

AutoGM & Forwards ** – Released as Hotfix on November 2 2015
The AutoGM and the Roster Fixer functions have been updated to better handle Forward players (vs. C, LW, RW). Previously, Forwards were inserted a roster position without looking at whether other forward positions had vacancies. For example: 3 F players Joe, John, James were inserted as Centers, even though the team already had 3 Centers (but happened to be lower skilled than the Forwards) and despite the fact the team had no LWs! This meant the team would look elsewhere to fill those empty spots (farm team, free agency, waivers, makeweights).

The changes made will now mean that Forwards will be used to fill empty positions first before being reinserted based on skill. For the above example: Joe, John, James will be marked as LWs internally (you won’t see this) to ensure the game roster minimums can be met and a roster can be created.

Additionally, the AutoGM will now always set their best Pro and Farm Game Roster, regardless if a valid Game Roster is already set. Previously, the Game Roster would only be set / changed if a player was injured or suspended. This also means that the AutoGM will over-write any changes you might make to their rosters.

The AutoGM will now look at players to move down to the farm team AFTER the Pro Game Roster has been set and BEFORE the Farm Game Roster is set. Previously, the AutoGM moved players down to the farm before the Pro Game Roster was set… this led to high-level players being sent down because the Game Roster was valid and there was no need for the extra player.

Bug Fixes & Miscellaneous Changes
– Teams changed to AutoGM will change their prospect scouting to 0 since AutoGMs don’t use it anyway.
– Updated the RosterFixer function to integrate Forwards better into a GameRoster.
– Fixed an issue where GMs could ignore the Free Agent Decline Hours setting and make multiple offers to free agent coaches until he accepted an offer.
– Fixed an issue where Goalie Save Pcts were over-inflated for Team Career Spct leaders in Public Websites.
– Fixed an issue where a team could have an incorrect roster and the GM / COM may not even know… this prevented games from being simmed but returned no errors indicating a roster issue, leaving the GM/COM unable to proceed with the season.

Hot Fixes
– Fixed an issue where the new mailer was not working the live / public version of UHS (but it DID work through the test version). Released as hotfix on October 25 2015.
– Fixed an issue where teams could not be assigned to AutoGM if there was already a schedule created. Released as hotfix on October 26 2015.
– Fixed an issue where sometimes a schedule could not be created in Relegation leagues. Released as hotfix on October 27 2015.
– Fixed an issue where the PlayOff Tree would not display on Public Sites for Relegation Leagues. Released as hotfix on October 27 2015.
– Fixed an issue where saving General settings in Season 2 and beyond would cause a league to revert from a Relegation League to a Standard League. Released as hotfix on October 27 2015.
– Fixed an issue where Free Agents idle for 2 or more seasons were not having their Last Salary and Last Contract Value numbers adjusted downwards. Those values should be 75% of the previous value for each season after the first idle season. Released as hotfix on October 28 2015.
– Released code that allows UHS Admin to toggle whether SavePoints are allowed for all leagues. This will be used when we have builds being released that require previous SavePoints be to be updated with database changes. Released as hotfix on October 28 2015.

October 25th, 2015 by

RelegationThis one took a very, very long time to do. Between family, other hobbies and health, finding the time to get this done was a challenge and even then, the sheer amount of changes necessary was far larger than I had originally thought. Every time I turned around, I found myself needing to change a script or add a field to a table. Every time I made a change, I had to go back and start testing from scratch to make sure I didn’t mess up something that was already good to go. Overall we made 561 changes… it’s possible this could be the single biggest build number leap that we’ve had since we started UHS Dark.

There are a bunch of other smaller changes and fixes I made. I’ve decided to bundle in the miscellaneous changes in with the Bug Fixes just to save on Build Note real estate. We also managed to fix the issue where emails weren’t getting received by Microsoft accounts, so there’s that, too.

I checked the dates and this release would have come out around three months after our last one… to me it’s way too long… it’s a combination of the sheer size of the Relegation development + body issues; but I’m really hoping to get back to the usual once/month release schedule. I do fully expect there to be some fixes, although I really hope I’ve caught all the errors before they’ve gone live. Time will tell.

Relegation Leagues are Here!
Relegation leagues will allow you to run your league in a similar fashion to that of the Premier League… teams that finish in the bottom get demoted (relegated) to the next tier down while top teams get promoted to the next tier up. You can only toggle Relegation during Season 1 Off-Season. Once you’ve started your season, your league will be a Relegation League until you decide to Reset it.

In UHS, Relegation Leagues will consist of one, two or three tiers. All tiers will be able to handle their own separate conferences and divisions just as they do now, however, you should keep in mind that the bottom team(s) of each DIVISION will be relegated down. So if you’ve set that the bottom 2 teams will get demoted (and subsequently the top two from the lower tier get promoted) and you have 4 divisions, this means that in total 8 teams will get demoted (2 from each division). Due to this, we recommend you go with a one-conference, one-division set up, however, you are definitely free to do more.

When determining teams to promote, UHS will look at the playoff champions for each Tier and automatically place them as the team to be promoted, regardless of their finish in the regular season standings. If the COM has set up the league to relegate/promote multiple teams, the regular season standings are then used to determine the other teams being promoted.

Relegation leagues will have no Farm league and no Junior league. Teams will obtain their players via Free Agency only. Since there is no Farm league, Waivers is disabled.

When a team is relegated out from Tier 3 (the bottom Tier), the team becomes defunct and all players are placed in Free Agency for bidding. The COM is given an opportunity to create new teams, set whether they are Auto-GM’d and whether they will be created pre-loaded with players.

Trades are allowed between Tiers. All three tiers act as Pro Level when comparing it to a Standard UHS League.

Players cannot be loaned to other teams as they are in Premier League soccer. We are not adding that aspect of soccer to our Relegation development. If you want a player you will need to either trade for him or pick him up via Free Agency.

There is no Entry Draft. Young players will need to be manually created by the COM so that teams can sign them in Free Agency. It is recommended that one player is created for every player that just retired (not including players that were forced into retirement due to lack of playing time). Since there is no Entry Draft, trading draft picks is not allowed and should be hidden.

You can find the Relegation settings in Settings > General.

Email Fixed!

As some of you might know, receiving an email from UHS to your,,, or any Microsoft-hosted domain would result in the email message never appearing. The dang thing would never even appear in your Spam / Junk Mail folder. We’ve fixed that.

Expansion Drafts
I’ve added code to only show Pro level teams that have not played in previous seasons for the team selection drop-down. Additionally, when there is only one expansion team in the list, that team will be automatically selected so we can shave off a few seconds of COM mouse-clicking.

Expansion & Distribution Draft links
The Expansion Draft and Distribution Draft links will no longer appear if the league is in Season 1 since these tools are really only used in leagues that are in Season 2 and beyond.

Bug Fixes & Miscellaneous Changes
– Fixed an issue on Public Websites where the Misconduct penalties were appearing as “Game” penalties when only 10-minutes was intended.
– Lawyers Settings have been added to the Settings Home page.
– The League Structure links in the Settings Home page will now only be shown if the league is in the Off-Season.
– Fixed an issue where the Public Site contact form would incorrectly use the Championship Teams header.
– The new reCaptcha v2 package has been installed on all public forms that generate emails (the ones that don’t require you to log into UHS).
– COMs can now select whether Imported NHL Teams will be Auto-GM’d.
– Fixed an issue where Logo images with spaces in their file names would not be displayed on the public website.
– Fixed an issue where AutoGMs would create 3 RW and 3 LW any time they needed to create a makeweight.
– Fixed an issue where only Pro league series were being automatically created. Farm and Junior series would not be created even if the COM had setup their playoff settings.
– Removed some debugging code from being displayed when using League Grouped for playoff series creation.
– Fixed an issue on Public Websites where the links on the Team Home page would take you to the incorrect page.
– Additional checks have been added for Teams without arenas. Applicable teams will be automatically set to use the Default Arena.
– Fixed an issue where Offers on Free Agent Coaches would not always update properly and result in the coach not being signed.
– The RFA text will now be shown in Red to make it stand out more in the list of free agents.
– Teams now have an option to offer Money as part of RFA Compensation.
– Fixed an issue where the Next and Previous arrow buttons were not appearing on datepicker popups.
– Playoff games that are Not Needed will no longer appear in Public Website’s schedule.
– Fixed an issue in the Teams list for Public Websites where the defunct indicator would not appear beside a team’s name.
– GMs will no longer be able to view trade offers that they are not directly involved with (either the sending team or the receiving team).
– Clicking on the Trade ID link in the public site will now correctly take you to UHS, requiring you to login to view the trade.
– Retired players will no longer appear in the drop-down list for Player Training.
– COMs and Owners will now be able to use the Compare Player tool.
– The public website Team Career leaders page will now properly show all applicable players… I must have created this initially while completely intoxicated.

Hot Fixes
– Fixed an issue that prevented newly created leagues from being used. Owners would not receive user account info and the new leagues resulted in failed cron jobs. Released on July 21 2015.
– Fixed an issue where players given Match penalties (not to be confused with Misconducts or Game penalties) were not actually removed from the game and were instead only give 5 PIM. Released on July 29 2015.
– Fixed an issue where Misconduct penalties were appearing as “Game” penalties when only 10-minutes was intended. Fix will not be released for public websites until the next build is released. Released on July 29 2015.
– Fixed an issue where the Waiver priority was using the Entry Draft order instead of the current Regular Season standings. Released on July 29 2015.
– Fixed an issue where switching to Playoffs while in Career Stats would result in a Fatal Error. Released on August 11 2015 (Fix for Public Sites will be released with build).
– Goaltender Career Stats now only require the 20 GP Minimum if viewing GAA or SPct. Released on August 11 2015 (Fix for Public Sites will be released with build).
– Fixed an issue where the Automatic Draft List was not working for Inaugural Drafts. Released on October 15 2015.
– Fixed an issue where draft picks for new teams were sometimes not being created when the number of draft rounds was changed. Released October 20 2015.

July 19th, 2015 by

asstgmThis is a bigger build than I would have liked but deciding to do the Assistant GM development meant a lot of code changes to accommodate the new security level. The development also uses ajax for the Asst.GM account permissions so you don’t have to constantly refresh the entire page when changing a single setting. Once you click the permission to change, it’s changed in the system.

I was able to do a few other things like add account locking at the COM level and modified the Undraft option to be a true full Undraft function… when a pick is undrafted, the team can go back and re-use that pick. The current pick will now be highlighted in green so it’ll be easier to see who’s pick it is… this is especially useful when a pick was Undrafted.

Assistant General Managers Have Arrived!
A long-standing development idea was to give a GM the ability to hire their own Assistants. One of the requirements for introducing such a role was the ability for the GM to set permissions. Anyone that is NOT an Asst.GM will be able to create an Assistant GM account and assign it to a team. The COM or the GM of the team the Asst.GM is assigned to can edit their Permissions. If a GM wants to hire an Assistant, they are not required to wait for the COM to add their account… the GM can do it from the Team > Assistants menu.

The COM / GM can edit the Assistant GM’s permissions, basically their ability to manage certain sections of the team. By default, all Permissions are set to Enabled… this means the Asst.GM will be able to function as a FULL GM for the team. You can edit the Permissions by clicking the “Perm.” button for the user you want to manage. With Permissions you can get your Assistants focused on particular areas of your team… perhaps one that only focuses on Scouting and Draft picks and another on just Rosters and Lines.

You can toggle the following 28 Permissions On or Off:
– Setting the team’s Draft List.
– Making Draft Picks.
– Managing Free Agent Offers.
– Making Waiver Claims.
– Buying new Arena Seats.
– Setting Team Ticket Prices.
– Managing Lawyer Settings and Initiating Suspension Appeals.
– Managing Medical Facilities and Staff.
– Changing the Junior Scouting Investment.
– Setting Pro or Farm Roster, Lines and Shoot-Out lists (each are individually).
– Coach Management (which includes Coach Free Agency, Hiring, Firing and Scouting other Coaches).
– Setting Player Protection.
– Retiring Jerseys.
– Ability to Create Makeweights if they’re needed.
– Train Junior Players.
– Make decisions on RFA Compensation (*COUGH* David)
– Make, Void, Accept or Decline Trade Offers.
– Scout Individual Players.
– Buy Out or Release Players from the Team.
– Offer New Contracts to Players.
– Place Players on Waivers.
– Move Players between Pro, Farm or Juniors.
– Change Positions on Junior Players.

Account Locking
COMs now have the ability to lock a user’s account instead of simply re-assigning the team, deleting them or changing the password. Accounts that are locked out will not receive emails from UHS, even if it is to reset a password or receive trade notifications.

Goalie Fatigue Injuries
Goalies sustaining injuries due to Fatigue (playing in too many consecutive games) will now use a different table of injuries to describe what has happened instead of using the regular injury table (sustained from another player or blocking a shot). The injuries will be one of: Neck, Shoulder, Groin, Hip, Hamstring, Upper Body, Lower Body, Biceps, Back, Quadriceps, Thigh, Knee, Calf.

UnDraft and Pick Highlighting
The UnDraft option will now also completely reverse the team’s draft pick used for the UnDrafted player selected. This will also mean that the draft will skip back to the earliest available draft pick… typically the team you just UnDrafted for. It sometimes might be hard to see who’s pick it is next when undrafting a player since a pick can be undrafted from anywhere in the draft, so we’ve added a green high-light on the team who’s pick it is next.

Players selected by Ad Hoc method are not applicable for UnDrafting since it doesn’t actually take up a draft pick. To reverse these players the COM will need to release them from the team via the Teams page.

Bug Fixes & Miscellaneous Changes
– Corrected text in the Regular Season -> PlayOff advance league screens that incorrectly showed pre-season schedule not being completed instead of regular season.
– Fixed an issue where the Draft Player for GM button was not using the correct css id.
– The Movement History when viewing a player’s profile will now appear even if you are looking at the player’s Awards or Scouting reports.
– Team shoot-out lists can now be set during the Off-Season.
– Added proper error messages for when players are not available for drafting.

Hot Fixes
– Fixed an issue where it was possible to double-click on Schedule creation and cause duplicate games to be created. Released June 29 2015.
– Fixed an issue where it was possible to for a league to be created using the NHL or NHL/AHL/OHL templates and not have draft picks created. Released July 11 2015.
– Fixed an issue where Will Acton’s age was 3. Released on July 15 2015.
– Fixed an issue where COMs attempting to place players on waivers on behalf of teams would result in an error. Released on July 15 2015.