VAMStory
1. How to Trigger Buttons to Check/Adjust other Buttons/Sliders
On the Get Her Pregnant scene I have a button to choose Get Her Pregnant and originally wanted it to include a combination of options selected like Pregnant, Milk Squirting, etc. in that category. But the challenge I have is I don't know how to make it where when you click that button, it then will check the boxes on the menu or make the adjustments to the menu. What ends up happening is it will turn those on but leave them unchecked so it can get confusing and you have to toggle it on off to keep up with your settings. So I just left it on a generic Pregnancy Morph and let the user choose those additional options but I'd rather have it where it choose everything at once.


3. Dependency Issues/Clear Cache Option
When I created White Apartment Harem I tried out a lot of different models, outfits and music to see what I was planning to go with. When I went to package the VAR to upload it to the hub it listed a lot of dependencies for things I am not using in the scene. I tested out a futa option and thought about adding it to the scene but haven't, yet it shows a lot of futa related dependencies and the only thing I can think of is it is coming from rotating them through buttons or in the scene to try it out. If you look at the scene it says I am using around 200 dependencies but there are things that I am not using. After spending a few days trying to sort out some things and searching the meta.json and using notepad plus with json viewer and really trying to figure out what is going on, I see that there are some VAMStory Actions that seem to stay around after them are removed from the buttons. Even songs removed from a scene still show up in the meta.json after test packaging it and reviewing it before upload to the hub. If it's a user related error it may be related to switching modes between button and button toggle, or possibly a button that had the data on it but was converted to a spacer instead and maybe switching it didn't clear it out. This is probably the biggest challenge I have right now with using the plugin as it happened on other scenes as well initially. So I guess I am just trying to understand is it a user error, I dig through and don't find it and even removed a lot of spacers when I switched everything to sections without spacers but the dependencies are still there. When I get around to it I want to make a lite version with base models and see if I can get rid of them all or track down if it's really that high or if it's somehow coming from the buttons not clearing or updating the meta.json data.

1. The first challenge can actually be accomplished using the existing VAMStory feature. Moreover, if your triggers are well-planned, you can even use VAMStory as a central controller to achieve complex front-end interactions and back-end processing, just like a telephone switchboard.

You only need to create three triggers to achieve this, and it doesn't necessarily have to be executed manually through a button. It can be any form of trigger, such as Timeline. For example, in your UI, there is a toggle box that turns on the light when checked and turns it off when unchecked. However, you also have a Timeline animation that might turn off the light during the animation. In this case, you would want the corresponding toggle box in the UI to be unchecked as well. To achieve this, you only need to set the light on/off triggers within the toggle box's own triggers. Then, when you want to switch the light, you can use the following three trigger items to execute it:

Screenshot 2024-06-03 143042.png


Trigger 1: Specify the target object to be changed. In this example, it is the second checkbox in the second row, i.e., B1.

Screenshot 2024-06-03 143054.png


Trigger 2: Specify the action to be executed, which in this case refers to the checked/unchecked state of B1.

Screenshot 2024-06-03 143103.png


Trigger 3: Reset the specified object based on the execution result. This step is essential; otherwise, the previous two steps will not be fully executed.

This method applies to all UI types provided by VAMStory except for the button. I have created a demo for you; perhaps interacting with the demo will give you a more intuitive idea.


This demo is a bit more complex, but the principle is the same. When you press B, B1 will be checked while A1 and C1 will be unchecked. The same applies to A and C. It's like a simple logic gate or gateway.



3. This issue is unrelated to VAMStory itself; it is about cleaning, finalizing the scene, and correctly packaging it. However, I have a suggestion for you: you can try using this checker tool made by @AshAuryn.


You can give it a try, and if you encounter any issues, you can continue the discussion in that tool's dedicated thread. I'm happy to provide any assistance I can.

Hope that helps.
 
Last edited:
1. The first challenge can actually be accomplished using the existing VAMStory feature. Moreover, if your triggers are well-planned, it can be executed perfectly.

You only need to create three triggers to achieve this, and it doesn't necessarily have to be executed manually through a button. It can be any form of trigger, such as Timeline. For example, in your UI, there is a toggle box that turns on the light when checked and turns it off when unchecked. However, you also have a Timeline animation that might turn off the light during the animation. In this case, you would want the corresponding toggle box in the UI to be unchecked as well. To achieve this, you only need to set the light on/off triggers within the toggle box's own triggers. Then, when you want to switch the light, you can use the following three trigger items to execute it:

View attachment 373856

Trigger 1: Specify the target object to be changed. In this example, it is the first checkbox in the second row, i.e., A1.

View attachment 373857

Trigger 2: Specify the action to be executed, which in this case refers to the checked/unchecked state of A1.

View attachment 373858

Trigger 3: Reset the specified object based on the execution result. This step is essential; otherwise, the previous two steps will not be fully executed.

This method applies to all UI types provided by VAMStory except for the button. I have created a demo for you; perhaps interacting with the demo will give you a more intuitive idea.





3. This issue is unrelated to VAMStory itself; it is about cleaning, finalizing the scene, and correctly packaging it. However, I have a suggestion for you: you can try using this checker tool made by @AshAuryn.


You can give it a try, and if you encounter any issues, you can continue the discussion in that tool's dedicated thread. I'm happy to provide any assistance I can.

Hope that helps.
Thank you very much for taking the time to respond in detail. I will review this when I return back to editing it to see what can be done. I really appreciate it!
 
Side note, because @Shadow Venom (thank you for helping people btw) doesn't talk about it: you can chain and control triggers with VAMStoryDirector. (there's also the new feature "gate triggers")

VAMStoryDirector IS the plugin that is meant to control your scene. On a big scene you can use a bunch of triggers to relay/chain triggers that could be executed with VAMStoryActions.

It also helps a lot to have triggers at one specific spot, manage them from there, and never have to remember "hey where did I put that trigger?".

The ideal setup is:
  • VAMStoryDirector handles the start of the scene (with the onload trigger), and all complex triggers (starting the scene, resetting the scene, chained triggers, gate triggers, etc...)
  • VAMStory handles your branching story and can call triggers from VAMStoryDirector
  • VAMStoryActions handles your UI and player interactions and can also call triggers from VAMStoryDirector
  • Bonus: There are tools included that allows you to do some basic things:
    • Wav recording
    • Colored box (to put the player in a box at the beginning of the scene with a menu for instance)
    • Distance triggers
    • Fov Controller... etc etc
Since the whole suite is meant to sync itself between every plugins (Story+Director+Actions), it is even recommended to control the whole flow of the scene with that and only that to avoid having "misfires" with other plugins.

Example: let's say you're using timeline to start the scene, depending on the situation, Timeline could start slower or faster than VAMS... and you want to avoid that.
 
Side note, because @Shadow Venom (thank you for helping people btw) doesn't talk about it: you can chain and control triggers with VAMStoryDirector. (there's also the new feature "gate triggers")

VAMStoryDirector IS the plugin that is meant to control your scene. On a big scene you can use a bunch of triggers to relay/chain triggers that could be executed with VAMStoryActions.

It also helps a lot to have triggers at one specific spot, manage them from there, and never have to remember "hey where did I put that trigger?".

The ideal setup is:
  • VAMStoryDirector handles the start of the scene (with the onload trigger), and all complex triggers (starting the scene, resetting the scene, chained triggers, gate triggers, etc...)
  • VAMStory handles your branching story and can call triggers from VAMStoryDirector
  • VAMStoryActions handles your UI and player interactions and can also call triggers from VAMStoryDirector
  • Bonus: There are tools included that allows you to do some basic things:
    • Wav recording
    • Colored box (to put the player in a box at the beginning of the scene with a menu for instance)
    • Distance triggers
    • Fov Controller... etc etc
Since the whole suite is meant to sync itself between every plugins (Story+Director+Actions), it is even recommended to control the whole flow of the scene with that and only that to avoid having "misfires" with other plugins.

Example: let's say you're using timeline to start the scene, depending on the situation, Timeline could start slower or faster than VAMS... and you want to avoid that.
LOL, I thought for a second about mentioning this, but it's a topic that, once started, won't end. VAMStory is just incredibly versatile. On the surface, it seems like an interesting UI plugin that can greatly enhance scene interaction, but in reality, it's a very comprehensive framework. Whether for front-end interaction or back-end processing, it can be used as a core to drive extremely complex scenarios, such as a full-fledged game.

It's undeniable that plugins like Timeline hold an irreplaceable position in VAM scene creation. In my opinion, VAMStory is almost as important as Timeline. However, its potential, especially in current practical applications, is severely underestimated.

Without delving too deeply into its versatility and functionality, I have a small question or suggestion: In VAMStory, there are many options available in the trigger system, but most of them are categorized under "DON'T use these functions below." In fact, many of these options are very useful and powerful once correctly utilized. I understand that you categorized them this way to simplify the plugin's use and to prevent users from breaking things in the process. However, I think you could consider renaming them to something like "For advanced usage only."

Untitled.png



Again, thank you for your great creations and I hope VAMStory will be one of the first plugins to be ported to VAM 2.0 once it is released. ?
 


Using this scene as an example, it not only relies on VAMStoryActions to provide users with a feature-rich UI but also builds a framework and backend for the entire scene through a series of VAMStory components. Take stage lighting control as an example: the stage lighting can interact with the user through VAMStoryActions' UI, allowing them to customize its style and effects. However, the complex controls used to manage it are all stored within VAMStoryDirector component. This VAMStoryDirector component is preconfigured with hundreds of commands, which not only achieve complex lighting and special effects changes but also handle nearly ten thousand triggers in the scene's backend.

From the perspective of scene creation, the framework it forms not only makes the production of complex scenes more organized by highly modularizing the complicated scene structure and logic but also greatly improves production efficiency. For example, presenting complex stage lighting changes can be easily achieved by making a few calls to the VAMStoryDirector component in the Timeline. Additionally, when executing them through the Timeline, the changes will be reflected in the UI in real-time, preventing user confusion. That's something you want to achieve. @VamEssentials

So, as @hazmhox pointed out, to fully maximize the functionality and potential of VAMStory, it is worth thoroughly exploring and utilizing all of its components. Each individual component is powerful on its own, but using them in combination, within a cohesive "FRAMEWORK," can achieve a result where the whole is greater than the sum of its parts.

* One thing though, it would be great if we could reorder the trigger list in VAMStoryDirector. It's not an essential feature, but it would make things more organized for creators, especially when you have hundreds of preset commands and are continually adding new entries.

Screenshot 2024-06-03 171151.png
 
Last edited:
Without delving too deeply into its versatility and functionality, I have a small question or suggestion: In VAMStory, there are many options available in the trigger system, but most of them are categorized under "DON'T use these functions below." In fact, many of these options are very useful and powerful once correctly utilized. I understand that you categorized them this way to simplify the plugin's use and to prevent users from breaking things in the process. However, I think you could consider renaming them to something like "For advanced usage only."

That's not really hard to change, that's just a text value, and since it's a "fake entry" to create a divider, that could be fixed.

That said, you seem to be one of the few creators who understand that. And not everyone is gonna get the way those values work. For instance, due to the way the "data" works, I'm always renaming/reorganizing the set when, for instance, you move the actions up or down in the list.

A simple example would be this:
  • Action 1 : Name "ABC" (internal value Act_0-Text)
  • Action 2 : Name "DEF" (internal value Act_1-Text)
The moment, you're gonna move up Action 2, this is going to be flipped and will become:
  • Action 1 : Name "DEF" (internal value Act_0-Text)
  • Action 2 : Name "ABC" (internal value Act_1-Text)
So for someone that does not have your insight in understanding the technical aspect behind that, they will for instance, create a trigger that changes the "Act_0-Text", and one day through the scene editing, they're gonna move a couple of actions... and ask themselve why the fuck there triggers are not changing the proper element.

For me, this behavior (having the JSONStorable exposed) has always been a nightmare to prevent user to make stupid things and break plugins. When you have someone with your expertise, this is not a problem, but 95% of the time, this ends up with people asking me why something doesn't work.

For me, those values should be hidden... but I can't hide them : )

I would love that they would only be like "playback values" just like when you hit the "play in editor" button in Unity. If you prefer, you could use the "Act_0-Text" at runtime (in play mode), but it wouldn't have any influence on the dataset itself, the moment you go back to edit mode, the values flips back to their original state.

But we can't sadly :']
 
Oh, damn, that colored box plugin looks interesting, could have used that instead of my adhoc setup on a recent scene.
Off to explore the "gate trigger" system, a mistery for now as I just realised I can check the demo to understand its purpose.

Here's some requests if you find them meaningful or practical:
  • VAMActions - Show/Hide Actions toggle somewhere - sometimes I start with some buttons hidden and this would help make corrections without having to trigger them showing or guessing
  • All - possibility to disable auto-backup or change period - I use several Actions & Director in a scene, and when in scene making I end up with hundreds of auto-backups*
* because there's so many auto-backups I change the plugin's code to very long scheduling, essentially disabling it; it really gets out of hand when using multiple VAMS plugins in a scene

Thanks
 
  • Essentially, a way to hide/show Actions if they're hidden but through the plugin UI. That's a "creator" tool QoL if I can say so?
  • I could add that, like a slider below the backup button to control the duration. But to be sure, "out of hands" as in:
    • "my scene creation workflow gets impacted by the autosave (lag, stutter, slowing down) out of hands"... or
    • "OCD HO MY GOD MY BACK FOLDER IS 5.38mb BIG (but I have no other issues) out of hands" ? :p
'coz that's litterally the size of my backup folder -5.38mb- after two months of work not cleaning it up working on several scenes at once.
And the "hash" of a plugin is constraining the backup amount to 5 max.
 
  • Essentially, a way to hide/show Actions if they're hidden but through the plugin UI. That's a "creator" tool QoL if I can say so?
  • I could add that, like a slider below the backup button to control the duration. But to be sure, "out of hands" as in:
    • "my scene creation workflow gets impacted by the autosave (lag, stutter, slowing down) out of hands"... or
    • "OCD HO MY GOD MY BACK FOLDER IS 5.38mb BIG (but I have no other issues) out of hands" ? :p
'coz that's litterally the size of my backup folder -5.38mb- after two months of work not cleaning it up working on several scenes at once.
And the "hash" of a plugin is constraining the backup amount to 5 max.
  1. Yes, a QoL addition if there's a place for it somewhere.
  2. I'm fine with editing the code to limit the auto-backups, but others have also mentioned about this somewhere in this discussion area:
    1. I notice a lag/stutter when the autobackup happens, nothing major but noticeable, besides the log distraction
    2. Not the size, it's the hundreds of files in the way that I need to go delete if I want to make and find a manual backup file created to use as a preset

(2.1) I have my preference for not using auto-backups at all, but at least would be nice to not have the stutter and log distraction so often showing. Even changing the 15/20 min (I think) backup schedule to 30 min would help, at the cost of reducing the potential usefulness of the auto-backups.
(2.2) I think my template scene uses at least 25 VAMS plugins, so that's 125 very similar auto-backup files just on that scene. When I need to do a manual backup to use as a preset all those files are just in the way.
Idea: what if manual backups could be made to a different folder?
 
Last edited:
Noted for the hide/show, I'll try to find a way.

For the backup part: I never had any stutter, but the "target PC" might play a big role in that. And I'm working on a scene with at least 14 components which makes the auto backup proc often... and never had any issue with perfs. But I agree that with less solid hardware, it could be felt. ( and I'm saying could, 'coz when I look at my files, I'm seeing files that goes between 10kb to 350kb, and I would be very surprised that even a 5yo computer would stutter writing a 300ish Kb file ).

For the second part, I think it's a bit "nitpicky". If you end up making a manual backup, and you obviously know how to use Windows, you can sort files by modification date and grab the most recent ones. If you prefer, that's a "non issue"... that's just a way of working and potentially (as I was joking about earlier) more a "personal OCD" than anything else.

I'll had a slider and a checkbox in the future because I'm a nice person :p
But note that it still is bonkers to me.

Dozens of plugins don't have proper "failsafe" features, and when one has something that is designed at least to be "very safe" to avoid data loss on extremely complex scripting situations, you end up having people (kind of) complaining about that actual failsafe feature. AND those complaints are not even based on actual real issues but more about "subjective QoLs" :']
 
Noted for the hide/show, I'll try to find a way.

For the backup part: I never had any stutter, but the "target PC" might play a big role in that. And I'm working on a scene with at least 14 components which makes the auto backup proc often... and never had any issue with perfs. But I agree that with less solid hardware, it could be felt. ( and I'm saying could, 'coz when I look at my files, I'm seeing files that goes between 10kb to 350kb, and I would be very surprised that even a 5yo computer would stutter writing a 300ish Kb file ).

For the second part, I think it's a bit "nitpicky". If you end up making a manual backup, and you obviously know how to use Windows, you can sort files by modification date and grab the most recent ones. If you prefer, that's a "non issue"... that's just a way of working and potentially (as I was joking about earlier) more a "personal OCD" than anything else.

I'll had a slider and a checkbox in the future because I'm a nice person :p
But note that it still is bonkers to me.

Dozens of plugins don't have proper "failsafe" features, and when one has something that is designed at least to be "very safe" to avoid data loss on extremely complex scripting situations, you end up having people (kind of) complaining about that actual failsafe feature. AND those complaints are not even based on actual real issues but more about "subjective QoLs" :']

All this I write is a QoL feedback on personal preferences. There's no bug to fix and I do say to take them if meaningful or practical.

Failsafe features are great to have, but the logging annoys and distracts me from what I want to do. As I don't like auto-backups in general - I prefer having more control over the process - disabling the auto-backup for my needs gives me what I need and I lose (? ) nothing. In my usage, the risk of losing Actions/Director data is so limited and easy to fix in comparison to other aspects of a scene that I don't mind disabling the feature altogether.

This is absolutely OCDish and personal preferences, do not add something if you think it doesn't make sense to have. I'm quite happy to change the code of VAMS, I much prefer it over the log distraction and sorting through files I don't need. I mention it as feedback as I also recall someone here mentioning auto-backups.
 
A development mode that can be switched off might be a good idea:

Vamstory only performs automatic backups in development mode, which makes sense because when the scene is distributed to end users, constantly backing it up might seem a bit pointless. So giving creators an option to disable development mode before packaging and uploading could be more user-friendly and also meet the needs of creators who don't want frequent backups.

Automatic backup is a thoughtful design, especially considering that VAM itself doesn't have an undo feature. However, I personally have never needed the convenience of backups because I'm used to saving presets to make backups.
 
@hazmhox
I found some really nice icons from the Gnome project. Having the option to choose icons for buttons would be really awesome and allow users to create a media control panel directly in VAM Story Actions or use popular icons like next/back arrows to continue in an interactive menu. You could possibly use these in VAM Story Actions if you like them...

There is also these...

I was working on a Video Player and started using VAM Story Actions and browsed to attach image buttons but it ended up not matching in style and the rotation effects didn't match either, so I opted to go with manually doing all my buttons for this Video Player with default VAM buttons...

For someone who maybe doesn't want as much going on, just having basic icon buttons they can choose in VAM Story Actions, to add icons to an existing menu set, might be really helpful.

One key advantage is you could greatly reduce the number of atoms you have in a scene file and have it all organized and backed up in Vam Story Actions. That button set has 20 atoms (some hidden like Pause, Shuffle On, Loop On) for example whereas in Vam Story Actions it could of all been 1 atom. So the challenge I run into is if I want another section that controls another playlist or another feature that needs to route and map different through Logic Bricks, that's another 20 atoms.
 
Last edited:
Hi!
I have 2 toggle buttons and I need to disable the other when one button is enabled.
I found 2 options, but they work the same way (hide the object).

Am I doing something wrong or is one option not working correctly and is there any alternative solution to my "problem"?

1718179256860.png
 
Hi @alexmname !

Your problem drops at the right moment if I can say so :p
The last update of VAMStory allows you in VAMStoryActions to change the state of a toggle or a toggle button.
To give you a bit more context:

  • Disable selected action, completely disables it (temporarly) until your re-enable it. This means that if you have a line with 3 buttons and disable the middle one, the third action will move to the second action place. If you prefer, it "removes" the action from the flow of the UI
  • Hide selected action, simply "hides" it. It makes it transparent but keeps its place in the flow of the UI. This means that if you have a line with 3 buttons and hide the middle one, the third action will stay in place and the second one will become invisible.
  • Then most probably, what you are looking for now is the two new actions: "Set selected toggle/toggle button On" or "Set selected toggle/toggle button Off". Those are simply changing the state of the toggle. On "checks" a toggle. Off "unchecks" a toggle.

I hope it's clear enough : )
 
I found some really nice icons from the Gnome project. [...]

That's really nice, but the initial focus was not to have a UI tool at first, but a "dialog" tool. But the community shows how far you can get when "using it" differently.

This is definitely not a bad idea, but also definitely not a priority for me. I'm wrapping a scene with Juno and Timbo right now. Then, it's VAMM2 wrap, and finally so that I put that to rest... I will focus on finishing Djinn once and for all.

So maybe in a couple of months that might be something I could tackle... only the future will tell :p

That said, thank you for your interest and your ideas, that's precious. Thank you <3
 
Hey since your really aktive ok ger I decided I'd ask a question so i want to make a scene where the Dialogue moves forwards automatically lets say a character says hi I want the "hi" to stay for a set amount of time and then for a different dialogue to Pop up as the "hi dissapears" basically some sort of Autoplay Feature.

(Hope it wasn't too difficult to understand what im trying to say)

Is there a way to do this in the latest version of VamStory or maybe a workaround that I don't know of?

Thank you for this amazing plugin!

Edit:Oh and is there anyway to add a wav/mp3 file to the dialogues that way as the test pops up the voice/audio comes our the head of the character that's talking?
 
Hey since your really aktive ok ger I decided I'd ask a question so i want to make a scene where the Dialogue moves forwards automatically lets say a character says hi I want the "hi" to stay for a set amount of time and then for a different dialogue to Pop up as the "hi dissapears" basically some sort of Autoplay Feature.

(Hope it wasn't too difficult to understand what im trying to say)

Is there a way to do this in the latest version of VamStory or maybe a workaround that I don't know of?

Thank you for this amazing plugin!

Edit:Oh and is there anyway to add a wav/mp3 file to the dialogues that way as the test pops up the voice/audio comes our the head of the character that's talking?
This can be achieved in two ways: using Timeline to trigger the plot progression or using a timer or delay trigger plugin.
 
For example, you can use SequenceChoice, StateMachine, or SequenceMachine in LogicBricks. They offer similar functionalities but differ slightly in their applications. Take SequenceMachine as an example; you can use it to "automatically control" the progress of Vamstory. Each entry corresponds to a state in the SequenceMachine. For each state, you can specify a duration, and once the time is up, it automatically moves to the next state.


I think the timeline makes more sense. Since you have a storyline, I assume you have a timeline to control character animations. If that's the case, you can directly set triggers at the corresponding points on the timeline. This way is the simplest.
 


In this example, the Vamstory dialogues that need to progress automatically can be triggered by the Timeline itself. Dialogues requiring player choices can use the "on show" trigger in Vamstory to pause the Timeline. Then, use the Answer trigger to continue the progress.

Vamstory itself is quite flexible. When combined with the Timeline without using additional plugins, it can actually achieve most of the functionalities you want.
 
Back
Top Bottom