text: let modInfo = {
  	name: "BSED Tree",
  	id: "mymodlol",
  	author: "OhMan, original game made by Quantack",
  	pointsName: "cash",
  	modFiles: ["layers.js", "tree.js"],
  
  	discordName: "",
  	discordLink: "",
  	initialStartPoints: new Decimal (1), // Used for hard resets and new players
  	offlineLimit: 0,  // In hours
  }
  
  // Set your version in num and name
  let VERSION = {
  	num: "0.0",
  	name: "Literally nothing",
  }
  
  let changelog = `<h1>Changelog:</h1><br>
  	<h3>v0.0</h3><br>
  		- Added things.<br>
  		- Added stuff.`
  
  let winText = `Congratulations! You have reached the end and beaten this game, but for now...`
  
  // If you add new functions anywhere inside of a layer, and those functions have an effect when called, add them here.
  // (The ones here are examples, all official functions are already taken care of)
  var doNotCallTheseFunctionsEveryTick = ["blowUpEverything"]
  
  function getStartPoints(){
      return new Decimal(modInfo.initialStartPoints)
  }
  
  // Determines if it should show points/sec
  function canGenPoints(){
  	return true
  }
  
  // Calculate points/sec!
  function getPointGen() {
  	if(!canGenPoints())
  		return new Decimal(0)
  	let gain = new Decimal(1)
  
  	// base stuff
  	let gemBoost = buyableEffect("g", 11)
  	let fBoost = buyableEffect("f", 12)
  	if (getBuyableAmount("g", 11).gte(1)) gain = gain.add(gemBoost.first)
  	if (hasUpgrade('r', 25)) gain = gain.add(upgradeEffect('r', 25))
  	if (getBuyableAmount("f", 12).gte(1)) gain = gain.mul(fBoost.first)
  
  	// secrets first
  	if (hasAchievement('se', 11)) gain = gain.times(achievementEffect('se', 11))
  	if (hasAchievement('se', 12)) gain = gain.times(achievementEffect('se', 12))
  
  	// buyables
  	if (getBuyableAmount("g", 11).gte(1)) gain = gain.mul(gemBoost.second)
  
  	// upgrades
  	if (hasUpgrade('r', 11)) gain = gain.times(1.5)
  	if (hasUpgrade('r', 12)) gain = gain.times(2)
  	if (hasUpgrade('r', 13)) gain = gain.times(upgradeEffect('r', 13))
  	if (hasUpgrade('r', 14)) gain = gain.times(upgradeEffect('r', 14))
  	if (hasUpgrade('r', 23)) gain = gain.pow(1.07)
  
  	// challenge buffs
  	if (hasChallenge('s', 11)) gain = gain.mul(challengeEffect('s', 11))
  	if (hasChallenge('s', 12)) gain = gain.mul(challengeEffect('s', 12).cboost)
  
  	// other layer stuff
  	if (player.f.ipoints.gte(1)) gain = gain.mul(player.f.ipoints.pow(1/4))
  
  	// challenge nerfs
  	if (inChallenge('s', 11)) gain = gain.pow(0.5)
  	if (inChallenge('s', 12)) gain = gain.div(3)
  	return gain
  }
  
  // You can add non-layer related variables that should to into "player" and be saved here, along with default values
  function addedPlayerData() { return {
  }}
  
  // Display extra things at the top of the page
  var displayThings = [
  ]
  
  // Determines when the game "ends"
  function isEndgame() {
  	return player.points.gte(new Decimal("e280000000"))
  }
  
  
  
  // Less important things beyond this point!
  
  // Style for the background, can be a function
  var backgroundStyle = {
  
  }
  
  // You can change this if you have things that can be messed up by long tick lengths
  function maxTickLength() {
  	return(3600) // Default is 1 hour which is just arbitrarily large
  }
  
  // Use this if you need to undo inflation from an older version. If the version is older than the version that fixed the issue,
  // you can cap their current resources with this.
  function fixOldSave(oldVersion){
  }