Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

StorageStructure

Ella-AWS edited this page May 17, 2026 · 8 revisions

Storage の構造について

api:

Write In Progress...

asset:context

神器・モブ・オブジェクトの各トリガー処理中に参照される一時コンテキスト。トリガーが終わると自動でリセットされる。

神器側で実用する場合の使い方詳細は 神器の作り方 - asset:contextに入っている情報 を参照。

compound Context {
 /// 神器処理時: 装備中の神器ID マップ (SlotIdMap)
 /// ObjectAsset / EffectAsset 処理時: 現在処理中の Asset の ID (int)
 id: SlotIdMap | int,
 /// 装備中アイテム情報 (神器処理時のみ)
 Items?: SlotItems,
 /// インベントリ全部 (読み取り専用、神器処理時のみ)
 Inventory?: [Item],
 // 以下、該当トリガー発火中のみ存在
 Attack?: AttackEvent,
 Damage?: DamageEvent,
 Heal?: HealEvent,
 ReceiveHeal?: ReceiveHealEvent,
 Killed?: KilledEvent,
 Shot?: ShotEvent,
 // ObjectAsset / EffectAsset 処理時のみ
 this?: compound, // Field の中身 (this ポインタ相当)
 originID?: int, // 召喚時の元 ID (継承中も最初の ID を保持)
 method?: string // メソッド呼び出し中のメソッド名
}
compound SlotIdMap {
 auto?: int,
 mainhand?: int,
 offhand?: int,
 head?: int,
 chest?: int,
 legs?: int,
 feet?: int,
 /// equip/dis_equip トリガー時のみ。変化前後両方のIDを保持
 all?: SlotIdMap
}
compound SlotItems {
 AutoSlot?: string, // "mainhand"|"offhand"|"head"|"chest"|"legs"|"feet"|null
 mainhand?: Item,
 offhand?: Item,
 head?: Item,
 chest?: Item,
 legs?: Item,
 feet?: Item
}
compound AttackEvent {
 /// 攻撃対象の MobUUID 配列
 To: [int],
 /// 各対象に与えるダメージ
 Amounts: [double],
 /// Amounts の最大値 (foreach で自動計算)
 Amount: double,
 /// "vanilla_melee" | "vanilla_projectile" | "vanilla_explosion"
 Type: string,
 /// バニラ起因の攻撃か (api:damage/ 経由なら false)
 IsVanilla: boolean,
 /// 継続ダメージ判定 (詳細は別途リンク参照)
 IsDoT: boolean
}
compound DamageEvent {
 /// 攻撃元の MobUUID (Mob から受けたダメージの時のみ)
 From?: int,
 /// "vanilla_melee" | "vanilla_drowning" | "vanilla_projectile" | "vanilla_explosion"
 /// | "vanilla_fire" | "vanilla_freezing" | "vanilla_lightning" | "vanilla_other"
 Type: string,
 /// 受けたダメージ量
 Amount: double,
 /// 盾でブロックしたか
 Blocked: boolean,
 /// バニラ起因か (api:damage/ 経由なら false)
 IsVanilla: boolean,
 IsDoT: boolean
}
compound HealEvent {
 /// 回復対象の UserID 配列
 To: [int],
 /// 各対象への回復量
 Amounts: [double],
 /// Amounts の最大値 (foreach で自動計算)
 Amount: double,
 /// 継続回復判定
 IsHoT: boolean
}
compound ReceiveHealEvent {
 /// 回復元プレイヤーの UserID (プレイヤーからの回復のみ)
 From?: int,
 Amount: double,
 IsHoT: boolean
}

IsDoT / IsHoT の詳細は 神器の作り方 - IsDoT / IsHoT のルール を参照。

asset:mob

Write In Progress...

asset:artifact

Write In Progress...

asset:island

Write In Progress...

asset:spawner

Write In Progress...

asset:trader

Write In Progress...

lib:

Write In Progress...

oh_my_dat:

Write In Progress...

player_manager:god

Write In Progress...

player_manager:lost_item

Write In Progress...

world_manager:gimmick

compound GimmickStorage {
 /// テレポーターのシステム
 TeleporterGroups: [GroupData]
}
compound GroupData {
 /// 識別ID
 ID: string,
 /// 所属するテレポーターのリスト
 Teleporters: [TeleporterData]
}
compound TeleporterData {
 /// 座標
 Pos: [double] @ 3,
 /// メタデータ
 Data: TeleporterMetaData
}
compound TeleporterMetaData {
 /// そのテレポーターが起動しているか 未指定の場合、起動しているものとして扱われる
 Activate?: boolean,
 /// テレポーターを星として見た時の色 default: "White"
 Color?: StarColor
}
enum(string) StarColor {
 White = "White",
 Yellow = "Yellow"
}

EntityStorage の構造について

Player

root
├ Name : String
├ LostItems : Item[]
├ Modifiers : Compound
│ ├ Heal : double
│ ├ MPRegen : double
│ ├ Attack : Compound
│ │ ├ Base : double
│ │ ├ Physical : double
│ │ ├ Magic : double
│ │ ├ None : double
│ │ ├ Fire : double
│ │ ├ Water : double
│ │ └ Thunder : double
│ │
│ ├ Defense : Compound
│ │ ├ Base : double
│ │ ├ Physical : double
│ │ ├ Magic : double
│ │ ├ None : double
│ │ ├ Fire : double
│ │ ├ Water : double
│ │ └ Thunder : double
│ │
│ └ Modifier : Compound
│ ├ Heal : Modifier[]
│ ├ MPRegen : Modifier[]
│ ├ Attack : Compound
│ │ ├ Base : Modifier[]
│ │ ├ Physical : Modifier[]
│ │ ├ Magic : Modifier[]
│ │ ├ None : Modifier[]
│ │ ├ Fire : Modifier[]
│ │ ├ Water : Modifier[]
│ │ └ Thunder : Modifier[]
│ │
│ └ Defense : Compound
│ ├ Base : Modifier[]
│ ├ Physical : Modifier[]
│ ├ Magic : Modifier[]
│ ├ None : Modifier[]
│ ├ Fire : Modifier[]
│ ├ Water : Modifier[]
│ └ Thunder : Modifier[]
│
├ ContextStash : Compound
│ ├ id : Compound
│ │ ├ auto : int
│ │ ├ mainhand : int
│ │ ├ offhand : int
│ │ ├ head : int
│ │ ├ chest : int
│ │ ├ legs : int
│ │ └ feet : int
│ │
│ ├ Items : Compound
│ │ ├ AutoSlot : string('auto' | 'mainhand' | 'offhand' | 'head' | 'chest' | 'legs' | 'feet')
│ │ ├ mainhand : Item
│ │ ├ offhand : Item
│ │ ├ head : Item
│ │ ├ chest : Item
│ │ ├ legs : Item
│ │ └ feet : Item
│ │
│ └ Inventory : Readonly Item[]
│
└ DataCache
 ├ abilities : CacheData<?>
 ├ AbsorptionAmount : CacheData<?>
 ├ ActiveEffects : CacheData<?>
 ├ Air : CacheData<?>
 ├ Attributes : CacheData<?>
 ├ Brain : CacheData<?>
 ├ CustomName : CacheData<?>
 ├ CustomNameVisible : CacheData<?>
 ├ DataVersion : CacheData<?>
 ├ DeathTime : CacheData<?>
 ├ Dimension : CacheData<?>
 ├ EnderItems : CacheData<?>
 ├ enteredNetherPosition : CacheData<?>
 ├ FallDistance : CacheData<?>
 ├ FallFlying : CacheData<?>
 ├ Fire : CacheData<?>
 ├ foodExhaustionLevel : CacheData<?>
 ├ foodLevel : CacheData<?>
 ├ foodSaturationLevel : CacheData<?>
 ├ foodTickTimer : CacheData<?>
 ├ Glowing : CacheData<?>
 ├ Health : CacheData<?>
 ├ HurtTime : CacheData<?>
 ├ id : CacheData<?>
 ├ Inventory : CacheData<?>
 ├ Invulnerable : CacheData<?>
 ├ Motion : CacheData<?>
 ├ NoAI : CacheData<?>
 ├ NoGravity : CacheData<?>
 ├ OnGround : CacheData<?>
 ├ Passengers : CacheData<?>
 ├ playerGameType : CacheData<?>
 ├ PortalCooldown : CacheData<?>
 ├ Pos : CacheData<?>
 ├ previousPlayerGameType : CacheData<?>
 ├ recipeBook : CacheData<?>
 ├ RootVehicle : CacheData<?>
 ├ Rotation : CacheData<?>
 ├ Score : CacheData<?>
 ├ seenCredits : CacheData<?>
 ├ SelectedItem : CacheData<?>
 ├ SelectedItemSlot : CacheData<?>
 ├ ShoulderEntityLeft : CacheData<?>
 ├ ShoulderEntityRight : CacheData<?>
 ├ Silent : CacheData<?>
 ├ SleepingX : CacheData<?>
 ├ SleepingY : CacheData<?>
 ├ SleepingZ : CacheData<?>
 ├ SleepTimer : CacheData<?>
 ├ SpawnForced : CacheData<?>
 ├ SpawnX : CacheData<?>
 ├ SpawnY : CacheData<?>
 ├ SpawnZ : CacheData<?>
 ├ Tags : CacheData<?>
 ├ Team : CacheData<?>
 ├ UUID : CacheData<?>
 ├ XpLevel : CacheData<?>
 ├ XpP : CacheData<?>
 ├ XpSeed : CacheData<?>
 └ XpTotal : CacheData<?>

Modifier

root : Modifier
├ UUID : int[]@4
├ Amount : double
└ Operation : string('add' | 'multiply_base' | 'multiply')

CacheData

root : CacheData<T>
├ Time : int
└ Data : T

AssetMob

root
└ MobData : Compound
 └ Modifiers : Compound
 ├ Attack : Compound
 │ ├ Base : double
 │ ├ Physical : double
 │ ├ Magic : double
 │ ├ None : double
 │ ├ Fire : double
 │ ├ Water : double
 │ └ Thunder : double
 │
 ├ Defense : Compound
 │ ├ Base : double
 │ ├ Physical : double
 │ ├ Magic : double
 │ ├ None : double
 │ ├ Fire : double
 │ ├ Water : double
 │ └ Thunder : double
 │
 └ Modifier : Compound
 ├ Attack : Compound
 │ ├ Base : Modifier[]
 │ ├ Physical : Modifier[]
 │ ├ Magic : Modifier[]
 │ ├ None : Modifier[]
 │ ├ Fire : Modifier[]
 │ ├ Water : Modifier[]
 │ └ Thunder : Modifier[]
 │
 └ Defense : Compound
 ├ Base : Modifier[]
 ├ Physical : Modifier[]
 ├ Magic : Modifier[]
 ├ None : Modifier[]
 ├ Fire : Modifier[]
 ├ Water : Modifier[]
 └ Thunder : Modifier[]

Spawner

Write In Progress...

Island

Write In Progress...

Trader

Write In Progress...

Teleporter

root
└ TeleporterData : Compound
 └ GroupID? : Boolean

note:

  • ここでは通称として EntityStorage と呼んでいるが、正式名称は OhMyDat である。

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /