レジオンスクエアの赤いモニュメントの上に立つ自作キャラクター。背後にはヤシの木と高層ビルが並んでいる

今日は simple_teleport の完成を目標に開発を進めた。前回までに /tp、/coords、/back を実装していたので、残るは仕上げ。今回は最後の目玉機能 /tpm(Waypoint Teleport)と、予告していた /copycoords を追加した。

今日実装した機能

/copycoords

現在位置を、開発でそのまま使いやすい形式で取得できるコマンドを実装した。対応形式は3つ。

  • vector4
  • vector3
  • raw
txAdminのコンソールで restart simple_teleport を実行し、「Started resource simple_teleport」と表示された画面
レジオンスクエアでチャットに /copycoords と入力したところ。ヘルプに「/copycoords [format] 現在位置を貼り付け用の書式で表示します」と表示されている

出力はこんな形になる。

  • vector4(195.17, -934.17, 30.69, 19.25)
  • vector3(195.17, -934.17, 30.69)
  • 195.17, -934.17, 30.69, 19.25
引数なしで /copycoords を実行した結果。「simple_teleport: vector4(195.17, -934.17, 30.69, 19.25)」と表示されている
チャットに /copycoords vector3 と入力したところ。ヘルプに「省略時は vector4。vector3 / raw も指定できます」と表示されている
/copycoords vector3 の実行結果。「simple_teleport: vector3(195.17, -934.17, 30.69)」が追加で表示されている
チャットに /copycoords raw と入力したところ
/copycoords raw の実行結果。「simple_teleport: 195.17, -934.17, 30.69, 19.25」がカッコなしの生の値で表示されている

NPC配置やショップ、Marker、Garage など、開発中に座標を取得したい場面でそのままコードへ貼り付けられる。/coords が「確認する」ためのものだったのに対し、/copycoords は「そのままコードに使える」ところまで踏み込んだ形だ。

/tpm

今回いちばん大きな機能追加。マップに置いたウェイポイントへ瞬間移動できるコマンドを実装した。

txAdminのコンソールで /tpm 実装後に restart simple_teleport を実行し、「Started resource simple_teleport」と表示された画面
チャットに /tpm と入力したところ。ヘルプに「/tpm マップに設定したウェイポイントへテレポートします」と表示されている

実装した中身はこう。

  • ウェイポイント未設定時のエラー表示
  • 高度1000m付近から地面を安全に探索
  • 衝突(コリジョン)の読み込み待ち
  • 地面が見つからなければ水面を探索
  • 最後まで見つからなければ移動をキャンセル
  • 車両運転中は車ごと移動
  • /back に対応

一般的な「高高度へ飛ばしてそのまま落下させる」方式ではなく、地面をきちんと探してから降ろす、安全性重視の実装にした。落下ダメージやマップ外への落下を避けられるので、開発中に何度も飛ぶ用途にはこちらのほうが安心して使える。

動作確認

今回はかなり細かくテストした。

/copycoords は、

  • ✅ vector4
  • ✅ vector3
  • ✅ raw
  • ✅ 不正な引数を渡したときのエラーメッセージ

すべて正常に動作。

チャットに /copycoords test と入力し、存在しない書式をわざと指定しているところ
不正な引数を渡したときのエラー表示。「simple_teleport: 書式が不正です: test」「使い方: /copycoords [vector3|raw]」と出ている
レジオンスクエアのチャット欄に vector4・vector3・raw・エラー・/coords の結果がすべて並んでいる状態

/tpm は、まずウェイポイント未設定の状態で実行し、エラーメッセージが出ることを確認。続いてマップ上にウェイポイントを置いて実行すると、無事テレポート成功。

ウェイポイント未設定のまま /tpm を実行したときの表示。「simple_teleport: マップにウェイポイントを設定してください。」と出ている
ポーズメニューのマップ画面。メイズバンク・アリーナの上にウェイポイントを置き、「行き先マーカー(1113m)」と表示されている
ウェイポイントを設定した状態で、あらためてチャットに /tpm と入力しているところ

試しにアリーナの屋根へウェイポイントを置いてみたところ、そのまま屋根の上へテレポートした。最初は不具合かと思ったが、これは FiveM の地面判定では屋根も「Ground」として扱われるためで、正常な挙動とのことだった。最後に /back で元の場所へ戻れることも確認できた。

メイズバンク・アリーナの屋根の上にテレポートした画面。「simple_teleport: ウェイポイントへテレポートしました。」と表示されている
アリーナの屋根の上でチャットに /back と入力しているところ。ヘルプに「直前にいた位置へ戻ります」と表示されている
/back でレジオンスクエアへ戻った画面。「simple_teleport: テレポートしました: 195.17, -934.18, 30.68」と表示されている

現在の機能一覧

simple_teleport v1.4.0

  • /tp
  • /coords
  • /back
  • /copycoords
  • /tpm

当初予定していた機能をすべて実装し、ひとまず「完成」と言える状態になった。

今日学んだこと

一番印象に残ったのは、「機能を増やすこと」と「良い設計」は別物だということ。

当初は /copycoords npc、/copycoords marker、/copycoords ox_target のような派生コマンドも追加しようと考えていた。でも、それらは明らかに開発者向けの機能で、simple_teleport という「テレポートツール」の役割からは少しはみ出してしまう。

そこで今回は、このリソースを「シンプルで誰でも使えるテレポートツール」として完成させることにした。一つのリソースには一つの役割を持たせる。そのほうが使う人にとって分かりやすいし、今後のメンテナンスもしやすい。機能を足せるからといって全部を一つに詰め込むのが正解ではない、というのは今日の大きな気づきだった。

余談:ここまで続けてこられた理由

ところで、この開発日記がこうしてコツコツ続いているのには理由がある。実は以前、AI(ChatGPT)に「長時間ぶっ続けだと、どうしても嫌になってしまう」と正直に伝えたことがあった。すると、それ以降は1回あたり30分〜1時間くらいで区切りがつくように、手順を細かく分けて丁寧に教えてくれるようになった。

おかげで毎回「今日はここまで」と気持ちよく終われるようになり、結果的に長続きしている。大きく一気に進めるより、こうして小さく区切って積み上げていくほうが、自分には合っているのだと思う。今日の「一つのリソースに一つの役割」という気づきとも、どこか通じるものがある気がする。

次回予告

次回からは、新しいリソース simple_devtools の開発を始める予定。

これは FiveM 開発者向けのツールとして、

  • NPC配置支援
  • ox_target 用コード生成
  • PolyZone 用コード生成
  • 各種設定コードの自動生成

といった、開発効率を上げる便利機能をまとめたリソースに育てていきたい。simple_teleport を「誰でも使えるシンプルなツール」として切り出せたからこそ、開発者向けの機能は次のリソースに集約できる。simple_teleport の完成をひと区切りに、次はより実践的な「開発支援ツール」の制作へ挑戦する。


この記事はGTA6 FEED運営者が、自分のPCで実際にFiveMサーバーを構築している記録である。技術的な情報は2026年6月時点の環境と各ツールの提供内容を確認して記載しているが、仕様や挙動は環境によって異なり、今後変わる可能性がある。FiveMおよびGTAは、それぞれの権利者(Cfx.re / Rockstar Games)の商標であり、本サイトは各社と提携関係にない。