Improves CE's inbuilt functions. Feature requests welcome, subject to available time and interest.

1. Group Config
- Batch apply "Group Config" functions such as "Hide children when deactivated".

2. Smart Edit Address
- Improves upon in-built CE's set address function so it can set the same pointer/address for all selected memory records now.
- Prompts whether to apply pointer/address to all selected memory records when more than one is selected.
- Adds a new option "Smart increment address(es)" under "Change record", only visible when more than one memory record is selected.
- It auto increments addresses and offsets of all selected memory records based on values provided in the normal change address dialog.
- Allows for auto decrement too. Just input a negative number.
- Refer to screenshots below for clearer explanation.

5. Batch Edit Hotkeys
- Works with official CE 6.5.1 & 6.6.
- May or may not work with other versions.
- Currently only has CE x64 version. Will consider x86 if user base is large enough.
- Create, edit, and delete hotkeys of all selected memory records.
- Memory records have to be selected when "Apply/Delete" is clicked.
- Primary selected memory record (memory record used to open edit form) will always be modified even if not selected.
- For editing and deletion, all selected memory records have their hotkeys at the selected list view index modified or deleted.
- Modification is applied entirely (i.e. Keys, Behavior, Value, Description).
- For editing and deletion, if a selected memory record does not have a hotkey at the selected list view index, it is left untouched.

6. Structure Dissect Filter
- Adds six new functions to the popup menu of structure dissect form:
Combine/Split overlapping elements.
Remove duplicate elements.
Filter out elements that have equal column values. (Default: Green)
Filter out elements that have different column values. (Default: Red)
Filter out elements that have equal group values. (Default: Blue)
Filter out elements that have different group values. (Default: Purple)
- Adds a new function under "Rename structure" which duplicates current structure. For use in conjunction with filters.
- Sorting without deleting is impossible since CE automatically sorts elements.
- The combine/split option is a toggle-able entry.
- It will automatically merge overlapping elements when the element bytesize increases.
- It will automatically create new elements with the same new vartype if the element bytesize decreases i.e. split up the original element.
- The combine/split functions will automatically collapse any expanded pointers so only the main structure is changed. It's more of an easy way out for me as calculating all the shifts in array while modifying expanded pointers was really tedious.
- Download here.

7. External Editor
- Adds a "Change script with external editor" option below "Change script".
- To choose which editor to use change this line below in the lua file.

Code:

local extEditor = [[C:\Program Files (x86)\Notepad++\notepad++.exe]]

- Temporary files are created in the %TEMP%/Cheat Engine/ folder while editing.
- Files are deleted when editor is closed.
- Download here.

Update 19:
- Structure Dissect Filter: Fixed a bug with Filter Equal Columns when there is only one group.
- [All My Extensions]: Major update to localize all functions to avoid conflicts between extensions due to similar names, especially commonly used library functions.

Update 21:
- External Editor: Added a "Change External Editor" option to "Extra" in main menu.
- External Editor: Should automatically prompt to select an external editor if it's not set, and change the lua file accordingly.
- External Editor: Fixed a few bugs. Should be working correctly now.

Any chance of getting the same functionality for batch-editing/assigning of hotkeys? That would be really great!

Thanks!

well, it's possible to create hotkeys with the GenericHotkey class but this is not MemoryRecordHotkey so the hotkeys would not show in CE's set hotkey interface. sadly, the exposed functions for the MemoryRecordHotkey class are mostly read only so even if i could get the newly configured hotkeys, i cannot apply them to all selected records
suppose the MemoryRecordHotkey class is exposed through CE's source, it would probably have been easier to just code it into CE directly by then.

i'll see if i can piggyback onto CE's hotkey functions through asm, but the chances are near zero.

Thanks. I will check this out when I have more time. I am currently using mgr.inz.Player's hotkey editor, and it's working great. I noticed that you added some more features to your plugin, so I will have to check it out, for sure.

I am thinking if I should add a "Filter by Value" option, will do it if there's demand for it.

I don't have any use (this second anyway) for the other extensions, but this one right here makes you a good man in my book! Was getting so tired of manually removing duplicates.

Granted I use Reclass 2016 usually for structures, I do like to do them right in CE from time to time depending on project. This is amazing I don't know if I can even give rep but if it works, you got it.

EDIT: Any way to implement removing "Overlapping" I.E. Replacing a 2-byte type with 4-byte type the overlapping filter would remove the 2-byte value that follows this?

I don't have any use (this second anyway) for the other extensions, but this one right here makes you a good man in my book! Was getting so tired of manually removing duplicates.

Granted I use Reclass 2016 usually for structures, I do like to do them right in CE from time to time depending on project. This is amazing I don't know if I can even give rep but if it works, you got it.

EDIT: Any way to implement removing "Overlapping" I.E. Replacing a 2-byte type with 4-byte type the overlapping filter would remove the 2-byte value that follows this?

Wanted to update the code to use reassemble() instead, but there's a part which had a different length machine code for different CE versions, resulting in having to use Lua to determine the code length ultimately. So scrapped the idea and just sticked to using Lua all the way to replace the calls with relative addressing.

Alright, finally got my lazy ass down to coding the "overlapping" function for Structure Dissect Filter. It's still a WIP as I haven't finish coding in the split functions. But the merge function should be working sufficiently well enough. Do report any bugs, I'm sure there are some sneaky ones that I left out.

UPDATE: Ok, finally finished up the whole feature albeit with a few handicaps. For more info check main posts above. Beta download in this post hereby removed.

Barebones extension. When I have more time I will add an open dialog to select editor on first launch, and maybe an options menu item to change it. Please do suggest other improvements and notify me of bugs. I need to catch up on my work now bye~~

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum