Skip to content

Character Autogen Service

Generate characters for a campaign using AI-assisted character creation.

Usage

from vclient import character_autogen_service

autogen = character_autogen_service(
    user_id="USER_ID",
    campaign_id="CAMPAIGN_ID",
    company_id="COMPANY_ID"
)

Methods

Method Returns Description
list_all() list[ChargenSessionResponse] List all sessions for a campaign
get(session_id) ChargenSessionResponse Retrieve a single session
generate_character(*, character_type, ...) Character Generate a single character
start_chargen_session() ChargenSessionResponse Start an interactive session
finalize_chargen_session(session_id, selected_character_id) Character Finalize and select a character

Generate Character Parameters

Parameter Type Required Description
character_type CharacterType Yes Type of character (PLAYER, NPC)
character_class CharacterClass No Class (VAMPIRE, WEREWOLF, HUNTER, MORTAL)
experience_level AutoGenExperienceLevel No Experience level
skill_focus AbilityFocus No Primary skill focus
concept_id str No Character concept ID
vampire_clan_id str No Vampire clan ID
werewolf_tribe_id str No Werewolf tribe ID
werewolf_auspice_id str No Werewolf auspice ID

Interactive Sessions

Use start_chargen_session() to generate multiple character options at once, allowing your users to choose their preferred character from several AI-generated alternatives.

List & Retrieve Sessions

# List all active chargen sessions for this campaign
sessions = await autogen.list_all()

# Retrieve a specific session by ID
session = await autogen.get(session_id="SESSION_ID")
print(f"Session expires: {session.expires_at}")
print(f"Characters available: {len(session.characters)}")

Example

# Generate a single character
character = await autogen.generate_character(
    character_type="PLAYER",
    character_class="VAMPIRE",
    experience_level="NEONATE"
)

# Use an interactive session for multiple character options
session = await autogen.start_chargen_session()
print(f"Session expires: {session.expires_at}")
print(f"Characters available: {len(session.characters)}")

# Finalize by selecting one of the generated characters
final_character = await autogen.finalize_chargen_session(
    session_id=session.id,
    selected_character_id=session.characters[0].id
)

See Response Models for Character and ChargenSessionResponse.