VCRマイクラをやりたくて、友達とマイクラする用のMinecraftサーバを自PC上にたてた


## 概要

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/9fa8cdc4-3e52-a280-3495-d9461ea0918a.png)


この間やっていたVCRマイクラをみてマイクラのハスクラやりたいと思ったので、環境的なメモとかを書いておきます
サーバは持ってないので、ゲーミングPCにそのままサーバを立てた。少人数でマイクラやりたいなら参考にできるはず (スペックによるけど同時接続６人ぐらいでも普通に遊べてました)

## 中の人
普段はVarorantとかOW2とかやってるSRE
PCスペックは3年前ぐらいに15万ぐらいで買ったゲーミングPCを使ってます

## サーバ環境
https://puranura.com/?p=2771
上記を参考にしていれたのでもろもろ割愛
※後述するが、メインのModが `1.20.1` のバージョンなので、これに合わせて全部いれたほうがよさげだったので、そうした。

サーバ関連のファイルは以下に格納している
```
C:\{#my_folder}\game\minecraft
```
※CがSSDなので、適当にフォルダを作ってそこにおいてある

### 起動方法

以下のファイルで起動できる
run.bat
→ Javaが必要なのでインストールしておく ※入れ方は後述

サーバ設定とかはあんまりいじってないが、以下らへんを変更するといいらしい
`server.properties`
ちなみにport番号はデフォルトで `25565`

アクセス許可用に以下を設定すること (ここでは割愛)
+ Windowsのファイアウォール設定でportを指定して許可する
+ ルータの設定で、指定portに来たら自分のPCのIPにアクセスさせるように設定

### サーバ側Mod

run.batフォルダにあるModsファイルにModファイル(jarファイル)を置いていけばOK
※クライアントと同じModをすべて入れること。クライアント側だけでいいModもあるらしいが、Modのサイトで識別できなかったので、僕は同じものを全部入れました。識別の仕方知ってる方いれば求む

参考にいまのModsフォルダの中身はっておきます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/7590f652-e252-85f7-d7dd-31870a35e56a.png)


## クライアント側

※友達とやるなら、友達にも同じModなどを入れてもらう必要があるので、ここらへんを共有すればOK


### Minecraft本体

Microsoftで購入。Modを使う場合はjava版になる (PSとかは統合版というらしい)
Modのために java (openJDK) を入れる必要がある。
https://adoptium.net
→ “Lastest LTS Release” ってやつをダウンロードしてインストールすればOK

Modのために、forge をインストールした
https://files.minecraftforge.net/net/minecraftforge/forge/index_1.20.1.html
→ 1.20.1 の安定板 (forge-1.20.1-47.3.0-installer.jar)
※最新版だと動かないものもあるらしいので、安定板推奨とのこと
→ ダウンロードした jarファイルをダブルクリックで実行
→ クライアントを選択すればOK
→ マイクラのランチャー開くと表示されるようになるのでそれで起動すればいい
→ 起動した後にmodフォルダができる (設定→Mod にいくとどこにフォルダがあるか教えてくれる)
→ modフォルダにDLしてきたmodを置いたらOK

■Mod
メインでMine and Slash
https://www.curseforge.com/minecraft/mc-mods/mine-and-slash-reloaded/files/5089100
バージョンは 1.20.1 のもの ( Mine and Slash自体のバージョンは 5.7.5 )
→ これに合わせて他のModも 1.20.1 を入れてる (たぶん最新でも動くだろうけど)

以下Mine and Slashの依存関係のmodもいれた
・playerAnimator
https://www.curseforge.com/minecraft/mc-mods/playeranimator/files/all?page=1&pageSize=20&version=1.20.1
・curios
https://www.curseforge.com/minecraft/mc-mods/curios/files/all?page=1&pageSize=20&version=1.20.1
・Library of Exile
https://www.curseforge.com/minecraft/mc-mods/library-of-exile/files/all?page=1&pageSize=20&version=1.20.1


追加で以下も入れた
・JourneyMap
→ ミニマップ見れるやつ。J キー でマップ見れる
https://www.curseforge.com/minecraft/mc-mods/loot-journal/files/all?page=1&pageSize=20&version=1.20.1
・Loot Journal
→ 拾ったアイテムが右下に表示される
https://www.curseforge.com/minecraft/mc-mods/loot-journal/files/all?page=1&pageSize=20&version=1.20.1
・Inventory Sorter
→ インベントリ整理用。一番よさげなやつはエラーでうまく動かなかったのでこいつで
https://www.curseforge.com/minecraft/mc-mods/inventory-sorter

■日本語化
日本語化は以下を参考
https://www.mine-blog.tech/mine-and-slash-5-7-x/
基本的には手順に従えばOK
簡単に説明すると、リソースパックというのがModと同じようにフォルダができるので、そこにおいてから、マイクラ内で"有効化"してあげればOK


## サーバ起動方法

ここまでできれば起動できるはず
クライアント側と同じModを入れて run.bat を起動する
エラーが起きなければOK
(エラーが起きる場合はModのバージョンがあってなかったりするので、適宜確認する。相性の悪いModもあるらしいので、少しずつModを足す感じで切り分けしたほうがいい)

マイクラを起動してマルチプレイのアクセス先を
`自分PCのグローバルIPアドレス+port番号` を指定すればアクセスできるはず
```
例 : 100.100.100.100:25565
```

グローバルIPアドレスの調べ方は以下
https://www.cman.jp/network/support/go_accss.cgi

※自PCのマイクラは `localhost:25565` でアクセスする
※同じLAN内からアクセスしてくる (違うPCからアクセスしてくる)パターンはローカルIPで指定すること


起動までの設定編は以上

# 管理編 

マイクラにはチート(管理者用コマンド)がある
みんなでそれぞれ適当にやってもいいけど、
ハスクラをメインにやりたかったので、それ以外の要素は適度に省きたかったので適度に利用した
(基本はFPSをやるメンツだったので、がっつりではなくそれなりにできればそれでOK)


### 権限付与


管理者側のコンソールで以下コマンドで権限付与

/op {name}

これでマイクラの画面からコマンド(チート)ができるようになる
※これをやらないとマイクラの / コマンドが使えない


使いそうなコマンドを書いておく

### /give

アイテムが欲しいときは give コマンドで欲しい人にできる (@a で全員あてにアイテムを付与できる)

・矢100個付与
```
/give {#name} minecraft:arrow 100
```

・初心者用アイテム袋 (杖とか弓とか入ってる。初期で全ロスすると杖が手に入らなくて積んだパターンがあったので)
※今回のmod用のアイテムは 接頭語が `mmorpg:` になっているのでハマった。あと武器とか装備は後述の専用コマンドを使う

```
/give {#name} mmorpg:newbie_gear_bag
```

スキルリセット系のポーション名はここらへん (日本語化modのjsonからみつけてきた。欲しいアイテムがあって、英語名がわからないときはjson見るといい)
```
"item.mmorpg.potions.full_reset_ascendancy": "アセンデンシーフルリセットポーション",
"item.mmorpg.potions.full_reset_passive": "パッシブフルリセットポーション",
"item.mmorpg.potions.full_reset_spell": "スペルフルリセットポーション",
"item.mmorpg.potions.full_reset_stat": "ステータスフルリセットポーション",
"item.mmorpg.potions.full_reset_talent": "特性フルリセットポーション",
"item.mmorpg.potions.reset_points_ascendancy": "アセンデンシーポイントリセットポーション",
"item.mmorpg.potions.reset_points_passive": "パッシブポイントリセットポーション",
"item.mmorpg.potions.reset_points_spell": "スペルポイントリセットポーション",
"item.mmorpg.potions.reset_points_stat": "ステータスポイントリセットポーション",
"item.mmorpg.potions.reset_points_talent": "特性ポイントリセットポーション",
```
実際は以下のようなコマンドで出力する

```
/give {#name} mmorpg:potions/full_reset_spell
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/d98f505e-3913-4654-ca68-6df7cb169958.png)

コマンドはサジェスト機能があったりして非常に便利なのだが、
Modのアイテムにはインデックスが貼られていないようで、あいまい検索では出てこなかった(3文字まではあいまい検索してくれるらしい、それ以降は前方一致検索)


### /setworldspawn

初期スポーン位置を変更する
サジェストされているx, y, z は、いまプレイヤーがいる位置のようなので、スポーンさせたい位置でコマンドを打つこと

```
/setworldspawn {#x} {#y} {#z}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/569c3045-deba-6363-268e-bfef049df21e.png)


ちなみに設定したスポーンから半径30マス？ぐらいは、管理区域みたいな感じになるらしく、
一般ユーザはドアがあけられなくなったり、チェストが開けなかったりした

拠点から少し離れた位置で設定することを推奨


### /mine_and_slash (Mine and Slash用のコマンド)

Mine and Slash用のコマンドもある。武器アイテムとか
※やりすぎるとバランス崩壊するので、注意 (それで萎える人もいるので)

・経験値付与
```
/mine_and_slash give exp {#name} 1000
```


・Mine and Slash専用アイテム付与 (装備品など。付与されるステータスはランダムっぽいので、欲しい装備があれば適当にある)
例は10レベル用のuncommonリングを5個の場合のコマンド
```
/mine_and_slash give gear {#name} ring 10 uncommon 5
```

uniqueアイテムは別コマンド
```
/mine_and_slash give unique_gear {#name} {#unique_name}
```
ユニークアイテム名がわからないとだめなので、ビルドで使いたいアイテムが欲しいなどの場合に使うこと

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/ec697e33-7894-f4e7-c565-35cd0751206f.png)


# 運用編 

### 初期スポーン変更

作ったワールドのスポーン位置が木も何もないところだったので、
流石に移動した
※注意点はコマンドのところで前述しているので参照すること

ちなみにワールド自体を作り直したいときは
server.properties の `level-name` を変更してあげれば新しいワールドになる (前のワールドに戻したいときは値を元に戻す)


### 配給システム

配給として、以下アイテムを配給用チェストにいれておいた
序盤が結構面倒だったりするので、そこらへんの煩わしさ防止のため

```
・りんご
・松明
・初心者用アイテム袋
```

※初心者用アイテム袋は前述しているが全ロス対策

配給アイテムは、進行度に合わせて変更していった。適宜やるとみんなのモチベーションが下がらないまま楽しめる
以下TIPS

+ 取得するのに困らなくなったアイテムを配給するイメージ (diamondをいつ配給するかで結構悩んだ、結局配給しなかったけど)
+ 特にダンジョン系アイテムの"帰還のパール"などは適宜用意してあげるといい (VCRでもそうしてるっぽかった)
+ 回復ポーション系は、生産スキルを上げる必要があるらしく、ノイズになりそうだったのでダンジョンメインになったら配給するようにした。食べ物系も同じように配給

### チェスト管理

人によってちゃんと整理したい人と、面倒な人がいる
アイテムを共有化する場合は、チェストを整理できるように作ってあげておくのが無難

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/27949312-664c-a808-715b-42d100635c89.png)

面倒な人向けの"ずぼら用"チェストもつくってあげると共存できる (毎晩整理してから寝てます)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/5c313b63-454b-d621-8da3-1526fce5c58e.png)


### ダンジョンの高敵強過ぎ問題

適性レベルのダンジョンでも、エピックなどの強くて硬い敵にぼこぼこにされてしまうので油断大敵。飛んでくるピクシーみたいな敵も多数いると詰む。すぐ全ロスするので気を強く持とう

### ネザーゲートの位置が変わらない

転送先のネザーゲートの位置が、ゲートの位置を変えても変わらなかった
Modのせいなのかなんなのか不明だが、そんな問題なさそうだったのでそのままでやってた

### 動けなくなるバグ

バグかどうかわからないが、 `全角半角` キーを押すとキーボードが反応しなくなる？バグがある
動けなくなっちゃうので、敵対してるときだと詰む

トリガーは `全角半角` ボタンを押したらっぽい
解除は 一度 discord でもなんでもいいから開いて 文字入力 で 入力し、何度か`全角半角` キー を押して 日本語入力を解除 した状態で、マイクラに戻って `全角半角` キー を1度押す、と直る

マイクラは日本語入力がうまく対応できてなさそうで、そこらへんのせいだと怪しんでいる

VCRマイクラだといろいろバグっぽいものはあったが、やってる感じは今のところ大丈夫そう

### ログ

管理コンソールでログがみえるので、だれが何時までやってたとかがあとでわかる
ログ自体はどっかに保存されてそうなので、ログイン時間とか計測したりしてもおもしろいかも

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3811934/a2a24257-4e02-3687-5cee-c9a630d0ccba.png)

全チャットの内容も出てくるようなので、不満やそこらへんも見えちゃう。見えてないフリ推奨


### 自PC

サーバ起動してる間は基本PCはつけっぱなし
(友達の中には朝までやってたり、あるいは朝早くやってたりする勢もいたので)
誰もいないときや入れたいModがあったときはdiscordに「サーバ再起動するね」と連絡してから再起動やってた

ちなみにサーバ起動しながら、VarorantやOW2は普通にできたので、そんな負荷もなさそう

停止するときは、以下管理コンソールで実行する

```
/stop
```

stopしないとセーブできてなかったりするらしいので、基本はこのコマンドでやってる



### バックアップ

短期間だけ想定なので、バックアップやってない
パルワールドのときは起動不能バグがあったりしたので、バッチ組んでたりしたけど、
いまのところそういう不安もないし、すぐ飽きると思うので。
長期間やる予定の人はやったほうがいいかも


## あとがき

IT知識のない友達が頑張ってサーバ立てようと1日かけて頑張ったりして挫折してたので、自分なりにやり方を書いておこうとおもったので書きました
誰かの参考になれば幸いです


以上