メインコンテンツにスキップ

シングシート (Thing)

ソーステーブルを作成するときは、必ず公式ソーステーブルの最初の3行をそのままコピーし、4行目以降にデータを入力してください。

列、空行、空セルについて

足りない列はエラーも出さずに空の値で埋められますので、公式テーブルのヘッダー行はまるごとコピーし、列を削らず、列の順序も変更しないでください。

id が空の行があると、そこでシートの読み込みが打ち切られます。 それ以降の行はすべて読み込まれず、警告も出ません。意図的でない限り、データの区切りに空行を使わないでください。

空セルは空の値ではありません。ゲームは3行目のデフォルト値にフォールバックし、componentslogdefMatoakcategoryother が既定値です。

3行目のデフォルト値を書き換えれば、それを他のすべての行に適用できます。データは4行目から入力してください。

公式の Thing テーブルには sort 列が2つあり、実際に使われるのは後ろのほうです(同名の列は最後のものが優先されます)。ヘッダーはそのままコピーすれば問題ありません。

シートの列

タイプ説明
idテキストアイテムの一意の識別子。
name_JPテキスト日本語の表示名。
nameテキスト英語の表示名。
unknown_JPテキスト未鑑定時のレアリティの高いアイテムの日本語名。#randomBook#randomPotion のような特殊属性になることもあります。
unit_JPテキスト日本語の助数詞です。下記の Unit JP を参照してください。
unitテキストアイテムの物理的形状です。下記の Unit を参照してください。
unknownテキスト未鑑定時のレアリティの高いアイテムの英語名。#randomBook#randomPotion のような特殊属性になることもあります。
namingテキストスタック時の名前の組み立て方。m = 「素材名+アイテム名(個数)」、ma = 素材名のみ(個数)で原材料向け、空欄 = アイテム名のみ(個数)。
categoryテキストアイテムが属するカテゴリ。自動搬入やレシピメニュー(Category シートと連携)に使用されます。
sort整数ソート順。例:2200 で弓の範囲に配置されます。sort 列は2つあり、実際に使われるのは後ろのほうです(同名の列は最後のものが優先されます)が、どちらも削除しないでください。
_tileTypeテキストマップ上の表示方法です。下記の Tile Type を参照してください。ゲームが知っているタイプ名である必要があり、綴りを間違えるとソーステーブル全体が読み込めなくなります
_idRenderDataテキスト地面への設置方法とクリッピングの制御です。下記の idRenderData を参照してください。
tiles整数[]差し替えテクスチャのタイルID。複数ある場合は「正面 → 正面反転 → 背面 → 背面反転」の順。例:123,-123,456,-456
altTiles整数[]別状態用のバリアントタイル(例:中身が入った宝箱)。
anime整数[]2つの値: フレーム数, フレーム継続時間idRenderData 列で @obj を使用し、かつ Sprite Animation を使用する場合、この列を記入する必要はありません。
skins整数[]スキンバリアントの参照。値の個数がそのまま選べる見た目の数になります(基本の見た目を含めて N+1 種類。建築メニューとクラフトメニューはこれをもとに一覧を出します)。idRenderData 列で @obj を使用し、かつ Sprite Variations を使用する場合、この列を記入する必要はありません。
size整数[]大型オブジェクトのグリッドサイズ:幅,高さ
colorMod整数色の彩度補正。0 は着色しないという意味です。
colorTypeテキスト色の参照元:default(クラフトの1番目の素材)、alt(2番目の素材)、または random
recipeKeyテキスト[]レシピの入手方法:* = デフォルトで習得済み、- = ランダムレシピの対象外、キャラID = そのキャラが販売。
factoryテキスト[]クラフトに使用する設備です。下記の Factory を参照してください。
componentsテキスト[]クラフトの材料です。下記の Components を参照してください。
disassembleテキスト[]分解時に得られるアイテム。
defMatテキストデフォルト素材(例:oak)。アイコン/プレビューの色を決定します。先頭に ! を付ける(例:!oak)と素材が固定され、生成時に別の素材へ変わらなくなります。存在しない素材を指定した場合は警告なく granite になります。
tierGroupテキストアップグレード/進行のティアグループ。
value整数基本売却価格(オレン)。
LV整数クラフトに必要なスキルレベル。
chance整数生成確率の補正値。
quality整数アイテムのレアリティ段階:-1 Crude、0 Normal、1 Superior、2 Legendary、3 Mythical、4 Artifact。☆ や ★ はこの列によって決定されます。offense / defense がそのまま使われるかどうかもこの列で決まります(下記の 攻撃力と防御力 を参照)。
weight整数アイテムの重さ。例:種 = 30、ロッド = 500、ベッド = 4500、ピアノ = 85000
electricity整数消費電力。負の値は電力を消費します(例:モニター = -10)。
traitテキスト[]特殊な動作です。下記の Trait を参照してください。
elementsテキストElement シートのエイリアスと /レベル。例:lumberjack/4 はゲーム内で Lumberjack [****] と表示されます。
range整数武器の射程(タイル数)。例:ショートボウ = 1、ボウ = 3、レールガン = 5
attackTypeテキストダメージ/武器タイプ:BluntBowCaneClawGunPiercePunchSlash
offense整数[4]攻撃ステータス:ダイスの数,ダイスの面,ダメージ補正,命中補正。例:2,8,5,4 は 2d8・ダメージ+5・命中+4 です。下記の 攻撃力と防御力 を参照してください。
substats整数[]サブステータス補正。公式の行ではいずれも値を1つだけ指定しています。
defense整数[2]防御ステータス:DV,PV。下記の 攻撃力と防御力 を参照してください。
lightDataテキスト光源のプリセットです。下記の Light Data を参照してください。
idExtraテキスト追加レンダーデータの参照。
idToggleExtraテキストON/OFF切り替え可能なレンダーデータ(例:照明)。
idActorExテキストオブジェクト周辺の環境効果です。下記の Ambient Effects を参照してください。
idSoundテキストクラフト時の効果音:glassmoneypaper など。
tagテキスト[]組み込みの動作フラグです。下記の Tags を参照してください。
workTagテキスト作業関連のタグ。
filterテキスト[]クラフト以外の入手経路:fishgachasupply など。CreateFromFilter でランダム生成に使用されます。
roomName_JPテキスト[]部屋タイプの定義(日本語)。カンマ区切りで複数指定可能。
roomNameテキスト[]部屋タイプの定義(英語)。例:Bedroom または Kitchen,Dining Room
detail_JPテキストアイテム説明(日本語)。ゲーム内でステータス情報の上に表示されます。
detailテキストアイテム説明(英語)。ゲーム内でステータス情報の上に表示されます。

Unit JP

unit_JP 列は、そのアイテムを数えるときの助数詞を指定します。

振り

Unit

unit 列はアイテムの物理的形状を定義します。

bottleboxbucket
bundlecanchunk
feathergift boxgrand cross
grimoirehandfulletter
paintingpairpiece
pinchposterpot
rodsetsignboard
spellbookstaffstatue
syringetreetuft
whipwhistle

Tile Type

_tileType 列はマップ上でのオブジェクトの表示方法を制御します。

タイプ動作
ObjBig通行不可。
ObjHuge通行不可。
Door壁が必要。ドア/開口部として機能。
Slope上り下りの移動速度を変化させます。
StairsSlope と同様ですが、速度・高さの変化がより顕著です。
Paint壁への取り付けが必要。
WallHang壁への取り付けが必要。
Window壁が必要。窓が非表示になる状況(建物内など)では非表示になります。

idRenderData

_idRenderData 列は、オブジェクトの地面への設置方法とクリッピングを制御します。

@obj — カスタムテクスチャ(差し替えなし)

テクスチャ置換を使用しないカスタムアイテム用です:

  • ファイル名は id と完全に一致させる必要があります。
  • 拡張子は小文字の .png を使用してください(.PNG は動作しません)。
  • Modの Texture フォルダに配置してください。Texture/Item/ でも構いません(<id> が見つからない場合、ゲームは Item/<id> も探します)。それ以外のサブフォルダは見つけてもらえませんid 自体にそのプレフィックスが含まれている場合を除く)。

@ は、画像の実サイズに合わせて1枚絵全体を中央に配置する、という働きをします。1枚絵のカスタムテクスチャに @ が必要なのはこのためです。@obj#別のアイテムID と書くこともでき、# 以降はそのアイテムの pref(設置・当たり判定まわりの設定)を借りるという意味になります。

obj — テクスチャ差し替え

テクスチャ置換(Texture Replace)を使用するアイテム用です。これはテクスチャビューアー内のタイルスロットを占有するため、他の Mod と競合する可能性があります:

  • ファイル名形式:obj_tileID(例:objS_5032)。
  • 拡張子は小文字の .png を使用してください。
  • Modの Texture Replace フォルダに配置してください。

雪バリアント

種類差し替えなし (@obj)差し替えあり (obj)
通常ID.pngobj_123.png
ID_snow.pngobjSnow_123.png
objS_456.png
小雪objSSnow_456.png

Factory

factory 列はアイテムを作成する設備を定義します。プレイヤーがクラフト不可のアイテムの場合は空欄にします。

ゲーム内名称
クイッククラフトself
作業台workbench
便利屋の机factory_tinker
設計台workbench2
立札工房factory_sign
木工の机factory_wood
金属工の机factory_metal
金床anvil
機械工の机machinebench
石工の机factory_stone
硝子工の机factory_glass
調理機stove

Components

components 列はクラフトの材料を定義します。

構文意味
idアイテムIDと一致するアイテムが必要。log
/NN個のアイテムが必要。デフォルトは 1log/2
@マテリアル指定したマテリアルのアイテムが必要。chunk@snow/10 → 雪の塊10個。
|「または」—選択肢のいずれか。rock/2|ingot → 岩2個 または インゴット2個。
#カテゴリインベントリから一致するカテゴリのアイテムを選択。#book → 任意の本を選択。
+任意の材料。入れなくてもクラフトできます。+rune → ルーンを追加で入れられる。
$完成品のを決める材料。$log/2

プレフィックスは順不同で組み合わせられます(例:+#book)。

components 列に - だけを書くと「デフォルトの材料リストを使う」という意味になり、「材料なし」ではありません。空欄にした場合は列のデフォルト値 log(丸太1本)が使われます。クラフト不可にしたい場合は factory を空欄にしてください。

井戸: rock/10,rope/3,log/2 → 岩素材10個、ロープ3個、丸太2個。

鎌: rock/2|ingot,string/1,stick/1 → 岩2個 または インゴット2個、紐1個、棒1個。

本棚: plank/4,#book,#book → 板材4枚、任意の本2冊。

Trait

trait 列は特殊な動作を定義します。書式は常に「カンマ区切りの並び」で、最初の項目が特性名(ゲームは Trait<この名前> というクラスを探します)、残りがその特性に渡すパラメータです。パラメータの意味は特性ごとに異なります。

コンテナタイプのオブジェクトには以下の形式を使用します:

Container,行数,列数,背景画像,特記事項
意味
beekeep,2,2,crate,honey2×2のコンテナ(木箱背景)、蜂蜜を保管。
ChestPractice,7,5,crate7×5のコンテナ(木箱背景)。

その他のよく使う特性のパラメータ:

意味
Workbench,blacksmith作業台。必要スキル(省略時は handicraft)。
Light,3光源。光の半径。
ToolRangeGun,12,4銃。装弾数、リロードターン数。
Harvest,gathering,1採取可能。採取スキル、個数。
Drink,DrinkWater,10飲用可能。効果ID、値。
Altar,ehekatl祭壇。神のID。
RecipeCat,foodレシピ本。レシピカテゴリ。

パラメータはいずれも省略でき、その場合は特性ごとのデフォルト値が使われます。

攻撃力と防御力

offense は4つの値です:ダイスの数,ダイスの面,ダメージ補正,命中補正2,8,5,4 は「2d8・ダメージ+5・命中+4」と読みます。defense は2つの値:DV,PV です。

これらの数値がそのままゲームに入るのは quality4(神器)のときだけです。 それ以外の品質では、素材レア度に応じて再計算され、さらに多少のランダム性が加わります:

  • レア度の基準値:Crude 150、Normal 120、Superior 100、Legendary 以上 80。基準値が小さいほど強くなります。
  • ダイスの面 ≈ ダイスの面 × 素材の dice ÷ 基準値、ダメージ補正 ≈ ダメージ補正 × 素材の atk × 9 ÷ 基準値diceatk は Material シートの列です)。防御も同様に素材によって換算されます。

つまり通常の装備では、シートに書く数値は最終値ではなく基準値です。数値を調整するときは defMatquality もあわせて確認してください。そうしないと「変えても効かない」ように見えます。

Light Data

lightData 列は光源の外観を定義します。

altar_machine
bonfire
fireplace
fridge
gacha
general
kiln
lamp_sun
lamp_table
light_floor
light_spot
light_stand
light_wall

Ambient Effects

idActorEx 列はオブジェクト周辺の環境効果を定義します。

効果
amb_boat船の環境音。
amb_crowd群衆の雑音。
amb_fire火のパチパチ音。
amb_fountain噴水の音。
amb_smelter精錬所の音。

Tags

tag 列は組み込みの動作フラグを割り当てます。

一部のタグ(すべてではありません):

タグ効果
exotic珍しいアイテムとして扱われます。
godArtifact神器。信仰テーブルを参照。
noWish願い(wish)で入手不可。
tourism観光アイテムとしてカウントされます。
rareResourceレア資源として扱われます。
snowTile雪タイルを好みます(雪用objバリアント設定時は省略可)。
throwWeapon投げた後に戻ってきます(ブーメランのように)。
noCopy複製不可。
noShop該当ショップに生成されない。
fixedElement属性エンチャント値を固定。
randomElement属性エンチャント値を変動。
randomSkin生成時に skins の中からランダムで見た目を選びます。
noSkinRecipeクラフトメニューで見た目を選べなくします。

遠距離武器データのインポート

遠距離武器のデータをカスタマイズしたい場合があります。ガンのデータは、LangMod/**/Data/フォルダー内にあるEffectSetting.guns.jsonという名前のJSONファイルです。

json
{
    "biubiu_gun": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "gunfire",
        "IdSprite": "ranged_gun",
        "IdSound": "attack_gun",
        "IdSoundEject": "bullet_drop",
        "Eject": true,
        "FirePos": {
            "x": 0.23,
            "y": 0.04
        },
        "CaneColor": "",
        "CaneColorBlend": false,
        "ForceLaser": false,
        "ForceRail": false,
    }
}

これは、遠距離武器のIDと一致するはずのbiubiu_gunという名前のガンデータをインポートします。ゲーム内の既存の武器IDを使用して、それを上書きすることもできます。

ゲーム内の既存のガンデータは次のとおりです。

ガンデータ
json
{
    "gun": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "gunfire",
        "IdSprite": "ranged_gun",
        "IdSound": "attack_gun",
        "IdSoundEject": "bullet_drop",
        "Eject": true,
        "FirePos": {
            "x": 0.23,
            "y": 0.04
        }
    },
    "gun_assault": {
        "Num": 3,
        "Delay": 0.1,
        "IdEffect": "gunfire",
        "IdSprite": "ranged_gun",
        "IdSound": "attack_gun_assault",
        "IdSoundEject": "bullet_drop",
        "Eject": true,
        "FirePos": {
            "x": 0.48,
            "y": 0.04
        }
    },
    "bow": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_arrow",
        "IdSound": "attack_bow",
        "Eject": false,
        "FirePos": {}
    },
    "gun_rail": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "",
        "IdSound": "attack_gun_rail",
        "Eject": false,
        "FirePos": {}
    },
    "cane": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_cane",
        "IdSound": "attack_cane",
        "Eject": false,
        "FirePos": {}
    },
    "windbow": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_arrow_wind",
        "IdSound": "attack_windbow",
        "Eject": false,
        "FirePos": {}
    },
    "gun_mani": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_gun",
        "IdSound": "attack_gun_shotgun",
        "IdSoundEject": "bullet_drop",
        "Eject": true,
        "FirePos": {
            "x": 0.23,
            "y": 0.04
        }
    },
    "gun_laser": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "",
        "IdSound": "attack_gun_laser",
        "Eject": false,
        "FirePos": {}
    },
    "panzerfaust": {
        "Num": 1,
        "Delay": 0.01,
        "IdEffect": "gunfire",
        "IdSprite": "ranged_gun_rocket",
        "IdSound": "attack_gun_rocket",
        "Eject": false,
        "FirePos": {}
    },
    "gun_laser_assault": {
        "Num": 3,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_gun_laser",
        "IdSound": "attack_gun_laser_assault",
        "Eject": false,
        "FirePos": {
            "x": 0.28,
            "y": 0.2
        }
    },
    "shotgun": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_fun",
        "IdSound": "attack_gun_shotgun",
        "Eject": false,
        "FirePos": {
            "x": 0.3,
            "y": 0.18
        }
    },
    "sling": {
        "Num": 1,
        "Delay": 0.1,
        "IdEffect": "",
        "IdSprite": "ranged_stone",
        "IdSound": "throw",
        "Eject": false,
        "FirePos": {}
    }
}
  • Num は、バースト(連射)内のショット数です。
  • Delay は、アニメーションの遅延時間を秒単位で指定します。
  • IdEffect は、マズルフラッシュエフェクトのIDです。カスタムエフェクトを使用できます。デフォルト値はgunfireです。レーザーやケイン(杖)タイプの武器ではこの値は使用されません。
  • IdSprite は、弾丸のテクスチャ名です。ゲーム内の既存のテクスチャ、またはTextureフォルダーに配置したテクスチャである必要があります。レーザーではこの値は使用されません。
  • IdSound は、発射音のIDです。カスタムサウンドを使用できます。これはすべての種類のガンに設定できます。
  • IdSoundEject は、排弾丸音のIDです。カスタムサウンドを使用できます。これはすべての種類のガンに設定できます。
  • Eject は、弾丸排出アニメーションがあるかどうかを決定します。これはすべての種類のガンに設定できます。
  • FirePos は、武器の中心を基準としたマズルフラッシュエフェクトのオフセット位置です。これはすべての種類のガンに設定できます。
  • CaneColor は、ケイン(杖)タイプの武器用のオプションの色合いのオーバーライドです。空白のままにすると、武器のデフォルトの元素の色が使用されます。形式は RRGGBB 16 進文字列です。特性ToolRangeCaneを持つガンのみがこの値を使用できます。
  • CaneColorBlend は、ケインタイプ武器のデフォルトカラーとオーバーライドカラーのブレンドを有効にします。特性ToolRangeCaneを持つガンのみがこの値を使用できます。
  • ForceLaser は、ガンにレーザーアニメーションの使用を強制します(23.206 Nightlyで追加)。ガンが特性ToolRangeGunEnergyを持っている場合、これは不要です。
  • ForceRail は、ガンにレールガンアニメーションの使用を強制します。これは、特性ToolRangeGunEnergyを持つガンのデフォルトの動作ではなくなりました。

このファイルには、必要な数のガンデータを追加できます。単純に,コンマで区切ってください。例:

json
{
    "biubiu_gun": { 
        data 
    },
    "rainbow_wand": {
        data
    }
}

指定スロット

アイテム表(Thing)で addSocket および addSocket(エンチャントalias) タグを使用することで、銃器のスロットを指定できます。例えば、addSocket,addSocket,addSocket(bane_god) と記述すると、空のスロットが2つと、エンチャント「God Bane」が付いたスロットが1つ追加されることが保証されます。

また、noRandomSocket タグを使用すると、カスタムスロットを適用する前にすべてのランダム生成スロットを削除できます。

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.