What's new

Tools ֍ DeathRGH Tools REMASTERED ֍

  • Thread starter DeathRGH
  • Start date
  • Views 10,774
Status
Not open for further replies.
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
fb9a1b941f5dd35f4986505df1f74fd1.png


Not available for public download anymore!
Im done with this modding scene.

CHANGELOG


I decided to release my new DeathRGH Tools Project (DeathRGH Tools REMASTERED). Im releasing it kinda unfinished but everything included so far will work 100%.
70ca3c1e73612f80d3ef3205e15787de.png

A few things:
  • Every tool form does have a auto connect function that you can not turn off. If you want me to add an option to turn that off let me know. For me its just fine the way it is.
  • You do NOT need to connect the tool within the main form (at the bottom left). That is a placeholder for stuff that might be added later.
  • Everything that is in the tool is tested online and works 100%, for me at least.
0ee53a962c8f4e28c4be9c6a7a8f1838.png


6867e589a38e5617db7fd49a86071821.png

b583facbd8addf1a1a228dc39394aff1.png

b2b9f2785415eebf299d42f34bc67a77.png

4e8288287f6b6d304b41274e7adf93c0.png
f460379d230da878314e2b6421bcb0f8.png


a53a9a2206fe4af2ab6a20d468551e07.png


d6ebb64022086a7cd433a82a32a78afb.png


8e288e97f82a0689b1335bf13047edf1.png


2ea38c7b2503769b01164b0e11391d93.png


425047d665824176e338b1e5322e4249.png
df2333ccb27edf18d3b318f6de8b589e.png


d29124a481778b236c4b54ee4ba414c3.png


c24b34bfc078e10869d6da053451ecb9.png


3798b2aa6cff0f48a6d0c65a94691631.png


f0e2b2792692229c52a2da35eccb797e.png


7d1f120c7c3b51fd1901b69fa6698a80.png
3a3888c4ec297fffc5fcf9e68ae5f091.png


8f58eaa4489864ecef77b0dfcd097072.png


7b32fa94baab75db58ba4a1d632b75a2.png


9042b43f155962d03f7a2e2b7938b970.png


f13d0571c51b3f89475d6eb42baf1a39.png


f911ae3527cee01bb7587f4cd3e89d84.png


050bba84dbb3918bd842292664d3bda2.png
882318a941c6119e6646c03a3be5f1f4.png


8ce60acd31d3cc4b234a622d271f85dc.png


e18a48c010642147239fdd5f05fb3b6b.png


894e68ffcd8d7c88b9e13ca872520617.png


664cc00e3047facff8795bebd397783e.png

0.0.0.0
New Design/Layout Released
New Editor/Tool Added

General Changes Done
Small Bug Fixes

Here you can see the options form is out of MDI and MW3 and BO1 forms are in the MDI container.
9c1d83131e8a4e875fab20968d90ea1b.mp4

https://i.gyazo.com/9c1d83131e8a4e875fab20968d90ea1b.mp4

I dont know why but it moves around some of the buttons when you debug the project:
4eeefed72d2b1846aa9e0015ed2176c4.png

https://i.gyazo.com/4eeefed72d2b1846aa9e0015ed2176c4.png
059871fbee2ad1d3631afff81845476f.png

https://i.gyazo.com/059871fbee2ad1d3631afff81845476f.png
I have no idea why it does that. I tried to fix it but I dont know how...

MW3 Stats also has this problem but it is still usable just fine!
 
Last edited by a moderator:
Cakes

Cakes

お前はもう死んでいる
VIP
Retired
Mythical Veteran Platinum Record End of the Year 2017
Messages
20,705
Reaction score
20,272
Points
3,870
Sin$
-7
Looks like a neat project. I hope you get to continue working on it, and further it's potential.
The Tool has no version number or anything. I wasted my time with that childish bs in the past.
I agree that the way that many RTE tools are versioned is pretty silly, to say the least. However, you should still properly version your application as you develop it further. It's very easy to follow simple versioning practices, such as major.minor.patch-build. It doesn't have to be expressly proclaimed as some others do, but for internal uses, it's handy. I'm sure you already know, but setting your version number is easily done by accessing your projects properties in Visual Studio.

Edit: Proper versioning would also make debugging issues faster. There would be no hassle in trying to figure out which build someone is using. They can simply say, for example, According to the program, I am using version 1.2.30-45 and am unable to perform this action. From that you can easily fix whatever the issue is, and tell everyone that so-and-so bug was fixed as of version 1.2.30-46, or 1.2.31-00, etc. It would also help in providing an auto-update system, as well as a change log for internal (or public) use to document all of the changes made (setting up VCS internally would also make for easier development and tracking of what progress has been made with your application).

I also can only hope that the source code is neat. :cry:
 
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
Looks like a neat project. I hope you get to continue working on it, and further it's potential.
Thanks for the feedback!

I agree that the way that many RTE tools are versioned is pretty silly, to say the least. However, you should still properly version your application as you develop it further. It's very easy to follow simple versioning practices, such as major.minor.patch-build. It doesn't have to be expressly proclaimed as some others do, but for internal uses, it's handy. I'm sure you already know, but setting your version number is easily done by accessing your projects properties in Visual Studio.
Yes i already know that. Its just that i spent so much time on that stuff in the past with naming every single form...I gonna do what you suggested.

It would also help in providing an auto-update system, as well as a change log for internal (or public) use to document all of the changes made (setting up VCS internally would also make for easier development and tracking of what progress has been made with your application).
I unfortiently dont know how to implement an update system but might watch a few tutorials (if i continue next month):tongue:
And also a changelog is a thing that is going to be added if i continue. In an older tool i used pastebin raw links for the changelog and downloaded it with the webclient.

I also can only hope that the source code is neat. :cry:
I would say it improved from beginning to the point of the project right now.
When I started I used the default button and textbox names:roflmao:... There are also a lot of them still in the code thats why i want to wait with the source. But the last stats I added are named by the thing they do.
I also added a lot of comments to make sure ppl understand what the code is doing there if they read through the source.
 
Cakes

Cakes

お前はもう死んでいる
VIP
Retired
Mythical Veteran Platinum Record End of the Year 2017
Messages
20,705
Reaction score
20,272
Points
3,870
Sin$
-7
Thanks for the feedback!


Yes i already know that. Its just that i spent so much time on that stuff in the past with naming every single form...I gonna do what you suggested.


I unfortiently dont know how to implement an update system but might watch a few tutorials (if i continue next month):tongue:
And also a changelog is a thing that is going to be added if i continue. In an older tool i used pastebin raw links for the changelog and downloaded it with the webclient.


I would say it improved from beginning to the point of the project right now.
When I started I used the default button and textbox names:roflmao:... There are also a lot of them still in the code thats why i want to wait with the source. But the last stats I added are named by the thing they do.
I also added a lot of comments to make sure ppl understand what the code is doing there if they read through the source.
Proper naming conventions and such make you all the better programmer. As you progress more as a programmer, you'll probably start to appreciate it. Personally, I never used to use VCS when I worked on something. But now I VCS everything so that I can know how much work I've done, invite others to work with me, share my projects if it comes to it, etc. I'd recommend you look into it at some point. :smile:
 
ImOx

ImOx

(^._.^)ノ
Retired
Programmer MotM Platinum Record
Messages
9,961
Reaction score
2,963
Points
2,180
Sin$
0
Out of curiosity I was trying to take a look at how you had achieved the all client custom class name changing (for MW2) only to find out that there was no code behind it :o
I'd assume this is something you forgot/overlooked/w/e, might want to fix that :p
Or if you don't know how to do it, I can surely help.
 
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
Out of curiosity I was trying to take a look at how you had achieved the all client custom class name changing (for MW2) only to find out that there was no code behind it :o
I'd assume this is something you forgot/overlooked/w/e, might want to fix that :p
Or if you don't know how to do it, I can surely help.
9d97d2414cc0953b4f37f129f3f1de9c.png

https://i.gyazo.com/9d97d2414cc0953b4f37f129f3f1de9c.png

Help is greatly appreciated!
Here is all i got so far but it is not working:
Code:
#region ACS

        public int stats_client = 0;

        private void client0_CheckedChanged(object sender, EventArgs e)
        {
            if(client0.Checked == true)
            stats_client = 0;
        }

        private void client1_CheckedChanged(object sender, EventArgs e)
        {
            if (client1.Checked == true)
                stats_client = 1;
        }

        private void client2_CheckedChanged(object sender, EventArgs e)
        {
            if (client2.Checked == true)
                stats_client = 2;
        }

        private void client3_CheckedChanged(object sender, EventArgs e)
        {
            if (client3.Checked == true)
                stats_client = 3;
        }

        private void client4_CheckedChanged(object sender, EventArgs e)
        {
            if (client4.Checked == true)
                stats_client = 4;
        }

        private void client5_CheckedChanged(object sender, EventArgs e)
        {
            if (client5.Checked == true)
                stats_client = 5;
        }

        private void client6_CheckedChanged(object sender, EventArgs e)
        {
            if (client6.Checked == true)
                stats_client = 6;
        }

        private void client7_CheckedChanged(object sender, EventArgs e)
        {
            if (client7.Checked == true)
                stats_client = 7;
        }

        private void client8_CheckedChanged(object sender, EventArgs e)
        {
            if (client8.Checked == true)
                stats_client = 8;
        }

        private void client9_CheckedChanged(object sender, EventArgs e)
        {
            if (client9.Checked == true)
                stats_client = 9;
        }

        private void client10_CheckedChanged(object sender, EventArgs e)
        {
            if (client10.Checked == true)
                stats_client = 10;
        }

        private void client11_CheckedChanged(object sender, EventArgs e)
        {
            if (client11.Checked == true)
                stats_client = 11;
        }

        private void client12_CheckedChanged(object sender, EventArgs e)
        {
            if (client12.Checked == true)
                stats_client = 12;
        }

        private void client13_CheckedChanged(object sender, EventArgs e)
        {
            if (client13.Checked == true)
                stats_client = 13;
        }

        private void client14_CheckedChanged(object sender, EventArgs e)
        {
            if (client14.Checked == true)
                stats_client = 14;
        }

        private void client15_CheckedChanged(object sender, EventArgs e)
        {
            if (client15.Checked == true)
                stats_client = 15;
        }

        private void client16_CheckedChanged(object sender, EventArgs e)
        {
            if (client16.Checked == true)
                stats_client = 16;
        }

        private void client17_CheckedChanged(object sender, EventArgs e)
        {
            if (client17.Checked == true)
                stats_client = 17;
        }

        #endregion ACS

        #region ACS void's

        public class stat_enum
        {
            public static uint
                entry = 3003,
                name = 37,
                size = 64;
        }

        void get_statGT(RadioButton selector, int stats_client_i)//get client gamertag
        {
            try
            {
                selector.Text = Encoding.Default.GetString(JRPC.GetMemory(Jtag, offsets.MW2MP_TU8_inGame_Gamertag + Convert.ToUInt32(stats_client_i) * offsets.MW2MP_TU8_pstSize, 0x1F));
            }
            catch
            {
                nc();
            }
        }

        void send_J_cmd(int stats_client_i, string argument)
        {
            try
            {
                Jtag.CallVoid(offsets.MW2MP_TU8_SVGSSC, stats_client_i, 0, "J " + argument);
            }
            catch
            {
                nc();
            }
        }
       
        void send_class_names(int classIndex, string className)//send class names
        {
            try
            {
                send_J_cmd(stats_client, Convert.ToString(stat_enum.entry + stat_enum.name + (classIndex * stat_enum.size)) + Convert.ToString(Encoding.ASCII.GetBytes(className)) + "\0");
            }
            catch
            {
                nc();
            }
        }

        #endregion ACS void's
        #region ACS calls

        private void buttonX122_Click(object sender, EventArgs e)//refresh client list
        {
            get_statGT(client0, 0);
            get_statGT(client1, 1);
            get_statGT(client2, 2);
            get_statGT(client3, 3);
            get_statGT(client4, 4);
            get_statGT(client5, 5);
            get_statGT(client6, 6);
            get_statGT(client7, 7);
            get_statGT(client8, 8);
            get_statGT(client9, 9);
            get_statGT(client10, 10);
            get_statGT(client11, 11);
            get_statGT(client12, 12);
            get_statGT(client13, 13);
            get_statGT(client14, 14);
            get_statGT(client15, 15);
            get_statGT(client16, 16);
            get_statGT(client17, 17);
        }

        #endregion ACS calls

        private void client_stats_send_Click(object sender, EventArgs e)//send all stuff
        {
            //send class names

            /*
             * aint working for some bs reason
             *
            send_class_names(0, name_class1.Text);
            send_class_names(1, name_class2.Text);
            send_class_names(2, name_class3.Text);
            send_class_names(3, name_class4.Text);
            send_class_names(4, name_class5.Text);
            send_class_names(5, name_class6.Text);
            send_class_names(6, name_class7.Text);
            send_class_names(7, name_class8.Text);
            send_class_names(8, name_class9.Text);
            send_class_names(9, name_class10.Text);
            */
        }

And all of that is in the tool already i just left it in if I ever find out how to fix it.
 
ImOx

ImOx

(^._.^)ノ
Retired
Programmer MotM Platinum Record
Messages
9,961
Reaction score
2,963
Points
2,180
Sin$
0
9d97d2414cc0953b4f37f129f3f1de9c.png

https://i.gyazo.com/9d97d2414cc0953b4f37f129f3f1de9c.png

Help is greatly appreciated!
Here is all i got so far but it is not working:
Code:
#region ACS

        public int stats_client = 0;

        private void client0_CheckedChanged(object sender, EventArgs e)
        {
            if(client0.Checked == true)
            stats_client = 0;
        }

        private void client1_CheckedChanged(object sender, EventArgs e)
        {
            if (client1.Checked == true)
                stats_client = 1;
        }

        private void client2_CheckedChanged(object sender, EventArgs e)
        {
            if (client2.Checked == true)
                stats_client = 2;
        }

        private void client3_CheckedChanged(object sender, EventArgs e)
        {
            if (client3.Checked == true)
                stats_client = 3;
        }

        private void client4_CheckedChanged(object sender, EventArgs e)
        {
            if (client4.Checked == true)
                stats_client = 4;
        }

        private void client5_CheckedChanged(object sender, EventArgs e)
        {
            if (client5.Checked == true)
                stats_client = 5;
        }

        private void client6_CheckedChanged(object sender, EventArgs e)
        {
            if (client6.Checked == true)
                stats_client = 6;
        }

        private void client7_CheckedChanged(object sender, EventArgs e)
        {
            if (client7.Checked == true)
                stats_client = 7;
        }

        private void client8_CheckedChanged(object sender, EventArgs e)
        {
            if (client8.Checked == true)
                stats_client = 8;
        }

        private void client9_CheckedChanged(object sender, EventArgs e)
        {
            if (client9.Checked == true)
                stats_client = 9;
        }

        private void client10_CheckedChanged(object sender, EventArgs e)
        {
            if (client10.Checked == true)
                stats_client = 10;
        }

        private void client11_CheckedChanged(object sender, EventArgs e)
        {
            if (client11.Checked == true)
                stats_client = 11;
        }

        private void client12_CheckedChanged(object sender, EventArgs e)
        {
            if (client12.Checked == true)
                stats_client = 12;
        }

        private void client13_CheckedChanged(object sender, EventArgs e)
        {
            if (client13.Checked == true)
                stats_client = 13;
        }

        private void client14_CheckedChanged(object sender, EventArgs e)
        {
            if (client14.Checked == true)
                stats_client = 14;
        }

        private void client15_CheckedChanged(object sender, EventArgs e)
        {
            if (client15.Checked == true)
                stats_client = 15;
        }

        private void client16_CheckedChanged(object sender, EventArgs e)
        {
            if (client16.Checked == true)
                stats_client = 16;
        }

        private void client17_CheckedChanged(object sender, EventArgs e)
        {
            if (client17.Checked == true)
                stats_client = 17;
        }

        #endregion ACS

        #region ACS void's

        public class stat_enum
        {
            public static uint
                entry = 3003,
                name = 37,
                size = 64;
        }

        void get_statGT(RadioButton selector, int stats_client_i)//get client gamertag
        {
            try
            {
                selector.Text = Encoding.Default.GetString(JRPC.GetMemory(Jtag, offsets.MW2MP_TU8_inGame_Gamertag + Convert.ToUInt32(stats_client_i) * offsets.MW2MP_TU8_pstSize, 0x1F));
            }
            catch
            {
                nc();
            }
        }

        void send_J_cmd(int stats_client_i, string argument)
        {
            try
            {
                Jtag.CallVoid(offsets.MW2MP_TU8_SVGSSC, stats_client_i, 0, "J " + argument);
            }
            catch
            {
                nc();
            }
        }
  
        void send_class_names(int classIndex, string className)//send class names
        {
            try
            {
                send_J_cmd(stats_client, Convert.ToString(stat_enum.entry + stat_enum.name + (classIndex * stat_enum.size)) + Convert.ToString(Encoding.ASCII.GetBytes(className)) + "\0");
            }
            catch
            {
                nc();
            }
        }

        #endregion ACS void's
        #region ACS calls

        private void buttonX122_Click(object sender, EventArgs e)//refresh client list
        {
            get_statGT(client0, 0);
            get_statGT(client1, 1);
            get_statGT(client2, 2);
            get_statGT(client3, 3);
            get_statGT(client4, 4);
            get_statGT(client5, 5);
            get_statGT(client6, 6);
            get_statGT(client7, 7);
            get_statGT(client8, 8);
            get_statGT(client9, 9);
            get_statGT(client10, 10);
            get_statGT(client11, 11);
            get_statGT(client12, 12);
            get_statGT(client13, 13);
            get_statGT(client14, 14);
            get_statGT(client15, 15);
            get_statGT(client16, 16);
            get_statGT(client17, 17);
        }

        #endregion ACS calls

        private void client_stats_send_Click(object sender, EventArgs e)//send all stuff
        {
            //send class names

            /*
             * aint working for some bs reason
             *
            send_class_names(0, name_class1.Text);
            send_class_names(1, name_class2.Text);
            send_class_names(2, name_class3.Text);
            send_class_names(3, name_class4.Text);
            send_class_names(4, name_class5.Text);
            send_class_names(5, name_class6.Text);
            send_class_names(6, name_class7.Text);
            send_class_names(7, name_class8.Text);
            send_class_names(8, name_class9.Text);
            send_class_names(9, name_class10.Text);
            */
        }

And all of that is in the tool already i just left it in if I ever find out how to fix it.
So let's look at this line:
Code:
send_J_cmd(stats_client, Convert.ToString(stat_enum.entry + stat_enum.name + (classIndex * stat_enum.size)) + Convert.ToString(Encoding.ASCII.GetBytes(className)) + "\0");
This part seems to generate the correct numbers for you:
stat_enum.entry + stat_enum.name + (classIndex * stat_enum.size)
so it should be all good.
For ease of understanding, these are the numbers you get:
Code:
    class 1 = 3040
    class 2 = 3104
    class 3 = 3168
    class 4 = 3232
    class 5 = 3296
    class 6 = 3360
    class 7 = 3424
    class 8 = 3488
    class 9 = 3552
    class 10 = 3616

And about the rest of the code
  1. You need to have a space after above number you get.
  2. You need to have your class name in uppercase hexadecimal.
  3. You might not want to use the \0 null character to terminate your string, it might just do fine, but I'm not quite sure. What I know will work for sure if that if you just add "00" to end of of your class name that's in hexadecimal. That'll terminate the string just fine.
  4. You need to have all your classes in the same 'J command', you can't send multiple ones. So you'll need to have all your classes in the same command line.
  5. You need to kick yourself out of the game with 2064 (2064 changes your prestige, or you can send something other than a prestige with 2064 as well, and it'll look like this (hyperlink), just make sure not to use any spaces) (this thing is always the last one in your command line)

Ok, so here's what your command line should look like:
Code:
//example:
//class 1 name = ^1class1
//class 2 name = ^2class2
//class 3 name = ^3class3
//kick message with 2064 = ^1classnames_^2changed

"J " + <class 1 number> <class1 name in hexadecimal> <null char> <class 2 number> <class2 name in hexadecimal> <null char> <class 3 number> <class3 name in hexadecimal> <null char> <2064 to kick yourself out of the game> <prestige or something else random>

"J " + "3040 " + "5E31636C61737331" + "00 " + "3104 " + "5E32636C61737332" + "00 " + "3168 " + "5E33636C61737333" + "00 " + "2064 ^1classnames_^2changed"

//clean line for ease for visualization:
J 3040 5E31636C6173733100 3104 5E32636C6173733200 3168 5E33636C6173733300 2064 ^1classnames_^2changed

And you obviously don't want to create your command line with "number" + "number" + "number" etc, I just quickly wrote it like that in hopes that you'd understand it easily.

Here is my line of code from 4 years back just to show that doing it like that is a catastrophe if you plan on adding more stuff in the future.
(Nooby me wrote it all into one line because I somehow didn't realize/know how I could do it in a much better way)
This is one big reason why I kind of gave up with updating that tool, the code is just retarded.
(yes this is all 1 line of code, lmao)


So yeah, I think this should help you make it work. Shouldn't require too much thinking if you understand it now. If you don't, reply here with the part that still confuses you or something.
 
Last edited:
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
We reached 65 downloads with almost no feedback. I would really love to hear what you think. Positive / Negative feedback appreciated!

So let's look at this line:
Code:
send_J_cmd(stats_client, Convert.ToString(stat_enum.entry + stat_enum.name + (classIndex * stat_enum.size)) + Convert.ToString(Encoding.ASCII.GetBytes(className)) + "\0");
This part seems to generate the correct numbers for you:
stat_enum.entry + stat_enum.name + (classIndex * stat_enum.size)
so it should be all good.
For ease of understanding, these are the numbers you get:
Code:
    class 1 = 3040
    class 2 = 3104
    class 3 = 3168
    class 4 = 3232
    class 5 = 3296
    class 6 = 3360
    class 7 = 3424
    class 8 = 3488
    class 9 = 3552
    class 10 = 3616

And about the rest of the code
  1. You need to have a space after above number you get.
  2. You need to have your class name in uppercase hexadecimal.
  3. You might not want to use the \0 null character to terminate your string, it might just do fine, but I'm not quite sure. What I know will work for sure if that if you just add "00" to end of of your class name that's in hexadecimal. That'll terminate the string just fine.
  4. You need to have all your classes in the same 'J command', you can't send multiple ones. So you'll need to have all your classes in the same command line.
  5. You need to kick yourself out of the game with 2064 (2064 changes your prestige, or you can send something other than a prestige with 2064 as well, and it'll look like this (hyperlink), just make sure not to use any spaces) (this thing is always the last one in your command line)

Ok, so here's what your command line should look like:
Code:
//example:
//class 1 name = ^1class1
//class 2 name = ^2class2
//class 3 name = ^3class3
//kick message with 2064 = ^1classnames_^2changed

"J " + <class 1 number> <class1 name in hexadecimal> <null char> <class 2 number> <class2 name in hexadecimal> <null char> <class 3 number> <class3 name in hexadecimal> <null char> <2064 to kick yourself out of the game> <prestige or something else random>

"J " + "3040 " + "5E31636C61737331" + "00 " + "3104 " + "5E32636C61737332" + "00 " + "3168 " + "5E33636C61737333" + "00 " + "2064 ^1classnames_^2changed"

//clean line for ease for visualization:
J 3040 5E31636C6173733100 3104 5E32636C6173733200 3168 5E33636C6173733300 2064 ^1classnames_^2changed

And you obviously don't want to create your command line with "number" + "number" + "number" etc, I just quickly wrote it like that in hopes that you'd understand it easily.

Here is my line of code from 4 years back just to show that doing it like that is a catastrophe if you plan on adding more stuff in the future.
(Nooby me wrote it all into one line because I somehow didn't realize/know how I could do it in a much better way)
This is one big reason why I kind of gave up with updating that tool, the code is just retarded.
(yes this is all 1 line of code, lmao)


So yeah, I think this should help you make it work. Shouldn't require too much thinking if you understand it now. If you don't, reply here with the part that still confuses you or something.

I took a look at it yesterday and yes it is kinda messy but i saw what you did there. I might create voids that calculate the numbers for everything and try to make the actual "Console.Call" line a bit shorter.
 
V

VexConsoles

Newbie
Messages
25
Reaction score
5
Points
45
Sin$
0
Hey Death its great to see you back at it again haha. I have a couple suggestions that would make this even more amazing.
*Add offhost end game for cods.
*Offhost change team (not many tools have this for all cods, project xdk does).

All I could really think of since this tool already has a bunch of stuff lol.
 
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
Hey Death its great to see you back at it again haha. I have a couple suggestions that would make this even more amazing.
*Add offhost end game for cods.
*Offhost change team (not many tools have this for all cods, project xdk does).

All I could really think of since this tool already has a bunch of stuff lol.
Great to hear that you like it, thanks!
I'm curious about adding stuff like off-host end game in a free tool. I guess it already happens way too often!
Team changing is a thing that will come...I have tried it on mw3 and it is just too much fun when you play infected!
 
V

VexConsoles

Newbie
Messages
25
Reaction score
5
Points
45
Sin$
0
Great to hear that you like it, thanks!
I'm curious about adding stuff like off-host end game in a free tool. I guess it already happens way too often!
Team changing is a thing that will come...I have tried it on mw3 and it is just too much fun when you play infected!

Yea man no problem I've always liked your tools. Can't wait for that next update!
 
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
This is insane...Thread is up for 16 days and we reached 540 views and over 200 total downloads!
650ac8471a6559c1bcf1bfa0760358ce.png
 
Everydaynine_

Everydaynine_

Working on Me Full Time
Messages
1,375
Reaction score
408
Points
215
Sin$
7
lol more like outdated
 
DeathRGH

DeathRGH

¯\_(ツ)_/¯
Messages
1,161
Reaction score
363
Points
210
Sin$
7
Last edited:
Status
Not open for further replies.
Top Bottom
Login
Register