Monosomething

Well-Known Member
May 24, 2019
1,605
2,644
Just got duped into a date by the AA1Cold personality.

The line she used was "I want to know everything about you", which sounded like a simple praise (to me, anyway), but turned out im now stuck with a sunday date i couldnt care less about. Her relationship request is more logical. Then again, she did come up to me at one point and just said "What...?" <-- this was her complaint, by the way, and since i didnt know what this meant, ive put her down with a "yes". Hey, shoulda been more clear with your wording!
 
  • Haha
Reactions: BudgetPro and Grim

Grim

Active Member
Aug 17, 2016
913
623
Just got duped into a date by the AA1Cold personality.

The line she used was "I want to know everything about you", which sounded like a simple praise (to me, anyway), but turned out im now stuck with a sunday date i couldnt care less about. Her relationship request is more logical. Then again, she did come up to me at one point and just said "What...?" <-- this was her complaint, by the way, and since i didnt know what this meant, ive put her down with a "yes". Hey, shoulda been more clear with your wording!
I don't think I've encountered that personality yet. I do appreciate that some subtitles for some of the weirder personalities have brackets with an explanation of what the interaction they're performing actually is. That kind of addition to the subtitles should really be more common.
 

Monosomething

Well-Known Member
May 24, 2019
1,605
2,644
I don't think I've encountered that personality yet. I do appreciate that some subtitles for some of the weirder personalities have brackets with an explanation of what the interaction they're performing actually is. That kind of addition to the subtitles should really be more common.
Think we will need to do a compilation of weird responses and requests of all the iffy wording used in UPP...

And, yeah, the, by now, all too common to me Wise personality has an explanation in brackets when she wants to give you a headpat, instead of what the Harsh personality does, which is approach you and go (...)...
 

BudgetPro

Member
Nov 11, 2020
250
145
set in the module's init trigger.
if i wanted to set up an init that had to take place after all other modules completed their init, how would you do that? or rather have you seen any examples of delayed init or some other way to create a delayed init? i considered a morning event that checks a "have I ever ran once before" bool then does the init and sets the bool true so it doesnt run again the next morning , but this feels inefficient, just wonderin if you have any more clean idea
 

Grim

Active Member
Aug 17, 2016
913
623
if i wanted to set up an init that had to take place after all other modules completed their init, how would you do that? or rather have you seen any examples of delayed init or some other way to create a delayed init? i considered a morning event that checks a "have I ever ran once before" bool then does the init and sets the bool true so it doesnt run again the next morning , but this feels inefficient, just wonderin if you have any more clean idea
When you say "all other modules" do you mean on the same card, or all modules for all cards in the class?

For the same card you possibly make use of the Delayed Event actions. Most Init triggers listen for the Card Added to Class event, so you could have another trigger that also listens for that event, and then emits a Delayed Event x number of seconds later, and then your Init trigger would listen for the delayed event.

If you're trying to do this for every module on every card in the class then I don't think there's any way of cleanly doing that, because there would be no way for the trigger to know when the player is done adding cards to the class, and cards can be swapped in out of the class at the end of every day. For this case you probably would need a trigger that runs once a day the next morning, or have it run every time a card is added to the class with the same delayed event logic.
 
Last edited:

shokutowa

Newbie
May 7, 2017
41
4
Again thanks again Grim and everyone for answering my questions, I am learning the module system piece by piece, However ran into a strange issue with this card , it does not let me import any of the unique modules.Is this a system limitation or just a way for the author to stop others from using his module?
 

shokutowa

Newbie
May 7, 2017
41
4
Nevermind figured it out apparently the reason I could not port it as a module from the trigger page because it was already packed Module.
 

tanx_killa

Newbie
Nov 12, 2017
57
21
guys why the fuck is my extra folder empty
I just redownloaded from the gofile link to see, the extra in the zip was not empty. maybe one of them is older? once you get the game running though you don't need any of the stuff in there.
I really wanna get into this game again, is there a modern guide for it? (Just have no idea where to start)
this is essentially an installation guide and has a number of mods linked. just make sure to follow it closely, its not just an 'unzip and run' game
 

Grim

Active Member
Aug 17, 2016
913
623
i see so you can used delayed event to potentially send messages between modules but only on the same card ?
No, delayed events can be listened for by any trigger, including those on other cards. I've never used them for this myself, but you'll see some modules emit delayed events with the intention of allowing other modules to react to them. Personally I think delayed events are underutilized. I've found them useful for re-using code since you can essentially use them as a means to call triggers like you would call a function in other languages.

The reason I suggested them as a way to do a final initialization on the same card is because you can just have a trigger listening for the same Card Added to Class event that most modules use for their initialization, and this trigger would emit a delayed event with a delay time set so that the 2nd trigger listening for the delayed event would only fire after the other modules are done initializing. These triggers could be restricted with the typical ThisCard == TriggerCard, which would mean they only ever fire once when the card gets added to the class. It gets more complicated if you're trying to run a final initialization after multiple cards are added because there's no way of knowing when the player is done adding the cards that they want, and thus when all of the other modules are done initializing, so you'd have to be content with this hypothetical final init trigger running multiple times.

Ultimately I don't know what your goal is, but if it's to check for the existence of certain modules and react to their existence in some way, then the simpler and safer route is just to have a single trigger doing the check that runs once at the start of the day or even at the start of each period. It won't have any noticeable performance impact, and it'll account for things like cards being added or removed mid-save, modules enabling/disabling each other, and people adding/removing modules on cards in a save using QtEdit.
 
Last edited:

BudgetPro

Member
Nov 11, 2020
250
145
have a trigger listening for the same Card Added to Class event that most modules use for their initialization, and this trigger would emit a delayed event with a delay time set so that the 2nd trigger listening for the delayed event would only fire after the other modules are done initializing.
ah ok that makes sense basically notify itself that the init event happened so hypothetically other cards inits happened then too.

my thought was having a more robust personality shifting mod that uses other modules to tune the personality (like angry or murderous or something) by turning them on or off depending on different circumstances. like a card that starts out sweet and nice but if someone betrays them, they become a monster :D (and maybe redeemable)

but i dont want to write each of those personality features into the mod, id rather just utilize all the work already done by previous modders LOL

so that would mean that those mods would have to already be on the card like you were saying, and if thats the case they would also be active because they all Init default to being active. so either you could unpack them on an individual card and manually set the inits to default false, but this would be very tedious especially for a normal user who just wants some fun personality modules. otherwise if they are jsut installed on a card normally then my mod is going to have to turn them off after their inits.

so my thought was (if i cant add mods to a card via other triggers) that I could make a mod that during its init, would also flip all the other mods off until its ready to turn them on dynamically. but the load order of the modules doesnt seem to be controllable, so if my mod loads first, flips some variables to false that dont exist, then the other modules load and init themselves, they will be turn On from the start, instead of off. so bottom line seems ill just have to set up a maintenance routine instead i think. maybe run in the mornings or evening because like you said someone might add another mod, or might intend for a certain module to be always on for the sake of the cards normal personality

but i went ahead and started messing with the delayed events anyway because it does seem like a very useful thing, especially if like you said other cards will be able to receive the event, that could be a great function. have you messed with them much yourself? from what i can tell basically some action sets "emit delayed event" and you give it a name with a constant, then modules can have a trigger that uses the event "delayed event" and action "If delayed event label = same constant" then they should fire, but other delayed events with a dif label shouldnt trigger that If condition. if this is right then you can definitely send messages between modules

but probably i will still have to use a maintenance routine for keeping track of disabled modules within my personality mod. still it gave me an idea to upgrade a couple other modules, since the events can be delayed by time, i realized i could use it as a timer for say 60 seconds and then unlock the ai on ai enforced h scenes for one example. gonna give that a shot right now actually lol. im already cursed. :( this happens every time i like a game that is moddable i just get lost in the modding spiral. i never should have learned to code :(
 

Grim

Active Member
Aug 17, 2016
913
623
so my thought was (if i cant add mods to a card via other triggers) that I could make a mod that during its init, would also flip all the other mods off until its ready to turn them on dynamically. but the load order of the modules doesnt seem to be controllable, so if my mod loads first, flips some variables to false that dont exist, then the other modules load and init themselves, they will be turn On from the start, instead of off. so bottom line seems ill just have to set up a maintenance routine instead i think. maybe run in the mornings or evening because like you said someone might add another mod, or might intend for a certain module to be always on for the sake of the cards normal personality
If you just want the other modules to start off disabled, then you could make a trigger that listens for the Card Initialized event. That event fires before the Card Added to Class event, so if you set the card variable for each module that you're handling before the modules try to initialize, then instead of defaulting to true they'll use whatever value you've already set which would be false. Of course whether this works or not will depend on how the creator of the other module wrote their init trigger. If they used the pattern of ThisCard.SetBool(module_name) = ThisCard.GetBool(module_name, true) then that'll work since the result of GetBool will be whatever you already set in the Card Initialized trigger. Occasionally though you'll run into a module that just does ThisCard.SetBool(module_name) = true, in which case the Card Initialized trigger won't work. Either way a routine trigger is probably the better way to go since it'll also handle the other stuff I mentioned.

but i went ahead and started messing with the delayed events anyway because it does seem like a very useful thing, especially if like you said other cards will be able to receive the event, that could be a great function. have you messed with them much yourself? from what i can tell basically some action sets "emit delayed event" and you give it a name with a constant, then modules can have a trigger that uses the event "delayed event" and action "If delayed event label = same constant" then they should fire, but other delayed events with a dif label shouldnt trigger that If condition. if this is right then you can definitely send messages between modules
Yeah that's exactly how they work, although I don't necessarily use them for message passing. They're basically custom events that you can emit whenever you want, rather than having to hook your triggers into one of the default events. I used them extensively in the Premeditated module, but I've also used them in the Puppet module, the fixed version of the Brute module, and the fixed versions of nekomancer's modules.
 

chadawesome89

Newbie
Jul 3, 2020
15
1
hmm i do see that while i have a ppx called 32_hipixel_faces_ikemen_miscmale you have two seperate called 32_ikemenfacesv12 and also 32_miscmalefaces_v17

i think i had a copy of those and replaced them with the hipixel version, im not sure if trying that or some other combination or even removing all of them will have an effect perhaps? will have to experiment

i also see we both have 29_emoji_patch_face7 maybe thats related?

---
also if you can, edit your comment and put the image in a spoiler just for housekeeping :D
Thanks for continuing to think about this with me. I'd be happy to spoiler my images, but I'm not entirely sure how.

Any chance to experiment? I'll fiddle with it some and let you know if I find anything.
 

chadawesome89

Newbie
Jul 3, 2020
15
1
hmm i do see that while i have a ppx called 32_hipixel_faces_ikemen_miscmale you have two seperate called 32_ikemenfacesv12 and also 32_miscmalefaces_v17

i think i had a copy of those and replaced them with the hipixel version, im not sure if trying that or some other combination or even removing all of them will have an effect perhaps? will have to experiment

i also see we both have 29_emoji_patch_face7 maybe thats related?

---
also if you can, edit your comment and put the image in a spoiler just for housekeeping :D

Removed 29_emoji_patch_face7. No luck there. Any thoughts on how to trouble shoot the different male face files? Seems strange that we have different ones yet both get the tongue glitch.
 
4.70 star(s) 18 Votes