> ## Documentation Index
> Fetch the complete documentation index at: https://docs.npcbuilder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear un nuevo personaje

> Crea un nuevo personaje dentro del juego y mundo especificados. Proporciona detalles como edad, descripción, género, objetos, eventos, misiones, rol, tono y rasgos.




## OpenAPI

````yaml /es/api-reference/openapi.yaml post /context/characters/{game_id}/{world_id}/{character_id}
openapi: 3.0.3
info:
  title: NPC Builder - API
  description: >
    Esta es la especificación más reciente de la API de NPC Builder que define
    una API integral y lista para producción para NPC Builder. La API se divide
    en tres servicios principales:


    **Servicio de Interacciones**  
      - **Propósito:** Permite conversaciones dinámicas y con conciencia de contexto entre jugadores y personajes NPC.


    **Servicio de Contexto**  
      - **Propósito:** Gestiona entidades del juego para construir y mantener entornos inmersivos.
      - **Incluye:**  
        - **Mundos:** Crear, actualizar y eliminar mundos del juego.
        - **Regiones:** Definir y gestionar regiones dentro de un mundo.
        - **Localizaciones:** Gestionar ubicaciones específicas dentro de las regiones.
        - **Personajes:** Gestionar el ciclo de vida (creación, actualización, eliminación) de personajes NPC.


    **Servicio de Sesiones**  
      - **Propósito:** Gestiona sesiones de jugadores para mantener el contexto del juego y rastrear interacciones.


    En conjunto, esta especificación sirve como una guía detallada para
    aprovechar los servicios de NPC Builder—permitiendo a los desarrolladores
    crear experiencias ricas e interactivas mientras gestionan de forma
    eficiente contextos y entidades del juego.
        _Debes ceñirte a la estructura de datos definida; de lo contrario puedes encontrar errores no controlados_


    **Consulta los esquemas de cada solicitud para encontrar los valores
    permitidos de ciertas propiedades.**


    _Limitaciones técnicas: La actualización y eliminación del conocimiento y
    las relaciones de los personajes no están disponibles a través de la API.
    Deben gestionarse desde el frontend de nuestra aplicación._


    Algunos enlaces útiles:

    - [Nuestro sitio web](https://npcbuilder.com)

    - [La app](https://app.npcbuilder.com)
  termsOfService: https://npcbuilder.com/terms-and-conditions/
  contact:
    email: support@npcbuilder.com
  version: 1.6.0
servers:
  - url: https://app.npcbuilder.com/api
    description: >-
      API de producción para contexto, sesiones y endpoints que no son de
      interacciones
security: []
tags:
  - name: Interactions
    description: >-
      Gestiona las conversaciones de texto de tus NPCs y sus respuestas
      interactivas.
  - name: Characters
    description: >-
      Gestiona personajes de tu juego, incluyendo creación, actualización y
      eliminación.
  - name: Worlds
    description: Crea y gestiona mundos inmersivos para tu juego.
  - name: Regions
    description: Define y gestiona regiones dentro de tus mundos.
  - name: Locations
    description: Gestiona ubicaciones específicas dentro de las regiones de tu juego.
  - name: Sessions
    description: >-
      Crea, recupera y elimina sesiones de jugadores para una mejor gestión del
      juego.
paths:
  /context/characters/{game_id}/{world_id}/{character_id}:
    post:
      tags:
        - Characters
      summary: Crear un nuevo personaje
      description: >
        Crea un nuevo personaje dentro del juego y mundo especificados.
        Proporciona detalles como edad, descripción, género, objetos, eventos,
        misiones, rol, tono y rasgos.
      parameters:
        - name: game_id
          in: path
          required: true
          description: El identificador único del juego.
          schema:
            type: string
            example: game123
        - name: world_id
          in: path
          required: true
          description: El identificador único del mundo.
          schema:
            type: string
            example: world456
        - name: character_id
          in: path
          required: true
          description: El identificador único del personaje.
          schema:
            type: string
            example: character789
        - name: session_id
          in: query
          description: (Opcional) El ID de sesión del jugador.
          required: false
          schema:
            type: string
            example: 60Z5aZjIuFlyYbjbZZKe
      requestBody:
        required: true
        description: Los datos necesarios del personaje para crearlo.
        content:
          application/json:
            schema:
              type: object
              properties:
                age:
                  type: string
                  description: La categoría de edad del personaje.
                  enum:
                    - infant
                    - child
                    - teenager
                    - youngAdult
                    - adult
                    - middleAged
                    - elderly
                  example: adult
                description:
                  type: string
                  description: Una breve descripción de los antecedentes del personaje.
                  example: Un valiente guerrero con un pasado misterioso.
                gender:
                  type: string
                  description: El género del personaje.
                  example: Male
                model:
                  type: string
                  description: >-
                    El modelo de IA usado para las interacciones del personaje.
                    Los modelos premium solo están disponibles para algunas
                    suscripciones.
                  enum:
                    - standard
                    - premium
                  example: standard
                filters:
                  type: object
                  description: >
                    Filtros de contenido estructurados aplicados a las
                    respuestas del personaje. Activa o desactiva las categorías
                    individuales para controlar lo que puede decir.
                  properties:
                    active:
                      type: boolean
                      description: Activa o desactiva todos los filtros del personaje.
                    violence:
                      type: boolean
                      description: >-
                        Refuerza contenido violento o sangriento en las
                        respuestas del personaje.
                    sexual:
                      type: boolean
                      description: >-
                        Refuerza contenido sexual o sugestivo en las respuestas
                        del personaje.
                    drugs:
                      type: boolean
                      description: >-
                        Refuerza referencias al consumo de drogas o parafernalia
                        en las respuestas del personaje.
                  required:
                    - active
                    - violence
                    - sexual
                    - drugs
                  example:
                    active: true
                    violence: false
                    sexual: false
                    drugs: true
                items:
                  type: array
                  description: >
                    Lista de objetos asociados al personaje. Cada objeto debe
                    seguir uno de los esquemas predefinidos según su tipo.
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: El tipo de objeto, que determina su esquema.
                        enum:
                          - trade
                          - action
                        example: trade
                    required:
                      - type
                    oneOf:
                      - description: Esquema para objetos de tipo "trade"
                        properties:
                          type:
                            type: string
                            enum:
                              - trade
                            example: trade
                          itemName:
                            type: string
                            description: El nombre del objeto de intercambio.
                            example: Sword
                          description:
                            type: string
                            description: Una descripción detallada del objeto.
                            example: Una espada afilada.
                          unit:
                            type: string
                            description: La unidad en la que se mide el objeto.
                            example: Pieza
                          value:
                            type: string
                            description: El valor o coste del objeto.
                            example: '100'
                        required:
                          - itemName
                          - unit
                          - value
                      - description: Esquema para objetos de tipo "action"
                        properties:
                          type:
                            type: string
                            enum:
                              - action
                            example: action
                          itemName:
                            type: string
                            description: El nombre del objeto de acción.
                            example: Move
                          description:
                            type: string
                            description: Una descripción de la acción.
                            example: Mover a una posición
                        required:
                          - itemName
                          - description
                events:
                  type: array
                  description: >
                    Lista de eventos asociados al personaje. Cada evento debe
                    ajustarse al esquema definido para su tipo.
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        description: El tipo de evento.
                        enum:
                          - item
                          - action
                        example: item
                    required:
                      - type
                    oneOf:
                      - description: Esquema para eventos de tipo "action"
                        properties:
                          type:
                            type: string
                            enum:
                              - action
                            example: action
                          eventName:
                            type: string
                            description: El nombre del evento.
                            example: Attack
                          description:
                            type: string
                            description: Detalles del evento.
                            example: Acto de violencia contra otra persona.
                        required:
                          - eventName
                      - description: Esquema para eventos de tipo "item"
                        properties:
                          type:
                            type: string
                            enum:
                              - item
                            example: item
                          eventName:
                            type: string
                            description: El nombre del evento.
                            example: Give
                          description:
                            type: string
                            description: Detalles del evento.
                            example: Proporcionar un objeto a una persona.
                        required:
                          - eventName
                name:
                  type: string
                  description: El nombre visible del personaje.
                  example: Aragorn
                quests:
                  type: array
                  description: Una lista de misiones asociadas al personaje.
                  items:
                    type: object
                    properties:
                      description:
                        type: string
                        description: Breve descripción de la misión.
                        example: Recupera el artefacto perdido.
                      objective:
                        type: string
                        description: El objetivo principal de la misión.
                        example: Encontrar y devolver el artefacto.
                      reward:
                        type: string
                        description: La recompensa por completar la misión.
                        example: 500 monedas de oro
                role:
                  type: string
                  description: >
                    El rol del personaje en el juego. Determina cómo interactúa
                    con la historia.
                  enum:
                    - noRole
                    - protagonist
                    - antagonist
                    - secondaryCharacter
                    - tertiaryCharacter
                    - mentor
                    - enemy
                    - villain
                    - rival
                    - shopkeeper
                    - healer
                    - questGiver
                    - innkeeper
                    - guard
                    - familyMember
                    - loveInterest
                    - scientist
                    - politician
                    - criminal
                    - explorer
                    - wizard
                    - ghost
                    - animalCompanion
                    - artificialIntelligence
                  example: protagonist
                tone:
                  type: string
                  description: El tono o estilo del diálogo del personaje.
                  enum:
                    - formal
                    - casual
                    - sarcastic
                    - mysterious
                    - emotive
                  example: mysterious
                traits:
                  type: array
                  description: >-
                    Lista legacy/de rasgos básicos. Si se envía sin
                    personality_theory, la API guarda el personaje como
                    basicTraits.
                  items:
                    type: string
                    example: brave
                personality_theory:
                  type: string
                  description: Marco de personalidad utilizado por interacciones.
                  enum:
                    - basicTraits
                    - bigFive
                    - darkTriad
                    - dndAlignment
                    - mbti
                    - enneagram
                  default: basicTraits
                  example: basicTraits
                personality_dimensions:
                  type: object
                  description: >-
                    Valores de dimensiones para el personality_theory
                    seleccionado. basicTraits usa traits y un objeto vacío.
                  additionalProperties:
                    type: integer
                  example:
                    machiavellianism: 4
                    narcissism: 2
                    psychopathy: 1
                speech_pattern:
                  type: object
                  description: >-
                    Controles opcionales del estilo de habla consumidos por
                    interacciones.
                  properties:
                    vocabulary_level:
                      type: string
                      enum:
                        - simple
                        - moderate
                        - sophisticated
                        - archaic
                      example: sophisticated
                    sentence_length:
                      type: string
                      enum:
                        - terse
                        - average
                        - verbose
                      example: terse
                    verbal_quirks:
                      type: string
                      example: Siempre dice 'querido amigo'
      responses:
        '200':
          description: Personaje creado correctamente.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Mensaje de confirmación con detalles del personaje.
                    example: >-
                      Personaje: character789 ha sido creado con el siguiente
                      contexto.
                  character_id:
                    type: string
                    description: UID del personaje.
                    example: character789
                  character_context:
                    type: object
                    description: El contexto del personaje creado.
                    example:
                      age: adult
                      description: Un valiente guerrero con un pasado misterioso.
                      gender: Male
                      items:
                        - itemName: Sword
                          unit: Pieza
                          value: '100'
                      name: Aragorn
                      quests:
                        - description: Recupera el artefacto perdido.
                          objective: Encontrar y devolver el artefacto.
                          reward: 500 monedas de oro
                      role: protagonist
                      tone: mysterious
                      traits:
                        - brave
                      personality_theory: basicTraits
                      personality_dimensions: {}
        '400':
          description: >
            Error de validación – La carga útil de la solicitud no coincide con
            el esquema requerido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: >
            No encontrado – No se encontró el contexto del juego, mundo o
            personaje especificado.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Mensaje de error con posibles razones.
                    example: |
                      Posibles razones:
                      - Personaje no encontrado
        '500':
          description: |
            Error interno del servidor – Ocurrió un error al crear el personaje.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - npcbuilder_auth: []
components:
  schemas:
    ErrorResponse:
      type: object
      description: Esquema estándar de respuesta de error.
      properties:
        message:
          type: string
          description: Mensaje de error detallado.
          example: Ocurrió un error
  securitySchemes:
    npcbuilder_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````