vtpy.data Package

Data Models

The vtpy.data package contains data models for VTube Studio API requests, responses, and events.

Common Models

Common data models and enums for VTube Studio API.

class vtpy.data.common.MessageType(*values)[source]

Bases: str, Enum

Message type identifiers for requests, responses, and events.

PermissionRequest = 'PermissionRequest'
PermissionResponse = 'PermissionResponse'
AuthenticationRequest = 'AuthenticationRequest'
AuthenticationResponse = 'AuthenticationResponse'
AuthenticationTokenRequest = 'AuthenticationTokenRequest'
AuthenticationTokenResponse = 'AuthenticationTokenResponse'
StatisticsRequest = 'StatisticsRequest'
StatisticsResponse = 'StatisticsResponse'
VTSFolderInfoRequest = 'VTSFolderInfoRequest'
VTSFolderInfoResponse = 'VTSFolderInfoResponse'
CurrentModelRequest = 'CurrentModelRequest'
CurrentModelResponse = 'CurrentModelResponse'
ModelLoadRequest = 'ModelLoadRequest'
ModelLoadResponse = 'ModelLoadResponse'
MoveModelRequest = 'MoveModelRequest'
MoveModelResponse = 'MoveModelResponse'
HotkeyTriggerRequest = 'HotkeyTriggerRequest'
HotkeyTriggerResponse = 'HotkeyTriggerResponse'
HotkeysInCurrentModelRequest = 'HotkeysInCurrentModelRequest'
HotkeysInCurrentModelResponse = 'HotkeysInCurrentModelResponse'
AvailableModelsRequest = 'AvailableModelsRequest'
AvailableModelsResponse = 'AvailableModelsResponse'
ExpressionStateRequest = 'ExpressionStateRequest'
ExpressionStateResponse = 'ExpressionStateResponse'
ExpressionActivationRequest = 'ExpressionActivationRequest'
ExpressionActivationResponse = 'ExpressionActivationResponse'
ArtMeshListRequest = 'ArtMeshListRequest'
ArtMeshListResponse = 'ArtMeshListResponse'
ColorTintRequest = 'ColorTintRequest'
ColorTintResponse = 'ColorTintResponse'
ArtMeshSelectionRequest = 'ArtMeshSelectionRequest'
ArtMeshSelectionResponse = 'ArtMeshSelectionResponse'
SceneColorOverlayInfoRequest = 'SceneColorOverlayInfoRequest'
SceneColorOverlayInfoResponse = 'SceneColorOverlayInfoResponse'
FaceFoundRequest = 'FaceFoundRequest'
FaceFoundResponse = 'FaceFoundResponse'
InputParameterListRequest = 'InputParameterListRequest'
InputParameterListResponse = 'InputParameterListResponse'
ParameterValueRequest = 'ParameterValueRequest'
ParameterValueResponse = 'ParameterValueResponse'
Live2DParameterListRequest = 'Live2DParameterListRequest'
Live2DParameterListResponse = 'Live2DParameterListResponse'
ParameterCreationRequest = 'ParameterCreationRequest'
ParameterCreationResponse = 'ParameterCreationResponse'
ParameterDeletionRequest = 'ParameterDeletionRequest'
ParameterDeletionResponse = 'ParameterDeletionResponse'
InjectParameterDataRequest = 'InjectParameterDataRequest'
InjectParameterDataResponse = 'InjectParameterDataResponse'
ItemListRequest = 'ItemListRequest'
ItemListResponse = 'ItemListResponse'
ItemLoadRequest = 'ItemLoadRequest'
ItemLoadResponse = 'ItemLoadResponse'
ItemUnloadRequest = 'ItemUnloadRequest'
ItemUnloadResponse = 'ItemUnloadResponse'
ItemAnimationControlRequest = 'ItemAnimationControlRequest'
ItemAnimationControlResponse = 'ItemAnimationControlResponse'
ItemMoveRequest = 'ItemMoveRequest'
ItemMoveResponse = 'ItemMoveResponse'
ItemSortRequest = 'ItemSortRequest'
ItemSortResponse = 'ItemSortResponse'
ItemPinRequest = 'ItemPinRequest'
ItemPinResponse = 'ItemPinResponse'
SceneListRequest = 'SceneListRequest'
SceneListResponse = 'SceneListResponse'
CurrentSceneRequest = 'CurrentSceneRequest'
CurrentSceneResponse = 'CurrentSceneResponse'
SceneChangeRequest = 'SceneChangeRequest'
SceneChangeResponse = 'SceneChangeResponse'
GetCurrentModelPhysicsRequest = 'GetCurrentModelPhysicsRequest'
GetCurrentModelPhysicsResponse = 'GetCurrentModelPhysicsResponse'
SetCurrentModelPhysicsRequest = 'SetCurrentModelPhysicsRequest'
SetCurrentModelPhysicsResponse = 'SetCurrentModelPhysicsResponse'
NDIConfigRequest = 'NDIConfigRequest'
NDIConfigResponse = 'NDIConfigResponse'
PostProcessingListRequest = 'PostProcessingListRequest'
PostProcessingListResponse = 'PostProcessingListResponse'
PostProcessingUpdateRequest = 'PostProcessingUpdateRequest'
PostProcessingUpdateResponse = 'PostProcessingUpdateResponse'
EventSubscriptionRequest = 'EventSubscriptionRequest'
EventSubscriptionResponse = 'EventSubscriptionResponse'
class vtpy.data.common.ErrorCode(*values)[source]

Bases: int, Enum

Error codes returned by VTube Studio API.

None_ = 0
InvalidRequest = 1
RequestedItemNotFound = 2
MissingParameterInRequest = 3
RequestedItemIsDeactivated = 4
RequestedItemIsAlreadyInThatState = 5
GenericError = 6
AuthenticationTokenMissing = 100
AuthenticationTokenInvalid = 101
AuthenticationTokenRequestDenied = 102
AuthenticationTokenRequestTimedOut = 103
AuthenticationTokenRequestAlreadyHandled = 104
ModelNotFound = 200
ModelFileInvalid = 201
ModelAlreadyLoaded = 202
ModelLoadTimedOut = 203
ModelLoadCancelled = 204
ModelLoadFailed = 205
HotkeyNotFound = 300
HotkeyTriggerFailed = 301
ExpressionNotFound = 400
ExpressionActivationFailed = 401
ArtMeshNotFound = 500
ColorTintFailed = 501
ItemNotFound = 600
ItemLoadFailed = 601
ItemUnloadFailed = 602
ItemAnimationNotFound = 603
ItemAnimationFailed = 604
SceneNotFound = 700
SceneChangeFailed = 701
NDINotAvailable = 800
NDIConfigFailed = 801
class vtpy.data.common.ErrorData(*, errorID: ErrorCode, message: str)[source]

Bases: BaseModel

Error data returned in API responses.

errorID: ErrorCode
message: str
model_config: ClassVar[ConfigDict] = {'use_enum_values': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.common.BaseRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None)[source]

Bases: BaseModel

Base class for all API requests.

apiName: Literal['VTubeStudioPublicAPI']
apiVersion: Literal['1.0']
requestID: str | None
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.common.BaseResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None)[source]

Bases: BaseModel

Base class for all API responses.

apiName: Literal['VTubeStudioPublicAPI']
apiVersion: Literal['1.0']
timestamp: int
requestID: str | None
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.common.BaseEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None)[source]

Bases: BaseModel

Base class for all API events.

apiName: Literal['VTubeStudioPublicAPI']
apiVersion: Literal['1.0']
timestamp: int
requestID: str | None
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.common.HotkeyAction(*values)[source]

Bases: Enum

Unset = -1
TriggerAnimation = 0
ChangeIdleAnimation = 1
ToggleExpression = 2
RemoveAllExpressions = 3
MoveModel = 4
ChangeBackground = 5
ReloadMicrophone = 6
ReloadTextures = 7
CalibrateCam = 8
ChangeVTSModel = 9
TakeScreenshot = 10
ScreenColorOverlay = 11
RemoveAllItems = 12
ToggleItemScene = 13
DownloadRandomWorkshopItem = 14
ExecuteItemAction = 15
ArtMeshColorPreset = 16
ToggleTracker = 17
ToggleTwitchFeature = 18
LoadEffectPreset = 19
ToggleLive2DEditorAPI = 20
WebItemAction = 21

Request Models

Request and response data models for VTube Studio API.

class vtpy.data.requests.ItemType(*values)[source]

Bases: Enum

PNG = 'PNG'
JPEG = 'JPEG'
GIF = 'GIF'
LIVE2D = 'Live2D'
AnimationFolder = 'AnimationFolder'
Unknown = 'Unknown'
class vtpy.data.requests.PermissionType(*values)[source]

Bases: Enum

Type of permission requested.

LoadCustomImagesAsItems = 'LoadCustomImagesAsItems'
class vtpy.data.requests.ParameterMode(*values)[source]

Bases: Enum

SET = 'set'
ADD = 'add'
class vtpy.data.requests.FadeMode(*values)[source]

Bases: Enum

LINEAR = 'linear'
EASEIN = 'easeIn'
EASEOUT = 'easeOut'
EASEBOTH = 'easeBoth'
OVERSHOOT = 'overshoot'
ZIP = 'zip'
class vtpy.data.requests.ItemSplitPoint(*values)[source]

Bases: Enum

UNCHANGED = 'Unchanged'
ARTMESHID = 'UseArtMeshID'
class vtpy.data.requests.ItemSortOrder(*values)[source]

Bases: Enum

UNCHANGED = 'Unchanged'
ARTMESHID = 'UseArtMeshID'
SPECIALID = 'UseSpecialID'
class vtpy.data.requests.WithinModelOrder(*values)[source]

Bases: Enum

FULLYINFRONT = 'FullyInFront'
FULLYINBACK = 'FullyInBack'
class vtpy.data.requests.AngleRelativeTo(*values)[source]

Bases: Enum

RELATIVE_TO_WORLD = 'RelativeToWorld'
RELATIVE_TO_CURRENT_ITEM_ROTATION = 'RelativeToCurrentItemRotation'
RELATIVE_TO_MODEL = 'RelativeToModel'
RELATIVE_TO_PIN_POSITION = 'RelativeToPinPosition'
class vtpy.data.requests.SizeRelativeTo(*values)[source]

Bases: Enum

RELATIVE_TO_MODEL = 'RelativeToModel'
RELATIVE_TO_CURRENT_ITEM_SIZE = 'RelativeToCurrentItemSize'
class vtpy.data.requests.VertexPinType(*values)[source]

Bases: Enum

PROVIDED = 'Provided'
CENTER = 'Center'
RANDOM = 'Random'
class vtpy.data.requests.Parameter(*, name: str, value: float)[source]

Bases: BaseModel

name: str
value: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemInstance(*, fileName: str, instanceID: str, order: int, type: ItemType, censored: bool, flipped: bool, locked: bool, smoothing: float, framerate: float, frameCount: int, currentFrame: int, pinnedToModel: bool, pinnedModelID: str, pinnedArtMeshID: str, groupName: str, sceneName: str, fromWorkshop: bool)[source]

Bases: BaseModel

fileName: str
instanceID: str
order: int
type: ItemType
censored: bool
flipped: bool
locked: bool
smoothing: float
framerate: float
frameCount: int
currentFrame: int
pinnedToModel: bool
pinnedModelID: str
pinnedArtMeshID: str
groupName: str
sceneName: str
fromWorkshop: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemFile(*, fileName: str, type: ItemType, loadedCount: int)[source]

Bases: BaseModel

fileName: str
type: ItemType
loadedCount: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PermissionRequestData(*, requestedPermission: PermissionType)[source]

Bases: BaseModel

Data for authentication request.

requestedPermission: PermissionType
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PermissionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.PermissionRequest] = MessageType.PermissionRequest, data: PermissionRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.PermissionRequest]
data: PermissionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PermissionGrantedResult(*, name: PermissionType, granted: bool)[source]

Bases: BaseModel

name: PermissionType
granted: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PermissionResponseData(*, grantSuccess: bool, requestedPermission: PermissionType, permissions: List[PermissionGrantedResult])[source]

Bases: BaseModel

Data for authentication response.

grantSuccess: bool
requestedPermission: PermissionType
permissions: List[PermissionGrantedResult]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PermissionResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.PermissionResponse] = MessageType.PermissionResponse, data: PermissionResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.PermissionResponse]
data: PermissionResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationRequestData(*, pluginName: str, pluginDeveloper: str, authenticationToken: str)[source]

Bases: BaseModel

Data for authentication request.

pluginName: str
pluginDeveloper: str
authenticationToken: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.AuthenticationRequest] = MessageType.AuthenticationRequest, data: AuthenticationRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.AuthenticationRequest]
data: AuthenticationRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationResponseData(*, authenticated: bool, reason: str | None = None)[source]

Bases: BaseModel

Data for authentication response.

authenticated: bool
reason: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.AuthenticationResponse] = MessageType.AuthenticationResponse, data: AuthenticationResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.AuthenticationResponse]
data: AuthenticationResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationTokenRequestData(*, pluginName: str, pluginDeveloper: str, pluginIcon: str | None = None)[source]

Bases: BaseModel

Data for authentication request.

pluginName: str
pluginDeveloper: str
pluginIcon: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationTokenRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.AuthenticationTokenRequest] = MessageType.AuthenticationTokenRequest, data: AuthenticationTokenRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.AuthenticationTokenRequest]
data: AuthenticationTokenRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationTokenResponseData(*, authenticationToken: str)[source]

Bases: BaseModel

Data for authentication response.

authenticationToken: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AuthenticationTokenResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.AuthenticationTokenResponse] = MessageType.AuthenticationTokenResponse, data: AuthenticationTokenResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.AuthenticationTokenResponse]
data: AuthenticationTokenResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.StatisticsRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.StatisticsRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.StatisticsRequest] = MessageType.StatisticsRequest, data: StatisticsRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.StatisticsRequest]
data: StatisticsRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.StatisticsResponseData(*, uptime: int, framerate: int, vTubeStudioVersion: str, allowedPlugins: int, connectedPlugins: int, startedWithSteam: bool, windowWidth: int, windowHeight: int, windowIsFullscreen: bool)[source]

Bases: BaseModel

Data for authentication response.

uptime: int
framerate: int
vTubeStudioVersion: str
allowedPlugins: int
connectedPlugins: int
startedWithSteam: bool
windowWidth: int
windowHeight: int
windowIsFullscreen: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.StatisticsResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.StatisticsResponse] = MessageType.StatisticsResponse, data: StatisticsResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.StatisticsResponse]
data: StatisticsResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.VTSFolderInfoRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.VTSFolderInfoRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.VTSFolderInfoRequest] = MessageType.VTSFolderInfoRequest, data: VTSFolderInfoRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.VTSFolderInfoRequest]
data: VTSFolderInfoRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.VTSFolderInfoResponseData(*, models: str, backgrounds: str, items: str, config: str, logs: str, backup: str)[source]

Bases: BaseModel

Data for authentication response.

models: str
backgrounds: str
items: str
config: str
logs: str
backup: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.VTSFolderInfoResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.VTSFolderInfoResponse] = MessageType.VTSFolderInfoResponse, data: VTSFolderInfoResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.VTSFolderInfoResponse]
data: VTSFolderInfoResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.CurrentModelRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.CurrentModelRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.CurrentModelRequest] = MessageType.CurrentModelRequest, data: CurrentModelRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.CurrentModelRequest]
data: CurrentModelRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ModelPosition(*, positionX: float, positionY: float, rotation: float, size: float)[source]

Bases: BaseModel

positionX: float
positionY: float
rotation: float
size: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.CurrentModelResponseData(*, modelLoaded: bool, modelName: str, modelID: str, vtsModelName: str, vtsModelIconName: str, live2DModelName: str, modelLoadTime: int, timeSinceModelLoaded: int, numberOfLive2DParameters: int, numberOfLive2DArtmeshes: int, hasPhysicsFile: bool, numberOfTextures: int, textureResolution: int, modelPosition: ModelPosition)[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
modelName: str
modelID: str
vtsModelName: str
vtsModelIconName: str
live2DModelName: str
modelLoadTime: int
timeSinceModelLoaded: int
numberOfLive2DParameters: int
numberOfLive2DArtmeshes: int
hasPhysicsFile: bool
numberOfTextures: int
textureResolution: int
modelPosition: ModelPosition
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.CurrentModelResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.CurrentModelResponse] = MessageType.CurrentModelResponse, data: CurrentModelResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.CurrentModelResponse]
data: CurrentModelResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AvailableModelsRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AvailableModelsRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.AvailableModelsRequest] = MessageType.AvailableModelsRequest, data: AvailableModelsRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.AvailableModelsRequest]
data: AvailableModelsRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AvailableModel(*, modelLoaded: bool, modelName: str, modelID: str, vtsModelName: str, vtsModelIconName: str)[source]

Bases: BaseModel

modelLoaded: bool
modelName: str
modelID: str
vtsModelName: str
vtsModelIconName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AvailableModelsResponseData(*, numberOfModels: int, availableModels: List[AvailableModel])[source]

Bases: BaseModel

Data for authentication response.

numberOfModels: int
availableModels: List[AvailableModel]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AvailableModelsResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.AvailableModelsResponse] = MessageType.AvailableModelsResponse, data: AvailableModelsResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.AvailableModelsResponse]
data: AvailableModelsResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ModelLoadRequestData(*, modelID: str | None = None)[source]

Bases: BaseModel

Data for authentication request.

modelID: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ModelLoadRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ModelLoadRequest] = MessageType.ModelLoadRequest, data: ModelLoadRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ModelLoadRequest]
data: ModelLoadRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ModelLoadResponseData(*, modelID: str | None = None)[source]

Bases: BaseModel

Data for authentication response.

modelID: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ModelLoadResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ModelLoadResponse] = MessageType.ModelLoadResponse, data: ModelLoadResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ModelLoadResponse]
data: ModelLoadResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.MoveModelRequestData(*, timeInSeconds: Annotated[float, Ge(ge=0), Le(le=2)] = 1, valuesAreRelativeToModel: bool = True, positionX: Annotated[float | None, Ge(ge=-1000), Le(le=1000)] = None, positionY: Annotated[float | None, Ge(ge=-1000), Le(le=1000)] = None, rotation: Annotated[float | None, Ge(ge=-360), Le(le=360)] = None, size: Annotated[float | None, Ge(ge=-100), Le(le=100)] = None)[source]

Bases: BaseModel

Data for authentication request.

timeInSeconds: float
valuesAreRelativeToModel: bool
positionX: float | None
positionY: float | None
rotation: float | None
size: float | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.MoveModelRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.MoveModelRequest] = MessageType.MoveModelRequest, data: MoveModelRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.MoveModelRequest]
data: MoveModelRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.MoveModelResponseData[source]

Bases: BaseModel

Data for authentication response.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.MoveModelResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.MoveModelResponse] = MessageType.MoveModelResponse, data: MoveModelResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.MoveModelResponse]
data: MoveModelResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeysInCurrentModelRequestData(*, modelID: str | None = None, live2DItemFileName: str | None = None)[source]

Bases: BaseModel

Data for authentication request.

modelID: str | None
live2DItemFileName: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeysInCurrentModelRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.HotkeysInCurrentModelRequest] = MessageType.HotkeysInCurrentModelRequest, data: HotkeysInCurrentModelRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.HotkeysInCurrentModelRequest]
data: HotkeysInCurrentModelRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.AvailableHotkey(*, name: str, type: HotkeyAction, description: str, file: str, hotkeyID: str, keyCombination: List[str], onScreenButtonID: int)[source]

Bases: BaseModel

name: str
type: HotkeyAction
description: str
file: str
hotkeyID: str
keyCombination: List[str]
onScreenButtonID: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeysInCurrentModelResponseData(*, modelLoaded: bool, modelName: str, modelID: str, availableHotkeys: List[AvailableHotkey])[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
modelName: str
modelID: str
availableHotkeys: List[AvailableHotkey]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeysInCurrentModelResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.HotkeysInCurrentModelResponse] = MessageType.HotkeysInCurrentModelResponse, data: HotkeysInCurrentModelResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.HotkeysInCurrentModelResponse]
data: HotkeysInCurrentModelResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeyTriggerRequestData(*, hotkeyID: str, itemInstanceID: str | None = None)[source]

Bases: BaseModel

Data for authentication request.

hotkeyID: str
itemInstanceID: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeyTriggerRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.HotkeyTriggerRequest] = MessageType.HotkeyTriggerRequest, data: HotkeyTriggerRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.HotkeyTriggerRequest]
data: HotkeyTriggerRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeyTriggerResponseData(*, hotkeyID: str)[source]

Bases: BaseModel

Data for authentication response.

hotkeyID: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.HotkeyTriggerResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.HotkeyTriggerResponse] = MessageType.HotkeyTriggerResponse, data: HotkeyTriggerResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.HotkeyTriggerResponse]
data: HotkeyTriggerResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionStateRequestData(*, details: bool = True, expressionFile: str | None = None)[source]

Bases: BaseModel

Data for authentication request.

details: bool
expressionFile: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionStateRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ExpressionStateRequest] = MessageType.ExpressionStateRequest, data: ExpressionStateRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ExpressionStateRequest]
data: ExpressionStateRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.Hotkey(*, name: str, id: str)[source]

Bases: BaseModel

name: str
id: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.Expression(*, name: str, file: str, active: bool, deactivateWhenKeyIsLetGo: bool, autoDeactivateAfterSeconds: bool, secondsRemaining: float, usedInHotkeys: List[Hotkey], parameters: List[Parameter])[source]

Bases: BaseModel

name: str
file: str
active: bool
deactivateWhenKeyIsLetGo: bool
autoDeactivateAfterSeconds: bool
secondsRemaining: float
usedInHotkeys: List[Hotkey]
parameters: List[Parameter]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionStateResponseData(*, modelLoaded: bool, modelName: str, modelID: str, expressions: List[Expression])[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
modelName: str
modelID: str
expressions: List[Expression]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionStateResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ExpressionStateResponse] = MessageType.ExpressionStateResponse, data: ExpressionStateResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ExpressionStateResponse]
data: ExpressionStateResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionActivationRequestData(*, expressionFile: str, fadeTime: Annotated[float, Ge(ge=0), Le(le=2)] = 0.25, active: bool = True)[source]

Bases: BaseModel

Data for authentication request.

expressionFile: str
fadeTime: float
active: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionActivationRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ExpressionActivationRequest] = MessageType.ExpressionActivationRequest, data: ExpressionActivationRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ExpressionActivationRequest]
data: ExpressionActivationRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionActivationResponseData[source]

Bases: BaseModel

Data for authentication response.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ExpressionActivationResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ExpressionActivationResponse] = MessageType.ExpressionActivationResponse, data: ExpressionActivationResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ExpressionActivationResponse]
data: ExpressionActivationResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshListRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshListRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ArtMeshListRequest] = MessageType.ArtMeshListRequest, data: ArtMeshListRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ArtMeshListRequest]
data: ArtMeshListRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshListResponseData(*, modelLoaded: bool, numberOfArtMeshNames: int, numberOfArtMeshTags: int, artMeshNames: List[str], artMeshTags: List[str])[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
numberOfArtMeshNames: int
numberOfArtMeshTags: int
artMeshNames: List[str]
artMeshTags: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshListResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ArtMeshListResponse] = MessageType.ArtMeshListResponse, data: ArtMeshListResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ArtMeshListResponse]
data: ArtMeshListResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ColorTintData(*, colorR: int, colorG: int, colorB: int, colorA: int, mixWithSceneLightingColor: Annotated[float | None, Ge(ge=0), Le(le=1)] = 1)[source]

Bases: BaseModel

colorR: int
colorG: int
colorB: int
colorA: int
mixWithSceneLightingColor: float | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshMatcherData(*, tintAll: bool = True, artMeshNumber: List[int] | None = None, nameExact: List[str] | None = None, nameContains: List[str] | None = None, tagExact: List[str] | None = None, tagContains: List[str] | None = None)[source]

Bases: BaseModel

tintAll: bool
artMeshNumber: List[int] | None
nameExact: List[str] | None
nameContains: List[str] | None
tagExact: List[str] | None
tagContains: List[str] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ColorTintRequestData(*, colorTint: ColorTintData, artMeshMatcher: ArtMeshMatcherData)[source]

Bases: BaseModel

Data for authentication request.

colorTint: ColorTintData
artMeshMatcher: ArtMeshMatcherData
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ColorTintRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ColorTintRequest] = MessageType.ColorTintRequest, data: ColorTintRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ColorTintRequest]
data: ColorTintRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ColorTintResponseData(*, matchedArtMeshes: int)[source]

Bases: BaseModel

Data for authentication response.

matchedArtMeshes: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ColorTintResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ColorTintResponse] = MessageType.ColorTintResponse, data: ColorTintResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ColorTintResponse]
data: ColorTintResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SceneColorOverlayInfoRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SceneColorOverlayInfoRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.SceneColorOverlayInfoRequest] = MessageType.SceneColorOverlayInfoRequest, data: SceneColorOverlayInfoRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.SceneColorOverlayInfoRequest]
data: SceneColorOverlayInfoRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.LeftCapturePart(*, active: bool, colorR: int, colorG: int, colorB: int)[source]

Bases: BaseModel

active: bool
colorR: int
colorG: int
colorB: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.MiddleCapturePart(*, active: bool, colorR: int, colorG: int, colorB: int)[source]

Bases: BaseModel

active: bool
colorR: int
colorG: int
colorB: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.RightCapturePart(*, active: bool, colorR: int, colorG: int, colorB: int)[source]

Bases: BaseModel

active: bool
colorR: int
colorG: int
colorB: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SceneColorOverlayInfoResponseData(*, active: bool, itemsIncluded: bool, isWindowCapture: bool, baseBrightness: int, colorBoost: int, smoothing: int, colorOverlayR: int, colorOverlayG: int, colorOverlayB: int, colorAvgR: int, colorAvgG: int, colorAvgB: int, leftCapturePart: LeftCapturePart, middleCapturePart: MiddleCapturePart, rightCapturePart: RightCapturePart)[source]

Bases: BaseModel

Data for authentication response.

active: bool
itemsIncluded: bool
isWindowCapture: bool
baseBrightness: int
colorBoost: int
smoothing: int
colorOverlayR: int
colorOverlayG: int
colorOverlayB: int
colorAvgR: int
colorAvgG: int
colorAvgB: int
leftCapturePart: LeftCapturePart
middleCapturePart: MiddleCapturePart
rightCapturePart: RightCapturePart
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SceneColorOverlayInfoResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.SceneColorOverlayInfoResponse] = MessageType.SceneColorOverlayInfoResponse, data: SceneColorOverlayInfoResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.SceneColorOverlayInfoResponse]
data: SceneColorOverlayInfoResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.FaceFoundRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.FaceFoundRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.FaceFoundRequest] = MessageType.FaceFoundRequest, data: FaceFoundRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.FaceFoundRequest]
data: FaceFoundRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.FaceFoundResponseData(*, found: bool)[source]

Bases: BaseModel

Data for authentication response.

found: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.FaceFoundResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.FaceFoundResponse] = MessageType.FaceFoundResponse, data: FaceFoundResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.FaceFoundResponse]
data: FaceFoundResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InputParameterListRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InputParameterListRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.InputParameterListRequest] = MessageType.InputParameterListRequest, data: InputParameterListRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.InputParameterListRequest]
data: InputParameterListRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InputParameterListResponseData(*, modelLoaded: bool, modelName: str, modelID: str, customParameters: List[Parameter], defaultParameters: List[Parameter])[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
modelName: str
modelID: str
customParameters: List[Parameter]
defaultParameters: List[Parameter]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InputParameterListResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.InputParameterListResponse] = MessageType.InputParameterListResponse, data: InputParameterListResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.InputParameterListResponse]
data: InputParameterListResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterValueRequestData(*, name: str)[source]

Bases: BaseModel

Data for authentication request.

name: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterValueRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ParameterValueRequest] = MessageType.ParameterValueRequest, data: ParameterValueRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ParameterValueRequest]
data: ParameterValueRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterValueResponseData(*, name: str, value: float)[source]

Bases: Parameter

Data for authentication response.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterValueResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ParameterValueResponse] = MessageType.ParameterValueResponse, data: ParameterValueResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ParameterValueResponse]
data: ParameterValueResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.Live2DParameterListRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.Live2DParameterListRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.Live2DParameterListRequest] = MessageType.Live2DParameterListRequest, data: Live2DParameterListRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.Live2DParameterListRequest]
data: Live2DParameterListRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.Live2DParameterListResponseData(*, modelLoaded: bool, modelName: str, modelID: str, parameters: List[Parameter])[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
modelName: str
modelID: str
parameters: List[Parameter]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.Live2DParameterListResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.Live2DParameterListResponse] = MessageType.Live2DParameterListResponse, data: Live2DParameterListResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.Live2DParameterListResponse]
data: Live2DParameterListResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterCreationRequestData(*, parameterName: str, explanation: Annotated[str | None, MaxLen(max_length=256)] = None, min: Annotated[float, Ge(ge=-1000000), Le(le=1000000)] = -100, max: Annotated[float, Ge(ge=-1000000), Le(le=1000000)] = 100, defaultValue: Annotated[float, Ge(ge=-1000000), Le(le=1000000)] = 0)[source]

Bases: BaseModel

Data for authentication request.

parameterName: str
explanation: str | None
min: float
max: float
defaultValue: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterCreationRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ParameterCreationRequest] = MessageType.ParameterCreationRequest, data: ParameterCreationRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ParameterCreationRequest]
data: ParameterCreationRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterCreationResponseData(*, parameterName: str)[source]

Bases: BaseModel

Data for authentication response.

parameterName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterCreationResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ParameterCreationResponse] = MessageType.ParameterCreationResponse, data: ParameterCreationResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ParameterCreationResponse]
data: ParameterCreationResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterDeletionRequestData(*, parameterName: str)[source]

Bases: BaseModel

Data for authentication request.

parameterName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterDeletionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ParameterDeletionRequest] = MessageType.ParameterDeletionRequest, data: ParameterDeletionRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ParameterDeletionRequest]
data: ParameterDeletionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterDeletionResponseData(*, parameterName: str)[source]

Bases: BaseModel

Data for authentication response.

parameterName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterDeletionResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ParameterDeletionResponse] = MessageType.ParameterDeletionResponse, data: ParameterDeletionResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ParameterDeletionResponse]
data: ParameterDeletionResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ParameterValue(*, id: str, value: Annotated[float, Ge(ge=-1000000), Le(le=1000000)], weight: Annotated[float | None, Ge(ge=0), Le(le=1)] = None)[source]

Bases: BaseModel

id: str
value: float
weight: float | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InjectParameterDataRequestData(*, faceFound: bool = False, mode: ParameterMode = ParameterMode.SET, parameterValues: List[ParameterValue] = [])[source]

Bases: BaseModel

Data for authentication request.

faceFound: bool
mode: ParameterMode
parameterValues: List[ParameterValue]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InjectParameterDataRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.InjectParameterDataRequest] = MessageType.InjectParameterDataRequest, data: InjectParameterDataRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.InjectParameterDataRequest]
data: InjectParameterDataRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InjectParameterDataResponseData[source]

Bases: BaseModel

Data for authentication response.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.InjectParameterDataResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.InjectParameterDataResponse] = MessageType.InjectParameterDataResponse, data: InjectParameterDataResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.InjectParameterDataResponse]
data: InjectParameterDataResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.GetCurrentModelPhysicsRequestData[source]

Bases: BaseModel

Data for authentication request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.GetCurrentModelPhysicsRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.GetCurrentModelPhysicsRequest] = MessageType.GetCurrentModelPhysicsRequest, data: GetCurrentModelPhysicsRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.GetCurrentModelPhysicsRequest]
data: GetCurrentModelPhysicsRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PhysicsGroup(*, groupID: str, groupName: str, strengthMultiplier: float, windMultiplier: float)[source]

Bases: BaseModel

groupID: str
groupName: str
strengthMultiplier: float
windMultiplier: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.GetCurrentModelPhysicsResponseData(*, modelLoaded: bool, modelName: str, modelID: str, modelHasPhysics: bool, physicsSwitchedOn: bool, usingLegacyPhysics: bool, physicsFPSSetting: int, baseStrength: int, baseWind: int, apiPhysicsOverrideActive: bool, apiPhysicsOverridePluginName: str, physicsGroups: List[PhysicsGroup])[source]

Bases: BaseModel

Data for authentication response.

modelLoaded: bool
modelName: str
modelID: str
modelHasPhysics: bool
physicsSwitchedOn: bool
usingLegacyPhysics: bool
physicsFPSSetting: int
baseStrength: int
baseWind: int
apiPhysicsOverrideActive: bool
apiPhysicsOverridePluginName: str
physicsGroups: List[PhysicsGroup]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.GetCurrentModelPhysicsResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.GetCurrentModelPhysicsResponse] = MessageType.GetCurrentModelPhysicsResponse, data: GetCurrentModelPhysicsResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.GetCurrentModelPhysicsResponse]
data: GetCurrentModelPhysicsResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.StrengthOverride(*, id: str, value: Annotated[float, Ge(ge=0), Le(le=100)], setBaseValue: bool, overrideSeconds: Annotated[float, Ge(ge=0.5), Le(le=5)])[source]

Bases: BaseModel

id: str
value: float
setBaseValue: bool
overrideSeconds: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.WindOverride(*, id: str, value: Annotated[float, Ge(ge=0), Le(le=100)], setBaseValue: bool, overrideSeconds: Annotated[float, Ge(ge=0.5), Le(le=5)])[source]

Bases: BaseModel

id: str
value: float
setBaseValue: bool
overrideSeconds: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SetCurrentModelPhysicsRequestData(*, strengthOverrides: List[StrengthOverride] = [], windOverrides: List[WindOverride] = [])[source]

Bases: BaseModel

Data for authentication request.

strengthOverrides: List[StrengthOverride]
windOverrides: List[WindOverride]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SetCurrentModelPhysicsRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.SetCurrentModelPhysicsRequest] = MessageType.SetCurrentModelPhysicsRequest, data: SetCurrentModelPhysicsRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.SetCurrentModelPhysicsRequest]
data: SetCurrentModelPhysicsRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SetCurrentModelPhysicsResponseData[source]

Bases: BaseModel

Data for authentication response.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.SetCurrentModelPhysicsResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.SetCurrentModelPhysicsResponse] = MessageType.SetCurrentModelPhysicsResponse, data: SetCurrentModelPhysicsResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.SetCurrentModelPhysicsResponse]
data: SetCurrentModelPhysicsResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.NDIConfigRequestData(*, setNewConfig: bool, ndiActive: bool = False, useNDI5: bool = True, useCustomResolution: bool = False, customWidthNDI: Annotated[int, Ge(ge=256), Le(le=8192)] = -1, customHeightNDI: Annotated[int, Ge(ge=256), Le(le=8192)] = -1)[source]

Bases: BaseModel

Data for authentication request.

setNewConfig: bool
ndiActive: bool
useNDI5: bool
useCustomResolution: bool
customWidthNDI: int
customHeightNDI: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.NDIConfigRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.NDIConfigRequest] = MessageType.NDIConfigRequest, data: NDIConfigRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.NDIConfigRequest]
data: NDIConfigRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.NDIConfigResponseData(*, setNewConfig: bool, ndiActive: bool, useNDI5: bool, useCustomResolution: bool, customWidthNDI: int, customHeightNDI: int)[source]

Bases: BaseModel

Data for authentication response.

setNewConfig: bool
ndiActive: bool
useNDI5: bool
useCustomResolution: bool
customWidthNDI: int
customHeightNDI: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.NDIConfigResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.NDIConfigResponse] = MessageType.NDIConfigResponse, data: NDIConfigResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.NDIConfigResponse]
data: NDIConfigResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemListRequestData(*, includeAvailableSpots: bool = False, includeItemInstancesInScene: bool = False, includeAvailableItemFiles: bool = False, onlyItemsWithFileName: str | None = None, onlyItemsWithInstanceID: str | None = None)[source]

Bases: BaseModel

Data for authentication request.

includeAvailableSpots: bool
includeItemInstancesInScene: bool
includeAvailableItemFiles: bool
onlyItemsWithFileName: str | None
onlyItemsWithInstanceID: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemListRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemListRequest] = MessageType.ItemListRequest, data: ItemListRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemListRequest]
data: ItemListRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemListResponseData(*, itemsInSceneCount: int, totalItemsAllowedCount: int, canLoadItemsRightNow: bool, availableSpots: List[int], itemInstancesInScene: List[ItemInstance], availableItemFiles: List[ItemFile])[source]

Bases: BaseModel

Data for authentication response.

itemsInSceneCount: int
totalItemsAllowedCount: int
canLoadItemsRightNow: bool
availableSpots: List[int]
itemInstancesInScene: List[ItemInstance]
availableItemFiles: List[ItemFile]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemListResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemListResponse] = MessageType.ItemListResponse, data: ItemListResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemListResponse]
data: ItemListResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemLoadRequestData(*, fileName: str, positionX: Annotated[float, Ge(ge=-1000), Le(le=1000)] = 0, positionY: Annotated[float, Ge(ge=-1000), Le(le=1000)] = 0, size: Annotated[float, Ge(ge=0), Le(le=1)] = 1, rotation: Annotated[float, Ge(ge=-360), Le(le=360)] = 0, fadeTime: Annotated[float, Ge(ge=0), Le(le=2)] = 0.25, order: int = 0, failIfOrderTaken: bool = False, smoothing: Annotated[float, Ge(ge=0), Le(le=1)] = 0.5, censored: bool | None = False, flipped: bool | None = False, locked: bool | None = False, unloadWhenPluginDisconnects: bool = True, customDataBase64: str | None = None, customDataAskUserFirst: bool | None = None, customDataSkipAskingUserIfWhitelisted: bool | None = None, customDataAskTimer: int | None = None)[source]

Bases: BaseModel

Data for authentication request.

fileName: str
positionX: float
positionY: float
size: float
rotation: float
fadeTime: float
order: int
failIfOrderTaken: bool
smoothing: float
censored: bool | None
flipped: bool | None
locked: bool | None
unloadWhenPluginDisconnects: bool
customDataBase64: str | None
customDataAskUserFirst: bool | None
customDataSkipAskingUserIfWhitelisted: bool | None
customDataAskTimer: int | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemLoadRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemLoadRequest] = MessageType.ItemLoadRequest, data: ItemLoadRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemLoadRequest]
data: ItemLoadRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemLoadResponseData(*, instanceID: str, fileName: str)[source]

Bases: BaseModel

Data for authentication response.

instanceID: str
fileName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemLoadResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemLoadResponse] = MessageType.ItemLoadResponse, data: ItemLoadResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemLoadResponse]
data: ItemLoadResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemUnloadRequestData(*, unloadAllInScene: bool = False, unloadAllLoadedByThisPlugin: bool = False, allowUnloadingItemsLoadedByUserOrOtherPlugins: bool = False, instanceIDs: List[str] = [], fileNames: List[str] = [])[source]

Bases: BaseModel

Data for authentication request.

unloadAllInScene: bool
unloadAllLoadedByThisPlugin: bool
allowUnloadingItemsLoadedByUserOrOtherPlugins: bool
instanceIDs: List[str]
fileNames: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemUnloadRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemUnloadRequest] = MessageType.ItemUnloadRequest, data: ItemUnloadRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemUnloadRequest]
data: ItemUnloadRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemUnloadedItem(*, instanceID: str, fileName: str)[source]

Bases: BaseModel

instanceID: str
fileName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemUnloadResponseData(*, unloadedItems: List[ItemUnloadedItem])[source]

Bases: BaseModel

Data for authentication response.

unloadedItems: List[ItemUnloadedItem]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemUnloadResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemUnloadResponse] = MessageType.ItemUnloadResponse, data: ItemUnloadResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemUnloadResponse]
data: ItemUnloadResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemAnimationControlRequestData(*, itemInstanceID: str, framerate: Annotated[float, Ge(ge=0.1), Le(le=120)] = -1, frame: Annotated[int, Ge(ge=0)] = -1, brightness: Annotated[float, Ge(ge=0), Le(le=1)] = -1, opacity: Annotated[float, Ge(ge=0), Le(le=1)] = -1, setAutoStopFrames: bool = False, autoStopFrames: Annotated[List[int], MaxLen(max_length=1024)] = [], setAnimationPlayState: bool = True, animationPlayState: bool = True)[source]

Bases: BaseModel

Data for authentication request.

itemInstanceID: str
framerate: float
frame: int
brightness: float
opacity: float
setAutoStopFrames: bool
autoStopFrames: List[int]
setAnimationPlayState: bool
animationPlayState: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemAnimationControlRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemAnimationControlRequest] = MessageType.ItemAnimationControlRequest, data: ItemAnimationControlRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemAnimationControlRequest]
data: ItemAnimationControlRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemAnimationControlResponseData(*, frame: int, animationPlaying: bool)[source]

Bases: BaseModel

Data for authentication response.

frame: int
animationPlaying: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemAnimationControlResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemAnimationControlResponse] = MessageType.ItemAnimationControlResponse, data: ItemAnimationControlResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemAnimationControlResponse]
data: ItemAnimationControlResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemMoveRequestItem(*, itemInstanceID: str, timeInSeconds: Annotated[float, Ge(ge=0), Le(le=30)] = 1, fadeMode: FadeMode = FadeMode.EASEBOTH, positionX: Annotated[float, Ge(ge=-1000), Le(le=1000)] = 0, positionY: Annotated[float, Ge(ge=-1000), Le(le=1000)] = 0, size: Annotated[float, Ge(ge=0), Le(le=1)] = 1, rotation: Annotated[float, Ge(ge=-360), Le(le=360)] = 0, order: int = -1000, setFlip: bool = False, flip: bool = True, userCanStop: bool = True)[source]

Bases: BaseModel

itemInstanceID: str
timeInSeconds: float
fadeMode: FadeMode
positionX: float
positionY: float
size: float
rotation: float
order: int
setFlip: bool
flip: bool
userCanStop: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemMoveRequestData(*, itemsToMove: Annotated[List[ItemMoveRequestItem], MaxLen(max_length=64)])[source]

Bases: BaseModel

Data for authentication request.

itemsToMove: List[ItemMoveRequestItem]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemMoveRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemMoveRequest] = MessageType.ItemMoveRequest, data: ItemMoveRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemMoveRequest]
data: ItemMoveRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.MovedItem(*, itemInstanceID: str, success: bool, errorID: int)[source]

Bases: BaseModel

itemInstanceID: str
success: bool
errorID: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemMoveResponseData(*, movedItems: List[MovedItem])[source]

Bases: BaseModel

Data for authentication response.

movedItems: List[MovedItem]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemMoveResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemMoveResponse] = MessageType.ItemMoveResponse, data: ItemMoveResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemMoveResponse]
data: ItemMoveResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemSortRequestData(*, itemInstanceID: str, frontOn: bool, backOn: bool, setSplitPoint: ItemSplitPoint, setFrontOrder: ItemSortOrder, setBackOrder: ItemSortOrder, splitAt: str, withinModelOrderFront: WithinModelOrder, withinModelOrderBack: WithinModelOrder)[source]

Bases: BaseModel

Data for authentication request.

itemInstanceID: str
frontOn: bool
backOn: bool
setSplitPoint: ItemSplitPoint
setFrontOrder: ItemSortOrder
setBackOrder: ItemSortOrder
splitAt: str
withinModelOrderFront: WithinModelOrder
withinModelOrderBack: WithinModelOrder
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemSortRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemSortRequest] = MessageType.ItemSortRequest, data: ItemSortRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemSortRequest]
data: ItemSortRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemSortResponseData(*, itemInstanceID: str, modelLoaded: bool, modelID: str, modelName: str, loadedModelHadRequestedFrontLayer: bool, loadedModelHadRequestedBackLayer: bool)[source]

Bases: BaseModel

Data for authentication response.

itemInstanceID: str
modelLoaded: bool
modelID: str
modelName: str
loadedModelHadRequestedFrontLayer: bool
loadedModelHadRequestedBackLayer: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemSortResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemSortResponse] = MessageType.ItemSortResponse, data: ItemSortResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemSortResponse]
data: ItemSortResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshSelectionRequestData(*, textOverride: Annotated[str | None, MinLen(min_length=4), MaxLen(max_length=1024)] = None, helpOverride: Annotated[str | None, MinLen(min_length=4), MaxLen(max_length=1024)] = None, requestedArtMeshCount: Annotated[int, Ge(ge=0)] = 0, activeArtMeshes: List[str] = [])[source]

Bases: BaseModel

Data for authentication request.

textOverride: str | None
helpOverride: str | None
requestedArtMeshCount: int
activeArtMeshes: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshSelectionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ArtMeshSelectionRequest] = MessageType.ArtMeshSelectionRequest, data: ArtMeshSelectionRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ArtMeshSelectionRequest]
data: ArtMeshSelectionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshSelectionResponseData(*, success: bool, activeArtMeshes: List[str], inactiveArtMeshes: List[str])[source]

Bases: BaseModel

Data for authentication response.

success: bool
activeArtMeshes: List[str]
inactiveArtMeshes: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ArtMeshSelectionResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ArtMeshSelectionResponse] = MessageType.ArtMeshSelectionResponse, data: ArtMeshSelectionResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ArtMeshSelectionResponse]
data: ArtMeshSelectionResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PinInfo(*, modelID: str, artMeshID: str, angle: Annotated[float, Ge(ge=-360), Le(le=360)] = 0, size: Annotated[float, Ge(ge=0), Le(le=1)] = 1, vertexID1: int | None = None, vertexID2: int | None = None, vertexID3: int | None = None, vertexWeight1: float | None = None, vertexWeight2: float | None = None, vertexWeight3: float | None = None)[source]

Bases: BaseModel

modelID: str
artMeshID: str
angle: float
size: float
vertexID1: int | None
vertexID2: int | None
vertexID3: int | None
vertexWeight1: float | None
vertexWeight2: float | None
vertexWeight3: float | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemPinRequestData(*, pin: bool, itemInstanceID: str, angleRelativeTo: AngleRelativeTo = AngleRelativeTo.RELATIVE_TO_MODEL, sizeRelativeTo: SizeRelativeTo = SizeRelativeTo.RELATIVE_TO_MODEL, vertexPinType: VertexPinType = VertexPinType.CENTER, pinInfo: PinInfo)[source]

Bases: BaseModel

Data for authentication request.

pin: bool
itemInstanceID: str
angleRelativeTo: AngleRelativeTo
sizeRelativeTo: SizeRelativeTo
vertexPinType: VertexPinType
pinInfo: PinInfo
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemPinRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.ItemPinRequest] = MessageType.ItemPinRequest, data: ItemPinRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.ItemPinRequest]
data: ItemPinRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemPinResponseData(*, isPinned: bool, itemInstanceID: str, itemFileName: str)[source]

Bases: BaseModel

Data for authentication response.

isPinned: bool
itemInstanceID: str
itemFileName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.ItemPinResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.ItemPinResponse] = MessageType.ItemPinResponse, data: ItemPinResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.ItemPinResponse]
data: ItemPinResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingListRequestData(*, fillPostProcessingPresetsArray: bool = False, fillPostProcessingEffectsArray: bool = False, effectIDFilter: List[PostProcessingEffect] = [])[source]

Bases: BaseModel

Data for authentication request.

fillPostProcessingPresetsArray: bool
fillPostProcessingEffectsArray: bool
effectIDFilter: List[PostProcessingEffect]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingListRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.PostProcessingListRequest] = MessageType.PostProcessingListRequest, data: PostProcessingListRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.PostProcessingListRequest]
data: PostProcessingListRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingEffectConfigInfo(*, internalID: str, enumID: PostProcessingEffectConfigID, explanation: str, type: str, activationConfig: bool, floatValue: float, floatMin: float, floatMax: float, floatDefault: float, intValue: int, intMin: int, intMax: int, intDefault: int, colorValue: str, colorDefault: str, colorHasAlpha: bool, boolValue: bool, boolDefault: bool, stringValue: str, stringDefault: str, sceneItemValue: str, sceneItemDefault: str)[source]

Bases: BaseModel

internalID: str
enumID: PostProcessingEffectConfigID
explanation: str
type: str
activationConfig: bool
floatValue: float
floatMin: float
floatMax: float
floatDefault: float
intValue: int
intMin: int
intMax: int
intDefault: int
colorValue: str
colorDefault: str
colorHasAlpha: bool
boolValue: bool
boolDefault: bool
stringValue: str
stringDefault: str
sceneItemValue: str
sceneItemDefault: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingEffectInfo(*, internalID: str, enumID: str, explanation: str, effectIsActive: bool, effectIsRestricted: bool, configEntries: List[PostProcessingEffectConfigInfo])[source]

Bases: BaseModel

internalID: str
enumID: str
explanation: str
effectIsActive: bool
effectIsRestricted: bool
configEntries: List[PostProcessingEffectConfigInfo]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingListResponseData(*, postProcessingSupported: bool, postProcessingActive: bool, canSendPostProcessingUpdateRequestRightNow: bool, restrictedEffectsAllowed: bool, presetIsActive: bool, activePreset: str, presetCount: int, activeEffectCount: int, effectCountBeforeFilter: int, configCountBeforeFilter: int, effectCountAfterFilter: int, configCountAfterFilter: int, postProcessingEffects: List[PostProcessingEffectInfo], postProcessingPresets: List[str])[source]

Bases: BaseModel

Data for authentication response.

postProcessingSupported: bool
postProcessingActive: bool
canSendPostProcessingUpdateRequestRightNow: bool
restrictedEffectsAllowed: bool
presetIsActive: bool
activePreset: str
presetCount: int
activeEffectCount: int
effectCountBeforeFilter: int
configCountBeforeFilter: int
effectCountAfterFilter: int
configCountAfterFilter: int
postProcessingEffects: List[PostProcessingEffectInfo]
postProcessingPresets: List[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingListResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.PostProcessingListResponse] = MessageType.PostProcessingListResponse, data: PostProcessingListResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

messageType: Literal[MessageType.PostProcessingListResponse]
data: PostProcessingListResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingUpdateValue(*, configID: PostProcessingEffectConfigID, configValue: str)[source]

Bases: BaseModel

configID: PostProcessingEffectConfigID
configValue: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingUpdateRequestData(*, postProcessingOn: bool = False, setPostProcessingPreset: bool = False, setPostProcessingValues: bool = False, presetToSet: str | None = None, postProcessingFadeTime: Annotated[float, Ge(ge=0), Le(le=2)] = 0.25, setAllOtherValuesToDefault: bool = False, usingRestrictedEffects: bool = False, randomizeAll: bool = False, randomizeAllChaosLevel: Annotated[float, Ge(ge=0), Le(le=1)] = 0.5, postProcessingValues: List[PostProcessingUpdateValue] = [])[source]

Bases: BaseModel

Data for authentication request.

postProcessingOn: bool
setPostProcessingPreset: bool
setPostProcessingValues: bool
presetToSet: str | None
postProcessingFadeTime: float
setAllOtherValuesToDefault: bool
usingRestrictedEffects: bool
randomizeAll: bool
randomizeAllChaosLevel: float
postProcessingValues: List[PostProcessingUpdateValue]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingUpdateRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.PostProcessingUpdateRequest] = MessageType.PostProcessingUpdateRequest, data: PostProcessingUpdateRequestData)[source]

Bases: BaseRequest

Request to authenticate with VTube Studio.

messageType: Literal[MessageType.PostProcessingUpdateRequest]
data: PostProcessingUpdateRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingUpdateResponseData(*, postProcessingActive: bool, presetIsActive: bool, activePreset: str, activeEffectCount: int)[source]

Bases: BaseModel

Data for authentication response.

postProcessingActive: bool
presetIsActive: bool
activePreset: str
activeEffectCount: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.requests.PostProcessingUpdateResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.PostProcessingUpdateResponse] = MessageType.PostProcessingUpdateResponse, data: PostProcessingUpdateResponseData | ErrorData)[source]

Bases: BaseResponse

Response from authentication request.

model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

messageType: Literal[MessageType.PostProcessingUpdateResponse]
data: PostProcessingUpdateResponseData | ErrorData

Event Models

Event data models for VTube Studio API.

class vtpy.data.events.EventType(*values)[source]

Bases: Enum

Event type identifiers.

TestEvent = 'TestEvent'
ModelLoadedEvent = 'ModelLoadedEvent'
TrackingStatusChangedEvent = 'TrackingStatusChangedEvent'
BackgroundChangedEvent = 'BackgroundChangedEvent'
ModelConfigChangedEvent = 'ModelConfigChangedEvent'
ModelMovedEvent = 'ModelMovedEvent'
ModelOutlineEvent = 'ModelOutlineEvent'
HotkeyTriggeredEvent = 'HotkeyTriggeredEvent'
ModelAnimationEvent = 'ModelAnimationEvent'
ItemEvent = 'ItemEvent'
ModelClickedEvent = 'ModelClickedEvent'
PostProcessingEvent = 'PostProcessingEvent'
Live2DCubismEditorConnectedEvent = 'Live2DCubismEditorConnectedEvent'
class vtpy.data.events.WindowSize(*, x: float, y: float)[source]

Bases: BaseModel

x: float
y: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.AnimationEventType(*values)[source]

Bases: Enum

Custom = 'Custom'
Start = 'Start'
End = 'End'
class vtpy.data.events.ItemEventType(*values)[source]

Bases: Enum

Added = 'Added'
Removed = 'Removed'
DroppedPinned = 'DroppedPinned'
DroppedUnpinned = 'DroppedUnpinned'
Clicked = 'Clicked'
Locked = 'Locked'
Unlocked = 'Unlocked'
class vtpy.data.events.BaseEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest)[source]

Bases: BaseRequest

Request to subscribe to events.

messageType: Literal[MessageType.EventSubscriptionRequest]
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.EventSubscriptionResponseData(*, subscribedEventCount: int, subscribedEvents: List[EventType])[source]

Bases: BaseModel

Data for event subscription response.

subscribedEventCount: int
subscribedEvents: List[EventType]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.EventSubscriptionResponse(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionResponse] = MessageType.EventSubscriptionResponse, data: EventSubscriptionResponseData | ErrorData)[source]

Bases: BaseResponse

Response from event subscription request.

messageType: Literal[MessageType.EventSubscriptionResponse]
data: EventSubscriptionResponseData | ErrorData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.MouseButtonID(*values)[source]

Bases: Enum

Left = 0
Right = 1
Middle = 2
class vtpy.data.events.TestEventSubscriptionRequestConfig(*, testMessageForEvent: str | None = None)[source]

Bases: BaseModel

Config for test event subscription request.

testMessageForEvent: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TestEventSubscriptionRequestData(*, eventName: Literal[EventType.TestEvent] = EventType.TestEvent, subscribe: bool = True, config: TestEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Config for test event subscription request.

eventName: Literal[EventType.TestEvent]
subscribe: bool
config: TestEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TestEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: TestEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: TestEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TestEventData(*, yourTestMessage: str, counter: int)[source]

Bases: BaseModel

Data for model loaded event.

yourTestMessage: str
counter: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TestEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.TestEvent] = EventType.TestEvent, data: TestEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.TestEvent]
data: TestEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelLoadedEventSubscriptionRequestConfig(*, modelID: List[str] | None = None)[source]

Bases: BaseModel

Config for model loaded event subscription request.

modelID: List[str] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelLoadedEventSubscriptionRequestData(*, eventName: Literal[EventType.ModelLoadedEvent] = EventType.ModelLoadedEvent, subscribe: bool = True, config: ModelLoadedEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.ModelLoadedEvent]
subscribe: bool
config: ModelLoadedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelLoadedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ModelLoadedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ModelLoadedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelLoadedEventData(*, modelLoaded: bool, modelName: str, modelID: str)[source]

Bases: BaseModel

Data for model loaded event.

modelLoaded: bool
modelName: str
modelID: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelLoadedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ModelLoadedEvent] = EventType.ModelLoadedEvent, data: ModelLoadedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ModelLoadedEvent]
data: ModelLoadedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TrackingStatusChangedEventSubscriptionRequestConfig[source]

Bases: BaseModel

Config for model loaded event subscription request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TrackingStatusChangedEventSubscriptionRequestData(*, eventName: Literal[EventType.TrackingStatusChangedEvent] = EventType.TrackingStatusChangedEvent, subscribe: bool = True, config: TrackingStatusChangedEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.TrackingStatusChangedEvent]
subscribe: bool
config: TrackingStatusChangedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TrackingStatusChangedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: TrackingStatusChangedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: TrackingStatusChangedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TrackingStatusChangedEventData(*, faceFound: bool, leftHandFound: bool, rightHandFound: bool)[source]

Bases: BaseModel

Data for model loaded event.

faceFound: bool
leftHandFound: bool
rightHandFound: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.TrackingStatusChangedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.TrackingStatusChangedEvent] = EventType.TrackingStatusChangedEvent, data: TrackingStatusChangedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.TrackingStatusChangedEvent]
data: TrackingStatusChangedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.BackgroundChangedEventSubscriptionRequestConfig[source]

Bases: BaseModel

Config for model loaded event subscription request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.BackgroundChangedEventSubscriptionRequestData(*, eventName: Literal[EventType.BackgroundChangedEvent] = EventType.BackgroundChangedEvent, subscribe: bool = True, config: BackgroundChangedEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.BackgroundChangedEvent]
subscribe: bool
config: BackgroundChangedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.BackgroundChangedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: BackgroundChangedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: BackgroundChangedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.BackgroundChangedEventData(*, backgroundName: str)[source]

Bases: BaseModel

Data for model loaded event.

backgroundName: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.BackgroundChangedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.BackgroundChangedEvent] = EventType.BackgroundChangedEvent, data: BackgroundChangedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.BackgroundChangedEvent]
data: BackgroundChangedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelConfigChangedEventSubscriptionRequestConfig[source]

Bases: BaseModel

Config for model loaded event subscription request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelConfigChangedEventSubscriptionRequestData(*, eventName: Literal[EventType.ModelConfigChangedEvent] = EventType.ModelConfigChangedEvent, subscribe: bool = True, config: ModelConfigChangedEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.ModelConfigChangedEvent]
subscribe: bool
config: ModelConfigChangedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelConfigChangedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ModelConfigChangedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ModelConfigChangedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelConfigChangedEventData(*, modelID: str, modelName: str, hotkeyConfigChanged: bool)[source]

Bases: BaseModel

Data for model loaded event.

modelID: str
modelName: str
hotkeyConfigChanged: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelConfigChangedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ModelConfigChangedEvent] = EventType.ModelConfigChangedEvent, data: ModelConfigChangedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ModelConfigChangedEvent]
data: ModelConfigChangedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelMovedEventSubscriptionRequestConfig[source]

Bases: BaseModel

Config for model loaded event subscription request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelMovedEventSubscriptionRequestData(*, eventName: Literal[EventType.ModelMovedEvent] = EventType.ModelMovedEvent, subscribe: bool = True, config: ModelMovedEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.ModelMovedEvent]
subscribe: bool
config: ModelMovedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelMovedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ModelMovedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ModelMovedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelPositionData(*, positionX: float, positionY: float, rotation: float, size: float)[source]

Bases: BaseModel

Data for model position.

positionX: float
positionY: float
rotation: float
size: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelMovedEventData(*, modelID: str, modelName: str, modelPosition: ModelPositionData)[source]

Bases: BaseModel

Data for model loaded event.

modelID: str
modelName: str
modelPosition: ModelPositionData
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelMovedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ModelMovedEvent] = EventType.ModelMovedEvent, data: ModelMovedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ModelMovedEvent]
data: ModelMovedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelOutlineEventSubscriptionRequestConfig(*, draw: bool | None = None)[source]

Bases: BaseModel

Config for model loaded event subscription request.

draw: bool | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelOutlineEventSubscriptionRequestData(*, eventName: Literal[EventType.ModelOutlineEvent] = EventType.ModelOutlineEvent, subscribe: bool = True, config: ModelOutlineEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.ModelOutlineEvent]
subscribe: bool
config: ModelOutlineEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelOutlineEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ModelOutlineEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ModelOutlineEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ConvexHullPoint(*, x: float, y: float)[source]

Bases: BaseModel

x: float
y: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelOutlineEventData(*, modelID: str, modelName: str, convexHull: List[ConvexHullPoint], convexHullCenter: ConvexHullPoint, windowSize: WindowSize)[source]

Bases: BaseModel

Data for model loaded event.

modelID: str
modelName: str
convexHull: List[ConvexHullPoint]
convexHullCenter: ConvexHullPoint
windowSize: WindowSize
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelOutlineEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ModelOutlineEvent] = EventType.ModelOutlineEvent, data: ModelOutlineEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ModelOutlineEvent]
data: ModelOutlineEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.HotkeyTriggeredEventSubscriptionRequestConfig(*, onlyForAction: HotkeyAction | None = None, ignoreHotkeysTriggeredByAPI: bool = False)[source]

Bases: BaseModel

Config for model loaded event subscription request.

onlyForAction: HotkeyAction | None
ignoreHotkeysTriggeredByAPI: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.HotkeyTriggeredEventSubscriptionRequestData(*, eventName: Literal[EventType.HotkeyTriggeredEvent] = EventType.HotkeyTriggeredEvent, subscribe: bool = True, config: HotkeyTriggeredEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.HotkeyTriggeredEvent]
subscribe: bool
config: HotkeyTriggeredEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.HotkeyTriggeredEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: HotkeyTriggeredEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: HotkeyTriggeredEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.HotkeyTriggeredEventData(*, hotkeyID: str, hotkeyName: str, hotkeyAction: HotkeyAction, hotkeyFile: str, hotkeyTriggeredByAPI: bool, modelID: str, modelName: str, isLive2DItem: bool)[source]

Bases: BaseModel

Data for model loaded event.

hotkeyID: str
hotkeyName: str
hotkeyAction: HotkeyAction
hotkeyFile: str
hotkeyTriggeredByAPI: bool
modelID: str
modelName: str
isLive2DItem: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.HotkeyTriggeredEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.HotkeyTriggeredEvent] = EventType.HotkeyTriggeredEvent, data: HotkeyTriggeredEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.HotkeyTriggeredEvent]
data: HotkeyTriggeredEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelAnimationEventSubscriptionRequestConfig(*, ignoreLive2DItems: bool = False, ignoreIdleAnimations: bool = False)[source]

Bases: BaseModel

Config for model loaded event subscription request.

ignoreLive2DItems: bool
ignoreIdleAnimations: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelAnimationEventSubscriptionRequestData(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, eventName: Literal[EventType.ModelAnimationEvent] = EventType.ModelAnimationEvent, subscribe: bool = True, config: ModelAnimationEventSubscriptionRequestConfig)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

eventName: Literal[EventType.ModelAnimationEvent]
subscribe: bool
config: ModelAnimationEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelAnimationEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ModelAnimationEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ModelAnimationEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelAnimationEventData(*, animationEventType: AnimationEventType, animationEventTime: float, animationEventData: str, animationName: str, animationLength: float, isIdleAnimation: bool, modelID: str, modelName: str, isLive2DItem: bool)[source]

Bases: BaseModel

Data for model loaded event.

animationEventType: AnimationEventType
animationEventTime: float
animationEventData: str
animationName: str
animationLength: float
isIdleAnimation: bool
modelID: str
modelName: str
isLive2DItem: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelAnimationEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ModelAnimationEvent] = EventType.ModelAnimationEvent, data: ModelAnimationEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ModelAnimationEvent]
data: ModelAnimationEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ItemEventSubscriptionRequestConfig(*, itemInstanceIDs: List[str] | None = None, itemFileNames: List[str] | None = None)[source]

Bases: BaseModel

Config for model loaded event subscription request.

itemInstanceIDs: List[str] | None
itemFileNames: List[str] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ItemEventSubscriptionRequestData(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, eventName: Literal[EventType.ItemEvent] = EventType.ItemEvent, subscribe: bool = True, config: ItemEventSubscriptionRequestConfig)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

eventName: Literal[EventType.ItemEvent]
subscribe: bool
config: ItemEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ItemEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ItemEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ItemEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ItemPosition(*, x: float, y: float)[source]

Bases: BaseModel

x: float
y: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ItemEventData(*, itemEventType: ItemEventType, itemInstanceID: str, itemFileName: str, itemPosition: ItemPosition)[source]

Bases: BaseModel

Data for model loaded event.

itemEventType: ItemEventType
itemInstanceID: str
itemFileName: str
itemPosition: ItemPosition
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ItemEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ItemEvent] = EventType.ItemEvent, data: ItemEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ItemEvent]
data: ItemEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelClickedEventSubscriptionRequestConfig(*, onlyClicksOnModel: bool | None = True)[source]

Bases: BaseModel

Config for model loaded event subscription request.

onlyClicksOnModel: bool | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelClickedEventSubscriptionRequestData(*, eventName: Literal[EventType.ModelClickedEvent] = EventType.ModelClickedEvent, subscribe: bool = True, config: ModelClickedEventSubscriptionRequestConfig)[source]

Bases: BaseModel

Request to subscribe to model loaded events.

eventName: Literal[EventType.ModelClickedEvent]
subscribe: bool
config: ModelClickedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelClickedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: ModelClickedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: ModelClickedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.HitInfo(*, modelID: str, artMeshID: str, angle: float, size: float, vertexID1: int, vertexID2: int, vertexID3: int, vertexWeight1: float, vertexWeight2: float, vertexWeight3: float)[source]

Bases: BaseModel

modelID: str
artMeshID: str
angle: float
size: float
vertexID1: int
vertexID2: int
vertexID3: int
vertexWeight1: float
vertexWeight2: float
vertexWeight3: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ArtMeshHit(*, artMeshOrder: int, isMasked: bool, hitInfo: HitInfo)[source]

Bases: BaseModel

artMeshOrder: int
isMasked: bool
hitInfo: HitInfo
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ClickPosition(*, x: float, y: float)[source]

Bases: BaseModel

x: float
y: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelClickedEventData(*, modelLoaded: bool, loadedModelID: str, loadedModelName: str, modelWasClicked: bool, mouseButtonID: MouseButtonID, clickPosition: ClickPosition, windowSize: WindowSize, clickedArtMeshCount: int, artMeshHits: List[ArtMeshHit])[source]

Bases: BaseModel

Data for model loaded event.

modelLoaded: bool
loadedModelID: str
loadedModelName: str
modelWasClicked: bool
mouseButtonID: MouseButtonID
clickPosition: ClickPosition
windowSize: WindowSize
clickedArtMeshCount: int
artMeshHits: List[ArtMeshHit]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.ModelClickedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.ModelClickedEvent] = EventType.ModelClickedEvent, data: ModelClickedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.ModelClickedEvent]
data: ModelClickedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.PostProcessingEventSubscriptionRequestConfig[source]

Bases: BaseModel

Config for model loaded event subscription request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.PostProcessingEventSubscriptionRequestData(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, eventName: Literal[EventType.PostProcessingEvent] = EventType.PostProcessingEvent, subscribe: bool = True, config: PostProcessingEventSubscriptionRequestConfig)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

eventName: Literal[EventType.PostProcessingEvent]
subscribe: bool
config: PostProcessingEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.PostProcessingEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: PostProcessingEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: PostProcessingEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.PostProcessingEventData(*, currentState: bool, currentPreset: str)[source]

Bases: BaseModel

Data for model loaded event.

currentState: bool
currentPreset: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.PostProcessingEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.PostProcessingEvent] = EventType.PostProcessingEvent, data: PostProcessingEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.PostProcessingEvent]
data: PostProcessingEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.Live2DCubismEditorConnectedEventSubscriptionRequestConfig[source]

Bases: BaseModel

Config for model loaded event subscription request.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.Live2DCubismEditorConnectedEventSubscriptionRequestData(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, eventName: Literal[EventType.Live2DCubismEditorConnectedEvent] = EventType.Live2DCubismEditorConnectedEvent, subscribe: bool = True, config: Live2DCubismEditorConnectedEventSubscriptionRequestConfig)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

eventName: Literal[EventType.Live2DCubismEditorConnectedEvent]
subscribe: bool
config: Live2DCubismEditorConnectedEventSubscriptionRequestConfig
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.Live2DCubismEditorConnectedEventSubscriptionRequest(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', requestID: str | None = None, messageType: Literal[MessageType.EventSubscriptionRequest] = MessageType.EventSubscriptionRequest, data: Live2DCubismEditorConnectedEventSubscriptionRequestData)[source]

Bases: BaseEventSubscriptionRequest

Request to subscribe to model loaded events.

data: Live2DCubismEditorConnectedEventSubscriptionRequestData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.Live2DCubismEditorConnectedEventData(*, tryingToConnect: bool, connected: bool, shouldSendParameters: bool)[source]

Bases: BaseModel

Data for model loaded event.

tryingToConnect: bool
connected: bool
shouldSendParameters: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class vtpy.data.events.Live2DCubismEditorConnectedEvent(*, apiName: Literal['VTubeStudioPublicAPI'] = 'VTubeStudioPublicAPI', apiVersion: Literal['1.0'] = '1.0', timestamp: int, requestID: str | None = None, messageType: Literal[EventType.Live2DCubismEditorConnectedEvent] = EventType.Live2DCubismEditorConnectedEvent, data: Live2DCubismEditorConnectedEventData)[source]

Bases: BaseEvent

Event fired when a model is loaded.

messageType: Literal[EventType.Live2DCubismEditorConnectedEvent]
data: Live2DCubismEditorConnectedEventData
model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

Effects Models

class vtpy.data.effects.PostProcessingEffect(*values)

Bases: Enum

ColorGrading = 'ColorGrading'
WeatherEffect = 'WeatherEffect'
Bloom = 'Bloom'
Backlight = 'Backlight'
CustomParticles = 'CustomParticl'
BackgroundShift = 'BackgroundShi'
SimpleOverlay = 'SimpleOverlay'
Vignette = 'Vignette'
ChromaticAberration = 'ChromaticAberration'
OldFilm = 'OldFilm'
Lowfps = 'Lowfps'
Datamosh = 'Datamosh'
LineScanner = 'LineScanner'
ParticleShower = 'ParticleShower'
AnalogGlitch = 'AnalogGlitch'
DigitalGlitch = 'DigitalGlitch'
Letterbox = 'Letterbox'
FoggyWindow = 'FoggyWindow'
Speedlines = 'Speedlines'
Pixelation = 'Pixelation'
LensDistortion = 'LensDistortion'
WaveDistortion = 'WaveDistortion'
BlurEffects = 'BlurEffects'
Grain = 'Grain'
Vhs = 'Vhs'
Outline = 'Outline'
Posterize = 'Posterize'
Ascii = 'Ascii'
ModelGlitch = 'ModelGlitch'
class vtpy.data.effects.PostProcessingEffectConfigID(*values)

Bases: Enum

ColorGrading_Strength = 'ColorGrading_Strength'
ColorGrading_HueShift = 'ColorGrading_HueShift'
ColorGrading_Saturation = 'ColorGrading_Saturation'
ColorGrading_Brightness = 'ColorGrading_Brightness'
ColorGrading_Contrast = 'ColorGrading_Contrast'
ColorGrading_ColorFilter = 'ColorGrading_ColorFilter'
ColorGrading_WhitebalanceTemperature = 'ColorGrading_WhitebalanceTemperature'
ColorGrading_WhitebalanceTint = 'ColorGrading_WhitebalanceTint'
ColorGrading_Invert = 'ColorGrading_Invert'
WeatherEffects_RainStrength = 'WeatherEffects_RainStrength'
WeatherEffects_SnowStrength = 'WeatherEffects_SnowStrength'
WeatherEffects_RainInFront = 'WeatherEffects_RainInFront'
WeatherEffects_SnowInFront = 'WeatherEffects_SnowInFront'
Bloom_Strength = 'Bloom_Strength'
Bloom_ModelColorDarken = 'Bloom_ModelColorDarken'
Bloom_BackgroundColorDarken = 'Bloom_BackgroundColorDarken'
Bloom_MainThreshold = 'Bloom_MainThreshold'
Bloom_MainIntensity = 'Bloom_MainIntensity'
Bloom_MainColorTint = 'Bloom_MainColorTint'
Bloom_StreakThreshold = 'Bloom_StreakThreshold'
Bloom_StreakIntensity = 'Bloom_StreakIntensity'
Bloom_StreakColorTint = 'Bloom_StreakColorTint'
Bloom_StreakVertical = 'Bloom_StreakVertical'
Bloom_MicIncreasesBloom = 'Bloom_MicIncreasesBloom'
Bloom_Quality = 'Bloom_Quality'
Backlight_Strength = 'Backlight_Strength'
Backlight_BgBlurOverModel = 'Backlight_BgBlurOverModel'
Backlight_BgBlurOverBg = 'Backlight_BgBlurOverBg'
Backlight_DarkenModel = 'Backlight_DarkenModel'
Backlight_DarkenBg = 'Backlight_DarkenBg'
Backlight_StrengthNormal = 'Backlight_StrengthNormal'
Backlight_StrengthDirectional = 'Backlight_StrengthDirectional'
Backlight_BrightnessLimit = 'Backlight_BrightnessLimit'
Backlight_BacklightDirection = 'Backlight_BacklightDirection'
Backlight_BacklightBothDirections = 'Backlight_BacklightBothDirections'
Backlight_BacklightSoftness = 'Backlight_BacklightSoftness'
Backlight_BacklightColorTint = 'Backlight_BacklightColorTint'
Backlight_BacklightColorFromBg = 'Backlight_BacklightColorFromBg'
Backlight_OutlineSize = 'Backlight_OutlineSize'
Backlight_OutlineColorMain = 'Backlight_OutlineColorMain'
Backlight_OutlineColorStripes = 'Backlight_OutlineColorStripes'
Backlight_OutlineStripeCount = 'Backlight_OutlineStripeCount'
Backlight_OutlineStripeSpeed = 'Backlight_OutlineStripeSpeed'
Backlight_OutlineStripeCurve = 'Backlight_OutlineStripeCurve'
Backlight_ShadowMainColor = 'Backlight_ShadowMainColor'
Backlight_ShadowOffsetX = 'Backlight_ShadowOffsetX'
Backlight_ShadowOffsetY = 'Backlight_ShadowOffsetY'
CustomParticles_Strength = 'CustomParticles_Strength'
CustomParticles_BaseMoveWithHead = 'CustomParticles_BaseMoveWithHead'
CustomParticles_SparkleStrength = 'CustomParticles_SparkleStrength'
CustomParticles_SparkleSize = 'CustomParticles_SparkleSize'
CustomParticles_SparkleColorA = 'CustomParticles_SparkleColorA'
CustomParticles_SparkleColorB = 'CustomParticles_SparkleColorB'
CustomParticles_FloatyStrength = 'CustomParticles_FloatyStrength'
CustomParticles_FloatySize = 'CustomParticles_FloatySize'
CustomParticles_FloatyColorA = 'CustomParticles_FloatyColorA'
CustomParticles_FloatyColorB = 'CustomParticles_FloatyColorB'
CustomParticles_CloudStrength = 'CustomParticles_CloudStrength'
CustomParticles_CloudSize = 'CustomParticles_CloudSize'
CustomParticles_CloudColorA = 'CustomParticles_CloudColorA'
CustomParticles_CloudColorB = 'CustomParticles_CloudColorB'
CustomParticles_SphereStrength = 'CustomParticles_SphereStrength'
CustomParticles_SphereSize = 'CustomParticles_SphereSize'
CustomParticles_SphereColorA = 'CustomParticles_SphereColorA'
CustomParticles_SphereColorB = 'CustomParticles_SphereColorB'
CustomParticles_HeartsStrength = 'CustomParticles_HeartsStrength'
CustomParticles_HeartsSize = 'CustomParticles_HeartsSize'
CustomParticles_HeartsColorA = 'CustomParticles_HeartsColorA'
CustomParticles_HeartsColorB = 'CustomParticles_HeartsColorB'
CustomParticles_Custom1TextureFile = 'CustomParticles_Custom1TextureFile'
CustomParticles_Custom1ColorA = 'CustomParticles_Custom1ColorA'
CustomParticles_Custom1ColorB = 'CustomParticles_Custom1ColorB'
CustomParticles_Custom1MaterialTypeId = 'CustomParticles_Custom1MaterialTypeId'
CustomParticles_Custom1InBack = 'CustomParticles_Custom1InBack'
CustomParticles_Custom1MoveWithHead = 'CustomParticles_Custom1MoveWithHead'
CustomParticles_Custom1Size = 'CustomParticles_Custom1Size'
CustomParticles_Custom1Amount = 'CustomParticles_Custom1Amount'
CustomParticles_Custom1FillToCenter = 'CustomParticles_Custom1FillToCenter'
CustomParticles_Custom1BaseRotation = 'CustomParticles_Custom1BaseRotation'
CustomParticles_Custom1RotationSpeed = 'CustomParticles_Custom1RotationSpeed'
CustomParticles_Custom1MoveFasterMicVol = 'CustomParticles_Custom1MoveFasterMicVol'
CustomParticles_Custom2TextureFile = 'CustomParticles_Custom2TextureFile'
CustomParticles_Custom2ColorA = 'CustomParticles_Custom2ColorA'
CustomParticles_Custom2ColorB = 'CustomParticles_Custom2ColorB'
CustomParticles_Custom2MaterialTypeId = 'CustomParticles_Custom2MaterialTypeId'
CustomParticles_Custom2InBack = 'CustomParticles_Custom2InBack'
CustomParticles_Custom2MoveWithHead = 'CustomParticles_Custom2MoveWithHead'
CustomParticles_Custom2Size = 'CustomParticles_Custom2Size'
CustomParticles_Custom2Amount = 'CustomParticles_Custom2Amount'
CustomParticles_Custom2FillToCenter = 'CustomParticles_Custom2FillToCenter'
CustomParticles_Custom2BaseRotation = 'CustomParticles_Custom2BaseRotation'
CustomParticles_Custom2RotationSpeed = 'CustomParticles_Custom2RotationSpeed'
CustomParticles_Custom2MoveFasterMicVol = 'CustomParticles_Custom2MoveFasterMicVol'
BackgroundShift_Strength = 'BackgroundShift_Strength'
BackgroundShift_ZoomIn = 'BackgroundShift_ZoomIn'
BackgroundShift_MicZoomIn = 'BackgroundShift_MicZoomIn'
BackgroundShift_TrackingX = 'BackgroundShift_TrackingX'
BackgroundShift_TrackingY = 'BackgroundShift_TrackingY'
BackgroundShift_TrackingSmoothing = 'BackgroundShift_TrackingSmoothing'
BackgroundShift_RandomMovementX = 'BackgroundShift_RandomMovementX'
BackgroundShift_RandomMovementY = 'BackgroundShift_RandomMovementY'
BackgroundShift_RandomMovementRotation = 'BackgroundShift_RandomMovementRotation'
BackgroundShift_RandomMovementSpeed = 'BackgroundShift_RandomMovementSpeed'
BackgroundShift_BlurMixBack = 'BackgroundShift_BlurMixBack'
BackgroundShift_BlurMainBack = 'BackgroundShift_BlurMainBack'
BackgroundShift_BlurBrightnessBack = 'BackgroundShift_BlurBrightnessBack'
BackgroundShift_BlurMixFront = 'BackgroundShift_BlurMixFront'
BackgroundShift_BlurMainFront = 'BackgroundShift_BlurMainFront'
BackgroundShift_BlurBrightnessFront = 'BackgroundShift_BlurBrightnessFront'
SimpleOverlay_Strength = 'SimpleOverlay_Strength'
SimpleOverlay_TextureFile = 'SimpleOverlay_TextureFile'
SimpleOverlay_ZoomIn = 'SimpleOverlay_ZoomIn'
SimpleOverlay_TrackingX = 'SimpleOverlay_TrackingX'
SimpleOverlay_TrackingY = 'SimpleOverlay_TrackingY'
SimpleOverlay_TrackingSmoothing = 'SimpleOverlay_TrackingSmoothing'
SimpleOverlay_RandomMovementX = 'SimpleOverlay_RandomMovementX'
SimpleOverlay_RandomMovementY = 'SimpleOverlay_RandomMovementY'
SimpleOverlay_RandomMovementRotation = 'SimpleOverlay_RandomMovementRotation'
SimpleOverlay_RandomMovementSpeed = 'SimpleOverlay_RandomMovementSpeed'
SimpleOverlay_TintColor = 'SimpleOverlay_TintColor'
Vignette_Strength = 'Vignette_Strength'
Vignette_Smoothness = 'Vignette_Smoothness'
Vignette_Color = 'Vignette_Color'
Vignette_CenterX = 'Vignette_CenterX'
Vignette_CenterY = 'Vignette_CenterY'
Vignette_Roundness = 'Vignette_Roundness'
Vignette_Circular = 'Vignette_Circular'
ChromaticAberration_Strength = 'ChromaticAberration_Strength'
ChromaticAberration_BlurEdges = 'ChromaticAberration_BlurEdges'
OldFilm_Strength = 'OldFilm_Strength'
OldFilm_FilmFps = 'OldFilm_FilmFps'
OldFilm_FilmContrast = 'OldFilm_FilmContrast'
OldFilm_FilmBurn = 'OldFilm_FilmBurn'
OldFilm_FilmSceneCut = 'OldFilm_FilmSceneCut'
Lowfps_Strength = 'Lowfps_Strength'
Lowfps_FpsLimit = 'Lowfps_FpsLimit'
Lowfps_FpsRandom = 'Lowfps_FpsRandom'
Lowfps_ScreenTearing = 'Lowfps_ScreenTearing'
Datamosh_Strength = 'Datamosh_Strength'
Datamosh_Size = 'Datamosh_Size'
Datamosh_ResetAfterSecs = 'Datamosh_ResetAfterSecs'
Datamosh_Entropy = 'Datamosh_Entropy'
Datamosh_NoiseContrast = 'Datamosh_NoiseContrast'
Datamosh_VelocityScale = 'Datamosh_VelocityScale'
Datamosh_Diffusion = 'Datamosh_Diffusion'
LineScanner_Strength = 'LineScanner_Strength'
LineScanner_Direction = 'LineScanner_Direction'
LineScanner_ScanStepTotal = 'LineScanner_ScanStepTotal'
LineScanner_ScanStepSize = 'LineScanner_ScanStepSize'
LineScanner_ScanLineColor = 'LineScanner_ScanLineColor'
LineScanner_ScanLineSize = 'LineScanner_ScanLineSize'
LineScanner_ScanLineWaitBetweenScansSecs = 'LineScanner_ScanLineWaitBetweenScansSecs'
ParticleShower_Strength = 'ParticleShower_Strength'
ParticleShower_TextureFile1 = 'ParticleShower_TextureFile1'
ParticleShower_TextureFile2 = 'ParticleShower_TextureFile2'
ParticleShower_TextureFile3 = 'ParticleShower_TextureFile3'
ParticleShower_Speed1 = 'ParticleShower_Speed1'
ParticleShower_Speed2 = 'ParticleShower_Speed2'
ParticleShower_Speed3 = 'ParticleShower_Speed3'
ParticleShower_InBack1 = 'ParticleShower_InBack1'
ParticleShower_InBack2 = 'ParticleShower_InBack2'
ParticleShower_InBack3 = 'ParticleShower_InBack3'
AnalogGlitch_Strength = 'AnalogGlitch_Strength'
AnalogGlitch_ScanlineJitter = 'AnalogGlitch_ScanlineJitter'
AnalogGlitch_VerticalJump = 'AnalogGlitch_VerticalJump'
AnalogGlitch_HorizontalShake = 'AnalogGlitch_HorizontalShake'
AnalogGlitch_ColorDrift = 'AnalogGlitch_ColorDrift'
AnalogGlitch_MicEffect = 'AnalogGlitch_MicEffect'
DigitalGlitch_Strength = 'DigitalGlitch_Strength'
DigitalGlitch_Colorshift = 'DigitalGlitch_Colorshift'
DigitalGlitch_MicEffect = 'DigitalGlitch_MicEffect'
Letterbox_Strength = 'Letterbox_Strength'
Letterbox_ProgressY = 'Letterbox_ProgressY'
Letterbox_ProgressX = 'Letterbox_ProgressX'
Letterbox_Zoom = 'Letterbox_Zoom'
Letterbox_Color = 'Letterbox_Color'
FoggyWindow_Strength = 'FoggyWindow_Strength'
FoggyWindow_FogStrength = 'FoggyWindow_FogStrength'
FoggyWindow_FogTint = 'FoggyWindow_FogTint'
FoggyWindow_FogBoost = 'FoggyWindow_FogBoost'
FoggyWindow_RaindropVisibility = 'FoggyWindow_RaindropVisibility'
FoggyWindow_RaindropSpeed = 'FoggyWindow_RaindropSpeed'
FoggyWindow_RaindropSize = 'FoggyWindow_RaindropSize'
FoggyWindow_FogWipeSize = 'FoggyWindow_FogWipeSize'
FoggyWindow_FogWipeLifetimeSeconds = 'FoggyWindow_FogWipeLifetimeSeconds'
FoggyWindow_FogLifetimeInfinite = 'FoggyWindow_FogLifetimeInfinite'