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

<<基本事項>>

<<スクリプトエンジンが持つパラメータ>>

<プログラムカウンタ>

記述方法(なし)
現在実行している行数を示すカウンタ。内部パラメータである。 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
32個(F0〜F31)
使われる例
set	F10, R0	;レジスタ0の値をフラグ10に保存
いわゆる「変数」として使う。 set命令で明示的に変更しない限りデータは変わらないため、 イベントシーンの実行フラグや、ミッション開始時のステータス保持などに使うことが一般的。 レジスタと異なり、スタックされないので、callしてもreturnしても値は変わらない。

<カウンタ>

記述方法Cn
記述の例C0, C3
データ範囲0〜2,147,483,647
8個(C0〜C7)
使われる例
jump	C0 >= 3600 failed	;カウンタ0の始動から60秒経過したら#failedへジャンプ
時間の経過を計るために使う。始動したら自動的にカウントアップし、一秒間で60増加する。 startcounter命令により、カウントを開始できる。カウンタの値が0の場合、カウンタは停止していることをあらわす。 ミッションの残り時間を計測することに使うことは『推奨しない』(getstatus REST_TIME を使うこと)。 レジスタと異なり、スタックされないので、callしてもreturnしても値は変わらない。

<<パラメータ記述法>>

<レジスタ・フラグ・カウンタ>

上記のとおり

<数値>

-160 や 13.875 など、普通に記述する。桁数に制限は無いが、データ範囲の上限を超えることは出来ない。

<文字列>

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

<ラベル>

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

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

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

<ラベルコード>

ユニットに設定するラベルコード(Label)を記述する場合はLをつける。L1やL15のように記述する。 1〜32767の間で指定する。負の値では一部の命令で認識できないことがある。

<エスケープシーケンスについて>

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

<<スレッドについて>>

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

<<「セクション」について>>

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

特殊なセクションを挙げる
Raiders
30空中静止
200スクリプト制御
ミサイル艦
0通常
2ミサイル乱発
ホーミングレイ
3ターゲットを狙って射撃(実はH.RAYは通常時はあてずっぽうに撃っている)
自動工場
0生産中
10生産休止
東京タワーイージス
0イージスモード
10近接モード(機銃とジャミング)
Rs'カタパルト
0R59発射
1R50発射
10発射停止
閉鎖扉
0停止
1北移動(一定距離、以下同様)
2北東移動
3東移動
4南東移動
5南移動
6南西移動
7西移動
8北西移動
9上移動
10下移動
ネットワークコア
0難易度による位置調整
1固定
落雷
0なにもなし
1ヒカッ、ゴロゴロ

<<命令リファレンス>>

<ABC順>

  1. bomb
  2. call
  3. closewindow
  4. camzoom
  5. createcopy
  6. createthread
  7. debugmode
  8. deleteobject
  9. destroy
  10. event
  11. fadebgm
  12. fadein
  13. fadeout
  14. finish
  15. getlength
  16. getpos
  17. getstatus
  18. jump
  19. log
  20. lostobject
  21. message
  22. move
  23. playbgm
  24. playwave
  25. putgroup
  26. releaseobject
  27. reset
  28. return
  29. runaway
  30. set
  31. sethp
  32. setmaster
  33. setname
  34. setpad
  35. setparent
  36. setrot
  37. setsection
  38. setspeed
  39. settarget
  40. settime
  41. shootmissile
  42. startcounter
  43. stopbgm
  44. stopgun
  45. stopmissile
  46. stopweapon
  47. supplyweapon
  48. supplydamage
  49. system
  50. targetflag
  51. teamid
  52. viewmode
  53. waittime

<カテゴリ順>

<解説>

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

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

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

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

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

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

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

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

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

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

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

fadebgm
記述fadebgm
引数(なし)
動作BGMをフェードアウトさせる

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

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

finish
記述finish 終了コード
引数 終了コードゲームのメインエンジンに返す終了理由
CLEARミッション成功
FAILEDミッション失敗
TIMEUP時間切れ
動作スクリプトを終了させ、ミッション終了処理をさせる
finish  CLEAR  ;ミッションクリア

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

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

getstatus
記述getstatus ステータスコード, (オペランド)
引数 ステータスコード取得するステータス情報を示すコード
REST_TIME 残り時間
PROGRESS_TIME 経過時間
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味方ユニットの破壊数
GROUND_LABEL オペランドが示すラベルコード付きユニットの生存数
DAMAGE_CODE オペランドが示すラベルコード付きユニットに与えたダメージの合計
DAMAGE_PLAYER 自機のダメージ値を0〜100で取得。衝突はカウントしない。
LEVEL 現在のレベルを0〜2で取得
(オペランド)ステータスコードの詳細を指定。必要に応じて付け足す。
動作戦場情報を取得し、R0に代入する
getstatus  REST_TIME       ;R0に残り時間の秒数を代入
getstatus  ALL_TARGET      ;R0に全ターゲット数を代入
getstatus  ALL_LABEL, L2   ;R0に対空機銃(Label=2)の数を代入

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

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

lostobject
記述lostobject ラベルコード
引数 ラベルコード消去するユニットのラベルコード
動作ユニットを戦場からいなかったことにする。この時、撃墜率の分母も減るため、撃墜率という観点からすれば、このユニットはカウント対象外となる。実際にユニットが消えるわけではないので注意。
lostobject  L10,	0  ;Label=10が残っていても、全部カウント対象外とする。

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

move
記述move ラベルコード (X,Y,Z)
引数 ラベルコード移動させる対象となるユニットのラベルコード
(X,Y,Z)相対移動ベクトル
動作ユニットを(X,Y,Z)で示されるベクトルだけ相対移動させる。
move  L10, (3, 0.8, 2)  ;L10のオブジェクトをちょっと移動

playbgm
記述playbgm BGM番号
引数 BGM番号BGMを示す番号。
1 オープニング
2 ブリーフィング
3 出撃画面
4 エンディング
6 トライアル
7 トレーニング
10〜39Mission_A-01からMission_C-10
動作BGMを再生する。ミッション開始した瞬間に再生すると、DirectXとメモリバス競合を起こし音飛びするので、数フレームあけること。
playbgm  13  ;BGM13番を再生開始

playwave
記述playwave 再生種別コード, ファイル名文字列
引数 再生種別コード再生するファイルの扱いを示す。現在はVOICEのみ。将来BGMなどへの拡張を予定。
ファイル名文字列wavファイル名
動作Windowsの標準PCMが入っているwavファイルを再生し、R0にその再生時間を1/60秒単位で代入する。この値はwaittime命令でそのまま使用可能である。
playwave  VOICE,	"02_04.wav"  ;音声ファイルを台詞として再生する

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

releaseobject
記述lostobject ラベルコード
引数 ラベルコード消去するユニットのラベルコード
動作ユニットを戦場から消す。この時、「戦場に登場した」という履歴が残るため、敵機をreleaseobjectしてしまうと撃墜率が100%にならない。その場合はlostobjectと併用する。
releaseobject  L10,	0  ;Label=10のユニットを戦場から消す。

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

return
記述return 比較値左辺 比較演算子 比較値右辺
引数 比較値左辺比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
比較式演算子右辺と左辺を比較する演算子、!= == < > <= >= の6つ。>=を間違えて=>と入力しないように注意。
比較値右辺比較する数値。レジスタ・フラグ・カウンタ・即値が指定可能
動作(比較値左辺 比較演算子 比較値右辺)の比較式が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を代入

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

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

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

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

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

setrot
記述setrot ラベルコード (X軸角, Y軸角, Z軸角)
引数 ラベルコード速度を変更するユニットのラベルコード
(X, Y, Z)ピッチ、方位、バンクの角度
動作ユニットの角度を強制的に変更する。
setrot  10, (90, 190, 0)  ;L10の垂直上昇させる

setsection
記述setsection ラベルコード, セクション
引数 ラベルコード動作制御対象のユニットのラベルコード
セクション 行動を表す数値「セクション」
動作ユニットの動作を切り替える。ホーミングレイなど、大部分のユニットのほとんどの動作は自動だが、ミサイル艦などsetsectionでスクリプトから制御することが前提となっているユニットもある。詳しくは「セクションについて」で解説。
setsecsion  L10,10  ;昭和記念塔イージスシステムを「近接モード」に変える。

setspeed
記述setspeed ラベルコード 速度
引数 ラベルコード速度を変更するユニットのラベルコード
速度ユニットの速度
動作イベントシーンにおいて、ユニットの飛行速度を指定する。setpadと異なり、putgroup直後に指定しても動作しない。かならず設置後に1フレーム以上空けること。(この不便な仕様はRSE2で解決予定。今は互換性の都合で変えられない。)
setspeed  L10, 310  ;L10の速度を310に強制変化。追い越すような速度になる

settarget
記述settarget 制御対象ラベルコード, ロックオンする敵のラベルコード
引数 制御対象ラベルコードターゲットを変更させるユニットのラベルコード
ロックオンする敵のラベルコード「ターゲット」になるユニットのラベルコード
動作ユニットのターゲットを変更する。実質的にはホーミングレイ専用命令。
settarget  L5,	L12  ;ホーミングレイのロックオン対象をアルファ2に指定

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

shootmissile
記述shootmissile 発射元ラベルコード, 発射先ラベルコード
引数 発射元ラベルコードミサイルを発射するユニットのラベルコード
発射先ラベルコードミサイルで狙われるユニットのラベルコード
動作ミサイルを発射する(発射元に使えるのはRaidersのみ)。当たるかどうかは位置による。
shootmissile  L7,L1  ;バタフライ1(Label=7)からレパード1(Label=1)に向けてミサイル発射

startcounter
記述startcounter カウンタ
引数 カウンタ始動するカウンタ
動作カウンタを指導させる。始動するとカウンタは1秒あたり60カウントアップする。
startcounter  C0  ;カウンタ0を始動する

stopbgm
記述stopbgm
引数(なし)
動作BGMを停止させる

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

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

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秒だけ処理を戻す。"waittime 1"と同じだが、メインループの中で使う場合はこちらを推奨。

targetflag
記述targetflag ラベルコード,フラグ
引数 ラベルコード変化させるユニットのラベルコード
フラグターゲットにするならON、解除するならOFF
動作ターゲットにしたり通常の敵にしたりする。通常ユニットとして出現した敵をターゲットに変更してから破壊すると、撃墜率の整合性が取れなくなるので要注意。そんな不便さもあってRS2では使っていないようだ。
targetflag  L21,OFF  ;Label=21の敵をターゲットに変更する。

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

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

waittime
記述waittime 待ち時間
引数 待ち時間時間を1/60秒単位で入力。レジスタ・フラグ・カウンタ・即値が指定可能
動作スクリプトの動作を一時停止する。他のスレッドへは影響無し。
waittime  R0  ;レジスタ0に入っている時間だけ待つ