Here we go! ODOS is released! It should be bug-free, but I'm sure some things will pop up as people use it.
Have fun with it and give it some love!
Here we go! ODOS is released! It should be bug-free, but I'm sure some things will pop up as people use it.
Have fun with it and give it some love!
Okay, so after the massive disappointment I had with the broken script so close to release, I felt pretty down. I took a little time off to try and get back to it with a fresh mind.
Fast forward a little time, and after working on a new approach, I am glad to say...
The mod is working again! And this time on every machine!
And what is more, there is very little change as far as the documentation goes (the tutorial videos will still need to be remade, but that will be later).
So here are the changes. As I said before, I used the function "GetEditorID2" as a way to tag objects for my scripts. I used it in the quest script that froze items in place, as well as the Advanced Positioning for displays. However, it didn't work on either my brother's computer, or my clean Oblivion install. I just had to replace it.
So to avoid it entirely, I made it that every display now freezes its own display item. I tried to avoid that before, because having too many scripts running at once could potentially cause some performance issues, but given my stress test video, which had 1000 scripts running at once and the game was fine, I figure that there shouldn't be much trouble at all.
And second, the Advanced Positioning of displays had to change slightly, since I used GetEditorID2 function to find the "ODOSPos" tag to place the object precisely. I replaced that with a check for if the display item is a Persistent Reference. Filter items parented to displays do not need to be Persistent References to work, so when you want to use the Advanced Positioning, simply mark the filter item you are using as the placement object as Persistent, and it will work. Easy!
The rest of the mod still works just fine. I did discover a small quirk with the collection system that I will be putting into the documentation. Namely, that if you have displays in a room that the player hasn't visited yet, then some portions of the script on the displays won't have triggered yet, causing some issues with the auto-placement from the ledger. So I made it a requirement that for a display to appear in the ledger list, you have to visit the cell at least once, then it will be there. It sounds a little weird, but I figure that people would be visiting those cells before activating the ledger anyway, so it is fine.
So with all that said, all I need to do is update the documentation on this website with the changes, and I am on track to release! I will work my way through a new set of tutorial videos for those that need visual guides instead of written ones, but that is coming!
It feels good to have it working again, and I'm excited for release!
So bad news... I was SO CLOSE to publishing ODOS. I literally have the Nexus page all set up, ready to upload the zip file and press "publish"...
But before that, to make sure everything worked, I was testing the mod on other computers. I sent the zip file of the mod to my brother, who installed everything correctly... and the item freeze script doesn't work. We tried to figure out what is wrong, and I eventually tried to test it on my computer. I backed up everything, made a clean Oblivion install, and it doesn't work on my end. Restoring my previous install also doesn't solve the issue, the freeze script just doesn't work anymore.
I have narrowed it down to the function "GetEditorID2", which for the longest of time worked for me, but now (as warned about in the documentation), can possible not work. And now it doesn't. And even if it did, I wouldn't trust my mod to work on another machine as it is. All the other parts of the mod work (storage system, mannequins, Dynamic Static Objects, etc. It is just the positioning of displays that doesn't freeze the items).
So now I need to rework the script. I already have a new approach in mind, which wouldn't need that function to work, and isn't too difficult to implement. However, it means that I will need to edit my documentation, and redo all my tutorial videos...
But don't worry! As soon as I get it working, I will quickly edit the written documentation and release the mod. And then I will work on the videos, releasing them as I finish them. I won't make people wait so long.
I'm very disappointed to get a block so close to the end, but better that than getting a bunch of comments on how nothing works... lol.
I will keep updating as I progress!