In Ordinal Markup, players are able to change their progress in the game at will, if having a general understanding of the hidden values inside the game. Cheating in Ordinal Markup involves manipulating these values that are stored in different ways, such as a variable with its data stored into your Local Storage, or an encoded save file containing these secrets.
General Information[]
game
[]
The game
variable in Ordinal Markup's source code is a globally accessible object variable that holds and handles the player's data.
The useful properties of the game
variable are as follows, listed in alphabetical order:
! Note: | Don't include obsolete properties in this table. |
---|
Key | Value | Notes |
---|---|---|
OP | A Number that indicates your current amount of OP. | This number is compressed post-gψ(Ω) (10) and further compressed past gBHO (10). |
alephOmega | An ExpantaNum that stores your current unspent ℵω. | |
assCard | An Array that contains 3 Objects that stores the .points , .power and .mult for each of the 3 assigned Cardinals. The points property for each is an ExpantaNum. |
|
aups | An Array that stores IDs for each Aleph Upgrade that is bought. | The ID values are 1-based, just like the abbreviation is - AU1 bought is stored in the Array as a 1. |
bestFBps | A Float that tracks your highest ever FB/s. | Useful to easily unlock the 2nd set of Omega Challenges. |
boostUnlock | A Boolean-like Integer that determines if the Boosters tab is unlocked; it toggles the Boosters tab to be displayed or not. | |
collapseUnlock | A Boolean-like Integer that determines if the Collapse tab is unlocked; it toggles the Collapse tab to be displayed or not. | |
factorBoosts | An Integer that determines the amount of Factor Boosts that has been done in this Collapse. | Changing this value also changes game.boosters , but on the next game tick after the statement to change this value was called.
|
incrementy | An ExpantaNum that stores your current Incrementy. | |
infUnlock | A Boolean-like Integer that determines if the Markup tab is unlocked; it toggles the Markup tab to be displayed or not. | |
lastTick | An Integer that keeps track of time. Specifically, it determines a snapshot of the last game tick. It is used to make Delta Timing possible. | The value of this is the milliseconds passed since the Unix Epoch at the last game tick. If changed on the go in the console, a significant change can occur straight away, which is effective for simulating a timelapse. |
ord | A Number that indicates your current value of your Ordinal. | Much like with game.OP , this number is compressed past ψ(Ω) (hard-coded as 4.000e270) and further compressed past BHO.
|
reachedBHO | A Boolean-like Integer that informs the game if the player has ever reached BHO before. | |
sing | An Object that stores how many levels the 3 currencies used to upgrade the Singularity was upgraded by. .dm represents Dark Manifolds, .m represents Manifolds and nw represents ℵω. |
To calculate your Singularity level, these 3 values are added together. |
incrementyverse | A Boolean-like integer that determines if the Incrementyverse tab is displayed, if the Markup and Boosters tabs are not displayed and if the Collapse tab is displayed as the Old Mechanics tab. |
How to Start Cheating[]
There are a few different provided ways one can use to start cheating. These include using the Console or Base-64 Decoding and Encoding a save file.
The Console[]
The Console is a tool that is embedded in Google Chrome. It is accessed by inspect elementing (F12 / CTRL+SHIFT+I / (Right Click, then click Inspect Element)), then clicking on the Console tab. The Console can take in JavaScript code and perform it, and is mainly used for cheating, modding, testing or debugging.
From there, you can input some simple statements to change some property values of the game
variable, and you can actually notice the changes caused as soon as you submit the statement.
A basic JS statement to change your current Factor Boosts to 1 million would look like this snippet:
game.factorBoosts=1e6
Another important concept to mention is handling ExpantaNum Object values. To do this, one must utilise this strategy:
- Replace that ExpantaNum with a new ExpantaNum. Eg. To change your current Incrementy (which is stored as an ExpantaNum) to a "number" value of e1.000e10 (which is not possible with regular Floats), type in this JS snippet:
game.incrementy=new ExpantaNum('ee10')
There are actually many different notations to pass in, but this is the simplest way.
! Note: Don't forget to make the value to pass in a type String!
Base-64 Decoding and Encoding your Save File[]
! Note: | This strategy is less efficient and takes more time to perform on platforms other than mobile. On mobile this is your go-to. It is much simpler to cheat in this way on mobile. |
---|
By exporting your save in the Options tab, your clipboard will contain a Base-64 encoded save file. In reality, the save data is a JSON string is encoded in Base-64. By decoding your file via. a Base-64 decoder, the JSON string is then revealed. This JSON string is a snapshot of the game
variable from the time you exported the save to your clipboard.
From there, you can change the values that you want, but make sure to keep the JSON string valid for the game to automatically parse the JSON string into an Object.
Once you have changed the JSON string to your heart's content, make sure to pass in that string into a Base-64 Encoder to allow the string to be parsed by the game. Then in the game, go to the Options tab and import your new, artificial save.
Trivia[]
- Ordinal Markup was created using HTML, CSS and JS, and is what makes cheating via. the Console possible, as the Console handles JS.