こちらは主にマクロコントローラー(BIGBIG WON CHOCO)とPoke-Controller用の記事になります。
一般的なマクロコンでの半自動化
完全な自動化には複雑な処理をする為、通常のマクロコントローラー(↓)では出来ません。
これの場合、アイテム回収は人力ですが6匹とも〔ものひろい〕にできる利点があります。
SW版ポケモンFRLGではマクロコンが使えるので自動経験値稼ぎが可能。ゴースC1なので特攻努力値も稼げる。 pic.twitter.com/BZzi80wQcl
— えらー (@error_astray) 2026年2月28日
参考:ポケモン知っ得情報
高機能マクロコン等での完全自動化
では本題の全自動〔ものひろい〕について、まず必要となる要素が3つあります。
まず「戦闘方法」、これは「あまいかおり」を使って確実に発生させることでクリアできます。
次に「アイテム回収」、これも「有無にかかわらず同じ動作で回収できる」のでこれもクリア。
問題は「PPの回復」、方法としては「PP回復薬」…はFRLGの〔ものひろい〕では拾えないので不可、「全滅による回復」タマムシPCに戻って右に進んで草むらへのループ…アリですがやや複雑。あとは「回復イベント」…ポケモンタワーの回復床!これだ!しかも赤緑と違って結界はエンカウントが無く、入った瞬間に戦闘発生する恐れも無い!
というわけでこれらを合わせた完成品がこちら。
ポケモンFRLGの無限ものひろいループ完成!
— えらー (@error_astray) 2026年2月28日
実際には「あまいかおり」を繰り返しつつ、アイテム回収を5戦に1回、PP回復を15戦に1回する仕組みです。これでアメとポイントアップが稼げる! pic.twitter.com/YTIgfZQtKe

用意するポケモンについて
先頭用のポケモンは「攻撃技(ノーマル・かくとう・でんき以外)」「あまいかおり」を条件としています。
相性メッセージが出ない最適解は「〔ふゆう〕ゴース&カラカラに相性の出ないタイプの技(ほのお・ひこう・エスパー・ドラゴン・はがね)」で、
現状は「つばめがえし(マシン)」「あまいかおり(タマゴ)」パラス系がベストとなります。
※タマゴ技の親は、FR版は5番道路(ハナダ下)のナゾノクサ・LG版は3の島(きのみのもり)のマダツボミ系が使えます。
※各種「めざめるパワー」でも良いですが結局PP15で劣ってしまう。
ただ、攻撃技を「どろぼう」にすれば、ゴーストから『のろいのおふだ(5%)』、カラカラから『ふといホネ(5%)』をついでに奪えるのでお得です(抜群メッセージ分の時間ロスはあります)。「どろぼう」はマダツボミ系の♂に使えば「あまいかおり」と一緒にパラスに遺伝できます(※「みねうち」が遺伝できませんが元々パラスは「あまいかおり」「みねうち」の同時習得が不可能です)。
※FRLG未解禁:「サイケこうせん(タマゴ※両立はアメタマ経由)」「あまいかおり(タマゴ)」パラス、「サイケこうせん(タマゴ)」「あまいかおり(Lv13習得)」アメタマ、「かえんほうしゃ(マシン)」「あまいかおり(16)」クチート、「つばめがえし(マシン)」「あまいかおり(5)」イルミーゼ、「かぜおこしPP35(1)・つばめがえし(マシン)」「あまいかおり(21)」トロピウス
後ろ5匹の〔ものひろい〕役は何でも良いです。5番道路(ハナダ下)でニャースLv10~12を捕まえましょう。
無意味になりますが〔ものひろい〕以外でも動作はします。
マクロコントローラー(BIGBIG WON CHOCO)用プログラム
共有コードは【HuODCZL5】です。名称「FRLG自動ものひろいver.2.0」
内容は『「あまいかおり」で4回戦闘→アイテム回収→1回戦闘→PP回復』となっています。
動画の通りポケモンタワー5Fの結界の前にマスで起動してください。
手持ちの先頭は「電気ノーマル格闘以外の攻撃技」「あまいかおり」を覚えたポケモンで他は自由です。
Ver.2.0では攻撃技は「どろぼう」の「ばつぐんだ!」表示を考慮し、Lv100以下でも使えるよう1匹分の経験値獲得がある物として最適化しています。
FRLGは現行作品と比べものにならないほど厳選が困難かつ、乱数調整の研究も進んでいるので対戦するのであれば持っておくと良さそうです。
このマクロはSwitch版向けに作っていますがゲームキューブ用Bluetoothコントローラーアダプタを使えばGBA版にも使用できます。
マクロの内容は以下の通りです。
これをベースに「2匹目の甘い香りを使用するようにする」「6匹目から回収しない(学習装置を持たせる)」などして経験値稼ぎをするのも良いでしょう。
例:【o1MJ7yFN】先頭に戦わせて経験値稼ぎ、2番目に「あまいかおり」役、3~6番目に〔ものひろい〕を置くバージョンです。
こちらを使えば「ほしがる」カビゴン+「あまいかおり」役で『ちいさなキノコ』回収することもできます。

Poke-Controller用画像認識なしバージョン(共通)
内容は『「あまいかおり」で1回戦闘→5戦毎にアイテム回収→PPが切れたらPP回復』となっています。
Poke-Controller用プログラム(画像認識あり)
上の手順に加え、
通常は「あまいかおり」起動から9.3秒で「あ!やせいの」と出るが、色違いだと10.8秒かかるの出ていない事を利用して色違い判定する機能。
その後、結界にいる「横向きの祈祷師」が写るまで5秒A連打を繰り返す機能。
及びアイテム回収時に「カーソルを合わせた時にニャースが持ち物を持っている画像(↓)」と一致すれば回収、しなければ飛ばすようにして効率を高めます。※ニャースでないと動くアイコンが入ってしまい都合が悪い

より効率を高めるのであれば「あまいかおり」の起動前に「道具を持っている各ポケモン」が一定数居るか判定して回収するか自体を決めるというのも良いででしょう。
ソースコードは以下。
・画像認識あり(2026/04/02更新)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-from Commands.PythonCommandBase import PythonCommand, ImageProcPythonCommand
from Commands.Keys import KeyPress, Button, Direction, Stick, Hatclass AutoPickUP(ImageProcPythonCommand):
NAME = 'FRLG自動ものひろい'def __init__(self,cam):
super().__init__(cam)def do(self):
print("-------------------------------")
print("BDSP自動戦闘【日本語版】")
print("Developed by えらー")
print("FRLGの自動ものひろいプログラム")
print("起動前に「ポケモン」を開いてメニューを閉じる事!")
print("〔ものひろい〕5匹版")
print("-------------------------------")
self.wait(0.5)#先頭は「攻撃技(ノーマル・かくとう・でんき以外)」「あまいかおり」持ちとする事
#他5匹は問わない。〔ものひろい〕で無くてもいいが意味は無い。count = 5 # 何戦毎に道具回収するかのカウントダウン。
PP = 15 #「めざめるパワーPP15」の残りPP。「ようかいえき30」。print("Start")
self.press(Button.B, 1.0, 0.5) # B
self.press(Button.B, 1.0, 0.5) # Bwhile True:
#「あまいかおり」を使用する
self.press(Button.X, 0.1, 0.3) # Xメニューを開く
self.press(Button.A, 0.1, 1.1) # Aポケモンを開く
#self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動 【2匹目で「あまいかおり」版】
self.press(Button.A, 0.1, 0.3) # Aつよさをみる
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動
self.press(Button.A, 0.1, 9.3) # Aあまいかおり#あまいかおり起動から9秒で「あ!やせいの」が出るが、色違いだと10.5秒かかるのを利用し判定する。
if(not self.isContainTemplate('FRLG_Wild.png', 0.9, use_gray=False, show_value=False)):
print("色違いかも?要確認")
self.press(Button.CAPTURE,2.0, 3.0)
self.press(Button.HOME,0.3,0.3)
self.finish()
self.press(Button.B, 0.1, 3.5) # B とびだしてきた▼
self.press(Button.B, 0.1, 0.5) # B ゆけっ!
self.press(Button.A, 0.1, 0.4) # A たたかう#主人公(正面)が写るまでA連射。
while not( self.isContainTemplate('FRLG_kitoshi.png', 0.9, use_gray=True, show_value=False)):
for battle in range(25): #5秒A連射
self.press(Button.A, 0.1, 0.1) # Aボタンを押すcount -= 1 #回収カウントダウンを-1する
PP -= 1 #PPカウントダウンを-1する
print("戦闘終了")
# 道具回収
if(count <= 0):
self.press(Button.X, 0.1, 0.3) # Xメニューを開く
#self.press(Hat.BTM, 0.1, 1.1) # ↓カーソル移動
self.press(Button.A, 0.1, 0.3) # Aポケモンを開く#1匹目
#「あまいかおり」役なので何もしない
#2匹目
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動
if( self.isContainTemplate('FRLG_item.png', 0.9, use_gray=False, show_value=False)):
self.press(Button.A, 0.1, 0.4) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.4) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.9) # Aあずかりました! or もっていません!
self.press(Button.B, 0.1, 0.4) # B選択終了
#3匹目
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動
if( self.isContainTemplate('FRLG_item.png', 0.9, use_gray=False, show_value=False)):
self.press(Button.A, 0.1, 0.4) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.4) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.9) # Aあずかりました! or もっていません!
self.press(Button.B, 0.1, 0.4) # B選択終了
#4匹目
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動
if( self.isContainTemplate('FRLG_item.png', 0.9, use_gray=False, show_value=False)):
self.press(Button.A, 0.1, 0.4) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.4) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.9) # Aあずかりました! or もっていません!
self.press(Button.B, 0.1, 0.4) # B選択終了
#5匹目
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動
if( self.isContainTemplate('FRLG_item.png', 0.9, use_gray=False, show_value=False)):
self.press(Button.A, 0.1, 0.4) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.4) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.9) # Aあずかりました! or もっていません!
self.press(Button.B, 0.1, 0.4) # B選択終了
#6匹目
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動
if( self.isContainTemplate('FRLG_item.png', 0.9, use_gray=False, show_value=False)):
self.press(Button.A, 0.1, 0.4) # Aつよさをみる
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(やめる)
self.press(Hat.TOP, 0.1, 0.3) # ↑カーソル移動(もちもの)
self.press(Button.A, 0.1, 0.4) # Aバッグをひらく
self.press(Hat.BTM, 0.1, 0.3) # ↓カーソル移動(バッグへもどす or やめる
self.press(Button.A, 0.1, 0.9) # Aあずかりました! or もっていません!
self.press(Button.B, 0.1, 0.4) # B選択終了self.press(Button.B, 0.1, 1.1) # Bメニューに戻る
self.press(Button.B, 0.1, 0.8) # Bメニューを閉じる
count = 5 #カウントを5に戻す
print("回収")#PP回復
if(PP <= 0):#備考:結界のマスは野生が出ない=「あまいかおり」無効
self.press(Hat.TOP, 0.5, 1.2) # ↑移動(結界に入る)
self.press(Button.A, 0.1, 0.9) # Aけっかいへ はいった!
self.press(Button.B, 0.1, 0.1) # Aげんきに なった!
self.press(Hat.BTM, 0.5, 0.6) # ↓移動(結界から出る)
PP = 15 #カウントを10に戻す
print("回復")