Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/code-onigiri/mc-modding-skill/1201-forge-moddingnpx skills add code-onigiri/mc-modding-skill --skill 1201-forge-moddinggit clone --depth 1 https://github.com/code-onigiri/mc-modding-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/code-onigiri/mc-modding-skill/1201-forge-modding)<a href="https://agentmods.dev/skills/code-onigiri/mc-modding-skill/1201-forge-modding"><img src="https://agentmods.dev/badge/skills/code-onigiri/mc-modding-skill/1201-forge-modding.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00118 | $0.02189 |
| Opus 5 | $0.00059 | $0.01094 |
| Sonnet 5 | $0.00024 | $0.00438 |
| Haiku 4.5 | $0.00012 | $0.00219 |
Grade A, and why
1201-forge-modding scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
概要
このSkillは Minecraft 1.20.1 Forge 向けMod開発の標準パターンと落とし穴をまとめたものです。
✅ やるべきこと
- DeferredRegister + RegistryObject を使う — 旧来の
RegistryEventベースの登録は非推奨。 - DataGen を使う — 手書きJSONはミスとメンテナンスコストが爆発する。
- Mojang Mappings(official)が標準 — Parchmentでパラメータ名を補完する。
- すべてのDeferredRegisterをModBusにregisterする — コンストラクタで
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();を取得し、各register(modEventBus)を呼ぶ。 - Block登録時はBlockItemも登録する — Blockだけではインベントリに出ない。
level.isClientSideで論理サイド判定 — 物理サイドではなく論理サイドで分岐。- Networkingのハンドラでは
ctx.enqueueWork()でメインスレッドに戻す — ネットワークスレッドでワールド変更を行うとクラッシュ。 - Capability取得時は
LazyOptionalを使う —isPresent()/ifPresent()で安全にアクセス。invalidateCaps()も必ず実装する。 - BlockEntityのデータ変更時は
setChanged()+level.sendBlockUpdated()を呼ぶ — どちらか欠けると保存/同期されない。 sourceSets.main.resources { srcDir 'src/generated/resources' }を忘れない — DataGenの出力が読み込まれなくなる。
❌ やってはいけないこと
@OnlyInをModコードで使わない — Forge内部専用。使うとマルチプレイでクラッシュ。クライアント限定コードは@Mod.EventBusSubscriber(value = Dist.CLIENT)またはFMLClientSetupEventで分離する。ResourceLocationに大文字・ハイフンを使わない — 小文字と_/.//のみ。- ContainerDataの各スロットは16bit — 32bit整数(エネルギー量など)は2スロットに分割すること。
- PacketのID(int)を重複させない — SimpleChannelのregisterMessageでID衝突は通信破損。
- Capabilityを通常のBlockに直接付けない — BlockEntityが必要。
- runClientクラッシュ後は
./gradlew --stop— Daemonがポートを占有していることがある。
開発ワークフロー(新規Mod作成時)
- 1. Forge MDK(1.20.1)を入手し、Gradleプロジェクトとしてインポート
- 2.
gradle.properties/build.gradle/mods.tomlを確認・編集 - 3. メインModクラス(
@Mod)とDeferredRegister+RegistryObjectのセットアップ - 4. Block/Item/Entity などの登録とプロパティ定義
- 5. Data Provider(Recipe, LootTable, BlockState, Tags)の実装
- 6. 必要に応じてNetworking(SimpleChannel)、Capability、WorldGenを追加
- 7.
runClient/runDataで動作確認
よく使うGradleタスク
./gradlew build # 配布用jar生成
./gradlew runClient # クライアント起動
./gradlew runServer # サーバー起動
./gradlew runData # DataGen実行
./gradlew runGameTestServer # GameTest実行
./gradlew clean # ビルドキャッシュ削除
What ships with it
20 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/ADVANCED.md 4.8 KB
- references/BLOCKS_AND_ITEMS.md 8.1 KB
- references/CI_RELEASE.md 2.1 KB
- references/COMMANDS.md 2.4 KB
- references/CORE_CONCEPTS.md 5.2 KB
- references/DATA.md 6.3 KB
- references/DATAPACK.md 9.8 KB
- references/GAMETEST.md 2.5 KB
- references/IMAGEGEN.md 3.7 KB
- references/NETWORKING.md 3.0 KB
- references/QUICK_REFERENCE.md 3.8 KB
- references/RESOURCE_PACK.md 7.6 KB
- references/SETUP.md 6.8 KB
- references/TROUBLESHOOTING.md 5.2 KB
- references/WORLDGEN.md 1.8 KB
- scripts/check-build.sh 4.0 KB runs code
- scripts/scaffold-asset-brief.sh 5.6 KB runs code
- scripts/validate-datapack.sh 4.5 KB runs code
- scripts/validate-resource-pack.sh 8.1 KB runs code
- scripts/validate-test-layout.sh 4.1 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 117 lines · 118 tokens per session scan A 72dac5e440f0
1201-forge-modding is a skill published in the GitHub repository code-onigiri/mc-modding-skill (2 stars, last pushed 2mo ago), licensed MIT. It adds 118 tokens to every session and 2,189 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
exec-inspect
Verifies a Minecraft Java Edition build in-world after each phase — checks the plan was carried out as specified, that the result fits the world cleanly (no dangling edges, blocked paths, or unintended overrides), and proposes concrete course corrections. Use after every major phase of executing a build plan, as the…
exec-plan
Captures build requirements for a Minecraft Java Edition world, interviews the user to resolve ambiguity, and produces a detailed, fully-resolved build plan that a small model can execute mechanically. Use when starting a new Minecraft build or feature, or when a build request must be turned into a concrete plan…
system-redstone
Designs, plans, and verifies complex redstone and mechanical contraptions in a live Minecraft Java Edition world — item sorters, hidden and piston doors, automatic farms, mob-spawner collectors, minecart networks and roller coasters, water and bubble elevators, note-block music, traps, and decorative machines.…
design-city
Designs and blueprints whole cities and city districts in a live Minecraft Java Edition world — real-world replicas (modern and historical), pop-culture replicas, and original cities. Plans the urban fabric — district zoning, street hierarchy, transit, walls, and reused vernacular building modules — and defers every…
exec-worker
Executes a detailed Minecraft build plan step by step — placing, filling, cloning blocks and stamping structures exactly as specified, with no redesign or improvisation. Use to carry out a plan.toon produced by exec-plan once it is detailed enough to follow mechanically. Part of the minecraft-builder workflow.
exec-blueprint
Turns a Minecraft build plan into named, reusable structure definitions saved inside the world, so build elements can be placed, copied, and iterated later without any external state. Use after planning, to create or update the structure library for a build. Part of the minecraft-builder workflow.