Jump to content


  • Content count

  • Joined

  • Last visited


About JustSomeAnon

  • Rank

Profile Information

  • Gender
  • Interests
    Porn. Basically that. All of it. (Except scat)

Recent Profile Visitors

448 profile views
  1. MCM Menu Toggling [Solved]

    I don't necessarily need to store "a lot" of information, I just need to store is in a very specific way so that I can use it effectively without having to copy/paste hundreds of if/then/else checks. I'm creating a framework for "tagging" (without actual tags though) armors and outfits as more or less skimpy for other mods to make use of. Event OnPageReset(string page) SetCursorFillMode(LEFT_TO_RIGHT) SetCursorPosition(0) ; Can be removed because it starts at 0 anyway int mMetaLoop = 0 int mLoop = 1 string mToggleName if (page == "Activate Mod") elseif (page == "Vanilla Armors 1") while mMetaLoop < 14 AddHeaderOption(link_Container_Armors[mMetaLoop].VanillaArmor[0] as string) AddHeaderOption("") while mLoop < 5 if mLoop == 1 mToggleName = "Topless" elseif mLoop == 2 mToggleName = "Skimpy Top" elseif mLoop == 3 mToggleName = "Bottomless" elseif mLoop == 4 mToggleName = "Skimpy Bottoms" elseif mLoop == 5 mToggleName = "Shared Name" endif mcm_ArmorList_1_OID_B[mMetaLoop] = AddToggleOption(mToggleName, link_Container_Armors[mMetaLoop].VanillaArmor[mLoop] as int) mLoop += 1 endwhile AddEmptyOption() mMetaLoop += 1 endwhile elseif (page == "Vanilla Armors 2") elseif (page == "Vanilla Armors 3") endIf endEvent This is how my MCM menu's pagereset function looks now compared to before.
  2. MCM Menu Toggling [Solved]

    If the script is duplicated with each new container/3DArray and I need upwards of 200+ 3DArrays, wouldn't that take a massive toll on papyrus with 200+ copies of a script existing? Even though the script only contains data and no functions or events, won't it still cause issues for the engine just by virtue of quantity?
  3. MCM Menu Toggling [Solved]

    I know there's not. Currently I just have a bunch of arrays that I manually point to the specific indexes of other arrays, it's a solution that works but it's as basic as it could possibly get and requires a lot of manual if/then/else checking to use. But there's a way of simulating one that gives you an array that automatically references other arrays without having to write a long line of if/then/else checks. If I had one like that then I could use a while loop rather than manually typing out the 40+ scenarios for handling my outfit arrays, but I can't make enough sense of the CK wiki's instructions to make one.
  4. MCM Menu Toggling [Solved]

    That's pretty much what I've ended up doing (Only I write it as if !CMO_Array_OutfitEntry_1[3] then instead. Cleaner code like that.) Thanks for the help, I pretty much got it working. Now my framework is actually getting close to having basic functionality. Now if only I could understand how to do a proper multi-dimensional array so I didn't have to copy/paste so much...
  5. MCM Menu Toggling [Solved]

    Unfortunately it's absolutely not an option to have CMO_Array_OutfitEntry[] be any other type of array, it very much has to be strings for the rest of my mod to function. That's very valuable knowledge though, that a string need to be empty like so: "" in order for papyrus to be able to return it as a bool set to false. I would not have figured that out on my own, I just assumed it could translate "true" and "false" into bools just as it can translate true/false from them into strings. I'll fiddle around with it and see if I can get it to work now that I know what would make papyrus read it properly. I always cast variables that turn into other variable types manually for the sake of code clarity and because it's good coding practice to always make certain, minimizing any potential risk of compiler errors. (I've gotten compiler errors before in the creation kit because it wants the conversion to be explicit, may as well be on the safe side.) Thanks for the help so far, I'll let you know if I get it to work or if I need to beg for more feedback~
  6. MCM Menu Toggling [Solved]

    Can Papyrus not translate a string containing "0" into a bool if you tell it to read it as a bool? Because logically, mConverter = CMO_Array_OutfitEntry_1[3] as bool should translate into mConverter == 0 because CMO_Array_OutfitEntry_1[3] == "0" Will the string always return as true if I check it as a bool even when the string is "0" or "1" and the code says to read it as a bool?
  7. MCM Menu Toggling [Solved]

    The following lines: mConverter = CMO_Array_OutfitEntry_1[3] as bool mConverter = !mConverter CMO_Array_OutfitEntry_1[3] = mConverter as int SetToggleOptionValue(mcm_ArmorList_1_OID_B[0], CMO_Array_OutfitEntry_1[3]) Would ideally just look like this: (the standard way of doing it when you're not using arrays, but I'm using arrays.) CMO_Array_OutfitEntry_1[3] = !CMO_Array_OutfitEntry_1[3] SetToggleOptionValue(mcm_ArmorList_1_OID_B[0], CMO_Array_OutfitEntry_1[3]) But I was having doubts about whether that actually works properly. I broke out the value into an integer and manually flip it just to make certain it does work. mConvert = !mConverter accomplishes the same thing as your entire if/then/else section at even less cost of performance. (Though it's a completely negligible performance level regardless.) It doesn't need to check what the current value is, it just needs to flip it. My real trouble right now is that SetToggleOptionValue() seemingly isn't working and I can't for the life of me figure out why. Here's the whole segment of the code that deals with establishing, initializing and using the arrays. In case it helps. (I'm doing makeshift multi-dimensional array because I couldn't figure out how to do it according to the wiki) string CMO_Array_SelectedArray string[] CMO_Array_Index_0 string[] CMO_Array_Index_1 string[] CMO_Array_Index_2 int[] CMO_Array_Index_3 int[] CMO_Array_Index_4 int[] CMO_Array_Index_5 int[] CMO_Array_Index_6 string[] CMO_Array_OutfitEntry_1 string[] CMO_Array_OutfitEntry_2 string[] CMO_Array_OutfitEntry_3 string[] CMO_Array_OutfitEntry_4 string[] CMO_Array_OutfitEntry_5 string[] CMO_Array_OutfitEntry_6 string[] CMO_Array_OutfitEntry_7 string[] CMO_Array_OutfitEntry_8 string[] CMO_Array_OutfitEntry_9 string[] CMO_Array_OutfitEntry_10 Event OnConfigInit() Debug.Trace("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") int i = InitializeArrays(1) Debug.Trace("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC") Pages = new string[2] Pages[0] = "Activate Mod" Pages[1] = "Vanilla Armors" EndEvent int Function InitializeArrays(int mInt) mcm_ArmorList_1_OID_B = new int[100] CMO_Array_SelectedArray = new string[16] CMO_Array_Index_0 = new string[100] int mLoop = 0 while mLoop < 100 CMO_Array_Index_0[mLoop] = "placeholder" mLoop += 1 endwhile CMO_Array_Index_1 = new string[100] CMO_Array_Index_2 = new string[100] CMO_Array_Index_3 = new int[100] CMO_Array_Index_4 = new int[100] CMO_Array_Index_5 = new int[100] CMO_Array_Index_6 = new int[100] CMO_Array_OutfitEntry_1 = new string[7] CMO_Array_OutfitEntry_2 = new string[7] CMO_Array_OutfitEntry_3 = new string[7] CMO_Array_OutfitEntry_4 = new string[7] CMO_Array_OutfitEntry_5 = new string[7] CMO_Array_OutfitEntry_6 = new string[7] CMO_Array_OutfitEntry_7 = new string[7] CMO_Array_OutfitEntry_8 = new string[7] CMO_Array_OutfitEntry_9 = new string[7] CMO_Array_OutfitEntry_10 = new string[7] CMO_Array_OutfitEntry_1[0] = CMO_Array_Index_0[0] CMO_Array_OutfitEntry_1[1] = CMO_Array_Index_1[0] CMO_Array_OutfitEntry_1[2] = CMO_Array_Index_2[0] CMO_Array_OutfitEntry_1[3] = CMO_Array_Index_3[0] as string CMO_Array_OutfitEntry_1[4] = CMO_Array_Index_4[0] as string CMO_Array_OutfitEntry_1[5] = CMO_Array_Index_5[0] as string CMO_Array_OutfitEntry_1[6] = CMO_Array_Index_6[0] as string CMO_Array_OutfitEntry_2[0] = CMO_Array_Index_0[1] CMO_Array_OutfitEntry_2[1] = CMO_Array_Index_1[1] CMO_Array_OutfitEntry_2[2] = CMO_Array_Index_2[1] CMO_Array_OutfitEntry_2[3] = CMO_Array_Index_3[1] as string CMO_Array_OutfitEntry_2[4] = CMO_Array_Index_4[1] as string CMO_Array_OutfitEntry_2[5] = CMO_Array_Index_5[1] as string CMO_Array_OutfitEntry_2[6] = CMO_Array_Index_6[1] as string CMO_Array_OutfitEntry_3[0] = CMO_Array_Index_0[2] CMO_Array_OutfitEntry_3[1] = CMO_Array_Index_1[2] CMO_Array_OutfitEntry_3[2] = CMO_Array_Index_2[2] CMO_Array_OutfitEntry_3[3] = CMO_Array_Index_3[2] as string CMO_Array_OutfitEntry_3[4] = CMO_Array_Index_4[2] as string CMO_Array_OutfitEntry_3[5] = CMO_Array_Index_5[2] as string CMO_Array_OutfitEntry_3[6] = CMO_Array_Index_6[2] as string CMO_Array_OutfitEntry_4[0] = CMO_Array_Index_0[3] CMO_Array_OutfitEntry_4[1] = CMO_Array_Index_1[3] CMO_Array_OutfitEntry_4[2] = CMO_Array_Index_2[3] CMO_Array_OutfitEntry_4[3] = CMO_Array_Index_3[3] as string CMO_Array_OutfitEntry_4[4] = CMO_Array_Index_4[3] as string CMO_Array_OutfitEntry_4[5] = CMO_Array_Index_5[3] as string CMO_Array_OutfitEntry_4[6] = CMO_Array_Index_6[3] as string CMO_Array_OutfitEntry_5[0] = CMO_Array_Index_0[4] CMO_Array_OutfitEntry_5[1] = CMO_Array_Index_1[4] CMO_Array_OutfitEntry_5[2] = CMO_Array_Index_2[4] CMO_Array_OutfitEntry_5[3] = CMO_Array_Index_3[4] as string CMO_Array_OutfitEntry_5[4] = CMO_Array_Index_4[4] as string CMO_Array_OutfitEntry_5[5] = CMO_Array_Index_5[4] as string CMO_Array_OutfitEntry_5[6] = CMO_Array_Index_6[4] as string CMO_Array_OutfitEntry_6[0] = CMO_Array_Index_0[5] CMO_Array_OutfitEntry_6[1] = CMO_Array_Index_1[5] CMO_Array_OutfitEntry_6[2] = CMO_Array_Index_2[5] CMO_Array_OutfitEntry_6[3] = CMO_Array_Index_3[5] as string CMO_Array_OutfitEntry_6[4] = CMO_Array_Index_4[5] as string CMO_Array_OutfitEntry_6[5] = CMO_Array_Index_5[5] as string CMO_Array_OutfitEntry_6[6] = CMO_Array_Index_6[5] as string CMO_Array_OutfitEntry_7[0] = CMO_Array_Index_0[6] CMO_Array_OutfitEntry_7[1] = CMO_Array_Index_1[6] CMO_Array_OutfitEntry_7[2] = CMO_Array_Index_2[6] CMO_Array_OutfitEntry_7[3] = CMO_Array_Index_3[6] as string CMO_Array_OutfitEntry_7[4] = CMO_Array_Index_4[6] as string CMO_Array_OutfitEntry_7[5] = CMO_Array_Index_5[6] as string CMO_Array_OutfitEntry_7[6] = CMO_Array_Index_6[6] as string CMO_Array_OutfitEntry_8[0] = CMO_Array_Index_0[7] CMO_Array_OutfitEntry_8[1] = CMO_Array_Index_1[7] CMO_Array_OutfitEntry_8[2] = CMO_Array_Index_2[7] CMO_Array_OutfitEntry_8[3] = CMO_Array_Index_3[7] as string CMO_Array_OutfitEntry_8[4] = CMO_Array_Index_4[7] as string CMO_Array_OutfitEntry_8[5] = CMO_Array_Index_5[7] as string CMO_Array_OutfitEntry_8[6] = CMO_Array_Index_6[7] as string CMO_Array_OutfitEntry_9[0] = CMO_Array_Index_0[8] CMO_Array_OutfitEntry_9[1] = CMO_Array_Index_1[8] CMO_Array_OutfitEntry_9[2] = CMO_Array_Index_2[8] CMO_Array_OutfitEntry_9[3] = CMO_Array_Index_3[8] as string CMO_Array_OutfitEntry_9[4] = CMO_Array_Index_4[8] as string CMO_Array_OutfitEntry_9[5] = CMO_Array_Index_5[8] as string CMO_Array_OutfitEntry_9[6] = CMO_Array_Index_6[8] as string CMO_Array_OutfitEntry_10[0] = CMO_Array_Index_0[9] CMO_Array_OutfitEntry_10[1] = CMO_Array_Index_1[9] CMO_Array_OutfitEntry_10[2] = CMO_Array_Index_2[9] CMO_Array_OutfitEntry_10[3] = CMO_Array_Index_3[9] as string CMO_Array_OutfitEntry_10[4] = CMO_Array_Index_4[9] as string CMO_Array_OutfitEntry_10[5] = CMO_Array_Index_5[9] as string CMO_Array_OutfitEntry_10[6] = CMO_Array_Index_6[9] as string Debug.Trace("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB") return mInt EndFunction
  8. MCM Menu Toggling [Solved]

    THE ISSUE OF THIS TOPIC WAS: I have a mod with an MCM menu, but the toggle buttons would not toggle when pressed. It didn't work because I was asking papyrus to read a string as a bool incorrectly, in a way that always returns true. Thanks to Teutonic for figuring out the issue~ SOLUTION and LESSON LEARNED: If you tell papyrus to read a string as a bool, the string will always return bool=true unless the string contains nothing, like so: "". (IE: Absolutely nothing, not even a space.) if !RandomString -DO STUFF- else -DO OTHER STUFF- endif If RandomString holds anything at all, even just a blank space like so: " ", -DO STUFF- will happen. If RandomString holds nothing at all, that is to say "", -DO OTHER STUFF- will happen.
  9. Copies of Armor Not Showing on NPCs/PC

    What have you named the nif files? The engine can be very particular and fiddly with nif names. You absolutely must have at least one nif file for an ArmorAddon to point to, and that one file must end in "_1" if you only have one nif. If you have two nif files (IE slider support, one for weight 0 and one for weight 100) then both must contain the exact same vertices count, and the weight 0 file's name must end in "_0" and the weight 100 file's name must end with "_1". If they don't follow that naming scheme then it won't work. It's also possible that your nif files simply came out corrupted or defective in some way, you could try remaking them in bodyslide and see if it works. Other than that, it's difficult to figure stuff out without direct access to the nif files to check for ourselves if we can see anything. Maybe share them if none of the above works?
  10. Copies of Armor Not Showing on NPCs/PC

    Is it the armor you've copied or the ArmorAddon? You could just copy/paste the armor item and then point the new armor to the same ArmorAddon as the original. ArmorAddons are just the visual meshes, armor stats and all that stuff have nothing to do with those. If you plan on using a unique model for your new armor then you'll need a new ArmorAddon and nif file, but otherwise there's really no reason to not just set it to use the same ArmorAddon as the source armor is using.
  11. Is there any way to find a form's editor ID with papyrus? For example, if I have a copy of the first Fur Armor variant available and I need to check what it Editor ID it has. Fur Armor variant 1 has the Editor ID "ArmorBanditCuirass" and variant 2 has the Editor ID "ArmorBanditCuirass1", so being able to check the Editor ID would let me differentiate the two when searching through a list that contains both without having to compare them as entire "forms." (Because otherwise every entry in the list would have to be an entire armor form, which takes much more processing power to go through than simply comparing strings.) Alternatively, is there a way to retrieve an armoraddon's name? The name of an armor's armoraddon could also be used to compare to a list of armoraddon names, if only it could be retrieved through code first. If you're asking "why not just compare armoraddons directly?" then the answer is the same as above. It would take much more effort for the engine to compare armoraddons to each other than to just compare 2 strings, not to mention the size of the list itself would be much larger for having to store dozens upon dozens of armoraddons rather than just short strings. Any help or advice would be appreciated! ^^
  12. I'm working on a mod that requires the use of a multi-dimensional array, but I can't seem to write one that works. Basically, I have about 100 string arrays containing 16 entries each, and I need to store these 100 arrays in some form of list so I can reference/set/change them dynamically later on. I need help making such a list that works. I was originally going to use a formlist but I figured out that formlists can't store pure string arrays, so no dice on that. Does anyone here have a comprehensive description of how to make a multi-dimensional array? I've already tried making the one suggested over at the creation kit wiki https://www.creationkit.com/index.php?title=Arrays_(Papyrus) and I can't quite figure that one out. I can probably handle usage of the array myself if only I can get one working to begin with.
  13. Any mass effect adult mods?

    Thanks for the replies, I think I've got the gist of things with that. ^^
  14. Any mass effect adult mods?

    I'm about to start playing through the Mass Effect trilogy for the first time and entirely actually honest-to-god spoiler free. As I want my first and likely only run to have as much of what mass effect can offer as possible, does anyone know of any adult mods for the franchise? I searched the forums here for mass effect but came up blank, so I realize this is likely a shot in the dark but I figure I may as well ask. Worst case scenario is everyone ignores this. ^^ I'm starting with Mass Effect 1 but I'll play thought all 3 in succession so recommendations for any of the games are appreciated. Non-adult mods are also welcome of course. I already have the MEUITM texture overhaul, the ALOT texture overhaul and the mouse acceleration fix for ME1.
  15. RevealingChoices-1.0 UPDATE 17/7-2017

    STATUS UPDATE: Next update is being worked on and should (probably) be out in the coming month. Notable Information: -Currently focusing on a tagging system that will let Revealing Choices and the user dynamically save custom(not CK) tags for armors. The 4 available tags are: Topless, Bottomless, Top Skimpy, Bottom Skimpy. Topless means that the armor features fully exposed breasts. -For example, if the armor is just pants and a necklace with no top. Bottomless means that the armor features fully exposed vagina and ass. -Does not necessarily have to feature exposed asshole. -For example, an armor that is just a top and leggings, but no skirt of panties. -May also include not-really-covered armors, such as a bottomless armor with some stray piece of cloth barely covering the vagina from some angles. The important thing is that there's no piece of clothing covering the vagina and ass directly and getting a full view is roughly as easy as tilting your head. Top Skimpy means that the armor features a skimpy upper half, but the breasts are not fully exposed. -For example: any armor which has just a bra for a top. -May also include armors which expose one breast but not the other. (At user's own discretion.) -Does NOT include any armor which fully exposes both breasts. -Armors must have a top piece that could also be called skimpy. A legitimate full-plate steel armor does not qualify as skimpy. Bottom Skimpy means that the armor features a skimpy lower half, but the vagina is not fully exposed. -Examples include armors with only panties for cover of the vagina and ass. -Entries do NOT need to expose or reveal ass cheeks and asshole, so long as the vagina is skimpily covered. -An armor that features only panties in the front but a robe covering the backside would still qualify for this tag. -Examples do NOT include things like full pants (unless sufficiently exposed in the crotch region.) (Also determined on user's discretion.) Armors are eligible for one top tag and one bottom tag, not two of either. For example, an armor can be tagged as Topless and Bottom Skimpy if that's how the armor is, but it SHOULD NOT be tagged as either both Topless and Top Skimpy or Bottomless and Bottom Skimpy under any circumstances! An armor that doesn't qualify for any of the tags (IE an armor that's just a legit armor with nothing sexual to it) should simply be left untagged and will be detected as "non-sexual." Nothing else has been worked on, as the above system has eaten up a lot of time and effort to design besides being integral. Any ability to handle or equip armor variants is currently on hiatus in favor of developing the parts of the mod that would be of most use to other modders. (That is to say, the tagging system that will dynamically let other modders know how revealing an armor is.) Once this update rolls out, I believe it will be safe for other mods to make use of the tagging system to check for levels of exposure. I will be including a utility script with functions for you to make checks with. OP updated to more clearly explain the functionalities of this mod, both current, future and intended.