Class CharacterEntity
Database entity representing a player character.
public class CharacterEntity : IVersionedEntity
- Inheritance
-
CharacterEntity
- Implements
- Inherited Members
Properties
Abilities
Navigation collection of character ability entries.
public ICollection<CharacterAbilityEntity> Abilities { get; set; }
Property Value
AccessLevel
Access level / permission tier for this character.
public byte AccessLevel { get; set; }
Property Value
Account
Account name that owns this character.
public string Account { get; set; }
Property Value
Achievements
Navigation collection of character achievements.
public ICollection<CharacterAchievementEntity> Achievements { get; set; }
Property Value
Archetypes
Navigation collection of character archetype entries.
public ICollection<CharacterArchetypeEntity> Archetypes { get; set; }
Property Value
Attributes
Navigation collection of character attribute entries.
public ICollection<CharacterAttributeEntity> Attributes { get; set; }
Property Value
BindScene
Bind point scene name.
public string BindScene { get; set; }
Property Value
BindX
Bind point world position X.
Uses float for Unity Vector3 compatibility.
public float BindX { get; set; }
Property Value
BindY
Bind point world position Y.
public float BindY { get; set; }
Property Value
BindZ
Bind point world position Z.
public float BindZ { get; set; }
Property Value
Buffs
Navigation collection of active character buffs.
public ICollection<CharacterBuffEntity> Buffs { get; set; }
Property Value
Deleted
Soft delete flag.
public bool Deleted { get; set; }
Property Value
Faction
Navigation collection of character faction standings.
public ICollection<CharacterFactionEntity> Faction { get; set; }
Property Value
Flags
Character flags bitmask (e.g. for status effects or customization flags).
public int Flags { get; set; }
Property Value
Friends
Navigation collection of character friend entries.
public ICollection<CharacterFriendEntity> Friends { get; set; }
Property Value
Guild
Navigation reference to the guild membership record.
public CharacterGuildEntity Guild { get; set; }
Property Value
ID
Primary key.
public long ID { get; set; }
Property Value
InstanceID
Instance ID of the current instance the character occupies (0 if over-world).
public long InstanceID { get; set; }
Property Value
InstanceRotW
Instance spawn rotation W component (quaternion).
public float InstanceRotW { get; set; }
Property Value
InstanceRotX
Instance spawn rotation X component.
public float InstanceRotX { get; set; }
Property Value
InstanceRotY
Instance spawn rotation Y component.
public float InstanceRotY { get; set; }
Property Value
InstanceRotZ
Instance spawn rotation Z component.
public float InstanceRotZ { get; set; }
Property Value
InstanceX
Instance spawn position X.
Uses float for Unity Vector3 compatibility.
public float InstanceX { get; set; }
Property Value
InstanceY
Instance spawn position Y.
public float InstanceY { get; set; }
Property Value
InstanceZ
Instance spawn position Z.
public float InstanceZ { get; set; }
Property Value
ItemCooldowns
Navigation collection of character item cooldowns.
public ICollection<CharacterItemCooldownEntity> ItemCooldowns { get; set; }
Property Value
Items
Navigation collection of every item this character owns, across all containers.
public ICollection<CharacterItemEntity> Items { get; set; }
Property Value
Remarks
Replaces the separate Inventory, Equipment and Bank collections; the container an item sits in is now a column on the row rather than a choice of table.
KnownAbilities
Navigation collection of character known ability entries.
public ICollection<CharacterKnownAbilityEntity> KnownAbilities { get; set; }
Property Value
LastChannelSwitchUtc
When this character last switched open-world channel (UTC), or MinValue if it never has.
public DateTime LastChannelSwitchUtc { get; set; }
Property Value
Remarks
Persisted rather than held in memory because a channel switch is implemented as a disconnect: the character is released here and re-routed by the world server, quite possibly to a different scene server. Any cooldown kept per connection — or even per process — is therefore reset by the very act it is meant to limit, and only ever throttles switches that failed. This is the only place the limit can live and still mean anything.
LastSaved
Timestamp of the last save operation (UTC).
public DateTime LastSaved { get; set; }
Property Value
Level
Character level.
public int Level { get; set; }
Property Value
Remarks
This column is the AUTHORITATIVE home of a character's level, and it is new.
Before it, level did not exist anywhere in FishMMO: no column, no attribute template, no experience curve, no UI. The guild roster's level column (AREAS E2) could therefore not be "joined to wherever level is authoritative", because there was nowhere to join to — so a home was made here, on the character row, next to RaceID, which is the other per-character fact the roster reads.
It is deliberately NOT a denormalised copy of anything: there is no other store to drift from. Until a progression system exists to write it, every character reads back the default of 1, and the roster renders 1. That is a truthful "no progression yet", not a stale cache.
ModelIndex
Character model/prefab index.
public int ModelIndex { get; set; }
Property Value
Name
Character display name.
public string Name { get; set; }
Property Value
Remarks
[COLLATE NOCASE for case insensitive compare. this way we can't both create 'Archer' and 'archer' as characters] note: the collation has been added in the DbContext OnModelCreating function since the Postgres provider doesn't support collations via attributes
NameLowercase
Lowercase copy of Name for case-insensitive lookups.
public string NameLowercase { get; set; }
Property Value
Party
Navigation reference to the party membership record.
public CharacterPartyEntity Party { get; set; }
Property Value
Pet
Navigation reference to the character's pet.
public CharacterPetEntity Pet { get; set; }
Property Value
PetBuffs
Navigation collection of pet buff entries.
public ICollection<CharacterPetBuffEntity> PetBuffs { get; set; }
Property Value
Quests
Navigation collection of character quest progress entries.
public ICollection<CharacterQuestEntity> Quests { get; set; }
Property Value
RaceID
Character race template ID.
public int RaceID { get; set; }
Property Value
RotW
Current rotation W component (quaternion).
public float RotW { get; set; }
Property Value
RotX
Current rotation X component.
public float RotX { get; set; }
Property Value
RotY
Current rotation Y component.
public float RotY { get; set; }
Property Value
RotZ
Current rotation Z component.
public float RotZ { get; set; }
Property Value
SceneHandle
Current scene handle the character is in.
public long SceneHandle { get; set; }
Property Value
SceneName
Current scene name the character is in.
public string SceneName { get; set; }
Property Value
Selected
Whether this character is the currently selected/active character for the account.
public bool Selected { get; set; }
Property Value
SessionLeaseExpiresUtc
Lease expiry timestamp for dead-server recovery. A server should extend this periodically while it still owns the character.
public DateTime SessionLeaseExpiresUtc { get; set; }
Property Value
SessionOwnerServerId
Current owning Scene Server instance ID (0 means unowned).
public long SessionOwnerServerId { get; set; }
Property Value
SessionOwnerToken
Ownership token that changes every successful claim (Guid.Empty means unowned). Used to prevent stale releases/transitions.
public Guid SessionOwnerToken { get; set; }
Property Value
SessionState
Distributed session state used to coordinate ownership/claims across servers.
public CharacterSessionState SessionState { get; set; }
Property Value
Skills
Navigation collection of character skill entries.
public ICollection<CharacterSkillEntity> Skills { get; set; }
Property Value
TimeCreated
Row creation timestamp (UTC).
public DateTime TimeCreated { get; set; }
Property Value
TimeDeleted
Timestamp when the character was soft-deleted (UTC), or null if not deleted.
public DateTime? TimeDeleted { get; set; }
Property Value
Version
Concurrency version for optimistic locking.
public long Version { get; set; }
Property Value
WorldServerID
World server ID this character belongs to.
public long WorldServerID { get; set; }
Property Value
X
Current world position X.
Uses float for direct compatibility with Unity's Vector3.
Precision is approximately 1.5 cm at 10 km from origin; suitable
for most game worlds but may exhibit jitter past ~100 km.
public float X { get; set; }
Property Value
Y
Current world position Y.
public float Y { get; set; }
Property Value
Z
Current world position Z.
public float Z { get; set; }