Jump to content

Search the Community

Showing results for 'group size'.

  • Search By Tags

    Type tags separated by commas.
    For example, the common name of the game: PUBG, Free Fire, Rules of Survival, Critical Ops, Mobile Legends: Bang Bang, etc.
  • Search By Author

Content Type


Forums

  • GameGuardian
    • Requests
    • Help
    • Guides
    • Cheats
    • Video Tutorials
    • Unintended Effects
  • General
    • General Discussion
    • Introduce yourself (:
    • Announcements
    • Website suggestions/Bugs
  • Downloads Support
    • Apps
    • LUA scripts
  • Online Multiplayer Mods
    • Altering Online Games with Gameguardian
    • Download Mods
  • Other Hacks
    • Tutorials
    • Non-GameGuardian
  • Archive
    • Archived topics

Categories

  • Official Downloads
  • Virtual spaces (no root)
  • LUA scripts
    • Forward Assault
    • Free Fire
    • PUBG
    • Rules of Survival
    • Templates
    • Tools
  • Test applications
  • Other

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Device


Discord ID

  1. Actually sorry let me rephrase that. I am not able to find a working group search if I specify only 1 region. So I guess I am out of luck then. Oh well it's better than nothing.
  2. Oke i understand, so the problem here is the scripting. I can't explain scripting that well compared to other members in the forum. But you should start by running the print() function to print out your tables and have some understanding of what the script is doing. Use --[[ ]] to ignore most of your code and let GG does it thing line by line. Start with doing the group search, then refine and then store the results in a new table named "t" and print it out...something like this. gg.searchNumber("-1,049,624,576A;1,092,616,192A;1,082,130,432A;1,056,964,608A;1,062,333,317A::73", gg.TYPE_DWORD) gg.refineNumber("-1,049,624,576A", gg.TYPE_DWORD) local t = gg.getResults(10) print(t) Then analyze what GG respond. Make sure GG ignores the rest of the code by placing it as a comment: Also check in the GG scripting documentation what it is that you writted
  3. It wasn't in the script because i was already at the right address to perform the pointer search on to get to health value. Your at a different pointer then mine using your group search. The table t contains those 4 results you had from performing a pointer search on that one address you had from your group search. You already addedan offset of 0x8 to all those addresses to get to the address that is supposed to hold the value 256 and you stored the new addresses in the table (sensitivity). use print(sensitivity) for see what's in the table. Only problem is that your doing it for all the 4 addresses in the result list while you only have to do it for the one address in region Anonymous. That's why specify the regions as accurate as possible in which you want find the pointers in in or it will already bring issues. The way you added 0x8 to do the addresses you now do the same for the table t in a loop. healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD} add the offset from your start address to the address on which you want to perform the pointer search on to get the health value.
  4. Yeah when using searchPointer() you have to specify the regions before you load the results in the result list. The regions at the first line should be the region where you try finding your group search, but i am not sure if your group search is always in the same region. Then when pointer searching you have to only specify the region where the pointer is which i think was region Ca or A.
  5. This should absolutely be the last time I bother you LOL. I got my own nice accurate group search now. And I almost have it down perfectly but I am stuck on the part where I can filter out the remaining addresses to only have 1 address left. I saw a "256D" value 8 bytes down from the pointer. So I tried to do what you did with that "1.0F" value to filter them out but it's not working. I've been racking my brain until I got a headache LOL. In this video the script gets me halfway through to the health value, and the remaining part I did manually. Could you help me bridge the gap in the script to get to the health value? Here is the script I am using: gg.setRanges(gg.REGION_ANONYMOUS | gg.REGION_C_BSS | gg.REGION_C_ALLOC) gg.searchNumber("-1,049,624,576A;1,092,616,192A;1,082,130,432A;1,056,964,608A;1,062,333,317A::73", gg.TYPE_DWORD) gg.refineNumber("-1,049,624,576A", gg.TYPE_DWORD) print("Group search: ", gg.getResultsCount()) local grp = gg.getResults(1) gg.loadResults({{address = grp[1].address - 0x88, flags = gg.TYPE_DWORD}}) gg.searchPointer(0) local t = gg.getResults(gg.getResultsCount()) print("First Pointer search: ", gg.getResultsCount()) local t = gg.getResults(gg.getResultsCount()) local sensitivity = {} for i, v in ipairs(t) do sensitivity[i] = {address = v.address - 0x8, flags = gg.TYPE_FLOAT} end sensitivity = gg.getValues(sensitivity) local healthPointer = {} for i = 1, #sensitivity do if sensitivity[i].value == "256" then healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD} end end You are almost finished with me I PROMISE GG video2.mp4
  6. Okay okay I finally got it! You dug into deeper pointer "layers" in order to fine tune your group search and make it more accurate, which in turn resulted in needing that third "extra" pointer search while backtracking to find the health value. Makes perfect sense! LOL OMG bro you are amazing! You've literally taught me from scratch a skill I never had. I will be forever in your debt man!
  7. Okay let's see if I can figure out where I am going wrong. I ran your script and got your health value. Then I also ran your group search. Here is your group search results. All addresses start with "B431FBxx" Next, I press on your health value from the saved area, and I press GOTO Then I press on the address which is 4 bytes above it "AC0912E8" and I chose "Goto pointer" I arrive at this list and I scoured the entire list (up and down) and I can't find your block of your group search whose addresses should start with "B431FBxx" What am I doing wrong?
  8. Yeah you should. Are you sure you did it correctelly though. I performed pointer search more then once...so you have to use go to the pointer more then onces as well in order to get to the groups search.
  9. By the way you didn't answer me on this question from the previous page: When I run your script and get the health value, shouldn't I theoretically be able to go to the nearest pointer, which is 4 bytes above your health value and click "go to pointer" and find that block that you used for your group search? I mean since they are static they should appear on my device too just like they did on your 2 devices, right? Well I went up and down the list and I didn't find that block of numbers.
  10. Your script can not be same because your using different group search, and where you found your group search the structure is different. You only have to do one time a pointer search and your not using any values to filter out irrelevant results. You can remove most of the lines from it, here some example based on your group search and pointer you when't to. gg.setRanges(gg.REGION_ANONYMOUS | gg.REGION_C_BSS | gg.REGION_C_ALLOC) gg.searchNumber("17D;1,075,642,368D;1,900,544D;1,310,728D;589,828D;1,703,957D;1,703,969D;1,376,289D;1,920D;469,762,048D::185", gg.TYPE_DWORD) gg.refineNumber("1,900,544", gg.TYPE_DWORD) print("Group search: ", gg.getResultsCount()) local grp = gg.getResults(gg.getResultsCount()) for i, v in ipairs(grp) do v.address = v.address - 0x4 v.flags = gg.TYPE_DWORD end gg.loadResults(grp) gg.searchPointer(0) local t = gg.getResults(gg.getResultsCount()) for i, v in ipairs(t) do v.address = v.address - 0xC v.flags = gg.TYPE_FLOAT end gg.loadResults(t)
  11. True, but before you can do that 0xC with a script you must first get there through pointer searches. There are some other issues with the script that need to be explained i think. When your doing a pointer search with GG all your doing is searching a value that represent an address in memory. Let's go from the start. You have your health value at address 0x022023EC and you have a pointer 12 bytes away from it, it's at address 0x022023F8 Address 0x022023F8 has the value 8B7D02E0h 8B7D02E0h is a called a pointer because the value represents an address in memory. When you press "go to pointer" it means that GG will bring you to the address 0x8B7D02E0h. I now whent to the pointer, as you can see the highlighted address is 0x8B7D02E0 and under it you have your refined value from the group search 0x8B7D02E4 And that is also the location where you came up with your group search. When you did your group search and refined you had a lot of results left but let's say that you only had one address in the result list that has the value 1,900,544 and it's the correct one it would be looking like this: The value you refined is located at address 0x8B7D02E4 We now need to work backwards to get to or health value and perform a pointer search on the pointer we just whent to. The pointer that we just whent to was 0x8B7D02E0, so it's 4 addresses above the address that holds the value you just refined to, which is address 0x8B7D02E4. So first you have to tell the script to subtract the current address 0x8B7D02E4 - 0x4 and then load it in the result list. That's what local grp = gg.getResults(gg.getResultsCount()) for i, v in ipairs(grp) do v.address = v.address - 0x4 v.flags = gg.TYPE_DWORD end was doing, instead for 1 address in the result list it was doing it for all the addresses in the result list. After it subtracted 0x4 from the address 0x8B7D02E4, so your address became 0x8B7D02E0 (it's the same address you whent to using "go to pointer"), and then you used gg.loadResults(grp) to load the new address in the result list. So now result list will look like this: Now you will ask GG to perform a pointer search on that address(0x8B7D02E0), with that i mean that your telling GG to search in memory for addresses that hold the value 8B7D02E0h And of all the address in memory, which address you know for sure holded the value 8B7D02E0h ? Right, address 0x022023F8 holded the value 8B7D02E0h. The same address of where the address that holds your health value was located 12 bytes above it. So by using gg.searchPointer(0) Your telling GG for search the value 8B7D02E0h in memory. You get perhaps a few results. Now you get a few results but between all those the results the right address is in there 0x022023F8h: You know that 12 bytes above the address the address of your health is located (0x022023EC) so you don't have any reason to perform the searchPointer(0) again because your already at the address you started from. Now you need to tell GG to subtract 12 bytes(0xC) from the address 0x022023F8h and get the value at that new address. Since you have more then one result use a loop. local t = gg.getResults(gg.getResultsCount()) for i, v in ipairs(t) do v.address = v.address - 0xC v.flags = gg.TYPE_FLOAT end gg.loadResults(t) Get the results in a table t, and subtract all the addresses with - 0xC and set the flags as float. Then when you load the table t using gg.loadResults(t) it will load the new address in the result list type float. You gone have multiple addresses loaded because there are many addresses that go to the pointer you whent to, so they all hold the same value (8B7D02E0h) In GG it would look like this if you had a more accurate group search around that address your performing a pointer search on: Since the group search is not that accurate which causes you have to more then 100 results when refining to your value 1,900,544 and you performing pointer search on each of those 100+ addresses that where loaded in the result list you probably gone get something like this, possible they are all health values for different objects but the health value of your character is of course in there at address 0x022023EC: I am not sure if all makes sense?
  12. gg.setRanges(gg.REGION_ANONYMOUS | gg.REGION_C_BSS | gg.REGION_C_ALLOC) gg.searchNumber("17A;1,075,642,368A;1,900,544A;1,310,728A;589,828A;1,703,957A;1,703,969A;1,376,289A;1,920A;469,762,048A::185", gg.TYPE_DWORD) gg.refineNumber("1,900,544", gg.TYPE_DWORD) print("Group search: ", gg.getResultsCount()) local grp = gg.getResults(gg.getResultsCount()) for i, v in ipairs(grp) do v.address = v.address - 0x4 v.flags = gg.TYPE_DWORD end gg.loadResults(grp) gg.searchPointer(0) print("First Pointer search: ", gg.getResultsCount()) gg.searchPointer(0) print("Second Pointer search: ", gg.getResultsCount()) local t = gg.getResults(gg.getResultsCount()) local sensitivity = {} for i, v in ipairs(t) do sensitivity[i] = {address = v.address + 0x4, flags = gg.TYPE_FLOAT} end sensitivity = gg.getValues(sensitivity) local healthPointer = {} for i = 1, #sensitivity do if sensitivity[i].value == 1.0 then healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD} end end gg.loadResults(healthPointer) print("Results healthPointer: ", gg.getResultsCount()) gg.searchPointer(0) print("Third Pointer search: ", gg.getResultsCount()) local t = gg.getResults(gg.getResultsCount()) local health = {[1] = {address = res[1].address - 0xc, flags = gg.TYPE_FLOAT, name = "Health"}} gg.addListItems(health) gg.loadResults(health)
  13. Wait maybe I misunderstood about the pointer.....when I click on the health value and click GOTO, this is the line that I long pressed on and clicked GOTO pointer. So from 5C to 68 is 12 bytes right? Okay when I changed all the 0xC to 0X4 the first and second pointer searches are successful but i get 0 results for the third pointer search gg.setRanges(gg.REGION_ANONYMOUS | gg.REGION_C_BSS | gg.REGION_C_ALLOC) gg.searchNumber("17A;1,075,642,368A;1,900,544A;1,310,728A;589,828A;1,703,957A;1,703,969A;1,376,289A;1,920A;469,762,048A::185", gg.TYPE_DWORD) gg.refineNumber("1,900,544", gg.TYPE_DWORD) print("Group search: ", gg.getResultsCount()) local grp = gg.getResults(gg.getResultsCount()) for i, v in ipairs(grp) do v.address = v.address - 0x4 v.flags = gg.TYPE_DWORD end gg.loadResults(grp) gg.searchPointer(0) print("First Pointer search: ", gg.getResultsCount()) gg.searchPointer(0) print("Second Pointer search: ", gg.getResultsCount()) local t = gg.getResults(gg.getResultsCount()) local sensitivity = {} for i, v in ipairs(t) do sensitivity[i] = {address = v.address + 0x4, flags = gg.TYPE_FLOAT} end sensitivity = gg.getValues(sensitivity) local healthPointer = {} for i = 1, #sensitivity do if sensitivity[i].value == 1.0 then healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD} end end gg.loadResults(healthPointer) print("Results healthPointer: ", gg.getResultsCount()) gg.searchPointer(0) print("Third Pointer search: ", gg.getResultsCount()) local t = gg.getResults(gg.getResultsCount()) local health = {[1] = {address = res[1].address - 0xc, flags = gg.TYPE_FLOAT, name = "Health"}} gg.addListItems(health) gg.loadResults(health)
  14. Thank you so much for all the info and instructions. You're too generous as always Okay, I tried to break up the script to go only as far as the first pointer search (to not overwhelm myself) but I am still getting no results and I don't know what I'm doing wrong: gg.setRanges(gg.REGION_ANONYMOUS | gg.REGION_C_BSS | gg.REGION_C_ALLOC) gg.searchNumber("17A;1,075,642,368A;1,900,544A;1,310,728A;589,828A;1,703,957A;1,703,969A;1,376,289A;1,920A;469,762,048A::185", gg.TYPE_DWORD) gg.refineNumber("1,900,544", gg.TYPE_DWORD) print("Group search: ", gg.getResultsCount()) local grp = gg.getResults(gg.getResultsCount()) for i, v in ipairs(grp) do v.address = v.address - 0xC v.flags = gg.TYPE_DWORD end gg.loadResults(grp) gg.searchPointer(0) print("First Pointer search: ", gg.getResultsCount())
  15. Make sure that when you do a group search you specify it's data type. When you put Auto in front of it GG will look for all possible data types for that specific value and then needs to match it also with the other values to see if the group search can be found. You could have results you don't need. For example do this: gg.searchNumber("17D;1,075,642,368D;1,900,544D;1,310,728D;589,828D;1,703,957D;1,703,969D;1,376,289D;1,920D;469,762,048D::185", gg.TYPE_DWORD) Or you can ignore the data types next to the value and only use gg.TYPE_DWORD If your only searching 1 value you don't put a data type for that specific value aside from adding the gg.TYPE_DWORD as any normal search.
  16. Perhaps use the code snippet option when adding code in your post for readability. The script only performs pointer search on 1 address. You have more then 50 results left after refining and probably the first result in the result list is not the right address...but sure the right address is in there . Although it's better to have your group search as accurate as possible to prevent any kind of issues later on. Use local grp = gg.getResults(gg.getResultsCount()) so that all results are selected. Then gg.searchPointer(0) will perform pointer search on all the addresses in the result list instead of 1.
  17. Okay. I apologize if I am being a pain but I'm still trying to grasp this thing and pull all the pieces together to make sense of it. Now when I run your script and get the health value, shouldn't I theoretically be able to go to the nearest pointer, which is 4 bytes above your health value and click "go to pointer" and find that block that you used for your group search? I mean since they are static they should appear on my device too just like they did on your 2 devices, right? Well I went up and down the list and I didn't find that block of numbers. But regardless, going off of your health value, I found the same distance pointer (nearest one that has the same static block of numbers on 2 devices) and I got the group search and it works fine, then I refine this number: 1,900,544 and get 55 results. This is all fine. But when I run the script (used yours as a template for my values) I find no pointers. If you're curious why I am refining to this number (1,900,544) please check the attached video Here's he script (based it on yours but with my numbers): gg.setRanges(gg.REGION_ANONYMOUS | gg.REGION_C_BSS | gg.REGION_C_ALLOC) gg.searchNumber("17A;1,075,642,368A;1,900,544A;1,310,728A;589,828A;1,703,957A;1,703,969A;1,376,289A;1,920A;469,762,048A::185", gg.TYPE_DWORD) gg.refineNumber("1,900,544", gg.TYPE_DWORD) print("Group search: ", gg.getResultsCount()) local grp = gg.getResults(1) gg.loadResults({{address = grp[1].address - 0xc, flags = gg.TYPE_DWORD}}) gg.searchPointer(0) print("First Pointer search: ", gg.getResultsCount()) gg.searchPointer(0) print("Second Pointer search: ", gg.getResultsCount()) local t = gg.getResults(gg.getResultsCount()) local sensitivity = {} for i, v in ipairs(t) do sensitivity[i] = {address = v.address + 0xc, flags = gg.TYPE_FLOAT} end sensitivity = gg.getValues(sensitivity) local healthPointer = {} for i = 1, #sensitivity do if sensitivity[i].value == "1.0" then healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD} end end gg.loadResults(healthPointer) print("Results healthPointer: ", gg.getResultsCount()) gg.searchPointer(0) print("Third Pointer search: ", gg.getResultsCount()) local res = gg.getResults(1) local health = {[1] = {address = res[1].address - 0xc, flags = gg.TYPE_FLOAT, name = "Health"}} gg.addListItems(health) gg.loadResults(health) Any ideas? EDIT: I first accidentally pasted the script with 0x12 for the 12 bytes, but I definitely tried it with 0xc (hex) and it still gave me no pointers GG video.mp4
  18. View File Westland survival About this file Telegram: https://t.me/+WYpiAlaR2RU0YTI1 Welcome to our group!!! Attention: Westland Survival Auto Update (32&64) mobizen_20240118_085200.mp4 Submitter ChungTai Submitted 01/05/2024 Category LUA scripts  
  19. Version Auto Update

    1,247 downloads

    About this file Telegram: https://t.me/+WYpiAlaR2RU0YTI1 Welcome to our group!!! Attention: Westland Survival Auto Update (32&64) mobizen_20240118_085200.mp4
  20. Because the address i needed to perform pointer search on was closest (4 bytes) from it. I could use any value of the group search and increment it with the distance to the desired address (0x9865E5B4). Actually i should not have done the refine, it's useless in this case since the group search is accurate.
  21. Got excited too soon Lol. I did it wrong. Still trying to get the hang of it. By the way, why did you refine "0" in your group search? If it had any value or purpose shouldn't I be able to "go to pointer" or "pointer search" it? I get nowhere with it.
  22. I got it first try! Got a group search that gives me 5 pointer results every time and one of them always works. But I'm a bit hazy on the "gg.searchPointer(0)" part. What exactly do I need to do? I am looking at your script and you executed 3 pointer searches. But where does the script show what it's doing to grab that single health value? Like what is the syntax or command that is performing this function? Is it this? address = v.address - 0x4, flags = gg.TYPE_FLOAT
  23. Got it. Glad to hear. Thank you to for continuing with it instead of dropping out halfway. Finding group searches for other members through communication of a forum takes time. Requires a bit of Forward and Back communication. People can get demotivated. You pulled through. Group search was possible to find using my emulator and phone. When searching group search for other person or for your self you need to at least have the game on 2 different devices or virtuals to have some confirmation that your group search is possibly a static one. As far i know in gameguardian a pointer is a value that points to an address in the virtual memory of the process. I don't want to tell you wrong info so i keep it with this link: https://en.wikipedia.org/wiki/Pointer_(computer_programming)#:~:text=Pointers are used to store,which objects are dynamically allocated. GameGuardian highlights possible pointers with a colour: https://gameguardian.net/help/help.html#help_hex_colors Pointers are more clear in 64bit games. On 32bit games to many values are highlighted but they aren't all pointers...after some practise you can quickly filter out the none pointers from actual pointers. The pointer represents some object. If you can't find a group search around the value of interest you can follow the pointers which usually will lead to some static values. In lot's of cases the game needs to uses pointer references from an object in order to update for example your health value when you take damage. In GG i used the nearest pointer that had the same distance from the health value on both devices. And kept using "go to pointer" till i saw a block of values that is the same on both devices so i could use it to make a group search. Then what you have to do in the script is use "gg.searchPointer(0)" and this will do the opposite. Instead of going to pointer you will be get all addresses that have a pointer that points to your address. I advice you to check some scripts that uses pointer search and combine it with your manual knowledge on how to use the GG pointer feature. Use the print() feature in the script to slowly debug the script. And use --[[ ]] to ignore code so that you can see line by line what happens.
  24. You are a genius man. It worked! But the sad part is that I have no idea how you did it and I would've loved to be able to learn how to do it myself. Looking at your script nothing makes sense to me as to how you came up with that group search or even how the pointer search is working FYI I've reached my maximum posts for today. So if you reply to me and I can't reply until tomorrow you know why lol
  25. Oke and what about the group search 327,684D;22D;28D;0D;33,554,931D? When you enable all regions and go in match and search. No result? The thing is, the group search and script i have tried on emulator and mobile phone and on both worked. And the values remain same even after restart of the game. So perhaps you have to find your health value and then you have to execute a script i can give you. And then we perhaps find out what for values are at the location of which your supposed to have: 327,684D;22D;28D;0D;33,554,931D. Possible it will be static for you as well. But first check if this group search works when enabling all regions.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.