# Class: CharacterBaseModel (/jsdoc/pixi-vn/index/classes/CharacterBaseModel)



Defined in: [src/characters/classes/CharacterBaseModel.ts:33](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L33)

CharacterBaseModel is a class that is used to create a character model.
You must use the [RegisteredCharacters.add](/jsdoc/pixi-vn/index/namespaces/RegisteredCharacters/functions/add) function to save the character in the game.
It is raccomended to create your own class Character, read more here: [https://pixi-vn.com/start/character.html#custom-character](https://pixi-vn.com/start/character.html#custom-character)

Example [#example]

```ts
import { CharacterBaseModel, RegisteredCharacters } from "@drincs/pixi-vn";

export const liam = new CharacterBaseModel("liam", {
    name: "Liam",
    surname: "Smith",
    age: 25,
    icon: "https://example.com/liam.png",
    color: "#9e2e12",
});

export const emma = new CharacterBaseModel("emma", {
    name: "Emma",
    surname: "Johnson",
    age: 23,
    icon: "https://example.com/emma.png",
    color: "#9e2e12",
});

RegisteredCharacters.add([liam, emma]);
```

Extends [#extends]

* [`CharacterStoredClass`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass)

Constructors [#constructors]

Constructor [#constructor]

\> **new CharacterBaseModel**(`id`, `props`): `CharacterBaseModel`

Defined in: [src/characters/classes/CharacterBaseModel.ts:38](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L38)

Parameters [#parameters]

id [#id]

`string` | [`CharacterEmotionId`](/jsdoc/pixi-vn/index/interfaces/CharacterEmotionId)

A unique identifier (string). It is used to reference the character in the game (must be unique). If you want to create a character with an "emotion", you can pass an object.

props [#props]

`CharacterBaseModelProps`

The properties of the character.

Returns [#returns]

`CharacterBaseModel`

Overrides [#overrides]

[`CharacterStoredClass`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass).[`constructor`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass#constructor)

Properties [#properties]

color? [#color]

\> `readonly` `optional` &#x2A;*color?**: `string`

Defined in: [src/characters/classes/CharacterBaseModel.ts:86](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L86)

The color of the character.

***

defaultAge? [#defaultage]

\> `readonly` `optional` &#x2A;*defaultAge?**: `number`

Defined in: [src/characters/classes/CharacterBaseModel.ts:68](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L68)

***

defaultName? [#defaultname]

\> `readonly` `optional` &#x2A;*defaultName?**: `string`

Defined in: [src/characters/classes/CharacterBaseModel.ts:46](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L46)

***

defaultSurname? [#defaultsurname]

\> `readonly` `optional` &#x2A;*defaultSurname?**: `string`

Defined in: [src/characters/classes/CharacterBaseModel.ts:57](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L57)

***

icon? [#icon]

\> `readonly` `optional` &#x2A;*icon?**: `string`

Defined in: [src/characters/classes/CharacterBaseModel.ts:82](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L82)

The icon of the character.

***

id [#id-1]

\> `readonly` **id**: `string`

Defined in: [src/storage/classes/StoredClassModel.ts:63](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/storage/classes/StoredClassModel.ts#L63)

Is id of the stored class. is unique for this class.

Inherited from [#inherited-from]

[`CharacterStoredClass`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass).[`id`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass#id)

Accessors [#accessors]

age [#age]

Get Signature [#get-signature]

\> **get** **age**(): `number` | `undefined`

Defined in: [src/characters/classes/CharacterBaseModel.ts:73](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L73)

The age of the character.
If you set undefined, it will return the default age.

Returns [#returns-1]

`number` | `undefined`

Set Signature [#set-signature]

\> **set** **age**(`value`): `void`

Defined in: [src/characters/classes/CharacterBaseModel.ts:76](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L76)

Parameters [#parameters-1]

value [#value]

`number` | `undefined`

Returns [#returns-2]

`void`

***

name [#name]

Get Signature [#get-signature-1]

\> **get** **name**(): `string`

Defined in: [src/characters/classes/CharacterBaseModel.ts:51](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L51)

The name of the character.
If you set undefined, it will return the default name.

Returns [#returns-3]

`string`

Set Signature [#set-signature-1]

\> **set** **name**(`value`): `void`

Defined in: [src/characters/classes/CharacterBaseModel.ts:54](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L54)

Parameters [#parameters-2]

value [#value-1]

`string` | `undefined`

Returns [#returns-4]

`void`

***

surname [#surname]

Get Signature [#get-signature-2]

\> **get** **surname**(): `string` | `undefined`

Defined in: [src/characters/classes/CharacterBaseModel.ts:62](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L62)

The surname of the character.
If you set undefined, it will return the default surname.

Returns [#returns-5]

`string` | `undefined`

Set Signature [#set-signature-2]

\> **set** **surname**(`value`): `void`

Defined in: [src/characters/classes/CharacterBaseModel.ts:65](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterBaseModel.ts#L65)

Parameters [#parameters-3]

value [#value-2]

`string` | `undefined`

Returns [#returns-6]

`void`

Methods [#methods]

getStorageProperty() [#getstorageproperty]

\> **getStorageProperty**\<`T`>(`propertyName`): `T` | `undefined`

Defined in: [src/characters/classes/CharacterStoredClass.ts:16](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/characters/classes/CharacterStoredClass.ts#L16)

Get a property from the storage.

Type Parameters [#type-parameters]

T [#t]

`T`

Parameters [#parameters-4]

propertyName [#propertyname]

`string`

The name of the property to get.

Returns [#returns-7]

`T` | `undefined`

The value of the property. If the property is not found, returns undefined.

Default [#default]

```ts
this.id
```

Inherited from [#inherited-from-1]

[`CharacterStoredClass`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass).[`getStorageProperty`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass#getstorageproperty)

***

migrateOldStorage() [#migrateoldstorage]

\> `protected` **migrateOldStorage**(`oldCategoryId?`): `void`

Defined in: [src/storage/classes/StoredClassModel.ts:43](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/storage/classes/StoredClassModel.ts#L43)

Parameters [#parameters-5]

oldCategoryId? [#oldcategoryid]

`string` = `...`

Returns [#returns-8]

`void`

Inherited from [#inherited-from-2]

[`CharacterStoredClass`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass).[`migrateOldStorage`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass#migrateoldstorage)

***

setStorageProperty() [#setstorageproperty]

\> `protected` **setStorageProperty**\<`T`>(`propertyName`, `value`): `void`

Defined in: [src/storage/classes/StoredClassModel.ts:71](https://github.com/DRincs-Productions/pixi-vn/blob/998c1a75c5978f24c0dc137af5f42b90b2803967/src/storage/classes/StoredClassModel.ts#L71)

Update a property in the storage.

Type Parameters [#type-parameters-1]

T [#t-1]

`T`

The type of the value to set. (Deprecated, it is not necessary to specify the type of the value, it will be inferred from the value)

Parameters [#parameters-6]

propertyName [#propertyname-1]

`string`

The name of the property to set.

value [#value-3]

[`StorageElementType`](/jsdoc/pixi-vn/index/type-aliases/StorageElementType)

The value to set. If is undefined, the property will be removed from the storage.

Returns [#returns-9]

`void`

Inherited from [#inherited-from-3]

[`CharacterStoredClass`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass).[`setStorageProperty`](/jsdoc/pixi-vn/index/classes/CharacterStoredClass#setstorageproperty)
