FANDOM


More about Antimatter Dimensions:
General Info: DimensionsTicksAchievements
Pre-Infinity: Soft ResetDimensional SacrificeAntimatter Galaxy
Pre-eternity: InfinityInfinity UpgradesChallengesAutobuyersBreaking InfinityInfinity DimensionsReplicanti
Post-eternity: EternityEternity MilestonesTime DimensionsTime StudiesEternity UpgradesEternity ChallengesTime Dilation
Misc: GuideTerminologyCheating

Antimatter Dimensions is a game made in Javascript, and none of the code is made to be hard to view or understand (it's open source, can be found at https://github.com/IvarK/IvarK.github.io). This makes it very easy to make the game do what you want, and also very easy to break the game as well, if you don't understand what you're doing. This section will clarify how to cheat and manipulate the game in the way you want it to be.

Getting Started Edit

The Console Edit

To begin cheating, you must be on the github version of the game (https://ivark.github.io/). Then, press F12. This will open the console (and award a secret achievement) to let you begin cheating.

Once you've done this, feel free to scroll down to "functions" for easy game manipulation.

Game Structure Edit

The game saves most of its variables inside the player object. In the console, typing "player." will show what variables there are to edit. Simply typing "player" and pressing enter will give the current status on every variable.

Not everything is stored in the "player" variable, but most things are.

break_infinity.js Edit

The game uses break_infinity.js, a class that allows for numbers greater than Infinity. This means that forms of cheating like those used in "Cookie Clicker" may not work, because numbers greater than the limit of Infinity in Javascript will not work with games that don't allow big number decimal values.

Things that need to be above infinity are stored as a "Decimal". When dealing with Decimals, you cannot use the default Javascript functions and must use special ones. Note that break_infinity.js still messes up at higher values, and has a limit to how much a decimal can have (9ee15).

Decimals can be chained effectively by simply adding another dot after. The order of operations when doing this is always a fixed left to right. For example: player.money.add("1e1000").mul(2) would add 1e1000 to your antimatter count, then double it.

Note that Decimal commands should not be used for variables that are not normally a Decimal.

For all the commands in the list below, the value to the left of the dot must be a Decimal. The other values can be expressed in the following forms: a string that expresses a number in base 10, a string with an 'e' to denote scientific notation, or a native Javascript number.

break_infinity.js useful command list Edit

new Decimal(a) - Transforms a value into a Decimal.

a.add(b) - Adds the two values together.

a.sub(b) - Subtracts b from a.

a.mul(b) - Multiplies the two values together.

a.div(b) - Divides a into b parts.

a.log(b) - Returns a non-decimal (normal Javascript double) equal to log base b of a. May break if b is too high.

a.pow(b) - Takes a to the power of b. May break if b is too high.

a.factorial() - Returns the factorial of the value.

a.egg() - equivalent to a.add(9).

Variables stored as Decimal Edit

The following values are stored as a Decimal and can be modified as needed.

Notes on how to better use this chart can be found in "Variables".

How to refer to variable Represents
.money The amount of antimatter you currently have.
.tickSpeedCost The current price of the tickspeed upgrade.
.tickspeed The length, in ms, of each "tick" (lowered by tickspeed upgrades).
[TIER_NAMES[<dimension number>]+"Cost"] The current price of a single Dimension.
[TIER_NAMES[<dimension number>]+"Amount"] The amount of the Dimension you currently have.
[TIER_NAMES[<dimension number>]+"Pow"] The power multiplier to the Dimension that comes from the multiplier from 10 dimensions, Soft Resets, and Dimensional Sacrifice (but not things basing off of Dimensional Sacrifice).
.sacrificed The amount of First Dimensions sacrificed using Dimensional Sacrifice.
.infinityPoints The amount of infinity points you currently have.
.totalMoney The total amount of antimatter you've made. This appears in statistics.
.costMultipliers[<dimension number>-1] The amount the cost of the dimension multiplies by every 10.
.tickspeedMultiplier The amount the cost of the tickspeed upgrade multiplies by every 10.
.chall3Pow If in challenge 3, the First Dimension power is multiplied by this amount.
.matter In certain challenges, matter is a variable that increases over time. Its effect varies by the challenge.
.chall11Pow In challenge 8, this becomes the multiplier the Eighth Dimension gains from sacrifice.
.infMult The multiplier to Infinity Points from the x2 IP Infinity Upgrade and the two achievements that give x4 IP.
.infMultCost The price of the x2 IP Infinity Upgrade.
.infinityPower The amount of Infinity Power you currently have.
.postC3Reward The total current multiplier from the reward of Infinity Challenge 3.
.eternityPoints The amount of Eternity Points you have.
.epmult The multiplier to Eternity Points that comes from the x5 EP gain upgrade.
.epmultCost The price of the x5 EP gain upgrade. This will adjust to the value it should be with your epmult after a purchase.
["infinityDimension"+<infinity dimension number>].cost The price of the next upgrade of the Infinity Dimension.
["infinityDimension"+<infinity dimension number>].amount The amount of the Infinity Dimension you currently have.
["infinityDimension"+<infinity dimension number>].power The multiplier to the power of the Infinity Dimension that comes from buying it.
.timeShards The amount of time shards you currently have.
.tickThreshold The amount of time shards you need to gain another tickspeed upgrade from time shards.
["timeDimension"+<time dimension number>].cost The cost of the next upgrade of the Time Dimension. This will adjust to the value it should be with the amount of times it has been bought after a purchase.
["timeDimension"+<time dimension number>].amount The amount of the Time Dimension you currently have.
["timeDimension"+<time dimension number>].power The square root of the multiplier to the power of the Time Dimension that comes from buying it.
.replicanti.amount The amount of replicanti you currently have.
.replicanti.chanceCost The price of the replicate chance upgrade.
.replicanti.intervalCost The price of the replicate interval upgrade.
.replicanti.galCost The price of the max replicanti galaxy upgrade.
.timestudy.amcost The price of the next Antimatter Time Theorem.
.timestudy.ipcost The price of the next Infinity Point Time Theorem.
.timestudy.epcost The price of the next Eternity Point Time Theorem.
.eternityChallGoal The amount of Infinity Points you need to end your current Eternity Challenge.
.autoIP The greatest amount of IP/min gained in a completely automatic run. This is used for a secret way to generate IP.
.eternityBuyer.limit The amount of EP the eternity autobuyer will wait for to eternity.
.dilation.tachyonParticles The amount of tachyon particles you currently have. This is used for all purposes other than the one in totalTachyonParticles.
.dilation.dilatedTime The amount of dilated time you currently have.
.dilation.totalTachyonParticles The amount of tachyon particles you currently have. This is subtracted from the amount of tachyon particles you will gain in the formula.
.dilation.nextThreshold The amount of dilated time needed to get the next galaxy.

Variables in player Edit

Note that Decimals (numbers above Infinity) are located above.

Remember to prepend these with "player".

Some things on this page will have triangular brackets (<>). They are to be substituted with the value needed.

Note that things will reset to what they normally reset to when the value normally resets.

Capitalization and exact punctuation matters!

Numbers Edit

These ones are a number and not a Decimal, meaning they can be set normally like they would in Javascript. They, however, cannot exceed Infinity unlike Decimals.

Note that all unspecified time units are in 100ms intervals (10 per second).

How to refer to variable

Represents
[TIER_NAMES[<dimension number>]+"Bought"] The amount of the dimension bought (not generated) in this run.
.infinitied The "infinitied stat".
.infinitiedBank The amount of banked infinities you currently have.
.totalTimePlayed The total time from first loading the game to now.
.bestInfinityTime The amount of time spent in your fastest infinity.
.thisInfinityTime The amount of time spent in your current infinity.
.resets The amount of soft resets you've made. (Dimensional Shifts/Boosts)
.galaxies The amount of antimatter galaxies you have.
.tickDecrease This doesn't actually do anything.
.achPow The multiplier gained from achievement rows. This resets on game load and achievement gain.
.lastUpdate The last time a tick occurred, in milliseconds (ms) since January 1st, 1970.
.autobuyers[<autobuyer ID[1]>].bulk The bulk buy of the autobuyer.
.autobuyers[<autobuyer ID[1]>].cost The price of the next upgrade of the autobuyer.
.autobuyers[<autobuyer ID[1]>].interval The delay of the autobuyer between purchases, in milliseconds (ms).
.autobuyers[<autobuyer ID[1]>].priority The assigned priority of the autobuyer. For the autobuyers that aren't the main 9, there are special things the variable is used for. [needs specifying]
.autobuyers[<autobuyer ID[1]>].target It is recommended that you don't change this.

For the main 9 autobuyers, if it is above 9 they will buy 10/max and otherwise buy singles. For the 8 dimension autobuyers, they will buy the dimension number of minus 10 of the target if above 10 or just the target if below.

For the others, there are special things the variable is used for. [may be inaccurate] [needs specifying]

.autobuyers[<autobuyer ID[1]>].ticks How long it's been since the autobuyer last triggered.
.autobuyers[<autobuyer ID[1]>].tier This variable is essentially the same as target except it stays 1-9. If modified the autobuyer will probably break.
.chall2Pow If in challenge 2, the multiplier of all normal dimensions is multiplied by this amount.
.partInfinityPoint Generated from the passiveGen Infinity Upgrade. When it reaches 10, gain an Infinity Point.
.partInfinitied Generated from the infinitiedGeneration Infinity Upgrade. When it reaches 5, gain an infinitied stat.
.challengeTimes[<challenge number>-1] Your best time on the challenge. Note that the challenge number is the internal challenge ID.
.infChallengeTimes[<infinity challenge number>-1] Your best time on the infinity challenge.
.lastTenRuns[<number of infinities ago>-1][0] The time spent on the infinity.
.lastTenRuns[<number of infinities ago>-1][1] The amount of IP gained from the infinity.
.lastTenEternities[<number of eternities ago>-1][0] The time spent on the eternity.
.lastTenEternities[<number of eternities ago>-1][1] The amount of IP gained from the eternity.
.tickSpeedMultDecrease The amount the tickspeed cost multiplier gets multiplied by on every purchase above Infinity.
.tickSpeedMultDecreaseCost The cost of the tickspeed cost multiplier increase upgrade.
.dimensionMultDecrease The amount a dimension's cost multiplier gets multiplied by on every 10 above Infinity.
.dimensionMultDecreaseCost The cost of the dimension cost multiplier increase upgrade.
.overXGalaxies The "Galaxies required to always Dimboost" field on the soft reset autobuyer.
.version The version of the game. Changing this variable is not recommended.

When the game updates, sometimes a variable needs to be changed from an old value to a new one, but it will only do this on the first time the game is loaded after the update. Lowering the version will run you through all of these again and increasing it will skip future adjustments.

.spreadingCancer The total amount of galaxies bought in Cancer (Emojis) notation, used for the achievements Spreading Cancer and Cancer = Spread, and for a news ticker at around 4,000 galaxies bought with Cancer (Emojis) notation.
.postChallUnlocked The amount of infinity challenges you've unlocked.
.postC4Tier The latest bought dimension number. In Infinity Challenge 4, this number is used to determine which dimension should have full production.
.eternities The amount of times you've eternitied.
.thisEternity The amount of time spent in your current eternity.
.bestEternity The amount of time spent in your fastest eternity.
["infinityDimension"+<infinity dimension number>].bought Doesn't actually do anything. This variable is always equal to 0.
["infinityDimension"+<infinity dimension number>].baseAmount The amount of the infinity dimension you start with on infinity.
.totalTickGained The amount of free tickspeed upgrades gained from time shards.
["timeDimension"+<time dimension number>].bought The amount of times you've bought the time dimension. This is used in determining the price of the next.
.offlineProd The multiplier to your best IP/min in the last 10 infinities that you gain passively per minute.
.offlineProdCost The cost of the upgrade that increases offlineProd.
.challengeTarget The goal of the challenge you're currently in.
.replicanti.chance The chance each replicanti has to replicate. (Not a percent, doesn't do anything past 1)
.replicanti.interval How often replicanti replicate, in ms.
.replicanti.gal The maximum replicanti galaxies you can make.
.replicanti.galaxies The amount of replicanti galaxies you currently have.
.timestudy.theorem The amount of Time Theorems you currently have,
.eternityChalls["eterc"+<eternity challenge number>] How many times the eternity challenge has been run (undefined if 0).
.eternityChallUnlocked Which eternity challenge you have available to run. (0 if none)
.etercreq Which eternity challenge you have available to run. (0 if none)
.autoTime The fastest infinity you've made in a fully automatic run. Used in conjunction with autoIP.
.eterc8ids The amount of Infinity Dimensions you can still buy in Eternity Challenge 8.
.eterc8repl The amount of Replicanti upgrades you can still buy in Eternity Challenge 8.
.dilation.freeGalaxies The amount of free galaxies gained from dilated time.
.dilation.rebuyables[<upgrade number>] The amount of times you've bought the particular rebuyable upgrade.
.why The amount of times you've bought a single tickspeed upgrade. Used for the Should we tell them about buy max... secret achievement.
.options.updateRate The speed the game's ticks go, in ms.
.options.chart.updateRate The speed of the chart's updates, in ms.
.options.chart.duration The seconds of history that will be recorded in the chart.
.options.chart.warning Something to do with the lag notification warning, but may not actually do anything.
  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 The autobuyer IDs are the challenge number the autobuyer was gotten from minus one.

    Note that autobuyers are not present until the challenge that unlocks them is complete. Complete the challenge before editing the autobuyer, as it will break otherwise.

    Using .autoSacrifice instead of .autobuyers[<autobuyer ID>] will allow modifying the sacrifice autobuyer too.

Booleans Edit

These have two values - either true or false.

How to refer to variable

Is true if...
.break Infinity is broken. Note that the Break Infinity Upgrades, and toggle for break itself, will not be visible unless you have the normal requirement.
.infDimensionsUnlocked[<infinity dimension number>-1] If you've unlocked the infinity dimension or not. Behavior may be buggy if one is unlocked and previous ones aren't.
.infDimBuyers[<infinity dimension number>-1] The autobuyer for the infinity dimension is enabled.
.replicanti.unl Replicanti have been unlocked (1e140 IP purchase).
.replicanti.auto[0] The autobuyer for the replicanti chance upgrade is enabled.
.replicanti.auto[1] The autobuyer for the replicanti interval upgrade is enabled.
.replicanti.auto[2] The autobuyer for the replicanti max galaxy upgrade is enabled.
.infMultBuyer The autobuyer for the x2 IP mult is enabled.
.respec The "respec on next eternity" is enabled.
.eternityBuyer.isOn The eternity autobuyer is enabled.
.dimlife No first to seventh dimensions have been bought in the current eternity. This is used in the 8 nobody got time for that achievement.
.dead No second to eighth dimensions have been bought in the current eternity. This is used in the You're already dead achievement.
.dilation.active Time is dilated.
.options.newsHidden The news ticker is hidden.
.options.scientific Doesn't do anything.
.options.challConf The challenge confirmation is enabled.
.options.retryChallenge "Automatically retry challenges" is enabled.
.options.bulkOn The autobuyer's bulk buy are enabled.
.options.cloud You can save to the cloud.
.options.hotkeys Hotkeys are enabled.
.options.eternityconfirm The eternity confirmation is enabled.
.options.commas Commas are on exponents.
.options.animations.floatingText Floating text appears on purchase of 10 dimensions.
.options.animations.bigCrunch The animation when you big crunch is enabled.
.options.animations.eternity Possibly something to do with the animations on eternity, if it is enabled or there is one.
.options.animations.tachyonParticles Tachyon particles appear on the dilation tab.

Orderless Arrays Edit

These are lists of things that you've done, such as achievements or upgrades. They usually appear in the order they were obtained, though the order doesn't actually matter. Duplicates do not normally appear in the arrays.

To add a value to these, add ".push("item you want to add")" after the reference.

To clear them, set them to [].

How to refer to variable Represents Stored in format...
.achievements Your achievements. <r|s><row><column>, concatenated with each other. r for normal achievements, s for secret ones.
.infinityUpgrades Your infinity upgrades. The ID found on the Infinity Upgrades page.
.challenges The (non-eternity) challenges you've completed. Normal challenges are challenge<internal challenge ID>. Infinity Challenges are postc<challenge number>.
.newsArray Which news you've seen before. Each news ticker message has a unique 4 or less character ID. (will be included when page gets made)
.eternityUpgrades Your eternity upgrades. Numbered from 1 to 6, in order from cheapest to most expensive.
.timestudy.studies Your time studies that reset on respec. The numerical ID shown when holding shift. (Studies without an ID are not on this list.)
.dilation.studies Your time studies that don't reset on respec. Numbered from 1 to 5, in the order they're purchased in.
.dilation.upgrades Your non-repeatable upgrades bought from dilated time. The ID found on the Time Dilation page.

Strings Edit

Some variables are stored as text.

How to refer to variable Represents Proper format
.currentEternityChall The eternity challenge you're currently in. eterc<eternity challenge number> If not in a challenge, this is blank.
.autoCrunchMode The mode of the crunch autobuyer, unlocked at 5 eternities. amount - amount

time - time

relative - X times last crunch

.options.notation The notation you're currently in. The name that appears on the Notation: setting.
.options.theme The theme you're currently in. For non-secret themes, the name that appears on the Current theme: setting.

For secret themes, S<theme ID>.

.options.secretThemeKey The name of the secret theme you were last in. Doesn't do anything except show up on the Current theme: setting. Exactly as is needed to import to get the theme.

note: non-player variables still need to be included

Functions Edit

This section is a work in progress and has incomplete information.

The game includes some functions which can be used for easily manipulating the game. Most are used by the game itself.

These functions can be changed themselves, and the effect will occur every time it's used in other portions of the code.

Effect Edit

These functions make something happen when called, and often don't return anything.

How to call function Effect Used in Return
setTheme(name) Sets the theme of the game to the one called [name].

Sets the display on the Current theme: option.

Awards the Shhh... it's a secret achievement if [name] is 2 or less characters long.

When you press the theme button.

When an import is a valid secret theme.

showTab(name) Show the tab named [name]. When you switch tabs.
updateMoney() Updates your current antimatter and matter displays to the correct value. gameLoop()
updateCoinPerSec() Updates your antimatter per second display to the correct value. gameLoop()
updateWorstChallengeTime() Updates your worst challenge time to the correct value. updateChallengeTimes()
sacrificeConf() Toggles player.options.sacrificeConfirmation. Unused.
updateDimensions() Sets the intended display of dimensions. (name, multiplier, amount, etc)

Sets the amount of visible rows on the normal dimensions tab in accordance to canBuyDimension().

Updates the labels for the soft reset and antimatter galaxy to the correct value.

Updates the label for the tickspeed upgrade (the reduction in speed) to the correct value, if canBuyTickSpeed().

Updates the fastest and current infinity times in statistics.

Updates both infinity point counters.

Updates the infinitied count, total antimatter, dimboost/galaxy count, and total time played in statistics.

Updates the eternity count and current/best eternity times in statistics.

Updates the text on all of the infinity and eternity upgrades.

Updates the dilation button (to dilate or stop, and the amount of antimatter needed to get TP).

gameLoop()

On page load.

On hard reset.

updateCosts() Updates the normal dimension's buy and until 10 buttons to have the correct price.

Updates tickspeed's buy and buy max buttons.

Updates the buy buttons on infinity and time dimensions.

On hard reset.

On notation change.

autoBuyerTick()

On page load.

floatText(id,text,offset) Displays floating text if the animation option is enabled. On purchase of 10 normal dimensions.
updateChallenges() Updates challenge buttons to say "start, "completed", or "running".

Unlocks infinity challenges if you have the antimatter.

If an error is gotten, tries again.

On import.

On hard reset.

On crunch.

eternity()

exitChallenge()

startChallenge()

gameLoop()

updateChallenges()

Return Edit

These functions don't do anything except calculate a value when called.

How to call function Return Used in
getInfinitied() Infinitied plus banked infinities, minimum 0. Everything that uses infinities except things that expect a certain amount or less.
getGalaxyCostScalingStart() The amount of galaxies it takes before polynomial scaling begins. getGalaxyRequirement()
getGalaxyRequirement() How many dimensions you need for your next antimatter galaxy. updateDimensions()

Whenever it's needed to check if you can afford a galaxy.

getETA(cost) Attempts to calculate how long it would take to afford a purchase. Unused.
ETACalc(t) Is used for getETA. getETA()
isEterChall(e) Checks if an element is for eternity challenges. updateChallenges()

Dev Edit

These functions exist as extra unused parts of the game, often used for testing.

How to call function Effect Extra
dev.giveAllAchievements() Awards every achievement (without duplicates).
dev.doubleEverything() Doubles every numerical (including Decimal) value in the player less than three layers deep. In the Antimatter Dimensions Discord, someone made a joke about doubling every value in the game.
dev.spin3d() Plays an animation where the game screen flips in 360 degrees.
dev.cancerize() Sets the theme to Cancer and the notation to Emojis. The theme and notation buttons say SO and BEAUTIFUL respectively. On April Fools 2018, this effect occurred randomly if players waited long enough.
dev.fixSave() Attempts to fix your savefile by changing instances of NaN to 10. Then loads the save.
dev.implode() Plays an animation, which is used for the Big Crunch animation.
dev.updateCosts() Sets the Time Dimension costs to what they should be.
dev.testTDCosts() Sets the Time Dimension costs to what they should be. This one also updates timeDimStartCosts to what it should be. In testing, the time dimensions had different pricing resulting in testers getting bad results when it was changed without their prices having changed.