College Football Simulator — Custom League Import Guide

NOTE: This guide is outdated for subdivision teams, award names, and national championship logo

This guide explains how to create and import a fully customizable league file using JSON format for the College Football Simulator.

File Structure

Your JSON file must include the following keys:

{

 "conferences": [...],

 "independents": [...],

 "bowls": [...],

 "ny6Bowls": [...],

 "rivalries": [...],

 "protectedPairs": [...]

}

  1. Conferences

Conferences group teams that regularly compete against one another.

Required Fields

Field

Type

Description

name

string

Conference name

requiredConferenceGames

number

Number of conference games per team (usually 8–9)

conferencePrestige

number

Strength of the conference (50–100)

tier

string

“Power”, “Non-Power”

teams

array

List of team objects

protectedPairs

array

Rival matchups that occur every season

conferenceLogoURL

string

URL to hosted image (Optional)

Note: The conferenceLogoURL works differently from the in-app image import feature. If you import a logo directly in the app, it’s saved locally and won’t appear when you export or share your league with others. Using a logo URL instead ensures the image is hosted online and accessible on all devices, allowing your conference logo to display properly when the file is shared or imported elsewhere.

Recommendations

  • 512×512px minimum
  • Square images
  • PNG supports transparency (PNG with transparency typically looks best)
  • PNG or JPEG supported

Prestige Ranges

  • Power (Top-tier): 85–95
  • Non-Power (Mid-tier): 62–75
  • Independent: 80–82

Example:

{

  "name": "Elite Conference",

  "requiredConferenceGames": 8,

  "conferencePrestige": 90.0,

  "tier": "Power",

  "teams": [...],

  "protectedPairs": [...]

  "conferenceLogoURL": "https://example.com/elite-conference-logo.png"

}

2. Teams

Each team defines its branding, style, and competitiveness.

Required Fields

Field

Type

Description

name

string

Team name (e.g., “Scottsdale”)

mascot

string

Mascot (e.g., “Grass-Cutters”)

primary, secondary, tertiary

string

RGB colors in "r,g,b" format

prestige

number

Overall strength (50–100)

offenseScheme

string

“pro”, “spread”, “option”, “airRaid”, or “power”

defenseScheme

string

“4-3”, “3-4”, “4-2-5”, or “3-3-5”

abbreviation

string

2–4 letter code (e.g., “SCT”)

region

string

“Southeast”, “Midwest”, “Northeast”, “Southwest”, “West”, or “Plains”

logoURL

string

URL to hosted image (Optional)

Note: The logoURL works differently from the in-app image import feature. If you import a logo directly in the app, it’s saved locally and won’t appear when you export or share your league with others. Using a logo URL instead ensures the image is hosted online and accessible on all devices, allowing your conference logo to display properly when the file is shared or imported elsewhere.

Recommendations

  • 512×512px minimum
  • Square images
  • PNG supports transparency (PNG with transparency typically looks best)
  • PNG or JPEG supported

Prestige Scale

  • 90–100 → Elite programs
  • 80–89 → Strong contenders
  • 70–79 → Competitive
  • 60–69 → Average
  • 50–59 → Developmental

Example:

{

  "name": "Scottsdale",

  "mascot": "Grass-Cutters",

  "primary": "158,27,50",

  "secondary": "255,255,255",

  "tertiary": "0,0,0",

  "prestige": 94.0,

  "offenseScheme": "pro",

  "defenseScheme": "4-3",

  "abbreviation": "SCT",

  "region": "Southwest",

  "logoURL": "https://example.com/scottsdale-logo.png"

}

3. Independents

Teams not in any conference.

They use the same structure as normal teams but must include "tier": "Independent".

Example:

{

  "name": "Highlands",

  "mascot": "Falcons",

  "primary": "0,51,102",

  "secondary": "255,215,0",

  "tertiary": "255,255,255",

  "prestige": 82.0,

  "offenseScheme": "pro",

  "defenseScheme": "4-3",

  "abbreviation": "HLD",

  "tier": "Independent"

}

4. Bowls

You may include optional logos, the same way teams and conferences do.

These are postseason games.

  • bowls: Regular postseason games
  • ny6Bowls: Major bowls in the playoff rotation

Field

Type

Description

name

string

Bowl name

logoURL

string

Optional hosted image URL

logoData

On-Device

Optional On-Device Only Imported Image

Logo Behavior

  • Works like team/conference logos, URL preferred → loads on all devices, Base64 allowed → larger file size, Imported images from the UI do not export in JSON

Example:

"bowls": [

  {

    "name": "Copper Bowl",

    "logoURL": "https://example.com/copper-bowl-logo.png"

  },

  {

    "name": "Sunrise Bowl"

  }

],

"ny6Bowls": [

  {

    "name": "Summit Bowl",

    "logoURL": "https://example.com/summit-bowl-logo.png"

  },

  {

    "name": "Coral Bowl"

  }

]

5. Rivalries

Defines long-term rivalries between teams.

Use the exact team names as in your file.

Example:

"rivalries": [

  { "teamA": "Scottsdale", "teamB": "Mesa", "mutual": true }

]

6. Protected Pairs

Guarantee certain matchups happen every year within conferences.
Same format as rivalries.

Example:

"protectedPairs": [

  { "teamA": "Scottsdale", "teamB": "Mesa", "mutual": true }

]

Tips for Good Leagues

  • Keep conferences balanced in size and strength.
  • Limit each team to 1–3 protected pairs.
  • Use complementary color palettes for better visuals
  • Logos are optional but add visual polish to your league.

🌐 Hosting Your JSON for Import

To load your league via URL, upload the JSON to one of the following and use its direct/raw link:

  • GitHub Gist (Public or Secret → Copy Raw URL)
  • GitHub Repo (Commit file → Raw view link)
  • GitLab Snippet (Public snippet → Raw link)
  • Pastebin (Raw link, Unlisted or Public)

Example League (Simplified)

{

  "conferences": [

    {

      "name": "Sunbelt Elite Conference",

      "requiredConferenceGames": 8,

      "conferencePrestige": 90.0,

      "tier": "Power",

      "teams": [

        {

         "name": "Scottsdale",

          "mascot": "Grass-Cutters",

          "primary": "158,27,50",

          "secondary": "255,255,255",

          "tertiary": "0,0,0",

          "prestige": 94.0,

          "offenseScheme": "pro",

          "defenseScheme": "4-3",

          "abbreviation": "SCT",

          "region": "Southwest",

          "logoURL": "https://example.com/scottsdale-logo.png"

        },

        {

         "name": "Mesa",

          "mascot": "Coyotes",

          "primary": "12,35,64",

          "secondary": "221,85,12",

          "tertiary": "255,255,255",

          "prestige": 85.0,

          "offenseScheme": "spread",

          "defenseScheme": "3-4",

          "abbreviation": "MSA",

          "region": "Southwest",

          "logoURL": "https://example.com/mesa-logo.png"

        }

      ],

      "protectedPairs": [

        { "teamA": "Scottsdale", "teamB": "Mesa", "mutual": true }

      ]

      "conferenceLogoURL": "https://example.com/sunbelt-elite-logo.png"

    }

  ],

  "independents": [

    {

     "name": "Highlands",

      "mascot": "Falcons",

      "primary": "0,51,102",

      "secondary": "255,215,0",

      "tertiary": "255,255,255",

      "prestige": 82.0,

      "offenseScheme": "pro",

      "defenseScheme": "4-3",

      "abbreviation": "HLD",

      "region": "West",

      "tier": "Independent",

      "logoURL": "example.com)..."

    }

  ],

"bowls": [

  {

    "name": "Copper Bowl",

    "logoURL": "https://example.com/copper-bowl-logo.png"

  },

  {

    "name": "Sunrise Bowl"

  }

],

"ny6Bowls": [

  {

    "name": "Summit Bowl",

    "logoURL": "https://example.com/summit-bowl-logo.png"

  },

  {

    "name": "Coral Bowl"

  }

]

  "rivalries": [

    { "teamA": "Scottsdale", "teamB": "Mesa", "mutual": true },

    { "teamA": "Highlands", "teamB": "Desert Plains", "mutual": true }

  ]

}

DM @mani_foroughi on instagram if you have questions!