- Joined
- Dec 19, 2021
- Messages
- 764
- Points
- 18
Cactus 2.1.0 Now Available!
Hey all,
I’m extremely excited to announce the next major update to Cactus, 2.0.0. This release is fully backwards compatible with Cactus 1.2.4 and is a drop in replacement. The major highlights of this release is that it contains a new Templating & Labeling System, and also includes an easy way to \"Reset\" your Cactus / Diablo II Root Folder. Below is the high level change list and also an explanation of the Templating & Labeling System and how it can be used. As always, please back up your characters and platforms before trying out the new version and please report any bugs either on the forum or on github and I’ll take a look. Also, I’ll like to remind everyone that Cactus is fully compatible with all versions of Diablo II between 1.00 - 1.14d.
Download Cactus
- fearedbliss
Screenshot (Cactus 2.2.0)
High Level Changes
Templating & Labeling System
The Cactus Template & Labeling System allows you to be able to easily start using a few pretty cool and very interesting workflows, while allowing you to also minimize the amount of disk space used per shared platform.
For example, let’s say we want to play \"Solo Self Found\" as defined as \"Only using items that the character has found with their own hands\", this pretty much means untwinked play. However, let’s say you are also ok with using mules as a form of an extended stash for your main character. Thus, any items your main character finds, can be placed in storage, and will only be used by that main character. If you were to do this manually, for each particular main character you made, it would quickly get out of hand since all the characters and possibly character names would all be in the same folder. This is where the labeling system kicks in. Now, we could simply make a new platform with a particular label (Say the name of that specific main character?) and play the game. A dedicated save folder will be created under the Saves directory for this platform, with the label that you gave it.
For example, I want to make a character called \"Isaac\". Isaac will have their own mule characters as well. This character will also be on \"1.09b\". Thus, we can make a Platform called \"1.09b\" with the label \"Isaac\". One we start the game, we will have the following structure in our Diablo II root directory. Let’s also assume I made the Isaac character and made a few mules for Isaac called \"Mule_A\", \"Mule_B\", and \"Mule_C\":
As you can see, the platform and label is fully isolated. Now, let’s say you and your friends want to have some type of tournament on \"1.09b\". No problem! You can quickly add another entry for the \"1.09b\" platform with another label, such as \"Tournament 2022\" and start it up. The same exact \"1.09b\" platform files that we used before will be re-used, and we will have a new save directory. Let’s create a new character called \"Bethany\" and give Bethany a few mules as well. We’ll label the mules the same as what we did before, since they are isolated after all. So now our structure looks like this:
This is just one of the workflow this enables. This workflows requires a modified \"D2gfx.dll\" to allow multiple instances and thus allows you to mule between your main character and your mules via LAN. Singling provides this feature for the versions it supports. For all other versions, you’ll need to find a copy of it online.
Another workflow which I really like is using this labeling system to separate my \"Classic\" and \"Expansion\" characters. By using two separate labels to the same platform, we can have two separate save paths. If we did this, we would have the following:
You can pretty much label your platforms whatever you want as long as that name can be used for the Operating Systems directory. If you are using some illegal symbols like \"/\", then it will properly detect that and give you the appropriate message so that you can fix it. You can also not use a label if you want as well and that works perfectly fine with the above scenario. Let’s say you wanted to have a \"1.09b\" platform that is pretty much flat, for this particular entry, you don’t want to label it. Go ahead and create a platform with that platform name and leave the label blank. Launching the game will just point the save path to the \"/Saves/1.09b/\" folder and your files will be placed in there. Assuming we then created a character called \"Leslie\", we would then have the following structure:
It’s just another folder after all . The nice thing also is that since in this case all of these are using the same platform, so if you are switching between your shared platforms, it’s extremely fast because you don’t need to change any files at all on your hard drive, but rather it’s just a simple registry change, and you are back in the action. Have fun!
PS: I’ll be making a new video about setting up Cactus since there are significant conceptual differences here a bit that simplify things a great deal and allow us to think about how we organize our platforms and saves in the first place.
Hey all,
I’m extremely excited to announce the next major update to Cactus, 2.0.0. This release is fully backwards compatible with Cactus 1.2.4 and is a drop in replacement. The major highlights of this release is that it contains a new Templating & Labeling System, and also includes an easy way to \"Reset\" your Cactus / Diablo II Root Folder. Below is the high level change list and also an explanation of the Templating & Labeling System and how it can be used. As always, please back up your characters and platforms before trying out the new version and please report any bugs either on the forum or on github and I’ll take a look. Also, I’ll like to remind everyone that Cactus is fully compatible with all versions of Diablo II between 1.00 - 1.14d.
Download Cactus
- fearedbliss
Screenshot (Cactus 2.2.0)
High Level Changes
Features
----------
- New Platform Templating & Labeling System.
> Fully backwards compatible with Cactus 1.2.X.
- New Reset System (Through the \"Reset\" button).
> Removed the \"Last Ran\" box from the Edit Window since it’s no longer necessary to expose this, and increases the safety and reliability of the app and the user’s experience.
Improvements
----------
- Increased the Cactus window size so that you can have many more entries added before the scroll pane appears.
- Added a * to required fields in the \"Add\" and \"Edit\" windows.
- Many other internal improvements, refactoring, and safety fixes.
Bug Fixes
----------
- Fixed a bug where in certain scenarios, the save directory for the particular platform did not exist by the time the game launched. This caused Diablo II’s default save behavior to kick in where it would create a \"Save\" folder in the root of your Diablo II folder.
- Fixed a bug where a Platform was allowed to be ran even though there was no equivalent directory for that platform in the Platforms folder.
Templating & Labeling System
The Cactus Template & Labeling System allows you to be able to easily start using a few pretty cool and very interesting workflows, while allowing you to also minimize the amount of disk space used per shared platform.
For example, let’s say we want to play \"Solo Self Found\" as defined as \"Only using items that the character has found with their own hands\", this pretty much means untwinked play. However, let’s say you are also ok with using mules as a form of an extended stash for your main character. Thus, any items your main character finds, can be placed in storage, and will only be used by that main character. If you were to do this manually, for each particular main character you made, it would quickly get out of hand since all the characters and possibly character names would all be in the same folder. This is where the labeling system kicks in. Now, we could simply make a new platform with a particular label (Say the name of that specific main character?) and play the game. A dedicated save folder will be created under the Saves directory for this platform, with the label that you gave it.
For example, I want to make a character called \"Isaac\". Isaac will have their own mule characters as well. This character will also be on \"1.09b\". Thus, we can make a Platform called \"1.09b\" with the label \"Isaac\". One we start the game, we will have the following structure in our Diablo II root directory. Let’s also assume I made the Isaac character and made a few mules for Isaac called \"Mule_A\", \"Mule_B\", and \"Mule_C\":
/Platforms/1.09b/
/Saves/1.09b/
/Saves/1.09b/Isaac/
/Saves/1.09b/Isaac/Isaac.d2s
/Saves/1.09b/Isaac/Mule_A.d2s
/Saves/1.09b/Isaac/Mule_B.d2s
/Saves/1.09b/Isaac/Mule_C.d2s
As you can see, the platform and label is fully isolated. Now, let’s say you and your friends want to have some type of tournament on \"1.09b\". No problem! You can quickly add another entry for the \"1.09b\" platform with another label, such as \"Tournament 2022\" and start it up. The same exact \"1.09b\" platform files that we used before will be re-used, and we will have a new save directory. Let’s create a new character called \"Bethany\" and give Bethany a few mules as well. We’ll label the mules the same as what we did before, since they are isolated after all. So now our structure looks like this:
/Platforms/1.09b/
/Saves/1.09b/
/Saves/1.09b/Isaac/
/Saves/1.09b/Isaac/Isaac.d2s
/Saves/1.09b/Isaac/Mule_A.d2s
/Saves/1.09b/Isaac/Mule_B.d2s
/Saves/1.09b/Isaac/Mule_C.d2s
/Saves/1.09b/Bethany/
/Saves/1.09b/Bethany/Bethany.d2s
/Saves/1.09b/Bethany/Mule_A.d2s
/Saves/1.09b/Bethany/Mule_B.d2s
/Saves/1.09b/Bethany/Mule_C.d2s
This is just one of the workflow this enables. This workflows requires a modified \"D2gfx.dll\" to allow multiple instances and thus allows you to mule between your main character and your mules via LAN. Singling provides this feature for the versions it supports. For all other versions, you’ll need to find a copy of it online.
Another workflow which I really like is using this labeling system to separate my \"Classic\" and \"Expansion\" characters. By using two separate labels to the same platform, we can have two separate save paths. If we did this, we would have the following:
/Platforms/1.09b/
/Saves/1.09b/
/Saves/1.09b/Classic/
/Saves/1.09b/Expansion/
/Saves/1.09b/Isaac/
/Saves/1.09b/Isaac/Isaac.d2s
/Saves/1.09b/Isaac/Mule_A.d2s
/Saves/1.09b/Isaac/Mule_B.d2s
/Saves/1.09b/Isaac/Mule_C.d2s
/Saves/1.09b/Bethany/
/Saves/1.09b/Bethany/Bethany.d2s
/Saves/1.09b/Bethany/Mule_A.d2s
/Saves/1.09b/Bethany/Mule_B.d2s
/Saves/1.09b/Bethany/Mule_C.d2s
You can pretty much label your platforms whatever you want as long as that name can be used for the Operating Systems directory. If you are using some illegal symbols like \"/\", then it will properly detect that and give you the appropriate message so that you can fix it. You can also not use a label if you want as well and that works perfectly fine with the above scenario. Let’s say you wanted to have a \"1.09b\" platform that is pretty much flat, for this particular entry, you don’t want to label it. Go ahead and create a platform with that platform name and leave the label blank. Launching the game will just point the save path to the \"/Saves/1.09b/\" folder and your files will be placed in there. Assuming we then created a character called \"Leslie\", we would then have the following structure:
/Platforms/1.09b/
/Saves/1.09b/
/Saves/1.09b/Leslie.d2s
/Saves/1.09b/Classic/
/Saves/1.09b/Expansion/
/Saves/1.09b/Isaac/
/Saves/1.09b/Isaac/Isaac.d2s
/Saves/1.09b/Isaac/Mule_A.d2s
/Saves/1.09b/Isaac/Mule_B.d2s
/Saves/1.09b/Isaac/Mule_C.d2s
/Saves/1.09b/Bethany/
/Saves/1.09b/Bethany/Bethany.d2s
/Saves/1.09b/Bethany/Mule_A.d2s
/Saves/1.09b/Bethany/Mule_B.d2s
/Saves/1.09b/Bethany/Mule_C.d2s
It’s just another folder after all . The nice thing also is that since in this case all of these are using the same platform, so if you are switching between your shared platforms, it’s extremely fast because you don’t need to change any files at all on your hard drive, but rather it’s just a simple registry change, and you are back in the action. Have fun!
PS: I’ll be making a new video about setting up Cactus since there are significant conceptual differences here a bit that simplify things a great deal and allow us to think about how we organize our platforms and saves in the first place.