the cutting room mirror

NHL 2004

NHL 2004 is one of EA Sports' dependably-annual sports titles, best known for having an exceptionally robust modding community.

Development Text#

The configuration files inside tuning.viv contain many comments left by the developers.

defaultColors.txt#

// This is a comment

// Team Abbreviation, Alpha, Red, Green, Blue

gm_contract_logic.txt#

//when deciding to resign a contract after it's up (as in, just before free agent month starts), it will:
//
//
//

//when deciding to sign a draft pick (just before the season starts), it will:
//
//
//

//during the regular season, it will decide if it wants to pick up free agents based on:
//
//
//

//during the free agent month, it will decide if it wants to pick up free agents based on:
//
//
//

gmDefaults.txt#

// These are the members we need to set for the defaults
//  int mExperiencePoints;
//  int mUpgradePoints;
//  int mPrestigePoints;
//  int mRevenu; (in millions)
//  int mExpenses;
//  int mUpgradeScouting;
//  int mUpgradeMedical;
//  int mUpgradeCoaching;
//  int mUpgradeMarketing;
//  int mUpgradeLegal;
//  int mUpgradeEquipment;
//  int mUpgradeTravel;
//  int mUpgradeWorkout;
//  int mUpgradePractice;
//  int mUpgradeLocker;
//  bool mTVContractSigned;
//  int mTVContractLength;
//  int mTVContractAmount;
//  int mPriceSeasonTicket;
//  int mPricePlayoffsTicket;
//  int mPriceConcession;
//  int mPreviousPlayoffsRun; 
//      0 (no playoffs), 
//      1 (1st Round)
//      2 (2nd Round)
//      3 (3rd Round)
//      4 (Final Round)
//      5 (Champ)

gmHallOfFame.txt#

// This sets the default GM Hall of Famers

packagesounds.txt#

// examples listing all of the buttons that can be remapped, and all of the sounds they can
// be remapped with...
// It doesn't matter if the spacing is wrong, as long as it has the package name, followed by
// the button name, followed by the sound event name.
//

online_privacy.txt#

there a lot of privacy over here!

tuneAttendace.txt#

// The dollar amount the GM can boost the ticket price 
// each year without having negative effect

tuneDayEffect.txt#

// This is for tuning the effect of what happens during a day.
// Each of the possible action for a day modifies the following
// All the modification are negative or until even with the base attributes
// The player cannot have abod its based attributes value

tunePlayerMoralModel.txt#

// Thresholds is the low bound, so 7 means 7 and above.
// Modifiers can be positive and negative.

// First is if they win the stanley cup, ther other not
StanleyModifier: 1.25 0.85

tunePracticeDefaults.txt#

// The data are for tuning the amount of practices by default

tuneRevenueModel.txt#

// No data is currently needed for this model

tuneRookies.txt#

// Percentage of the number of rookies to get the high/medium/low attributes
// It's random and therefore doesn't mean the exact percentage will be met
// If I randomize a number out of 100, if that number is great than the one below,
// the potential will be based on that
potential_high_percentage: 86

// Someone like PECA - The optimal rookie has PECA - 10
2way_forward_speed: 76

// Someone like Tkachuk : 85%
power_forward_speed: 75

// A bruiser/enforcer like Worrell : 85%
bruiser_speed: 60

// A goal scorer/sniper like Kariya : 85%
goal_scorer_speed: 81

// A playmaker like Oates : 85%
play_maker_speed: 69

// A speedster like Bure : 85%
speedster_speed: 80

// A grinder like Roberts : 85%
grinder_speed: 69

// A offensive defensemen like Pronger : 85%
offensive_defenseman_speed: 76

// A offensive defensemen like Foote : 85%
defenseman_speed: 76

// A standup goalie like Burke : 85%
standup_goalie_speed: 82

// A standup goalie like Roy : 85%
butterfly_goalie_speed: 77

// A standup goalie like Brodeur : 85%
positional_goalie_speed: 78

// A reflex goalie like Belfour : 85%
reflex_goalie_speed: 73

// A flopper goalie like Hasek : 85%
flopper_goalie_speed: 87

tuneTrading.txt#

// Define the number of chances in a trade to have a draft pick
// Calculation in code rand() % (100 / draftpickchances)
DraftPickChances: 15

// Offer Influence
// Before an offer is sent to the user it is tested to ensure it is somewhat interesting.
// We don't want the user to keep receiving lupsided or boring trade
// We do not want it to be only valid trades either
// This defines a threshold by which we let trade offers go through to the user
// The larger the value the more trade will go through
OfferInfluence: 5

// Number of games to wait before allowing draft pick to be traded
// This is to ensure that you cannot have easy draft pick when the standings is undecided
// 10 games ...
minimumGames: 10

// BEST Draft pick value
BestValue:  94

// Draft Pick offest per round
round1: 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3

tuneTVContract.txt#

// The actual dollar amount for the contract it will be multiplied by 1 000 000
ContractDollars: 41 38 33 30 25 21

// The prestige to be reach to receive the contract offer at that level
Prestige: 125 100 65 40 25 0

// This is to increase the contract every year
FranchiseYearModifier: 5

tuneUpgradeEffects.txt#

// Affect trading only, drafting is more complex formula in the code.
scouting1: -1

// Coaching affect potential
// coaching1: 0
// coaching2: 0
// coaching3: 0
// coaching4: 0
// coaching5: 0
// coaching6: 0
// coaching7: 0
// coaching8: 0
// coaching9: 0
// coaching10: 0

// Medical affects injury and recovery
// medical1: -5
// medical2: -4
// medical3: -3
// medical4: -1
// medical5: 0
// medical6: 1
// medical7: 2
// medical8: 3
// medical9: 4
// medical10: 5

// Marketing affect Attendance
// marketing1: -5
// marketing2: -4
// marketing3: -3
// marketing4: -1
// marketing5: 0
// marketing6: 1
// marketing7: 2
// marketing8: 3
// marketing9: 5
// marketing10: 10

// Legal affect contracts
// legal1: -4
// legal2: -3
// legal3: -2
// legal4: -1
// legal5: 0
// legal6: 1
// legal7: 2
// legal8: 3
// legal9: 4
// legal10: 5

tweaksDefaults.txt#

// ALL VALUES ARE ZERO-BASED INDEX
// For each item, there is 4 values to set for each skills