• Hello Guest!

    We have recently updated our Site Policies regarding the use of Non Commercial content within Paid Content posts. Please read the new policy here.

    An offical announcement about this new policy can be read on our Discord.

    ~The VaMHub Moderation Team
  • Hello Guest!

    We posted an announcment regarding upcoming changes to Paid Content submissions.

    Please see this thread for more information.

  • If you like this asset, consider liking and reviewing it for the community
  • Read the description, read the ingame help if you have any trouble. I will not answer private messages asking questions about things that are actually explained in the documentation/help.


VAM VERSION WARNING: The last version of VAM is needed for the plugin.

How to use
  • Open or create a scene.
  • Create a new empty atom
  • Select the empty atom and go in the plugin tab
  • Add one of the plugins from VAMStoryto the atom using:
    • vamstory.cslist ( story and dialogs )
    • vamstory_actions.cslist ( button, toggle and slider panels/walls )
    • vamstory_director.cslist ( triggers management )

You can also download HZMDemos and test the two scenes included to help you figuring out the plugin.

What is this ?

VAMStory is a plugin that allows story creation with dialogs. It is also made in a way that will help you control the flow of your scene. If you like RenPy stories, then as @VRStudy said, this is the VaMPy of VaM.

VAMStory is not limited to dialog and story creation. It also features several other plugins to control your scene:
  • VAMStoryActions to create buttons, toggles and sliders panels/walls (handy even for non-story driven scenes).
  • VAMStoryDirector to create and manage triggers to control the flow of the scene.

The concept

VAMStory revolves around a design based on groups containing dialogs. Like this:

But groups also allow the creation of answers, so you could imagine a story in a more complex manner like this:

To summarize the base concept :
  • You create groups
  • In every group you can create several dialog lines
  • Every group can contain up to three answers

Base creation process


When the base story is created (if you start from scratch in a new scene), you will already have a group and a first basic line created.

(1) Group/Dialog controls helps you control the content, you can navigate throught dialogs or groups, create or delete them.

Dialog Line ID allows you to select one of the dialog in the current group.
Dialog Group ID allows you to select on of your groups.
When you'll change this dropdowns, the left column will update to show you the proper dialog.

(2) The left column, is dedicated to the dialog content.
You can type the text, and customize the dialog appearance from delay, triggers, to avatar image or position.

In the Group/Dialog controls, you have two important buttons that helps you iterate quickly:
  • Test current group allows you to immediately start the current group in the scene. Know that it respect everything, so it will trigger the group trigger, first dialog show trigger and so on.
  • Edit displayed dialog is a shortcut for the plugin UI. Let's imagine you're doing a big story and you have a lot of dialogs. When you're testing a dialog in the scene, you notice a typo in the text. You might not remember the ID of the group or the dialog, so... you just open the plugin, click on this button, and it will immediately select the correct group and dialog displayed in the scene.

The is the copy dialog system.
The Source/Target dropdown is meant for you to select your wanted dialog. The ID inside means "GroupID_DialogID". In this case, Group 1 Dialog 0 has been chosen.

The system works in two ways. If you hit copy to current dialog. It will grab all the dialog data selected in Source/Target and paste it in your currently selected dialog.

If you hit transfer to selected dialog, it will grab all the currently selected dialog data and send it to the selected dialog in Source/Target.

There is no undo, so be careful with the button you hit :)

Finally, the group options.
These options are group based. They will not change per dialog. ("duh" you might say, but I prefer to be crystal clear)

Save group position will allow to save the atom position inside the scene. The atom will be moved at this position when the group starts.

Edit Group Trigger allows you to add triggers for this group. It will be executed also when the group starts just like the group position.

And the answers are pretty simple. You can enable up to three by checking the boxes. Type some text and add a trigger to do something when the player makes his choice.

It is important to know that answers will only show up with the final dialog line of a group.

Base scene use


I'm not gonna go into details for the global options. They are more or less self-explanatory. One thing is important tho, it's the (1) Edit Story Trigger.

This trigger is executed when the scene has finished loading and VAMStory is completely loaded and ready.

This is the place where you would put the first group that has to start and pretty much anything you would need when your scene starts.

This might be also a perfect way to reset a story if you make a button "restart" at the end of your scene.


During scene gameplay, VAMStory behaves like this:
  • The main dialog area auto-skip to the next dialog of the group when clicked IF you're not on the last dialog line of the group.
    It also executes the on click dialog trigger.
  • When the group reaches the last dialog line, it will not skip to the next group. You will have to create your own trigger to go to another group.
  • Answers do the same: they don't have any behavior by default, you will have to create your own trigger to do something.
  • The tiny eye hides the UI so that your awesome players can enjoy your awesome boobz touching animations without a UI in their face.

Manual triggers

VAMStory manual triggers allows a couple of things:


Start Dialog Group ID allows to start a dialog group. This is what you should use to start your story, or change group.

Show Dialog UI and Hide Dialog UI, shows... and hide... the dialog UI in the scene. This is another way to hide it completely if you'd wanted to use your own buttons to do that. It will keep the current state it's in while hidden.

Execute Story Trigger... well will execute the story trigger. As mentionned, this is the perfect way to reset your story.

All options below starting with Global_Opt_xxxx can be modified during runtime if you want. All other storables starting with Dial_xxxxx are the plugin datas. Since there is no easy way to hide them with VaM's api they are visible... there is no point using them during a scene playthrough.

Advanced use cases

I initially wanted to add appearance customization on a per dialog basis. But this would make the UI extremely big and complex to approach (and VaM micro UI size does not help). Since it is unlikely to be needed everytime, this is where manual "triggers" are pretty neat.

As you can change the global options, you could use the group or dialog triggers to operate changes while the discussion goes on. Like this for instance:


  • At Dialog 0 you could set a trigger that changes the font and background color
  • At Dialog 3 you could set a trigger that changes the font and background color for Ella's clone.

Don't limit this approach to when dialogs shows up. You could do it on click, on groups, on answers... whatever you need.

With all the triggers included you're pretty much free to make crazy branching stories. You could also use several VAMStory plugins in your scene and use other plugins handling logic to start one or another story.

The possibilities are endless, only your imagination is the limit.

I can't wait to test your stories!
You know how much this is the type of content I love.

The concept

VAMStoryActions is a way to reduce the number of atoms you have to create to add a user interface inside a scene.
With a few clicks, you can create a big panel of buttons, toggles and sliders.

This is an extremely efficient way to manager tiny or huge user interface in your scene. Which means, this plugins works for either story-driven scenes AND non-story driven scenes. For instance, scenes focused on character customization could be done and controlled in less than a handful of minutes compared to the native atom UI system (and with way more flexibility and customization settings).

You can use VAMStoryActions as a simple standalone atom, allowing you to place it anywhere in the scene. Or as an hidden atom to "steal it" when a VAMStory group reaches the answer phase.

Video tutorial (panel)

Using as additional buttons for VAMStory

When a group of VAMStory reaches the "answers" phase of a dialog. You can specify a VAMStoryAction atom to be "stolen" from the scene and displayed below the answers.

This can be done on every group.

You have the exact same freedom on your VAMStoryActions as a normal "standalone" panel. You can customize the actions, the colors, text, material... so that it fits in your story user interface.

There is no limit on the number of VAMStoryActions present in a scene, so feel free to use it as much as you want to really customize the story experience.

General tips, tricks & recommandations

Avatars (or pictures)

Like some people on the hub tend to think: pushing 4K or 8K textures is not a good move everywhere. For avatars and any icons/pictures you can customize in VAMStory, I suggest keeping reasonable resolutions. Especially since you will use unoptimized pngs or jpgs (they are not "compiled textures" like in the engine).

For avatars, a resolution of 512 is good enough (and already huge). And to be honest: for any non-important textures, you should never go over 1024.

Keep that in mind for your final .var size but also for the amount of VRAM huge avatars are going to consume.
For pngs, you got an optimization guide I wrote a while ago if needed.

Extra huge special thanks

First and foremost, I can't thank enough @Spacedog again. He is the reason why this plugin exists, and all his ideas and long hours spent writing and scripting story driven content has made this plugin really cool.

I can't also thank enough other creators on the hub ( like @PetaZwega for instance ) who gave me ideas while playing through their awesome story driven scenes.

Also a huge thanks to @VRStudy to send me a code snippet for the follow system.

And finally, @Saint66, @ilovebooties, @atani, @Spacedog... thank you so much for the beta-testing. This is one of the most precious thing ever. And this helped me a lot to release something more stable! <3
First release
Last update
4.98 star(s) 44 ratings

More resources from hazmhox

  • Fluids 101
    Plugins Fluids 101
    Several particle systems meant to simulate fluids for characters and environment.
  • Crowd Generator
    Plugins Crowd Generator
    Let there be people. Generate dynamic crowds for your Club or Gig scenes.
  • VAMLive
    Plugins VAMLive
    It's alive! Realtime camera and screen with customization
  • HZM Demos
    Scenes HZM Demos
    Big demo pack of several assets and plugins... kinda like a big tutorial!
  • VAMOverlays
    Plugins VAMOverlays
    A plugin allowing you to create fade in, fade out, subtitles and text on the main camera.

Latest updates

  1. Features, improvements & bug fixes

    General Fixed a couple of incorrect feedback messages in some scripts VAMStoryActions Added...
  2. Features & improvements

    Tools VAMSFovController: Added Enable/Disable FOV, which will prevent the FOV to change if...
  3. Features and fixes

    General Handled timers for all triggers in all plugins (Story, Actions, Director), allowing you...

Latest reviews

And still, there is me toiling and aligning every damn atom like a Neandertal...Don´t read the manual, be a hero....
lol, thank you for all your kind words sir!
Upvote 0
I'll never make another UIButton atom again. This makes managing and building a UI easy, and beautiful. It's a mandatory plugin for creators to have, in my opinion.
Upvote 0
Awesome resourse! Makes developing complex scenes a walk in the park! Thank you!!
You're welcome!
Upvote 0
Holy Crap, I just began the process of revamping my button heavy scene with the action UI plugin, and it just works, keeps everything aligned, and the best part is that its much more optimized than the default VAM trigger atoms. I replaced about 20 UIbutton triggers, and it upped my FPS from 40fps to 60fps. This is amazing.
This is a precious feedback! Thank you!
Upvote 0
It just works. I use it only for the button panel creation. Cuts down the number of atoms and the work you do on the atoms. If you use buttons then use this.
Upvote 1
Yet another essential plugin for transforming VaM's capabilities!
: D Thanks!
Upvote 0
Easy, Fast, Powerful~~
Thank you for the review!
Upvote 0
Thank you for this. The more I learn about your plugins, the more fun it gets to creat in VAM
<3 <3 <3
Upvote 0
Amazing plugin! Saves so much time creating dialogues and is well made and easy to handle. Thank you for supporting the community again hazmhox! 👌
Thank you HolySchmidt!
Upvote 0
New creators will never know the joy of aligning a large amount of UI buttons. Thanks for making this awesome resource.
Upvote 0
Top Bottom