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": [...]
}
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
Prestige Ranges
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
Prestige Scale
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.
Field | Type | Description |
name | string | Bowl name |
logoURL | string | Optional hosted image URL |
logoData | On-Device | Optional On-Device Only Imported Image |
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 }
]
To load your league via URL, upload the JSON to one of the following and use its direct/raw link:
{
"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!