モナたんメモ

トップページ > Modpack作成方法

このページについて

  • ここでは1.7.10のModpackを作成し、CurseForgeに公開することを念頭とした解説を行います

MODについて

  • MODには、クライアント側のみ、サーバー側のみ、両方に導入の3パターンがあり、間違えるとクラッシュする可能性があります。
    • クライアント側のみ: Inventry Tweaks、Smooth Fontなど
    • サーバー側のみ: Opisなど
    • 両方: NotEnoughItemsなど
  • /mods/1.7.10/ にModを入れても動作します。基本的にCodeChickenCoreによる自動DLされたModが入ってきます

入れておきたいMOD

  • クライアント側のみ
    • ArmorStatusHUD : 装備と持っているアイテムの耐久値を表示
    • CustomMainMenu : メニュー画面の変更
    • ItemDelocalizer : 別言語と英語のアイテム名を同時表示、作者に個別の許可を得る必要あり
    • MouseTweaks : アイテム配置の便利化
    • ReAuth : マイクラ起動後のアカウント再認証が可能
    • ResourceLoader : CMM前提Mod、/resources/にて、同フォルダ階層・同名で上書きが可能(写真等色々)
    • Thaumcraft Research Helper : TC4アドオン、研究補助
    • Wawla : Wailaアドオン、見える情報が増える
  • 両方
    • fastcraft : 軽量化
    • BetterFps : 軽量化
    • BetterQuesting : クエスト
    • Standard Expansion : BQのアドオン、取得のみのクエスト形式を追加など
    • CraftTweaker : レシピ変更
    • ModTweaker : CTのアドオン、レシピ変更
    • FTBTweaks : Modpackの難易度設定が可能
    • FTBUtilities : Backupなどの各種機能
    • HoloInventory : チェストなどの中身がわかる
    • Journeymap : ミニマップ
    • NotEnoughItems : レシピ確認
    • NEI Integration : NEIアドオン、各種Modサポート
    • NEI Addons : NEIアドオン、各種Moddサポート
    • Thaumcraft NEI Plugin : NEI・TC4アドオン、詳細など表示
    • NotEnoughIds : ID不足のCrashを防ぐ
    • Waila : カーソル先のブロック名表示
    • WailaHarvestability : Wailaアドオン、採掘レベル表示
    • WAILAPlugins : Wailaアドオン、各種Modの追加サポート
    • Fast Leaf Decay : 原木が周囲になくなると葉がすぐ消滅する
    • Morpheus : 一定割合の人数が寝ると夜を飛ばす
  • サーバー側のみ
    • opis : ラグ計量
    • Anti ID Conflict : 競合IDの取得

ID競合回避

  • Anti ID Conflictの導入推奨、./config/AntiIDConflict に出力される
  • 各ID上限(NotEnoughIds導入時)
    • Biome : 1 ~ 255
    • Dimension : -2147483648 ~ 2147483647
    • Enchantment : 0 ~ 255
    • Entities : 256 ~ 2147483647
    • Potion : 0 ~ 355
  • 競合時、そのMODのconfigからIDを変える
    • IDを変える設定がない場合、もう一つのmodを変えるかModdingをして書き換えるしかない

Twitchプロファイルの作成

  • CurseForgeで公開するには指定の形式(Twitchプロファイル)が必要です
  • プロファイル出力方法
    1. Twitchクライアントの設定ボタンより「プロフィールをエクスポートする」を選択
    2. プロフィール名、バージョン、入れるファイルを選択
    3. /Curse/Minecraft/Export/ に出力される(/Curse/Minecraft/instances/ がpackの存在する階層)

サーバーファイルの作成

  1. ThermosのようなSpigot混合サーバーは拒否される(純正Forgeとマイクラサーバー本体は可)
  2. batファイルのVM引数はyukieiji氏のブロマガ参照
  3. zipに圧縮しアップロードする

ForgeCurseへの公開

  1. アップロードページを開く
  2. Name(Modpack名)、Summary(簡潔な説明)、Description(詳細説明)、Project License(ライセンス)、Primary Category(メインカテゴリ)、Categories(サブカテゴリー)、Logo Image(ロゴ画像、比1:1、400px*400px以内)、Allow comments(コメント投稿の許可)、This Project is Experimental(実験的公開、検索に表示されなくなる) を埋めStart Projectを押す
  3. プロジェクトページにてFileのボタンを押す
  4. Upload Fileにて作ったTwitchプロファイル(サーバーファイルではない)を選択、表示名(Display Name)、Release Type(Alphaの場合Twitchに表示されない)、Changelog(変更点)、Supported Minecraft 1.7 Versions > 1.7.10を選択。Submit Fileを押し審査される。許可されると公開される。
  5. アップロードしたTwitchプロファイルのFile DetailにてUpload Additional Fileを押す
  6. 作ったサーバーファイルを選択し、Additional File InfoをServer Pack選択、Submit Fileを押し審査される。許可されると公開される。

CurseForgeの審査

  • 数分で審査が通ることもあれば、1日かかることもある
  • 結果は右上のベルマークから通知される
    • 許可時メッセージ例:
      The status of the file Gregtania6 Skyblock Server v1.1.5 (Gregtania6 Skyblock) has been changed to Approved
      If you have any questions please contact our support team https://support.curseforge.com.
    • 不許可時メッセージ例(許可されていないMODがある):
      The status of the file Gregtania6 Skyblock v1.1.4 (Gregtania6 Skyblock) has been changed to Rejected
      Notes:
      The following files do not appear to belong to any mods on the approved Non-CurseForge list:
      overrides/mods/NotEnoughItems-1.7.10-1.0.5.120-universal.jar
      Please see https://authors.curseforge.com/knowledge-base/minecraft/3279-non-curseforge-mods for full details.
      If you have any questions please contact our support team https://support.curseforge.com.
  • CurseForgeにて公開されていないModかつApproved Non-CurseForge Mods にないものは運営に申請しない限り拒否される(個別許可不可)
  • CurseForgeにもApproved Non-CurseForge ModsにもあるMODの場合、CurseForgeに作者が上げているバージョン以外拒否される(MIT Licenseだろうが作者が許可しようが自作MODだろうが拒否)
  • CodeChickenCoreによるダウンロードを使うことでMod審査回避することも可能(ASMによる別コード書き換えを行うMODの場合初回起動でエラー)
  • 当然だが作者が許可していない著作権違反となる物は含めてはいけない

発展的内容

レシピの変更

  • CraftTweaker解説を参考
  • CodeChickenCoreによる自動DL

  • 詳細はMinecraft Modding Wiki参照
    1. Approved Non-CurseForge ModsのMod もしくはCurseにアップロードした自作Mod(dependencies.info入り)を用意する
    2. 7-zip等でそのMod(.jar)を開く
    3. dependencies.infoをドラッグアンドドロップする
    4. Packの中にそのModを入れる
  • dependencies.infoの作成
    1. repo + file = url になる
    2. 直リンク出ないと動作しない?GitHubや自作サイト推奨
    3. devは開発環境時に動作、classはソースコードに @Mod 若しくは IFMLLoadingPlugin があるクラス? を指定
    4. dependencies.infoの例 (TeraPadの使用推奨、文字コード: UTF-8N、改行コード: LF)
    5. [{
      	"repo": "https://github.com/codewarrior0/gregtania-6/releases/download/6.0.7/",
      	"file": "Gregtania-6.0.7.jar",
      	"dev": "Gregtania-6.0.7.jar",
      	"class": "com.gmail.pharaun.gregtania.Gregtania"
      },
      {
      	"repo": "https://github.com/monatann/GT6NEIOrePlugin/releases/download/1.0.5b/",
      	"file": "GT6NEIOrePlugin-1.7.10-1.0.5b.jar",
      	"dev": "GT6NEIOrePlugin-1.7.10-1.0.5b.jar",
      	"class": "pers.gwyog.gtneioreplugin.GTNEIOrePlugin"
      },
      {
      	"repo": "https://github.com/CatastropheModpack/IFU/releases/download/v2.0/",
      	"file": "IFU-2.0.jar",
      	"dev": "IFU-2.0.jar",
      	"class": "com.encraft.dz.DayNMod"
      },
      {
      	"repo": "https://monatann.azurewebsites.net/files/minecraft",
      	"file": "NotEnoughItems-1.7.10-2.0.3-universal.jar",
      	"dev": "NotEnoughItems-1.7.10-2.0.3-universal.jar",
      	"class": "codechicken.nei.asm.NEICorePlugin"
      }]

    ロード画面の変更

  • ./config/splash.propertiesで色々変更可能
  • 右下の画像はforgeTexture=fml\:textures/gui/voiceroid.gif とした場合、ResourceLoaderを導入し/resources/assets/fml/textures/gui/voiceroid.gifを置くことで変更可能
  • Custom Main Menu

  • ニコ動の解説Custom Main Menu Editorを参考
  • 私の作成しているModpackを参考
  • {
        "images":
        {
            "title":
            {
                "image" : "mainmenu:title/title.png",
                "posX" : 20,
                "posY" : 10,
                "width" : 200,
                "height" : 39,
                "alignment" : "top_left"
            },
    	"kiritann":
            {
                "image" : "mainmenu:title/kiritann.png",
                "posX" : -200,
                "posY" : -10,
                "width" : 200,
                "height" : 540,
                "alignment" : "top_right"
            }
        },
        
        "buttons":
        {
            "singleplayer":
            {
                "text" : "menu.singleplayer",
    	    "hoverText" : "No need any help!",
    	    "normalTextColor" : 4227327,
    
                "hoverTextColor" : 16711680,
                "texture" : "mainmenu:title/btn.png",
                "posX" : -220,
                "posY" : -10,
                "width" : 200,
                "height" : 30,
                "action" : 
                {
                    "type" : "openGui",
                    "gui" : "singleplayer"
                },
                "pressSound" : "menu:single"
            },
            
            "multiplayer":
            {
                "texture" : "mainmenu:title/btn.png",
                "text" : "menu.multiplayer",
                "hoverText" : "Come here!",
    	    "normalTextColor" : 4227327,
    
                "hoverTextColor" : 16711680,
                "posX" : -220,
                "posY" : 20,
                "width" : 200,
                "height" : 30,
                "action" : 
                {
                    "type" : "openGui",
                    "gui" : "multiplayer"
                },
                "pressSound" : "menu:multi"
            },
                
            "options":
            {
                "texture" : "mainmenu:title/btn.png",
                "text" : "menu.options",
    	    "normalTextColor" : 4227327,
    
                "posX" : -220,
                "posY" : 50,
                "width" : 200,
                "height" : 30,
                "action" : 
                {
                    "type" : "openGui",
                    "gui" : "options"
                },
                "pressSound" : "menu:options"
            },
            
            "language":
            {
                "texture" : "mainmenu:title/btn.png",
                "text" : "Language",
    	    "normalTextColor" : 4227327,
    
                "posX" : -220,
                "posY" : 80,
                "width" : 200,
                "height" : 30,
                "action" : 
                {
                    "type" : "openGui",
                    "gui" : "languages"
                },
                "pressSound" : "menu:language"
            },
    
            "mods":
            {
                "texture" : "mainmenu:title/btn.png",
                "text" : "Mods (#modsactive#/#modsloaded#)",
    	    "normalTextColor" : 4227327,
    
                "posX" : -220,
                "posY" : 110,
                "width" : 200,
                "height" : 30,
                "action" : 
                {
                    "type" : "openGui",
                    "gui" : "mods"
                },
                "pressSound" : "menu:mods"
            },
    
            "quit":
            {
                "texture" : "mainmenu:title/btn.png",
                "text" : "menu.quit",
                "hoverText" : "Rest fully!",
    	    "normalTextColor" : 4227327,
    
                "hoverTextColor" : 16711680,
                "posX" : -220,
                "posY" : 140,
                "width" : 200,
                "height" : 30,
                "action" : 
                {
                    "type" : "quit"
                },
                "hoverSound" : "menu:quit"
            }
    
        },
        
        "texts":
        {
    	"owner":
            {
                "text" : "§bModpack owner §f| §6Monatann",
                "posX" : 265,
                "posY" : -20,
                "color" : -1,
                "alignment" : "bottom_left"
            },
            "mojang":
            {
                "text" : "Copyright Mojang AB. Do not distribute!",
                "posX" : 265,
                "posY" : -10,
                "color" : -1,
                "alignment" : "bottom_left"
            },
            "modpack1":
            {
                "text" : "§bLatest version          §f|",
                "posX" : 5,
                "posY" : -10,
                "color" : -1,
                "alignment" : "bottom_left"
            },
    	"modpack2":
            {
                "text" : "web:https://raw.githubusercontent.com/monatann/Gregtania6-Skyblock/master/version",
                "posX" : 93,
                "posY" : -10,
                "color" : -1,
                "alignment" : "bottom_left"
            },
           
            "modpack3":
            {
                "text" : "§bGregtania6 Skyblock §f| §6v1.1.5",
                "posX" : 5,
                "posY" : -20,
                "color" : -1,
                "alignment" : "bottom_left"
            },
    	"modpack4":
            {
                "text" : "§bMinecraft version §f| #mcversion#",
                "posX" : 130,
                "posY" : -10,
                "color" : -1,
                "alignment" : "bottom_left"
            },
    	"modpack5":
            {
                "text" : "§bForge version      §f| #forgeversion#",
                "posX" : 130,
                "posY" : -20,
                "color" : -1,
                "alignment" : "bottom_left"
            }
        },
        
        "other":
        { 
            "background":
            {
                "image" : "mainmenu:title/bg.png",
                "mode" : "fill"
            }
        }
    }
  • "text" : "web:https://raw.githubusercontent.com/monatann/Gregtania6-Skyblock/master/version" のように書くことでサイトの文字を表示できる。最新バージョン表示に便利