この文書はスクリプトの詳細を仕様としてまとめたものである。 書き方マニュアルではないので、書き方を知りたい場合は、 サンプルのソースそのものを読むこと。

## ＜＜基本事項＞＞

- 手続き型言語である。スクリプトファイルの一番上から一行一行順番に実行される。メインファイルとは概念が異なるので注意。
- １命令は１行に書く。複数行にまたがって記述することは出来ない。
- １行の最大サイズは256バイト。
- スクリプトファイルの最大サイズは65536バイト。
- 改行コードは[CR+LF]で、文字コードはS-JIS。通常のWindowsテキストファイルと同じ。
- 大文字小文字は違うものとして判断される。

## ＜＜スクリプトエンジンが持つパラメータ＞＞

### ＜プログラムカウンタ＞

記述方法 | （なし）
現在実行している行数を示すカウンタ。内部パラメータである。 jump命令やcall命令で変化する。

### ＜レジスタ＞

記述方法 | Rn
記述の例 | R0, R3
データ範囲 | -2,147,483,648〜2,147,483,647
数 | 8個（R0〜R7）
使われる例 |
    jump	R0 == 0 clear	;レジスタ0がゼロならば#clearへジャンプ
条件判定や演算を行う際の、一時的なデータ格納場所。 特にレジスタ番号0は敵の数を取得する際の戻り値になったりと、頻繁に使う。 call命令によるレジスタスタックにPUSHされ、returnでPOPされて元に戻る。

### ＜レジスタスタック＞

記述方法 | （なし）
数 | 8段
call命令でサブルーチンコールした際に、 自動的にレジスタ値とプログラムカウンタを保持する役目を持つ。 これにより、参照渡しではなく値渡しになるため、構造化プログラミングが容易となる。

### ＜フラグ＞

記述方法 | Fnn
記述の例 | F0, F11
データ範囲 | -2,147,483,648〜2,147,483,647
数 | 128個（F0〜F127）
使われる例 |
    set	F10 = R0	;レジスタ0の値をフラグ10に保存
いわゆる「変数」として使う。 set命令で明示的に変更しない限りデータは変わらないため、 イベントシーンの実行フラグや、ミッション開始時のステータス保持などに使うことが一般的。 レジスタと異なり、スタックされないので、callしてもreturnしても値は変わらない。

### ＜カウンタ＞

記述方法 | Cn
記述の例 | C0, C3
データ範囲 | 0〜2,147,483,647
数 | 128個（C0〜C127）
使われる例 |
    jump	C0 >= 60 failed	;カウンタ0の始動から60秒経過したら#failedへジャンプ
時間の経過を計るために使う。始動したら自動的にカウントアップし、一秒間で1増加する。 startcounter命令により、カウントを開始できる。カウンタの値が0の場合、カウンタは停止していることをあらわす。 ミッションの残り時間を計測することに使うことは『推奨しない』（getstatus REST_TIME を使うこと）。 単位系を「秒」に統一したことにより、最大で-0.983秒（-59/60秒）の誤差が発生する。 したがって、カメラワーク制御の時間計測などに使うことは出来ない。基本的には「増援出現から15秒後」という使い方をするためのものである。 なお、レジスタと異なり、スタックされないので、callしてもreturnしても値は変わらない。

## ＜＜パラメータ記述法＞＞

### ＜レジスタ・フラグ・カウンタ＞

上記のとおり

### ＜数値＞

-160 や 13.875 など、普通に記述する。桁数に制限は無いが、データ範囲の上限を超えることは出来ない。 命令によっては小数を指定できないものもある。その場合は整数に丸められる。

### ＜文字列＞

"この文のように、ダブルクォーテーションで囲う。"

### ＜ラベル＞

ジャンプ命令に使うラベルは、 #ジャンプ先のラベル と記述する。 ジャンプする場合は

jump 0==0 ジャンプ先のラベル

というように、#記号を取り去って記述する。 言語仕様的にラベル名に日本語を使うことが可能だが、将来の拡張性の妨げになるので『推奨しない』。
レジスタ値/フラグ値を指定することもできる。

set R5=123 jump 0==0 R5 #123 ;ココへ飛ぶ

ジャンプ先のラベルは文字列として扱われるので、"#0123"等というラベル名にはジャンプできない。

### ＜ラベルコード＞

ユニットに設定するラベルコード(Label)を記述する場合はLをつける。L1やL15のように記述する。 1〜32767の間で指定する。L0は「NULL」を表す。

### ＜エスケープシーケンスについて＞

命令は一行に記述しなければならないので、\n改行の入力の代わりにこのように\nという記号を使う。 同様の理由で、文字列中に\や"を入れたい場合は、それぞれ\\や\"というように入力する。 現時点で実装されているものは、この３だけである。 \tや\0など、C言語にあるものが全て使えるわけではない。 ラベル名の定義には『使用できない』。

## ＜＜スレッドについて＞＞

通常は一行一行一つずつ実行されるスクリプトだが、マルチスレッド動作により並列動作を行うことが出来る。 主に巡航ミサイルの制御などに用いるが、並列動作の意味を十分に理解しないとバグの温床になるので、注意すること。 C++などでマルチスレッドプログラムを実際に作ったことがある人であれば、何も心配は要らないのでそのまま使って構わないと思う。
createthread命令により、スレッドを生成することで、複数のスクリプトが 同時に実行されていることと同じような状態になる。スレッド番号は0〜15で、親スレッド0は自動的に生成される。つまり使えるのは1〜15である。 なお、スレッドを終了させる場合はstopthread命令を使う。
Windowsのマルチスレッドを用いているわけではないので、 完全にスレッドセーフであるが、資源は共有しているのでメッセージウィンドウなどは親スレッドのみで制御するようにすることを推奨する。

## ＜＜「セクション」について＞＞

RSEのシステムでは、全てのユニットはステートマシンによって制御されている。そしてその「状態」を「セクション」と呼び、 setsection命令で変更可能である。通常の戦闘ではセクションを変更する必要は全く無いが、 一部ユニットにてセクションをスクリプトから変更することを前提としているユニットが存在する。
なお、セクションの初期値は敵配置エディタで設定する。航空機の場合ほうっておくと勝手に飛行を開始してしまうため「"event ON"の時にRaidersが読み出されるとセクションは200になる」という仕様が存在する。 セクションの200はスクリプト制御を意味し、setpad命令で操作を行うことになる。逆にいえば、戦闘中に"setsection L10 200"などとすれば、 戦闘中の飛行ユニットを自由に飛行させることが出来る。巡航ミサイルはこの方法で実現している。

特殊なセクションを挙げる

Raiders
30 | 空中静止
200 | スクリプト制御

対空砲、SAM、レーザーなど
30 | 稼動停止
40 | 発射（settargetで事前にターゲット設定を行う必要がある。設定が無い場合は正面に射撃）

TOYBOX
0 | なにもなし
1 | 落雷
10 | ECM
11 | ECM(敵軍のみ)
12 | ECM(自軍のみ)
13 | ECM(プレイヤーのみ)
20 | イージスシステムのミサイル乱発
30 | プロペラ（上下軸を中心に回転）
31 | プロペラ（前後軸を中心に回転）

## ＜＜命令リファレンス＞＞

### ＜ABC順＞

1. attackstyle
2. bomb
3. call
4. closewindow
5. camfocus
6. camzoom
7. catapult
8. createcopy
9. createsprite
10. createthread
11. debugmode
12. deleteobject
13. destroy
14. event
15. fadein
16. fadeout
17. fadewave
18. finish
19. getammo
20. getcleartime
21. getdestroy
22. getfox
23. getgunrange
24. gethit
25. getlength
26. getlock
27. getpadnow
28. getpadtrg
29. getpos
30. getrotabs
31. getstatus
32. jump
33. limitengine
34. loadse
35. log
36. message
37. move
38. movegearheight
39. playse
40. playseloop
41. playwave
42. provideweapon
43. putgear
44. putgroup
45. rand
46. releaseobject
47. relrot
48. reset
49. return
50. runaway
51. set
52. setbarrier
53. setcolor
54. setdefensive
55. setduck
56. setoriginalparam
57. setheightoffset
58. setheightstall
59. sethp
60. setimportant
61. setlabel
62. setlabelonline
63. setmaster
64. setmiso
65. setname
66. setpad
67. setparent
68. setpos
69. setprintlist
70. setrot
71. setscale
72. setsection
73. setspeed
74. settarget
75. settime
76. shootmissile
77. startcounter
78. stopgun
79. stopmissile
80. stopse
81. stopthread
82. stopwave
83. stopweapon
84. supplyweapon
85. supplydamage
86. system
87. targetflag
88. teamid
89. viewmode
90. waitframe
91. waitstream
92. waittime

### ＜カテゴリ順＞

- ミッション全体の設定
  1. putgroup（敵グループを配置する）
  2. settime（制限時間を設定する）
  3. stopmissile（ミサイルを使用禁止にする）
  4. stopgun（機銃を使用禁止にする）
  5. setheightoffset（高度計の表示にオフセットを加える）
  6. setheightstall（失速演算開始高度を変更する）
- ミッション動作制御
  1. system（システムに処理を戻し1フレーム進める）
  2. waittime（スクリプトの動作を待つ:秒単位）
  3. waitframe（スクリプトの動作を待つ:フレーム単位）
  4. set（レジスタ・フラグ間の演算）
  5. rand（乱数生成）
  6. jump（スクリプトで別の場所へ飛ぶ）
  7. call（サブルーチンコール）
  8. return（サブルーチンから戻る）
  9. reset（スタックを初期化して最初から）
  10. createthread（スクリプトのマルチスレッド動作）
  11. stopthread（スレッドの終了）
  12. event（イベントモードへ移行/復帰する）
  13. finish（ミッションを終了させる）
  14. message（台詞ウィンドウに台詞を表示する）
  15. closewindow（台詞ウィンドウを閉じる）
  16. getstatus（様々な戦場情報を取得する）
  17. getlength（ユニット間の距離を取得する）
  18. getpos（ユニットの場所と角度を取得する）
  19. getrotabs（ユニットの絶対角度を取得する）
  20. getlock（ユニットが敵をロックオンしたことを検知）
  21. getgunrange（ユニットが敵を機銃射程内に捕らえたことを検知）
  22. getfox（ユニットがミサイルを発射したことを検知）
  23. gethit（ユニットの攻撃が命中したことを検知）
  24. getdestroy（ユニットが敵を撃破したことを検知）
  25. getammo（ユニットの残弾数を取得）
  26. startcounter（カウンタを始動する）
  27. supplyweapon（武装補給）
  28. supplydamage（装甲値回復）
  29. loadse（効果音を読み込む）
  30. playse（効果音を鳴らす）
  31. playseloop（効果音をループで鳴らす）
  32. stopse（効果音を停止する）
- ユニット制御
  1. deleteobject（ユニットを全て消去する）
  2. catapult（敵機をカタパルト発進させる）
  3. setpad（イベントシーン飛行中にユニットを移動させる）
  4. setsection（動作を制御する）
  5. setspeed（速度を強制指定）
  6. move（ユニットの相対座標移動）
  7. setpos（ユニットの絶対座標移動）
  8. setrot（ユニットの角度指定）
  9. relrot（ユニットの相対角度変化）
  10. setscale（ユニットの拡大率を指定）
  11. runaway（ユニットを任意の場所へ逃がす）
  12. sethp（ユニットの装甲値を指定）
  13. teamid（所属を変更する）
  14. setoriginalparam（イベント飛行のパラメータを機体本来の値にする）
  15. attackstyle（攻撃優先順位を変更させる）
  16. setimportant（距離に関わり無くHUDに表示するようにする）
  17. setbarrier（バリアーを張る）
  18. setmiso（攻撃を受けないようにする）
  19. setdefensive（防空域を無視する）
  20. setduck（プレイヤーの戦闘空域に追随しないようにする）
  21. setlabel（子ユニットにラベルコードを付加する）
  22. setlabelonline（オンラインプレイにおいてプレイヤー機にラベルコードを付加する）
  23. destroy（ユニットを大破させる）
  24. setname（HUDの表示名を変更）
  25. settarget（ターゲットを指定）
  26. stopweapon（武器を使用禁止にする）
  27. limitengine（エンジン出力を制限する）
  28. shootmissile（ミサイルを発射する）
  29. targetflag（ミッションターゲットに変更する）
  30. releaseobject（ユニットを強制的に消去する）
  31. putgear（航空機の車輪を出す）
  32. movegearheight（ユニットを車輪の座標だけ上に移動させる）
  33. setcolor（スプライトの色を変更する）
  34. setparent（親オブジェクトを指定する）
  35. setmaster（マスターオブジェクトを指定）
  36. createcopy（撮影用のユニットを複製する）
  37. createsprite（2Dスプライトを生成する）
  38. bomb（爆風エフェクトを生成）
- カメラ制御
  1. fadein（フェードイン）
  2. fadeout（フェードアウト）
  3. viewmode（撮影モード変更）
  4. camzoom（カメラをズームイン/アウトさせる）
  5. camfocus（撮影対象を変更する）
- その他
  1. playwave（音声ファイルの再生）
  2. stopwave（音声再生の停止）
  3. fadewave（音声再生をフェードアウト）
  4. waitstream（再生中のストリーム音声が終了するまで待つ）
  5. debugmode（デバッグモードのON/OFF）
  6. getpadnow（ゲームパッド入力状態を取得/現在値）
  7. getpadtrg（ゲームパッド入力状態を取得/トリガ）
  8. provideweapon（武装の入手）
  9. getcleartime（最短クリア時間の取得）
  10. setprintlist（デバッグ用変数画面表示）
  11. log（ログ出力）

### ＜解説＞

attackstyle

記述 | attackstyle　ラベルコード, 種別コード, フラグ
引数 | ラベルコード | 変更したいユニットのラベルコード
種別コード | 優先設定すべき敵の種別。下記のコードで指定する。
PRIORITY_AIR | 航空機
PRIORITY_GROUND | 地上兵器および施設
PRIORITY_TARGET | ターゲット指定された敵
PRIORITY_NONTARGET | ターゲット以外の敵
フラグ | 優先にしたい場合はON、そうでない場合はOFF。
動作 | ユニットの攻撃優先順位を変更する。これにより、僚機に上空制圧させたり出来る。あくまで優先設定をするだけなので、目の前の敵を放り出して遥か彼方の敵を追う事は無い。なお、敵機は標準でPRIOLITY_AIRがONになっている。
例 |
    attackstyle  L10, PRIORITY_NONTARGET, ON   ;Label=10の僚機はターゲットで無い敵を優先的に攻撃する

bomb

記述 | bomb　ラベルコード, 爆発規模
引数 | ラベルコード | 爆発する場所にいるユニットのラベルコード
爆発する半径 | 5〜30程度が目安。大きすぎるとプログラムがクラッシュする。
動作 | ユニットの座標を読み込んで、効果音付きで爆発させる。ユニット自体が爆死するわけではない。
例 |
    bomb  L13, 30  ;Label=13の妹の落下地点で機雷が爆発

call

記述 | call　比較値左辺　比較演算子　比較値右辺　,ジャンプ先ラベル
引数 | 比較値左辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子 | 右辺と左辺を比較する演算子、!= == < > <= >= の６つ。>=を間違えて=>と入力しないように注意。
比較値右辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
ジャンプ先ラベル | 比較式が正しい場合にジャンプする先のラベル
動作 | （比較値左辺 比較演算子 比較値右辺）の比較式がTRUEの場合は、レジスタをスタックにPUSHして、ジャンプ先ラベルへサブルーチンコールする。
例 |
    call  R0>=10  ,Battle1  ;R0が10以上であれば、#Battle1へサブルーチンコール

camfocus

記述 | camfocus　focus1のラベルコード, focus2のラベルコード
引数 | focus1のラベルコード | カメラの場所となるユニットのラベルコード
focus2のラベルコード | カメラコードがLONG,SHORTのときの撮影対象ラベルコード
動作 | viewmodeでカメラを変更した際に、撮影対象となるユニットを指定する。カメラコードがLONG,SHORTの場合はカメラの場所と撮影対象の２つを指定する。
例 |
    camfocus  L10, L1  ;L10から自機を撮影

camzoom

記述 | camzoom　角度
引数 | 角度 | カメラの透視投影角度を45〜5の間で指定。標準は35。
動作 | カメラをズームイン・アウトさせる。突然変化するのではなく、滑らかに変わる。カメラの撮影モードがLONGまたはSHORTの場合のみ有効。
例 |
    camzoom  10  ;カメラをズームインさせる

catapult

記述 | catapult　カタパルトのラベルコード, UNIT_ID, 出現するユニットのラベルコード, ターゲットフラグ
引数 | カタパルトのラベルコード | カタパルトになるユニットのラベルコード
UNIT_ID | 出現させるユニットのUNIT_ID
出現するユニットのラベルコード | 出現させるユニットに設定するラベルコード
ターゲットフラグ | ターゲットとして出現させる場合はON。通常の敵の場合はOFF。
動作 | 航空機をカタパルト発進させる。カタパルトは座標と方向の取得にしか使わないので、仕様上は対空戦車などから敵機が飛び出しても構わない。
例 |
    catapult  L62, 59  ;カタパルト(Label=62)からチャリオットC(UNIT_ID=59)を発進

closewindow

記述 | closewindow
引数 | （なし）
動作 | message命令で表示された台詞ウィンドウを消す。

createcopy

記述 | createcopy　コピー先ラベルコード, コピー元ラベルコード
引数 | コピー先ラベルコード | コピーしたユニットが持つラベルコード
コピー元ラベルコード | コピーされる対象ユニットのラベルコード
動作 | ユニットの場所と角度を使って透明機体を生成する。イベントでのカメラ制御用。debugモードの場合はプレイヤー選択機体に見える。
例 |
    createcopy  L10,L2  ;Label=2の機体の場所にLabel=10の透明機体を生成

createsprite

記述 | createsprite　生成先ラベルコード, テクスチャ元UNIT_ID, (x0,y0, x1,y1)
引数 | 生成先ラベルコード | 作成したスプライトが持つラベルコード
テクスチャ元UNIT_ID | この番号のテクスチャを使ってスプライトを生成
(x0,y0, x1,y1) | スプライトとして使う矩形領域
動作 | スプライトオブジェクトを生成する。2D処理されるので、カメラ位置に関わらず表示される。座標系は解像度に関わり無く左上が(0,0,0)で、右下が(640,480,0)。
例 |
    createsprite  L200, 240, (0,0,512,32)    ;UNIT_ID=240のテクスチャを使って2Dスプライトを作る。

createthread

記述 | createthread　スレッド番号, スレッド開始ラベル
引数 | スレッド番号 | 開始する対象となるスレッド番号
スレッド開始ラベル | スレッドが最初に実行する行のラベル
動作 | スクリプトの子スレッドを生成する。詳しくはスレッドについてを参照
例 |
    createthread  1, missile  ;スレッド1を始動、#missileから開始する。以後、２つのスレッドは並列動作を行う。

debugmode

記述 | debugmode　フラグ
引数 | フラグ | デバッグモードをONかOFFで指定
動作 | デバッグモードに切り替える、今のところ、通常時とデバッグモードの違いは「透明機体がRR10の見た目で表示される」以外の差は無い。
例 |
    debugmode  ON  ;デバッグモードに切り替える。

deleteobject

記述 | deleteobject
引数 | （なし）
動作 | イベントモードで配置したユニットを全て消去する。イベントモードを抜ける前に記述するのが一般的。

destroy

記述 | destroy　ラベルコード
引数 | ラベルコード | 破壊するユニットのラベルコード
動作 | ユニットにミサイル100発分相当のダメージを与えて破壊する。
例 |
    destroy  L10  ;Label=10の輸送機を破壊する

event

記述 | event　フラグ
引数 | フラグ | イベントモードか否かを表すフラグ。ONかOFFを指定。
動作 | イベントモードに入る。イベントモードでは、それまで配置したユニットは全て非表示になるので、イベントシーン用のユニットは別途読み込む必要がある。
例 |
    event  ON  ;イベントシーン開始

fadewave

記述 | fadewave, 再生種別コード
引数 | 再生種別コード | 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。
動作 | 音声再生をフェードアウトさせる

fadein

記述 | fadein
引数 | （なし）
動作 | 画面をフェードインさせる。イベントシーンの出入りにfadeoutと併用する。

fadeout

記述 | fadeout
引数 | （なし）
動作 | 画面をフェードアウトさせる。イベントシーンの出入りにfadeinと併用する。

finish

記述 | finish　終了コード, (次ミッション)
引数 | 終了コード | ゲームのメインエンジンに返す終了理由
CLEAR | ミッション成功
FAILED | ミッション失敗
TIMEUP | 時間切れ
NEXTSTAGE | 次のステージへ
次ミッション | 次にプレイするミッションID
動作 | スクリプトを終了させ、ミッション終了処理をさせる
例 |
    finish  CLEAR  ;ミッションクリア
    finish  NEXTSTAGE,1  ;ミッションクリア、MissionID=1のミッションへ進む

getammo

記述 | getammo　ユニットを示すラベルコード
引数 | ユニットを示すラベルコード | 残弾数を取得したいユニット
動作 | 残弾数を取得する。残弾数がゼロになったかどうか見るだけでは「装備しない」と区別できないため、搭載可能数もあわせて評価する。
R0 | メインパイロンの残弾数。
R1 | サブパイロンの残弾数。
R2 | センターパイロンの残弾数。
R3 | メインパイロンの搭載可能数（初期値）。
R4 | サブパイロンの搭載可能数（初期値）。
R5 | センターパイロンの搭載可能数（初期値）。
例 |
    getammo  L1  ;プレイヤー(Label=1)の残弾数情報を取得

getcleartime

記述 | getcleartime　ミッションID
引数 | ミッションID | クリア時間を取得したいミッション。負の値ならば現在実行中のミッション。
動作 | ミッションのクリア時間をゲームデータから取得し、以下のレジスタに代入する。単位は秒。２週目判定のために使うのが一般的。
R0 | Easyの最短クリアタイム
R1 | Normalの最短クリアタイム
R2 | Hardの最短クリアタイム
R3 |
R4 | Easyの最短殲滅タイム
R5 | Normalの最短殲滅タイム
R6 | Hardの最短殲滅タイム
R7 |
高い難易度しかクリアしていない場合などは、低い難易度へ値がコピーされる。例えばNormalしかクリアしていない場合でも、EasyはNormalのタイムでクリアしたものとして値が格納される。 なお、実行時の環境からデータを取得するので、データの残らないエディットミッションでは使用できない。 また、リプレイファイルを再生した場合に、記録された環境と再生する環境ではクリア情報が異なってしまうため、ミッション終了時以外は使用してはいけない。リプレイが正常に動作しなくなる。
例 |
    getcleartime  -1  ;２週目判定の情報を取得

getdestroy

記述 | getdestroy　ユニットを示すラベルコード
引数 | ユニットを示すラベルコード | 撃破の検知対象のユニット
動作 | ユニットが敵を撃破したことを検知する。撃破した場合R0には1〜59の値が代入され、撃破してからの時間を表す。命中した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
R0 | 撃破していたら1〜59（59は撃破した瞬間）。でなければ0。
R1 | 撃破した対象が航空機なら1。地上部隊なら2。施設なら3。
R2 | 撃破した敵のラベルコード
R3 | 撃破した敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
例 |
    getdestroy  L1  ;プレイヤー(Label=1)の撃破情報を取得

getfox

記述 | getfox　ユニットを示すラベルコード
引数 | ユニットを示すラベルコード | ロックオンの検知対象のユニット
動作 | ユニットがミサイルを発射したことを検知する。発射した場合R0には1〜59の値が代入され、発射してからの時間を表す。発射した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
R0 | 発射していたら1〜59（59は発射した瞬間）。でなければ0。
R1 | ロックオン対象が航空機なら1。地上部隊なら2。施設なら3。
R2 | ロックオンした敵のラベルコード
R3 | ロックオンした敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
例 |
    getfox  L1  ;プレイヤー(Label=1)のロックオン情報を取得

getgunrange

記述 | getgunrange　ユニットを示すラベルコード
引数 | ユニットを示すラベルコード | 射程の検知対象のユニット
動作 | ユニットが敵を機銃射程内に捉えたことをを検知する。射程内の場合R0には1以上の値が代入される。同様にして、各レジスタに以下のような値が代入される。
R0 | 機銃射程内に入ったら1。でなければ0。
R1 | 対象が航空機なら1。地上部隊なら2。施設なら3。
R2 | 狙っている敵のラベルコード
R3 | 狙っている敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
例 |
    getgunrange  L1  ;プレイヤー(Label=1)のガンレンジ情報を取得

gethit

記述 | gethit　ユニットを示すラベルコード
引数 | ユニットを示すラベルコード | 命中の検知対象のユニット
動作 | ユニットの攻撃が敵に命中したことを検知する。命中した場合R0には1〜59の値が代入され、命中してからの時間を表す。命中した瞬間は59であり、1秒経過までに0まで減算される。同様にして、各レジスタに以下のような値が代入される。
R0 | 命中していたら1〜59（59は発射した瞬間）。でなければ0。
R1 | 命中した対象が航空機なら1。地上部隊なら2。施設なら3。
R2 | 命中した敵のラベルコード
R3 | 命中した敵のハンドル
R4 | ダメージ値
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
例 |
    gethit  L1  ;プレイヤー(Label=1)の命中情報を取得

getlength

記述 | getlength　ユニットを示すラベルコード1, ユニットを示すラベルコード2
引数 | ユニットを示すラベルコード1 | 距離を測る対象のユニット（単体のみ）
ユニットを示すラベルコード2 | 距離を測る対象のユニット（グループ可）
動作 | ラベルコード1のユニットを基準にして、ラベルコード2のユニットの中で最も近いものの距離をR0に代入する。ラベルコード2が存在しない場合、R0には負の値が代入される。
例 |
    getlength  L1, L10  ;プレイヤー(Label=1)と敵機(Label=10)の距離をR0に代入

getlock

記述 | getlock　ユニットを示すラベルコード
引数 | ユニットを示すラベルコード | ロックオンの検知対象のユニット
動作 | ユニットが敵をロックオンしたことを検知する。ロックオンしている場合R0には1以上の値が代入される。同様にして、各レジスタに以下のような値が代入される。
R0 | ロックオンしていたら1。でなければ0。
R1 | ロックオン対象が航空機なら1。地上部隊なら2。施設なら3。
R2 | ロックオンした敵のラベルコード
R3 | ロックオンした敵のハンドル
敵のハンドルとは、ユニットを識別するためにシステム内部が持つ番号である。ラベルコードとは関わりなく、全てのユニットが異なる値を持つので、直前に攻撃した敵と同じか否か、という判断が可能となる。
例 |
    getlock  L1  ;プレイヤー(Label=1)のロックオン情報を取得

getpadnow

記述 | getpadnow　キーコード
引数 | キーコード | 取得するキーを示すコード
PAD_UP | ゲームパッド上（スティック上）
PAD_DOWN | ゲームパッド下（スティック下）
PAD_RIGHT | ゲームパッド右（スティック右）
PAD_LEFT | ゲームパッド左（スティック左）
PAD_GUN | 機銃発射
PAD_MISSILE | ミサイル発射
PAD_TARGET1 | ターゲット切り替え（順方向）
PAD_TARGET1 | ターゲット切り替え（逆方向）
PAD_WEAPON | 武装切り替え
動作 | キーコードで指定されたゲームパッドまたはキーボードなどの「現在の押下状態」を取得し、R0に代入する。押されていなければ0、押されていれば0以外の値。
例 |
    getpadnow  PAD_GUN      ;R0に機銃ボタンの押下状態を代入

getpadtrg

記述 | getpadtrg　キーコード
引数 | キーコード | 取得するキーを示すコード
PAD_UP | ゲームパッド上（スティック上）
PAD_DOWN | ゲームパッド下（スティック下）
PAD_RIGHT | ゲームパッド右（スティック右）
PAD_LEFT | ゲームパッド左（スティック左）
PAD_GUN | 機銃発射
PAD_MISSILE | ミサイル発射
PAD_TARGET1 | ターゲット切り替え（順方向）
PAD_TARGET1 | ターゲット切り替え（逆方向）
PAD_WEAPON | 武装切り替え
動作 | キーコードで指定されたゲームパッドまたはキーボードなどの「押下した瞬間」を取得し、R0に代入する。押されていなければ0、押されていれば0以外の値。
例 |
    getpadtrg  PAD_MISSILE      ;R0にミサイルボタンのトリガ状態を代入

getpos

記述 | getpos　ラベルコード
引数 | ラベルコード | 場所を取得するユニットのラベルコード
動作 | ユニットの座標(X,Y,Z)をR0,R1,R2に、ユニットの角度(ピッチ,方位,バンク)をR3,R4,R5に代入
例 |
    getpos  L1  ;Label=1のユニットの座標をレジスタに代入

getrotabs

記述 | getrotabs　ラベルコード
引数 | ラベルコード | 角度を取得するユニットのラベルコード
動作 | 戦場に対するユニットの角度(ピッチ,方位,バンク)をR0,R1,R2に代入。子ユニットの場合、getposとは異なり、親ユニットに関わり無く戦場に対する絶対角度を取得する。
例 |
    getrotabs  L60  ;Label=60のユニットの角度をレジスタに代入

getstatus

記述 | getstatus　ステータスコード, (オペランド)
引数 | ステータスコード | 取得するステータス情報を示すコード
REST_TIME | 残り時間
PROGRESS_TIME | 経過時間
PLAYERS_WEAPON | 武装ID（R0:機体 R1〜R3:各パイロン）
AIR_ENEMY | 敵航空機の生存数
AIR_TARGET | ターゲット航空機の生存数
AIR_FRIEND | 味方航空機の生存数
GROUND_ENEMY | 敵地上物の生存数
GROUND_TARGET | ターゲット地上物の生存数
GROUND_FRIEND | 味方地上物の生存数
ALL_ENEMY | 敵ユニットの生存数
ALL_TARGET | ターゲットユニットの生存数
ALL_FRIEND | 味方ユニットの生存数
AIR_ENEMY_DESTROYED | 敵航空機の破壊数
AIR_TARGET_DESTROYED | ターゲット航空機の破壊数
AIR_FRIEND_DESTROYED | 味方航空機の破壊数
GROUND_ENEMY_DESTROYED | 敵地上物の破壊数
GROUND_TARGET_DESTROYED | ターゲット地上物の破壊数
GROUND_FRIEND_DESTROYED | 味方地上物の破壊数
ALL_ENEMY_DESTROYED | 敵ユニットの破壊数
ALL_TARGET_DESTROYED | ターゲットユニットの破壊数
ALL_FRIEND_DESTROYED | 味方ユニットの破壊数
ALL_LABEL | オペランドが示すラベルコード付きユニットの生存数
DAMAGE_LABEL | オペランドが示すラベルコード付きユニットに与えたダメージの合計
DAMAGE_PLAYER | 自機のダメージ値を0〜100で取得。衝突はカウントしない。
LEVEL | 現在のレベルを0〜2で取得
NETWORK_ID | プレイヤーのネットワークIDを取得

NETWORK_NUM ログオンプレイヤー人数を取得
（オペランド）ステータスコードの詳細を指定。必要に応じて付け足す。
動作戦場情報を取得し、R0に代入する
例

    getstatus  REST_TIME       ;R0に残り時間の秒数を代入
    getstatus  ALL_TARGET      ;R0に全ターゲット数を代入
    getstatus  ALL_LABEL, L2   ;R0に対空機銃(Label=2)の数を代入

jump

記述 | jump　比較値左辺　比較演算子　比較値右辺 ,ジャンプ先ラベル
引数 | 比較値左辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子 | 右辺と左辺を比較する演算子、!= == < > <= >= の６つ。>=を間違えて=>と入力しないように注意。
比較値右辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
ジャンプ先ラベル | 比較式が正しい場合にジャンプする先のラベル
動作 | （比較値左辺 比較演算子 比較値右辺）の比較式がTRUEの場合はジャンプ先ラベルへジャンプする。
例 |
    jump  R0==0 ,Clear  ;R0が0であれば、#Clearへジャンプ

limitengine

記述 | limitengine　ラベルコード, 最小値, 最大値
引数 | ラベルコード | 対象となるユニットのラベルコード
最小値 , 最大値 | エンジン出力を制限する最小幅と最大幅。フルブレーキ状態が-1、フルスロットルが1。
動作 | エンジンの出力に上限を設定したり、下限を設定したりする。強制的に最高速度で飛行させたり、エンジン故障などを表現する。正常時において最小値=-1, 最大値=1となる。
例 |
    limitengine  L1, -1, 0  ;プレイヤー機のエンジン出力低下

loadse

記述 | loadse　SE番号, ファイル名
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
ファイル名 | 効果音ファイル名。wavとradが指定可能。
動作 | ログファイルに文字列を吐き出す。デバッグなどに用いる。
例 |
    loadse  50, "se\\sound.wav"  ;効果音50にse\sound.wavを読み込む

log

記述 | log　ログ文字列
引数 | ログ文字列 | ログファイルに出力する文字列
動作 | ログファイルに文字列を吐き出す。デバッグなどに用いる。
例 |
    log  "ミッション初期化処理終了"

message

記述 | message　色コード, 話者文字列, 台詞文字列
引数 | 色コード | ウィンドウの色を表す。RED/BLUE/YELLOWの３種類
話者文字列 | 話者をあらわす文字列。あまり長いとウィンドウに入りきらない。
台詞文字列 | 台詞本体をあらわす文字列。\nを使っても２行まで。
動作 | 台詞ウィンドウの内容を更新。台詞ウィンドウが無い場合は自動的に生成。
例 |
    message  BLUE,	"オペレーター",	"全ターゲットの破壊に成功しました。\n任務完了。お疲れ様です。"

move

記述 | move　ラベルコード, (X,Y,Z), 子フラグ
引数 | ラベルコード | 移動させる対象となるユニットのラベルコード
(X,Y,Z) | 相対移動ベクトル。即値またはレジスタが指定可能。
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 | ユニットを(X,Y,Z)で示されるベクトルだけ相対移動させる。子オブジェクトを持つユニットの場合、子オブジェクトに対しては直接演算されず、親と共に移動する。戦艦の砲台位置を移動させるような動作をしたい場合はCHILDフラグを指定する。
例 |
    move  L10, (3, 0.8, 2)  ;Label=10のオブジェクトをちょっと移動
    move  L11, (0.1, 0, 0) ,CHILD  ;Label=11の閉鎖シールドを親に対してX方向へ移動させる

movegearheight

記述 | movegearheight　ラベルコード
引数 | ラベルコード | 移動させる対象となるユニットのラベルコード
動作 | ユニットを車輪の高さベクトルだけ相対移動させる。RSEの仕様上、航空機は地面に配置されたことを考えて0.4だけ高い位置に配置されるので、地面の座標に合わせる場合はmove命令を併用する。
例 |
    putgear         L1             ;Label=1のプレイヤー機に車輪を出す
    movegearheight  L1             ;Label=1の機体を車輪の座標だけ移動
    move            L1,(0,-0.4,0)  ;Label=1の機体を0.4下げる

playse

記述 | playse　SE番号, (x,y,z), 音量減衰値
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
(x,y,z) | 音座標。
音量減衰値 | 音座標がカメラから離れた場合にどれほど音が小さくなるか。ゼロの場合は音座標に関わらず最大音量となる。
動作 | 効果音を鳴らす。SE番号10〜40まではゲーム内で使われている効果音が入っている。またloadse命令によりSE番号50以降に効果音を読み込むことが出来る。
例 |
    playse  50, (R0,R1,R2), 5  ;効果音50を(R0,R1,R2)の座標に対して鳴らす

playseloop

記述 | playseloop　SE番号, (x,y,z), 音量減衰値
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
(x,y,z) | 音座標。
音量減衰値 | 音座標がカメラから離れた場合にどれほど音が小さくなるか。ゼロの場合は音座標に関わらず最大音量となる。
動作 | 効果音をループして鳴らす。loadse命令のループ版。停止するにはstopse命令を使う

playwave

記述 | playwave　再生種別コード, ファイル名文字列, ループポイント
引数 | 再生種別コード | 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。
ファイル名文字列 | wavファイル名
ループポイント | ループするBGMファイルなどの場合、ループで戻ってくる場所をサンプル数で指定。曲先頭に戻る場合は0、ちょうど1秒後に戻る場合は44100となる。記述しない、または負の値の場合はループしない。
動作 | Windowsの標準PCMが入っているwavファイル、またはradファイルを再生し、R0にその再生時間を秒単位で代入する。再生終了を待つ場合はwaitstream命令を併用する。
例 |
    playwave  VOICE,	"02_04.wav"  ;音声ファイルを台詞として再生する

provideweapon

記述 | provideweapon　UNIT_ID
引数 | UNIT_ID | 入手する機体・武器のUNIT番号
動作 | 機体・武器の入手。
例 |
    provideweapon  211  ;対空型汎用ミサイルの入手

putgear

記述 | putgear　ラベルコード
引数 | ラベルコード | 車輪を出す対象となるユニットのラベルコード
動作 | RSPファイルの指定に合わせ、ユニットに車輪を出す。子オブジェクト（UNIT_ID = 5）として呼び出すためsetlabel命令と組み合わせることで動作を制御できる。
例 |
    putgear         L1             ;Label=1のプレイヤー機に車輪を出す

putgroup

記述 | putgroup　グループ番号
引数 | グループ番号 | 読み込むグループ番号
動作 | ユニットをマップに配置する。
例 |
    putgroup  1  ;グループ番号1の敵を配置する

rand

記述 | rand　要素数
引数 | 要素数 | サイコロの「目」の数。0〜(要素数-1)の値のランダム値となる。
動作 | ランダム値を生成する。R0に「0〜(要素数-1)」の値がランダムで代入される。
例 |
    rand  100  ;R0に0〜99までの値をランダムで代入

releaseobject

記述 | lostobject　ラベルコード
引数 | ラベルコード | 消去するユニットのラベルコード
動作 | ユニットを戦場から消す。RSE1.0ではlostobject命令と併用する必要があったが、現在は内部でlostobjectを自動的に実行するためそのようなことは不要である。
例 |
    releaseobject  L10,	0  ;Label=10のユニットを戦場から消す。

relrot

記述 | relrot　ラベルコード, (X,Y,Z), 子フラグ
引数 | ラベルコード | 回転させる対象となるユニットのラベルコード
(X,Y,Z) | ピッチ、方位、バンクの角度。即値またはレジスタが指定可能。
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 | ユニットを(X,Y,Z)で示される角度だけ相対回転させる。move命令の角度版ともいえる。連続で実行するとくるくる回ることになる。子フラグについてはmove命令の項で解説されているものと同様である。
例 |
    relrot  L10, (0, 1, 0)  ;L10のオブジェクトをちょっと回転

reset

記述 | reset　リセット先ラベル
引数 | リセット先ラベル | 戻る場所を示すラベル
動作 | スタックを掃除してラベルで指示された場所へ飛ぶ。深いループから抜けるとき、または増援処理などで戦況が変わった際にメインループを最初からやり直したい場合に使う。
例 |
    reset  loop  ;#loopに戻って最初から条件判定をやりなおし

return

記述 | return　比較値左辺　比較演算子　比較値右辺
引数 | 比較値左辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子 | 右辺と左辺を比較する演算子、!= == < > <= >= の６つ。>=を間違えて=>と入力しないように注意。
比較値右辺 | 比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
動作 | （比較値左辺 比較演算子 比較値右辺）の比較式がTRUEの場合は、レジスタをスタックからPOPして、callした次の行へジャンプする。
例 |
    return  R0>=2  ;R0が2以上ならリターン

runaway

記述 | runaway　ラベルコード, (X座標,Z座標)
引数 | ラベルコード | 逃がすユニットのラベルコード
X座標 | 逃げ先のX座標
Z座標 | 逃げ先のZ座標
動作 | ユニットを特定の座標へ逃がす。戦闘エリア外へ逃がすことも可能。避難先空域では旋回して待機。
例 |
    runaway  L4,	(2500,-1000)  ;Label=4のユニットを南へ逃がす

set

記述 | set　左辺値 演算子 右辺値
引数 | 左辺値 | 値を代入する先。レジスタとフラグが指定可能
演算子 | 左辺値に対して右辺値をどう扱うかを指定する。指定できる演算子には=（代入）,+=（加算）,-=（減算）,*=（積算）,/=（除算）,%=（剰余）がある。レジスタを複数使えばかなり複雑な演算も可能
右辺値 | 代入すべき値。レジスタ・フラグ・カウンタ・即値が指定可能。
動作 | 左辺値に右辺値を代入
例 |
    set  F1 = 5  ;フラグ1に5を代入
    set  R0 += 5  ;R0+5の値をレジスタ0に代入
    set  R0 -= R1  ;R0-R1の値をレジスタ0に代入

setbarrier

記述 | setbarrier　ラベルコード,フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | バリアを張るならON、解除するならOFF
動作 | ユニットにバリアを張る。ダメージを受けなくなり、また、爆風の色が変化する。
例 |
    setbarrier  L40,  ON  ;Label=40のラバーズにバリアーを張る。

setcolor

記述 | setcolor　ラベルコード,フラグ
引数 | ラベルコード | 変化させるスプライトのラベルコード
(r,g,b,a) | それぞれ（赤、緑、青、アルファ）の色成分を表す。範囲は0〜255。（0,0,0,255）は黒であり、(255,255,255,255)は白である。即値かレジスタが指定可能。
動作 | createspirte命令で生成した2Dスプライトや、3Dスプライトのユニットの色を変化させる。
例 |
    setcolor  L200, (255,-1,-1,128)  ;Label=200のスプライトを赤半透明にする

setdefensive

記述 | setdefensive　ラベルコード,フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | プレイヤーに追随するならON、その設定を解除するならOFF
動作 | RSのシステムでは、僚機・敵機共に初期配置座標から極端に離れないように飛行する。「防空フラグ」と呼び、通常はON。敵配置エディタでの「増援」設定をするとOFFになる。このフラグをOFFにすることで防空エリアに関わりなく戦闘を行うことが出来る。なお、OFFにしたからといってマップの範囲外へ飛び出すようなことはない。
例 |
    setdefensive  L10,  OFF  ;Label=10の敵機を防空域に関わりなく飛ばす。

setduck

記述 | setduck　ラベルコード,フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | プレイヤーに追随するならON、その設定を解除するならOFF
動作 | RSのシステムでは、僚機・敵機共にプレイヤーから極端に離れないように、プレイヤーの空域にあわせて移動する。通称「小鴨フラグ」。標準ではONである。これを意図的にOFFにすることにより、プレイヤーの位置に関わりなく、各機自由に敵を探索し攻撃を行うようになる。なお、防衛エリアの縛りは解除されないため、これを解除するにはsetdefensive命令を用いる必要がある。
例 |
    setduck  L10,  OFF  ;Label=10の敵機をプレイヤーと関わりなく自由に戦わせる。

setoriginalparam

記述 | setoriginalparam　ラベルコード,フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | 以下の値を指定。初期状態は0。
0 | 共通パラメータを適用（デフォルト値）
1 | 「旋回性」について機体固有のパラメータを適用
2 | 「安定性」について機体固有のパラメータを適用
3 | 「旋回性」「安定性」について機体固有のパラメータを適用
4 | 「ベクター値」について機体固有のパラメータを適用
5 | 「旋回性」「ベクター値」について機体固有のパラメータを適用
6 | 「安定性」「ベクター値」について機体固有のパラメータを適用
7 | 「旋回性」「安定性」「ベクター値」について機体固有のパラメータを適用
動作 | イベント時のsetpad命令による機体操縦は編隊飛行を容易にする観点から「機種に関わらずパラメータ一定」で飛行させている。この命令ではその制限を一部撤廃して「旋回性・安定性・ベクター値」に対しては機体本来の値を適用飛行させる。
例 |
    setoriginalparam  L10,  1  ;Label=10の機体は、機体本来の旋回性で飛ばす。
    setoriginalparam  L10,  7  ;Label=10の機体は、機体本来の旋回性・安定性・ベクター値で飛ばす。

setheightoffset

記述 | setheightoffset　高度オフセット
引数 | 高度オフセット | 高度計の表示に加えるＹ値を指定する。1が10feetに相当。
動作 | 高度計にオフセットを加える。地下や成層圏を表現するのに使う。初期値はもちろん0feetである。
例 |
    setheightoffset  -300  ;高度計に3000feetを引いて表示するようにする。

setheightstall

記述 | setheightstall　失速高度
引数 | 失速高度 | 失速演算を開始する高度をＹ値で指定する。敵配置エディタの値と同様で、1が10feetに相当。
動作 | 失速演算を開始する高度を変更する。失速高度に到達した瞬間に失速するわけではない点に注意。初期値は600(6000feet)である。なお、上方向にもエリアオーバーの概念があるため、17000feet以上には上昇できない。超高空での戦いなどを演出したい場合はsetheightoffset命令を使う。
例 |
    setheightstall  1200  ;12000feetまで上昇しても大丈夫なようにする。

sethp

記述 | sethp　ラベルコード,装甲値
引数 | ラベルコード | 変化させるユニットのラベルコード
装甲値 | 設定する装甲値
動作 | ユニットの装甲値、つまりHPを変更する。ユニットを殺せないようにしたり、逆に瀕死にさせたりする。
例 |
    sethp  L11,	9999  ;Label=11の姉を撃墜できないようにHPを9999にする。

setimportant

記述 | setimportant　ラベルコード, フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | ONかOFFで指定する。
動作 | 視界範囲外であってもHUDに表示させるようにする。重要な攻撃目標や目標地点などを分かりやすくする。
例 |
    setimportant  L69, ON  ;L69の目標点を距離に関わり無くHUDに表示するようにする

setlabel

記述 | setlabel　親ユニットのラベルコード,UNIT_ID,ラベルコード
引数 | 親ユニットのラベルコード | ラベルコードを設定したいユニットの親
UNIT_ID | ユニットID（負の値でユニット種別ナシ）
ラベルコード | 設定するラベルコード値
動作 | ”親ユニットのラベルコード”を持つユニットの子（や孫）のユニットのうち”UNIT_ID”に該当するユニットに対して”ラベルコード”の値を割り当てる。船舶に付属する機銃などはラベルコードを設定できないが、この命令によりスクリプト側から指定可能となる。こうすることで、各パーツごとの破損をスクリプトで取得できるようになる。
例 |
    setlabel  L20,113,L21  ;Label=20の船舶に載っている機銃(UNIT_ID:133)をLabel=21に設定する

setlabelonline

記述 | setlabelonline　ユーザー,ラベルコード
引数 | ユーザー | ラベルコードを設定したいユーザーを示す。ログイン名、チーム名いずれも可能。"チーム名"に指定した文字列と同じ"ログイン名"を持つ場合、そのプレイヤーにもラベル設定されてしまうので注意。
ラベルコード | 設定するラベルコード値
動作 | オンラインプレイにおいてユーザーユニットに対して”ラベルコード”の値を割り当てる。そのユニットの子ユニットにはラベルが割り振られないので、子ユニットにもラベル割り振りを行う場合は、setlabel命令を使うこと。
例 |
    setlabelonline  "Denpro",L21  ;ユーザー"Denpro"の操縦する機体に対してをLabel=21に設定する

setmaster

記述 | setmaster　制御対象ラベルコード, マスター指定のラベルコード
引数 | 制御対象ラベルコード | マスターオブジェクトを変更させるユニットのラベルコード
マスター指定のラベルコード | 「マスター」になるユニットのラベルコード
動作 | 「マスター」を変更する。RS2では空飛ぶトラックをグライダーに走らせるための専用命令。
例 |
    setmaster  L14, L10  ;Label=14のトラックをLabel=10のFC4000に向けて走行開始

setmiso

記述 | setmiso　ラベルコード,フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | 攻撃対象にされないならばON、その設定を解除するならOFF
動作 | ユニットが敵や僚機から狙われなくなる。流れ弾などに当たる危険があるため、無敵とは異なる。僚機にこれを設定した場合、当然ながら敵の攻撃対象が減るため、プレイヤーへの攻撃は激しくなる。
例 |
    setmiso  L8,  ON  ;Label=8のレドーム機は攻撃を受けないようにする。

setname

記述 | setname　ラベルコード, 名前ID
引数 | ラベルコード | 名前を変更する対象となるユニットのラベルコード
名前ID | 名前のID。基本的にはユニットのIDと同じ。ユニットIDは
動作 | HUDに表示される名前を変更する。HUDの表記は画像扱いなので、文字列ではなくIDで変更する。つまり自分で作った名前に変えられるわけではない。通常は敵機の表示をUnknownに変更するために使う。UnknownのユニットIDは"4"である。
例 |
    setlabel  L10,4  ;RX-66の表記をUnknownに変更

setpad

記述 | setpad　ラベルコード, (操縦左右,操縦上下), 目標速度, 操縦入力時間
引数 | ラベルコード | 操縦対象のユニットのラベルコード
操縦左右 | ユニットにつながる仮想的なゲームパッドの左右入力。右がプラス。
操縦上下 | ユニットにつながる仮想的なゲームパッドの上下入力。下がプラス。
目標速度 | この速度まで徐々に変化する
操縦入力時間 | (操縦左右,操縦上下)の入力を行う時間。
動作 | イベントシーンにおいて、ユニットを操縦して動作する。透明機体も操作できるので、カメラを貼り付けた透明機体を操縦させることでカメラをリアルに動かすことが出来る。
例 |
    setpad  L10, (-10,5), 250, 40  ;L10の操縦桿を40フレームの間、10%左/5%手前に倒し、目標速度は250

setparent

記述 | setmaster　制御対象ラベルコード, 親指定のラベルコード
引数 | 制御対象ラベルコード | 親オブジェクトを変更させるユニットのラベルコード
親指定のラベルコード | 「親オブジェクト」になるユニットのラベルコード
動作 | 親オブジェクトを変更する。この親子関係は３Ｄ処理での親子関係である。
例 |
    setparent  L14, L10  ;Label=14のトラックをLabel=10に搭載する

setpos

記述 | setpos　ラベルコード, (X, Y, Z), 子フラグ
引数 | ラベルコード | 位置を変更するユニットのラベルコード
(X, Y, Z) | 位置。即値またはレジスタが指定可能。
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 | ユニットの座標を強制的に変更する。子フラグについてはmove命令の項で解説されているものと同様である。
例 |
    setpos  L1, (2500, 190, 2500)  ;L1のプレイヤー機をマップ中央へ強制移動

setrot

記述 | setrot　ラベルコード, (X軸角, Y軸角, Z軸角), 子フラグ
引数 | ラベルコード | 向きを変更するユニットのラベルコード
(X, Y, Z) | ピッチ、方位、バンクの角度。即値またはレジスタが指定可能。
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 | ユニットの角度を強制的に変更する。子フラグについてはmove命令の項で解説されているものと同様である。
例 |
    setrot  L10, (90, 190, 0)  ;L10の垂直上昇させる

setprintlist

記述 | setprintlist　(X, Y), "表示名", 表示する値
引数 | ラベルコード | 位置を変更するユニットのラベルコード
(X, Y) | 表示位置。即値またはレジスタが指定可能。
表示名 | 数値の左に表示される文字。省略できないので、何も書きたくない場合は半角スペースなどを入れる。
表示する値 | 表示すべき値を指定。フラグ、カウンタまたはレジスタが指定可能。
動作 | デバッグ用機能。指定座標に変数を表示する。将来仕様変更の可能性があるので、ゲーム内の「数字表示機能」として使ってはいけない。
例 |
    setprintlist (210,10),"EventCode:",F5  ;フラグ5の値を画面上部左に表示

setscale

記述 | setscale　ラベルコード, (X, Y, Z), 子フラグ
引数 | ラベルコード | 大きさを変更するユニットのラベルコード
(X, Y, Z) | 各軸方向への拡大率
子フラグ | 子オブジェクトを親に対して相対的に移動させたい場合はCHILDと書く。
動作 | ユニットの拡大率を変更する。相対地ではなく絶対値である。子フラグについてはmove命令の項で解説されているものと同様である。
例 |
    setscale  L10, (1, 0.2, 1)  ;L10のオブジェクトを平たくする

setsection

記述 | setsection　ラベルコード, セクション
引数 | ラベルコード | 動作制御対象のユニットのラベルコード
セクション | 行動を表す数値「セクション」
動作 | ユニットの動作を切り替える。対空砲に任意で射撃を行ったり、TOYBOXユニットを使って落雷を発生させたりする。詳しくは「セクションについて」で解説。
例 |
    setsection  L42,40  ;レーザー射撃

setspeed

記述 | setspeed　ラベルコード 速度
引数 | ラベルコード | 速度を変更するユニットのラベルコード
速度 | ユニットの速度
動作 | イベントシーンにおいて、ユニットの飛行速度を指定する。RSE1.0の仕様ミスである1フレームの猶予は不要になっている。
例 |
    setspeed  L10, 310  ;L10の速度を310に強制変化。追い越すような速度になる

settarget

記述 | settarget　制御対象ラベルコード, ロックオンする敵のラベルコード
引数 | 制御対象ラベルコード | ターゲットを変更させるユニットのラベルコード
ロックオンする敵のラベルコード | 「ターゲット」になるユニットのラベルコード
動作 | ユニットのターゲットを変更する。イベント等で攻撃対象を指定する場合に使用する。
例 |
    settarget  L5,	L12  ;ホーミングレイのロックオン対象をアルファ２に指定

settime

記述 | settime　秒数
引数 | 秒数 | ミッション制限時間を秒数で指定
動作 | ミッションの制限時間を設定する。左上の時計に表示される。TimeUpでミッション失敗にさせるには、制限時間がゼロになったことをスクリプトで検知しなければいけない。
例 |
    settime  600  ;ミッション制限時間を600秒(10分)に設定する

shootmissile

記述 | shootmissile　発射元ラベルコード, 発射先ラベルコード
引数 | 発射元ラベルコード | ミサイルを発射するユニットのラベルコード
発射先ラベルコード | ミサイルで狙われるユニットのラベルコード
動作 | ミサイルを発射する（発射元に使えるのは航空機のみ）。当たるかどうかは位置による。発射される武器は機体ごとに設定されたメイン武装であるが、このメイン武装がレーザーやグレネードだった場合の動作は未定義である。また、対空ミサイルなどにミサイルを撃たせたい場合はsetsection命令を使う。
例 |
    shootmissile  L7,L1  ;バタフライ１(Label=7)からレパード１(Label=1)に向けてミサイル発射

startcounter

記述 | startcounter　カウンタ
引数 | カウンタ | 始動するカウンタ
動作 | カウンタを指導させる。始動するとカウンタは1秒あたり1カウントアップする。既に始動しているカウンタの場合はリセットして0からカウント開始する。
例 |
    startcounter  C0  ;カウンタ０を始動する

stopgun

記述 | stopgun
引数 | （なし）
動作 | 戦場全体で、機銃の使用を禁止する。

stopmissile

記述 | stopmissile
引数 | （なし）
動作 | 戦場全体で、ミサイルの使用を禁止する。

stopse

記述 | stopse　SE番号
引数 | SE番号 | 効果音の番号、0〜49と80以降は予約済みなので50〜79を使うこと
動作 | 効果音を停止する
例 |
    playse  50,   ;効果音50を停止する。

stopthread

記述 | stopthread スレッド番号
引数 | スレッド番号 | 終了するスレッド番号
動作 | スレッドを終了させる

stopwave

記述 | stopwave, 再生種別コード
引数 | 再生種別コード | 再生するファイルの扱いを示す。台詞ファイルはVOICE、音楽はBGMを指定。
動作 | 音声再生を停止させる。

stopweapon

記述 | stopweapon　対象ラベルコード, 武器種類コード, フラグ
引数 | 対象ラベルコード | ミサイルを発射するユニットのラベルコード
武器種類コード | 武器の種類を表すコード。MAIN/SUB/CENTER/GUNの4つからどれか一つを指定
フラグ | STOPで禁止、STARTで再許可
動作 | 武器を使用禁止にする。また、その禁止を解除する。stopgunやstopmissileより細かい指定が可能。
例 |
    stopweapon  L5, MAIN, STOP  ;敵機(Label=5)のメインパイロン武器の使用を禁止する
    stopweapon  L5, GUN, START  ;敵機(Label=5)の機銃使用禁止を解除する

supplyweapon

記述 | supplyweapon　補充度
引数 | 補充度 | ミサイルの補充度を0〜100まで百分率で指定
動作 | 自機のミサイル類の残り数を回復させる
例 |
    supplyweapon  50  ;弾数を50％分だけ補充

supplydamage

記述 | supplydamage　回復度
引数 | 回復度 | ダメージ値の回復度を0〜100まで百分率で指定
動作 | 自機のダメージ値を回復させる
例 |
    supplydamage  100  ;自機を全快させる

system

記述 | system
引数 | （なし）
動作 | システムに1/60秒だけ処理を戻す。"waitframe 1"と同じだが、メインループの中で使う場合はこちらを推奨。

targetflag

記述 | targetflag　ラベルコード,フラグ
引数 | ラベルコード | 変化させるユニットのラベルコード
フラグ | ターゲットにするならON、解除するならOFF
動作 | ターゲットにしたり通常の敵にしたりする。RSE1.0で存在したオブジェクト管理の不具合は解決している。
例 |
    targetflag  L21,OFF  ;Label=21の敵をターゲットに変更する。

teamid

記述 | teamid　ラベルコード,所属コード
引数 | ラベルコード | 所属変更対象ユニットのラベルコード
所属コード | 所属を示すコード
FRIEND | 友軍
ENEMY | 敵軍
OBJECT | 戦闘対象外。HUDにも表示されない
動作 | ユニットの所属を変更する、敵を味方に変更するよりは、HUDから消したりすることに使うことが多い。OBJECTに設定すると、リザルトにおける撃破率の分母からも除外されるので、teamidでHUDから消しても敵殲滅ができなくなることは無い。
例 |
    teamid  L21,ENEMY  ;Label=21のジェネレーターをHUDに表示、攻撃できるようにする。

waitframe

記述 | waitframe　待ち時間
引数 | 待ち時間 | 時間を1/60秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能。
動作 | スクリプトの動作を一時停止する。他のスレッドへは影響無し。フレーム数はFPS設定や実際の負荷に関わらず、ゲーム内での1/60秒が単位となる。
例 |
    waitframe  6  ;6フレーム(0.1s)待つ

viewmode

記述 | viewmode　カメラコード
引数 | カメラコード | カメラの撮影方式を選択する以下のコード
FIXED | focus1を撮影するための空中固定カメラ
LONG | focus1を中心にして、focus2を撮影
SHORT | focus1内蔵のカメラからfocus2を撮影
SIDE | focus1を横から撮影
ROUND | focus1の周りをまわる
FLIGHT | HUDの視点へ戻す
動作 | カメラの撮影方式を変更する。focus1,focus2に関してはcamfocusの項目を参照。
例 |
    viewmode  SHORT  ;視点モードを近距離対象撮影に変更

waittime

記述 | waittime　待ち時間
引数 | 待ち時間 | 時間を秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能。即値の場合は小数指定可能。
動作 | スクリプトの動作を一時停止する。他のスレッドへは影響無し。
例 |
    waittime  0.5  ;0.5秒待つ

waitstream

記述 | waitstream　追加待ち時間
引数 | 追加待ち時間 | 時間を秒で入力。
動作 | 直前の音声ファイルの再生が終わるまでスクリプトの動作を一時停止する。他のスレッドへは影響無し。台詞ファイルが隙間無く再生されると不自然なため、追加待ち時間に0.3〜0.5程度の値を入れると良い。
例 |
    waitstream  0.3  ;直前の台詞再生が終わるまで待ち、さらに0.3秒待つ