beasty-visual-novel / production / vn-settings.md

VN settings

The project-wide defaults for the whole game: one asset, edited from two places, read at runtime.

Open it with Edit > Project Settings > Beasty VN, or with Tools > Beasty VN > Settings > Global Settings. Both edit the same asset (VNSettings, which lives in a Resources folder so the game can read it in a build).

Every setting below has a working default. You can ship without touching this page.

Shared context

SettingWhat it does
gameContextThe single shared VNContext for the whole game: the cast, the variables, the character schema, the dictionary, the story localization table, the screens, the items, the quest catalog, the music config. Because the settings asset lives in Resources, this is what makes the context resolvable at runtime even from a scene that does not reference it directly.

Change it when you have more than one context asset in the project and need to say which one is the game’s. Most projects have exactly one and never touch this.

Localization

SettingWhat it does
defaultLanguageThe language code the game starts in when the player has not chosen one (en by default). Also the source language for new projects.
autoDetectSystemLanguageOff by default. When on, a first-run player gets the operating system’s language IF the UI table has it; otherwise the default.
uiLocalizationThe GLOBAL interface translation table: menus, HUD, buttons, dialogs. Separate from the story table on the context.

See Localization for the startup order and the two tables.

Saving

SettingWhat it does
autosaveEnabledWhether the game autosaves at decisions. On by default.
autosaveAntiRollbackMarginSeconds. An autosave at the SAME position as the most recent one, within this margin, is skipped — so rolling back and re-picking the same option cannot flood the autosave ring. 2 seconds by default.
maxAutosavesHow many autosave slots the ring holds. When it is full, the oldest is overwritten. 6 by default.
saveSlotsPerPageHow many manual slots one page of the save screen shows. 6 by default.
saveManualPagesHow many manual pages are shown initially. The index grows automatically past this, without limit.
allowSaveNamingWhether the player may title a save. When off, a slot is labelled with its local creation timestamp.
defaultSaveThumbnailThe fallback image shown for a SAVED slot whose thumbnail PNG is missing or unreadable. Empty slots use the stock art on the slot prefab instead, not this.

See Saving and loading.

Rollback

SettingWhat it does
maxRollbackStepsThe maximum number of rollback steps kept in memory and persisted in the save. 20 by default. Raise it for a longer Back reach; it costs memory and save size.

Text scripts (.vnbeasty)

SettingWhat it does
spriteIndexFoldersProject-relative folders indexed for sprite NAME lookup in a .vnbeasty script.
audioIndexFoldersThe same, for audio clips.

Leave them empty and the system resolves the project’s Sprites / Audio folder, asking you if it cannot find one.

Note These folders keep names short and unambiguous — they are not a gate. An asset outside them still resolves by name project-wide. What the folders buy you is a small, clean namespace to type into.

See The text script.

Dialogue and text defaults

SettingWhat it does
typewriterCharsPerSecondTypewriter speed, in characters per second.
autoAdvanceWhether auto-advance starts on.
autoAdvanceDelaySeconds to wait on a line before auto-advancing.
defaultTextColor, defaultNameColorThe colours used when a character does not override them.
defaultFontSizeMultiplierScales the dialogue font.
defaultDeliveryStateThe delivery state used by a line that leaves it empty (Normal).

Text speed and auto-forward ranges

These bound the sliders the player sees in the preferences screen.

SettingWhat it does
textSpeedMin, textSpeedMaxThe characters-per-second range the text-speed slider exposes. At the maximum, text is instant.
autoForwardMin, autoForwardMaxThe seconds range the auto-forward slider exposes. At the maximum, the story does NOT auto-advance.
skipUnreadByDefaultThe default for “allow skipping unread text”. Read text can always be fast-forwarded.

Stage

SettingWhat it does
stageWidthThe world-space width characters are spread across.
characterBaseYThe Y characters stand at.
defaultCharacterScaleThe scale of a character that does not set its own.
backdropZSpacingThe world-space Z gap between backdrop layers, which gives depth without sorting layers.
anchorXNormalized X (0 = left, 1 = right) for the five named anchors: Left, CenterLeft, Center, CenterRight, Right.

Resolution and sprite sizing

SettingWhat it does
targetWidth, targetHeightThe design resolution (1920x1080 by default). The aspect-ratio enforcer reads it.
pixelsPerUnitThe pixels-per-unit used across the VN art.
characterHeightFractionThe fraction of screen height a stage character should occupy.
portraitHeightFractionThe fraction of screen height used as the (square) portrait size.

See Building and platforms for the aspect-ratio enforcer.

Free-roam button feedback

SettingWhat it does
freeRoamHoverZoomThe scale multiplier applied to a button sprite on hover.
freeRoamHighlightColorThe tint used to highlight an interactable.
freeRoamHoverTweenThe seconds the hover zoom/highlight takes.

See Interactables and doors.

Soft limits

SettingWhat it does
maxCharactersCharacters on stage at once.
maxBackdropLayersSprite layers in one backdrop.
maxBlocksPerNodeBlocks in one node. Exceeding it is reported by the validator.

See also