Announcement

Collapse
No announcement yet.

HS_SlotID - Honey Select Slot Manager v.1.1.1 [updated 01-31]

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Utilities] HS_SlotID - Honey Select Slot Manager v.1.1.1 [updated 01-31]









    FEATURES:
    • Easily view all the slots in a mod
    • View stock name in English (requires UITranslation Mod)
    • Searchable Slots to avoid conflicts
    • Slot Type can be translated
    • Change Slot number


    INSTALLATION & TIPS:

    Put HS_SlotID.exe in you HoneySelect folder for easy setup.







    On first run it'll create an '.ini' file to store preferences

    For search function to work you need to create a List to search from. You can download it via the program (link here: dilldoe.org/AG3/HS_SlotID_List.txt) or create one based on only the mods you have installed (if you have all the mods installed)
    Spoiler








    Translation requires UITranslation Mod to be installed (in you Plugin folder) with the current English Translations.
    Spoiler









    CLIFFS: Put in HoneySelect folder. Run and 'Tools > List > Download List'. View Mod or search for Slot.

    LIMITATIONS & NOTES:

    Created mainly for Modders (more for users later on) to quickly see if a slot for their mod is already taken or not.
    Spoiler









    The Slot Types are stored in the '.ini' file, so if you don't like the way I name them or want to translated into your own language, you can edit it there. PLEASE DON'T MANUALLY EDIT 'HS_SlotID_List.txt' ! Either generate one or download it to avoid errors in searching.

    Also, if you're using it to figure out which outfit you want to copy/paste as the base for your mod using the English translation, the Index number should be in the filename when you open it in SB3U. ex. T-Shirt (White) has index of '4', so in SB3U look for p_cf_body_top_04_xx. etc...

    HOW TO:

    For USERS:

    Spoiler


    After Installing (Read Above)

    1. Click Tools > List > Create Local





    This will create a searchable list of all the mods you've installed.

    2. Next click "Tools > List > Conflicting Search" to find any conflicting mods, results will be shown in status area below.

    3. Now you know which file are using the same slots, pick one of them in the File area in the Upper Left Box (The one Sitri is gesturing to) and find the conflicting slot.

    4.You can change it in the "New Slot ID" column, PLEASE ASK THE MODDER TO CHANGE IT FIRST! This will make sure everyone is using the same mod. BUT if you can't wait, you can change it and Save it. Press "F3" to search for a free slot or use the Map.

    4a. Save will create a backup file (only once) "xxx.unity3d.bak", so if you already have a filename like this, it'll skip it, so make sure it's the backup you want. It'll also update your searchable list.

    5. Finally, every time you install a new mod, you have to Click "Tools > List > Create Local". It'll ask you to Append or Create a New one since you already have one. It doesn't matter which one you choose (Create a new one for a fresh list) it'll still work the same.





    For MODDERS:

    Spoiler



    1. Click "Tools > List > Download List > Stable or Nightly" This will let you compare your mod to everyone else. Stable are confirmed mods, while Nightly are user submitted and not confirmed yet.

    2. Click "Tools > List > Create Local" and click "Yes" to append the downloaded list. This will add your mods to the Downloaded List.

    3. Next click "Tools > List > Conflicting Search" to find any conflicting mods, results will be shown in status area below. If your mod is conflicting, you'll know which file and which slot.

    4. Now you know which file are using the same slots, pick one of them in the File area in the Upper Left Box (The one Sitri is gesturing to) and find the conflicting slot.

    5.You can change it in the "New Slot ID" column (or do it in SB3U) and click save. Press "F3" to search for a free slot or use the Map.

    5a. Save will create a backup file (only once) "xxx.unity3d.bak", so if you already have a filename like this, it'll skip it, so make sure it's the backup you want. It'll also update your searchable list.

    6. If you decide to share your mod, you can also update the Nightly list, http://dilldoe.org/AG3/Nightly/HSList.php (key: 49CC4F5) Follow the direction on the site and upload your List.

    7. Suggest you repeat steps 1 - 3 every time you're creating a new mod to avoid conflicting slots.





    UPDATES:

    10-27 - v.0.2.0 - Fixed issues with conflicting slot number in different slot types. Added Slot Type to Search Results. Added Append option for List creation. Fixed Slot Type naming.

    as zeaska and cur144 mention, modders might not use the same slot number format as Illusion since the game only focus on last 3 digits. So a bra slot can have the same number as an underwear slot and HS_SlotID will return it as a conflict. My solution is to correct the format before storing it to the List. This way an underwear slot using a bra slot number will be reformatted to the panty slot.

    Example: Bra 207123 & Underwear 207123, both works in game cause different types. will be stored in the List as 207123 & 208123 to reflect the correct slot type.

    this has no effect on the mods, or show up in the grid, only in HS_SlotID_List.txt. So if you do a conflicting search, only conflicting slots will come up (which is the shoes)

    I've also included the Slot Type in the search Result, so if you search for 207123, it'll tell you "Bra slot 207123...etc.." is taken or not. This (I hope) will help modders conform to the Illusion format by making sure the slot number is in the right slot type.

    forgot to mention, I've also added an Append option for Creating Local list, only adding new mods to the list instead of creating a new one. It'll show which new mods are added in the status area on the bottom. This will make it easier to see which mod(s) are missing from the Downloaded list. It'll automatically ask you if you want to update or create a new list when you click 'Create Local'

    10-28 - v.0.3.0 -Fixed incorrect slot type with names containing letter & numbers. Changed Download List to 'Stable' & 'Nightly' version for future user submission (currently both list are the same). Fix minor bugs.

    10-29 - v.0.3.1 - Bug fix & icon change to match HS icon. removed persistent UITranslation not found

    10-30 - v.0.3.2 - Fixed Slot Type naming. Fixed typos/double entries (Lips showing as Headtype and male clothes showing as body type) Other bug fixes.

    10-31 - v.0.3.3 - Added resize. Fixed bug where items might not be read/skipped

    PLEASE DELETE HS_SlotID.ini AND LET THE PROGRAM GENERATE A NEW .ini

    OR open it and edit the following lines:
    • cf_f_top = Normal Top (F)
    • cm_f_body = Normal Top (M)

    11-02 - Added Upload site. http://dilldoe.org/AG3/Nightly/HSList.php (key: 49CC4F5) If your mod isn't on the list, then upload it and it'll be in the Nightly List.

    11-03 - v.0.4.0 - Added Map function to visual all the slots. bug fixes.

    11-03 - v.0.4.1 - fix bug causing program to crash on map

    11-18 - v.0.4.2 - conflict search now reports multiple conflicts for same slot. change pin function on map to stay pin while change cloth type.

    12-12 - v.1.0 - Added Save function and scalable status area.

    01-03 - v.1.1 - Added Auto Update function. Bug fixes & more error detecting.

    01-31 - v.1.1.1 - minor bug fixes.








    PLEASE DO NOT post this mod onto other sites without informing me first.
    請尊重原作者,本MOD禁止轉載,搬運。 如有興趣轉載,請先聯絡本人。

    Last edited by DillDoe; 01-31-2017, 07:47 PM.

  • #61
    Originally posted by enimaroah View Post
    The chara folder must be checked, of course, but I currently cant remember about studio items. Copy the CAB-String from 00 to any item file to find that out.
    Hi again,
    may i ask more about changing CAB-string
    1. Please correct me if i'm wrong we can change any character in the string after the CAB ,for example "CAB-4e1f28fd9ba3d335c2371c15b755b041" ,
    we can change any character ( also changing as many characters as we want) in the string "4e1f28fd9ba3d335c2371c15b755b041" ,as long as the character that we change to (the result character) has to be alphanumeric [a-z ,0-9] ,and not change the string length (as you said allow 36 or 37) right ?

    2.i want to list all the CAB-string, so i use unityEditor0.DumpCabinet() to list the CAB-string
    when i run bat file with SB3UtilityScript and let the bat export its log to text file ,when i open the text file i see it produces the CAB-string list
    but there is no filename, so it's hard to find those CAB-string belongs to which file,especially when we export multi files in one script

    Can you please add the "filename" fields in the output log , (I mean the output when run script with SB3UtilityScript ,not the output when run in SB3UGS)
    or even better the full filepath , or the path which we write in the script in the fields "path="

    for example, here is my script
    Code:
    LoadPlugin(PluginDirectory+"UnityPlugin.dll")
    unityParser0 = OpenUnity3d(path="E:\Program Files\Illusion\HoneySelect\abdata\chara\cf_m_base.unity3d")
    unityEditor0 = Unity3dEditor(parser=unityParser0)
    unityEditor0.GetAssetNames(filter=True)
    unityEditor0.DumpCabinet()
    it would be great if it produce the filepath or whatever i entered in "path=" field in the script path="E:\Program Files\Illusion\HoneySelect\abdata\chara\cf_m_base. unity3d")



    3. i made some test and here is the result for anybody who interested
    -the studio item list (abdata\studio\list\) does not required unique CAB-string , like in abdata\list\characustom ,we don't have to check CAB-string conflicts there
    -but unique CAB-string is still required in abdata\studio\list\itemlist\honey (this folder existed when you use HIR)
    -also unique CAB-string studio item mods is required
    -unique CAB-string is required no matter what category item belongs to, this means CAB-string of top mods have to be different with bottom mods, accessories, and also studio item mods

    Thanks in advance
    Last edited by navmesh; 04-24-2017, 09:05 AM.

    Comment


    • #62
      Yes, you should keep the same length the CAB-String actually has. Unity4 (SPBR) allowed even the filename as CAB-String, e.g. CAB-ca_face_00, but that seems to be no longer allowed in Unity5. So make a new CAB-String so original as possible. NOT alphanumeric! Hex digits only 0-9, a-f. Only non-capitals seem to be used.

      Create a batch file for the command prompt and save it as CAB_generate.cmd:
      Code:
      @echo off
      echo LoadPlugin(PluginDirectory+"UnityPlugin.dll")>CAB1.script
      echo unityParser0 = OpenUnity3d(path="%1")>>CAB1.script
      echo unityEditor0 = Unity3dEditor(parser=unityParser0)>>CAB1.script
      echo unityEditor0.GetAssetNames(filter=True)>>CAB1.script
      echo unityEditor0.DumpCabinet()>>CAB1.script
      
      echo File: %1
      C:\{where ever}\SB3UtilityScript.exe CAB1.script | findstr /C:"CAB-"
      and adapt the path of SB3UtilityScript.exe to your environment.

      Then call this batch file with an AssetBundle file like this:
      Code:
      pushd D:\HoneySelect\abdata\chara
      CAB_generate.cmd cf_m_eye_00.unity3d
      And the output will be:
      Code:
      File: cf_m_eye_00.unity3d
      CAB-String: "CAB-55b77c9bb626973bdf0108342ec2481a"
      Now call the batch in a for loop for each assetbundle file:
      Code:
      @for %i in (*.unity3d) do @CAB_generate.cmd %i
      Last edited by enimaroah; 04-24-2017, 10:16 AM. Reason: 1. batch simplified

      Comment


      • #63
        Originally posted by enimaroah View Post
        Now call the batch in a for loop for each assetbundle file:
        Code:
        @for %i in (*.unity3d) do @CAB_generate.cmd %i
        Thank you very much for the very detailed instruction

        it's not important but i also note that (%i in the last command not work with me)
        i change it to %%i and it works
        Code:
        for %%i in (*.unity3d) do CAB_generate.cmd %%i>CON
        Btw. in sb3ug script ,is it possible to output a simple string like Console.WriteLine in C sharp ?
        i only need to write simple string to output ,not have to get "path" variable to output
        (my previous suggestion is get variable in "path=", but now it's not needed)

        Thanks in advance
        Last edited by navmesh; 04-25-2017, 01:23 AM.

        Comment


        • #64
          A single '%' when you use the command directly in the command prompt, the double '%%' when in a batch.

          The lower paragraph is not clear to me. A simple string could be written in the command prompt with echo. But you seem to have something else you would want to write out. Please give me an example.

          Comment


          • #65
            Originally posted by enimaroah View Post
            A single '%' when you use the command directly in the command prompt, the double '%%' when in a batch.

            The lower paragraph is not clear to me. A simple string could be written in the command prompt with echo. But you seem to have something else you would want to write out. Please give me an example.

            hello,
            about the A single '% ,thank you very much for letting me know

            I suggest it because with your method it has to write into CAB1.script many times, for example i have 2000 files to check ,then it has to write into CAB1.script at least 2000 times
            thus the console output limits to only 8126 characters, so i have to output the command result to text file instead of using >>CON
            => it has to write 2000 times more ,total about 4000 times

            (however it's not a big problem now because i just have found that using ramdisk to takes a portion of RAM and uses it as a virtual disk drive ,then put CAB1.script in that drive ,so it write to virtual disk (RAM actually) instead of hard disk ,and the speed access increase)
            but i still want to ask if there is command to write a string in SB3UGScript, because i see it 's quite useful ,such as in this case, with it we don't have to write into files too many times
            which can slower the process



            Description
            my method is use regex find/replace to build the script ,then run it once and write output to text file only one time.Here is the detail
            - Put the path of all files i want to check into single script
            (i do it by get filepath of all files i want to check and use regex find/replace to build the script)

            - Then run that single script with sb3ugscript

            like this
            script name : "e:\script.txt"

            Code:
            LoadPlugin(PluginDirectory+"UnityPlugin.dll")
            unityParser0 = OpenUnity3d(path="E:\Program Files\Illusion\HoneySelect\abdata\chara\cf_m_base.unity3d")
            unityEditor0 = Unity3dEditor(parser=unityParser0)
            unityEditor0.GetAssetNames(filter=True)
            unityEditor0.DumpCabinet()
            // the below command to output a string ,(this is what i'm asking),for example :
             Console.WriteLine ("E:\Program Files\Illusion\HoneySelect\abdata\chara\cf_m_base.unity3d")
            
            // load the next file
            unityParser0 = OpenUnity3d(path="E:\Program Files\Illusion\HoneySelect\abdata\chara\xxx\other.unity3d")
            unityEditor0 = Unity3dEditor(parser=unityParser0)
            unityEditor0.GetAssetNames(filter=True)
            unityEditor0.DumpCabinet()
            Console.WriteLine ("E:\Program Files\Illusion\HoneySelect\abdata\chara\xxx\other.unity3d")
            
            //load the next file and so on ....
            and run the script by bat file
            content of bat file :

            Code:
            start "" /B "E:\Games\HS\mods\tools\SB3UGS\SB3UGS\SB3UtilityScript.exe" "e:\script.txt" >> output.txt
            the result should be

            CAB-String: "CAB-9ace8c028f1353ef65950ff8e59e94b4"
            Types
            21: Material (full)
            ......
            E:\Program Files\Illusion\HoneySelect\abdata\chara\cf_m_base. unity3d


            CAB-String: "CAB-aace8c028s1353ef65950ff8e59f94b3"
            21: Material (full)
            ....
            "E:\Program Files\Illusion\HoneySelect\abdata\chara\xxx\other. unity3d"

            and so on...

            then i use regex to filter the CAB-string
            or i can add parameter | C:\Windows\System32\findstr.exe /C:"CAB-" like your method to only get the string i want


            Sorry for long message
            Thanks in advance
            Last edited by navmesh; 04-26-2017, 08:08 AM.

            Comment


            • #66
              This was exactly what I think will be problematic. Such a script for all files could cost much memory! Reusing the variables is good, but still the GC will probably have much to do.

              Why would you want to have the filepath in the output? When you generate the script you already have the full path and could store it. After running the script you would parse the output file from Sb3UGS and mix your stored paths in the same order and you have both information together. And you would do this regardless of calling SB3UtilityScript.exe once or once per file.

              Comment


              • #67
                Originally posted by enimaroah View Post
                This was exactly what I think will be problematic. Such a script for all files could cost much memory! Reusing the variables is good, but still the GC will probably have much to do.

                Why would you want to have the filepath in the output? When you generate the script you already have the full path and could store it. After running the script you would parse the output file from Sb3UGS and mix your stored paths in the same order and you have both information together. And you would do this regardless of calling SB3UtilityScript.exe once or once per file.
                I 'm not sure i know clearly how the garbage collection works , thus i didn't care much about memory ,but about the speed ( i use this method to export the textasset in all unity3d ,but i have never encounter any problem ,though i haven't try with cab-string yet)

                i want to have the path in the output to make sure it from the right file,
                there are some unity3d file in list/characustom folder don't have any cab-string, although i have excluded them , (also in abdata\studio\list\itemlist ) ,but i'm not sure if there is any unity3d file don't have cab string ,or a unity3d have many cab-string-such as an "invalid" mod made by modders or something -and it may affect to the result ,so i can't know which cab-string belong to which file
                (there are some files in abdata folder not have extension ,but have cab-string (their names are abdata,add01,add02))
                Thanks alot
                Last edited by navmesh; 04-27-2017, 07:23 AM.

                Comment


                • #68
                  I dont know of any AssetBundle file without CAB-String. If for any reason a modder would have used a normal game file (not sure if this would be valid for the game) then the output of DumpCabinet() would begin with "Types" instead of "CAB-String". So when parsing the output of the script you will still be able to keep track of this. If a modder used another tool then I dont know what that tool would produce for a CAB-String, but as long as it would be an AssetBundle file then you would see the line "CAB-String" in the output, may be like this: CAB-String: "". Which version of Unity do these files have? May be someone used a file with a different version as template for their list file.

                  Yes, abdata, add01, etc. are regular AssetBundle files although they dont have the unity3d extension. But I doubt that many modders would use AssetBundleManifest files. Those would be used when modders want to build resource files and reference the resources inside from several geometry files.

                  Comment


                  • navmesh
                    navmesh commented
                    Editing a comment
                    i see, thank you very much for the info

                • #69
                  Out of curiosity, how feasible would it be to have a universal list of IDs that could be downloaded to the program and have it automatically fix known conflicts. That way everyone would have the same IDs for items in game, which would make it easier to share characters and outfits. If there are any new conflicts that arise, it could be updated on the universal list as well.

                  In my mind, it sounds like a good idea, but since I don't have much coding experience I'm sure it might be pretty complicated to pull off. Even keeping track of new mods and updating the list when needed seems like it could also be somewhat problematic.

                  Anyway, it's just an idea I wanted to share.

                  Comment


                  • shinki
                    shinki commented
                    Editing a comment
                    tmvaegis At the moment I'm already fixing outfits that the new items in party broke, lol. But yeah, I've noticed the same thing with conflicts and those two subsections being the most troublesome. At least it's pretty easy to fix the conflicts thanks to this mod.

                    DillDoe I understand, it was just an idea I wanted to share and not a request or anything on those lines. I'm genuinely grateful that this mod exists and thank you for it.
                    Oh nice, having 9 digits would be super handy! Oh btw, speaking of numbers, I do have a question about the IDs. Recently I changed an ID to 999260 and it gave me a conflict of "puratan_apron.unity3d [ 205260 ] found in _fan_top_260.unity3d" Why is 999260 is the same number as 205260? I've seen this happen a couple of times and was wondering why is that. I'm guessing it's probably related to this post? http://www.hongfire.com/forum/forum/...93#post5730593
                    Last edited by shinki; 05-16-2017, 02:19 AM.

                  • DillDoe
                    DillDoe commented
                    Editing a comment
                    yes in this case 999260 is the same as 205260 because the last 3 digits are the slot id. the first 3 is the clothing category, which the game (& HS_SlotID) ignores and goes by the list name category.
                    Also isn't that a 9 digit mod?

                  • shinki
                    shinki commented
                    Editing a comment
                    DillDoe Thanks for the info.
                    I thought that mod was 9 digit one as well cause most of his releases are. Anyway, I checked to make sure the conflict was legit before posting my last comment and it's a 6 digit one alright. Must of been made before the More Slot ID mod was released.

                • #70
                  Bro, i have conflic with 4k plastic skin....

                  https://s19.postimg.org/uim0ztgtv/5252.jpg

                  what I do?
                  Last edited by Dark Soujiro; 05-22-2017, 12:03 AM.

                  Comment


                  • #71
                    Thanks for sharing hard, but I don't know how to use it. It seems I'm going to study how to use it

                    Comment


                    • #72
                      Why is the Save is greyed out?
                      Pudding!

                      Comment


                      • #73
                        I am not sure why the manager not working for me as intended

                        What I did was copy the exe file to E>Honey select folder> paste
                        I run the exe and an ini was created
                        then i tried the the stable list even the nightly, yet i don't see any mode on the left window (i also did the create local)

                        also when i click the translation tab "UITranslation not found: \Plugins\UITranslation\HoneySelect\Text" the files i have on text folder are ClothingSets names and Personality

                        Comment


                        • #74
                          I think I have a problem because it doesn't seem to recognize the exe file, therefore I can't create a modlist.. so I cant make it work... any suggestion or help?

                          Comment


                          • #75
                            Originally posted by brady1465
                            I need help, when i click create local list nothing happens and i cant search for conflicting files it's grayed out. Yes i did put it in the honey select folder, and i also have ui translation plugin installed
                            Originally posted by Dragonotakux View Post
                            I think I have a problem because it doesn't seem to recognize the exe file, therefore I can't create a modlist.. so I cant make it work... any suggestion or help?
                            For those that can't get the program to generate a local list, you most probably have to: right-click the .ini -> click Edit -> At the top you'll notice a line saying "Path=" -> Copy the path to your game directory there -> Save the .ini and close it. Now it should properly register the path and also be able to generate a list.
                            Last edited by LoneCactus; 07-20-2017, 02:49 AM.

                            Comment


                            • Dragonotakux
                              Dragonotakux commented
                              Editing a comment
                              Yes, thank you that made it work, thanks for the fix!
                          Working...
                          X