Add a sort of 'macro' feature, that can record actions and play them back either exactly as performed, or with a simplified representation
chexo3 opened this issue · 5 comments
Describe your suggestion
So, Baritone doesn't consider parkour sometimes when pathing, because it doesn't have a complete picture of what is possible to perform in Minecraft. It would be helpful if I could record myself doing a task and have Baritone repeat that task elsewhere. It should be able to account for small offsets between the macro starting position and it's current position, and could optionally have a feature where it "simplifies" the task by only recording the path taken, and optimizing movements where possible.
Settings
You should be able to change the amount of granularity in the macro recorder, whether the macro will record and playback interactions with inventories, and other blocks.
Context
Would allow for more complex tasks to be automated, by recording skilled human input and playing it back.
Final checklist
- I know how to properly use check boxes
- I have not used any OwO's or UwU's in this issue.
You are actually requesting two things here:
- Recording macros for longer tasks, which is probably already suggested multiple times.
- Recoding movements for automatic use
This would require a dynamic set of movements, which I guess would have a bad impact on performance.
And in addition it is really difficult to do, because Baritone has to check if the recorded movement is actually safe without knowing the preconditions. This could probably be solved for cases that only depend on clear/solid blocks to move through/on, but I have no idea on how to detect more complex conditions (e.g. needing an item in a chest to place it later in the movement).
Furthermore there is " It should be able to account for small offsets between the macro starting position and it's current position" which I hope is meant as "And if the starting position doesn't fit exactly it sneaks to the required position" or that will be damn difficult as well, just as "optimizing movements where possible", for which I can't imagine any solution other than brute force.
And finally I have no idea what "change the amount of granularity" would do.
You are actually requesting two things here:
- Recording macros for longer tasks, which is probably already suggested multiple times.
- Recoding movements for automatic use
This would require a dynamic set of movements, which I guess would have a bad impact on performance. And in addition it is really difficult to do, because Baritone has to check if the recorded movement is actually safe without knowing the preconditions. This could probably be solved for cases that only depend on clear/solid blocks to move through/on, but I have no idea on how to detect more complex conditions (e.g. needing an item in a chest to place it later in the movement).Furthermore there is " It should be able to account for small offsets between the macro starting position and it's current position" which I hope is meant as "And if the starting position doesn't fit exactly it sneaks to the required position" or that will be damn difficult as well, just as "optimizing movements where possible", for which I can't imagine any solution other than brute force.And finally I have no idea what "change the amount of granularity" would do.
Of course it should get as close to the starting position as possible, but I also thought it could adjust parts of the macro automatically so that it stays close to the original path, to avoid desyncs. If there's an item in a chest and it needs to place it later for movement (and another acceptable replacement item cannot be found, such as not using diamond blocks from a chest in lieu of dirt) then it'll simply desync/die. It might also be able to sub in a water MLG in some cases, such as for falls that maybe originally used a ladder to catch itself, but the ladder is gone now.
The optimization part I mentioned is essentially baritone detecting simple movements that it knows how to do itself, and doing those movements with Baritone's movement instead of replaying exactly what the player inputted. Of course this can be overridden, but for a lot of straight line movement, getting from point a to point b at specific times is the only part that matters, not whether or not small human variances are replayed
I'd like to see a macro like a list of commands, that executes once completion of the previous one, and be able to loop it or not
@Ant-Redstone that is already suggested multiple times, so you might get that feature at some point.
@chexo3 Apart from it being way to difficult, especially with the simplification and stuff, it is btw definitely out of scope as well. Baritone ≠ replaymod for player inputs. If you really want it try finding some overambitious macro mod and suggest it there.