beasty-visual-novel / reference / assets.md

Assets reference

Every ScriptableObject you create with Beasty Visual Novel, its exact Create menu path, and its main fields. Use this page as a lookup. The concepts behind these assets are explained in Core concepts.

How many of each

Most assets are per-story or per-character. A few are singletons for the whole game.

AssetHow many
VNSettingsExactly one, in a Resources folder. Created for you.
VNContextExactly one for the whole game. Every story shares it.
LocalizationTableOne for the story (on the context) plus one global UI table (on VN Settings).
CharacterVariableSchemaOne, referenced by the context.
QuestCatalogOne, referenced by the context.
VNMusicConfigOne, referenced by the context.
VNTimeConfigOne, dragged onto the BeastyManager. Optional.
FreeRoamMapGraphOne per scenario. Most games have one.
DialogueSceneOne per story or chapter. Many.
StoryGraphOne root graph per scene, plus one per subgraph. Many.
CharacterDefinitionOne per character. Many.

The VNContext is the one to be careful with. It is the shared world, resolved at runtime through VNSettings.gameContext. Tools > Beasty VN > Content > Create Base Assets (intro + FreeRoam map) never duplicates it.

Lookup table

AssetCreate menuWhat it is
DialogueSceneCreate > Beasty VN > Visual Novel (Dialogue Scene)The root asset of one story.
VNContextCreate > Beasty VN > Story > VN ContextThe shared world: cast, variables, items, quests.
StoryGraphCreate > Beasty VN > Story > Story GraphA canvas of nodes.
VNSettingsCreate > Beasty VN > Config > VN SettingsProject-wide settings.
VNMusicConfigCreate > Beasty VN > Config > Music ConfigThe music queue for each app mode.
VNTimeConfigCreate > Beasty VN > Config > Time ConfigDayparts, hours, weekdays, seasons.
CharacterDefinitionCreate > Beasty VN > Characters > Character DefinitionOne character.
CharacterVariableSchemaCreate > Beasty VN > Characters > Character Variable SchemaThe fields every character has.
LocalizationTableCreate > Beasty VN > Localization > Localization TableKey by language.
FreeRoamMapGraphCreate > Beasty VN > FreeRoam > FreeRoam Map GraphRooms plus character routines.
QuestCatalogCreate > Beasty VN > Quests > Quest CatalogThe project’s quests.
The seven node typesCreate > Beasty VN > Advanced > Nodes > ...Normally created by the graph, not by hand.

You rarely need this menu at all. Tools > Beasty VN > Setup > Blank Canvas creates the DialogueScene, the VNContext, the LocalizationTable, a root StoryGraph and a first Dialogue node in one step. See Menu items.

DialogueScene

The root asset of one story. Shown in the editor as the “Visual Novel” field.

FieldMeaning
contextThe shared VNContext. Empty falls back to the global context from VN Settings.
rootGraphThe StoryGraph playback starts from.
musicOverrideA music queue that replaces the context’s Visual Novel queue for this story.
scriptFileThe .vnbeasty TextAsset this scene syncs with.

See The story graph and The text script.

VNContext

The one shared world. The cast, the variables, the dictionary, the items, the quests, the screens and the localization all live here, not on the individual stories, so several DialogueScenes can share them.

FieldMeaning
charactersThe cast: a list of CharacterDefinition.
variablesYour variable definitions (inline, see below).
characterSchemaThe CharacterVariableSchema every character inherits.
musicConfigThe VNMusicConfig.
dictionaryDictionary entries (inline).
localizationThe story LocalizationTable.
languagesThe language codes this game ships. Index 0 is the source language.
screensHUD and overlay screen definitions.
itemsItem definitions (inline).
questCatalogThe QuestCatalog.

StoryGraph

A canvas of nodes: one graph per scene, plus one per subgraph.

FieldMeaning
nodesThe nodes on the canvas.
entryNodeIdWhere playback starts.
exitOutcomesThe outcome keys this graph can return when used as a subgraph.

See Subgraphs.

VNSettings

Project-wide settings: the global context, the UI localization table, the default language, autosave, save slots, rollback depth, and the folders used to resolve asset names in the text script. It lives in a Resources folder and is read at runtime.

Open it with Tools > Beasty VN > Settings > Global Settings or Edit > Project Settings > Beasty VN. Every field is documented in VN Settings.

VNMusicConfig

The music queue for each app mode: mainMenu, visualNovel, freeRoam and custom. Each queue has clips, a mode, a volume and a crossfadeSeconds.

See Audio and music.

VNTimeConfig

Game time. Drag it into the Time Config field of the BeastyManager.

Warning Leave that field empty and the time system is off. No time variables are written and every time condition evaluates to false.

FieldMeaning
modeSlotsOnly (named dayparts, no hour) or Clock (an hour counter).
daypartsThe named bands. Each has a name and, in Clock mode, a startHour.
hoursPerDayClock mode only.
weekdaysOptional weekday names. Leave empty to disable.
seasons, daysPerSeasonOptional.
startDay, startDaypartIndex, startHourThe opening moment of a new game.

See Game time.

CharacterDefinition

One character: their name, their look on stage and in the UI, their stats, and their talk menu.

FieldMeaning
idThe stable id used in conditions, scripts and code.
displayName, nameColor, textColorHow the name and the line are drawn.
allowPlayerRenameLet the player set this character’s name.
categoryMain or Secondary.
tags, aliasesFree tags; alternative display names a line can use.
expressionsThe stage sprites. The default key is base.
portraitsThe UI icons.
deliveryStylesFont, colour and text effect per delivery state.
variablesThis character’s own fields, on top of the schema.
talkMenuThe conversation hub entries.
freeRoamSpriteThe sprite used in a room.
listed, listVisibleWhenWhether the character appears in the in-game cast list.
showCurrentLocation, showRoutineWhat the profile screen reveals.

See Characters and The talk menu.

CharacterVariableSchema

The fields EVERY character has. One fields list of CharacterVariableField (see below). A character can override the default value and the visibility of a schema field without changing the schema.

See Characters.

LocalizationTable

A grid of keys by language.

FieldMeaning
languagesLanguage codes. Index 0 is the source language.
entriesOne row per key, with a cell per language and its translation status.

There are two tables: the story table on the VNContext, and the global UI table on VN Settings. See Localization.

FreeRoamMapGraph

The rooms the player walks through, and the routines that decide who is standing in them.

FieldMeaning
entryRoomIdThe room a new game starts in.
roomsThe room nodes: background, conditional backgrounds, room prefab, buttons.
routinesOne CharacterRoutine per character.

Assign the graph to the FreeRoamScenario component on the Stage. See Free roam rooms and Character routines.

QuestCatalog

The project’s quests, in one quests list. Each quest has an id, a title, an owner, a category, an order mode, a recurrence, start and fail conditions, reward and penalty effects, and its objectives.

See Quests.

The seven node types

Every node type has a Create entry under Create > Beasty VN > Advanced > Nodes >:

Dialogue Node, Choice Node, Decision Node, Flow Node, SubGraph Node, Return Node, Talk Menu Node.

You normally never use them. Right-clicking the graph canvas creates the node, names it, adds it to the graph and files it as a sub-asset for you. The Advanced entries exist for the rare case where you need a node asset outside a graph. See The story graph.

Inline data: what is NOT an asset

Four kinds of data live inside the VNContext instead of being separate assets. You edit them in the Beasty VN window, not in the Project window, and you never create a file for them.

Variable definitions

Edited in the Variables tab. One VariableDefinition per variable.

FieldMeaning
keyThe store key. No prefix.
kindPlayerInput, Fixed, Enum or Computed.
valueTypeString, Int, Float or Bool.
defaultValueThe value at the start of a new game.
promptAtRuntimeAsk the player for it when the game starts.
allowedValuesThe domain of an Enum variable.

See Variables and conditions and Variable keys.

Dictionary entries

Edited in the Dictionary tab. One DictionaryEntry per token: key, defaultValue, playerEditable.

See The dictionary.

Item definitions

Edited in the Items tab.

FieldMeaning
idThe item id. Also the inventory key item.<id>.
iconThe inventory sprite.
kindKey or Consumable.
maxQuantityThe cap. Give and Take clamp to it and to 0.
nameKey, descriptionKeyLocalization keys.
onUseuseCondition, cannotUseMessageKey, effects, jumpToScene, jumpToNodeId, consumeAmount.

See Items and inventory.

Character variable fields

A CharacterVariableField appears either in the CharacterVariableSchema (every character gets it) or in one CharacterDefinition (only that character has it).

FieldMeaning
keyThe field name. The store key is @char:<id>:<key>.
typeString, Int, Float or Bool.
defaultValueThe starting value.
showOnStatsShow it on the character’s stats screen.
editableLet the player change it there.
clamp, min, max, stepOptional bounds.

See also