• Hi Guest!

    This is a notice regarding recent upgrades to the Hub. Over the last month, we have added several new features to improve your experience.
    You can check out the details in our official announcement!
  • 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.

VAMStory needs all it's atoms to be ON at all times. Either directly (the empty holding VAMS scripts) or indirectly (parent atom) More information here.

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.

POI System


Since 1.26, Actions can behave like a POI (point of interest). This could be a solution to make like a scavenger hunt to find interactable spots in a scene, or simply draw the attention of the player.

Just check POI Enabled and set your options.

⚠️ Do not use the POI option if you plan to use that Action panel inside a VAMStory dialog

POI Type: the appearance of the POI while hidden.
POI Behavior: Distance, Look Direction or both. Distance will enable the action panel if you are close enough no matter where you are looking. Look direction will enable the action panel if you are looking at it. Both will take distance and look direction in account before showing it.

POI Activation distance: the maximum distance at which the action panel is visible. Above that distance, the panel will hide and show the POI animation.

POI display distance: the maximum distance at which the poi animation is visible. Above that distance, the POI animation will deactivate.

You should always keep the POE activation distance lower than the POI display distance.

POI Look margins: left and right margin for the look at direction. The higher the number the more the player needs to look at the POI directly to show it.

POI vertical offset: a bit of vertical offset if you want to put the POI animation on a table and display the Action panel above for instance.

Header and Footer


The Header and Footer options allows you to add either a text box above your actions, a global slider below your actions. Or both if you want.

The header text has pretty much the same options as the actions and is styled independently. It is not meant to be interactive, it can be either a title for the panel, or a mini-story for your actions.

This header text or slider will also transfer below a VAMStory panel if you're using that feature.

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
Total Size
26.59 MB
First release
Last update
4.98 star(s) 45 ratings

More resources from hazmhox

Latest updates

  1. Features & Bug fix

    General Fixed an error triggered when the plugin was reloaded due to the new alert system when...
  2. Features & QoL

    General Added an alert in edit mode when "offing" the atoms or parent atoms holding VAMS...
  3. Features & Tweaks

    General Moved the UI Alignment option to the global options (it makes more sense)...

Latest reviews

VAMStory is amazing in many ways. I mostly use it for VAMStory Actions to create buttons for scenes and menus like in my scene White Apartment Harem. The challenge with creating buttons in VAM is even when you align to something it doesn't always align or gets thrown off somehow easily whreas VAMStory Actions doesn't have that issue. I like the global modification options on style and built in hide option. Most important the option to create templates you can backup/restore from scene to scene is also incredibly time saving once you figure out what all you like in a scene. Highly recommended and I really appreciate this resource and use it a lot, thank you. And what's crazy is that is only part of what can be done with it. Hazmhox is a legend as can be seen how many people download and use this and love it, thank you!
Upvote 0
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
Top Bottom