docs/current/rooms-and-stories.md
Download Markdown
A private room is an account-owned conversation combined with an authored scene. Runtime presentation selects approved identity, outfit, expression and placement records; it does not infer a default from the newest file on disk. Nineteen installed Gynoid identities share the room machinery while retaining their authored personalities and asset choices.
The Meet directory's nineteen presentation cards retain an opaque dark reading surface independently
of their character-color gradient. Missing or invalid theme values cannot make the text panel
transparent. MeetCardRenderingTests renders the compiled directory with synthetic characters;
Tests/Browser/meet-cards.test.cjs checks its real styles on desktop/mobile with valid, absent and
invalid palettes. This presentation rule does not edit Regular or Spicy character identities.
After an interrupted request, Resume reply checks for the saved answer and can retry an unfinished operation. It is not a read-only status check. Incomplete attempts are refunded; a completed retry uses the normal mode price. The protected draft and operation identity prevent duplicate settlement while the result is uncertain.
Desktop standard chat retains its existing configured and member-saved size, resize limits and
inline toolbar. Reply text, speech availability and other content changes do not refit the panel.
Only the existing mobile screen breakpoints (width at most 760px, or landscape at most 900px wide
and 500px high) group Thinking, interactions, Lead Moments and Private Videos under More.
The tray uses the same controls and handlers; Escape returns focus to More. Panel width does not
select a layout, and switching back to desktop restores its toolbar. The eight-rem input default,
separate desktop/mobile saved layouts, VN/mobile composer modes, recorded welcomes
and first-visit website videos retain their own behavior. Presentation ownership is
gynoid-room-chat-tools.js, gynoid-room-chat-tools.css and gynoid-room-chat-sizing.js.
Spicy Mode character cards
Every live chat widget offers ๐ถ๏ธ Spicy Mode, including Standard chat, VN chat and mobile voice/typing views. New chats start with it off. Turning it on selects that Gynoid's latest saved Spicy Mode card as the complete identity prompt; turning it off restores the regular card. The regular identity, built-in personality and interaction-role instructions are excluded while the alternate card is selected. Conversation history and the member's other explicit chat settings remain. Scripted Lead dialogue is authored content and does not change with this switch. The on/off confirmation dismisses automatically after five seconds. A newer room message replaces and cancels that timer. Standard chat starts with an eight-rem input area across Gynoid rooms; members can still resize it, and compact/mobile limits keep the composer within the available space.
Selection belongs to the account, Gynoid and chat in the current browser tab. It survives a reload within that tab and does not change another member's card or the globally active identity. Controls stay synchronized across widgets and lock while a reply is pending. Resume/retry retains the original operation's selection, including regular mode for older pending records. Missing alternate cards disable the button; server requests for a missing card fail before credit reservation.
Staff paste the complete alternate card in Character Card Studio.
The existing identity revision store retains alternate cards under website-character-card.spicy.v1;
the highest version is selected explicitly for private Site chat. IsActive continues to identify
only the canonical regular card, so other consumers keep their existing identity. No new database
schema or migration is required. Runtime ownership remains in GynoidIdentityCardService,
GynoidRegistryContextService and GynoidConversationService; browser selection belongs to
gynoid-room-spicy-mode.js, with mobile composer placement in gynoid-room-mobile-composer.js.
On October 23, 2026, the owner requested and saved distinct temporary cards for all 19 published Gynoids, limited to NES/SNES games from 1980โ1999. Private unpublished characters were excluded. All regular cards remained unchanged. Live LM Studio testing confirmed Akari redirected a Switch question to NES games with the mode on and resumed her Gynara leadership personality with it off. Desktop, keyboard, reload and mobile voice/typing checks cover the shared switch. These placeholders can be replaced independently through Studio without changing application code.
Stable room content
A conversation binds to its room release/hash, welcome and voice selection. Later publication does not silently replace that retained snapshot. Studio staff playtests have a separate audience and snapshot. Editors can work on assigned drafts and playtest; Admin approval/publication uses the exact reviewed snapshot without replacing newer draft work.
The room release contains the main room and selected Lead locations, including reachable choices. A chosen route cannot enter an unpublished location. Private drafts may be incomplete; a playable or published graph must satisfy media, ownership and routing checks. Missing retained content produces a recoverable failure instead of substituting unrelated scenery.
Authored stories and live chat
Gynoid anthology stories are free Lead Moments, including retained versions and recorded dialogue. The old forty-credit anthology admission rule is retired. Dedicated future VN productions keep their separate catalog. Hybrid AI is optional and explicit; a free scripted route remains available.
A Date with Akari's live Hybrid openings and replies use a 4,096-token output budget in both the
original a-date-with-akari and current a-date-with-akari-definitive editions, allowing complete
multi-sentence and multi-paragraph conversations. AkariDateResponsePolicy replaces the
legacy short-turn ceiling for these editions, including releases captured with an older small
runtime budget. Explicit Admin context caps still apply. Responses are validated against the existing
12,000-character VN transcript limit instead of the generic three-paragraph limit. Captured character
cards, scene history, grading and progression remain unchanged; other stories retain their limits.
An LM Studio output-limit stop triggers the existing single repair attempt even if the returned JSON
looks complete. A second cutoff fails the turn instead of publishing or charging for partial dialogue.
Malformed quoted JSON cannot fall back to comma-delimited bare text; an unfinished message is rejected
and repaired rather than reduced to its opening phrase. The resizable reply pane retains complete text.
Dedicated games belong on Drakima Arcade (/DrakimaArcade). Character profiles reuse
the same published card for matching non-combat visual novels, including A Date with Akari:
configured cover artwork, retained release summary and free Play admission share the
_VisualNovelAdventureCard partial. A matching card replaces the older profile composition rather
than duplicating it. Their hero prioritizes Talk and Play before secondary media actions. A read-only
/DrakimaArcade/games/{key} landing page keeps the selected published game through sign-in; only the
existing Play POST admits a run. Staff-only private playtests retain their separate profile cards.
Directory and profile published-story counts use the same verified, playable non-combat catalog
cards; private previews and metadata without an available release do not inflate that count.
Published Beta releases appear as Beta playtest, with free
entry for signed-in, verified-adult members. A playtest label describes maturity; it does not bypass
release integrity, account ownership or save protection. Staff profile previews use the live
theme's audience flag for labels and distinguish private playtest counts from public releases, even
when an older immutable release snapshot recorded a different audience. Public filtering stays live;
the underlying release snapshot is not rewritten for a presentation change.
Lead discovery belongs to the account and character; a particular run belongs to an owned chat and room revision. Completion requires its terminal choice. Authored continuity supplements the selected chat rather than replacing earlier conversation history. Returning to the main room restores its actual scenery before the return control disappears.
VN Maker authorship
VN Maker owns Project, Scene, Story, Experience, Playtest and Publish. Create artwork in the independent Gynoid Creation Core, export approved PNG files, and use Project > Import Assets to bring chosen files into a novel. Creation Core projects and GPU work stay on the creator's PC. Import is an explicit upload; the website does not pull from ComfyUI or automatically ingest Creation Core ZIP bundles.
To use an imported expression in the private author playtest, add that character variant to the scene's layer set, give it the matching expression key, and align it with the neutral character layer. Set the story line's expression to that key. An asset in the library alone is not a placed scene layer. Scene and line preview flags do not publish the private novel; release remains a separate reviewed action.
Akari's Writing subject selector offers general assistance plus Story, Dialogue, Choices,
Cast and Lore, Scene Composition, Artwork and Imports, Audio, and Playtest/Release. The bounded,
server-owned references in VisualNovelAuthoringTopics accompany the existing authorized
project context. Subject keys and the catalog revision are validated and bound to the operation
fingerprint. Unknown or stale selections fail before generation. A topic changes advice, not
context scope, research consent, project membership, or write authority. Text proposals still
require explicit human review/application. Configurable Akari prompts retain the current workflow
and selected subject as a mandatory appended contract.
Website artwork generation and retry are retired. Runtime composition registers
RetiredVisualNovelArtJobService and no artwork worker or processor. Legacy database records,
receipts, candidates, cleanup, review, export and placement remain usable; generation forms and
provider-health controls are removed from VN Maker. Existing queued records are retained and
can be cancelled, but are not resumed by a website host. Legacy provider/processor code remains
only for compatibility and regression coverage, not as an available authoring workflow.
Gynoid identity, outfits, rooms and reactions remain organized by the Gynoid Wizard. VN Maker uses those resources to author a separate novel without changing or publishing its source Gynoid.
Presentation and audio
Combat game entry artwork may be set through GameCatalog:TitleScreens:{themeKey}:Url.
Valkyrie's call sign screen uses the owner-selected Dome ensemble artwork also shown on its Arcade
card. The complete image fits inside the 16:9 stage without cropping its title or Maidens. Unconfigured
games use their published title asset; candidate author previews always show their authored asset.
This website presentation setting does not rewrite release media, story scenes or saved runs.
The A Date with Akari player adapts the rooms' glass dialogue pane. Its desktop 16:9 stage sizes
to the space below the website navigation and story heading, while native fullscreen retains its own
viewport fit. Standing scenes use a wide bottom pane (70% width, capped at 1200px; 26% height, bounded
to 240โ270px on desktop). Dinner starts on the left at 6% left and 20% top, with 34% width bounded to
400โ620px and 30% height bounded to 260โ320px. All presets are clamped inside the actual stage.
Visit-local adjustments remain separate for each scene and return when revisited.
Its lighter glass reduces the previous background opacity by 40% (80% becomes 48%; a fresh default is
49%) and uses a soft 4px blur while leaving text opaque. Textbox Opacity supports 25โ95% and remembers
later adjustments separately from other VNs. Desktop choices appear at center right. If that position
would overlap the movable dialogue pane on a short stage, they fit into a free vertical band above or
below it, with a bounded scrollbar for longer lists. The pane keeps the reader's chosen geometry;
choice placement is recalculated rather than saved. Compact 16โ18px choices use the Balcony's rounded rose and
amethyst styling, with no redundant response heading. Phone widths up to 700px, and short landscape
windows up to 900px wide by 500px high, use a separate reading flow: bounded 16:9 artwork, then the
complete dialogue and response list. Short landscape caps only the artwork strip; the reading surface
keeps the available width. Choices use page scrolling instead of overlapping the dialogue or hiding in
a small nested scroll area. Name entry, optional-AI invitations and completion also use this flow.
Phone pane movement and resizing are suspended, preserving each desktop scene's visit-local geometry
for the return to desktop. Character and furniture movement use the artwork viewport rather than the
height of the reading page; normalized preferences and authored assets are unchanged.
Drag its heading row to move the pane or its labeled lower-right Resize grip to resize it.
Arrow keys work on either focused handle; Shift increases the step and Home resets size and position.
The game menu handles scene controls and history. Settings contains Reset dialogue view,
Hide dialogue and Show dialogue. Geometry remains inside the stage after resizing or
rotation. These visit-local presentation controls do not advance the story, spend credits, modify
saves or change a release. Legacy VNs and combat retain their own controls. The dedicated Web owners
are visual-novel/memory-dialogue.js and visual-novel/memory-dialogue.css.
The pane shows a scene/location label instead of treating a branching script-line index as progress.
Its visible Next button and Enter hint reveal the current text or advance through the normal story
path; choices retain their own controls. The button is unavailable beneath game menus, entry/completion
overlays, the explicit AI/free-story decision and live conversation. Raw line positions remain available in save/history metadata.
The ending keeps its artwork and actions inside the stage, reports story completion separately from
the reached authored ending, and offers Replay Story or a return to the character. Its covered
Menu button is hidden and focusing the ending title does not scroll the page. Covered stage controls
are inert while the ending is visible; Replay restores them without restricting page navigation.
Standing scenes center Akari at a closer 150% default with a -6% vertical offset from the opening scene's
camera height. The walk, overlook and ending normalize their authored top to the opening's 128/1080
anchor so the same standing artwork keeps its visible size and headroom after dinner. The reviewed dinner
presentation places her slightly right at 95% size. The version-3 posture preferences restore standing
framing independently of dinner adjustments. A live reply's unprefixed emotion cannot change posture.
Drag Akari to reposition her during scripted scenes or live AI replies. The menu's Settings
contains the size slider (60โ180%) and Reset Akari. Focus her for arrow-key movement (Shift moves
farther), +/โ resizing, Space to hold the Lift reaction, and Home to reset position and size.
Local preferences are shared by posture, so a seated emotion change retains the reader's framing.
The optional CutIn / interaction-lift (seated) and interaction-lift-standing assets, owned by Akari,
are captured in the immutable release;
the temporary Lift restores the latest authored or AI expression after release or cancellation.
These controls spend no credits, alter no story state and play no retired emote audio. Their owner
is Public Web's visual-novel/character-controls.js; the shared player delegates sprite updates to it.
Click Next, the dialogue pane's text or its empty space to reveal or advance; background, character and furniture
clicks never advance this Akari story. Focus the text and press Enter to continue. Enter also works on the speaker
heading; typing, widget buttons, choices and live AI retain their own input rules. Held keys never skip
multiple lines.
The dinner table and seat have independent controls under Menu > Settings > Scene composition.
Choose Furniture, enable Move selected furniture, close Menu and drag the selected object.
Arrow keys move it, Shift increases the step, +/โ resizes proportionally, and Home resets that object.
The menu also offers size (25โ200%), horizontal/vertical offsets, and selected/all-furniture resets.
Only the selected furniture receives pointer input during adjustment; its authored depth remains intact.
Preferences survive dialogue/emotion changes, reloads and viewport resizing, scoped to the exact release,
scene and layer. A new release starts from its reviewed or authored defaults so adopting a composition cannot apply
old offsets twice. The reviewed retained dinner art starts with a 75% banquette at source (315, 42)
and an 80% table at (300, 370). This presentation overlay applies only to the matching original geometry;
new authored geometry keeps its own framing. Its versioned preference scope starts from these defaults
once, retains subsequent adjustments, and Reset restores them. Copy composition and Download composition export source-canvas geometry with
the theme, scene, layer and release identity for a later authoring update. They do not publish defaults,
alter story saves or spend credits. The dedicated owners are visual-novel/scene-prop-controls.js and
visual-novel/akari-scene-framing.js; published content snapshots remain immutable.
The current Akari edition uses complete prerecorded dialogue in place of its short emote cues.
Its narration is also prerecorded with Akari's approved cloned voice while retaining the Narrator label.
Scripted voice playback remains free. Hybrid replies use the existing captured cast voice and paid
speech service: Generate speech costs 1 credit for a complete successful response, including all
packets; replay is free. The response header's voice icon generates or replays the current reply and
becomes Stop during playback. Speech is requested explicitly; the automatic-speech checkbox is removed.
The chat composer displays the live wallet balance. Akari's desktop live chat uses translucent glass, a draggable
heading and a corner resize handle, with arrow keys, Shift and Home matching the scripted pane controls.
The live reply and speaker name use the lavender dialogue color (#e3bfff). The reply has no colored
left rule or inner fill; its transparent speaker heading scrolls with the reply to avoid covering text.
Desktop defaults reserve the available stage height for the header, reply, composer and action row;
the reply scrolls within its own area. Member-sized smaller panels retain an outer-scroll fallback.
Continue story and Send share a compact action row, with Send on the right. Minimize, side switching,
transcripts and explicit speech controls remain available. On phones, the full-width live panel follows
the artwork; its reply, composer and actions use page scrolling, with 44px tap controls. Pane dragging,
resizing and side switching pause until desktop returns. Menus fit the keyboard-visible viewport;
keyboard height changes do not become a saved layout. Native fullscreen retains a scrollable reader.
Returning to the free story locks the composer and both actions until the checkpoint settles;
rapid clicks share one return, and a failed return keeps the draft and enables a safe retry. The shared
visual-novel/hybrid-return.js owns that transition and ignores stale completions.
The exchange counter identifies conversation
exchanges. Once a reply has arrived, Reply received. Revealing textโฆ distinguishes its display animation
from provider waiting; Show full reply in the response heading completes that animation immediately.
Instant text speed displays the complete reply without animation. Revealing available text makes no new
AI or speech request. The shared visual-novel/reply-reveal.js owns animation completion and stale-timer
isolation. visual-novel/floating-panel.js owns bounded desktop scene-local geometry for both panels;
visual-novel/memory-viewport.js owns the phone policy and bounded artwork coordinate surface.
Phone/device keyboard acceptance remains separate from source and emulated-viewport checks. Failed speech
generation does not consume a credit. Character reference updates require a deliberate VN voice
capture and a new immutable release.
This edition uses the owner's A Date with Akari Theme Music as one continuous theme-level loop
across all five scenes at 30% authored gain. The 191.12-second WAV master remains external; VN Maker
captures its web MP3 derivative in each new immutable release. The music receipt is
Content/VisualNovels/a-date-with-akari-music-v1.json. Earlier music cues remain unpublished drafts;
there are no scene-specific music overrides. Only the dinner scene retains ambience (12% gain).
The novel mixer adapts the rooms' speech suppression: actual
recorded or generated voice playback lowers music and dinner ambience to 65% of their current level,
with a 120 ms attack and 450 ms recovery. Overlapping voices, stops, errors, mute, sliders and scene fades
share that gain owner; a late fade cannot undo a player's mute or volume preference.
All 19 Gynoids use Akari's approved indoor visible-art framing: desktop artwork starts 6% below the stage top and spans 128% of its height; narrow layouts use 10% headroom and 82% height. Main rooms keep the character at 26.5% stage width, while indoor Lead scenes center her. Expanded desktop chat starts at 48% left, 26% top, 40.5% width and 62.5% height. Indoor VN panels start centered near the bottom, at 62.5% width and 21% height (bounded for small stages). Standing and seated poses, wardrobes, Poke and automatic Lift fits retain their scene's visible height and center. Authored Studio placements and the reviewed seated Lift body correction remain supported.
New chats always choose front-family artwork, even when a previous conversation used Side or Rear.
In private chat, a member's standalone Cakie mention also requests Rear, using the same local
facing policy as turn around. It overrides a conflicting model angle and survives completed-reply
retries. Quoted examples, negations and the personal aliases MimiCakie / Cakie-chan do not
trigger the cue; explicit facing commands retain their usual precedence. The existing outfit and
posture rules select available rear artwork, or the supported seated fallback.
Akari's full-back artwork is reserved for an explicit rear request in the current message
(including Cakie) or a manual Rear angle selection. Her over-the-shoulder rear poses remain
available for both ordinary conversation and rear requests in every installed outfit.
A model-selected angle, saved Rear preference or earlier request cannot enable full-back artwork
on subsequent ordinary replies. Completed retries derive this permission from the stored member
message; legacy expression rendering also substitutes an over-the-shoulder pose for rear-neutral.
Facing preferences belong to each conversation; resuming history retains that conversation's selection.
The version-2 layout scopes apply the new sprite/chat and VN defaults once; later member adjustments
remain saved. Reset uses the canonical outfit anchor, including when the visible outfit uses a different
canvas shape. Later passages in the same location/posture retain member framing. Returning from a
Lead restores the main-room frame and facing preference.
Balconies use a separate standing composition: 100% sprite size, 54% vertical position, at 34% or 66%
horizontal position according to the reviewed railing/background. Akari stands on the right. The desktop
Standard chat starts on the opposite side at 40.5% width and 62.5% height, with separate saved preferences
for each balcony side. Returning indoors restores the main chat geometry. Phones center the character
and place Standard chat below it; members can still choose VN mode and move or resize either widget.
Balcony entry selects the active outfit's reviewed rear standing entry marked balconyOpening: true.
Managed packs without that optional flag prefer lead-the-way, then invite-follow, then rear standing
conversation artwork. All 31 installed outfits have a reviewed invitation and at least five distinct rear
conversation images. No separate props or seats render there.
This presentation overlay also corrects retained seated balcony releases without rewriting story text,
recordings or images. Existing narrative references to chairs and furniture painted into backgrounds
are not altered. Named balconies and the reviewed observatory/overlook artwork are recognized without
classifying a room from its story prose; unknown balcony artwork uses its authored left/right placement.
The nineteen published characters have reviewed romantic and philosophical balcony invitations in
Content/Gynoids/balcony-conversations-v2/, owned by GynoidBalconyConversationCatalog.
Each has a voiced invitation, three first responses, a second choice point and two concluding responses
(133 ChatterBox recordings across the cast). The member can type a live response at any point. Recorded
prose avoids member-name placeholders so spoken and displayed words agree.
In VN Maker, Preview restored balcony adds these nodes to the current release, preserving the
private draft and every existing story. Review the playtest, then use the usual Admin publication action.
An explicit story catalog receives a separate free invitation entry. If original sprites were moved
into outfit folders, the preview resolves calibration references only to a unique existing original
sprite for that character; unresolved or ambiguous paths still prevent publication. Retained releases
and unfinished drafts are never rewritten by this repair. The original v1 catalog identifies unchanged
installed invitations: only exact legacy text/choice matches receive the voiced continuation upgrade.
An edited invitation is left intact; reviewed publication creates another immutable release.
Readiness accepts either a saved complete character card or the structured identity fields. Standing
artwork can come from active sprite packs or the installed performance manifest, but must still be an
owned, existing PNG that passes inspection. A seated pose cannot satisfy standing readiness.
The dedicated Balcony room button opens the invitation in Standard chat with optional conversation
starters and a free-text composer. It passes the chosen moment into live chat and suppresses idle story
interruptions while outside. Choices lead to recorded responses, then an explicit Continue control
opens the second choice point. Ordinary live-chat speech remains a separate member action or opt-in.
Standard balcony choices have a separate dialogue gap, rounded rose-and-amethyst buttons, wrapping
labels and visible keyboard focus. Their styling is scoped to balcony topics in gynoid-room-lead.css.
Anthology moments remain separately available. Generate with Render-DrakimaRoomVisits.py --kind balconies
and verify with Test-DrakimaLeadVoiceWaves.mjs --balconies before staging publication.
Existing chats keep their pinned content; open a new chat after publishing. Aster's private authored
balcony is retained separately, and Lyra's unfinished draft is outside this installed restoration.
Seats use the same stage-height scale as their characters, preserving authored 16:9 proportions on phones, windowed and wide displays. Automatic fitting targets 35โ110% of the seated figure's visible height, within the existing prop size limits, before aligning its authored contact point. Shallow benches and sitting walls can remain below that target at the maximum width. Transparent padding does not determine the apparent size. Seat preferences have a refreshed storage scope; new manual size/position adjustments remain available. Lift/Poke never move or resize the furniture.
Framing ownership: gynoid-room-scene-defaults.js owns facing, balcony classification and side presets;
gynoid-room-balcony-chat.js owns Standard balcony topics and layout preferences;
gynoid-room-lead-chat-controls.js mirrors the shared reply into the optional VN composer;
gynoid-room-choice-dock.js owns VN geometry/preferences; gynoid-room-sprite-framing.js owns the indoor
camera target; gynoid-room-performance.js
owns pose/reaction fitting, and gynoid-room-seat-framing.js plus gynoid-room-props.js own furniture
proportions. Retained room releases and earlier image files are unchanged. Versioned replacements and
review evidence are recorded in Content/PublicAssets/balcony-sprites-20260928.json.
Standard and VN chat show the same completed reply and share live speech state. New chat and history switches preserve the room shell/music owner while replacing release-owned content. Late artwork, speech or fetch events from an old chat cannot affect the new one. A restored disposed browser page reloads its owned conversation rather than reusing abandoned listeners.
The room's first-use guide starts with one short invitation; controls and memory guidance expand on demand. The desktop windowed stage fits below its actual page position with a 16px bottom margin; fullscreen keeps its own fit. History search filters the loaded conversation names and dates without opening transcripts or calling AI. Renaming a focused result out of the active filter returns focus to search. Pins stay first; recent chats use activity-date groups, while unused drafts have their own group. Owner names stay intact and unnamed chats use readable creation dates. Crossing the narrow/desktop boundary saves the old chat layout before restoring the destination's per-view preference, while preserving the visible character and unsent draft. Resizing back restores later member adjustments and the character's keyboard focus attributes. Long chat prose has a bounded reading width. Compact rooms cover widths through 760px and short landscape viewports through 900 ร 500px. Their voice-first VN composer exposes visible Type and Voice controls with 44px actions, sharing the existing draft and send owner. A lifecycle-owned visual-viewport fit keeps the room and its overlays above a phone keyboard; this temporary fit is not saved as member geometry and does not take over native pinch zoom. Standard chat uses adjacent response and composer columns in short landscape. Real phone keyboard/device acceptance remains separate from the viewport-owner regression harness and desktop browser emulation.
The room Menu's expandable Voice submenu groups Voice on/off, Auto speech and a Voice volume
slider with a percentage display, independent of Music volume. It opens like the Music submenu.
It defaults to 100% and remembers the member's setting on this device across rooms and visits, including
0% for silent playback. Adjustments apply immediately to the current voice and subsequent speech packets,
welcome/farewell recordings, Moments, balcony dialogue and voiced reactions in Standard and VN chat.
The existing Voice and Auto speech switches still control playback and generation; changing volume
does not request speech, change credit charging, or change music, video, text-blip or interaction-effect
levels. Storage restrictions leave the slider usable for the current visit. The owner is
gynoid-room-voice-volume.js, composed into the room's common playback path and farewell player.
Prerecorded welcome/farewell, Poke, Lift and emoji reactions use the character's authored text, voice and recording manifest. Exit lets a farewell finish before fading and navigating. Normal visits do not generate a new greeting through TTS. Paid generated speech remains independent of room sounds.
Character-card saves preserve the complete website-authored identity. Raw v2 cards supersede the older relationship overlay. Startup repair must not overwrite an explicitly saved website card.
Implementation evidence: src/DrakimaCore.GynoidConversations.Application,
src/DrakimaCore.GynoidConversations.Web, Services/Gynoids, Services/VisualNovel,
Content/Gynoids, and Studio's Gynoids/VisualNovelMaker controllers.