-
Notifications
You must be signed in to change notification settings - Fork 4
Sequencer and Memory Freezing
Accessible in the Tools menu. The task sequencer allows you to run small operations as a larger task. For example, constantly writing the same value/values to an address/addresses to effectively freeze it
General note for the Value fields, you can add "f" or "d" on the end to try parse as float or double respectively, e.g.
25.4F
. Having a decimal point in the value will try to parse as double if the type is not currently float or double.
It's as simple as adding a Set Memory
operation at a specific memory address. Change the data type with the drop down, enter a value, connect to the console and click the start button. Note, the ByteArray
data type does not support wildcards (yet).
This contains a list of sequences. The Run Count
specifies how many times to run the sequence when you click the Start button. The default is once. Typing "inf" or any negative number in it will make it run forever.
This is a special option for taking priority over the engine's connection, preventing anything else from using it. By default, tasks will share the engine's connection for simplicity.
But by doing this, it stops things like the scanner and the memory viewer's auto refresh from working until the sequence stops. By enabling this without a dedicated connection, you can make the sequence run faster and in real time, whereas otherwise it might have to wait half a second to obtain it from something else.
Note
Busy Priority is useless when using a dedicated connection (see below for more info)
This shows all of the operations the sequence will run. You can add more via the buttons at the top-right.
The Operation Editors panel shows one or more panels that let you edit the selected operation (since some things wouldn't fit in the actual operation row, such as random triggering)
This is for the selected sequence. The left side is where you manage the dedicated connection for the sequence. By using a dedicated connection, the sequence can freely read/write without congesting the engine's connection, so you can still scan, edit values, etc. Ideally you'd want to use this for long running sequences that write very often, such as memory freezing
Note
All sequences not using dedicated connections will be stopped when you disconnect or change the engine's connection (CTRL+O)
The right side just shows the current status of the sequence and the operation currently running.
You can click and drag the grip icon on any sequence, operation or condition. Currently only 1 item can be dragged at a time, but dragging multiple items may be supported in the future.
Conditions allow sequences and operations to run only if all conditions are met. Below the tab item will show either the name of the selected sequence or operation whose conditions are being presented.
For example, you want to freeze/change/randomize a value(s) but only if another value (or as many values as you wish) are within a certain range or equal a certain value (e.g. check boolean is true, or player location is within a certain area)
[Black Ops 1] Set the primary ammo to 999 when the player's X position is between 500 and 1000. Only tested on split screen.
So far, only Memory Compare is implemented. Click the button to add a new compare condition. Then configure the address to read, select a value type and enter the value, then finally click one of the compare type buttons.
The console value is compared to the value you entered, so it follows the direction of the operator in the button. So if you select <
, the condition is met if the value on the console is less than the value you specified.
The little circle on the left is the Condition Met indicator. When all indicators are lit, the operations can run. Note, it updates at each iteration of the sequence's Run Count, so if the run count is 1, it only updates once and when met stays lit until the sequence stops.
You can change the output mode of conditions (the "met" state), e.g. invert the output, or only output when the underlying condition changes to met or changes to not met (e.g. pulse the output when an address becomes a specific value).
You can force the sequence to jump to a Label
operation, in any direction, using a Jump To
operation. Ideally, you'd have conditions added to a jump operation so that, when the conditions are met, you jump over some other operations, and when the condition is not met, you run those operations that would have been skipped otherwise.
Note
Jump operations will jump if no conditions are present (or they're all met, obviously)
This random example will constantly set 8303AA08
to 25
. If it remains 25
after 250 milliseconds, it sets 826000CC
to 5
and 826000D0
to 10
.
-
Home
- Connect to a console
- Scanning Options
- Scan results & Saved Address Table
- Remote Commands
- Memory Dump
- Tools
- Preferences/App Settings
-
API
- Making a custom connection
- Busy Tokens
- Models, ViewStates, MVP & Binding
- Plugins
- Config Pages
- Brushes and Icons
- Data Manager, Context Data and Data Keys
- Commands and Shortcuts
- Context Menus
- Windows and Dialogs