チート・補助ツール

  • 効率的に焼くためのアドバイスが欲しいとき
  • 技術的な仕組みに興味があり、意図的にある動作を引き起こしたい時
  • さっさと終わらせて満足したい場合
  • フリーズ状態からセーブデータを確保したい、又は破損したセーブデータを修復したい時
そんな時には、これらを試してみてはいかがです?
※注:GoogleChrome でコンソール入力し「Uncaught ReferenceError: Game is not defined」とエラーが出た場合、
ゲーム画面をリロードしてから再入力すること。


Cookie Clicker シミュレーター

専用ページで動く Web シミュレーター。プログラムやデータを改竄することはない(= チートではない)ので、気軽に使える。
施設や強化アイテムを任意に設定し、CpS の変化などを調べ、比較することが出来る。
また現在の状況(セーブデータ)を入力すれば、次にどれを購入すれば効率がいいのかを示してくれる。
Riimu's Cookie Clicker Optimizer
有志によって作成された CookieClicker のシミュレータ。v .1.0466 対応。
次に買うべき施設が分かり、更にデータのバックアップ(サーバー管理なので、URL を保存すれば他ブラウザでも対応)もできる。
クリック連打速度を計り、生産量をシミュレートする「Clicking Speed Test」もある。
Cookies Calculator
v. 2.031 対応のシミュレーター。新バージョンでは施設の生産力計算がややこしいので利用しない手はない。
アプグレやオーラの付け替え、秒間クリック数の指定による生産量の変化等、色々なことが比較検討できる。
「Top 5 recommended purchases:」では、次に購入すべきものトップ 5 を表示。
施設計算に特化した「Cookies Building Price Calculator」もある。


コード使用の前知識

多くは JavaScript で作られており、プログラムである以上、悪質なユーザーによる有害スクリプトを実行してしまう可能性がある。
また、本家向けに作られたツールなどは、日本語バージョンでは動作保障されない。
すべては自己責任で! よく解らないものには手を出さない!

ブックマークレットの作り方

ブックマークレットとは、ブラウザのブックマークから起動するコンパクトなプログラムのこと。
URL の代わりに小さな JavaScript プログラムを入れたブックマークを開くだけで、表示中のページに対し処理が実行される。
ブックマークバーなどに登録し、直ぐに実行できるようにしておけば、強力なブラウジング補助になる。
複雑な処理を行わせる場合は、外部サイトにメインスクリプトを用意しておき、ブックマークレットで呼び出し用スクリプトを実行させる。
  1. 各ブラウザでブックマークを作成
  2. 名前は適当で良い(分かりやすい名前で)
  3. URL に JavaScript プログラムを書き込む
  4. 必要に応じてブックマークバーなどに登録しておく
  5. ブックマークをクリックすれば URL に書かれたスクリプトが起動

JavaScript コンソール

本来は JavaScript プログラムのデバッグを行うためのツール。
対話的なインターフェイスで、式を評価したり関数を呼び出したりすることができる。
ゲームシステム内の変数を書き換えることもできる。

ブラウザによって出し方が異なる。
Google Chrome
右上のメニュー → ツール → JavaScript コンソール
またはショートカットキー Control + Shift + J
Firefox
メニュー → Web 開発 → 開発ツールを表示
またはショートカットキー Control + Shift + K
Internet Explorer 10
右上のメニュー → 「F12 開発者ツール」 → 「コンソール」タブ
またはショートカットキー F12 → 「コンソール」タブ
Opera
ショートカットキー Control + Shift + I → 「Console」タブ

コンソール上で式を入力し Enter を押せば、式が評価(Evaluation = 計算)され、評価結果が表示される。

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
v.2.01 より、コンソールを開くと作者からのメッセージがランダムでログに表示されるようになった。つま先様がみてる
  • Oh, hello!
  • hey, how's it hangin
  • About to cheat in some cookies or just checking for bugs?
  • Remember : cheated cookies taste awful!
  • Hey, Orteil here. Cheated cookies taste awful... or do they?
  • おっ、こんちはー!
  • どう、調子バッチグー? ※「調子はどう?」の死語的表現らしいので。
  • なになに、チートするの?それとも只のバグチェック?
  • 忘るべからず:ズルして作ったクッキーは不味い。
  • へーい、Orteil だよー。ズルして作ったクッキーは不味い…それともぉ?


多機能ツール(Third-party Add-ons)

クッキーを効率よく焼くための様々な機能を追加するツール。2019/10/15 現在、開発が続いているのは以下の 2 つ。
どちらも使用すると隠し実績「Third-party」を得る。

※ゲーム更新直後は機能しないことがよくある。慌てず騒がずツールのバージョンアップを待つこと。
未対応バージョンでは「Third-party」実績が解除されないことにも注意。


Cookie Monster

リンクはこちら : Cookie Monster

各種詳細情報を開示するナビゲーター的なツールである。自動化、改竄等のチート機能は無い。
カラフルで視認性に優れ、設定項目は多いがデフォルト状態でも特に問題はない。
ゴールデンクッキー監視機能が特に充実しており、出現予告やチャイム音等で見逃すことは先ずなくなるだろう。

下の文を URL に指定したブックマークレットを作成。V.2.031 対応。
javascript:(function() {
    Game.LoadMod('https://cookiemonsterteam.github.io/CookieMonster/dist/CookieMonster.js');
}());
V.1.0466 対応。
javascript:(function() {
   Game.LoadMod('https://cdn.rawgit.com/Aktanusa/CookieMonster/1.0466.1/CookieMonster.js');
}());

主な機能

  • 施設・アップグレードを効率的な購入順に色別マーキング(青・緑>黄>橙>赤・紫 灰色アプグレは効率計算外)
  • CpS 連動に依る、購入可能になるまでの時間予告
  • Lucky(Frenzy)等の GC 効果を最大限に得る為の Bank 表示及び管理
  • 各種タイマー(次の GC 出現、次のトナカイ出現、GC 効果の残り時間)
  • ゴールデンクッキー出現時にチャイム音や画面フラッシュ、消えるまでのカウントダウン表示
  • Wrinkler が蓄えているクッキー量の表示(個別 / 全体)、虫を一掃する「Pop All」ボタン  …など

※画像クリックで拡大
(1)GC & トナカイタイマー : タブにもある。
(2)個々の貯蓄量 : オンマウスで表示。
(3)全虫の貯蓄量 : 一掃すると得られるクッキー数。
(4)GC 消滅カウントダウン
オンマウスによる詳細「追加」情報
(1)Bonus Income : 購入する事で増える全体 CpS。シナジー分も計算の内。
(2)Payback Period : Bonus Income に対し、購入費の元を取れるまでの期間。この数値が低いほど効率が良い。
(3)Time Left : 購入可能になるまでの時間。「Done !」で満了。
(4)Warning : いま購入すると Max Lucky に必要最低限の Bank を割ってしまう警告。
(5)Caution : いま購入すると Max Lucky(Frenzy)に必要最低限の Bank を割ってしまう注意。


Frozen Cookies

オリジナルサイト: http://icehawk78.github.io/FrozenCookies/
オリジナルは2014年頃で更新が止まっており、大量の派生バージョンが作成されている。
2019年秋現在、比較的アップデートされているバージョンがこちら
V2.022動作確認済 : https://github.com/Mtarnuhal/FrozenCookies

各種詳細情報開示+自動化ツール。パラメーターを直接改竄するようなチート機能はない。
自動化は全て ON / OFF 切り替え式で、必要に応じて選択可能。勿論一切使わないのもあり。
Cookie Monster に較べ視覚的にはシンプル。自動購入設定には少々工夫が必要。

下の文を URL に指定したブックマークレットを作成。V.2.021 に対応。Fortune News自動クリック、次の GC 出現、GC 効果の残り時間の描画OFF/テキスト表示のみ/グラフ表示のみ/全て表示
javascript:(
    function () {
        Game.LoadMod('https://mtarnuhal.github.io/FrozenCookies/frozen_cookies.js');
    }()
);

主な機能

  • 施設・アップグレードを効率的な購入順に画面中央情報欄にリスト化
  • CpS 連動に依る、次の目標が購入可能になるまでの時間予告
  • Lucky(Frenzy)等の GC 効果を最大限に得る為の Bank 表示及び管理
  • 各種タイマー(次の GC 出現、GC 効果の残り時間、次の目標購入、連鎖買いの目標(※)購入)
    (※)連鎖買い:施設強化アプグレや保有数関連の実績獲得の為、特定施設のみを目標数まで連続購入する仕組み。
  • 全 Wrinkler が蓄えているクッキー総量の表示
  • CpS と稼いだ HC の推移をグラフ化
  • 大クッキーを任意の秒間数で自動クリック(常時 / ClickFrenzy, DragonFlight 時のみ)
  • ゴールデンクッキー・トナカイ・虫・Fortune News それぞれの自動クリック
  • 施設・アップグレードを効率順に自動購入
  • Ascend 時、自動的に虫一掃・施設全売却・Chocolate egg 購入  …など

※画像クリックで拡大
Autobuy Information : 次の目標の情報が表示される。
高 PrestigeLevel で Ascend 直後、自動連打数を高く設定などの状況下では、計算が追いつかずに反映が遅くなりがち。

左の画像では、Lux sanctorum を連鎖買いの目標とし、Prism を 200 まで連続購入している。
購入リスト : ブラックリスト設定に応じてリスト内容も変化する。
ゲーム開始直後は全アプグレが並ぶのでとにかく長い。高 CpS だと総じて重い。

Infinity は極めて非効率もしくは効率計算外で、通常は自動購入の対象にはならない。
リスト最下(*)が付いているのは、現在の Bank 状況とグランマの状態。
キーボードの「W」を押すと、虫一掃ボタン&得られるクッキー合計のポップアップ表示。

設定

モードの切替は各項目を複数回クリック。
設定 機能
Autobuy ON/OFF 施設、アップグレード等を自動購入する/しない
Auto Ascend ON/OFF 指定した HC 数に達したら自動アセンドする/しない。※但し永久アプグレの購入は不可(後述)。
Auto Bulkbuy x100/x10/OFF 主にアセンド直後に施設をまとめ買いする/しない。セットしていても必要あれば1個買いする
Autoclick GC ON/OFF Golden Cookieが出現したら自動クリックする/しない
Autopop Wrinklers Wrinkler(Grandmapocalypseの虫)の自動撃退をする/しない
OFF: 撃退しない
Efficiently: クッキー取得量最大になるよう撃退
※ イースター、ハロウィンの季節アップグレード自動収集中は設定が無視され即撃退になる
Instantly: 出現したら即撃退
Auto HarvestSL ON/OFF 砂糖が完熟したら自動収穫する/しない。以下 ON + Rigidel について。
(1)Rigidel 未セット且つ Worship 残り 2 以上
完熟 1 時間前にダイヤスロットに Rigidel セット、カーソルを適宜売却して有効化、収穫後スロットから外し元に戻す。
(2)Rigidel セット済
装着スロットの種類に応じ、適切な時間にカーソルを適宜売却して有効化する。
Autoclick Reindeer ON/OFF クリスマスにトナカイが出現したら自動クリックする/しない
Autoclick ON/OFF 大クッキーの自動クリックする/しない。秒何回クリックするか指定可能
Autofrenzy ON/OFF GCによるFrenzy発生中のみ大クッキー自動クリックする/しない。秒何回クリックするか指定可能。AutoclickがONの場合はほぼ意味が無い
Auto Blacklist ON/OFF ブラックリストの目標達成した後に、ブラックリストを無効(No Blacklist)にする/しない。
Speedrun Blacklist, Hardcore Blacklist がその対象となる。Grandmapocalypse Modeでも機能するが後述。




No Blacklist 制限一切なく、効率計算に基づき自動購入する(一部アプグレを除く)。
Speedrun Blacklist Heavenly Chips 系 Upgrades を購入しない。実績「Speed baking」専用。
Hardcore Blacklist Upgrades を購入しない。実績「Hardcore」用でもある。
Grandmapocalypse Mode Grandmapocalypse関連研究アイテムの購入制限。詳細は後述。
No Buildings 施設を購入しない。
Pastemode ON/OFF 最も効率の低いものから購入する/しない。通常はOFFで固定。
GoldenCookies Efficiency GC を 100% / 0% 取得するものとして効率計算をする。GC 自動取得 ON ならば 100% で固定。
FPS 24 ~ 300 に変更可能、デフォルトは 30 で通常は固定。詳しくはこちら
Logging ON/OFF 購入等のイベントログを JavaScript コンソールに表示する/しない。
Tracking ON/OFF CpS 及び稼いだ HC の推移を選択時間毎にグラフ化する/しない。ON で時間選択。
メモリ消費が激しいので、ゲームが重くなるなら OFF にしよう。
Auto-Switch ON/OFF Click frenzy / Dragonflight 発動に合わせてゴールデンスイッチ切替する/しない。
スイッチを常用する場合はOFFで固定。
Auto-Godzamok ON/OFF Click frenzy / Dragonflight に合わせてGodzamok を発動する/しない。発動はカーソル&ファーム全売却(ファームは1軒のみ残す)で行い、すぐに同量を買い戻す。
(1)ON
Click frenzy / Dragonflight中にGodzamok効果が切れたら再発動を行う。
(2)ON (Sane)
Click frenzy / Dragonflight発生直後の1回のみしかGodzamokを発動しない。
(3)ON (REALLY INSANE)
Click frenzy / Dragonflight中はGodzamok中でもひたすら全売却/再購入を繰り返す(倍率アップ)。
※2019年10月下旬からどのモードも"ON"の動きをするようになった(ソースコード確認したがモードの区別していない)
Cursor Limit ON/OFF Godzamok向けにカーソル施設数を制限する/しない。上限カーソル数を指定(デフォルト 500)
Farm Limit ON/OFF Godzamok向けにファーム施設数を制限する/しない。上限ファーム数を指定(デフォルト 500)
Auto Cast ON/OFF MP 最大時に自動詠唱する/しない。ON で呪文選択。
Conjure Baked Goods, Force the Hand of Fate のオプション : トリガーで指定した CpS 倍数時に詠唱。
※ Frenzy 中に詠唱ならトリガーを「7」、最低でも Clot 除外するには「1」。
Auto Fortune ON/OFF Fortune Newsを自動クリックする/しない。
SE Bank ON/OFF Spontaneous Edifice 用のバンクを保持し、400 個めの Fractal engine を自動売却する/しない(Auto Cast で 同呪文を選択している場合)。
Wizard Tower Cap ON/OFF MaxMP が指定した値に達したら、これを維持する為に Wizard Tower の購入を止める/止めない。
※デフォルトは 100。MaxMP が 100 を超えると詠唱効率が低下する為。
Harvesting Bank 畑の作物(Bakeberry など)収穫用のバンクを保持する/しない。ON で品種を選択。
Harvesting Scenario Harvesting Bank に適用する CpS 倍率(ブースト無し, Frenzy, Building special, Frenzy + BS)。
※ BS は所有数が最も多い施設を参照。オプションで重ねがけする数の指定。
Default Season 季節関連アプグレ全て購入後、選択した季節にアセンドするまで固定(要 Season switcher)。
No graphic 次の GC 出現、GC 効果の残り時間グラフ・テキストの表示切り替え。(V2.019対応版まで非表示に出来なかった。)

留意点

(1)ドラコン育成は手動
サンタ育成は自動化に対応しているが、ドラゴンは購入・育成・オーラ装着全て手動で行うこと。
(2)自動アセンド
永久アプグレ画面をすっ飛ばすので、そのまんま隠しレガシー対策には使えない。
少しずつアセンドして目標値を達成するとか。実績目当ての連続アセンドにはとても有用。
(3)自動 Godzamok
追加売却分の倍率も加算されるので、まとめ買い 100 に設定しておくとお得。
REALY INSANEモードではひたすら全売却、買い戻しをするのでCursor/Farm Limit で施設数を抑えておかないと売買差額の損失が大きくなる。
V.2.016 対応版では Farm が餌に追加。ミニゲーム保護に一つだけ残して全売りする。
(4)自動購入対象外アイテム
Shimmering veil, Sugar Frenzy, Chocolate Eggの3つはプログラム内で明示的に自動購入対象外に設定されている。他にも効率計算の結果として自動購入対象になり得ないアイテムが幾つか存在する(例:Elder Covenant)。『あれ?自動購入しないな』と思ったらfrozen cookies画面下方にあるInternal Informationの購入候補リストを見る事。Efficiencyが"Infinity"になっているアイテムが自動購入されることは基本的にない。
(5)Blacklist の Grandmapocalypse Mode について
(a) "Grandmapocalypse Mode"ではババアポカリプス関連アイテムの幾つかがブラックリスト入りし自動購入から外れる。初期の研究アイテムは自動購入するがOne mindが出現したところで研究が中断、以降を進めるにはその都度研究アイテムの手動購入が必要になる。最後まで研究を進めるとElder Pledgeもブラックリスト入りしているため自動購入せず結果的にAngered(怒り)状態が維持される。
"Auto Blacklist ON"にしていると季節アップグレード収集完了を条件に自動で"No Blacklist"に切り替わる。
(b) "No Blacklist"等他のモードではGrandma能力向上効果取得のために研究アイテムを自動購入していく。最後まで研究が進んだ後は各怒りレベルの効率計算結果(frozen cookies画面の最下に表示)に従って最も効率の良い怒りレベルにしようとする。基本的に高連射で"Autoclick ON"だとAppeased(なだめ)状態が高効率なのでElder Pledgeを買い続け、"Autoclick OFF"ではAngered状態が高効率なのでElder Pledgeを買わないようになる(なおSacrificial rolling pinsは出現しても自動購入しないので必要なら手動購入)。
(c) 以上より高連射"Autoclick ON"でAngered状態を維持したいなら"Grandmapocalypse Mode"にしてElder Pledge購入を止める必要がある。しかし最初から設定しっ放しでは研究アイテムが自動購入されずそもそもAngered状態にならないため、何らかの手動介入が必須となる。
(6)季節アップグレード自動収集
季節アップグレードはSeason Switcherを自動使用して季節を順番で巡っていき全て収集しようとする。季節を巡る順番やタイミングは未入手アップグレードの効果と入手コストから効率計算された上で決定される。現季節のアップグレード全収集が優先されるので特定季節の収集を優先させたければ季節を手動スイッチすれば良い。
ハロウィン(イースター)はWrinker撃退がアップグレード出現条件(のひとつ)であるが、前項の通り自動ではAngered維持状態にならない事があり、そうなるとアップグレード入手不可能(困難)なまま収集が止まってしまう。その際は手動介入を行ってAngered維持状態にする。収集完了後にAppeasedにしたければ"Auto Blacklist ON"にしておくとよい(Angered継続なら"Auto Blacklist OFF")。
季節アップグレード自動収集は"Deafult Season"設定より優先されるため『"Default Season"設定してるのに勝手に季節が切り替わっちゃう』と見える事がある。


農園補助ツール Cookie Garden Helper


農園での品種改良や育成を半自動化して補助するツール。
基本的な使い方としては、まず手動で種播きを行って作付け状態を記録する。
その後はツールが作付け状態をできるだけ維持しながら育成や刈り取り、種の播き直し、新品種の種子収集を実行してくれる。

下の文ををURLにしたブックマークレットを作成
javascript: (function () {
    Game.LoadMod('https://rawgit.com/yannprada/cookie-garden-helper/master/cookie-garden-helper.js');
}());

農園施設画像下部 Mute ボタン横に[Cookie Garden Helper]ボタンが出現するのでクリックすればコントロールパネルが開く。
Auto-harvest ON/OFF: 刈り取り機能全体のON/OFF
農園の作物がある各マスに対して、以下のONになっている項目を上から順に判断、刈り取り処理を実行する
Avoid immortals ON/OFF 不死品種なら何もせず処理は終了
young:Remove weeds ON/OFF 結実前の雑草なら刈り取る
young:Clean Garden ON/OFF 作付け記録(後述)側が空きマスの場合、結実前の種子収集済み品種なら刈り取る
作付け記録側が空きマスでない場合、記録と異なる結実前品種であれば刈り取る
mature:New seeds ON/OFF 結実済みで、種子未収集の新品種なら刈り取る
mature:Check CpS mult ON/OFF 結実済みで、現在のCpS倍率が指定値以上なら刈り取る
dying:Check CpS mult ON/OFF 枯死間際で、現在のCpS倍率が指定値以上なら刈り取る
dying:Dying plants ON/OFF 枯死間際で、最後のtick5秒前なら刈り取る
Auto-plant ON/OFF: 種播き機能のON/OFF
農園の空きマスに対して、作付け記録に合わせて種を播く。空いていないマスには何もしない。Auto-harvestの後に実行される
Check CpS mult ON/OFF 現在のCpS倍率が指定値以下の場合のみ種を播く
save plot 現在の農園の状態を作付け記録としてセーブする。
"plot saved"の文字上にカーソルを置くと作付け記録が確認できる
Manual tools: 全播き機能
播きたい種をセレクトした状態で"Plant selected seed"をクリックすると現在の農園の空きマス全てに種を播く。
終了後に種のセレクト解除を忘れないこと

例) 交配して新品種の種を得る

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
  1. Auto-harvest OFF, Auto-plant OFF
  2. 手動で種播きして交配用の配置に作付けする
  3. "save plot"で作付け状態記録
  4. 設定は以下のようにする
    ・Avoid immortals OFF
    ・young:Remove weeds ON
    ・young:Clean Garden ON
    ・mature:New seeds ON
    ・mature:Check CpS mult OFF
    ・dying:Check CpS mult OFF (ONにして適当なCpS倍率で刈っても可)
    ・dying:Dying plants ON
    ・Auto-plant: Check CpS mult ON (Maxi CpSは1を標準に安い時を狙うなら小さい値に、高くても早く播き直したいなら大きい値に)
  5. Auto-harvest ON, Auto-plant ONにして放置、新品種の種が穫れたか時々チェック

例) Elderwort収穫時のドロップクッキー取得

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
  1. Auto-harvest OFF, Auto-plant OFF
  2. 手動で農園全面にElderwortの種を播く。Manual toolsを使うと楽。
  3. "save plot"で作付け状態記録
  4. 設定は以下のようにする
    ・Avoid immortals OFF
    ・young:Remove weeds ON (OFFでも可)
    ・young:Clean Garden ON (OFFでも可)
    ・mature:New seeds OFF (ONでも可)
    ・mature:Check CpS mult ON (Mini CpSは0.1等小さい値をセット)
    ・dying:Check CpS mult OFF (ONでも可)
    ・dying:Dying plants ON (一応ON)
    ・Auto-plant: Check CpS mult ON (Maxi CpSは1を標準に安い時を狙うなら小さい値に、高くても早く播き直したいなら大きい値に)
  5. Auto-harvest ON, Auto-plant ONにして放置、クッキーが入手できたか時々チェック

例) Duketaterを高倍率CpS時に収穫

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
  1. Auto-harvest OFF, Auto-plant OFF
  2. 手動で農園全面にDuketaterの種を播く。Manual toolsを使うと楽。
  3. "save plot"で作付け状態記録
  4. 設定は以下のようにする
    ・Avoid immortals OFF (ONでも可)
    ・young:Remove weeds ON (OFFでも可)
    ・young:Clean Garden ON (OFFでも可)
    ・mature:New seeds OFF (ONでも可)
    ・mature:Check CpS mult ON (Mini CpSは収穫したいCpS倍率をセット)
    ・dying:Check CpS mult ON (Mini CpSは枯死するよりは収穫した方が良い数値に。7とか)
    ・dying:Dying plants ON (最低限枯死直前には収穫)
    ・Auto-plant: Check CpS mult ON (Maxi CpSは1を標準に安い時を狙うなら小さい値に、高くても早く播き直したいなら大きい値に)
  5. Auto-harvest ON, Auto-plant ONにして放置



任意のセーブデータを作成する

セーブデータを失ったときなどに。
Cookies Save Editor
V. 2.031 対応。統計欄に記載されていない隠しデータまで見られます。Sugarlump 変種の早期確認に便利。



開発者モードを開く(チートをせずにチート実績を得る)

ベーカリーの名前を「(名前+半角スペース) saysopensesame 」と入れる。  例: BBA saysopensesame
すると、ツール用パネルが開くと同時に「Cheated cookies taste awful」の実績を得る。

コンソールからのパラメーター改竄をせず、バニラのままでチート実績が取れてしまう。
※画像クリックで拡大



JavaScript で直接いじる

このゲームは JavaScript で記述されており、プログラミングの知識があれば比較的簡単に色々いじれる。
JavaScript コンソールを開き、変数を書き換えたり関数を実行することで、思い通りの状態を作り出せる。

プログラムのソースコード

メインのソースコードはこれ。
http://orteil.dashnet.org/cookieclicker/main.js

作者コメント(HTML ソースより)
<!--
Code and graphics copyright Orteil, 2013-2016
Feel free to alter this code to your liking, but please do not re-host it, do not profit from it and do not present it as your own.
-->
【 訳 】
このゲームのコードは、あなたの好きなように変えても構いません。
ただし、そのプログラムを外部サイトで実行できるようにしたり、
そのプログラムで利益を得たり(商業利用したり)、
あたかもあなたが作ったような表現をするのはやめてください。




JavaScript コンソールで実行できる関数


1. デバッグ関連

開発者モード

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
saysopensesame をコンソールから実行。
Game.OpenSesame();
勿論、隠し実績「Cheated cookies taste awful」がつくので注意。やるならバックアップを取ってから。

デバッグ用アップグレード解禁

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
チート無しでは手に入らないデバッグ用アップグレードを全て手に入れる。
Game.GetAllDebugs();
同時に通常・プレステージアップグレードも無効状態で全て入手する。有効化するには各アプグレアイコンをクリック。

一瞬で最強にする(Ruin the fun)

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
公式に一瞬でゲーム状態を最強にする関数が用意されている。
実行すると、全アップグレード(デバッグアイテム含む)・全実績(隠し含む)・1 nonillion クッキー・999,999 PL & HC を得る。
Game.RuinTheFun();
関数名どおり全ての楽しみが一瞬でぶち壊しになる。おめでとう。これで君は解放された。




2. クッキー関連

手持ちのクッキーを増やす

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
クッキーの所持数(Cookies in bank)は Game.cookies という変数で管理されており、これをいじれば好きに変更可能。
Game.cookies = 【クッキーの所持数】 ;
例:Game.cookies = 999999999;
ここで設定した数が累積生産数(Cookies baked all time)を超え、値の関係に不整合が生じると、
隠し実績「Cheated cookies taste awful」を得る。

絶対量を指定するのではなく、相対的に増加 / 減少させたい場合。
Game.cookies += 【増やすクッキーの数】 ;
Game.cookies -= 【減らすクッキーの数】 ;

Earn 関数を使うと、累積生産数のカウンターも増やしてくれるので「Cheated cookies taste awful」を取得せずに済む。
Game.Earn( 【増やすクッキーの数】 );

CpS を指定した数にする

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
下の関数の [   ] の中に任意の CpS の数値を入れる。但し、施設やアプグレを購入すると、本来の CpS に自動修正されてしまう。
Game.cookiesPs = [ 【CpS】 ];

大クッキーの自動クリック

※注:ゲーム画面がアクティブでないと、大クッキーの自動クリックは無効。
 ブラウザ最小化や、別タブをメインにしていると機能しない。小窓でいいので常にゲームを開いておくこと。

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
クッキーを自動でクリックするには、次の関数を呼び出す。
Game.ClickCookie();
setTimeout 関数などを用いれば定期的に自動クリックすることが可能になる。
setInterval(function(){ Game.ClickCookie(); }, 1000);
これは 1000ms = 1 秒間隔で 1 回自動クリックするコード。「1000」を任意の数値に書き換え、クリック間隔を変更可能。
但し、その最低値は「4」である。つまり、秒間 250 回以上のクリックは無効。

説明すると、この関数のソースコードは以下のようになっている。
Game.ClickCookie=function()
{
	if (new Date().getTime()-Game.lastClick<1000/250)
	{
	}
	else
	{
		if (new Date().getTime()-Game.lastClick<1000/15)
		{
			Game.autoclickerDetected+=Game.fps;
			if (Game.autoclickerDetected>=Game.fps*5) Game.Win('Uncanny clicker');
		}
		Game.Earn(Game.computedMouseCps);
		Game.handmadeCookies+=Game.computedMouseCps;
		if (Game.prefs.particles) Game.cookieParticleAdd();
		if (Game.prefs.numbers) Game.cookieNumberAdd('+'+Beautify(Game.computedMouseCps,1));
		Game.cookieClicks++;
	}
	Game.lastClick=new Date().getTime();
}

if (new Date().getTime()-Game.lastClick<1000/250) の条件判定により、
前回のクリックから 1000/250 = 4 ms 未満の場合は処理が行われない。
よって、理論上可能なのは最大秒間 250 クリックである。

また
		if (new Date().getTime()-Game.lastClick<1000/15)
		{
			Game.autoclickerDetected+=Game.fps;
			if (Game.autoclickerDetected>=Game.fps*5) Game.Win('Uncanny clicker');
		}
この部分では実績 'Uncanny clicker' のための、クリック速度の判定を行っている。
ソースコードによれば、
  • 1000/15 = 66.6 ms 未満の間隔でクッキーがクリックされたときのみ「素早いクリック」と判定
  • 「素早いクリック」の場合にはカウンタ Game.autoclickerDetected に fps (デフォルト 30) を加算
  • カウンタが fps * 5 (デフォルト 150) 以上になれば実績 'Uncanny clicker' を獲得
  • 毎フレーム呼び出される Game.Logic 関数により Game.autoclickerDetected はデクリメントされる (下限は 0)
となっている。

「素早いクリック」の条件のため、実績解除の為には長くとも 66.6 ms 以内の間隔で連打しなければならない。
(1 秒間に 15 回のペース)
このペースで 7 回連打すれば(注: 植木算)
  • 66.6 ms * 6 = 400 ms
  • 400 ms の間に Game.autoclickerDetected への加算 30 * 6 = 180
  • 400 ms の間に Game.Logic() による Game.autoclickerDetected の減算 -13
  • 180 - 13 >= fps * 5 となり条件を満たす
よって、400 ms に 7 回以上クリックが実績 'Uncanny clicker' 解除の目安である。

自動クリック限界突破型

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
大クッキーを理論的には秒間 1000 クリック(多重発動可)。ブックマークレット形式。
javascript:(function(){
  setInterval(function() {Game.ClickCookie(); Game.lastClick=0; }, 1000/1000);
})();

CpC 強化効果発動中のみ自動クリック

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
V. 2.0042 対応、ブックマークレット形式。Click frenzy / Dragonflight / Cursed finger / Elder frenzy の間のみ、秒間 6.67 クリック。
秒間クリック数を変更するには、クリック間隔「var clickInterval = 150;」の数値を書き換える。※ コメントを参考に修正しました。
javascript: (function() {
  var clickInterval = 150;
  var autoClicker = setInterval(function() {
    var hasClickFrenzy = (Game.hasBuff('Click frenzy'));
    var hasDragonFlight = (Game.hasBuff('Dragonflight'));
    var hasCursedFinger = (Game.hasBuff('Cursed finger'));
    var hasElderFrenzy = (Game.hasBuff('Elder frenzy'));
    var hasClickBuff = hasClickFrenzy || hasDragonFlight || hasCursedFinger || hasElderFrenzy;
    if (hasClickBuff) {
      Game.ClickCookie();
    }
  }, clickInterval);
  var clicksPerSecond = 1000 / clickInterval;
  var message = "Cookie will be auto-clicked during click buffs. Clicks per second: ";
  message += clicksPerSecond.toFixed(2);
  console.log(message);
}());



3. ゴールデンクッキー関連

※注:V. 2.002 で GC の処理方法が変わり、従来のコードは無効になった。
 GC とトナカイが一括制御される仕様に変更。 V. 1.0466 以前に対応の旧式コードは、このページ最下部。

ゴールデンクッキー&トナカイ自動クリック

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
V. 2.002 対応、ブックマークレット形式。
javascript:(function() {
  setInterval(function(){for (var i in Game.shimmers) { Game.shimmers[i].pop(); }}, 500);
}());

ゴールデンクッキー or トナカイ即出現

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
従来と違い、V. 2.002 では隠し実績「Cheated cookies taste awful」が付かない。
「Types.golden」を「Types.reindeer」に変更すれば、トナカイ版になる。
Game.shimmerTypes.golden.time = Game.shimmerTypes.golden.maxTime;

ゴールデンクッキー or トナカイ自動発生(20 秒周期)・自動クリック

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
V. 2.002 対応、ブックマークレット形式。周期を変更するには「20000」の数値を書き換える。
こちらも「Types.golden」を「Types.reindeer」に変更すれば、トナカイ版になる。
javascript:(function(){
  setInterval(function() {
    Game.shimmerTypes.golden.time = Game.shimmerTypes.golden.maxTime;
    /*Game.shimmers.forEach(function(shimmer){shimmer.wrath = 0});*/
    Game.shimmers.forEach(function(shimmer){shimmer.pop()});
  }, 20000);
})()

CpC 強化効果発動でゴールデンスイッチ自動 ON / OFF

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
V. 2.002 対応、ブックマークレット形式。Click frenzy / Dragonflight 発動中のみ、ゴールデンスイッチ ON(Tips)。
※ 7 倍など CpS 効果が継続中でもスイッチが OFF になる仕様。連打力が高いなら、早めに切って GC 回転率を上げる方が効率的。
javascript: (function() {
  setInterval(function() {
    function isBuffStarting(buffName, buffBaseTime) {
      var alertTime = buffBaseTime - 1;
      alertTime = alertTime * Game.fps;
      return (Game.hasBuff(buffName) >= alertTime);
    }
    var isClickBuffStarting = (isBuffStarting('Dragonflight', 22) || isBuffStarting('Click frenzy', 29));
    var hasClickBuff = ((Game.hasBuff('Dragonflight') > 0) || (Game.hasBuff('Click frenzy') > 0));
    if (isClickBuffStarting) {
      if (!Game.Upgrades['Golden switch [off]'].bought) {
        Game.Upgrades['Golden switch [off]'].buy();
      }
    } else if (!hasClickBuff) {
      if (!Game.Upgrades['Golden switch [on]'].bought) {
        Game.Upgrades['Golden switch [on]'].buy();
      }
    } else {}
  }, 1000);
  var message = "The golden switch will be toggled during click frenzies.";
  console.log(message);
}());

Cookie storm を常に抽選対象から外す

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
重くてプレイに支障が出る・見た目が生理的に受け付けない人向け。ブックマークレット形式。
javascript:(function () {
   window.choose = function (arr) {
       if (arr.includes("cookie storm"))
           arr = arr.filter(function (choice) {
               return choice != "cookie storm"
           });
       return arr[Math.random() * arr.length | 0]
   }
}());

任意 Golden cookie 召喚

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
任意の効果を発動する。Building special で選択される施設の選択が今後の課題。
var newShimmer=new Game.shimmer("golden");
newShimmer.force=kind;
newShimmer.pop();
上記の変数 kind に下記のキーワードを代入。blood frenzy は Elder frenzyを 示す。
====== キーワード一覧 =====
"cookie storm"
"cookie storm drop"
"dragonflight"
"click frenzy"
"cursed finger"
"clot"
"blood frenzy"
"ruin cookies"
"multiply cookies"
"everything must go"
"dragon harvest"
"frenzy"
"building special"
"free sugar lump"
"blab"
"chain cookie"

Cookie storm 召喚

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
Cookie storm を発動し、出現した Golden cookie を自動回収する。回収できる量はPCの処理能力に依存。イースターエッグを一瞬でコンプリート可能。
 var newShimmer=new Game.shimmer("golden");
 newShimmer.force="cookie storm";
 newShimmer.pop();
 
 var count_CSD_click=0;
 new Promise(function(){
 var click_CS_drop=setInterval(function(){
   for (var i in Game.shimmers){
     Game.shimmers[i].pop();
     count_CSD_click++;
   };
   console.log("Clicking CS_drops. clicked=",count_CSD_click);
   if(Game.hasBuff("Cookie storm")==0){
     clearInterval(click_CS_drop);
     console.log("CS is finished. Total clicked CS_drops = ",count_CSD_click);
     Game.Notify("Cookie Storm is finished.","Total clicked CS_drops = "+count_CSD_click)
   };
 },250);
})

季節にかかわらずデフォルトの GC / RC のグラフィックを使用する

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
見やすさを重視したい場合に。ブックマークレット形式。
 javascript:(function(){
   Game.shimmer.prototype.init=function(){
     Game.shimmerTypes[this.type].initFunc(this);
     var bgPic=this.wrath?'img/wrathCookie.png':'img/goldCookie.png';
     this.l.style.backgroundImage='url('+bgPic+')';
   }
 })();



4. ババアポカリプス関連

Elder Pledge自動購入

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
ブックマークレット形式。言うまでもないが、虫養殖中に使用すると爆散するので注意。
javascript:(function(){
  setInterval(function() {
    if (Game.UpgradesInStore.indexOf(Game.Upgrades["Elder Pledge"]) != -1) {
     Game.Upgrades["Elder Pledge"].buy();
    }
  }, 500);
})()

虫の自動クリック

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
ブックマークレット形式。
javascript: (function(){
  setInterval(function() { Game.wrinklers.forEach(function(me) { if (me.close==1) me.hp = 0}); }, 500);
})();

食事中の虫を全て Shiny にする

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
一匹でも OK。どうしても例の実績が取れない時などに。
for (i = 0; i < Game.wrinklers.length; i++) { Game.wrinklers[i].type = 1; }

虫が一度に 12 匹出現

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
「Elder spice」が無くても 12 匹出る(配置は 10 匹分だが、余りの 2 匹は重なって収まっている)。
通常の虫。既に食事中の虫がいる場合、空いている場所のみに新たに出現。
for (i = 0; i < Game.wrinklers.length; i++) { Game.wrinklers[i].phase = 1; }
Shiny。既に食事中の虫がいる場合、そのままの状態で Shiny に変化する。
for (i = 0; i < Game.wrinklers.length; i++) { Game.wrinklers[i].phase = Game.wrinklers[i].type = 1; }

虫 12 匹の自動発生(20 秒周期)・自動クリック

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
ブックマークレット形式。こちらも「Elder spice」が無くても 12 匹出る。周期を変更するには「20000」の数値を書き換える。
通常の虫。
javascript:(function(){
  window.setInterval(function(){
  var wrinklers=Game.wrinklers;for(var i=0;i<12;i++){
    if(wrinklers[i].sucked<=0.5){wrinklers[i].phase=1;wrinklers[i].hp=3;}
    else{wrinklers[i].sucked=1;wrinklers[i].hp=0;}
  }
  },20000);
})();
Shiny。
javascript:(function(){
  window.setInterval(function(){
  var wrinklers=Game.wrinklers;for(var i=0;i<12;i++){
    if(wrinklers[i].sucked<=0.5){wrinklers[i].phase=1;wrinklers[i].type=1;}
    else{wrinklers[i].sucked=1;wrinklers[i].hp=0;}
  }
  },20000);
})();
※「sucked」が虫のクッキー貯めこみ係数なので「.sucked=1」のところを大きくすると…

虫 12 匹連続瞬殺(1 秒周期)

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
虫の出現グラフィックとポップアップ通知を省略することで、高速連続瞬殺が可能に。
一見何も起こっていないようだが、Stats - Special - Wrinklers popped でちゃんとカウントされている。
統計欄の数値更新は 5 秒置きなので、60 匹ずつ数が上がっていくのが確認できる。
var noWrinkler = setInterval(function() {
  Game.CollectWrinklers(); for(i = 0; i < Game.wrinklers.length; i++) { Game.wrinklers[i].phase = 2; }
}, 1000);
止める時は以下のコード。
clearInterval(noWrinkler);

虫が蓄えている量を表示

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
オンマウスで個別リアルタイム表示。ブックマークレット形式。
javascript:(function(s){
  if(typeof Game.onSectionLeft=='undefined'){
    s=l('sectionLeft');
    Game.onSectionLeft=0;
    AddEvent(s,'mouseover',function(e){Game.onSectionLeft=1});
    AddEvent(s,'mouseout',function(e){Game.onSectionLeft=0});
    Game.customLogic.push(function(w,i,t){
      w=Game.wrinklers;
      t=Game.tooltip;
      if(Game.onSectionLeft)for(i in w){
        if(w[i].phase&&w[i].selected)return t.draw('','<b>'+Beautify(w[i].sucked)+'</b> sucked','wrinklers')
      }if(t.on&&t.origin=='wrinklers')t.hide()
    })
  }
})() 



5. 施設関連

購入費の変更

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
購入費の変更。
全施設が初期価格で据え置きになる。
Game.priceIncrease = 1; Game.ObjectsById.forEach(function (e) { e.refresh(); }); Game.storeToRebuild = 1;
全施設が無料になる。
Game.ObjectsById.forEach(function (e) { e.basePrice = 0; e.refresh(); }); Game.storeToRebuild = 1;

施設50個まとめ買い追加 (+ 購入・売却切り替えショートカット追加)

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
施設50個まとめ買いできるボタンとショートカット、さらに購入・売却切り替えできるショートカットを追加。ブックマークレット形式。
購入モード時のみ、ALLボタンが50ボタンになり、それを選択すると50個まとめ買いできるように。
Shift+Ctrl同時押ししながら施設クリックでも同様のことが可能。(50個購入または全売却)
また、Altキーで購入・売却切り替えも追加。押している間は売却、離すと購入が選択される。
(Firefoxの場合、Alt単独ではうまく動作しないようなので、Shift or Ctrlと合わせて使うのを推奨)
javascript:AddEvent(window,'keyup',function(e){
  if (e.keyCode==18) {e.preventDefault();}
});
(function(){
  Game.sellBulkShortcut=0;
  var funcLogic=Game.Logic;
  Game.Logic=function() {
    funcLogic();
    if (!Game.OnAscend && Game.AscendTimer==0) {
      if (!Game.promptOn) {
        /*press shift & ctrl to bulk-buy 50*/
        if ((Game.keys[16] && Game.keys[17]) && Game.buyBulkShortcut!=2) {
          if (!Game.buyBulkShortcut) Game.buyBulkOld=Game.buyBulk;
          Game.buyBulk=-1;
          Game.buyBulkShortcut=2;
          Game.storeBulkButton(-1);
        }
        if ((Game.keys[16] || Game.keys[17]) && !(Game.keys[16] && Game.keys[17]) && Game.buyBulkShortcut==2) {
          if (Game.keys[16]) Game.buyBulk=100;
          if (Game.keys[17]) Game.buyBulk=10;
          Game.buyBulkShortcut=1;
          Game.storeBulkButton(-1);
        }
        /*press alt to switch to sell*/
        if (Game.keys[18] && !Game.sellBulkShortcut) {
          Game.buyMode=-1;
          Game.sellBulkShortcut=1;
          Game.storeBulkButton(-1);
        }
      }
      if (!Game.keys[18] && Game.sellBulkShortcut) {
        Game.buyMode=1;
        Game.sellBulkShortcut=0;
        Game.storeBulkButton(-1);
      }
    }
  };
  l('storeBulkMax').onclick=function onclick(event) {Game.storeBulkButton(50);};
  var textStoreBulkMax=l('storeBulkMax').innerHTML;
  var funcStoreBulkButton=Game.storeBulkButton;
  Game.storeBulkButton=function(id) {
    if (id==0) Game.buyMode=1;
    else if (id==1) Game.buyMode=-1;
    if (id==5 || (Game.buyBulk==-1 || Game.buyBulk==50)) Game.buyBulk=Game.buyMode==1?50:-1;
    funcStoreBulkButton(id);
    if (Game.buyBulk==-1 || Game.buyBulk==50) l('storeBulkMax').className='storePreButton storeBulkAmount selected'; else l('storeBulkMax').className='storePreButton storeBulkAmount';
    if (Game.buyMode==1) {
      l('storeBulkMax').style.visibility='visible';
      l('storeBulkMax').innerHTML='50';
    } else {
      l('storeBulkMax').innerHTML=textStoreBulkMax;
    }
  };
  Game.storeBulkButton(-1);
  for (var i in Game.Objects) {
    Game.Objects[i].rebuild=(function() {
      var me=Game.Objects[i];
      var func=me.rebuild;
      return function() {
        func.call(me);
        l('productPrice'+me.id).style.color=Game.buyMode==1?'#6f6':'#f33';
        l('productPriceMult'+me.id).innerHTML=Game.buyBulk!=1?(Game.buyBulk>1?'x'+Game.buyBulk:textStoreBulkMax)+' ':'';
      };
    })();
  }
})();



6. アップグレード関連

アップグレード解禁

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
任意の通常アップグレードをストアに入荷。
★ にアイテム名を代入。勿論、購入には相応のクッキーが必要。
Game.Unlock('★');
または、以下の ★ にアイテムの「ID」を代入。
Game.Unlock(Game.UpgradesById[★].name);
「ID」を調べるには、以下の ☆ にアイテム名を代入し実行。コンソールに表示されるので確認。
Game.Upgrades['☆'];
ストアで購入可能な、全ての通常アップグレードを入荷する。
Game.UpgradesById.forEach(function(e) { Game.Unlock(e.name); });

アップグレード無料入手

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
任意のアップグレードを解禁かつ購入済みにする。
★ にアイテムの「ID」を代入。ストアでは買えないプレステージアップグレード・デバッグアップグレードが入手可能。
※アイテム名を代入する  Game.Upgrades[★].earn() は無効の模様。
Game.UpgradesById[★].earn()
全アップグレードを解禁かつ購入済みにする。
Game.UpgradesById.forEach(function(e) { if (e.bought === 0) e.earn(); });

Chocolate egg を再購入

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
チョコ卵が購入済みならロックを解除し、再度購入する。ブックマークレット形式。
javascript: (function() {
    if (Game.UpgradesById[227].unlocked == 1) {
        Game.UpgradesById[227].bought = 0;
        Game.UpgradesById[227].buy();
        var obj = Game.UpgradesById[227].bought;
        console.log(JSON.stringify(obj));
    }
})();



7. 実績関連

実績解除

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
任意の実績を解除する。
★ に実績名を代入。
Game.Win('★');
または、以下の ★ に実績の「ID」を代入。
Game.Win(Game.AchievementsById[★].name);
「ID」を調べるには、以下の ☆ に実績名を代入し実行。コンソールに表示されるので確認。
Game.Achievements['☆'];
全実績を解除する(隠し・ダンジョン実績含む)。
Object.values(Game.AchievementsById).forEach(function(e) {
   Game.Win(e.name);
});

実績の取り消し

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
任意の解除済み実績を取り消す。
以下の ★ に実績名を代入。
Game.RemoveAchiev("★");
または、以下の ★ に実績の「ID」を代入。 ※実績名を代入する  Game.Achievements[★].won = 0; は無効の模様。
Game.AchievementsById[★].won = 0;
全実績を取り消す(隠し・ダンジョン実績含む)。
Game.AchievementsById.forEach(function(e) { e.won = 0; });
※実績を取り消してもミルクの量は減らない。
全実績取り消し後、上の「全実績解除」コードを実行すると、更にミルクが上乗せされる(v. 2.002 ならば + 1024 %)。
これらを繰り返せば、ミルク量を際限なく上げられる。

回数系実績の為の数値操作

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
★ に数値代入。一行だけ使用するのも複数行まとめて使用するのも可。
Game.resets=★; /* アセンド回数 */
Game.goldenClicks=★; /* GC クリック数(All time) */
Game.wrinklersPopped=★; /* 虫を退治した数 */
Game.reindeerClicked=★; /* トナカイクリック回数 */



8. 砂糖関連

各種数値操作

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
★ に数値代入。一行だけ使用するのも複数行まとめて使用するのも可。
Game.lumpsTotal=★; /* 収穫済みの砂糖の数 */
Game.lumpCurrentType=★; /* 砂糖の種類。 0 : 通常  1 : 分岐  2 : 金色  3 : 肉塊  4 : キャラメル */
Game.lumpsOverripeAge=★; /* 落果までの時間。 0 にすると即収穫。 完熟期でなければ無意味 */
Game.gainLumps(★); /* 数値分の砂糖をゲットする */

PC 時計を弄った人向け救済措置

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
次の収穫日が遙か先。そんな人の為に。
Game.lumpT は現在の Sugar lump が育ち始めた時刻。これを元に落果時刻が決まるので、Game.time(現在の時刻)で上書きする。
Game.lumpT = Game.time;



9. ミニゲーム関連

累計詠唱回数を弄る

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
★ に数値代入。
Game.Objects['Wizard tower'].minigame.spellsCastTotal=★;

指定呪文を自動詠唱

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
魔力満タンになったら発動。一例として、Force the Hand of Fate
M.castSpell(M.spells['hand of fate']); をコピーし、別の呪文を入れて直後にペーストすれば、順番に発動する。
javascript: var M = Game.ObjectsById[7].minigame;
setInterval(function() {
	if (M.magic == M.magicM) {
		M.castSpell(M.spells['hand of fate']);
	}
}, 500);
入力用の魔法名一覧
'conjure baked goods'  'hand of fate'  'stretch time'  'spontaneous edifice'  'haggler\'s charm'
'summon crafty pixies'  'gambler\'s fever dream'  'resurrect abomination'  'diminish ineptitude'

Grimoire 結果予測

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
Grimoire画面にForce the Hand of FateとGambler's Fever Dreamの結果を出力する窓を作る。ブックマークレット対応。
Hand of Fateは、将来10個分を季節・チャイムによる変化も含めて表示するが、
現在の状態で選択されるクッキーは太字になる。
※標準を0 changeとして、季節がバレンタインかイースターなら+1、チャイムがONなら+1
※召喚されるクッキーの判定に関する詳細はGrimoireの解説参照

(function(global){
 /* for setting */
   var refleshInterval=1000;
 /* internal variables */
   var randcounter=0;
   var M=(Game.Objects['Wizard tower']||Game.ObjectsById[7]).minigame;
   var localMath=Object.create(Math);
 /* functions */
   var choose = function (arr) {return arr[localMath.floor(localMath.random()*arr.length)];};
   var isFail = function (spell, obj)
   {
       var obj=obj||{};
       var failChance=M.getFailChance(spell);
       if (typeof obj.failChanceSet!=='undefined') failChance=obj.failChanceSet;
       if (typeof obj.failChanceAdd!=='undefined') failChance+=obj.failChanceAdd;
       if (typeof obj.failChanceMult!=='undefined') failChance*=obj.failChanceMult;
       if (typeof obj.failChanceMax!=='undefined') failChance=Math.max(failChance, obj.failChanceMax);
       return ((!spell.fail || (localMath.random()<(1 - failChance)))?true:false);
   };
   var gamble={
       win:function()
       {
           var selfCost=M.getSpellCost(M.spells['gambler\'s fever dream']);
           var spells=[];
           for (var i in M.spells)
           {if (i!='gambler\'s fever dream' && (M.magic-selfCost)>=M.getSpellCost(M.spells[i])*0.5) spells.push(M.spells[i]);}
           if (spells.length==0){return ("no magics can cast")}
           var selected=choose(spells);
           var result="";
           localMath.seedrandom(Game.seed + '/' + (M.spellsCastTotal+1));
           if (selected.name == 'Force the Hand of Fate') {
               result = isFail(selected, {failChanceMax:0.5})?hand.win(randcounter):hand.fail(randcounter);
               return ("will cast <b>" + selected.name + "</b> and " + result);
           } else {
               result = isFail(selected, {failChanceMax:0.5})?"win":"fail";
               return ("will cast <b>" + selected.name + "</b> and <b>" + result + "</b>");
           }
       },
   };
   var hand={
       failFunc:function(fail)
       {
           var golden=0; /* game */
           return fail+0.15*golden;
       },
       win:function(cycle)
       {
           localMath.random();localMath.random(); /* by shimmer.initFunc */
           for(i=0;i<cycle;i++){localMath.random();} /* by PlaySound or season shimmer */
           var choices=[];
           choices.push('frenzy','multiply cookies');
           if (!Game.hasBuff('Dragonflight')) choices.push('click frenzy');
           if (localMath.random()<0.1) choices.push('cookie storm','cookie storm','blab');
           if (Game.BuildingsOwned>=10 && localMath.random()<0.25) choices.push('building special');
           /* if (localMath.random()<0.2) choices.push('clot','cursed finger','ruin cookies'); */
           if (localMath.random()<0.15) choices=['cookie storm drop'];
           if (localMath.random()<0.0001) choices.push('free sugar lump');
           return ("GC ("+choose(choices) + ")");
       },
       fail:function(cycle)
       {
           localMath.random();localMath.random(); /* by shimmer.initFunc */
           for(var i=0;i<cycle;i++){localMath.random();} /* by PlaySound or season */
           var choices=[];
           choices.push('clot','ruin cookies');
           if (localMath.random()<0.1) choices.push('cursed finger','elder frenzy');
           if (localMath.random()<0.003) choices.push('free sugar lump');
           if (localMath.random()<0.1) choices=['blab'];
           return ("RC ("+choose(choices) + ")");
       }
   };
   var testSpell = function () {
       var ret="";
       var spellTotal=M.spellsCastTotal;
       randcounter=0;
       if (Game.season=='easter' || Game.season=='valentines') {randcounter++;}
     /* Gamblers Fever Dream */
       ret += '<p><h3>Gamblers Dream</h3>';
       localMath.seedrandom(Game.seed + '/' + spellTotal);
       spellResult=isFail(gamble)?gamble.win():gamble.fail();
       ret += ('<h5 style="padding-left:1em">' + spellResult + '</h5></p>');
     /* Hand of Fate */
       ret+='<p><h3>Hand of Fate</h3><table style="margin:auto;width:90%">';
       ret+='<tr><th></th><th>Other Seasons</th><th>Easter/Valentine</th></tr>';
       for(var i=1;i<=10;i++) {
           ret+='<tr><td>'+i+'</td>';
           for(var j=0;j<=1;j++) {
               localMath.seedrandom(Game.seed + '/' + (spellTotal + i - 1));
               var spellFail=isFail(hand);
               var spellResult=spellFail?hand.win(j):hand.fail(j);
               if (spellFail) {
                   ret += ('<td style="margin:1px;');
               } else {
                   ret += ('<td style="margin:1px;color:red;');
               }
               if (randcounter == j) {
                   ret += ('font-weight:bold;">' + spellResult + '</td>');
               } else {
                   ret += ('">' + spellResult + '</td>');
               }
           }
           ret+='</tr>';
       }
       ret+='</table></p>';
       Math.seedrandom();
       return ret;
   };
 /* panel creation */
   var panel = document.createElement('div');
   panel.setAttribute("id", "grimoireNext");
   panel.setAttribute("class", "framed note");
   panel.style.cssText='margin:3px auto; width:80%';
   document.getElementById("grimoireContent").appendChild(panel);
   panel.innerHTML = testSpell();
 /* auto refresh */
   setInterval(function(){panel.innerHTML = testSpell();},refleshInterval);
})(this);


Garden 結実したら自動で収穫

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
結実した作物を自動で収穫する。雑草自動除去機能つき。日本語版でも動作可能。
最終行の1000(確認間隔ms)の右の引数で雑草即時除去有無を指定。不要ならfalseにする。
(falseでも他の作物と同様mature後に除去される。mature直後にも1回拡散判定等が発生する点に注意。)
その右の引数で不死作物の収穫有無を指定。mature後に即収穫したいならtrue。
その右の引数でChocorootのように収穫時クッキーがもらえる作物の収穫有無を指定。CpSを考慮し手動で収穫したい場合はfalse。
(ただしfalseの場合でも枯死直前=半透明化になった瞬間に収穫を行う。)
その右の引数でmature後即収穫せずに枯死直前まで待つかを指定。交配等の都合で待ちたい場合はtrue。
(雑草即時除去を無効にしている場合、雑草も枯死直前まで除去しなくなる点に注意。)
setInterval(function(weedImmediately, harvestImmortal, harvestCookies, whenDying){
  var M = Game.ObjectsById[2].minigame;
  for (var x = 0; x < 6; x++){
    for (var y = 0; y < 6; y++){
      var tile = M.getTile(x, y);
      if (tile[0] > 0){
        var me = M.plantsById[tile[0] - 1];
        if (me.weed && weedImmediately){
          M.harvest(x, y);
        }else if (tile[1] + (me.ageTick + me.ageTickR) * M.plotBoost[y][x][0] >= 100){
          M.harvest(x, y);
        }else if (tile[1] >= me.mature){
          if (!whenDying && (!me.immortal || harvestImmortal) && 
(!me.effsStr.includes('harvest when mature for +') && !me.effsStr.includes('結実時に収穫すると +') || harvestCookies)) M.harvest(x, y);
        }
      }
    }
  }
}, 1000, true, false, true, false);

なお、不死作物の収穫有無のみ指定でよい場合、以下のコードを使用してもよい。
一番右の引数をfalseにすると、不死作物もmature後に即収穫。(上記関数と指定方法が逆なので注意)
その左の引数をfalseにすると全ての作物が即除去されてしまうため注意。
setInterval(Game.ObjectsById[2].minigame.harvestAll, 1000, 0, true, true);

特定の一作物のみ自動収穫対象とする場合、★に作物名を入力。
入力値はゲーム中の名前と若干異なる。(例:「Baker's wheat」なら★は「bakerWheat」)
Chromeのコンソール使用なら[ ]内編集中に自動で候補が出てくるはず。
setInterval(Game.ObjectsById[2].minigame.harvestAll, 1000, Game.ObjectsById[2].minigame.plants['★'], true, true);

作物を名前ではなくID番号で指定する場合、★に0~33の数値を入力。
setInterval(Game.ObjectsById[2].minigame.harvestAll, 1000, Game.ObjectsById[2].minigame.plantsById[★], true, true);

Garden Tick即時発生&土壌再選択待機時間リセット

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
残り時間に関わらずTickを即時発生させる。また、土壌再選択の待機時間をリセットする。
次のTick発生時刻、および再度土壌選択できるようになる時刻を現在の時刻で置き換える。

Tick即時発生
Game.ObjectsById[2].minigame.nextStep = Date.now();
土壌選択待機時間リセット
Game.ObjectsById[2].minigame.nextSoil = Date.now();

Stock Market Tick周期変更

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
価格変動の周期を60秒から変更する。
★に変更後の周期を秒単位で入力。例えば、1秒ごとに価格変動させたい場合は★=1を入力。
Game.ObjectsById[5].minigame.secondsPerTick = ★;

Pantheon

スロットへ神をセットする、または取り外すためのスクリプト。
※注意:ここで紹介しているセットや付け替え処理は、Worship swapsを正しく処理します。セットする際には1消費し、0であればセットはできません。

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
Holobore(ホロボア)=0;
Vomitrax(ヴォミトラックス)=1;
Godzamok(ゴザモク)=2;
Cyclius(サイクリウス)=3;
Selebrak(セレブラク)=4;
Dotjeiess(ドットジェイエス)=5;
Muridal(ムリダル)=6;
Jeremy(ジェレミー)=7;
Mokalsium(モカルシウム)=8;
Skruuia(スクルーイア)=9;
Rigidel(リジデル)=10;

Diamond(ダイアモンド)=0;
Ruby(ルビー)=1;
Jade(ヒスイ)=2;

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
var M = Game.Objects['Temple'].minigame;
M.dragGod(M.godsById[★]);  //任意の神を選択する(★には神のID(0~10)のいずれかを指定
M.hoverSlot(◆);           //任意のスロットを選択する(◆にはスロットのID(0~2)のいずれかを指定)
M.dropGod();               //つかんでいた神を離す(マウスのボタンを離すのと同じ処理)
M.hoverSlot(-1);           //処理終了後、どのスロットも選択していない状態に戻す

//Sample ゴザモクをダイヤスロットへセット
var M = Game.Objects['Temple'].minigame;
M.dragGod(M.godsById[2]);
M.hoverSlot(0);
M.dropGod();
M.hoverSlot(-1);

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
var M = Game.Objects['Temple'].minigame;
M.dragGod(M.godsById[M.slot[◆]]); //◆には取り外すスロットのID(0~2)のいずれかを指定
M.hoverSlot(-1);
M.dropGod();

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
var M = Game.Objects['Temple'].minigame;
M.dragGod(M.godsById[M.slot[◆]]); //◆には移動前のスロットのID(0~2)のいずれかを指定
M.hoverSlot(◇);                   //◇には移動先のスロットのID(0~2)のいずれかを指定
M.dropGod();
M.hoverSlot(-1);



10. その他

fps(frames per second)変更

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
★ に 1 以上の整数を代入。因みにゲームの設定値は 30 。これより高いとアニメーション速度が上がり、低いと遅くなる。
GC やトナカイの発生間隔、GC やスイッチの効果継続時間、自動連打使用時のクリック回数などに影響する。
Game.fps=★;
具体例として、fps = 1 にするとゲームの進行速度が 1 / 30 になる。
これにより、自動連打使用時の秒間クリック数が倍増する(実測はしていないが恐らく 30 倍)。
また、fps 変更時に発動中・ON 状態であった GC 効果・季節スイッチ等の残り時間が、通常の 30 倍になる。
変更後に発動・切り替えたものは通常通り。

V. 1.0466 で GC・トナカイ自動クリックを使用していると多重クリックが起きる(V. 2.002 では仕様変更のため不可能)。
環境にもよるが fps = 1 で 5 ~ 6 回かそれ以上。結果、同時に複数の GC 効果が発生したり、複数の卵や報酬を獲得したりする。

リロードすると、残り時間など全て元に戻る。

セーブデータを抜き出す

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
PC 内部に保存されていたデータをコンソールに表示。フリーズした時とか。
console.log(window.localStorage.getItem("CookieClickerGame")); 

Export saveのショートカットを追加する

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
Export saveのダイアログをCtrl+Xで開けるようになる。ブックマークレット形式。
javascript:AddEvent(window,'keydown',function(e){
  if (!Game.OnAscend && Game.AscendTimer==0 && e.ctrlKey && e.keyCode==88) {Game.ExportSave();e.preventDefault();}
});



上の関数などをブックマークレット化

★ に上記の関数や変数を置き換えると、ブックマークレット形式になる。
javascript:(function(){ ★ })();
ちなみに「Earn」では、以下の記述でブックマークレットとして使用可能。
javascript:Game.Earn( 【増やすクッキーの数】 );



プロンプト付き関数ブックマークレット

上記の関数の一部を、プロンプトで値を指定できるようにしたブックマークレット。
開くと日本語のメッセージが出てくるので、それに従って数字や文字を入力する。
別の値を指定したい時に、url を変えた複数のブックマークレットを作る必要がないので便利。

クッキーを増やす

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
Earn 関数を使用。焼いたクッキーが増える。キャンセルすると増えない。
javascript:(function(){
  var val=prompt('欲しいクッキーの数を入力してください!',0);
  val-=0;
  if(val==null){val=0;}Game.Earn(val);
})();

大クッキー自動クリック

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
クリック間隔をミリ秒単位で指定できる。初期値は 1000(1 秒に 1 回)。キャンセルすると自動クリックが中断される。
javascript:(function(){
  var val=prompt('クリック間隔(ミリ秒、1000で1秒)を入力してください。',1000);
  if(val==null){clearInterval(timerC);return;}val-=0;
  timerC=setInterval(function(){Game.ClickCookie();},val);
})();

通常アップグレード解禁

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
プロンプトで通常アップグレードの名前を入力すると、ストアに入荷される。キャンセルすると何も入荷されない。
javascript:(function(){
  var val=prompt('解禁したい通常アップグレードの名前を入力してください。','');
  if(val==null){val='';}Game.Unlock(val);
})();

Pantheon の Spirit 付け替え(スマホ用)

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
 javascript: (function swap(){
   let M = Game.Objects['Temple'].minigame;
   let godIndex = prompt('Spirit ( 0: Holobore, 1: Vomitrax, 3: Godzamok ... )', '');
   let godName = M.godsById[godIndex].name;
   if (!godName) return;
   let slot = prompt(`"${godName}" is ( 0: Diamond, 1: Ruby, 2: Jade, -1: unslot )`, '');
   let what = {"id" : godIndex};
   M.dragGod(what);
   M.slotHovered = slot;
   M.dropGod();
 })();



V. 1.0466 以前に対応の旧式コード

対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
大クッキー・金クッキー・トナカイ・虫 全部まとめて自動クリック BML
不要なものは行ごと削除。
javascript:(function(){
  setInterval("Game.ClickCookie()",100); /* 大クッキー秒間 10 回 */
  setInterval(function(){if(Game.goldenCookie.life>0){Game.goldenCookie.click();}},500); /* ゴールデン */
  setInterval(function(){if(Game.seasonPopup.life>0){Game.seasonPopup.click();}},500); /* トナカイ */
  setInterval(function() { Game.wrinklers.forEach(function(me) { if (me.close==1) me.hp = 0});},500); /* 虫 */
})();

ゴールデンクッキーをすぐに出す
注: 実績「Cheated cookies taste awful」を獲得する。
Game.goldenCookie.spawn();

ゴールデンクッキーをすぐに出す(チート実績回避版)BML
javascript: (function() {
    Game.goldenCookie.toDie = 0;
    Game.goldenCookie.life = 0;
    Game.goldenCookie.minTime = 0;
    Game.goldenCookie.spawn();
})();

ゴールデンクッキーの自動発生(5 秒周期)・自動クリック BML
javascript: (function() {
   window.setInterval(function() {
       var temp = Game.goldenCookie;
       if (document.getElementById('goldenCookie').style.display =='block') {temp.click();} 
       else {temp.time = 60000;}
   }, 2500);
})();
temp.time の数値は時間短縮系の update を所持しているかどうかで調整が必要な場合がある(今後出現頻度変更があった場合にも)。

V 1.037 ダンジョンβ版向け ゴールデンクッキー自動(5 秒周期)発生・自動クリック BML
古いバージョンなので逆に工夫が必要。
javascript: (function() {
   window.setInterval(function() {
       var temp = Game.goldenCookie;
       if (document.getElementById('goldenCookie').style.display == 'block') {temp.click();} 
       else {temp.delay = 0;}
   }, 2500);
})();

レッドクッキーの効果が Clot の時に Frenzy に変える BML
javascript: (function() {
   setInterval(function() {if (Game.frenzyPower < 1) {frenzy();}}, 1000);
   function frenzy() {
       var time = 77 + 77 * Game.Has('Get lucky');
       Game.frenzy = Game.fps * time;
       Game.frenzyPower = 7;
       Game.recalculateGains = 1;
       Game.Popup('Frenzy : cookie production x7 for ' + time + ' seconds!');
   };
})();

トナカイの自動発生(5 秒周期)・自動クリック BML
クリスマス時の追加クッキー判定も可能。
javascript: (function() {
   window.setInterval(function() {
       var temp = Game.seasonPopup;
       if (document.getElementById('seasonPopup').style.display == 'block') {temp.click();}
       else {temp.time = 11000;}
   }, 2500);
})();
temp.time の数値は時間短縮系の update を所持しているかどうかで調整が必要な場合がある(今後出現頻度変更があった場合にも)。

ヘブンリーチップスを指定した数にする
下の変数の中の ★ を欲しいヘブンリーチップスの数に置き換えて計算する。
Game.cookiesReset = (Math.pow(2*★+1,2)-1)*Math.pow(10,12)/8; Game.CalculatePrestige();
ちなみに、相対的に増やす方法は見つかっていない模様。

画面を小さくすると邪魔になる左下のサンタを消す BML
javascript:void(Game.DrawSanta=function(){}) 



チートに関する質問

チートツールや、ゲームのソースコードに関する疑問・質問はこちらへ。
誰かが答えてくれるかもしれません。
返信するには返信先のコメントの横にチェックを入れてから投稿してください。

ゲームに関する一般的な質問はこちらへ → 質問用ページ
過去ログはこちら → コメント/チート・補助ツール

  • Steam版で砂糖石を増やすスクリプトわかる方いらっしゃたら教えていただきたいです - 名無しさん (2021-09-05 20:05:36)
  • SugarLumpsが成熟するまで、完熟するまで、落果するまでの関数を多分見つけたがこれをどうやれば動作するものになるのかわからん - 名無しさん (2021-09-05 22:27:56)
  • Steam版でCookie Garden Helperがたまにしかうまく動かない(パネルを開くボタンが出てこない)んですが、同じ症状のひといませんか? - 名無しさん (2021-09-06 01:30:04)
  • 間違えて解放してしまった天界アップグレードをもう一回未開放状態にする方法ってありませんか……? - 名無しさん (2021-09-06 21:46:44)
  • Stock Market Tick周期変更をSteam版で実行できた方はいらっしゃいませんか? - 名無しさん (2021-09-07 02:55:46)
    • 自作modで動作確認済、これだと6秒周期 var timer; timer = setInterval(function(){if(Game.isMinigameReady(Game.Objects['Bank'])){Game.Objects['Bank'].minigame.secondsPerTick=6;clearInterval(timer);} }, 1000); - 名無しさん (2021-09-11 01:55:31)
  • Steam版でそもそもスクリプトって書き換えれるの?いまいちどっから変えるのかわからん - 名無しさん (2021-09-10 13:11:52)
  • Steam版でそもそもスクリプトって書き換えれるの?いまいちどっから変えるのかわからん - 名無しさん (2021-09-10 13:12:23)
    • 使い方●ゲームを起動する➝「オプション」を開く➝画面を一番下までスクロールする➝「MODの管理」ボタンを押す➝新しいウインドウが開く 左側に表示されているのがMOD(スクリプト)ごとの名前である➝どれでもいいので左の一覧から選択する➝右側に新しく「無効」ボタンが出てくるのでクリックすると➝「有効」に変わる➝一番下の「OK」ボタンを押して設定を反映する➝MODはゲームを起動したタイミングで動作するので一旦ゲームを終了し、再起動する➝MODが動作を開始する - 名無しさん (2021-09-10 23:32:58)
    • 変更方法●上記の「MODの管理」ウインドウを開く➝左上に「/modsを開く」ボタンがあるのでクリックする➝フォルダが開く これがクッキークリッカーのMOD(スクリプト)の置き場所である➝すでに存在するサンプルを開く➝main.jsファイルの内容がJAVAスクリプトなので、内容を書き換える➝書き換えたファイルを保存したら、再びゲームを起動する➝書き換えた内容とあった動作をしているか確認する - 名無しさん (2021-09-10 23:35:20)
  • そのやり方でできないんですよねぇGame.ObjectsById[5].minigame.secondsPerTick = 10; - 名無しさん (2021-09-11 00:29:23)
    • ↑途中送信。~だと機能しません。おそらくminigameのプログラムが別ファイルになってるせいだと思うのですが - 名無しさん (2021-09-11 00:31:02)
    • webでは確かにそのコードで動作するのを確認しました。そうなると次は【Steam版では同じコードでは動かない】か【コードは正しいが、MODとしての導入がうまくいってない】の切り分けが必要になります。 「mods」フォルダと同じ階層に「start.js」というファイルがあります。そのファイルをメモ帳などで開いて、最初の方にある「DIV=0」を「DIV=1」に変更して保存し、ゲームを起動してください。 ブラウザと同じようにコンソールが開くので、そこに上記のコードをコピーして実行すれば、まず【Steam版では同じコードでは動かない】のかどうか?が判明すると思います。 - 名無しさん (2021-09-11 09:37:45)
    • 同じコードを使用したコンソールからの入力では機能することを確認しましたので、Modとして導入できていないみたいです - 名無しさん (2021-09-11 12:36:23)
    • 起動直後でminigameを読み込めていない状態でその変数を更新しようとしてるからクラッシュするんじゃない?株のtickを変更したいなら少し上の書き込みにレスしたからそっち試してみて - 名無しさん (2021-09-11 15:04:21)
      • チャートがゴリゴリに動くようになりました、コード作成感謝 - 名無しさん (2021-09-11 17:06:30)
  • mod初心者なんやが、Game.Upgrades[/#/].buy();ってなんかおかしい? Fortuneクッキーだけ自動購入したいんだけど、そこがうまく動かない - 名無しさん (2021-09-14 18:07:49)
    • Game.Upgrades['Fortune #001'].buy(); または Game.UpgradesById[621].buy(); どっちでも同じ - 名無しさん (2021-09-14 23:03:10)
    • 直かIDで指定しないとあかんのか なんかめんどいな… - 名無しさん (2021-09-14 23:19:23)
      • なんか正規表現で上手い事いきそうだけどね 実行のさせ方によっては - 名無しさん (2021-09-15 21:19:39)
    • とりあえず力技というかループでやってみる!サンクス! - 名無しさん (2021-09-16 03:37:39)
  • ババアポカリプスを元に戻すことはできないの?それだけやりたい... - 名無しさん (2021-09-16 20:25:04)
  • ブラウザ版v2.031に対応している忙しい人向けの最低限の自動化mod作りました.Tampermonkeyで動作確認済みです.クッキーの自動クリック,GCとトナカイの自動クリックがそれぞれキーバインドでON/OFF出来るmodです.おまけでクッキークリックの消音化もしてます.キーバインドに関してスクリプトのコメントを読んで下さい.トナカイの単語がスペルミスを起こしてますが動作に影響はありません.見逃してください.閲覧用のリンクは'ttps://pastebin.com/WRUJ3Ub3',パスワードは'9VsnWXPi7f'です.スクリプトの利用や改造は自己責任ですがご自由にどうぞ. - 名無しさん (2021-09-17 00:43:10)
    • canselEvent(e)関数を各キーバインド制御のifブロックに組み込み忘れていました.動作としては殆ど変わらないと思いますがイベントバブリングが気になる方は各ifブロック内に組み込んでお使いください. - 名無しさん (2021-09-17 02:33:51)
  • Steam版で1000回転生自動化スクリプトを見つけたから試してるんだけど昇天時のクッキーが割れるアニメーションがスキップされてない(Escでスキップ可能)ので改良してスキップさせようとしてるんだけどうまくいかない。document.dispatchEvent( new KeyboardEvent( "keyup", { keyCode: 27 }));でEscキーを代理入力させようとしてるんだけどこれじゃダメなのかな - 名無しさん (2021-09-21 17:09:10)
    • モノ自体はこれね ttps://pastebin.com/wMeQzC5R - 名無しさん (2021-09-21 17:10:43)
    • Escキーの代理入力はよく分からんが、Escキーを押した後の処理(Game.AscendTimer=Game.AscendDuration;)を直接実行させたらいいんじゃない? - 名無しさん (2021-09-21 22:46:22)
  • Mod作るにはSampleModにも書いてある通りJavascriptっての学習しないと無理かこれ... - 名無しさん (2021-09-27 15:13:35)
    • GCの恩恵を最大限に受けるためにもゲーム画面に所持クッキー数 > Cps*X なのかどうか表示するUI出すMod作りたいんだけど、言語学習すればそこまで難しくない?それとももう既にあったりする? - 名無しさん (2021-09-27 15:15:53)
      • 楽しみにしてる!ソース見せてくれればデバッグできるよ(たぶん)。 - 名無しさん (2021-10-04 06:53:28)
    • SampleMod見て何とかボタンもテキスト表示も出来たけど...何故かGame.cookiesを取得すると毎回0が返ってくる 何故? - 名無しさん (2021-09-27 16:48:17)
      • 毎回って毎起動時? 起動時なら0が返ってくるかも。init:function(){★}内にsetIntervalで更新しないと。 - 名無しさん (2021-10-02 13:16:05)
      • 例えば、setInterval(function() {Game.Popup(Game.cookies);}, 5000); で5秒置きにpopup そういう話じゃなかったらすまん。 - 名無しさん (2021-10-02 13:33:59)
  • これGCの残り出現時間どうやって測るんだ...? 毎フレーム経過時間参照で出現判定してるから判別出来んぞ - 名無しさん (2021-09-28 17:33:30)
    • 次回出現時刻って決まってないんじゃないの? - 名無しさん (2021-10-02 12:50:55)
  • Garden Helperの派生版 Steam版対応化してる github.com/Chakaa/cookie-garden-helper-reloaded/releases - 名無しさん (2021-10-10 15:11:53)
最終更新:2021年10月15日 22:32