Watch the BRAND NEW Wall Tutorial and read the common issues support doc if needed.
For new Instance Moving (advanced), see the tutorial here.
If further help is needed, feel free to open a ticket in my Discord server.
To use the macro, run TheWall.ahk and wait for it to say ready. Start up OBS, then start up a Fullscreen projector.
On the Fullscreen projector, you have a few default hotkeys (You may customize these hotkeys in the hotkeys.ahk file):
- E: Will reset the instance which your mouse is hovering over
- R: Will play the instance which your mouse is hovering over
- F: Will play the instance which your mouse is hovering over, and reset all of the other ones
- T: Will reset all instances
- Shift + Left Mouse button: Lock instance so "blanket reset" functions skip over it
In a world you can use the following hotkeys:
- U: Exit world and go back to the wall
Other optional hotkey functions include (to use, put the quoted text after a hotkey and double colon in the hotkeys.ahk file):
- "ResetAll(true)": Reset all instances regardless of locked status
- "FocusReset(MousePosToInstNumber(), true)": Play the instance which your mouse is hovering over and reset all the rest regardless of locked status
- "UnlockInstance(MousePosToInstNumber())": Unlock the instance which your mouse is hovering over
- "LockAll()": Lock all instances (add False to the parentheses for it to be silent)
- "UnlockAll()": Unlock all instances (add False to the parentheses for it to be silent)
- "PlayNextLock()": Play to the first locked instance
Use this world deletion program to delete worlds, or use the Delete Worlds option in the system tray (Requires Python).
This macro supports different themes for lock images and sounds, there are a few ones prebuilt into the /themes
folder for you to choose, or you can make a custom theme by adding your own lock.png
and lock.wav
to the /themes/custom
folder. To change themes just change the theme setting to be the folder name of whichever theme you want to use.
You can also have the macro pick a random lock image by naming the images lock1.png
, lock2.png
, ... etc
In the /utils folder, you'll find some helpful scripts which we will add to over time. You can also access some of these by right clicking on the tray icon for TheWall.ahk
This script will simply close all your instances for you. This is also an option in TheWall.ahk tray options
This script will startup your instances for you, however it will only work after your first session.
If you want, you can create a names.txt file in the /data folder with one name per line, and one line per instance to launch your instances in offline mode with custom names.
These settings can be useful for optimizing performance, testing code, configuring slightly more advanced things, or for specific use cases.
Affinity is by far the most advanced section but can be used to fine tune performance of resetting and with good tuning can maybe increase instance count
- affinityType: What kind of general affinity management do you want, this does not affect any override settings except -1. Options: No affinity management (N), Basic affinity management, resetting background instances have lower priority (B), Advanced affinity mangement, advanced priority system for wall resetting. Use with locking (A)
- playThreadsOverride: Threads used for the instance you are currently playing. Default by macro math: total threads unless override is set
- lockThreadsOverride: Threads used for instances that are locked while fullscreen projector is focused. Default by macro math: total threads unless override is set
- highThreadsOverride: Threads used for instances loading the "dirt screen" while fullscreen projector is focused. Default by macro math: 95% of threads or total threads minus 2, whichever is higher unless override is set
- midThreadsOverride: Threads used for instances loading a preview (previewBurstLength) after detecting it. Default by macro math: 80% of threads if advanced mode otherwise same as high unless override is set
- lowThreadsOverride: Threads used for instances that have reached (previewLoadPercent) requirement or for any idle instances. Default by macro math: 70% of threads if advanced mode otherwise high unless override is set
- bgLoadThreadsOverride: Threads used for loading background instances. Default by macro math: 40% of threads unless override is set
- previewBurstLength: The length of time in ms that instances spend on highThreads before switching to midThreads after a preview has been detected while fullscreen projector is focused. Default: 400
- previewLoadPercent: The percentage of world gen that must be reached after a preview is detected before lowering to lowThreads. Default: 15
These are the OBS hotkey settings. If you want to use more than 9 instances or change the hotkeys that are used for OBS you can change these.
- obsControl: What system the macro use for OBS scene control. The default and reccomended is OBS Controller (C), and all other control types are legacy. The others are: Numpad hotkeys 1-9 (N), Function hotkeys f13-f24, setup script in utils folder (F), Advanced key array, any keys you want, use the obsCustomKeyArray variable (ARR)
- obsWallSceneKey: The key that is pressed when switching to the wall. All obs scene control types use wallSceneKey. Default: 'F12'
- obsCustomKeyArray: Used with advanced key array setting. Add keys inside the brackets in quotes and separated by commas. The index of the key in the array corresponds to the scene that it will be used for. Default: empty
- obsResetMediaKey: The key pressed when any instance is reset with sound. This can be used to play media sources in OBS. Default: none
- obsLockMediaKey: The key pressed when any instance is locked with sound. This can be used to play media sources in OBS. Default: none
- obsUnlockMediaKey: The key pressed when any instance is unlocked with sound. This can be used to play media sources in OBS. Default: none
- obsDelay: The delay between a hotkey press and release, increase if not changing scenes in obs and using a hotkey form of control. Default: 100
These are values used by the reset manager scripts. They can have minor performance impacts or be used if something doesn't seem to be working quite right.
- beforePauseDelay: Extra delay added before the final pause for a loaded instance. May be needed for very laggy loading. Default: 0
- resetManagementTimeout: Max Time in ms that can pass before reset manager gives up looking for a preview or load line in logs. May be needed if instances become unresetable often, too low can leave instances unpaused. Default: -1 (do not timeout)
- manageResetAfter: Delay before starting reset management log reading loop. Too low might create delayed resets or previews that are not f3+esc paused. Default: 300
- resetManagementLoopDelay: Buffer time for the loop that reads Minecraft logs to check for previews and loads. Lower might decrease pause latencies but increase cpu usage. Default: 70
The paths of the files used for counting attempts. This can make updating attempts through macro versions.
- overallAttemptsFile: File path for overall attempt count. Default: "data/ATTEMPTS.txt"
- dailyAttemptsFile: File path for session attempt count. Default: "data/ATTEMPTS_DAY.txt"
- Me
- Mach for efficient reset managers & for affinity management
- Ravalle for a lot of great ideas and code
- Boyenn for Instance Moving code which we modified, and general optimizations
- The collaborators listed for minor enhancements
- PodX12 for some minor enhancements
- Sam Dao (real)
- jojoe77777 for making the original wall macro