Fantasy Hockey League Simulator
Copyright© 1997-1998 Sean Bates
Copyright© 1998-2003 FHLSim.com
Congratulations on your purchase of Fantasy Hockey League by FHLSim.com. Welcome to the world of simulation hockey. We think you will soon find FHL the easiest hockey simulation tool you've ever used to run a fantasy sports league.
FHL is a very complex simulation engine that allows you to simulate hockey games, compile results that are Internet ready in HTML. FHL consists of two main components: FHL program you have purchased, and its mate, GM Editor.
FHL is the commissionerís tool for use in simulating your hockey league and generating the results. The GM Editor allows participants in your league to make roster changes and set their lineups without purchasing FHL itself. Lineups files are sent to the commissioner for input into FHL and the games can then be simulated.
GM Editor can be obtained at http://www.FHLSim.com/gmeditor.zip
To help you with your FHL league, FHLSim.com has the latest updates, add-ons and frequently asked questions and answers. FHLSim also provides online peer support so that you can benefit from the solutions, tips and tricks of other veteran commissioners. If those don't suit your needs, find our link to email technical support located on our website as well.
If you can't wait, skip to the "Starting Your League" instructions below. This will show you how to create a completely new league so you can try out FHL. The following are recommended instructions for creating a new league from the statistics provided in the FHL distribution. The procedure is similar for any league files you may choose to use, whether included with the FHL distribution or downloaded from the Internet.
FHL allows you to create and operate your own league of virtual hockey teams. You can simulate (sim) your league operations, allowing your General Managers to focus on individual games, or to create a dynasty through the draft, player development, trades and free agent signings.
You start by naming your league, and deciding on a divisional alignment within the two conferences. Each team you create is named, and assigned to a division. Players are created by entering a data set of player attributes and rating each player's skills and and assigned to teams. Existing player databases made by FHL and community members can kick start your league.
Coaches are also created according to their attributes, then hired onto each team and handle the management of the in-game decisions. General Managers are real people. Your friends, coworkers and other folks you have in your league decide on player movement, send in lines to you via email using the free GM Editor tool. You can also handle this yourself if you prefer to play solo.
Once your league is created the first time, each season of an FHLSim league typically includes several activities:
Your Fantasy Hockey League simulator registration email comes with links to league files for several different seasons. Download those league files and unzip them into your c:\Program Files\Fantasy Hockey League folder (this folder will be referred to as %FHLHOME% for the rest of this document). If you installed FHL somewhere else, remember when we talk about the %FHLHOME% folder, we actually mean where you installed FHL.
Likely, one of your first desires is to create a completely new league from these or other league files. The following are suggested step-by-step instructions for creating a new league from the statistics provided in the FHL distribution. The procedure is similar for any league files you may choose to use, whether included with the FHL distribution or downloaded from the Internet.
Note: You may want to try this once with the suggested examples to become familiar with the process.
As with the NHL, newly eligible players come into the league via an entry draft, where teams select from a pool of young players in reverse order of the previous year's finish. These players may subsequently negotiate exclusively with only the drafting team, and then sign a professional contract. Until the time of signing, the player simply is a prospect of that team.
To perform this process in FHL, you first must have a list of prospects. You may want to use your own draft list. Use the following instructions below to create your own draft list or skip to the next set to use an existing draft list.
Creating a Custom Draft List
Performing the Entry Draft
Warning: Once you complete your draft for that season, do not start another this season. Doing so will cause redundant prospects on each team.
When the draft is completed, some teams may sign their prospects to pro contracts and assign them to the minor leagues for development. In FHLSim this process is to "Activate" a prospect. When a player is activated, ratings must be assigned that represent his skills. Otherwise, prospects do not have skill ratings and therefore do not "develop". These ratings can be added as the player is activated. If the players name and ratings already exist in the player database (otherwise know as the .drs file) then that set of ratings will be used for the activated prospect.
To Activate a player, follow these steps:
Ah yes. This is the root of most questions - what ratings are most important and how does it affect the game? Well, that the enigma that makes FHL so good at what it does. In many games you can boil off the model to an equation. With FHL, if your ratings are true to the skills of the player, the players statistics and contribution to his team will be equally realistic.
The Player Roster Legend describes the ratings names and short forms. Here we will describe them in more detail.
This section contains a description of all the menu options you will find in FHL.
1.1 LOAD (CTRL-L)
Load a saved league file. If you have made changes to your current league, FHL will prompt you to save them prior to loading the new league.
1.2 SAVE (CTRL-S)
Save current league file. Normally, as you make changes in FHL, the changes are saved in swp files, and flags are set when the changes in memory and swp files are out of synch with your league files. When you elect to save, the information in memory is written to the swp files, and those are are over to the normal league files.
The league files consist of:
sensim.tms TeaMS file; this file records team names, division
names, and alignments in the league.
The swp files used are as follows:
1.3 SAVE AS
Save As works just as Save does, except that you are able to save the current league file under a new name. All .swp files are copied to the new league filename.
1.4 NEW (CTRL-N)
Start a new league from scratch. All current teams and league info will be erased. You will then go to the Align League setup page where you can create teams and assign them to appropriate conferences and divisions (see 4.1 ALIGN LEAGUE).
1.5 IMPORT HLS2 TEAMS
Another new league option. Instead of starting from scratch, however, you import HLS2 teams. You will then proceed to the Align League setup page where you can arrange the teams in conferences and divisions. There are two options when importing HLS2 rosters; 1) Use FHL ratings, and 2) Use HLS2 ratings. If you use FHL ratings the program will cross reference player names from your HLS2 files but it will use the ratings from the default database. This is generally the best method as the FHL numbers produce the best results. If you choose to use HLS2 ratings, FHL will simply multiply your HLS2 numbers by 10 (to correspond with the FHL 25-99 rating system).
2.1 VIEWING TEAM (CTRL-T)
Upon selecting View Team you will go to the team window of whichever team has been selected on the main screen. You can also proceed to the team menu by DOUBLE CLICKING on the team's name in the main listing. At the team window you can change such info as current finances, team name, coach, team abbreviation, arena name, arena size or ticket price. To change any of these, simply click once on the desired item and a dialog window will open allowing you to enter new information. To change team finances click on the current finance amount. When the dialog box opens, enter the amount you wish to add (a negative number will subtract) to the current total.
2.2 VIEWING COACHES
To view coach information, click on "Info" next to the coach's name. A coach window will open showing the coach's ratings in Offence, Defence, Leadership and Experience as well as his current salary. To change any of these values simply retype them in the appropriate window. You will be prompted to save any changes when you exit. To hire a new coach, select "Hire New". You will proceed to a list of available coaches. To select a new coach, double click on any name in the menu or highlight the appropriate name and click on "Use Selected". The coach info window will be automatically updated.
2.3 VIEW PROSPECTS (CTRL-P)
Go to the prospects window. Once this window opens, you can select a team from the pull down menu and display it's prospects. To activate a prospect, highlight his name and select "Activate". You will then proceed to a "Find Match" window where you can browse the unused players in the league database. Sometimes this is handy if a player's name has been mispelled. Simply locate the player's name in the list and then double click on it. The player will be added to the team's farm roster. If you cannot locate the player's name in the database then you can manually create ratings for him by selecting "Manual Create".
Once in the Player Info window, simply enter the appropriate values by clicking on them and then entering info in the dialog boxes. The prospect window will also allow you to Add or Delete prospects by clicking on the appropriate button. When deleting a prospect, make sure his name is highlighted first.
2.4 TRADING PLAYERS (CTRL-T)
Go to the trade window where you can swap players, prospects, draft picks or cash between teams. Select the two teams involved in the trade by using the corresponding pull down menus. Then click on all the items involved in the trade. When you click on an item it remains highlighted. That means it will be involved in the trade, so if you accidentally click on something, make sure you click on it again to "un-highlight" it. Otherwise it will be traded. Once you have made the appropriate selections, click on "Execute Trade" and the deal is done. Players will be sent to the corresponding rosters (pro to pro, farm to farm). If you want to include money in the trade, click on the text window next to "Cash". A dialog box will open allowing you to enter the amount of cash involved in the deal. You can get a quick opinion from the sim by selecting "Assess Trade". FHL will tell you who it thinks is coming out ahead in the deal.
2.5 FREE AGENTS (CTRL-F)
Any players who's contract has been reduced to "0" will be considered a free agent. If you go to the Free Agent window you will see a list of these players. Clicking on "Output" will create an HTML file titled <league>FreeAgents.html in your FHL\TRANSFER directory. To sign a player to a team, highlight the team and the player and then select "Add to Team". You will be prompted to enter the new contract length and salary. Once you have done this, the player will be assigned to the appropriate roster on the new team.
2.6 CHECK WAIVERS (CTRL-W)
Players who are currently on waivers can be viewed by selecting "Check Waivers". You can also set the priority list in this screen. To set priority, click on "Set Priority" and you will switch to priority mode. Clicking on a team name will "pull" the name from the list. Click on the section of the list where you want the team to "reappear". Once you are done setting the order, click on "Save Priority" to return to normal mode. You can save the priority order as the entry draft order by selecting "Set Draft Order". When you click on a team in the priority list (while in normal mode), players available to that team will appear in the "Waived Players" list. If you want to claim a player, highlight his name and the team that will claim him and click on "Claim Player". If a team has waived a player but wants him back you can select "Recall Player" to remove him from the waiver list. However, if he has already been claimed by a team that is higher on the priority list then this option is not available. Once a team has claimed a player from waivers, that team will be placed in the priority spot of the team it claimed the player from.
2.7 RANDOM CONTRACTS
Clicking on this option will allow you to randomly set player contracts from 1-4 years. This is done to all teams simultaneously and you will be prompted to confirm that you're sure you want to do this.
3.1 SET GAME ROSTER (CTRL-R)
Select "Set Game Roster" to set which players are in a team's game roster. You can view players by position by simply turning the appropriate position buttons on or off. The roster list follows standard Windows conventions so you can select several names by holding down CTRL and clicking on them. They will then be moved at once when you select the appropriate movement button (Scratch>, <Dress, To Farm>,<To Pros). You can view detailed player info by double clicking on any player's name.
In order to have a complete roster you must have at least three players at each forward position, 6 defencmen and two goalies. There must also be a total of 20 players altogether. When your roster is complete "Roster Complete" will appear in the top right hand corner of the screen.
You can add players to the team by selecting "Add Player". This will access the unused players in the player database. The "Protect" button is currently not implemented but will be used during expansion draft.
3.11 PLAYER INFO WINDOW
Displays all relevant player data. To change any data just click on the item you want to change and you will either receive a dialog box or the item will change at increments. If it is an incremental change, then you can alternate between upward and downward increments by either right clicking or left clicking with the mouse. To delete the player from the roster select "Release".
3.2 SET LINES (CTRL-E)
Set's the game lines for a team. Clicking "Auto" will set the lines for you. As in the roster window, you can view players by position only and you can access player data by double clicking a player's name.
To enter players in appropriate spots, click on the player's name and then click on the spot you want to assign him to. Alternate between regular strength and special teams lines by clicking on the appropriate button in the top right hand corner. "Extra Skaters" are the players called upon first when a sub is required so generally they are your best players.
3.3 RECEIVING TEXT LINES
Click on Text Lines in the Lines Window to load text formatted lines for a team. You will go to a File Dialog that will allow you to locate the corresponding text file. The proper format for text lines is as follows:
The first five lines should list the players who will be in your roster. There cannot be more than twenty altogether, with only 2 players designated as goalies. List jersey numbers for players as follows, separating each with a comma:
Type "***" on a separate line
Then, still using jersey numbers, assign players to lines in the following order:
4 even strength lines (5 players).
All said and done your lines should look something like this:
When you receive the lines file via email, copy them from your email program and paste them into Notepad or a similar text program. Make sure there is no space at the top of and then save the file with a name that is easy to remember.
3.4 AUTO ALL
Automatically generate rosters and lines for all teams. Bear in mind that each team requires 3 centres, 3 left wingers, 3 right wingers, 6 defencemen and 2 goalies dressed to be able to ice a team. If this is not the case the simulator will not be able to continue.
4.1 ALIGN LEAGUE
This screen will allow you to rearrange the setup of your league. Note, you do not want to do this once you have made a schedule as realigning the league will disrupt any current schedules you have made.
To view teams in a division, select the appropriate Conference and Division in the top right hand corner of the screen. Teams will appear in the text boxes at the bottom of the screen. Clicking on a team name will send it to the "Unassigned Teams" list. You can then assign the team to a different division by first selecting the division, highlighting the team in the Unassigned Teams list and then clicking on an empty text box. To add a team select "Add" when you are in the Division you want to add the team to. You can activate an Expansion Draft by clicking on the Expansion Draft button.
Go to schedule window where you can create a new schedule. Creating a new schedule in mid season will obviously disrupt the current season. Sometimes you will select a certain configuration of games and you will receive an "Attempt Failed" error. If this happens try changing the number of games played in each category.
In order to produce an accurate schedule the number of games a team plays outside it's conference (i.e. vs League) must be even. So if there are 13 teams in the opposing conference, you cannot play 3 games Versus League (because 3x13=39, an odd number). In this case, you would try changing the Versus League games to 2. When you make any changes, the Total GP by each team will be updated in the bottom right hand corner. You can add more games by using the toggle buttons next to Total GP/Team. Avg. GP/Day and Variance determine the number of games played each day.
Check scores of past games, or see when teams play each other. Simply highlight a team in each of the two menus and then select Review Schedule. Games played by the two teams will appear in the lower window.
Go to games window where you can simulate games. Selecting Today Games will play one day's worth of games automatically. You can play exhibition games by selecting a team in each of the two menus and then clicking on Exhibition Game. A dialog box will show you the score and tell you what the boxscore was saved as in your FHL\TRANSFER directory.
You can simulate an entire season by selecting Full Season, but this can take quite a while depending on the speed of your computer. Also, there is no way to interrupt this once it's started. Selecting Rest Day will rest all teams for a day, which is particularly handy if you're playoffs end early and you want to give teams some well deserved rest.
Available once the regular season is complete. Playoff matchups are determined and a new file is created with playoff information saved separately from regular season. The file name is the same as your regular season plus "PLF". eg. playoff file name for "NHL98" becomes "NHL98PLF".
Available once the playoffs are complete. Continues the current league in a new season. Player contracts are reduced by one year and players age one year. Soon you will also have the option to "re-rate" players based on their age.
Set game options, including HTML Output, simulator settings and game options.
4.8 GENERAL OPTIONS
Set the current league year. This is important if you want draft picks to be properly labelled. If your current year is listed as 1997. The next draft year will be considered to be 1998.
4.9 OUTPUT OPTIONS
This is where you determine which pages are outputted in HTML format. Click on all the pages you would like to have outputted and then click on Auto Output in the bottom right hand corner. After each day's games are played, the pages will be automatically created in your FHL\TRANSFER directory.
To customize pages you can click on HDR next to the appropriate page. This will open up a text window where you can enter custom HTML info. Whenever the page is created this HTML code will automatically be affixed to the beginning of the HTML document. Conversely FTR will allow you to edit the closing section of the HTML document, handy if you are creating tables to contain the league information.
For more information see section 5.2 Internet Output Header Options.
4.10 PLAYOFFS OPTIONS
Number of teams in playoffs can be set to a) Top 16 teams, b) Top 8 teams, or c) Top 4 teams. This means a) Top 8 from each conference, b) Top 4 teams from each conference or c) Top 2 teams from each conference. If the "Seed Division Leaders" is checked, then each division winner will be seeded so that even if a division winner has less points than a second place finisher in the other division, the winner will be ranked higher come playoff time.
4.11 FILES OPTIONS
No Options implemented yet. File paths are all defaults as follows.
FHL\HEADERS: Source for HTML Header pages
FHL\TRANSFER: Transferred HTML pages
FHL\COMMAND: Line files from GM Editor
4.12 SIMULATOR OPTIONS
Set which elements you wish to include in your league. Also you can adjust the number of goals, shots, penalty minutes, suspensions and injuries in your league with the corresponding slider. Of the other options, Automatic Line Correction cannot be turned off.
4.13 TRANSACTIONS OPTIONS
Draft Rounds: Set the number of rounds in the entry draft.
Lottery: Determine whether or not a lottery will be held to determine the top overall picks. The lottery is conducted by taking all teams who did not make the previous season's playoffs. Teams are weighted according to how badly they performed in the previous season (i.e. the worst teams get more ballots). Teams are then drawn and the order is set. If lottery is not selected then draft order is according to record.
Unrestricted Age: Age at which free agents are considered to be unrestricted.
Minimum GP: Minimum number of games a player has to play to be considered eligible for waivers.
Age Exemption: Age, under which, a player will be exempt from waivers regardless of games played.
2-Way Con After: Number of games played after which a player will receive a two way contract. This means that he will receive a pro salary even if he is on the farm team.
Trade Deadline: Percentage of games played after which no trades are allowed.
5.1 OUTPUT HTML
Output pre-formatted pages for the league. When you first open the window, pages to output will be selected according to the settings in the options window. However, you can toggle pages on or off as desired.
5.2 OUTPUT HEADERS
Each HTML report can include an optional header/footer in the html output that is provided by FHL itself.
These files are found in the %FHLHOME%\Headers\ folder named *.hd1 through *.hd16 for headers and *.ft1 through *.ft16 for the corresponding footers.
The header/footer filenames and reports can be edited within FHL through the Output Tab League|Options menu, by clicking on the HDR or FTR buttons beside each report. If you prefer an external editory, you may edit the files directly. These files are consulted each time the Internet|Output HTML report is invoked. The Report to filenames are as follows:
6.1 BEGIN ENTRY DRAFT†
This will start an entry draft using draft order determined by previous season or by setting it in the Check Waivers window (see Check Waivers 2.5). You will be prompted to select a draft file. A default draft98.txt file is included with FHL and is located in your main FHL directory. You can make your own draft file by simply using Notepad to create a list of player names. Put one name per line, no spaces. Save this as a text file and then load it when prompted to do so. You can leave the draft at any point and pick up where you left off later.
6.2 EXPANSION DRAFT
6.3 ASSIGN UNUSED PLAYERS
This allows you to assign unused players in the player database to teams. You can output all unassigned players to an HTML file by selecting "Output".
Make sure that you play with FHL lots before you start a league. Particularly, run a few test season with FHL if you plan to use weird (read odd-numbered) divisional alignments and such. If you have an incongruent league where the teams are not evenly distributed among teams you may have some issues with how FHL handles the schedule and playoffs. If you try a 17-team league you are just asking for trouble.
Be sure to baseline your league files before the start of a season. When we say baseline, we mean copy all the league files to a separate folder or better yet, drop them into a zip file with the date and time in the name.
FHL copies files from your league files to swp.* files when it starts. It them works on these files whenever it can to avoid screwing up your regular league files. Trouble with this is even when FHL exits cleanly, itís possible for your league files to be put into a state where you donít want to be.
Disk space is cheap, and unused space is wasted space. Before each game night you should back up your league files. Use discipline in backing up, or you will pay dearly when the two or three GMs that show up on your door to mod you up.
Another way to enhance your ability to run a league and to avoid problems is to make a repeatable process for anything you do thatís league related. That means writing some step-by-step instructions for doing anything you do, as if your Great Aunt Frieda or your most technically incompetent friend was going to run games for you every night.
Automate as much as you can. Use scripts and batch files to pull lineups and push content to the web. There are excellent tutorials on batch files on the web if youíve never done them before. Ahuka Communications (http://www.ahuka.com/index.html)† has an excellent batch file tutorial starting at http://www.ahuka.com/dos/lesson15.html
ActiveState ActivePerl (http://www.activestate.com/Products/ActivePerl/†)is a free scripting language for Windows that you can use to enhance your processes.
Some excellent tools are available from Tim Charron http://www.interlog.com/~tcharron/†
Getmail retrieves your pop3 mail and attachments to a folder. Handy for getting the latest lineups
BLAT sends mail using SMTP. Handy for sending out league files via email and for notifications of updated web pages.
WGET handy for retrieving web content in a batch file
Macro Express ( http://www.macros.com/ ) is one of many handy tools for automating tedious and repetitive GUI tasks in FHL with a hotkey like assigning unassigned players.
Well, how about this for a section in a manual? Yes, FHL has bugs lots of them itís a v1.x ! But software has bugs, too. Itís just that FHLís bugs can really make you mad when they adversely affect your leagues play, which often involves a dozen of your closest buds.
This is a good honest admission that our product isnít perfect and that you should take every precaution to save yourself from the torturous hell that awaits you if you have to learn the hard way about FHL problems in front of your closest friends.
FHL is particularly weak at exception handling, and does not fail cleanly when most runtime errors are encountered. Weíre working on it but there is a lot of legacy code that can get you into a weird state.
Notwithstanding the admission of bugs, remember your licence agreement: we donít warrant FHL will even work, so you canít hold this section of the manual against us. Weíre just trying to be honest here.
If you have a major crash, the best place to figure your way out is to mess around a bit, understand the problem and correlate it to a given team or operation. Then you can post that information to our support board and hopefully someone there will have a workaround for you.
You can send your league files to fhlsupport@FHLSim.com via email, with a very detailed description of the problem, the steps to repeat it, the last operations you performed before you encountered the error, and your speculation as to what the problem might be.
However, that will only assist us in patching FHL against this problem, NOT in getting your league files fixed. We will very rarely be able to fix league files for individual leagues, especially in time to save your league we simply havenít the manpower or background it takes to resurrect league files for people.
The best you can hope for is to avoid the situation altogether, so read onÖ
If you are in trouble and donít know what to do, your first bet is to check out the FHL FAQ http://www.fhlsim.com/faq.html
There is an unofficial FHL FAQ at the FHL Forum which is updated more often than the one at FHLSim.com.
The FHL Forum is where you will likely find someone who has had that problem before
Usenet Newsgroups are still a great place to go, specifically
via your newsreader: news:alt.sports.hockey.fantasy
via Google Groups http://groups.google.ca/groups?group=alt.sports.hockey.fantasy