Kinetix AI Emote Creator for FiveM - Documentation
GitHubDiscord
  • ๐Ÿ–๏ธIntroduction
  • ๐Ÿ‘€Overview
  • ๐Ÿš€Get started
  • ๐Ÿ‘จโ€๐Ÿ’ปDeveloper Portal
    • Game/App Space - Creation
    • Game/App Space - Settings
  • โš™๏ธCore
    • User Creation
    • Emote generation
    • Webhook
    • User bag
    • Sharing emote
    • Validation / Retake process
    • Paywalls
    • File download
    • Playing animations
  • ๐Ÿ–ฅ๏ธInterface
    • Events
      • Server
      • Client
    • Render functions
      • CreateRootMenu()
      • CreateQRCodeAlert(url)
      • CreateMainMenu()
      • CreateEmoteBagMenu(emotes)
      • OpenEmoteBagMenu()
      • CreateProcessValidationMenu(process)
      • CreateEmoteCreatorMenu(processes)
      • CreateErrorMenu(statusCode, error)
      • NotifyProcessUpdate(process)
      • NotifyEmoteReady(data)
      • CreateEmoteWheel(emotes)
  • ๐Ÿ”ŒIntegrations
  • ๐ŸงชLive Demo
  • ๐Ÿ“šVideo recording Guidelines & AI Specs
    • AI Emote Creator - specifications
    • Video recording guidelines
Powered by GitBook
On this page
  1. Core

Validation / Retake process

PreviousSharing emoteNextPaywalls

Last updated 8 months ago

Our emote validation / retake system allows users to upload a new video if they are unsatisfied with the generated emote or if the process fails, without creating a new emote process.

This system ensures a smooth user experience by adding an extra step where the client must validate or reject the generated emote before it is included in the user's bag.

How it works

Players reject a process, not an emote. The emote will only exist for the user once a process is validated.

1. Process Validation

When a process is in the done status, and the user is satisfied, you need to call the validation route:

This will automatically add the emote to the user bag, making it immediately playable in-game.

2. Process Rejection

  • If a user is not satisfied with the emote, you need to retake the process:

  • A new token will be generated, allowing the user to create a new emote. This new process will be linked as a child of the rejected one, with the rejected process flagged as 'rejected' and considered 'dead'.

  • You can reject a process multiple times if required (e.g., if the user did not finish the PWA flow of the new emote). The child process is attached only if it has been created.

3. Retake process customization

The Settings page of Game/App Space allow you to customize the number of allowed retakes for an emote, leading to the creation of a process hierarchy.

Kinetix ensures there is only one 'living' process in any hierarchy. There are two ways to handle the retake process:

  • Retake the root process: Will invalidate and attach a new process to the latest child.

  • Retake the child process: Will invalidate it and attach a new process.

Retaking any process in the chain will invalidate the latest child and attach a new process to it. The choice depends on which process you want to display to the user.

When requesting a process from the server, you will have a hierarchy field describing recursively the whole process history, including a count of children and parents, and the detailed UUIDs in the order of creation. When displaying the process, you can choose to display only the relevant processes to the user.

โš™๏ธ
โš ๏ธ

Validate the process

post

When the validation flow is activated, this will make emote available to the user

Authorizations
Path parameters
uuidanyOptional

The process uuid returned by the POST /v1/process route.

Responses
200
Success
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
post
POST /v1/process/{uuid}/validate HTTP/1.1
Host: sdk-api.kinetix.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "emote": "123e4567-e89b-12d3-a456-426614174000",
  "animation": "123e4567-e89b-12d3-a456-426614174000",
  "video": "123e4567-e89b-12d3-a456-426614174000",
  "step": "text",
  "vw": 1,
  "user": 1,
  "progression": 1,
  "createdAt": "2025-05-16T16:16:37.531Z",
  "ml": {
    "progression": 1,
    "mlRemaining": 1,
    "mlElapsed": 1
  }
}

Reject the process

post

When the validation flow is activated, this will reject the process and return a new generation token to let the user retry

Authorizations
Path parameters
uuidanyOptional

The process uuid returned by the POST /v1/process route.

Responses
200
Success
application/json
401
Unauthorized
application/json
403
Forbidden
application/json
post
POST /v1/process/{uuid}/retake HTTP/1.1
Host: sdk-api.kinetix.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "emote": "123e4567-e89b-12d3-a456-426614174000",
  "animation": "123e4567-e89b-12d3-a456-426614174000",
  "video": "123e4567-e89b-12d3-a456-426614174000",
  "step": "text",
  "vw": 1,
  "user": 1,
  "progression": 1,
  "createdAt": "2025-05-16T16:16:37.531Z",
  "ml": {
    "progression": 1,
    "mlRemaining": 1,
    "mlElapsed": 1
  }
}
  • How it works
  • 1. Process Validation
  • POSTValidate the process
  • 2. Process Rejection
  • POSTReject the process
  • 3. Retake process customization