2026.10.04広告・PRを含む記事です

【マイクラ】Skriptの導入方法と使い方!初めてのスクリプト作成

Skriptの導入とコマンド・イベント作成を示すサムネイル
  • Javaでプラグインを自作するほどの技術力はないけれど、独自コマンドや簡単な自動化を足したい
  • プログラミング未経験で、Skript独特の構文が本当に書けるか不安
  • 導入しても正しく読み込まれたか、構文エラーやリロード失敗をどう見分ければいいかわからない

Javaでのプラグイン開発は学習コストが高く、簡単な機能を1つ足したいだけでも及び腰になりがちです。

Skriptなら、プログラミング未経験でもカスタムコマンドやイベント処理を作れます。

SkriptはPaper環境が必須

SkriptはPaper専用のプラグインです。バニラやSpigot環境では動作しないため、事前にPaperサーバーを用意してください。

サーバーを借りて始める場合は、ConoHa for GAMEの申し込み画面でPaperを選べば、Skriptを入れる前の準備が済みます。

この記事では、Skriptの導入からカスタムコマンド、on joinイベント、権限設定、動かないときの確認方法までを順番に説明します。

読み終えたときのゴールは、最初のカスタムコマンドが実際に動く状態です。

spa

僕なら、探しても目的のプラグインが見つからないときにSkriptを検討します。

管理人spaのアイコン
spaこの記事を書いた人

マイクラサーバーの構築と運用を繰り返して4年。今も経済サバイバル「spa77.works SMP」を運用中で、その経験をもとに記事100本以上を執筆。

Skriptとは?できることとJavaプラグインとの違い

Skriptは.skファイルを編集してリロードし、Javaプラグインは開発環境とコンパイルが必要な違いを比較した図解

Skriptは、コマンドやイベントの処理をテキストファイルに書いて動かすプラグインです。

Javaでのプラグイン開発とは異なる仕組みで、初めてスクリプトを書く人でも扱いやすい設計になっています。

Paper対応バージョンの確認

SkriptはPaperのバージョンごとに対応が分かれています。配布ページで対応バージョンを確認し、導入後に/pluginsで正常に読み込まれているか確かめてください。

Skriptで実現できること

Skriptを使うと、自分だけのコマンドを定義したり、プレイヤーの参加などのタイミングに合わせて処理を自動化したりできます。

たとえば参加時のあいさつメッセージや、簡単なショップコマンドの入り口、特定の場所に触れたときのメッセージ表示など、Javaプラグインを探すほどではない小さな機能が対象です。

Javaのようにコードをコンパイルする必要はなく、.skファイルに書いた内容をリロードするだけで手軽に反映できます。

Javaプラグインとの違いと向いている人

Javaプラグインは、開発環境を用意してコードを書き、コンパイルしてjarファイルを作る手順が必要です。

対してSkriptは、テキストエディタでファイルを編集してコマンドで読み直すだけで完結するため、独自コマンドや簡単な自動化だけを足したい人に向いています。

アドオンを追加しなくても、この記事で紹介するコマンドとイベントはSkript本体だけで動きます。

アドオンを使いたくなった場合は、そのアドオンが対応しているSkriptとPaperのバージョンを、導入前に配布ページで確認してください。

Paper専用でSpigotでは動かない制約

Skript公式は、Paperでの動作を前提としており、Spigotでは動作しないと明記しています。

Spigotサーバーを使っている場合、Skriptを動かすにはPaperへの切り替えが必要です。

PaperはSpigot向けのプラグインもそのまま動かせるため、切り替えても既存の構成はほぼ残せます。特徴や導入手順は、PaperMCの解説記事でまとめています。

導入手順:Skriptをpluginsフォルダへ配置する

Skriptのjarを入手し、plugins直下へ配置して再起動し、/pluginsで緑色を確認する導入手順の図解

ここでは、Skriptのダウンロードから導入確認までを順番に進めます。

  • Skriptのjarをダウンロードする
  • pluginsフォルダに配置してサーバーを再起動する
  • プラグイン一覧で導入を確認する

手順は3つだけなので、順番に進めれば迷いません。

Skriptを使うには、あらかじめPaperサーバーが起動している状態が必要です。

まだPaperサーバーがない場合は、先に立ち上げる手順から始めます。

PaperMCでプラグイン対応マイクラサーバーを立てる手順

マイクラプラグインサーバーの立て方!Paperで導入する手順を初心者向けに解説

Skriptのjarをダウンロードする

Skript公式GitHubのReleasesページ。Latestの安定版とAssets内のSkript JARが表示されている

Skript公式GitHubのReleasesページを開き、一覧の先頭にあるLatestの安定版を選びます。

リリースページのAssetsから、Skript-x.x.x.jarという名前のJARをダウンロードしてください。

プレリリースではなく、通常のLatestが付いた安定版を選ぶと、導入時点での対応状況を確認しやすくなります。

pluginsフォルダに配置してサーバーを再起動する

ダウンロードしたjarファイルを、サーバーのpluginsフォルダの直下に置きます。

配置場所の注意

jarファイルはpluginsフォルダの直下に配置してください。サブフォルダ内に置くとサーバーに認識されません。

配置したら、サーバーを再起動します。

プラグイン一覧で導入を確認する

サーバー起動後、コンソールまたはゲーム内で/pluginsを実行すると、読み込まれたプラグインの一覧が表示されます。

/plugins

一覧の中のSkriptが緑色で表示されていれば、導入は成功です。

赤色で表示された場合や一覧に出てこない場合は、後半のよくあるトラブルで原因を確認します。

初期設定:scriptsフォルダに.skファイルを作ってリロードする

plugins/Skript/scriptsにgreet.skを作り、/sk reload greetで反映する流れを示した図解

Skriptの導入が確認できたら、実際にスクリプトを書く準備です。

  • plugins/Skript/scriptsフォルダに.skファイルを作る
  • スクリプトをリロードして反映する

この2つができれば、あとは中身を書き換えるだけで自由にスクリプトを増やせます。

plugins/Skript/scriptsフォルダに.skファイルを作る

Skriptを一度起動すると、plugins/Skriptフォルダが自動的に作られる仕組みです。

その中のscriptsフォルダに、拡張子.skのテキストファイルを作成します。

ファイル名は自由に決められますが、半角英数字にしておくと、あとの操作で迷いません。

スクリプトをリロードして反映する

スクリプトを保存したら、ゲーム内またはコンソールで/sk reloadを実行して反映します。

/sk reload <ファイル名>

<ファイル名>の部分は、拡張子を除いた実際のファイル名への置き換えが必要です。

greet.skならgreetです。

サーバー全体を再起動しなくても、この/sk reloadだけでスクリプトの変更を反映できます。

エラーが出なければ反映は成功です。

実際の使い方:カスタムコマンドとon joinイベントを作る

Skriptのカスタムコマンドとon joinイベントが、実行や参加をきっかけに処理を動かす仕組みを比較した図解

ここからは、実際にコマンドとイベントを作る番です。

  • カスタムコマンドを作る
  • on joinイベントで参加時の処理を作る
  • 変数を使うときの注意点

どちらも数行のスクリプトで動かせるので、まずは動く状態を体験してみます。

カスタムコマンドを作る

Skriptのコードを書く際は、インデント(字下げ)と文字コードの指定に注意が必要です。タブとスペースの混在や保存形式の間違いがあると、リロード時に構文エラーとなります。

注意点正しいルール誤った場合の症状
インデント(字下げ)タブまたは半角スペース(4個など)のどちらか一方をファイル内で統一します。タブと半角スペースが混在していると構文エラーになり読み込まれません。
文字コード(保存形式)日本語メッセージを含むため、文字コードは必ずUTF-8で保存します。Shift-JISなどで保存すると文字化けや構文エラーの原因になります。
command /greet <text>:
trigger:
send "%player%が%arg-1%と挨拶しました" to all players

1行目でコマンド名と引数の型を定義し、trigger:以下のsendで実行結果をチャットに表示しています。

%player%は実行したプレイヤー、%arg-1%は1つ目の引数を表します。

ゲーム内で/greet こんにちはを実行してください。

メッセージが正常に表示されれば、コマンド作成は成功です。

on joinイベントで参加時の処理を作る

on join:は、プレイヤーがサーバーに参加した瞬間に処理を実行するイベントです。

on join:
broadcast "%player%がサーバーに参加しました"
イベント構文の書き方

コマンド定義とは異なり、on join:などのイベント処理にはtrigger:を記述しません。イベント名の下に直接アクションをインデントして記述します。

保存してリロードしたあと、一度サーバーに再接続すると、参加メッセージが表示されるか確認できます。

変数を使うときの注意点

Skriptで扱う変数は、ローカル変数とグローバル変数の2種類に分かれます。

変数の種類命名規則保持期間主な用途
ローカル変数{_name}(先頭にアンダースコア)コマンドやイベントの実行中のみ一時的な計算や文字列の保持
グローバル変数{name}サーバー再起動後も保持されるプレイヤーの通算スコアや独自データ

複数人のスコアなど永続化したい値はグローバル変数、1回限りの一時的な値はローカル変数と使い分けます。

権限設定:友達に安全にコマンドを使わせる

permissionを設定し、権限を割り当て、非OPのプレイヤーでテストする安全な権限設定の流れを示した図解

コマンドを誰でも使える状態のままにすると、荒らしや誤操作のリスクが上がります。

コマンド定義にpermission:の行を追加すれば、そのコマンドを使えるプレイヤーを制限可能です。

permission message:の行を加えると、権限を持たないプレイヤーがコマンドを実行したときのメッセージも変更できます。

command /vipmsg <text>:
permission: skript.vip
permission message: この機能を使う権限がありません
trigger:
send "%arg-1%" to all players

permissionの値は自分で決める権限名です。

skript.<コマンド名>のように、コマンドごとに分かる名前にしておくと、あとで権限管理プラグイン側から見返したときに迷いません。

権限管理プラグインやOP限定の運用と組み合わせて、友達に渡す権限を割り当てます。

OP権限でのテストに注意

サーバー管理者(OP)はpermission設定を無視してコマンドを実行できてしまいます。権限設定をテストする際は、必ずOPを持っていない一般プレイヤーのアカウントで確認してください。

よくあるトラブル:構文エラー・未反映・権限ミスの確認方法

Skriptが動かないときに表示されない、赤色になる、権限で失敗する症状ごとの確認先を示した図解

導入や設定でうまくいかないときは、症状ごとに見る場所が決まっています。

症状確認する場所
/sk reloadでエラーが返るコンソールとlogs/latest.logのエラー内容、構文を書いた行
/pluginsに表示されないjarがpluginsフォルダ直下にあるか、拡張子が.jarか
/pluginsで赤色になるlogs/latest.logの起動時エラー
permissionを設定したのに使えない、または誰でも使えるpermissionの値と権限管理プラグイン側の権限名の一致、OP以外での動作確認

構文エラーで/sk reloadに失敗したときは、追加した行を一度削除して保存し、もう一度/sk reloadを実行すると、どの変更が原因かを切り分けられます。

permissionを設定したのにコマンドが使えない場合は、/sk reloadをやり忘れていないかも合わせて確認してください。

赤色表示や読み込み失敗そのものは、プラグインが動かないときの確認手順で扱っています。

実際の使用例:ロビーを空中に浮かせて落下対策する

海の上に浮かせたロビーワールド。周囲に足場がなく、落下対策が必要な構造

ここまでの例は動作確認用の最小構成ですが、実際に運用しているサーバーでも、config.ymlだけでは作れない挙動をSkriptで組んでいます。

僕のサーバーでは、ロビーワールドを空中に浮かせています。奈落へ落ちても困らないよう、Skriptで落下対策を作りました。

spa

空中にロビーを浮かべたとき、落下死するプレイヤーが続出したのでSkriptで救済処理を組みました。

on player move:
if name of player's world is not "lobby":
stop
if y-coordinate of player is greater than or equal to 0:
stop
teleport player to spawn point of world("lobby")
set fall distance of player to 0

プレイヤーのY座標が0を下回った瞬間に、ロビーのスポーン地点へ戻す処理です。

set fall distance of player to 0で落下距離もリセットしているため、テレポート後に余計な落下ダメージが残りません。

落下ダメージそのものも、別のイベントで無効化しています。

on damage:
if victim is not a player:
stop
if damage cause is not fall:
stop
if name of world of victim is not "lobby":
stop
cancel event

damage causeで落下によるダメージだけを判定し、cancel eventで無効化しています。

ロビーワールド以外の判定はstopで抜けるため、他のワールドの落下ダメージには影響しません。

こうしたイベントの組み合わせだけで、既存のプラグインでは用意されていない挙動も再現できます。

よくある質問

Qプログラミング未経験でもSkriptのコマンドは書けますか
A

書けます。コードのコンパイルは不要で、.skファイルに処理を書いて/sk reloadで反映する仕組みだからです。この記事のカスタムコマンド例とon joinイベント例をそのまま試すと、構文の感覚をつかみやすくなります。

Q1つの.skファイルに全部のコマンドやイベントをまとめて書いても大丈夫ですか
A

動作はしますが、機能ごとにファイルを分けたほうが管理しやすくなります。scriptsフォルダ内には複数の.skファイルを置けて、/sk reloadはファイル名を指定して個別に反映できるので、コマンド用とイベント用でファイルを分けておくと、修正時にどこを直したか把握しやすくなります。

QSkriptを使えばJavaプラグインは不要になりますか
A

Skriptだけですべてをカバーできるわけではありません。Skriptはコマンドやイベントを使った軽い自動化に向いていますが、複雑な処理や負荷の大きい機能はJavaプラグインの方が適しています。まずはSkriptで簡単な機能を試し、足りない部分だけJavaプラグインや配布プラグインを追加する進め方がおすすめです。

まとめ:Skriptで最初のカスタムコマンドを動かす

Skriptは、Javaを書かなくてもコマンドやイベントを自動化できるPaper専用のプラグインです。

書き方と確認の順番を、最後にもう一度並べます。

  • Skriptのjarをpluginsフォルダへ配置し、/pluginsで緑色表示を確認する
  • .skファイルはplugins/Skript/scriptsフォルダに置き、/sk reloadで反映する
  • カスタムコマンドとon joinイベントは、どちらも数行のスクリプトで動かせる
  • permissionとpermission messageで、コマンドを使える人を絞り込める
  • 動かないときは、症状別の確認先を上から順にたどる

まずは最小限のスクリプトを1つ作成し、リロードしてゲーム内で正しく動作するか確かめてみてください。

権限を設定できたら、友達を招待してコマンドを試してもらいましょう。

機能が増えて物足りなくなったら、鯖主に人気のプラグインから目的に合うものを探すのも一つの方法です。