コマンドの解説


スクリプトで用いるコマンドやマクロのリファレンス。
必要に応じて例文を記述しているが、擬似的なものであり正しいとは限らない。


ID番号


スクリプトでは対象のGearの識別にいろいろなID番号を使う。
特にUIDとCIDは混同しやすいので注意すること。これらを使用するコマンドは異なる(TDとUTDなど)。
IDの種類 略称 説明
Unique ID UID マップに入るたびに自動で個々のモデルに割り当てられるID。
Character ID CID Personaに割り当てられるID。
Faction ID FID Factionに割り当てられるID。
Narrative ID NID SetKeyItemコマンドなどでアイテムに割り当てられるID。
モデル = NPC, Item, Propなどの物理Gearを指す。

ユーザー定義のマクロ


aslmacro.txtなどのテキストファイルに追加することで、独自のマクロを使用することが可能になる。

例) NPCの性別を返すマクロ
NPCGENDER <GrabNPC ? GNAtt 3 0> 

トリガー


ある条件を満たすと<>内に記述した処理を実行する。
同じトリガーを複数同時に使っても最初の1つだけが有効。
Gearによって使えるものが決まっている。

以下のような形で記述する。
トリガー名 <実行する処理>

Start

Start <...>
別のマップに入ったとき、そのマップが開始された直後に実行される。

Cleanup

Cleanup <...>
EndStoryマクロが実行されたときに1回だけ実行される(クリーンアップ)。
親となるStoryが終了した際に該当のPlotを消去する処理を記述する場合などに使う。

Get

Get[NID] <...>
アイテム[NID]を入手したときに実行される。

[NID]には直接数値を記述するほか、Composeマクロで変数を割り当てることも可能。
これは他のIDや番号を伴うトリガーについても同じ。

Key

Key[NID] <...>
アイテム[NID]が作動したときに実行される。
該当のアイテムを作動させるにはTriggerマクロを実行する必要がある。

Clue

Clue[Skill Number] <...>
スキル[Skill Number]を使用したときに実行される。

TD

TD[UID] <...>
ターゲット[UID]が破壊されたときに実行される。
UIDを参照できるコマンドは限られており、メック戦でちょっと使われる程度。

UTD

UTD[CID] <...>
ターゲットのNPC[CID]が破壊されたときに実行される。

NU

NU[Team Number] <...>
チーム[Team Number]の生存しているメンバーの数が変更されたときに実行される。
NUは"Number of Units Changed"の略。
主にマップから脱出する処理を記述するのに使われる。

ちなみにマップを出る際やRetreatマクロを実行した際にも実行される。
なぜか一定の時刻でも実行される(1時間ごと)。部位破壊などで複数回実行されることがある?

% チーム1(プレイヤーのチーム)が全滅したときに直前のマップに戻る処理。
% T1は生存しているチーム1のメンバーの数。
NU1 <if= T1 0 Return>

5Min / HalfHour / Hour / Quarter

5Min <...>
ゲームの時計で一定の時刻になるたびに実行される。

HalfHour <Print 1>

Msg1 <30分が経過しました。>

FacWin

FacWin[FID] <...>
派閥[FID]が勝利したときに実行される。

FacLose

FacLose[FID] <...>
派閥[FID]が敗北したときに実行される。
Kist村の解放イベントの判定などで用いられる。

Greeting

Greeting <...>
Personaで使用されるトリガー。対象のNPCと会話したときに実行される。

Greeting <NewChat Say 1>

Msg1 <こんにちは。>

Result

Result[Prompt Number] <...>
Personaで使用されるトリガー。
AddChatマクロで表示される選択肢を選んだときに実行される。

Persona 2

Greeting <NewChat Say 1 AddChat 1 AddChat 2>

Result1 <EndChat Say 2>
Result2 <EndChat Say 3>

Msg1 <こんにちは。>
Msg2 <いいお天気ですね。>
Msg3 <いえ、何でもありません。>

Prompt1 <やあ。>
Prompt2 <何か用?>

Update

Update <...>
モデルで使用されるトリガー。マップが開始されたときに対象のモデルで実行される。
UpdatePropsマクロで能動的に実行させることも可能。

Use

Use <...>
モデルで使用されるトリガー。対象のモデルを使用したときに実行される。

内部ジャンプ

[ラベル名] <...>
if文のElseまたはGotoマクロでそのラベルにジャンプし、ジャンプ先の処理を実行する。
ラベル名は.[名前]やGo[名前]の形が多いが、好きなものでかまわない。

トリガーのほかにも敵のタイプやファイル名を指定するのにラベルが用いられる。

Start <if= V1 0 else GoV1NotZero V= 1 1 Goto GoV1NotZero>

GoV1NotZero <Print 1>

Msg1 <初期化を完了しました。>

Init_Start

Init_Start <...>
I18N版で追加されたコマンド。プロットがロードされたときに実行される。

Init_Start <Print 1>
Start <Print 2>

Msg1 <Init_Startはプロットのロード時に実行されます。>
Msg2 <Startは新たなマップが開始された直後に実行されます。>

Restore_Start

Restore_Start <...>
I18N版で追加されたコマンド。ゲームを再開したときに実行される。
ゲームを再開したときのダイアログメッセージなどに使う。

Restore_Start <Print 1>

Msg1 <とあるマップにいる。>

計算に関するマクロ


計算にはポーランド記法が用いられる(A + B → + A B) 。

V=

V= [A] [B]
変数V[A]に数値[B]を代入する。

グローバル変数やプロット変数などの場合は
G= 1 3
P= 3 5
などのように記述できる。

V+

V+ [A] [B]
変数V[A]に数値[B]を加算する。

グローバル変数やプロット変数などの場合は
G+ 1 3
P+ 3 5
などのように記述できる。

*

* [A] [B]
[A]に[B]を乗算した結果を返す。[A]と[B]は変数または数値。

% 変数V3に変数V2(= 10) * 10の結果を代入する処理。
Start <if= V1 0 V= 1 1 V= 2 10 V= 3 * V2 10 Print 1>

Msg1 <変数V2に10を掛けると \VAL V3 になります。>

D

D[Die Size]
面数が[Die Size]のダイス。たとえばd6なら1-6のランダムな値を返す。

Start <if= V1 0 else GoCheckHit6 V= 1 d6>

GoCheckHit6 <if= V1 6 else GoRetry Print 1>

GoRetry <V= 1 d6>

Msg1 <変数V1が6になりました。>

if文に関するマクロ


if=

if= [A] [B] (else [Label]) [処理]
[A]が[B]に等しければ処理を行う。
elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。

Start <if= V1 0 else GoV1NotZero V= 1 1>

GoV1NotZero <V+ 1 1>

ifG

ifG [A] [B] (else [Label]) [処理]
[A]が[B]より大きければ処理を行う。
elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。

if#

if# [A] [B] (else [Label]) [処理]
[A]が[B]に等しくなければ処理を行う。
elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。

ifStoryless

ifStoryless (else [Label]) [処理]
ソースのGearにリンクされたStoryが無ければ処理を実行する(対象のGearにStoryが何もロードされていなければ、という意味か?)。
elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。

ifFaction

ifFaction [FID] (else [Label]) [処理]
派閥[FID]がアクティブであれば処理を実行する(対象のFactionが存在していれば、という意味か?)。
elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。

ifPersona

ifPersona [CID] (else [Label]) [処理]
NPC[CID]が存在していれば処理を実行する。
elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。

ifYesNo

ifYesNo [Desc Msg] [Yes Msg] [No Msg] (else [Label]) [処理]
特殊なif文。警告画面を出し、Yes / Noの二択メッセージを表示する。それぞれのメッセージの内容はMsgタグで記述する。

Yesを選択した場合、処理が実行される。
Noを選択した場合、elseがあればラベル名[Label]へジャンプする。

STC Computer-1

Use <ifYesNo 1 2 3 else GoNotUse Print 101>

GoNotUse <Print 102>

Msg1 <コンピュータがある。>
Msg2 <使ってみる。>
Msg3 <触らないでおく。>
Msg101 <キーボードを叩いてみたが、何も起こらなかった。>
Msg102 <その場を離れた。>

Story / Plotに関するマクロ


GlobalStoryPattern

GlobalStoryPattern [Scene Label] [Story Label]
ラベル名[Scene Label]に記述したタイプを持つマップに、ラベル名[Story Label]で記述したファイル名に合致するStoryファイルを一括でロードする。
Adventureにおいて、一度だけ発生するランダムプロットおよびLancemateプロットのロードに用いられている。

% ADV_FederatedTerritories.txtの該当箇所を少し改変。
start <if= V1 0 V= 1 1 GlobalStoryPattern .city .UrbanStory>

.city <URB_STORY>
.UrbanStory <TS_GSP_*_STORY.txt>

Storyを自作したいけどAdventureを弄るのは嫌だと言う場合、このコマンドを利用するのも一つの手。
Storyファイルの名前を"TS_GSP_(好きな名前)_STORY.txt"としておけば、新規キャンペーンを開始したときにロードされる。

StartStory

StartStory [Story Label] (else [Label])
Storyファイルをロードする。
ロードできなかった場合、elseがあればラベル名[Label]へジャンプする。

Faction 101

Start <if= V1 0 StartStory .Test_Story V= 1 1>

.Test_Story <TEST_STORY.txt>

StoryLine

StoryLine [Plot Label] (else [Label])
Plotファイルをロードする。
ロードできなかった場合、elseがあればラベル名[Label]へジャンプする。

EndStory

EndStory
Storyを消去して子のPlotにクリーンアップの要求を渡す。

AdvancePlot

AdvancePlot [n]
プロットの処理をサブプロットのPlot [n]に切り替える。
0 を指定した場合はそのプロットが消去される。

サブプロットに移行した場合、プロットの変数V(= P)に格納された数値はリセットされる。

Plot 0 

Start <if= V1 0 V= 1 1 AdvancePlot 1>

sub
	Plot 1
	
	Start <if= V1 0 V= 1 1 AdvancePlot 2>
	
	Plot 2
	
	Start <if= V1 0 V= 1 1 AdvancePlot 0>
end

Goto

Goto [Label]
ラベル名[Label]の処理へジャンプする。

Start <if= V1 0 else GoV1NotZero V= 1 1 Goto GoV1NotZero>

GoV1NotZero <Print 1>

Msg1 <初期化を完了しました。>

Compose

Compose [Trigger] [Parameter] [Command Line Identifier]
GetやKeyなどのIDを伴うトリガーに別名[Command Line Identifier]をつけて新しいトリガーを作成する。
IDに変数を用いたい場合に使う。

% NPC E2が破壊されたときに実行するトリガー".E2Killed"を作成する処理。
Start <... Compose UTD E2 .E2Killed ...>

.E2Killed <...>

Factionに関するマクロ


FacXP=

FacXP= [FID] [Value]
派閥[FID]の経験値に[Value]を代入する。

FacXP+

FacXP+ [FID] [Value]
派閥[FID]の経験値に[Value]を加算する。

PCFac

PCFac
プレイヤーキャラクターが所属する派閥のFIDを返す。

PCFacXP=

PCFacXP= [Value]
プレイヤーキャラクターが所属する派閥の経験値に[Value]を代入する。

FXPNeeded

FXPNeeded [n]
派閥のレベル[n]に必要な経験値を返す。
ここでいう派閥のレベルとは階級(ランク)のこと。レベル 0 ならば新兵。

FacXPNeeded

FacXPNeeded
プレイヤーキャラクターが所属する派閥のレベルアップに必要な経験値を返す。
FXPNeeded PCFacLevelに等しい。

ちなみに派閥レベルが[X]の場合、次のレベルアップに必要とする経験値は 5 + [X] * 5 になる。

PCFacLevel

PCFacLevel
プレイヤーキャラクターが所属する派閥のレベルを返す。

PCFacLevel+

PCFacLevel+ [Value]
プレイヤーキャラクターが所属する派閥のレベルに[Value]を加算する。

FacVar

FacVar [FID] [n]
派閥[FID]の変数V[n]を参照する。

Teamに関するマクロ


チームのIDはデフォルトで以下のように設定されている。
チームID 説明
-3 Lancemate(仲間)
0 中立
1 プレイヤーキャラクター
2 敵対

SetAlly

SetAlly [Team Number1] [Team Number2]...
チームの友好関係をセットする。

Team 1
SetAlly 2

Team 2
SetAlly 1

SetEnemy

SetEnemy [Team Number1] [Team Number2]...
チームの敵対関係をセットする。

Team 1
SetEnemy 2 3

Team 2
SetAlly 3
SetEnemy 1

Team 3
SetAlly 2
SetEnemy 1

?M

?M[Team Number]
チーム[Team Number]のランダムなメックのUIDを返す。

?P

?P[Team Number]
チーム[Team Number]のランダムなパイロットのUIDを返す。

Tord

Tord [Team Number] [Order <Parameters>]
チーム[Team Number]に命令を与える。命令の種類は下記を参照。
命令 説明
ASS [Target ID] Assasinate 指定したターゲットを攻撃する。
GO [X] [Y] Goto Spot 指定した座標へ移動する。
SD Seek & Destroy 敵を探して攻撃?
PASS Passive 建物から出ない?
FOL [Target ID] Follow 指定したターゲットについていく。

Sceneに関するマクロ


Exit

Exit [Scene ID]
現在のマップを脱出し、マップ[Scene ID]に入る。

% 使用するとHogye村へ移動する上り階段の処理。
StairsUp

Use <Exit 2>

Return

Return
直前のマップに戻る。

Retreat

Retreat [Team Number]
チーム[Team Number]をマップから取り除く。このときNUトリガーがセットされる。

Runaway

Runaway [CID]
キャラクター[CID]を検索してマップから取り除く。このときNUトリガーがセットされる。

SeekGate

SeekGate [Scene ID]
マップに入ったときにマップ[Scene ID]への入り口を検索してプレイヤーキャラクターをセットする。
-1を指定すると直前のマップへの入り口(出口の階段など)になる。

SeekTerrain

SeekTerrain [Terrain Type]
マップに入ったときに特定の地形を探してプレイヤーキャラクターをセットする?

DrawTerr

DrawTerr [X] [Y] [Terrain ID]
座標[X][Y]のマップタイルをタイル[Terrain ID]に更新する。
Ladon体内のマップで入り口をふさぐのに用いられている。

ASCIIモードの「マップを作成する」で作成したマップでない場合、更新するとその座標は一度未調査の状態に戻る。

PassVar

PassVar [n] [Value]
Plotから(Dynamic)Sceneを呼び出すとき、そのSceneの変数V[n](L[n])に値[Value]を渡す。

Dynamic Sceneに関するマクロ


Dynamic Sceneとは自動生成される一時的なマップ。主に戦闘などで使われる。

NewD

NewD [Scale]
スケール[Scale]のDynamic Sceneを自動生成する。
脱出条件を記述する箇所がないので、撤退時に別のマップに戻る処理をプロットに書いておかないとフリーズする。

Persona 2

Greeting <NewChat Say 1 Addchat 1 AddChat 2>

Result1 <EndChat Say 2 Goto GoStartCombat>

GoStartCombat <NewD 0>

Result2 <EndChat Say 3>

Msg1 <テスト用マップへ行きますか?>
Msg2 <それでは案内します。>
Msg3 <さようなら。>

Prompt1 <行ってみる。>
Prompt2 <いや、結構。>

LoadD

LoadD [Label]
ラべル名[Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。

...

GoStartCombat <LoadD .testmap>

.testmap <TEST_SCENE.txt>

...

Dynamic

Dynamic [Scale] [PV] [NU1 Label] [NU2 Label]
スケール[Scale]のDynamic Sceneを自動生成する。

合計PV = [PV]の敵メックが初期配置される。
PVの値に用いられるのは通常Threatマクロである。

ラべル名[NU Label]で指定したラベルにプレイヤーおよび敵のチームが全滅したときの脱出条件などを記述する。

メック用の戦闘マップを生成するのに使われるため、SF0には対応していない?

...

GoStartCombat <Dynamic 2 V1 .nu1 .nu2>

.nu1 <if= T1 0 Return>
.nu2 <if= T2 0 Return>

...

Staged

Staged [Label] [PV]
ラべル名[Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。

合計PV = [PV]の敵メックが初期配置される。
PVの値に用いられるのは通常Threatマクロである。

スケールや脱出条件はDynamic Scene用ファイルの方に記述する。

...

GoStartCombat <Staged .testmap V1 .nu1 .nu2>

.testmap <TEST_SCENE.txt>

...

MDynamic

MDynamic [Scale] [PV] [MDesc Label] [NU1 Label] [NU2 Label]
Dynamicマクロのモンスター版。

合計Size = [PV]の敵モンスターが初期配置される。
PVの値に用いられるのは通常WMThreatマクロであり、Threatマクロなどで大きな値を代入するとエラーが起きる。

ラべル名[MDesc Label]で指定したラベルにモンスターのタイプを記述する。

ラべル名[NU Label]で指定したラベルにプレイヤーおよび敵のチームが全滅したときの脱出条件などを記述する。

...

GoStartCombat <MDynamic 2 V1 .monstertype .nu1 .nu2>

.monstertype <animal cave>
.nu1 <if= T1 0 Return>
.nu2 <if= T2 0 Return>

...

MStaged

MStaged [Label] [PV] [MDesc Label]
Stagedのモンスター版。

合計Size = [PV]の敵モンスターが初期配置される。
PVの値に用いられるのは通常WMThreatマクロであり、Threatマクロなどで大きな値を代入するとエラーが起きる。

ラべル名[MDesc Label]で指定したラベルにモンスターのタイプを記述する。

スケールや脱出条件はDynamic Scene用ファイルの方に記述する。

...

GoStartCombat <MStaged .testmap V1 .monstertype>

.testmap <TEST_SCENE.txt>
.monstertype <animal cave>

...

SetMapType

SetMapType [RandamMap ID]
Dynamic Sceneの基本地形となるランダムマップを指定する。
[RandamMap ID]に記述するIDは一部マクロになっている。
たとえば、"-6"と"CityMap"のどちらを書いても町マップになる。

...

GoStartCombat <NewD 0 SetMapType CityMap>

...

Encounter

Encounter [Enemy%] [Ally%] [Desc Label]
Dynamic SceneにグローバルNPC(某王女さまとか)を加えるコマンド。

[Enemy%]と[Ally%]はそれぞれ敵対 / 友好NPCが参加する確率。

ラべル名[Desc Label]で指定したラベルに敵のNPCのタイプを記述する。

...

GoStartCombat <Dynamic 2 V1 .nu1 .nu2 Encounter 50 50 .desc>

.desc <Villainous>
.nu1 <if= T1 0 Return>
.nu2 <if= T2 0 Return>

...

モデルに関するマクロ


UpdateProps

UpdateProps
モデルに記述されたUpdateトリガーを実行させる。

SetKeyItem

SetKeyItem [NID]
固有アイテムにNIDを割り当てる。
プロットで生成したアイテムのNIDについては変数E[n]で代用できるため不要。

ItemVar=

ItemVar= [NID] [n] [Value]
インベントリ内のモデル[NID]の変数V[n]に値[Value]を渡す。

Plot 0

Element2 <Prefab>

...

Start <if= V1 0 V= 1 1 Goto GoInitE2>

GoInitE2 <ItemVar= E2 1 1000>

sub
	...
end
inv
	STC Computer-1
	
	Use <Print 1>
	
	Msg1 <このコンピュータの変数V1に \VAL V1 が代入されています。>
end

お金や経験値などに関するマクロ


XPV

XPV [Value]
プレイヤーキャラクターの経験値に[Value]を加算する。ダイアログに表示が出る。

CashPrize

CashPrize [Value]
プレイヤーキャラクターのお金に[Value]を加算する。ダイアログに表示が出る。

Cash+

Cash+ [Value]
プレイヤーキャラクターのお金に[Value]を加算する。ダイアログに表示が出ない。
店での購入の処理に使われる([Value] < 0)。

MechaPrize

MechaPrize [Mecha Label]
ラベル名[Mecha Label]で指定されたDesignファイルのメックをプレイヤーキャラクターに与える。

Reputation

Reputation [Reputation Number] [Value]
プレイヤーキャラクターの性格の数値に[Value]を加算する。
どの性格かは[Reputation Number]で指定する。

PCRep

PCRep [Reputation Number]
プレイヤーキャラクターの性格の数値を返す。
どの性格かは[Reputation Number]で指定する。

数値は 100 から -100 の間で変動する。

Threat

Threat [Reputation] [%]
敵メックの脅威値(PV)を返す。
[Reputation]には通常PCRepマクロを用いる。[%]で補正を掛ける。

WMThreat

WMThreat [Reputation]
敵モンスターの脅威値を返す。実際には [Reputation] * 0.5 の値を返している。
[Reputation]には通常PCRepマクロを用いる。

Reward

Reward [Threat Value] [%]
報酬額の値を返す。
[Threat Value]には通常Threatマクロを用いる。[%]で補正を掛ける。

ステータスやスキルに関するマクロ


NPCLevel

NPCLevel [CID] [X]
[X]に応じてNPC[CID]の持つ全スキルの値を固定値に修正する。
[X]は通常PCRepマクロが用いられる。

NPCAbsoluteLevel

NPCAbsoluteLevel [CID] [X]
[X]に応じてNPC[CID]の持つ全スキルの値に対し割合で補正する。
[X]は通常PCRepマクロが用いられる。

以下は比較表。
X 0 20 40 60 80 100
NPCLevelによる補正 3 5 8 11 14 17
NPCAbsoluteLevelによる補正
(スキルレベルが10の場合)
3 5 7 9 11 13

Mental

Mental
MTを 5 消費する。

会話に関するマクロ


Say

Say [Msg Number]
Msgタグに記述したメッセージを会話画面に表示する。

NewChat

NewChat
会話画面をクリアする。
最初のメッセージの表示、選択肢を選んだ後のメッセージの更新に使う。

Persona 2

Greeting <NewChat Say 1>

Msg1 <こんにちは。>

EndChat

EndChat
NewChatと基本的に同じだが、こちらは「雑談」と「離れる」がでない。
最後の文章や一方的な会話をさせたいに使う。

Persona 2

Greeting <EndChat Say 1>

Msg1 <ほっといてくれ。>

AddChat

AddChat [Msg Number]
Promptタグに記述した選択肢を会話画面に表示する。
選んだ後の処理はResultトリガーに記述する。

Persona 2

Greeting <NewChat Say 1 AddChat 1 AddChat 2>

Result1 <EndChat Say 2>
Result2 <EndChat Say 3>

Msg1 <こんにちは。>
Msg2 <いいお天気ですね。>
Msg3 <いえ、何でもありません。>

Prompt1 <やあ。>
Prompt2 <何か用?>

ForceChat

ForceChat [CID]
NPC[CID]と強制的に会話する。

School

School [Skill Identifier]
スキルを習得する会話を表示する。
ラベル名[Skill Identifier]で指定したラベルに、スキル番号のリストを記述する。

Persona 2

Greeting <NewChat Say 1 AddChat 1 AddChat 2>

Result1 <EndChat Say 2 School .skill Say 3>
Result2 <EndChat Say 4>

.school <1 2 3 4 5>

Msg1 <何か訓練しますか?>
Msg2 <どれを訓練しますか?>
Msg3 <また訓練したくなったら声を掛けてください。>
Msg4 <それは残念です。>

Prompt1 <はい。>
Prompt2 <いいえ。>

Shop

Shop [Wares Identifier]
買い物の会話を表示する。
ラベル名[Wares Identifier]で指定したラベルに、売りたいGearの番号のリストを記述する。

Gearの番号以外にも以下のコマンドを追記できる。
コマンド 説明
Mecha メックを販売できる。
Mextra Gearの番号に対応したメック用品を販売できる。
Delivery メックの運送が可能になる。

Persona 2

Greeting <NewChat Say 1 AddChat 1 AddChat 2>

Result1 <EndChat Say 2 Shop .wares Say 3>
Result2 <EndChat Say 3>

.wares <4 5 10 11 MECHA MEXTRA>

Msg1 <いらっしゃい。何か御用?>
Msg2 <どれを買いますか?>
Msg3 <またどうぞ。>

Prompt1 <買い物をしたい。>
Prompt2 <何でもない。>

メッセージ用のタグ

タグ 説明
Rumor <Message> そのGearにまつわる噂で使うメッセージを記述する。
Msg[Msg Number] <Message> PrintやSayコマンドなどで使うメッセージを記述する。
Prompt[Msg Number] <Message> AddChatコマンドで使うメッセージを記述する。

メッセージ用の置換コマンド

コマンドの前後は半角スペースが必要。
コマンド 説明
\ELEMENT [ID] E[n]に対応した文字列を表示する。
\NARRATIVE [ID] N[n]に対応した文字列を表示する。
\PC プレイヤーキャラクターの名前を表示する。
\PERSONA [CID] NPC[CID]の名前を表示する。
\RANK プレイヤーキャラクターの派閥レベルの名前(階級)を表示する。
\SCENE [Scene ID] Sceneの名前を表示する。
\VAL [Variable] 変数の値を表示する。

以下はl0ugh版/日本語SDL版/I18N版で追加された置換コマンド。前後の半角スペースは不要。
コマンド 説明
%JF 一人称を表示する。
%JS 二人称を表示する。
%JG 語尾を表示する。

なお、%J*系と %N, %A, %T のトークンに限り半角スペースを空けずに連続して書く事が可能。
例:%JF%JG%JF、%JF%JF。

また、GH2-UTF8版ではさらに多くの置換コマンドが追加されている。
詳細については GearHead-2 人称/語尾トークン詳細 を参照。

その他のマクロ


SkRoll

SkRoll [Skill Number]
スキル[Skill Number]のスキルロールを行った結果を返す。

Trigger

Trigger [Trigger] [Parameter]
GetやKeyなどのIDを伴うトリガーを実行させる。

Plot 0

...

Start <if= V1 0 V= 1 1 Compose Key E2 .ActivateE2>

.ActivateE2 <Print 1>

Msg1 <アイテムE2が作動しました。>

sub
	Persona 3
	
	Greeting <NewChat Say 1 AddChat 1 AddChat 2>
	
	Result1 <Say 2 Trigger Key E2>
	Result2 <Say 3>
	
	Msg1 <アイテムE2を起動しますか?>
	Msg2 <アイテムE2の起動を開始。>
	Msg3 <そうですか…。>
	
	Prompt1 <起動する。>
	Prompt2 <やめとく。>
end

SetNPC

SetNPC [CID]
Eメールの送信者として NPC[CID] を設定する。

Email

Email [Message Number]
Eメールの送信を行う。事前に SetNPC コマンドで誰がEメール送信を行うのかを指定されたし。