# CarterWare Docs — full text > Every CarterWare guide in one plain-text file, for AI assistants and offline reading. Source of truth: https://tweaks.carterware.net/docs/ (generated 2026-10-27). > CarterWare makes jailbreak tweaks for Dopamine rootless. Add the source https://tweaks.carterware.net/ in Sileo or Zebra. Paid tweaks: up to 3 devices per account; Tweak Pass is $10/month for every stable paid tweak. # Getting started with CarterWare tweaks URL: https://tweaks.carterware.net/docs/getting-started.html Updated: 2026-10-27 New to CarterWare? Get jailbroken, add the CarterWare source to Sileo or Zebra, install your first tweak and find its settings, step by step. CarterWare makes tweaks for jailbroken iPhones: small add-ons that change how iOS looks and works. This page takes you from a jailbroken phone to your first working tweak. Everything else in the docs builds on it. ## Before you start You need an iPhone jailbroken with **Dopamine**, which is "rootless" (it leaves the system partition alone). Every CarterWare tweak is built and tested for Dopamine on iOS 15 and later. Each guide lists the exact iOS versions that tweak supports. Not jailbroken yet? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). Pick your iPhone and iOS version, and it tells you whether your phone can be jailbroken and links to the right steps. > **Note:** palera1n in rootless mode uses the same package format, so most tweaks install there too, but we test on Dopamine. iPhone 16 and newer can't be jailbroken yet. ## Set it up 1. **Jailbreak.** Open the Dopamine app and tap **Jailbreak**. The first time, Dopamine installs a package manager (**Sileo** or **Zebra**, whichever you picked) on your Home Screen. That's the app store for tweaks. 2. **Add the CarterWare source.** In Sileo, go to **Sources**, tap **+**, paste `https://tweaks.carterware.net/` and tap **Add Source**. Keep the trailing slash. [Install, update and remove tweaks](https://tweaks.carterware.net/docs/install.html) has the Zebra steps too. 3. **Pick a tweak.** Open the **CarterWare** source. Free tweaks (Mountaineer, CarterBlock, Fold, Fuse and TikTok Warm) install straight away. Paid ones ask you to sign in with your email first. See [Buying tweaks and Tweak Pass](https://tweaks.carterware.net/docs/buying.html). 4. **Install it.** Tap **Get** (or the price), then **Queue**, then **Confirm**. When Sileo asks, tap **Respring**. A respring restarts the Home Screen to load the tweak, and takes a few seconds. 5. **Find its settings.** Open the **Settings** app and scroll down. Each CarterWare tweak has its own row with its icon, like **Mosaic** or **CarterEQ**. If you use [Fold](https://tweaks.carterware.net/docs/fold.html), tweaks live inside its **Tweaks Drawer** instead. That's it. If the tweak's row shows up in Settings and its **Enabled** switch is on, it's working. ## Which tweak should I start with? - **Make your Home Screen yours:** [Mosaic](https://tweaks.carterware.net/docs/mosaic.html) changes the grid, lets you place icons anywhere and adds live HTML widgets. - **Better sound everywhere:** [CarterEQ](https://tweaks.carterware.net/docs/cartereq.html) is a 10-band equalizer for all audio. - **Fewer ads:** [CarterBlock](https://tweaks.carterware.net/docs/carterblock.html) is free and blocks ads and trackers in apps and Safari. - **Know why something crashed:** [Mountaineer](https://tweaks.carterware.net/docs/mountaineer.html) is free and keeps a readable crash diary. Install it early; it's the first thing to check when something misbehaves. - **Games:** [Game HUD](https://tweaks.carterware.net/docs/gamehud.html) shows FPS and temperature and can lock 120 Hz per app. - **Dynamic Island:** [Island](https://tweaks.carterware.net/docs/island.html) adds a music visualizer and swipe-to-skip around the island. ## After a restart A normal restart turns the jailbreak off, and your iPhone starts up like stock iOS. Your tweaks and their settings are still there. Open **Dopamine** and tap **Jailbreak** again to bring them back. This is normal for every current jailbreak, not a CarterWare thing. ## Troubleshooting ### I don't see the tweak in Settings Respring once more (in Sileo, or by turning the tweak off and on). Make sure you're still jailbroken: if you restarted, open Dopamine and tap **Jailbreak**. If you use Fold, look in its **Tweaks Drawer**. More fixes are in [Troubleshooting and Safe Mode](https://tweaks.carterware.net/docs/troubleshooting.html). ### The Home Screen keeps crashing after I installed something Restart your iPhone, which turns tweaks off. Then follow [Recover from a tweak that crashes the Home Screen](https://tweaks.carterware.net/docs/troubleshooting.html#recover-from-a-tweak-that-crashes-the-home-screen). ## Questions ### Do I need a computer to use CarterWare tweaks? No. Once your iPhone is jailbroken with Dopamine, you add the source and install everything on the phone itself. ### Are CarterWare tweaks free? Some are. Mountaineer, CarterBlock, Fold, Fuse and TikTok Warm are free with no account. Mosaic, CarterEQ, Island, Game HUD, Rewind and CarterIDE are paid. You can buy them one at a time or get all of them with Tweak Pass for $10 a month. ### Will tweaks slow down my iPhone or drain the battery? Most tweaks only run when you use what they change. A few do continuous work, like Rewind's screen capture or Game HUD's overlay, and their guides say what they cost and how to limit it. If your battery suddenly gets worse, turn tweaks off one at a time to find the cause. ### Where do I report a bug? Open **Settings → the tweak → Report a Bug**. The form opens with your tweak version, iOS version and iPhone model already filled in. You can also use the [bug report form](https://tweaks.carterware.net/report.html). Every report reaches the developer. --- # Install, update and remove CarterWare tweaks URL: https://tweaks.carterware.net/docs/install.html Updated: 2026-10-27 Add https://tweaks.carterware.net/ to Sileo or Zebra, install free and paid CarterWare tweaks, keep them updated and remove them cleanly. CarterWare is one source you add to your package manager. Every CarterWare tweak shows up there, and updates arrive the same way. ## Before you start You need a jailbroken iPhone (Dopamine, rootless) with **Sileo** or **Zebra**. If you're not there yet, start with [Getting started](https://tweaks.carterware.net/docs/getting-started.html). The source URL is `https://tweaks.carterware.net/`, and it's the same for everyone. ## Set it up ### Add the source in Sileo 1. Open **Sileo** and tap **Sources** at the bottom. 2. Tap **+** (top corner), paste `https://tweaks.carterware.net/` and tap **Add Source**. 3. Wait for the refresh to finish, then tap **CarterWare** in your source list to browse. ### Add the source in Zebra 1. Open **Zebra** and tap **Sources**. 2. Tap **+**, paste `https://tweaks.carterware.net/` and tap **Add**. 3. Open the **CarterWare** source to browse. Both work for free tweaks. For buying paid tweaks, Sileo is the smoother path. If Zebra's sign-in gets stuck, do the purchase in Sileo. Your purchase belongs to your account, so either app can install it afterwards. ## Common tasks ### Install a free tweak 1. Open the tweak's page in the CarterWare source. 2. Tap **Get**, then **Queue**, then **Confirm**. 3. Tap **Respring** when asked. A respring restarts the Home Screen to load the tweak. ### Install a paid tweak Tap the price on the tweak's page. The first time, Sileo asks you to sign in with your email and enter a 6-digit code. Then you check out with Stripe and the install starts. [Buying tweaks and Tweak Pass](https://tweaks.carterware.net/docs/buying.html) walks through it. ### Update your tweaks 1. In Sileo, open **Packages** (or **Sources**) and pull down to refresh. 2. If updates are waiting, tap **Upgrade All**, or open a single tweak and tap **Upgrade**. 3. Confirm and respring. Updates to a tweak you bought are included. You don't pay again. ### Remove a tweak 1. Open the tweak's page in Sileo (or find it under **Packages → Installed**). 2. Tap **Remove**, then **Confirm**. 3. Respring. Your settings for that tweak stay on the phone, so reinstalling later brings them back. Layout tweaks are the exception worth thinking about: if you want your stock Home Screen back exactly, use [Mosaic](https://tweaks.carterware.net/docs/mosaic.html)'s **Restore Stock Layout** before removing it. ### Turn a tweak off without removing it Most CarterWare tweaks have an **Enabled** switch at the top of their page in **Settings**. Turning it off pauses the tweak and keeps everything you set up. ## Troubleshooting ### The CarterWare source won't add or refresh Check that the URL is exactly `https://tweaks.carterware.net/` with the trailing slash. Make sure you're online, then pull down to refresh again. If the source shows an error for a few minutes and other sources work, [tell us](https://tweaks.carterware.net/report.html). ### A tweak isn't in the list Pull down to refresh the source first. Developer previews and retired tweaks aren't on the public source; HomeClean, for example, is now part of [Mosaic](https://tweaks.carterware.net/docs/mosaic.html). If Sileo refuses to install a tweak, check its guide for the iOS versions it supports. ### Sileo says a package is already installed or something is broken Let Sileo finish any queued work, then refresh and try again. If a tweak half-installed, remove it and install it again. Your settings are kept. ### The Home Screen crashes right after installing Follow [Recover from a tweak that crashes the Home Screen](https://tweaks.carterware.net/docs/troubleshooting.html#recover-from-a-tweak-that-crashes-the-home-screen), then send a [bug report](https://tweaks.carterware.net/report.html) so we can fix it. ## Questions ### Is the CarterWare source the same for free and paid tweaks? Yes. Add `https://tweaks.carterware.net/` once. Free tweaks install right away; paid ones ask you to sign in and buy first. ### Do I have to pay for updates? No. Buying a tweak once includes its updates. Tweak Pass includes updates for every tweak it covers while it's active. ### Does removing a tweak delete my settings? No. Settings stay on the phone, so reinstalling the tweak brings them back. ### Can I use Zebra instead of Sileo? Yes for installing and updating. For buying paid tweaks, Sileo is more reliable; once bought, Zebra can install them too. --- # Buying CarterWare tweaks and Tweak Pass URL: https://tweaks.carterware.net/docs/buying.html Updated: 2026-10-27 How buying CarterWare tweaks works in Sileo: sign in with email, pay with Stripe, use up to 3 devices, move to a new iPhone, and cancel Tweak Pass anytime. Paid CarterWare tweaks are bought right inside Sileo or Zebra with your email and a card. There's no separate app and no password. Your purchases follow your email. ## Before you start **Prices:** - Mosaic: $3.99 - Rewind: $2.99 - Game HUD: $1.99 - CarterEQ: $0.99 - Island: $0.99 - CarterIDE: $0.99 - **CarterWare Tweak Pass:** $10 a month for all of the above while it's active. Mountaineer, CarterBlock, Fold, Fuse and TikTok Warm are free with no account. Each purchase is one-time and includes future updates of that tweak. Payments are handled by Stripe; CarterWare never sees your card number. ## Set it up 1. In Sileo, open the **CarterWare** source and tap the price on a paid tweak (or the **Sign in** banner on the source page). 2. Enter your email and tap **Email me a code**. Stay in Sileo. A 6-digit code arrives by email within a minute; type it on the next screen. Codes expire after 15 minutes. 3. Your iPhone is now linked to your account. Tap the price again to open **Stripe Checkout**, and pay with your card. 4. You're sent back to Sileo and the install starts. Respring when asked. A receipt is emailed to you. Next time you buy something on the same iPhone, you skip straight to checkout. ## Common tasks ### Use your tweaks on another iPhone Add the CarterWare source on the other iPhone and sign in with the **same email**. Everything you bought, and Tweak Pass if you have it, unlocks there too. One account covers up to **3 devices** at a time. ### Move to a new iPhone or after a restore Sign in with the same email on the new phone. If you've already used all 3 device slots, free one first (next task). ### Free up a device slot 1. Go to [pay.carterware.net/account](https://pay.carterware.net/account) in any browser. 2. Enter your email, tap **Email me a code**, and enter the code. 3. Under **Devices**, tap **Remove** next to the phone you don't use anymore. You can sign that phone back in later if you have a free slot. ### Get Tweak Pass Tweak Pass is listed in the CarterWare source as **CarterWare Tweak Pass**. Tap its price, sign in if asked, and subscribe in Stripe Checkout. Then install any covered tweak: Mosaic, CarterEQ, Island, Game HUD, Rewind and CarterIDE today, plus new paid tweaks as they leave beta. Pass isn't an app you open; it unlocks the others. Pass doesn't cover developer previews. ### Cancel Tweak Pass 1. Go to [pay.carterware.net/account](https://pay.carterware.net/account) and sign in with your email. 2. Tap **Manage billing**. Stripe's secure billing page opens. 3. Tap **Cancel subscription** and confirm. Pass keeps working until the end of the month you already paid for, then stops renewing. After that, downloads and updates for tweaks you didn't buy separately stop. Anything you bought on its own stays yours. ### Change your card or get an old receipt Same place: [pay.carterware.net/account](https://pay.carterware.net/account) → **Manage billing**. You can update your card and download past invoices. ## Troubleshooting ### The sign-in code never arrived Check spam and promotions folders for a message from CarterWare. Codes expire after 15 minutes, and five wrong tries cancel a code. Request a new one if needed. Make sure the email is typed correctly; it's your account name. ### "Device limit reached" Your account already has 3 phones linked. Remove one at [pay.carterware.net/account](https://pay.carterware.net/account), then sign in again from Sileo. ### I paid but Sileo still shows the price Pull down to refresh the CarterWare source, then open the tweak again. If it still won't install, sign out of the source and back in with the same email. Payment and unlocking are tied to your email, so nothing is lost. ### Zebra's sign-in screen gets stuck Do the purchase in Sileo instead. Once bought, the tweak can be installed from either app. ### A Pass renewal failed Stripe retries the card for you, and Pass keeps working for a short grace period while it does. Update your card under **Manage billing** to fix it right away. ## Questions ### How many devices can I use my purchases on? Up to 3 iPhones per CarterWare account at the same time. Remove an old phone at pay.carterware.net/account to free a slot. ### What does Tweak Pass include? Every stable paid CarterWare tweak while it's active: Mosaic, CarterEQ, Island, Game HUD, Rewind and CarterIDE today, and new paid tweaks as they leave beta. It costs $10 a month and you can cancel anytime. ### How do I cancel Tweak Pass? Sign in at pay.carterware.net/account, tap Manage billing and cancel the subscription on Stripe's page. Pass keeps working until the end of the period you paid for. ### Can I get a refund? Email carter@carterware.net with the email you bought with and what went wrong. A refunded purchase is removed from your account. ### Do I need to create a password? No. Your email is your account. Each time you sign in on a new device or on the account page, you get a one-time 6-digit code. ### What do you store about me? Your email, the iPhones you've linked, and what you bought. Card details stay with Stripe. Details are on the [privacy page](https://tweaks.carterware.net/privacy.html). --- # Troubleshooting CarterWare tweaks and Safe Mode URL: https://tweaks.carterware.net/docs/troubleshooting.html Updated: 2026-10-27 Fix common jailbreak tweak problems: Home Screen crashes, Safe Mode, a tweak missing from Settings, conflicts between tweaks, and how to send a useful bug report. Most problems with tweaks come down to three things: the jailbreak is off after a restart, two tweaks are fighting over the same thing, or a tweak crashed. This page covers all three, plus how to tell us so we can fix it. ## Before you start Try the two quick fixes first. They solve a surprising amount: 1. **Respring.** Turn the tweak's **Enabled** switch off and on, or respring from Sileo. A respring restarts the Home Screen and reloads every tweak. 2. **Check you're still jailbroken.** A normal restart turns the jailbreak off. If you restarted, open **Dopamine** and tap **Jailbreak**. Then make sure the tweak is up to date: refresh the CarterWare source in Sileo and install any updates. See [Install, update and remove tweaks](https://tweaks.carterware.net/docs/install.html). ## Common tasks ### Recover from a tweak that crashes the Home Screen If the Home Screen keeps crashing or you can't get past it: 1. **Restart your iPhone.** Hold the side button and a volume button, then slide to power off and turn it back on. It starts up without the jailbreak, so no tweaks are running. 2. **Open Dopamine** and tap the settings (gear) button. Turn off **Tweak Injection**. 3. Tap **Jailbreak**. You're jailbroken again, but with every tweak turned off. 4. **Open Sileo** and remove the tweak you installed or updated last. 5. Go back to **Dopamine settings**, turn **Tweak Injection** back on and let it restart userspace. Not sure which tweak did it? Install [Mountaineer](https://tweaks.carterware.net/docs/mountaineer.html) (free). Its Timeline lists each crash and, when the crashing code belongs to a tweak, names it as the likely suspect. ### Get out of Safe Mode If a tweak crashes the Home Screen, your jailbreak may bring it back in **Safe Mode**. Tweaks are off and you may see a message saying so. Use the moment to remove or turn off the tweak that caused it, then respring to leave Safe Mode. If it drops straight back into Safe Mode, the problem tweak is still active. Use the recovery steps above. ### Find out which tweak caused a crash 1. Install [Mountaineer](https://tweaks.carterware.net/docs/mountaineer.html) from the CarterWare source (free). 2. After the next crash, open the **Mountaineer** app, go to its **Timeline** and pull down to refresh. 3. Tap the entry that matches the time of the crash. Read what kind of event it was first, then the suspect tweak if one is shown. Treat the suspect as a strong lead, not proof. Turning that tweak off and seeing whether the crash stops confirms it. ### Find a tweak that's missing from Settings - Respring once. The Settings row appears after the first respring following an install. - If you use [Fold](https://tweaks.carterware.net/docs/fold.html), look in its **Tweaks Drawer**. Fold moves tweak settings there. - Make sure the tweak actually installed: Sileo → **Packages → Installed**. - Still missing? Remove and reinstall the tweak. Your settings are kept. ### Sort out two tweaks that conflict Tweaks that change the same part of iOS can fight. The common ones: - **Home Screen layout:** Mosaic and other layout tweaks (Atria, Boxy, Griddy, HomePlus and similar). Mosaic detects most of them and backs off. Use one layout tweak at a time. See the [Mosaic guide](https://tweaks.carterware.net/docs/mosaic.html). - **Audio:** CarterEQ and other system-wide EQ or audio tweaks. Run one at a time. - **Ad blocking:** CarterBlock and other blockers, or games with anti-cheat. Use CarterBlock's excluded apps. See the [CarterBlock guide](https://tweaks.carterware.net/docs/carterblock.html). To find a conflict you don't know about, turn tweaks off one at a time (most have an **Enabled** switch) and respring after each until the problem stops. ### Send a bug report that gets fixed fast 1. Open **Settings → the tweak → Report a Bug**. The form opens with your tweak version, iOS version and iPhone model filled in. You can also use the [bug report form](https://tweaks.carterware.net/report.html) directly. 2. Say what you expected and what happened instead, in a sentence each. 3. List the steps that make it happen, if you know them. 4. If something crashed, open Mountaineer, tap the crash in **Timeline** and use **Copy summary**. Then open **Add logs or a crash report** on the form and paste it. 5. Add your email if you'd like a reply. Every report goes straight to the developer. ## Troubleshooting ### My tweaks stopped working after a restart That's the jailbreak being off, not a broken tweak. Open **Dopamine** and tap **Jailbreak**. Your tweaks and settings come back. ### My battery drains faster since installing tweaks Turn tweaks off one at a time for a day each to find the cause. Tweaks that do continuous work, like Rewind's screen capture or Game HUD's overlay, explain in their guides how to limit what they use. ### A paid tweak won't install or says I need to buy it again See [Buying tweaks and Tweak Pass](https://tweaks.carterware.net/docs/buying.html#troubleshooting). Usually a refresh, or signing out of the source and back in with the same email, fixes it. ### An app crashes only when a tweak is on Turn that tweak off for now, then [report it](https://tweaks.carterware.net/report.html) with the crash log from Mountaineer so it can be fixed. If an app instead refuses to open because it detects the jailbreak, Mountaineer's **App Shield** is built for that. See the [Mountaineer guide](https://tweaks.carterware.net/docs/mountaineer.html). ## Questions ### Can a tweak permanently break my iPhone? Very unlikely with a rootless jailbreak like Dopamine. Tweaks never change the system partition, and a normal restart always brings back stock iOS with no tweaks running. From there you can remove the tweak that caused trouble. ### How do I turn off all tweaks at once? Open Dopamine settings, turn off Tweak Injection and let it restart userspace. Turn it back on when you're done. ### Where are crash logs kept? iOS saves them in Settings → Privacy & Security → Analytics & Improvements → Analytics Data. Mountaineer reads the same logs and shows them in plain language, with Copy summary on each crash and Copy Report for the whole diary. ### Who do I contact if nothing here helps? Send a report from the bug report form at tweaks.carterware.net/report.html, or email carter@carterware.net. --- # Mosaic guide: grids, free placement and HTML widgets URL: https://tweaks.carterware.net/docs/mosaic.html Updated: 2026-10-27 Version 2.4.2 · iOS 15 – 17 · Tested on iOS 16.3.1 and 17.1 · $3.99 one-time, or included with Tweak Pass Set up Mosaic: edit the Home Screen from the edit bar, change grids per page, place icons freely, add HTML widgets, and save or restore Home pages. Mosaic lets you lay out your Home Screen your way: custom grids for the Home Screen, Dock and folders, apps placed anywhere on a page, and HTML widgets on the Lock and Home Screens. You do most of it from a small edit bar on the Home Screen, and you can save whole Home pages to bring back later. ## Before you start - A rootless jailbroken iPhone on iOS 15, 16 or 17, such as Dopamine. Not sure which jailbreak fits your iPhone? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Sileo or Zebra with the CarterWare repo added. See [Install CarterWare tweaks](https://tweaks.carterware.net/docs/install.html). Sileo installs what Mosaic needs (ElleKit or Substrate, and PreferenceLoader) for you. - Mosaic was tested end to end on iOS 16.3.1 and iOS 17.1. iOS 15 is supported but hasn't been retested on the newest version. - Only one layout tweak should control your icons. Mosaic pauses its grid when it finds Atria, Boxy, Griddy, FreeformGrid, HomePlus, Iconoclasm or similar tweaks, so turn those off first. - Mosaic replaces HomeClean. HomeClean's page vault lives on as **Saved Pages**, and your package manager removes HomeClean when you install Mosaic. - Mosaic costs $3.99 one-time, or it's included with [Tweak Pass](https://tweaks.carterware.net/pass.html) ($10/month). See [Buying and restoring](https://tweaks.carterware.net/docs/buying.html). ## Set it up 1. Buy and install **Mosaic** from the CarterWare repo, then respring (restart the Home Screen) when asked. 2. Open **Settings → Mosaic** and check that **Enabled** and **Layout Hooks** are on. 3. Tap **Check Conflicting Tweaks**. If it names another layout tweak, turn it off or uninstall it, then respring. 4. On the Home Screen, touch and hold any app on a Home page (not the Dock or a folder) and choose **Mosaic** ("Layout, Widgets & Pages"). Touching and holding an empty spot works too. 5. It's working when your apps jiggle, the app you held has a white ring, and a bar with **Add**, **Position**, **Size**, **Opacity** and **More** sits above the Dock. 6. Tap **More → Quick Layout…** and move **Columns** to 5. Your apps reflow right away. Tap **Done** twice to finish. ## Common tasks ### Edit the Home Screen with the Mosaic bar 1. Touch and hold an app and choose **Mosaic**, or touch and hold an empty spot on the Home Screen. 2. Tap an app or a Mosaic widget to select it. A white ring shows what's selected. 3. Use the buttons on the bar (below), then tap **Done** on the Home Screen. - **Add** opens the widget picker. - **Position** opens Horizontal and Vertical sliders for the selected app or widget; dragging still works while it's open. - **Size** resizes the selected widget. When an app is selected it reads **Reset** and puts the app back in its grid spot. - **Opacity** fades the selected widget. - **More** holds Quick Layout, Widgets, Icons, Pages and **Mosaic Settings**. Mosaic pauses page swiping while you edit, so a drag never flips the page. To work on another page, tap **Done**, swipe to it, and start editing again. ### Change the grid: columns, rows, spacing and icon size 1. While editing, tap **More → Quick Layout…**. 2. Pick **Home Screen**, **Dock** or **Folders** at the top. 3. Drag **Columns**, **Rows**, **Horizontal Spacing**, **Vertical Spacing**, **Push Down**, **Side Margins** or **Icon Size**. Changes show live. 4. Tap **Done**. The Home grid and folder sliders are also in **Settings → Mosaic**. Dock settings are only in Quick Layout; the Dock always has one row, and Home spacing never moves it. ### Give one Home page its own grid 1. Swipe to the page, then start editing. 2. Tap **More → Quick Layout…**, choose **Home Screen**, then **This Page** (it shows the page number). 3. Change the sliders. Only that page changes; the rest keep the **All Pages** layout. 4. To undo it, open Quick Layout on that page and tap **Use All Pages Layout on Page** (with the number). **Settings → Mosaic → Clear Per-Page Overrides** undoes it on every page. ### Put an icon anywhere on the Home Screen 1. Start editing and check **More → Icons → Free Placement** is on. It turns itself on the first time you edit with Mosaic, unless you've switched it off. 2. Drag an app on a Home page and let go where you want it. It stays there after a respring. 3. **Snap to Grid** pulls apps toward grid spots, and **Snap to Align** shows blue guide lines when apps line up. Both are in **More → Icons**. 4. For exact placement, select the app and tap **Position**. To put an app back in the grid, select it and tap **Reset**. For a whole page, use **More → Icons → Reset Icon Positions on This Page…**. Positions are saved per page. The Dock and folders always use a grid. ### Add an HTML widget to the Lock Screen or Home Screen 1. While editing, tap **Add**. 2. Pick a widget. Mosaic comes with **SampleClock**, **SampleBanner** and a few free Evelyn widgets, grouped under **Evelyn**, **Installed** and **Samples**. 3. Choose **Set as Lock Screen Background** or **Set as Home Screen Background**. **Settings → Mosaic → HTML Widgets** has **Background**, **Foreground** and **Extra Layer** slots for each screen, so you can stack up to three. ### Install Xen HTML or ZenHTML widget packs 1. In Filza, open `/var/jb/Library/Mosaic/Widgets/Universal`. 2. Copy the widget's folder there. The folder name is the name you'll see in the pickers. 3. Tap **Add** on the Home Screen (it rescans every time), or tap **Settings → Mosaic → Reload Widget List**. A widget folder needs an HTML file plus the files it uses (CSS, scripts, images). Mosaic opens `index.html` first, then `LockBackground.html`, `Wallpaper.html`, `Background.html` or `Foreground.html`, otherwise the first `.html` file. An optional `config.json` can set `touch` (true lets you tap the widget; otherwise taps pass through), `opacity` (0–1 or 0–100), `refresh` (seconds between data updates), `hideClock` (hides the stock Lock Screen clock) and `frame` (`x`, `y`, `width`, `height`; 1 or less means a share of the screen). Widgets in the classic Xen HTML folders under `/var/mobile/Library` show up too. If Sileo refuses an old widget package, open the `.deb` in Filza and copy the folder holding the `.html` file into the Universal folder. ### Put a widget on a Home page 1. Swipe to the page and start editing. 2. Tap **Add**, pick a widget, and choose **Add to This Page**. It scrolls with your apps instead of sitting on the wallpaper. 3. Drag it into place, or select it and use **Position**, **Size** (Small, Medium, Large, Full Width, or Width and Height sliders) and **Opacity** (down to 20%). 4. With it selected, **More** also offers **Lock Widget** (stops it moving), **Replace Widget…** (keeps its size, position, lock and opacity) and **Delete Widget**. **More → Widgets** has **Center & Lock All**, **Remove a Widget** and **Clear Widgets on This Page…**. ### Save a Home page and put it back later 1. Swipe to the page and start editing. 2. Tap **More → Pages → Save This Page**. 3. Later, tap **More → Pages → Saved Pages…**, tap the saved page, then **Restore to This Page**. Restoring moves the saved apps onto the page you're on, adding a page if it's full. Apps in the Dock or folders stay put, and deleted apps are skipped. Swipe left on a saved page to delete it. **More → Pages → Remove Apps from This Page…** empties a page into the App Library; save it first if you want it back. The same tools are in **Settings → Mosaic → Saved Pages**. ### Save, export or load a layout 1. Tap **Settings → Mosaic → Save Current Layout**. It's named "Preset-" plus a number and selected in **Load Layout**. 2. To share it, tap **Export Layout Document**. Mosaic writes a `.mosaiclayout` file to `/var/jb/Library/Mosaic/Layouts` and shows the path. 3. To import one, copy a `.mosaiclayout` file into that folder with Filza. 4. Pick a layout in **Load Layout**, then tap **Apply Selected Layout**. A layout holds your Home, Dock and folder grids, per-page grids, icon size and Cosmetics switches. It doesn't include where apps are, free-placed positions or widgets; use **Saved Pages** for apps. ### Hide icon labels, the Dock or the page dots 1. Open **Settings → Mosaic**. 2. Under **Cosmetics**, turn on **Hide Icon Labels**, **Hide Dock** or **Hide Page Dots**. They apply right away. On iOS 16 and later, **Hide Page Dots** also hides the Search button in their place; swipe down on the Home Screen to search. **Hide Dock** also hides the iPad-style floating Dock some tweaks turn on. ### Go back to the stock layout 1. In **Settings → Mosaic**, tap **Restore Stock Layout**, then **Restore**. Grids, icon size and Cosmetics go back to stock, per-page grids are removed, and **Layout Hooks** turns off. 2. Tap **Reset All Icon Positions** to put free-placed apps back in the grid. 3. To remove widgets too, tap **Remove All Wallpaper Widgets** and **Remove ALL Inline Widgets (All Pages)**. 4. Tap **Apply Layout (Respring)**. To pause Mosaic without losing your work, turn off **Enabled** instead. After a restore, turn **Layout Hooks** back on to use Mosaic grids again. ## Settings explained Everything below is in **Settings → Mosaic**. The first footer also shows how many widgets Mosaic found. ### Mosaic Edit on Home: touch and hold an empty spot on the Home Screen, or touch and hold an app and choose Mosaic. The bar above the Dock has Add, Position, Size, Opacity and More. Settings keeps the deep and destructive tools. - **Enabled** (Switch · on by default): Master switch. Turn it off to pause Mosaic without uninstalling; your layouts, positions, widgets and saved pages are kept. Respring afterwards so everything returns to stock. - **Layout Hooks** (Switch · on by default): Lets Mosaic apply its Home, Dock and folder grids. Leave it on; Restore Stock Layout turns it off, so turn it back on when you want your Mosaic grid again. ### Compatibility Mosaic soft-disables Layout Hooks when Atria, Boxy, Griddy, FreeformGrid, HomePlus, Iconoclasm, etc. are detected. Force Layout Hooks overrides that (Safe Mode risk). HomeClean is built into Mosaic now, so the old package is removed on install. Do not run Atria/Griddy editors alongside Mosaic free place. - **Force Layout Hooks** (Switch · off by default): Makes Mosaic apply its grid even when it finds another layout tweak such as Atria, Boxy or Griddy. Two tweaks moving the same icons can crash the Home Screen into Safe Mode, so leave this off unless you accept that risk. - **Check Conflicting Tweaks** (Button): Checks for other layout tweaks that can fight Mosaic (Atria, Boxy, Griddy, FreeformGrid, HomePlus, Iconoclasm) and shows the result of the last widget load. - **Restore Stock Layout** (Button): Asks first, then puts the Home, Dock and folder grids, icon size and Cosmetics switches back to stock, removes per-page grids and turns off Layout Hooks. Free-placed positions and widgets are not touched. Respring afterwards. ### HTML Widgets Requires PreferenceLoader. Look under Settings → Mosaic. Compatible with Xen HTML / ZenHTML folders (index.html, LockBackground.html, Wallpaper.html, Foreground.html). config.json: touch, opacity, refresh, hideClock, frame. - **Lock Screen Widget** (Switch · on by default): Shows your chosen HTML widgets on the Lock Screen. Turn it off to hide them without changing your picks. - **Lock Background** (Choice): The main HTML widget drawn on the Lock Screen, behind the other layers. Pick (None) to turn it off. - **Lock Foreground** (Choice): A second Lock Screen widget drawn above the Background layer, so you can stack two designs. - **Lock Extra Layer** (Choice): A third Lock Screen widget drawn above Background and Foreground. - **Hide Stock Lock Clock** (Switch · off by default): Hides the stock Lock Screen clock, for widgets that draw their own. Some widgets hide it on their own even with this off. - **Home Screen Widget** (Switch · on by default): Shows your chosen HTML widgets on the Home Screen wallpaper. Turn it off to hide them without changing your picks. - **Home Background** (Choice): The main HTML widget drawn behind your apps on the Home Screen. Pick (None) to turn it off. - **Home Foreground** (Choice): A second Home Screen widget drawn above the Background layer. - **Home Extra Layer** (Choice): A third Home Screen widget drawn above Background and Foreground. - **Reload Widget List** (Button): Rescans your widget folders so newly copied widgets appear in the pickers. If one is still missing, leave this screen and open it again. ### Inline Page Widgets HTML widgets that sit ON a Home icon page and scroll with it (separate from wallpaper). Stored in /var/mobile/Library/Mosaic/Layouts/inline.json. Add SampleClock places one on the current page. - **Add SampleClock to Current Page** (Button): Puts the SampleClock widget on the Home page you last viewed. It may land over your top row of apps; drag it while editing. - **Clear Inline Widgets on Current Page** (Button): Removes every Mosaic widget from the Home page you last viewed, right away with no confirmation. Wallpaper widgets and apps are not affected. - **Remove ALL Inline Widgets (All Pages)** (Button): Asks first, then removes every widget placed on any Home page. Use it if a widget is stuck on top of your apps and you can't select it. ### Wallpaper Widgets Remove every Lock / Home background, foreground and extra widget slot in one tap. Use this if a full-bleed wallpaper widget is stuck with no editor. Stops Mosaic auto-restoring the SampleClock on respring. - **Remove All Wallpaper Widgets** (Button): Asks first, then sets every Lock and Home layer to (None). Use it if a full-screen widget is stuck. Respring if it's still showing. ### Home Grid Push Down slides the icons toward the Dock. These are the defaults for every Home page. To give one page its own grid, open Quick Layout on Home (More → Quick Layout → This Page). Apply Layout (Respring) commits grid, free placement and widgets so SpringBoard reloads cleanly. - **Columns (3–7)** (Slider · 3 to 7 · default 4): How many apps fit across each Home page. Pages with their own grid keep theirs. - **Rows** (Slider · 4 to 12 · default 6): How many rows of apps fit on each Home page. - **Horizontal Padding** (Slider · -40 to 80 · default 0): Space between apps side to side. Negative values pull them closer together. - **Vertical Padding** (Slider · -80 to 200 · default 0): Space between rows. Raise it to spread rows out, lower it to pack them tighter. - **Push Down (Top Inset)** (Slider · -40 to 560 · default 0): Push Down slides your apps toward the Dock, leaving open space at the top for a widget or your wallpaper. - **Side Inset** (Slider · -40 to 80 · default 0): Margin between your apps and the left and right edges of the screen. - **Icon Scale** (Slider · 0.5 to 1.5 · default 1): Makes app icons bigger or smaller. 1.00 is the stock size. ### Folders - **Folder Columns** (Slider · 2 to 6 · default 3): How many apps fit across an open folder. - **Folder Rows** (Slider · 2 to 6 · default 3): How many rows of apps fit in an open folder. ### Cosmetics On iOS 16 and later, Hide Page Dots also hides the Search button that sits in their place. Swipe down on the Home Screen to search. - **Hide Icon Labels** (Switch · off by default): Hides the app names under icons on the Home Screen. - **Hide Dock** (Switch · off by default): Hides the Dock, including the iPad-style floating Dock some tweaks turn on. Applies right away. - **Hide Page Dots** (Switch · off by default): Hides the page dots. On iOS 16 and later it also hides the Search button in their place; swipe down on the Home Screen to search. - **Square Icons** (Switch · off by default): Gives app icons tighter, squarer corners than stock. ### Free Placement Drag Home icons anywhere while editing the Home Screen. Snap to Grid uses your columns and rows; Snap to Align shows alignment guides. Positions are saved per page. The Dock and folders always use a grid. Turn off other layout tweaks (Atria, Boxy, Griddy) while using free placement. - **Free Placement** (Switch · off by default): Lets you drag apps anywhere on a Home page while editing. Turn it off to go back to the grid; your saved positions come back when you turn it on again. - **Snap to Grid** (Switch · on by default): While you drag, pulls apps toward your grid spots so rows stay neat. - **Snap to Align Guides** (Switch · on by default): Shows blue guide lines while you drag when an app lines up with another one. - **Reset Icon Positions on Current Page** (Button): Asks first, then snaps the free-placed apps on the Home page you last viewed back into the grid. Nothing is removed. - **Reset All Icon Positions** (Button): Asks first, then snaps every free-placed app on every Home page back into the grid. Nothing is removed. ### Saved Pages Save the apps on the Home page you last viewed and put them back later. Saving and restoring only moves icons — apps are never installed or deleted. On Home: More → Pages. - **Save Current Home Page** (Button): Saves which apps are on the Home page you last viewed so you can put them back later. Apps are never installed or deleted. - **Saved Pages…** (Button): Opens your saved pages, where you can restore one to the Home page you last viewed or delete it. ### Layouts Layouts live in /var/jb/Library/Mosaic/Layouts. Export writes a .mosaiclayout document you can share; to import one, put the file in that folder and pick it in Load Layout. Apply Layout saves and resprings so grids, free placement and widgets stick. - **Save Current Layout** (Button): Saves your grids, per-page grids, icon size and Cosmetics switches as a new layout and selects it in Load Layout. App positions and widgets are not included. - **Export Layout Document** (Button): Writes your current layout to a .mosaiclayout file in /var/jb/Library/Mosaic/Layouts that you can share, and shows the file's path. - **Load Layout** (Choice): Chooses a saved or imported layout. Nothing changes until you tap Apply Selected Layout. - **Apply Selected Layout** (Button): Applies the layout chosen in Load Layout. Tap Apply Layout (Respring) afterwards if anything looks half-applied. - **Delete Selected Layout** (Button): Deletes the layout chosen in Load Layout right away, with no confirmation. - **Clear Per-Page Overrides** (Button): Removes the custom grid from every Home page that has one, so all pages use the Home Grid settings above. - **Apply Layout (Respring)** (Button): Saves your grid, free placement and widgets, then resprings so everything sticks. - **Respring** (Button): Restarts the Home Screen without saving anything extra. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short form in Safari with your Mosaic version, iOS and iPhone model filled in, so you can send a problem straight to the developer. ### Saved Pages… Lists your saved Home pages. **Save Current Home Page** saves the Home page you last viewed. Tap a saved page for **Restore to Home Screen** (back onto the page you last viewed) or **Delete**, or swipe left to delete. ## Troubleshooting ### My grid changes do nothing Mosaic pauses its grid when another layout tweak is installed (Atria, Boxy, Griddy, FreeformGrid, HomePlus, Iconoclasm, Gridiculous, Cubex, DockController and similar), and it counts SnowBoard too. If **More → Quick Layout…** says Layout Hooks are off, check **Settings → Mosaic → Layout Hooks** is on, tap **Check Conflicting Tweaks**, then remove the other tweak and respring. **Force Layout Hooks** makes Mosaic apply its grid anyway. Two tweaks moving the same icons can crash the Home Screen into Safe Mode, so only use it if you accept that risk. Never use Atria's or Griddy's editor alongside Mosaic's Free Placement. ### A full-screen widget is stuck and I can't remove it Tap **Settings → Mosaic → Remove All Wallpaper Widgets**, then **Remove**. Every Lock and Home slot goes back to **(None)**. If it's still showing, tap **Respring**. For a widget stuck on top of your apps, use **Remove ALL Inline Widgets (All Pages)**. ### The widget picker is empty or my new widget isn't listed Make sure the widget folder sits directly inside `/var/jb/Library/Mosaic/Widgets/Universal` with an `.html` file in it, not one folder deeper. Tap **Reload Widget List**, and if the Settings pickers still miss it, leave **Settings → Mosaic** and open it again. If even SampleClock is missing, reinstall Mosaic. ### A widget says "Widget failed to load" Its HTML didn't load. Tap **Reload Widget List**, then try SampleClock to check widgets work at all. Third-party packs vary, and some old ones don't work on iOS 16 or 17. If SampleClock fails too, [report a bug](https://tweaks.carterware.net/report.html). ### A new widget covers my top row of apps New page widgets start near the top. Drag it down, or select it and use **Position** or **Size**. ### Settings changes don't stick Most changes apply live, but big grid changes can look half-applied until a reload. Tap **Settings → Mosaic → Apply Layout (Respring)**. ### My iPhone went into Safe Mode Respring out of Safe Mode. If it happens again, turn off **Force Layout Hooks** and remove any other layout tweak. If it still happens, uninstall Mosaic in Sileo; your saved pages and layouts stay on the phone. See [Troubleshooting](https://tweaks.carterware.net/docs/troubleshooting.html) for Safe Mode basics, and tell us with **Report a Bug**. ## Questions ### Does Mosaic replace HomeClean? Yes. HomeClean is retired, and its page vault is now **Saved Pages** in Mosaic: save a Home page, restore it later, or clear a page into the App Library. Installing Mosaic removes HomeClean. ### Does Mosaic work with Xen HTML widgets? Yes. Mosaic runs Xen HTML and ZenHTML widget folders itself, so you don't need Xen HTML installed, and it supplies the battery, time, weather, music, calendar and reminder data those widgets expect. Packs vary, so start with SampleClock. ### Can I use Mosaic with Boxy, Atria or Griddy? Not at the same time. Mosaic pauses its grid when it finds them, because two layout editors fight over your icons. ### Will Saved Pages or Remove Apps delete my apps? No. Saving, restoring and **Remove Apps from This Page…** only move icons. Removed apps stay installed and in the App Library. ### What happens to my Home Screen if I uninstall Mosaic? After the respring, your Home Screen goes back to the stock grid. Your apps stay installed, and your saved pages, layouts and added widgets stay on your iPhone in case you reinstall. ### Which iOS versions does Mosaic support? iOS 15, 16 and 17 on a rootless jailbreak such as Dopamine. It was tested end to end on iOS 16.3.1 and iOS 17.1; iOS 15 is supported but hasn't been retested on the newest version. ### How much does Mosaic cost? $3.99 one-time, or included with CarterWare Tweak Pass at $10/month while your Pass is active. See [Buying and restoring](https://tweaks.carterware.net/docs/buying.html). --- # CarterEQ guide: system-wide EQ, presets, preamp and the floating chip URL: https://tweaks.carterware.net/docs/cartereq.html Updated: 2026-10-27 Version 1.8.65 · iOS 15 – 17 · Tested on iOS 16.3.1 and 17.1 · $0.99 one-time, or included with Tweak Pass Set up CarterEQ on a jailbroken iPhone: tune the 10-band EQ, use presets and the preamp, open the floating chip, and fix EQ that isn't applying. CarterEQ is a 10-band equalizer for everything your iPhone plays: music, video, TikTok and games. You shape the sound in the CarterEQ app, from a small floating chip on the Home Screen, or in **Settings → CarterEQ**. ## Before you start - A jailbroken iPhone on **Dopamine (rootless)**, iOS 15 to 17. Not jailbroken yet? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Sileo installs what CarterEQ needs (ElleKit or Substrate, and PreferenceLoader) for you. - On iOS 15 and 16 the EQ starts by itself. On iOS 17 it usually starts by itself too, but sometimes needs one tap on **Enable System EQ** in the app (see Set it up). - Holding the Action button to toggle the EQ needs an iPhone 15 Pro or later on iOS 17. - Run only one system-wide equalizer at a time. CarterEQ replaces the old CarterEQ Legacy package automatically. - Price: $0.99 one-time, or included with the CarterWare Tweak Pass. See [buying](https://tweaks.carterware.net/docs/buying.html). ## Set it up 1. Add the CarterWare source and install **CarterEQ** in Sileo. [Installing tweaks](https://tweaks.carterware.net/docs/install.html) walks through it. 2. When Sileo offers to respring (restart the Home Screen), let it. The floating chip and the Action button only load after a respring. 3. Open the **CarterEQ** app on your Home Screen and start some music. No music handy? Tap the play button at the top right for a short test clip. 4. Drag the **31** and **62** faders all the way down. The bass should drop right away. That's how you know the EQ is working. 5. If the sound doesn't change on iOS 17, keep the music playing, scroll to **Tools**, tap **Enable System EQ**, then **Enable**, and let audio play for about 20 seconds. On iOS 15 and 16, tap **Restart mediaserverd** instead. 6. Tap **EQ Status** to confirm. It says **Audio engine up to date** when everything matches. **No EQ activity yet** means the EQ hasn't attached to the audio yet: play music and try step 5 again. 7. Put the faders back the way you like, or pick a preset (below). ## Using the app ### Main screen - **Equalizer** card: ten faders from 31 Hz to 16 kHz, each from −12 to +12 dB. Drag a fader, or tap a spot on it to jump there. The curve above shows the overall shape, and the **OUT** meters show your output level. The **PREAMP** slider underneath runs from −60 to +18 dB and reads **MUTE** at the very bottom. - Top bar: **Presets** on the left. On the right, the play button plays a test clip and the circular arrow resets every band and the preamp to 0 dB (it asks first with **Reset to Flat?**). - **Global**: the same on/off switches as Settings: **Master Enabled**, **EQ Enabled**, **Preamp Enabled**, **Limiter** and **Floating EQ Chip**. On an iPhone 15 Pro or later running iOS 17 there's also **Action Button Toggles EQ**. - **Effects**: **Compressor** and **Crossfeed**, each with a switch. Tap the row for its settings. **Advanced DSP** holds Band Q and the limiter. - **Tools**: **Play test clip**, **EQ Status** (with a **Copy** button for bug reports), and the audio repair buttons. On iOS 17 those are **Enable System EQ** and **Restart audiomxd**. On iOS 15 and 16 it's **Restart mediaserverd**. The app, the floating chip and Settings share the same settings, so a change in one shows up in the others. ### Presets - **My Presets** lists curves you saved. **Built-in** has 12: Flat, Bass Boost, Bass Reducer, Treble Boost, Treble Reducer, Vocal Boost, Spoken Word, Loudness, Hip-Hop, Electronic, Rock and Acoustic. - Tap a preset to apply it. A checkmark shows which preset matches what you're hearing. - Built-in presets only set the 10 bands. Your preamp and Band Q stay where they were. - Your own presets save and restore the 10 bands, the preamp and Band Q. ### Compressor, Crossfeed and Advanced DSP Each screen has an on/off switch and the same sliders as **Settings → CarterEQ** (see Settings explained). The **X** button at the top right puts that screen's sliders back to their defaults without flipping the switch. ### Finish Updating CarterEQ If the audio system is still running the old version after an update (mostly on iOS 17), the app shows **Finish Updating CarterEQ**. Tap **Restart Audio**: sound pauses for a second and your EQ comes back on its own a few seconds later. ## Common tasks ### Open the EQ panel from the Home Screen 1. Go to **Settings → CarterEQ** and turn on **Floating EQ Chip**. 2. Go to the Home Screen. A small dark **EQ** chip appears near the left edge. 3. Tap the chip. The **Equalizer** panel slides up with an **EQ** switch, **Preamp**, **Width** (Band Q), **Volume** and the ten faders. 4. Tap **Done**, or tap outside the panel, to close it. The dot on the chip is red while the EQ is on and gray while it's off. The **Volume** slider sets your iPhone's volume, and it follows the hardware volume buttons while the panel is open. ### Move or hide the floating chip 1. To move it, drag the chip anywhere on screen. It remembers the spot, even after a respring. 2. To show it over apps too, turn on **Settings → CarterEQ → Show Chip in Apps**. By default it hides while an app is open so it doesn't cover the app's buttons. 3. To remove it completely, turn off **Floating EQ Chip**. It stays off after a respring. ### Pick a built-in preset 1. Open the CarterEQ app and tap **Presets**. 2. Under **Built-in**, tap a preset, for example **Bass Boost**. It applies right away. 3. Tap **CarterEQ** at the top left to go back and fine-tune the faders. ### Save your own preset 1. Set the faders, preamp and Band Q the way you like. 2. Tap **Presets**, then **Save**. 3. Type a name and tap **Save**. If the name is already taken, **Replace Preset?** asks before overwriting. 4. To delete one, swipe left on it under **My Presets**. ### Set the preamp so boosts don't distort Boosts make the sound louder. The limiter stops clipping, but pushed hard, loud passages sound squashed. 1. Find your biggest boost, for example +6 dB on the bass. 2. Lower **PREAMP** by about the same amount, for example to −6 dB. 3. Open the floating panel while music plays. If the label above the meters changes from **OUT** to **PUSH**, the output is hitting the ceiling. Lower the preamp a little more. Don't use the preamp as a mute. At −58 dB or lower it reads **MUTE** and CarterEQ silences the sound completely. ### Turn the EQ off and on quickly - Floating panel: flip the **EQ** switch. - Settings or the app: turn off **Master Enabled**. - Action button or Activator: see the next two tasks. All of these do the same thing. The EQ stays off after a respring until you turn it back on, and your curve is kept. ### Toggle the EQ with the Action button 1. On an iPhone 15 Pro or later, go to **Settings → CarterEQ** and turn on **Hold to Toggle EQ**. 2. Press and hold the Action button for about half a second. A black pill under the Dynamic Island shows **EQ On** or **EQ Off**, and you feel a tap. 3. While this is on, the Action button no longer runs the action you picked in **Settings → Action Button**. Turn **Hold to Toggle EQ** off to get it back. ### Toggle the EQ with Activator If you have Activator, CarterEQ adds two actions under **CarterEQ**: **Toggle CarterEQ** turns the EQ on or off, and **Show CarterEQ Panel** opens the floating panel (**Floating EQ Chip** must be on). Assign either one to any gesture in Activator. ## Settings explained Everything in **Settings → CarterEQ**, in order. Sliders take effect immediately. ### CarterEQ System-wide 10-band equalizer. Open the CarterEQ app for the graphic EQ, presets and EQ Status. If music sounds unchanged after installing, open the app, start some music and tap Enable System EQ (iOS 17) or Restart mediaserverd (iOS 15–16). - **Master Enabled** (Switch · on by default): The main on/off switch for all of CarterEQ's processing. Turn it off to hear your iPhone untouched; your curve and settings are kept, and it stays off after a respring until you turn it back on. - **EQ Enabled** (Switch · on by default): Turns just the 10 bands on or off while the rest of CarterEQ keeps running. Handy for comparing your curve against flat. If you turn this and Preamp Enabled both off, audio passes through untouched. - **Preamp Enabled** (Switch · on by default): Turns the preamp on or off. When it's off, the Preamp slider has no effect, including the mute at the bottom. - **Limiter** (Switch · on by default): Keeps loud peaks from clipping after you boost bands or the preamp. Leave it on unless you want CarterEQ to stop catching peaks. - **Floating EQ Chip** (Switch · off by default): Shows a small EQ chip on the Home Screen (and on the Lock Screen on iOS 15 and 16). Tap it to open the Equalizer panel with an EQ switch, preamp, width, volume and the ten faders. Turning it off removes the chip completely, and it stays off after a respring. - **Show Chip in Apps** (Switch · off by default): Keeps the floating chip on screen while an app is open. Off by default, because the chip can cover an app's own buttons. ### Action Button iPhone 15 Pro and later. Press and hold the Action button to turn CarterEQ on or off. While this is on, it replaces the action chosen in Settings › Action Button. - **Hold to Toggle EQ** (Switch · off by default): Press and hold the Action button for about half a second to turn the EQ on or off, with an EQ On or EQ Off pill under the Dynamic Island. While it's on, the Action button no longer runs the action you chose in Settings › Action Button. ### Preamp Turning the preamp all the way down (−58 dB or lower) mutes CarterEQ's output completely. - **Preamp (dB)** (Slider · -60 to 18 · default 0): Raises or lowers the level before the bands, from −60 to +18 dB. Lower it by about your biggest boost so loud songs don't distort. At −58 dB or lower CarterEQ mutes its output completely. ### Compressor Evens out loud and quiet passages. Off by default. A ratio of 1:1 does nothing; higher ratios hold peaks down harder. Makeup adds level back after compression. - **Compressor** (Switch · off by default): Evens out loud and quiet passages. Off by default; try it with your music and leave it off if it doesn't help. - **Threshold (dB)** (Slider · -60 to 0 · default -18): The level where the compressor starts working, from −60 to 0 dB. Lower values compress more of the music. - **Ratio (:1)** (Slider · 1 to 20 · default 3): How hard sound above the threshold is held down. 1:1 does nothing; higher ratios squeeze peaks harder, and 20:1 acts almost like a limiter. - **Attack (ms)** (Slider · 0.1 to 200 · default 10): How quickly the compressor reacts to a loud sound, in milliseconds. Short times catch sharp hits like drums; longer times let them punch through. - **Release (ms)** (Slider · 10 to 2000 · default 120): How quickly the compressor lets go after the sound gets quieter, in milliseconds. Short times can sound pumpy; long times sound smoother. - **Makeup (dB)** (Slider · 0 to 24 · default 0): Adds level back after compression, from 0 to 24 dB, so compressed music isn't quieter overall. - **Knee (dB)** (Slider · 0 to 24 · default 6): Softens the change around the threshold, from 0 to 24 dB. Higher values make the compressor ease in more gently. ### Crossfeed (headphones) For headphones: blends a little of each channel into the other with a short delay, so hard-panned mixes sound more natural and less tiring. Off by default. - **Crossfeed** (Switch · off by default): For headphones: blends a little of each channel into the other so songs panned hard left or right sound more natural and less tiring. Off by default, and meant for headphones rather than the speaker. - **Amount** (Slider · 0 to 0.6 · default 0.28): How much of each channel bleeds into the other, from 0 to 0.6. Start low and raise it until hard-panned songs feel comfortable. - **Inter-aural Delay (µs)** (Slider · 0 to 800 · default 260): A tiny delay on the blended sound, in microseconds, which mimics how sound reaches your far ear a moment later. The default is 260. - **Bleed Low-pass (Hz)** (Slider · 200 to 20000 · default 700): Only sound below this frequency is blended across, from 200 to 20,000 Hz. Lower values keep cymbals and detail in their original channel. ### Advanced Band Q sets how wide each of the 10 bands is (0.3 = broad, 8 = narrow). The limiter catches peaks after boosts so loud settings don't clip. The defaults (0 dB, 20:1, 0 dB knee) are a transparent safety ceiling. - **Band Q (width)** (Slider · 0.3 to 8 · default 1.2): How wide each of the 10 bands is, from 0.3 to 8. Low values give broad, gentle changes; high values give narrow, precise ones. Applies to all bands, and is the Width slider in the floating panel. - **Limiter Threshold (dB)** (Slider · -24 to 0 · default 0): The ceiling the limiter holds peaks under, from −24 to 0 dB. The default of 0 dB is a safety ceiling that leaves normal audio alone; lower it only if you want everything held quieter. - **Limiter Ratio (:1)** (Slider · 1 to 20 · default 20): How firmly the limiter holds peaks at the ceiling, from 1:1 to 20:1. The default of 20:1 is a hard ceiling; lower values let some peaks through. - **Limiter Knee (dB)** (Slider · 0 to 12 · default 0): Softens how the limiter eases in near the ceiling, from 0 to 12 dB. The default of 0 is a clean, hard ceiling. Sliders take effect immediately. If audio doesn't respond after changing an on/off switch, tap Respring. Turning the Floating EQ Chip off removes it completely. - **Respring** (Button): Restarts the Home Screen. Use it if the sound doesn't respond after you change an on/off switch. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug report form in Safari with your CarterEQ version, iOS version and iPhone model already filled in. ### Action Button section The **Action Button** section, with **Hold to Toggle EQ**, only appears on iPhone 15 Pro and later. On iPhones without an Action button, Settings hides it. ## Troubleshooting ### Music sounds the same after installing 1. Respring if you haven't since installing. 2. Open the CarterEQ app, start music and drag a low fader all the way down. 3. iOS 17: tap **Tools → Enable System EQ**, then **Enable**, and keep music playing for about 20 seconds. 4. iOS 15 and 16: tap **Tools → Restart mediaserverd**, then **Restart**. 5. Check that **Master Enabled** and **EQ Enabled** are on. 6. Tap **EQ Status**. If it still says **No EQ activity yet** while music plays, tap **Copy** and send it with [a bug report](https://tweaks.carterware.net/report.html). ### EQ Status says the audio engine is still running an older version The update installed, but the audio system hasn't restarted to load it. Tap **Restart audiomxd** (iOS 17) or **Restart mediaserverd** (iOS 15 and 16) in **Tools**. Sound pauses for a second and the EQ comes back on its own a few seconds later. ### The floating chip doesn't show up - Check that **Floating EQ Chip** is on, then respring once. - It hides while an app is open. Go to the Home Screen, or turn on **Show Chip in Apps**. - On iOS 17 the chip doesn't currently appear on the Lock Screen. It shows on the Home Screen. ### Sound is distorted or squashed after boosting Lower **PREAMP** by about the size of your biggest boost (see Set the preamp so boosts don't distort). If the **Compressor** is on, try turning it off. Check **Limiter Threshold (dB)**, **Limiter Ratio (:1)** and **Limiter Knee (dB)** too: the defaults are 0, 20 and 0. ### There's no sound at all If the **PREAMP** readout says **MUTE** (−58 dB or lower), CarterEQ is silencing the output. Drag it back up, or tap the circular arrow in the app to reset every band and the preamp to 0 dB. ### Sound is stuck, buzzing or keeps cutting out Open the CarterEQ app and tap **Restart audiomxd** (iOS 17) or **Restart mediaserverd** (iOS 15 and 16). Sound pauses briefly, then recovers. If it happens again, send **EQ Status** (tap **Copy**) with [a bug report](https://tweaks.carterware.net/report.html). ### My screen recordings don't have the EQ That's expected. iOS records an app's sound before it reaches CarterEQ, so recordings sound unprocessed even though you hear the EQ live. ### "Couldn't Save Preset" or "Couldn't Delete Preset" The presets folder lost its permissions. Reinstall CarterEQ from Sileo. Your saved presets are kept. ## Questions ### Does CarterEQ work in every app? Yes. CarterEQ processes everything your iPhone plays: music, video, TikTok and games. It never touches the microphone. ### Can I turn the EQ off for just one app? No. CarterEQ applies to the whole system, with no per-app settings. To hear an app without EQ, turn the EQ off with the floating chip, the Action button or **Master Enabled**, then back on afterward. ### Does the EQ stay off after a respring? Yes. Whether the EQ is on or off is saved, so it stays the way you left it after a respring or a reboot. The same goes for the floating chip. ### Does CarterEQ make videos lag? It shouldn't. The audio path only does sound processing, and a flat curve passes audio through untouched, so video stays in sync. If you see stutter only with the EQ on, [report it](https://tweaks.carterware.net/report.html). ### What happens to my presets if I uninstall CarterEQ? Your saved presets and settings are kept, so they're there if you install it again. Removing CarterEQ restarts the audio system once to unload it. ### Is there a command-line tool? Yes. In a terminal on the iPhone, run `/var/jb/usr/local/bin/cartereq` with no arguments to see every command. Handy ones are `cartereq toggle`, `cartereq flat`, `cartereq presets` and `cartereq load `. ### How much does CarterEQ cost? $0.99 one-time, or included with the CarterWare Tweak Pass while your Pass is active. See [buying](https://tweaks.carterware.net/docs/buying.html). --- # Island guide: Dynamic Island visualizer, music player, notification glow and directions URL: https://tweaks.carterware.net/docs/island.html Updated: 2026-10-27 Version 1.2.1 · iOS 16 – 17 · Tested on iOS 16.3.1 and 17.1 · $0.99 one-time, or included with Tweak Pass Set up Island on a jailbroken iPhone: pick a visualizer, hold the Dynamic Island for a music player, color-coded notifications and turn alerts. Island turns your Dynamic Island into a live music visualizer that moves with whatever is playing, in any app. Swipe the island to skip songs, hold it to open a music player, and see it glow in an app's color when a notification arrives, so you know it's Snapchat because it's yellow. ## Before you start - You need an iPhone with a Dynamic Island (iPhone 14 Pro and newer). On other iPhones Island does nothing. - A jailbroken iPhone on **Dopamine (rootless)**, iOS 16 or 17. Not jailbroken yet? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Sileo installs what Island needs (ElleKit or Substrate, and PreferenceLoader) for you. - There's no Home Screen app. Everything lives in **Settings → Island**. - Price: $0.99 one-time, or included with the CarterWare Tweak Pass. See [buying](https://tweaks.carterware.net/docs/buying.html). ## Set it up 1. Add the CarterWare source and install **Island** in Sileo. [Installing tweaks](https://tweaks.carterware.net/docs/install.html) walks through it. If music is playing, it may pause for a second while the install finishes. 2. When Sileo offers to respring (restart the Home Screen), let it. 3. Open **Settings → Island** and tap **Preview for 6 Seconds**. The island lights up with a demo animation, so you can see Island is working before playing anything. 4. Play music in any app and go to the Home Screen. Within a moment the visualizer appears around the island and moves with the beat. When you pause, it fades out. 5. Pick a **Style** and **Color** you like (see below). 6. Swipe left across the island to skip to the next song, or hold it to open the player. ## Common tasks ### Change the visualizer style 1. Open **Settings → Island → Style**. 2. Pick one: **Halo and Ears** (the default) is a glowing ring with bars on each side, **Halo** is just the ring, **Ears** is just the side bars, **Bars Below** puts bars under the island, and **Wave Below** draws a moving line under it. 3. Tap **Preview for 6 Seconds** to try it without music. The visualizer follows the island as it changes shape, for example when Now Playing or another activity shows. The side bars stop short of the clock and status icons. ### Use album art colors or pick your own color 1. Open **Settings → Island → Color**. 2. Choose **Album Art** to take two colors from the cover of the song that's playing, **Rainbow** for slowly shifting colors, **White**, or **Custom Color**. 3. For **Custom Color**, drag the **Custom Color** slider to pick the shade. **Album Art** needs the playing app to share its cover. When it doesn't (Safari on iOS 16, for example), Island uses your **Custom Color** instead. ### Skip songs by swiping the island 1. Make sure **Island Gestures** is on in **Settings → Island**. 2. While music plays, swipe left across the island for the next song, or right for the previous one. 3. You'll feel a tap and see a quick flash. Swipe sideways in one quick motion. A slow drag, or a swipe that's mostly up or down, doesn't count. Swipes don't work in landscape. Skipping works with any app whose music shows up in Now Playing. ### Control your music by holding the island 1. While music plays, press and hold the island for about half a second without moving your finger. 2. You'll feel a firm tap and the island grows into a player with the album cover, song and artist, a scrubber, previous, play/pause and next buttons, and a volume slider. 3. Drag the scrubber to jump around in the song, or drag the volume slider. 4. Tap the album cover to open the app that's playing. 5. To close the player, tap anywhere outside it or swipe it up. It also tucks itself away after 10 seconds without a touch. Holding still works for 10 minutes after you pause, so you can start the music again from the island. Hold works when the island is plain black. When iOS is showing its own album cover in the island, a hold opens iOS's player instead. Turn off **Album Art in Island** (below) if you'd rather always get Island's player. ### Put away the album art iOS shows in the island When music plays from an app you're not in, iOS shows a small cover and waveform in the island. To keep the island plain black with just Island's visualizer: 1. Open **Settings → Island**. 2. Under **Music**, turn off **Album Art in Island**. The cover goes away right away and comes back when you turn the switch on again. You still see the cover any time by holding the island to open the player. ### Know which app is notifying you while music plays Leave **Notification Glow** on. When a notification arrives, the island glows in that app's icon color: yellow for Snapchat, green for Messages, blue for Mail. While music plays, the visualizer itself turns that color for about two seconds, then goes back to your usual colors. You can tell who it is without looking away from what you're doing. ### Hide banners when the island glows If the color is enough, you can have the glow replace the banner. This is off by default. 1. Open **Settings → Island**. 2. Under **Banners**, turn on **Hide Banners When Island Glows**. Three more switches appear, all on by default. 3. **Only While Music Plays** keeps banners hidden only while you're listening. Turn it off to hide them any time the island glows. 4. **Show on Second Notification** lets the banner through when the same app sends another notification within 10 minutes. After that, that app's banners keep showing until it has been quiet for 10 minutes. One message from a friend stays quiet; a conversation picking up gets your attention. 5. **Mute Their Sounds** skips the sound and vibration for a banner Island hid. Turn it off to keep hearing every notification. Hidden notifications aren't lost. They go straight to Notification Center, where you can read them any time. Banners always show for Time Sensitive alerts, while your iPhone is locked, and for any notification the island doesn't glow for, such as apps you turned off in **Glow Apps** or the app you have open. ### See your next turn beside the island 1. Make sure **Turn-by-Turn Beside Island** is on in **Settings → Island**. 2. Start directions in Apple Maps, then lock your iPhone or switch to another app. 3. As each turn gets within about 150 meters (500 feet), the island pulses green and you feel a light tap. 4. When the island is plain black, such as on the Lock Screen, the turn arrow shows on its left and the distance on its right, in feet and miles or meters and kilometers to match your region. When iOS already shows directions in the island itself, Island leaves them alone and only adds the green pulse. Nothing shows while Maps is on screen, because Maps already tells you. ### Change or turn off the unlock animation 1. Open **Settings → Island → Unlock Animation**. 2. Pick **Soft Glow** (the default) for a gentle ring of light, **Sweep** for a line that traces the island's outline, or **Off**. The animation waits until the island has settled after the unlock, so it doesn't jump around while the Lock Screen is still moving away. ### Stop the island glowing for one app 1. Open **Settings → Island → Glow Apps**. 2. Search for the app, or scroll to it. 3. Turn its switch off. That app's notifications no longer make the island glow. To turn off the glow for every app, turn off **Notification Glow** instead. ### Keep the visualizer off the Lock Screen or out of apps - Turn off **Lock Screen** to hide it while your iPhone is locked. - Turn off **Inside Apps** to show it only on the Home Screen (and the Lock Screen, if that's on). - **Hide in Landscape** is on by default, so full-screen video and games stay clear. Turn it off if you want the visualizer in landscape too. ### Make the visualizer react more to quiet music Drag the **Sensitivity** slider to the right for bigger movement on quiet songs, or to the left to calm it down for loud ones. Play a song while you adjust it to see the difference. ### Preview the notification glow and sweeps Tap **Preview Glow and Sweeps** in **Settings → Island**. Over about six seconds you'll see a green notification glow, the red low battery pulse, and your **Unlock Animation**. If music is playing, the visualizer turns green with the glow, the same way it does for a real notification. ## Settings explained Everything in **Settings → Island**, in order. Changes apply right away, with no respring needed. The three switches under **Hide Banners When Island Glows** only appear once it's on. Island lights up the Dynamic Island whenever something is playing, in any app. It fades out when the music stops and does no work while nothing is playing or the screen is off. - **Enabled** (Switch · on by default): Master switch for everything Island does: the visualizer, gestures, player, notification glow, directions and sweeps. Turn it off to pause Island without uninstalling; your choices are kept. - **Preview for 6 Seconds** (Button): Plays a demo animation around the island for six seconds, so you can try a style or color without playing music. ### Visualizer Album Art picks two colors from the cover of the song that is playing. Custom Color uses the slider above. - **Style** (Choice: Halo and Ears, Halo, Ears, Bars Below, Wave Below · default Halo and Ears): How the visualizer looks: a glowing ring (Halo), bars on each side of the island (Ears), both together (Halo and Ears, the default), bars under the island (Bars Below) or a moving line under it (Wave Below). - **Color** (Choice: Album Art, Rainbow, White, Custom Color · default Album Art): Where the colors come from. Album Art picks two colors from the cover of the song playing, Rainbow slowly shifts through every color, White stays white, and Custom Color uses the slider below. - **Custom Color** (Slider · 0 to 1 · default 0.58): Picks the shade for Custom Color. Album Art also falls back to this color when the playing app doesn't share its cover. - **Sensitivity** (Slider · 0.4 to 1.8 · default 1): How strongly the visualizer reacts to the music. Move it right for bigger movement on quiet songs, left to calm it down for loud ones. ### Where It Shows Hide in Landscape keeps it out of the way of full-screen video and games. - **Lock Screen** (Switch · on by default): Shows the visualizer while your iPhone is locked. Turn it off to keep the Lock Screen plain. - **Inside Apps** (Switch · on by default): Shows the visualizer while you're using an app. Turn it off to see it only on the Home Screen and Lock Screen. - **Hide in Landscape** (Switch · on by default): Hides the visualizer when an app is turned sideways, so full-screen video and games stay clear. Turn it off to keep it in landscape too. ### Notifications The island glows in the app's icon color when a notification comes in: green for Messages, blue for Mail, yellow for Snapchat. While music plays, the visualizer turns that color for a moment too. Only the color shows, never the message. Quiet During Focus skips it while Do Not Disturb or a Focus is on, except Time Sensitive alerts. It also skips the app you have open. - **Notification Glow** (Switch · on by default): Makes the island glow in the app's icon color when a notification arrives, like yellow for Snapchat. While music plays, the visualizer turns that color for a moment too. Only the color shows, never the message. - **Glow Apps** (Opens a screen): Opens the list of apps whose notifications make the island glow. See [Glow Apps](#glow-apps) below. - **Quiet During Focus** (Switch · on by default): Skips the glow while Do Not Disturb or a Focus is on, except for Time Sensitive notifications. ### Banners Off by default. When the island glows for a notification, its banner stays away and the notification goes straight to Notification Center. Only While Music Plays limits this to when something is playing. Show on Second Notification lets the banner through when the same app sends another one within 10 minutes, and keeps that app's banners coming until it has been quiet for 10 minutes. Mute Their Sounds also skips the sound and vibration of a hidden banner. Time Sensitive alerts always show, and nothing is hidden while your iPhone is locked. - **Hide Banners When Island Glows** (Switch · off by default): Off by default. When the island glows for a notification, the banner stays away and the notification goes straight to Notification Center. Time Sensitive alerts always show, and nothing is hidden while your iPhone is locked. See [Hide banners when the island glows](#hide-banners-when-the-island-glows). - **Only While Music Plays** (Switch · on by default): Only hides banners while music is playing, so the glow replaces banners when you're listening and everything else stays normal. Shows once Hide Banners When Island Glows is on. - **Show on Second Notification** (Switch · on by default): If the same app sends another notification within 10 minutes, that one shows as a banner, and the app's banners keep showing until it has been quiet for 10 minutes. Good for a conversation that's picking up. - **Mute Their Sounds** (Switch · on by default): Also skips the sound and vibration for a banner Island hid. Turn it off to keep hearing every notification while only the banner is hidden. ### Music Swipe the island left for the next song or right for the previous one. Hold it to open a player with the artwork, a scrubber, play controls and volume; tap the artwork to open the app. Holding still works for 10 minutes after you pause, so you can start the music again. Turn off Album Art in Island to put away the cover and waveform iOS shows in the island while music plays from another app, leaving just Island's visualizer. - **Island Gestures** (Switch · on by default): Lets you swipe the island left for the next song or right for the previous one, and hold it to open the player. Works while music is playing, and holding still works for 10 minutes after you pause. Turn it off if you keep triggering it by accident. - **Album Art in Island** (Switch · on by default): Leave it on to keep the album cover and waveform iOS shows in the island while music plays from another app. Turn it off to put them away, so the island stays plain black with just Island's visualizer around it. Hold the island to see the cover in the player. ### Directions While Apple Maps is guiding you and Maps isn't on screen, the island pulses green and taps once as each turn gets close. When the island is plain black, such as on the Lock Screen, the next turn also shows beside it: the arrow on the left and the distance on the right. When iOS already shows directions in the island, Island leaves them alone. Island only reads the route; it never changes it. - **Turn-by-Turn Beside Island** (Switch · on by default): While Apple Maps is guiding you and Maps isn't on screen, the island pulses green and taps once as each turn gets close. When the island is plain black, the next turn's arrow and distance show beside it. ### Extras Charging Sweep traces the island in your battery color when you plug in. Low Battery Pulse flashes red at 20% and 10%. Unlock Animation plays in your Island color once the island settles after you unlock: Soft Glow is a gentle ring of light, Sweep traces the island's outline. - **Charging Sweep** (Switch · on by default): Traces a line around the island when you plug in, colored by your battery level: green above 50%, yellow from 21% to 50%, and red at 20% or below. - **Low Battery Pulse** (Switch · on by default): Pulses the island red when your battery drops to 20% and again at 10% while unplugged. - **Unlock Animation** (Choice: Soft Glow, Sweep, Off · default Soft Glow): What plays in your Island color once the island settles after you unlock. Soft Glow (the default) is a gentle ring of light that fades out, Sweep traces the island's outline, and Off plays nothing. - **Preview Glow and Sweeps** (Button): Shows a sample notification glow, the low battery pulse and your unlock animation one after another, so you can see what each looks like. Island by CarterWare. - **Report a Bug** (Button): Opens a short bug report form in Safari with your Island version, iOS version and iPhone model already filled in. ### Glow Apps **Glow Apps** opens a list of every app on your Home Screen, Apple's included, each with a switch. All apps start switched on. Turn an app off to keep its notifications plain, without the glow. Use **Search Apps** at the top to find an app quickly. This list only matters while **Notification Glow** is on. ## Troubleshooting ### Nothing appears around the island when music plays - Check that **Enabled** is on and that your iPhone has a Dynamic Island. - Make sure the screen is on and music is actually playing (not paused). - If you're in an app, check **Inside Apps**. If you're in landscape, check **Hide in Landscape**. If you're on the Lock Screen, check **Lock Screen**. - Tap **Preview for 6 Seconds**. If the preview shows, the display side is fine. See the next fix. ### Preview works but music doesn't move the visualizer The part of Island that listens to your iPhone's sound didn't load. Remove Island in Sileo, then install it again. Removing it resets that part, so the fresh install loads it. Music pauses for a second during each step. ### Colors don't match the album art The app that's playing isn't sharing its cover art. Safari on iOS 16 is one example. Island falls back to your **Custom Color** there. Pick a different **Custom Color** if you don't like the fallback, or choose **Rainbow** or **White**. ### Swiping the island doesn't skip the song - Check that **Island Gestures** is on. - Swipes don't work in landscape. - Swipe sideways in one quick, short motion across the island itself. - The playing app has to accept Now Playing controls. If Control Center's skip button doesn't work for that app, the island swipe won't either. ### Holding the island opens iOS's player instead of Island's iOS is showing its own album cover in the island, so the hold goes to iOS. Turn off **Album Art in Island** to keep the island plain, and holding it opens Island's player every time. ### Holding the island does nothing - Check that **Island Gestures** is on. - Hold works while music is playing and for 10 minutes after you pause. After that, start the music from the app first. - Keep your finger still for about half a second. Moving it turns the hold into a swipe. ### The player's scrubber doesn't move the song Some apps don't allow jumping around from outside the app, for example live radio. Control Center's scrubber won't work for those apps either. ### Banners stopped showing **Hide Banners When Island Glows** is on. Turn it off, or turn on **Only While Music Plays** and **Show on Second Notification** so fewer banners are hidden. Your notifications are all in Notification Center. ### The island glowed for a notification I didn't want Turn that app off in **Glow Apps**, turn on **Quiet During Focus**, or turn off **Notification Glow**. ### A notification arrived but the island didn't glow Island skips the glow on purpose for: - silent notifications - the app you have open - notifications during Do Not Disturb or a Focus while **Quiet During Focus** is on, unless they're Time Sensitive - apps you switched off in **Glow Apps** - notifications older than a minute, and anything in the first 15 seconds after a respring ### The turn arrow doesn't show beside the island - Check that **Turn-by-Turn Beside Island** is on and that Apple Maps is giving directions, not just showing a route. - The arrow only shows while the island is plain black. When iOS shows directions or another activity in the island, Island leaves it alone and only pulses green as turns come up. - Nothing shows while Maps is on screen. - Island only works with Apple Maps, not Google Maps or Waze. ### Music paused for a second when I installed or updated Island That's normal when an update changes the part of Island that listens to audio. Playback resumes on its own. Updates that don't touch that part leave your audio alone. ## Questions ### Does Island use the microphone? No. Island reads the sound your iPhone is already playing. It never records anything, and nothing leaves your phone. ### Does Island drain the battery? Island only animates while something is playing and the screen is on. When the music stops it fades out and goes idle, and it does no work while the screen is off. Directions only check in while Apple Maps is guiding you. ### Does the notification glow show what the notification says? No. The glow is only a color, taken from the app's icon: yellow for Snapchat, green for Messages, blue for Mail, and so on. The message itself never appears on the island. ### If Island hides a banner, do I lose the notification? No. **Hide Banners When Island Glows** only skips the banner that slides down from the top. The notification still goes to Notification Center, and Time Sensitive alerts always show as banners. ### Can I keep the album cover in the Dynamic Island? Yes. **Album Art in Island** is on by default, so iOS keeps showing the cover and waveform in the island while music plays from another app. Turn it off to put them away. You can always see the cover by holding the island. ### Does Island work with Google Maps or Waze? No. The turn alerts and arrow beside the island come from Apple Maps directions only. ### Which apps does the visualizer work with? Any app that plays sound, including music, podcasts and video apps. It reacts to whatever your iPhone is playing. Swipe to skip and the player's controls need the app to support Now Playing controls. ### Does Island work on an iPhone without a Dynamic Island? No. Island draws around the Dynamic Island, so on iPhones without one it does nothing. ### How much does Island cost? $0.99 one-time, or included with the CarterWare Tweak Pass while your Pass is active. See [buying](https://tweaks.carterware.net/docs/buying.html). --- # Game HUD guide: FPS overlay, mod menu, Game Mode and 120 Hz URL: https://tweaks.carterware.net/docs/gamehud.html Updated: 2026-10-27 Version 1.3.0 · iOS 16 – 17 · Tested on iOS 16.3.1 and 17.1 · $1.99 one-time, or included with Tweak Pass Set up Game HUD: read the FPS overlay, mod offline games with memory search, speed, Unity, Lua and mod packs, silence banners, record and run at 120 Hz. Game HUD puts a small overlay on top of your games that shows the real on-screen frame rate, CPU load, temperature and memory. Tap it to lock the game to 60 or 120 Hz, record your screen, turn on Game Mode, Boost away the apps sitting in the background, or open **Mods**: a full mod menu for offline games, with memory search, game speed, Unity edits, Lua scripts and mod packs anyone can share. ## Before you start - A rootless jailbroken iPhone on iOS 16 or 17, such as Dopamine. Not sure which jailbreak fits your iPhone? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Sileo or Zebra with the CarterWare repo added. See [Install CarterWare tweaks](https://tweaks.carterware.net/docs/install.html). Sileo installs the two packages Game HUD needs (ElleKit or Substrate, and PreferenceLoader) for you. - The frame rate lock and **120 Hz in Games** need a ProMotion (120 Hz) display, which means an iPhone 13 Pro or a later Pro model. On other iPhones everything else works and the 120 Hz options are hidden. - Game Mode and the **Record** button are new in version 1.2.0. They have been tested end to end on iOS 16; on iOS 17 they are not yet fully tested, so please [report](https://tweaks.carterware.net/report.html) anything that misbehaves. - **Mods** arrived in version 1.3.0, and version 1.4.0 added game speed, the **Unity** and **Lua** tabs, mod packs and the memory viewer. It has been tested end to end on iOS 17; on iOS 16 it is not yet fully tested. It only changes what a game keeps on your iPhone, and changing an online game can get your account banned. - Game HUD costs $1.99 one-time, or it's included with [Tweak Pass](https://tweaks.carterware.net/pass.html). See [Buying and restoring](https://tweaks.carterware.net/docs/buying.html). ## Set it up 1. Install **Game HUD** from the CarterWare repo in Sileo, then respring (restart the Home Screen) when Sileo offers it. 2. Open a game. A small dark pill appears at the top center of the screen, just below the Dynamic Island or notch. On a new install the HUD shows only in games; if you updated from an earlier version, it keeps showing in every app until you change **Show In**. 3. Check the readouts. You should see something like **60 FPS 12% CPU ● 31° C 210 MB APP**. On a screen where nothing is moving the frame rate reads **IDLE**, which means it's working. 4. Tap the HUD. A panel opens with the game's name, the frame rate choices, **Boost**, **Record**, **Game Mode** and **Mods**. Tap the HUD again to close it. 5. Open **Settings → Game HUD** to choose where it shows up and to turn on **Game Mode**. ## Common tasks ### Read the FPS, CPU, temperature and memory numbers - **FPS** counts the frames that actually reach the screen, not a number the game reports. Green is 55 or more, yellow is 30 to 54, red is below 30. **IDLE** means nothing on screen changed, and **--** shows for a moment while the first reading comes in. - **CPU** is the load across all of the iPhone's processor cores, not just the open app. It turns yellow at 60% and red at 85%. - **Temperature** is the battery's temperature, not the processor's. The dot in front of it is the system's thermal state: green is normal, yellow warm, orange hot and red means iOS is slowing the iPhone down to cool it. - **Memory** shows **APP** (what the open app is using) or **FREE** (what's available), depending on **Memory Shows**. ### Choose which apps show the HUD Open **Settings → Game HUD → Show In**: - **Games** shows it in apps the App Store lists as games, plus your **Chosen Apps**. This is the default on new installs. - **All Apps** shows it everywhere. - **Chosen Apps** shows it only in the apps you switch on under **Chosen Apps**. Apps from outside the App Store usually have no category, so if a game is missed, add it under **Chosen Apps**. To keep the HUD off app titles, turn off **Portrait**: it then appears only when the app is sideways, like most games. ### Silence notifications while you play with Game Mode 1. Open **Settings → Game HUD** and turn on **Game Mode**. **Silence Notifications** and **Keep Screen Awake** are on by default. 2. Open a game. If the HUD is showing, it briefly says **Game Mode On**. 3. Play. Banners and their sounds are held back, and the screen doesn't auto-lock. Game Mode works in any game Game HUD detects and in your **Chosen Apps**, and turns itself off when you leave the game or lock the iPhone. Nothing is thrown away: held-back notifications still wait in Notification Center. Calls, FaceTime, alarms and timers, critical alerts, emergency alerts, Find My, and the game's own notifications always come through. You can also tap **Game Mode** in the HUD panel to switch it on or off. If you're not in a game, the HUD says **Game Mode On in Games**. ### Run every game at 120 Hz 1. Turn on **Game Mode**, then **120 Hz in Games**. 2. Close the game and open it again. The FPS readout can now climb above 60. This uses ProMotion in every detected game and Chosen App, from the next time each one opens. A few older games run too fast at 120; set those to **60 Hz** in **Frame Rate per App**, which always wins for that app. ### Unlock 120 Hz or hold 60 Hz for one app 1. Open the app and tap the HUD. 2. Under **Frame Rate**, tap **120 Hz** to unlock ProMotion, **60 Hz** to save battery, or **Default** to undo. 3. Tap **Relaunch (app name) Now**. The app closes and reopens with the new rate. Games that limit their own frame rate stay at their limit. You can also set rates in **Settings → Game HUD → Frame Rate per App**. ### Record your screen from the HUD 1. Tap the HUD and tap **Record**. The panel closes and a red dot with a running timer and **REC** appears in the HUD. 2. To finish, tap the HUD and tap **Stop**. The HUD says **Saved to Photos**. Record uses the same screen recorder as Control Center, so the video lands in Photos like any screen recording. The HUD is part of the video, and the microphone isn't recorded. If the button is missing, screen recording isn't allowed on this iPhone (for example, it's blocked in Screen Time). ### Free memory before playing with Boost 1. Tap the HUD to open the panel. 2. Tap **Boost**. After a second or two the panel says how many background apps it closed and how much memory was freed. Boost closes apps running in the background, the same as swiping them away in the app switcher, without asking first. It never closes the app you're using, whatever is playing audio, calls and FaceTime, Apple Maps, Google Maps and Waze, or common calling and chat apps such as WhatsApp, Discord, Zoom and Slack. It frees memory; it doesn't make the processor or graphics faster, and the closed apps start from scratch next time. To Boost automatically, turn on **Boost When a Game Opens**. It runs once each time a game or Chosen App launches. ### Change coins, lives or any number in an offline game 1. Open the game, tap the HUD and tap **Mods**. The mod menu opens inside the game. The first time, read the warning and tap **I Understand**. 2. On **Search**, type a number you can see in the game, such as your coins, and tap **Search**. **Type: Auto** finds whole numbers and decimals, which covers most games. 3. Spend or earn some in the game. Close the menu with the **×** to play, then tap the HUD and **Mods** again. 4. Type the new number and tap **Search New Value**, or tap **Went Up**, **Went Down**, **Changed** or **Same**. Repeat until one or a few matches are left. 5. Tap a match, type the number you want and choose **Set** to change it once or **Set and Freeze** to lock it there. **Save** keeps it on the **Saved** tab. When the game is sideways, you pick the option first and then type the number. On **Saved**, switch a value on to freeze it so the game can't change it, or tap it to set, rename or remove it. Saved values reset when the game closes, because games put them somewhere new each time they open. If nothing matches, tap **Type** and try **Float** (health bars and timers) or **Double** (idle and clicker games). **Change All…** writes one number to every match, for when they're all the same thing. Search understands more than single numbers. Tap **⋯ → Search Tips** in the menu for the full list: - `10~20` finds anything from 10 to 20. - `100;250;7` finds those numbers stored close together, which narrows things down fast when a screen shows several stats at once. - Add a type letter to mix types, like `1.5F;20D` (**B** byte, **W** word, **D** Int 32, **Q** Int 64, **F** float, **E** double). ### Find a value you can't see, like a health bar 1. On **Search**, tap **Unknown Value**. Game HUD remembers the game's memory as it is now. 2. Play until the bar changes, then open the menu again. 3. Tap **Went Down** if it dropped, **Went Up** if it grew, **Same** if it didn't move, or **By…** when you know how much it changed. 4. Repeat until a few matches are left, then set or freeze them like any other search. Unknown Value keeps a copy of the game's memory in temporary storage, so it needs free space about the size of what the game is using; it tells you if there isn't enough. The first refine takes a few seconds. ### Speed a game up or slow it down 1. Open **Mods** and tap the speed button at the top (it shows **1×**). 2. Pick a speed from **0.25×** to **10×**, or **Custom…** for anything from 0.1× to 10×. 3. Tap it again and pick **1×** to go back to normal. Speed changes how fast the game's clock runs. Unity games use their own time scale, so physics and timers stay in step. It doesn't make your iPhone faster or overclock anything, and online games may notice and disconnect you. Speed resets when the game closes. ### Change a Unity game without offsets Many games are built with Unity. The **Unity** tab can read their class and method names, so you can change what a method returns instead of hunting for numbers. 1. On **Unity**, search for a name like `Coins`, `Health` or `get_MaxHealth`. 2. Tap a method, such as **Player.get_MaxHealth**, and pick one of the suggested values, like **Return 999999** or **Return true**, or **Return Custom Value…**. Tap a static field to set its value. 3. Your changes appear under **Your Unity Changes** on the **Mods** tab. They stay on and come back each time the game opens, until you switch them off. If the tab says **No Unity code in this game.**, the game isn't built with Unity and the other tabs are what you have. **Copy as Mod Pack Entry** copies a change in the format a mod pack uses. ### Run a Lua script 1. Open the **Lua** tab and tap **New Script**. The editor opens with a sample that asks for your coins and changes them. 2. Edit it, tap **Check** to find typos, and tap **Save**. 3. Tap **Run** next to the script. Prompts and choices appear over the game, output shows in the log, and **Stop Script** ends it. Scripts use the same `gg` functions as GameGuardian scripts (`gg.searchNumber`, `gg.refineNumber`, `gg.getResults`, `gg.editAll`, `gg.prompt`, `gg.choice`, `gg.setSpeed` and more), so many GameGuardian scripts work as they are. Game HUD adds `gh` functions for patches, modules and Unity. Every function is listed in the [modding reference](https://tweaks.carterware.net/docs/gamehud-modding.html). To use a script someone shared, copy it and tap **Paste Script**. ### Add a mod pack someone shared A mod pack is a `.ghmod` file with switches, sliders and buttons made for one game. 1. Copy the pack's text, or a link to it. 2. Open the game, tap the HUD, tap **Mods**, open the **Mods** tab and tap **Paste Mod**. 3. The pack appears with its switches. Turn one on and it applies right away. Whatever you leave on comes back the next time the game opens. Tap the **⋯** next to a pack to **Switch Everything Off**, **Copy Pack**, **Share…** or **Delete Pack**. A pack made for another game, or for a different version of this one, says so. To share your own work, tap **Share Mine**: it turns your patches and Unity changes into a pack anyone can paste. Writing packs from scratch is covered in the [modding reference](https://tweaks.carterware.net/docs/gamehud-modding.html). ### Look at memory around a value Tap a search result or saved value and choose **Memory View**. It shows the bytes around that address as hex and text, with the selected value read as Int32, Float, Int64 and Double underneath. Tap a row, pick a spot in it, then edit it as a number, write bytes or save it. **Go To…** jumps to an address, or forward and back from the selected one with `+40` or `-40`. Unity methods have **View Code Bytes**, which opens the same view at the method's code. ### Open the menu without the HUD Tap **⋯ → Show Floating Mod Button** in the menu. A small round button appears whenever the menu is closed. Tap it to open **Mods**, or drag it out of the way. Turn it off the same way. The first time you open **Mods** in a game that was already running, the panel says to open it again. Tap **Relaunch (app name) Now**. Games and your **Chosen Apps** get the menu from the next time they open; any other app gets it once you've tapped **Mods** in it. ### Patch a game's code or load a mod file - **Patches:** on the **Mods** tab, tap **Add Patch** and enter the **Module** (leave it blank for the game itself; Unity games usually use **UnityFramework**), the **Offset** and the **Bytes** from a patch you trust. It turns on right away, is saved for this game and applies every time the game opens while it's on. Switch it off to put the original code back. - **Mod files:** put a mod's `.dylib` file in the game's mods folder (**Copy Folder** on the **Mods** tab copies its path; Filza works). It shows under **Mod Files**. Switch it on and tap **Relaunch to Load Mod Files**. It loads each time the game opens while it's on. Mod packs and Lua scripts dropped in the same folder show up too. Only add patches and mod files from sources you trust: they run inside the game with full access to it. ### Move the HUD or put it in a corner - **Pick a spot:** **Position** has **Top Center**, **Top Left**, **Top Right**, **Bottom Left**, **Bottom Center** and **Bottom Right**. - **Drag it:** press and drag the HUD anywhere; **Position** switches to **Where I Drag It**. Portrait and landscape remember separate spots. - **Stop it sliding:** turn off **Drag to Move**. - **Start over:** tap **Reset HUD Position**. To hide the HUD in the app you're in, tap it and tap **Hide Until I Switch Apps**. ## Settings explained Everything lives in **Settings → Game HUD**. Changes apply right away, no respring needed. Game HUD shows the real on-screen frame rate, CPU load, temperature and memory over any app. Tap the HUD for the frame rate lock and Boost; drag it anywhere. It does no work while it is hidden. - **Enabled** (Switch · on by default): Master switch. Turn it off to hide the HUD everywhere and stop Game Mode and every frame rate lock (apps go back to normal the next time they open); your settings are kept. ### Where It Shows Games finds games by their App Store category, and also shows in your Chosen Apps for any it misses. Chosen Apps shows the HUD only in the apps you pick. Turn off Portrait to show it only when an app is sideways, like most games, so it never sits over app titles. - **Show In** (Choice: All Apps, Games, Chosen Apps · default Games): Where the HUD appears. Games (the default on new installs) shows it in apps the App Store lists as games plus your Chosen Apps, All Apps shows it everywhere, and Chosen Apps shows it only in the apps you pick. Updating from an earlier version keeps All Apps. - **Portrait** (Switch · on by default): Leave on to show the HUD in portrait apps too. Turn it off to show it only when an app is sideways, like most games, so it never sits over app titles. - **Chosen Apps** (Opens a screen): Opens the list of apps you pick by hand; see Chosen Apps below. - **Home Screen** (Switch · off by default): Shows the HUD on the Home Screen as well. Off by default; on the Home Screen the panel has no frame rate choices. ### Readouts FPS counts the frames that actually reach the screen, so a still screen reads IDLE. Temperature is the battery's, with a dot for the system's thermal state: green is normal, yellow warm, orange hot, red throttling. - **Frame Rate** (Switch · on by default): Shows the real on-screen frame rate: green at 55 or more, yellow from 30, red below 30, and IDLE when nothing on screen is moving. - **CPU Load** (Switch · on by default): Shows the load across all processor cores as a percentage. It turns yellow at 60% and red at 85%. - **Temperature** (Switch · on by default): Shows the battery's temperature with a dot for the system's thermal state: green normal, yellow warm, orange hot, red throttling. - **Memory** (Switch · on by default): Shows memory, either what the open app is using or what's free, depending on Memory Shows. - **Memory Shows** (Choice: App in Use, Free Memory · default App in Use): App in Use shows how much memory the open app is using (APP). Free Memory shows how much is available (FREE). The Home Screen always shows free memory. - **Temperature Unit** (Choice: Celsius, Fahrenheit · default Celsius): Celsius or Fahrenheit. Until you pick one, it follows your iPhone's region. ### Position Dragging the HUD switches Position to Where I Drag It. Turn off Drag to Move to keep it from moving by accident. - **Position** (Choice: Top Center, Top Left, Top Right, Bottom Left, Bottom Center, Bottom Right, Where I Drag It · default Top Center): Where the HUD sits: one of six spots that stay clear of the status bar, or Where I Drag It. Dragging the HUD switches this to Where I Drag It automatically. - **Drag to Move** (Switch · on by default): Lets you drag the HUD around the screen. Turn it off so it can't be moved by accident during a game. - **Reset HUD Position** (Button): Clears your dragged spots for portrait and landscape and puts the HUD back at Top Center. ### Look - **Layout** (Choice: Pill, Stacked · default Pill): Pill puts the readouts on one line. Stacked puts each readout on its own line in a rounded box. - **Opacity** (Slider · 0.4 to 1 · default 0.9): How see-through the HUD is, from 40% to fully solid. Lower it if the HUD distracts you during play. - **Size** (Slider · 0.8 to 1.4 · default 1): Makes the HUD smaller or larger, from 80% to 140% of the normal size. - **Update Every** (Choice: Quarter Second, Half Second, Second · default Half Second): How often the readouts refresh: every quarter second, half second or second. A slower update does slightly less work. ### Game Mode Game Mode turns on while a game or one of your Chosen Apps is open and turns off when you leave it. Silence Notifications holds back banners and their sounds; they still wait in Notification Center, and calls, alarms, critical alerts and the game's own notifications always come through. Keep Screen Awake stops auto-lock while you play. 120 Hz in Games runs games at the full ProMotion rate; a few older games run too fast at 120, so set those to 60 Hz in Frame Rate per App. You can also turn Game Mode on or off from the HUD panel. - **Game Mode** (Switch · off by default): Turns on the options below while a game or one of your Chosen Apps is open, and turns them off when you leave it or lock your iPhone. You can also switch it from the HUD panel. - **Silence Notifications** (Switch · on by default): Holds back notification banners and their sounds during Game Mode; they still wait in Notification Center. Calls, alarms, critical alerts and the game's own notifications always come through. - **Keep Screen Awake** (Switch · on by default): Stops your iPhone from auto-locking while Game Mode is on in a game. - **120 Hz in Games** (Switch · off by default): Runs every game and Chosen App at the full ProMotion rate from the next time it opens. Only on 120 Hz iPhones; set any game that runs too fast to 60 Hz in Frame Rate per App. ### Performance Boost closes apps running in the background to free memory. It never closes the app you are using, anything playing audio, calls, FaceTime or navigation. Boost When a Game Opens runs it as a game or one of your Chosen Apps launches. - **Frame Rate per App** (Opens a screen): Opens the per-app frame rate list; see Frame Rate per App below. Only on 120 Hz iPhones. - **Boost When a Game Opens** (Switch · off by default): Runs Boost by itself about a second and a half after a game or one of your Chosen Apps opens, once per launch. It closes background apps to free memory. ### Mods Mods adds a button to the HUD panel that opens a mod menu inside the game: search its memory for a number like coins or lives, change it or freeze it, patch its code, and load mod .dylib files from /var/jb/var/mobile/Library/GameHUD/Mods/ followed by the game's bundle ID. Only values the game keeps on your phone can change; online coins, gems and purchases live on the game's servers. Changing an online game can get your account banned. Games that were already open when you turn this on need to be opened again. - **Mod Menu** (Switch · on by default): Adds Mods to the HUD panel, which opens the mod menu inside the game for searching and changing values, patches and mod files. Turn it off to remove the button and stop the menu loading in games. Game HUD by CarterWare. - **Report a Bug** (Button): Opens the CarterWare bug form in your browser with your Game HUD version, iOS version and iPhone model filled in. ### Chosen Apps A searchable list of your App Store and jailbreak apps, each with a switch. With **Show In** set to **Chosen Apps** the HUD shows only in the apps you switch on; with **Games** it shows in them as well as detected games. Game Mode, **120 Hz in Games** and **Boost When a Game Opens** treat them as games too. Apple's built-in apps aren't listed. ### Frame Rate per App A searchable list of your App Store and jailbreak apps. Tap an app and pick **Default**, **60 Hz** or **120 Hz**. Apps with a custom rate move to a **Custom** section at the top, including Apple apps you set from the HUD panel. A new rate applies the next time the app opens. This row and **120 Hz in Games** only appear on iPhones with a ProMotion display. ## Troubleshooting ### The HUD doesn't appear - Check that **Enabled** is on, and check **Show In**. With **Games**, it only shows in apps the App Store lists as games and in your Chosen Apps. - If **Portrait** is off, the HUD waits until the app turns sideways. - On the Home Screen it only shows when **Home Screen** is on. - If you tapped **Hide Until I Switch Apps**, open another app and come back. - The HUD never shows on the Lock Screen or while the screen is off. - When the Dynamic Island expands over the HUD (the full Now Playing player, a timer or a call), the HUD fades out until the island shrinks again. ### The HUD covers a button I need to tap In portrait, the **Top Center** spot can sit over the title or button in an app's top bar, and taps on the HUD go to the HUD. Set **Show In** to **Games**, turn off **Portrait**, pick another **Position**, or drag the HUD away. ### 120 Hz didn't change anything - The new rate applies only after the app reopens. - Some games cap their own frame rate, or can't draw faster than 60. Game HUD can't lift those limits. - iOS limits the screen to 60 Hz in Low Power Mode. - **Enabled** must be on, and for **120 Hz in Games**, **Game Mode** too. ### Game Mode or the HUD turns on in an app that isn't a game A few apps, such as game-streaming apps, are filed under game categories in the App Store, so Game HUD treats them as games. Set **Show In** to **Chosen Apps** if that gets in your way. ### A game isn't detected Apps installed from outside the App Store, and some apps filed under another category, aren't detected. Add the game in **Chosen Apps**. ### I still hear notification sounds during Game Mode Banners are reliably held back. Holding back their sounds hasn't been confirmed on every setup yet. Use the Ring/Silent switch as a backup and send a [bug report](https://tweaks.carterware.net/report.html). ### Record says Couldn't Start Recording, or Stop doesn't appear Another screen recording may already be running. Stop it from the red recording indicator at the top of the screen or the Screen Recording button in Control Center, then try again. If it keeps happening, restart your iPhone and jailbreak again. ### Mods found no matches, or my change didn't stick - Coins, gems and purchases in online games live on the game's servers, so there's nothing on your iPhone to change. Only offline values can be changed. - Try another type: **Float** for health bars and timers, **Double** for idle games. Some games store a number scrambled or multiplied, which a search can't find. - If a value changes back right away, the game keeps a second copy. Use **Set and Freeze**, or narrow the search again and change the other match too. ### The game closed when I turned on a patch Some games check their own code and close when it's changed, and a patch with the wrong offset or bytes for this version of the game can crash it. Open the game again, switch the patch off on the **Patches** tab, and check the patch was made for the version you have. ### A mod file says it didn't load Tap it under **Mod Files** on the **Mods** tab to see why. Mod files must be built for rootless jailbreaks (arm64) and are only loaded when the game opens, so tap **Relaunch to Load Mod Files** after switching one on. ### The menu says no mods were applied this launch If a game closes within a few seconds of its mods going in, Game HUD opens it without your mods the next time, so a bad patch or pack can't trap it in a crash loop. Open **Mods**, switch off whatever you added last, then close and reopen the game. The launch after that loads your mods as usual. ### The speed button didn't change anything Some games run their own timing that doesn't follow the clock Game HUD changes, and games that wait for the server keep the server's pace. Unity games usually respond best. If a game stutters or freezes at high speeds, go back to **1×**. ### A Lua script says "Not available on iOS" A few GameGuardian functions only make sense on Android, such as killing the process, jumping time or dumping memory. In Game HUD they return that message instead of doing anything, so scripts that rely on them can't run unchanged. Most searching, editing and dialog functions work. The [modding reference](https://tweaks.carterware.net/docs/gamehud-modding.html) lists which ones are supported. ### A mod pack says it was made for a different game Each pack names the game it's for. A pack for another game can't be switched on. A pack for a different version of this game still works, but its code patches may not line up; its Unity changes usually still work. ### I can't find Safari or another Apple app in the lists **Chosen Apps** and **Frame Rate per App** only list App Store and jailbreak apps. To lock an Apple app's frame rate, open it, tap the HUD and pick a rate there. For anything else, use **Report a Bug** at the bottom of **Settings → Game HUD**. More fixes are in [Troubleshooting](https://tweaks.carterware.net/docs/troubleshooting.html). ## Questions ### Does Game HUD slow my games down? The HUD updates a few times a second and does no work at all while it's hidden or the screen is off. If you want it even lighter, set **Update Every** to **Second**. ### Does Game Mode delete my notifications? No. Game Mode only stops banners and their sounds while a game is open. Every notification still goes to Notification Center, and calls, alarms, critical alerts and the game's own notifications come through as usual. ### Is the temperature my CPU temperature? No. Game HUD shows the battery's temperature, which rises with the rest of the iPhone. The colored dot beside it is the system's thermal state, and red means iOS is already slowing things down to cool off. ### Can Game HUD make any game run at 120 Hz? Often, yes. Many games stay at 60 only because they never asked iOS for more. Games that limit their own frame rate stay at their limit, and you need a ProMotion iPhone (iPhone 13 Pro or a later Pro model). ### Can Game HUD give me free coins or gems in online games? No. In online games your coins, gems and purchases are kept on the game's servers, and nothing on your iPhone can change them. Mods changes values a game keeps on your iPhone, like coins and lives in offline games. ### Can I get banned for using Mods? Yes, in online games. Changing values or code in a game with accounts, leaderboards or multiplayer can get your account banned. Use Mods in offline games. ### Can I write my own mods and share them? Yes. Write a Lua script on the **Lua** tab, or a `.ghmod` mod pack: a short text file of switches, sliders and buttons that can patch code, change Unity methods and fields, set the game speed or run Lua. Share it as text or a link, and others add it with **Paste Mod**. The [modding reference](https://tweaks.carterware.net/docs/gamehud-modding.html) covers every option. ### Do GameGuardian scripts work in Game HUD? Many do. Game HUD runs Lua 5.4 with the same `gg` functions for searching, refining, editing, prompts and speed. Android-only functions, like pausing the process, aren't available, and scripts written around Android memory regions may find different results. ### Does Game Speed overclock my iPhone? No. Game Speed changes how fast the game's clock runs, so the game plays faster or slower. Your processor runs exactly as it always does. ### How much does Game HUD cost? $1.99 one-time, or it's included with CarterWare [Tweak Pass](https://tweaks.carterware.net/pass.html) while your pass is active. --- # Rewind guide: screen history, search and privacy URL: https://tweaks.carterware.net/docs/rewind.html Updated: 2026-10-27 Version 1.1.0 · iOS 16 – 17 · Tested on iOS 16.3.1 and 17.1 · $2.99 one-time, or included with Tweak Pass Set up Rewind: what it saves and skips, where your history is stored, how to scrub the timeline and search what you saw, pause recording and delete it. Rewind saves what's on your screen every few seconds and reads the text in it, right on your iPhone. Later you can scroll back through your day in the Rewind app, or search for any word you saw in any app. ## Before you start - A rootless jailbroken iPhone on iOS 16 or 17, such as Dopamine. Not sure which jailbreak fits your iPhone? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Sileo or Zebra with the CarterWare repo added. See [Install CarterWare tweaks](https://tweaks.carterware.net/docs/install.html). Sileo installs the two packages Rewind needs (ElleKit or Substrate, and PreferenceLoader) for you. - Free storage. Rewind keeps up to 2 GB of history by default, and you can choose anywhere from 1 GB to 10 GB. - Rewind costs $2.99 one-time, or it's included with [Tweak Pass](https://tweaks.carterware.net/pass.html). See [Buying and restoring](https://tweaks.carterware.net/docs/buying.html). Rewind is a record of your screen, so here is exactly what it keeps. ### What Rewind saves Every few seconds (5 by default), Rewind takes a picture of the whole screen, a little smaller than full resolution on most iPhones, with the app's name and the time. A frame shows exactly what you saw, so a notification banner on screen at that moment is in it too. Rewind then reads the text in the frame with Apple's built-in text recognition, on your iPhone, so you can search it. ### When Rewind saves nothing - While your iPhone is locked, so the Lock Screen and passcode screen are never saved. - While the screen is off. Rewind doesn't run at all then, so it never wakes your iPhone. - While a password field is active in any app or web page. Nothing on screen is saved until you leave the field. - While an excluded app is open. Password managers, Wallet and Health are excluded from the start, and you can add any app. The Rewind app itself is never saved. - On the Home Screen, unless you turn on **Home Screen**. - In Low Power Mode, unless you turn off **Pause in Low Power Mode**. - While recording is paused or **Enabled** is off. - When the screen hasn't changed since the last frame from that app, and for a moment while you switch apps. ### Where your history is stored Everything stays in one folder on your iPhone, `/var/mobile/Library/Rewind`: the frames, small thumbnails, and a search index with the text Rewind read. Saved frames and thumbnails are encrypted by iOS whenever your iPhone is locked, so they can't be read until you unlock. The search index is encrypted until you first unlock after a restart. Nothing leaves your iPhone. Rewind has no account, no cloud and no code that sends anything over the internet, and text recognition runs on the iPhone. A frame only leaves if you share or copy it yourself. ### How long history is kept Frames older than **Keep History For** (1 week by default) delete themselves. If history grows past **Storage Limit** first, the oldest frames are deleted to make room. You can also delete any frame, the last 15 minutes, the last hour or everything yourself. Removing Rewind in Sileo deletes all of your history and its settings; updating Rewind keeps them. ## Set it up 1. Install **Rewind** from the CarterWare repo in Sileo, then respring (restart the Home Screen) when Sileo offers it. A **Rewind** app appears on your Home Screen. 2. Open **Settings → Rewind → Excluded Apps** and turn on any app you never want saved, such as your banking app or Messages. Password managers, Wallet and Health are already on. 3. Use your iPhone as usual for a minute or two. Read a web page or scroll through an app. 4. Open the **Rewind** app and unlock it with Face ID or your passcode. The top of the screen says **Recording** with a red dot, and your recent screens fill the strip along the bottom. 5. Tap the magnifying glass and type a word you just saw. Matching screens appear, newest first. ## Using the app ### Timeline The app opens here. A large preview of one frame fills the middle, with the app's icon, name and time above it. The strip along the bottom holds every frame in order, oldest on the left. Drag it to scrub; the red line marks the current frame, and you feel a tap each time you cross into a different app. - Swipe left or right on the preview to step one frame at a time. - Tap the preview to open the frame in the viewer. - The button at the top shows the recording status: **Recording**, **Paused**, **Paused Until** a time, or **Off**. Tap it to pause or resume (see Common tasks). - The magnifying glass at the top right opens Search. - The **…** button at the top left has **Jump to Now**, **Go to Date…**, **Delete Last 15 Minutes**, **Delete Last Hour**, **Delete Everything…** and **Rewind Settings**. ### Search Type in the box that says **Words you saw on screen**. Results update as you type, newest first and grouped by day, each with a thumbnail, the app, the time and the matching text in bold. - Search matches the start of words, so `sett` finds "Settings". With several words, a frame must contain all of them. - The filter button at the top right opens **Search In**: **All Apps** or any app in your history, with its frame count. The button turns red while a filter is on. ### Frame viewer The viewer shows one frame full size. If you came from Search, your matches are outlined in red. - Pinch or double-tap to zoom. - **Show Text** (the text frame button in the toolbar) outlines every line Rewind read. Tap a line to copy it. - **Copy Text** copies all the text. **Share** shares the image. - Press and hold a line for **Copy Line**, **Copy All Text** and **Copy Image**. If the line has a web address, email address or phone number, you also get **Open**, **Email** or **Call**. - The open-app button jumps into the app the frame came from (it's hidden for Home Screen frames). - The trash button deletes the frame. From Search, the clock button at the top right shows the frame in the timeline. ## Common tasks ### Find something you saw earlier 1. Open **Rewind** and tap the magnifying glass. 2. Type a word or two you remember, such as a name or a price. 3. If you know which app it was in, tap the filter button and pick that app. 4. Tap a result. Hold a line to copy it, or tap the open-app button to go back there. ### Pause recording for a while 1. Open **Rewind** and tap **Recording** at the top. 2. Choose **Pause for 15 Minutes**, **Pause for 1 Hour**, **Pause Until Tomorrow** or **Pause Until I Resume**. 3. The button changes to **Paused Until** the time, or **Paused**. Timed pauses end on their own. To resume early, tap **Paused**. To stop Rewind without uninstalling, turn off **Enabled** in **Settings → Rewind**. ### Never save a certain app 1. Open **Settings → Rewind → Excluded Apps**. 2. Search for the app and turn its switch on. It moves to **Never Saved**. Frames already saved from that app stay until they expire or you delete them. ### Delete recent history - **One frame:** open it in the viewer, tap the trash button, then **Delete Frame**. - **The last 15 minutes or hour:** in the timeline, tap **…** and choose **Delete Last 15 Minutes** or **Delete Last Hour**. - **Everything:** tap **…** → **Delete Everything…** in the app, or **Settings → Rewind → Delete All History**. Both ask you to confirm and can't be undone. ### Use less storage Lower **Storage Limit** or **Keep History For** in **Settings → Rewind**. Older frames are removed right away. Choosing **10 Seconds** or **15 Seconds** for **Save Every** also saves fewer frames. ## Settings explained Everything lives in **Settings → Rewind**. Changes apply right away, no respring needed. Rewind saves your screen every few seconds while it is changing and reads the text right on your iPhone, so you can scroll back through your day or search for anything you've seen. Nothing ever leaves your iPhone. - **Enabled** (Switch · on by default): Master switch. Turn it off and Rewind stops saving your screen; your history stays until it expires or you delete it. - **Open Rewind** (Button): Opens the Rewind app at the newest frame, the same as tapping its Home Screen icon. ### Recording A frame is only saved when the screen has changed, and never while your iPhone is locked. - **Save Every** (Choice: 3 Seconds, 5 Seconds, 10 Seconds, 15 Seconds · default 5 Seconds): How often Rewind can save a frame while the screen is changing: every 3, 5, 10 or 15 seconds. Shorter catches more but uses more storage and battery. - **Home Screen** (Switch · off by default): Also saves the Home Screen. Off by default, since the Home Screen rarely has anything worth searching. - **Pause in Low Power Mode** (Switch · on by default): Stops saving while Low Power Mode is on, to spare your battery. Turn it off to keep recording in Low Power Mode. ### Privacy Password fields, the passcode screen and the apps you exclude are never saved. Password managers, Wallet and Health are excluded from the start. Saved frames are encrypted while your iPhone is locked. - **Excluded Apps** (Opens a screen): Opens the apps Rewind never saves. See [Excluded Apps](#excluded-apps) below. - **Require Face ID or Passcode** (Switch · on by default): Asks for Face ID or your passcode when you open the Rewind app, and again after it has been in the background for more than 30 seconds. On by default; if your iPhone has no passcode, it opens without asking. ### Storage Older frames delete themselves. If the storage limit is reached first, the oldest frames are deleted to make room. - **Keep History For** (Choice: 1 Day, 3 Days, 1 Week, 2 Weeks, 30 Days · default 1 Week): How far back your history goes: 1 day, 3 days, 1 week, 2 weeks or 30 days. Older frames and their text are deleted automatically, and shortening it deletes them right away. - **Storage Limit** (Choice: 1 GB, 2 GB, 5 GB, 10 GB · default 2 GB): The most space your saved frames can use: 1, 2, 5 or 10 GB. When history reaches it, the oldest frames are deleted to make room. - **Using** (Status) - **Delete All History** (Button): Deletes every saved frame and all of its text from your iPhone after you confirm. This can't be undone. Rewind by CarterWare. - **Report a Bug** (Button): Opens the CarterWare bug form in your browser with your Rewind version, iOS version and iPhone model filled in. ### Excluded Apps A searchable list of every app on your iPhone, Apple's included, each with a switch. Apps that are switched on are grouped at the top under **Never Saved**, and Rewind saves nothing while they're open. Password managers (such as 1Password, Bitwarden, LastPass and Dashlane), authenticator apps, Wallet and Health start switched on; you can turn any of them off. ### Using Shows the space your history takes and how many frames it holds, for example **812 MB · 4,210 frames**, or **Nothing saved** when it's empty. ## Troubleshooting ### The timeline says Nothing Saved Yet - Check the button at the top of the timeline. If it says **Off** or **Paused**, tap it. - Low Power Mode pauses Rewind unless you turn off **Pause in Low Power Mode**. - The app you used may be excluded, or you stayed on the Home Screen with **Home Screen** off. - Give it a moment. New frames appear a few seconds after they're saved. ### Using is stuck on Starting… The part of Rewind that reads text and keeps the history hasn't reported in. Restart your iPhone and re-jailbreak, or reinstall Rewind in Sileo, which restarts it. Your history is kept when you reinstall over the top. ### Search can't find a word I know I saw - Rewind saves every few seconds and only when the screen changed, so something on screen for a moment can be missed. - Text has to be readable. Tiny, blurry or stylized text, such as some game fonts, can be misread. - Check the filter button. If it's red, you're searching one app; switch back to **All Apps**. - The frame may have expired under **Keep History For** or **Storage Limit**. ### Rewind asks for Face ID every time I open it Rewind locks again once it has been in the background for more than 30 seconds. If you don't want the lock, turn off **Require Face ID or Passcode**. If your iPhone has no passcode, Rewind opens without asking. ### History takes more space than my Storage Limit Old frames are cleaned up every 15 minutes or so, so history can go a little over for a short time. The limit counts frames and thumbnails, not the small search index. If something else isn't right, use **Report a Bug** at the bottom of **Settings → Rewind**, or the [bug form](https://tweaks.carterware.net/report.html). More fixes are in [Troubleshooting](https://tweaks.carterware.net/docs/troubleshooting.html). ## Questions ### Does Rewind upload my screen anywhere? No. Rewind has no account, no cloud and nothing that sends your history over the internet. Frames and their text are saved, read and searched only on your iPhone. A frame leaves only if you share or copy it yourself. ### Will Rewind save my passwords? Rewind saves nothing while a password field is active, in apps and on web pages, and never saves the passcode screen because it doesn't record while your iPhone is locked. Password managers, Wallet and Health are excluded from the start. Anything else you type in a normal text field can be saved, so exclude apps you consider private. ### Where is my Rewind history stored? In `/var/mobile/Library/Rewind` on your iPhone. Saved frames are encrypted by iOS whenever your iPhone is locked. Removing Rewind in Sileo deletes the folder and everything in it. ### How do I delete my Rewind history? Open **Settings → Rewind** and tap **Delete All History**, or in the Rewind app tap **…** → **Delete Everything…**. The same menu can delete just the last 15 minutes or the last hour. ### Does Rewind drain the battery? Rewind only saves when the screen actually changed, never while the screen is off or locked, and reads text in the background at low priority. It pauses itself in Low Power Mode. ### What languages can Rewind read? Rewind uses Apple's on-device text recognition, so it reads English and the other languages iOS text recognition supports. ### How much does Rewind cost? $2.99 one-time, or it's included with CarterWare [Tweak Pass](https://tweaks.carterware.net/pass.html) while your pass is active. --- # CarterIDE guide: build, install and edit tweaks on your iPhone URL: https://tweaks.carterware.net/docs/carteride.html Updated: 2026-10-27 Version 1.3.2 · iOS 15 – 17 · Tested on iOS 17.1 · $0.99 one-time, or included with Tweak Pass Set up CarterIDE on Dopamine: get Doctor green, build and install a tweak on the phone, add an API key, and use the beta Coding Agent safely. CarterIDE is a code editor, terminal and build system that runs on your jailbroken iPhone. You can create a tweak, build it, install it and respring (restart the Home Screen) without a computer, and, if you want, ask an AI model to help edit your project. ## Before you start - **Jailbreak:** Dopamine (rootless) on iOS 15 or later. Creating, building, installing and respringing is tested end to end on iOS 17.1. On iOS 15 and 16 the app and Doctor work, but the build-and-install loop has had less testing. - **Build tools:** CarterIDE builds with Theos. You don't need to install anything first: the app's **Doctor** screen checks each tool and installs what's missing. - **Coding Agent (optional):** needs an API key for an OpenAI-compatible service, such as OpenAI, or Ollama or LM Studio on your own computer. The provider bills you separately. Everything else works without a key. - **Settings pane:** **Settings → CarterIDE** needs PreferenceLoader, but all real options are inside the app. - **Price:** $0.99 one-time, or included with Tweak Pass. See [buying.html](https://tweaks.carterware.net/docs/buying.html). > **Note:** The Coding Agent is a beta. It works best for small, specific changes, and its results depend heavily on the model you pick. Tweaks written in Swift are untested when built on the phone; use Objective-C or Logos (`.x` / `.xm`) for now. ## Set it up 1. Add the CarterWare source and install **CarterIDE** (see [install.html](https://tweaks.carterware.net/docs/install.html)). Its icon appears on the Home Screen; no respring needed. 2. Open CarterIDE, read the three intro cards and tap **Get started**. 3. If **Toolchain Doctor** opens, tap **Start carterd** on the **carterd helper** row. This helper installs packages and resprings for you. 4. Tap **Install missing (…)** to install any red tools. If the **Theos** row is red, tap its **Show Fix**: the Terminal opens with the install command typed. Enter your `sudo` password, wait for it to finish, then tap **Refresh**. 5. When **Required for Build** shows 9/9 green, close Doctor. 6. On **Add your API key**, paste a key (see "Add an OpenAI API key"), or tap **Use Offline Recipes instead** or **Skip for now**. 7. Test it: in **Files**, tap **Recipes**, pick **SpringBoard respring banner** and tap **Create**. Then open **Build** and tap **Build · Install · Respring**. You know it worked when the Home Screen restarts and, about three seconds later, an alert titled with your project name says "Tweak loaded on SpringBoard." Uninstall the test tweak in Sileo or Zebra under your project name. ## Using the app On iPhone there are five tabs: **Code**, **Build**, **Files**, **Agent** and **Tools**. The top bar has a searchable command list, a terminal button, a button that opens the **Console**, and a dot that's green when the install helper is online. ### Code Your open files as tabs, with syntax colors. **Modified** marks unsaved changes; tap **Save** to write them. The **Deploy** strip at the bottom expands to **Build**, **Install**, **Respring**, **Logs** and **Build · Install · Respring**. ### Build **Build · Install · Respring** runs all three steps and stops at the first failure, so a broken build is never installed. **Build**, **Install** and **Respring** run one step each. Cards below show the built package, error and warning counts, and any **Pending diffs** from the Agent. ### Files **Workspaces** lists your projects and **Files** the current project's files. **+** starts a new project. Folders you add to `Documents/CarterIDE` yourself, for example with `git clone`, appear under **Other folders in Documents/CarterIDE**. ### Agent The Coding Agent chat has three modes: - **Ask** answers questions and never changes files. - **Edit** (default) proposes changes as diffs. Nothing is written until you tap **Accept**. - **Agent** edits files, runs commands and builds on its own, then lists every change so you can **Keep** or **Revert** it. The red stop button cancels a run. In Agent mode, anything beyond read-only commands (like `ls`, `grep`, `git status` or a plain `make`) asks **Run this command?** with **Run**, **Allow All This Run** and **Deny**. The book icon opens **Offline Recipes**, which need no key. ### Tools - **Doctor** checks every tool needed to build and install. Red rows get **Fix (apt)**, **Show Fix** or **Start carterd**. - **Source Control** shows Git changes with **Stage**, **Unstage**, **Commit** and **Initialize Repository**. - **Inspect** lists running **Processes** (tap **Logs** for a process's last two minutes of logs), installed **Tweaks** and **Apps**, and recent crash logs under **Debug**. - **Packaging** edits your package's ID, name, version and dependencies; tap **Save control**. - **Search** searches the whole project. **Settings** is covered under "Settings explained". ### Console Five tabs: **Terminal**, **Problems** (build errors; tap one to jump to it), **Output** (the live build log), **Diffs** and **Logs** (logs pulled after an install). On iPad, the app uses a sidebar and bottom panel instead of tabs. ## Common tasks ### Make a new tweak project 1. In **Files**, tap **+**. 2. Type a **Project name**, choose **Theos Tweak** (or **SwiftUI App**, **Command Line** or **Web**) and tap **Create**. 3. The project is saved in its own folder in `Documents/CarterIDE`, and its main file opens. 4. Before sharing it, open **Tools → Packaging**, change **Package** to your own ID (new projects start with a placeholder) and tap **Save control**. ### Build, install and respring a tweak 1. Check that the dot in the top bar is green. If not, open **Tools → Doctor** and tap **Start carterd**. 2. Open **Build** and tap **Build · Install · Respring**. 3. If the build fails, it stops there and lists errors in **Problems**. Tap one to jump to it, or tap **AI Fix** for a proposed change. Every built package is also copied to `Documents/CarterIDE/build/`, where Filza can find it. ### Add an OpenAI API key 1. Open **Tools → Settings → Coding Agent**. 2. Keep **Base URL** as `https://api.openai.com/v1`, paste your key into **API Key**, and enter a **Model** your account can use (default `gpt-4.1`). 3. Tap **Test API Key**. "Key OK" means it works; otherwise the message says what's wrong. ### Use a model running on your computer 1. Make the server accept network connections: start Ollama with `OLLAMA_HOST=0.0.0.0`, or turn on local network serving in LM Studio. 2. In **Tools → Settings → Coding Agent**, set **Base URL** to your computer's network address, port and `/v1`, for example `http://192.168.1.20:11434/v1` for Ollama. Don't use `127.0.0.1` or `localhost`; on the phone those mean the phone. 3. Type anything into **API Key** (it can't be empty) and the model's exact name into **Model**. 4. Tap **Test API Key**. If it can't connect, check the port and that both devices share Wi-Fi. ### Ask the Agent to change your tweak 1. Open the project, then the **Agent** tab, and choose **Edit**. 2. Ask for one small change, such as "Change the log message in Tweak.xm to say Hello." 3. **Accept** or **Reject** each diff, then build. Each message starts a fresh run: the model doesn't see your earlier messages, only your new request and the project files it reads. Put everything it needs in one message. ### Undo changes the Agent made 1. In Edit mode, tap **Reject**; nothing was written yet. 2. In Agent mode, tap **Revert** on each change in **Review**, or **Revert all**. 3. If you stopped an Agent-mode run part way, files it already wrote stay changed and aren't listed. CarterIDE saves a snapshot before each Agent-mode run, but this version has no button to restore it. Commit in **Tools → Source Control** before big requests so you can run `git restore .` in the terminal to go back. ## Settings explained The **Settings → CarterIDE** pane only links into the app; every option lives in CarterIDE under **Tools → Settings**. Every CarterIDE setting — API key, model, Agent command approval, build targets and Doctor — lives inside the app (Settings tab). Your key is stored in the iOS Keychain and survives relaunch. - **Open CarterIDE** (Button): Opens the CarterIDE app. Every real CarterIDE setting (API key, model, editor, build targets) is inside the app under Tools → Settings. - **Where to add API key** (Button): Shows where to add your Coding Agent key: in CarterIDE, Tools → Settings → Coding Agent, then Base URL, API Key, Model and Test API Key. Offline Recipes need no key. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug form in Safari with your CarterIDE version, iOS version and iPhone model already filled in. Describe what you did and what went wrong. ### In the app: Tools → Settings **Phone UI:** **Force phone UI (even on iPad)**; **Show Doctor on launch when broken** opens Doctor at launch if a build tool is missing; **Auto-attach logs after install** pulls your tweak's last two minutes of logs into **Console → Logs** after each install (it takes about ten seconds). **Coding Agent:** **Base URL**, **API Key** and **Model**, plus **Test API Key**. **Max agent steps** (1–30, default 16) caps how many rounds one request can take. **Default mode** sets Ask, Edit or Agent. **Stream agent tokens** shows replies as they're written. **Ask before Agent runs shell commands** shows the Run / Deny card; turned off, Agent mode can run any command as the `mobile` user without asking. **Editor:** **Font size**, **Show hidden files**, **Auto-save before build** (off means builds use what's saved on disk), **Word wrap** and **Minimap**. **IPA Install Backend:** how app (`.ipa`) packages install; leave it on automatic. **Default log process** is whose logs are pulled when your project doesn't name one. **Helper (carterd):** shows **Online** or **Offline**, with **Recheck connection**. The helper only answers the CarterIDE app itself. **Remote Build Targets:** optionally add a Mac or Linux machine over SSH, used only when the phone's own tools are missing. **Export release bundle** copies built packages to a dated folder in `Documents/CarterIDE-Releases`. Settings save when you tap **Save Settings** or close the screen. ## Troubleshooting ### "carterd offline" and Install or Respring won't run Open **Tools → Doctor**, tap **Start carterd**, then **Refresh**. If it stays red, respring and try again, or reinstall CarterIDE, which sets the helper up fresh. ### Doctor still shows Theos as missing Let the install finish in the terminal without errors, then tap **Refresh**. If you installed Theos somewhere unusual, reinstall it using **Show Theos install steps**. ### The build fails immediately Make sure every row under **Required for Build** in Doctor is green, then read the first error in **Console → Output**. ### A tweak I built sends the phone into Safe Mode Your tweak is crashing the Home Screen. Exit Safe Mode, uninstall it, fix the code and rebuild. If it's in Swift, try Objective-C or Logos. ### Test API Key fails "Invalid API key" means the key is wrong or revoked. "Model not found" means your account can't use that **Model**. "Endpoint not found" usually means the **Base URL** should end in `/v1`. ### "Model reply was not valid JSON" or "step limit reached" The first means the model's answer couldn't be read; try a stronger model. The second means the request needed more rounds than **Max agent steps**; split the task or raise the limit. ## Questions ### Where is my API key stored? In the iOS Keychain on your iPhone, marked for this device only, so it isn't copied to other devices. It survives relaunches and updates. On the rare setup without Keychain access, it's kept in CarterIDE's settings file, readable only by your user account. To delete it, clear **API Key** in **Tools → Settings** and tap **Save Settings**. ### What does CarterIDE send to the AI provider? Only what the Agent needs, only to the Base URL you entered, and only when you send a message or tap **Test API Key**. A request contains your message, the Agent's instructions (with your project's folder path and type), and what the Agent looked at during that run: file contents, file lists, search results, Git diffs, command output and build logs. Doctor's network check makes one request to OpenAI's address with no key or code. ### Do I need an API key to use CarterIDE? No. The editor, terminal, Doctor, building, installing, Git, Inspect and Offline Recipes all work without one. Only the Agent tab and **AI Fix** need a key. ### Can the Coding Agent damage my phone? It's kept to your project: it can't edit files outside the project folder, has no install or respring step of its own, and in Agent mode asks before running anything beyond read-only commands, unless you turn that off. Commands run as `mobile`, not root. Agent mode does write files directly, so commit before big requests. ### Where are my projects stored? In `Documents/CarterIDE`, one folder per project. Built packages are also copied to `Documents/CarterIDE/build/`. --- # Mountaineer guide: find out why something crashed, share the log, use App Shield URL: https://tweaks.carterware.net/docs/mountaineer.html Updated: 2026-10-27 Version 1.4.13 · iOS 15 – 17 · Tested on iOS 17.1 · Free Use Mountaineer on Dopamine to find out why your iPhone or an app crashed, read and share crash reports, and turn App Shield on or off. Mountaineer keeps a diary of every Home Screen restart and crash on your jailbroken iPhone and explains each one in plain English. It also has App Shield, which can keep tweaks out of App Store apps that refuse to run on a jailbroken phone. ## Before you start - **Jailbreak:** Dopamine (rootless) on iOS 15 or later, with ElleKit or Substrate and PreferenceLoader. Your package manager installs these automatically if needed. - **Tested:** the diary, Timeline, Clear Diary, App Shield's **Disable tweaks in apps** and respring labels are tested on iOS 17.1. On iOS 16 the app and respring labels work; other parts have had less testing there. - **Price:** free. No account needed. - **What it can't do:** Mountaineer doesn't prevent crashes and isn't a replacement for Safe Mode. It reports what it saw, and it never names a tweak as the definite culprit; a tweak on a crash's stack is a lead, not proof. ## Set it up 1. Add the CarterWare source and install **Mountaineer** (see [install.html](https://tweaks.carterware.net/docs/install.html)). 2. Respring (restart the Home Screen) when your package manager offers to. Mountaineer starts recording from the next Home Screen launch. 3. Open the **Mountaineer** app from your Home Screen and go to the **Doctor** tab. 4. Check the **Tweak** row. It should say "loaded" with a recent heartbeat. If it says "respring once", respring again. You know it's working when the status card at the top of Doctor says **All clear** (or **Watching**, if there were recent unclean exits) and the **Timeline** tab has a first row such as "SpringBoard started (first run)". On its first scan, Mountaineer also imports any crash reports iOS saved in the last seven days, so you may see older entries straight away. ## Using the app The app has four tabs: **Timeline**, **Apps**, **Tweaks** and **Doctor**. Pull down on any list, or tap the refresh button, to check for new crash reports. ### Timeline Every event, newest first: resprings, reboots, crashes and memory kills. Each row shows a plain title, how long ago it happened, the crash type and, when there is one, the code location where it crashed (the "faulting frame"). The control at the top switches between **All**, **Crashes** (crashes and unclean exits only) and **Hide noise** (hides crashes from apps that are known to crash a lot on jailbroken phones). The search bar, **Filter events**, matches titles, app names, crash types and tweak names. Common titles you'll see: - **Intentional respring:** you, your package manager or Mountaineer's own **Respring** button restarted the Home Screen on purpose. - **Unclean SpringBoard exit:** the Home Screen stopped without saying goodbye, from a crash or a forced kill. - **SpringBoard killed for using too much memory:** iOS shut the Home Screen down for memory, with the peak in MB. - **Respring didn't come back cleanly:** a respring was requested but the Home Screen didn't come back normally, usually because a tweak crashed it into Safe Mode. - **Userspace reboot** and **Device restarted:** the whole system restarted, partly or fully. ### Event details Tap a row to open it. **What Happened** shows when it happened, the **Process** and **Bundle ID**, **Crash class**, **Faulting frame**, **Exception**, **Reason** and the **Report path** of iOS's original crash file. **Suspected Jailbreak Images** lists tweak files that appear in the crash's backtrace, with the reminder that being there isn't proof. **Environment** shows a noise tag when the app is one that often crashes on its own. Under **Actions**, **Copy summary** copies this one event and **Reveal path** shows the crash file's location with **Copy path**. ### Apps and Tweaks **Apps** (titled **App Crashes**) lists app crash reports from the last seven days. **Tweaks** (titled **Tweak Faults**) lists only crashes with a tweak file on the backtrace. Both open the same detail screen. ### Doctor The status card sums things up: **All clear**, **Watching** (unclean exits in the last 48 hours), **Needs attention** (a health check failed) or **Paused** (Mountaineer is off). Below it are the **Enabled** switch, the App Shield switches with a **Shield status** line, and the **Health** rows: **Device**, **Jailbreak**, **Diary**, **Tweak**, **Crash reports**, **Unclean (48h)**, **App crashes** and **Last**. At the bottom are **Copy Report**, **Clear Diary** and **Respring**. ## Common tasks ### Find out why something crashed 1. Open **Mountaineer** and pull down on **Timeline** to refresh. 2. Find the row that matches the time it happened. Tap **Crashes** at the top to hide the rest. 3. Tap the row and read the title, **Crash class** and **Reason**. 4. Look at **Suspected Jailbreak Images**. If a tweak is listed, that tweak is a good first suspect. Check the Tweaks tab to see whether it shows up in other crashes too. 5. Test the suspect: turn that tweak off (or uninstall it), repeat what you were doing, and see whether a new crash row appears. If the row is a memory kill, no tweak is named because there's no crashing stack. Too many Home Screen tweaks, a leaking tweak or a heavy widget or theme are the usual causes. ### Check whether tweaks are making an app crash 1. Open **Doctor** and turn on **Disable tweaks in apps**. 2. Close the app from the app switcher and open it again. 3. If the crashes stop, a tweak was involved. Turn the switch back off and test your tweaks one at a time. This switch affects every App Store app, so turn it off again when you're done. ### Share a crash log with a developer 1. Open **Doctor** and tap **Copy Report**. The full report is copied to your clipboard. The same button is in **Settings → Mountaineer**. 2. Paste it into the developer's bug form, GitHub issue or Discord. It's formatted to read cleanly in those places. 3. Add what you were doing, what you expected and what happened. The report starts with a short **What happened** list, followed by your device model, iOS version, free storage, installed CarterWare packages, recent crash summaries with their file paths, and the last 25 diary rows in a collapsible block. Read it before posting publicly. Mountaineer never sends anything anywhere itself. To share only one event, open it and tap **Copy summary** instead. If the problem is with Mountaineer itself, use **Settings → Mountaineer → Report a Bug** and paste the report there. ### Use App Shield for an app that hates jailbreaks 1. Open **Doctor** in the app, or **Settings → Mountaineer**. Make sure **Enabled** is on. 2. Turn on **Disable tweaks in apps** to stop other tweaks from loading into App Store and sideloaded apps. 3. If the app still complains, also turn on **Hide jailbreak from apps**. Common jailbreak folders and files then look missing to those apps. 4. When **Relaunch apps to apply** appears, tap **Respring** to restart every app now, or **Later** to apply it as each app next opens. App Shield never touches Apple apps, Settings, the Home Screen, Sileo, Zebra, Filza, CarterWare apps or apps your jailbreak installed. Hiding is light: apps with strong jailbreak detection may still notice. ### Turn App Shield off 1. Turn off **Disable tweaks in apps** and **Hide jailbreak from apps** (or turn off **Enabled** to switch off everything). 2. Close the affected app from the app switcher and open it again so your tweaks load into it. ### Clear the history 1. Open **Doctor** and tap **Clear Diary**, or use **Settings → Mountaineer → Clear Diary**. 2. Tap **Clear** to confirm. This deletes every event on the phone. Crash reports iOS saved before now won't be imported again, so after your next respring the Timeline starts with a single row. ### Respring without a false alarm Use **Respring** in the Doctor tab or in **Settings → Mountaineer**. It's logged as an **Intentional respring**. Resprings from Sileo, Zebra and `sbreload` are recognised too, but `killall SpringBoard` looks exactly like a crash and is logged as an unclean exit. ## Settings explained **Settings → Mountaineer** has the same switches and actions as the app's Doctor tab. ### Mountaineer Enabled controls the crash diary and App Shield. Off stops new diary events and turns App Shield off in every app. Open the Mountaineer app for Timeline · App Crashes · Tweak Faults. Copy Report leads with “What happened”. - **Enabled** (Switch · on by default): Master switch for the crash diary and App Shield. Off stops recording new events and turns App Shield off in every app; your existing history is kept. ### App Shield For App Store and sideloaded apps only — SpringBoard, Settings, Apple apps, package managers, Filza, and CarterWare stay fully tweaked. “Disable tweaks in apps” stops other Substrate/ElleKit tweaks from loading into those apps. “Hide jailbreak from apps” makes common jailbreak paths look missing to them; it is light hiding, not a bypass for apps with strong detection. Side effect: tweak files live under /var/jb too, so with hiding on no other tweaks load into those apps either — they run fully stock. With both off, apps are left untouched. Changes apply the next time each app opens. - **Disable tweaks in apps** (Switch · off by default): Stops other tweaks from loading into App Store and sideloaded apps. Use it for an app that refuses to run or crashes with tweaks; it applies the next time each app opens, and affects every such app. - **Hide jailbreak from apps** (Switch · off by default): Makes common jailbreak folders and files look missing to App Store and sideloaded apps. Light hiding only, and it also keeps every other tweak out of those apps. ### Doctor Loading… - **Refresh Doctor** (Button): Re-reads the diary and health checks and updates the Doctor and Diary summaries on this screen. ### Diary Loading… - **Copy Report** (Button): Copies a full Markdown report to the clipboard: what happened, your device and iOS, recent crash summaries and the latest diary rows. Paste it into a bug report or Discord. - **Clear Diary** (Button): Deletes all event history on this phone after you confirm. Crash reports saved before now won't be imported again. Marks this respring as intentional so the next launch is not logged as a crash. Prefer this over killall when testing. - **Respring** (Button): Restarts the Home Screen and logs it as an intentional respring, so it doesn't show up as a crash. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug form in Safari with your Mountaineer version, iOS version and iPhone model filled in. Paste a Copy Report into it for the fastest fix. ### Doctor and Diary summaries The **Doctor** and **Diary** sections of the Settings pane fill in their text when you open the screen. **Doctor** shows the Mountaineer version, iOS version, device and jailbreak, whether the diary can be saved, whether crash reports can be read, the tweak's heartbeat, event counts (including unclean exits in the last 48 hours), free storage and the current App Shield state. **Diary** lists the eight newest events, marked ⚠ for unclean exits, ✓ for intentional resprings and ✗ for crashes. Tap **Refresh Doctor** to update both. ## Troubleshooting ### The Timeline is empty That usually just means nothing has gone wrong. If you expected rows, open **Doctor**: make sure **Enabled** is on and the **Tweak** row says "loaded". If it says "respring once", respring and check again. ### Doctor says the diary is "NOT writable" Reinstall Mountaineer from your package manager. Installing fixes the ownership of its diary folder. ### Every respring shows as "Unclean SpringBoard exit" You're probably restarting with `killall SpringBoard` or a tool that kills the Home Screen outright. Use Mountaineer's **Respring** button, your package manager's respring, or `sbreload`; those are logged as intentional. ### SpringBoard crashed but no tweak is named When a tweak crashes the Home Screen into Safe Mode, the jailbreak often catches it before iOS writes a crash report, so there's no stack to read. You'll see **Respring didn't come back cleanly** or **Unclean SpringBoard exit**. Use the time of the row and think about what you installed or changed just before. ### A tweak stopped working inside one app Check whether App Shield is on. **Disable tweaks in apps** and **Hide jailbreak from apps** both keep every other tweak out of App Store apps, not just the one you were worried about. Turn them off, then close and reopen the app. ### The app still detects my jailbreak with App Shield on App Shield's hiding is light and only covers common jailbreak paths. Apps with stronger detection can still notice. Mountaineer can't bypass those. ### Lots of TikTok or Shortcuts crashes Some apps and system services crash often on jailbroken phones on their own. Those rows get a noise tag. Tap **Hide noise** at the top of the Timeline to hide them. ## Questions ### Does Mountaineer stop crashes? No. It records and explains crashes, and App Shield can keep tweaks out of App Store apps. It isn't Safe Mode and can't stop the Home Screen from crashing. ### Can Mountaineer tell me which tweak caused a crash? Not with certainty. It lists tweak files that appear on the crashing code's backtrace, which is a strong lead but not proof. Confirm by turning the suspect off and seeing whether the crash comes back. ### Does App Shield work per app? No. In this version, both App Shield switches apply to every App Store and sideloaded app at once. Apple apps, package managers, Filza, CarterWare apps and apps installed by your jailbreak are always left alone. ### Does Mountaineer upload my crash logs? No. Mountaineer has no network code. Reports only leave your phone when you copy and paste them yourself. ### How much history does Mountaineer keep? The most recent 200 events. When you first install it, it also imports crash reports from the previous seven days. **Clear Diary** deletes everything. ### Is Mountaineer free? Yes. Mountaineer is free on the CarterWare source, with no account needed. --- # CarterBlock guide: block ads in apps, games and Safari URL: https://tweaks.carterware.net/docs/carterblock.html Updated: 2026-10-27 Version 1.2.12 · iOS 15 – 17 · Tested on iOS 17.1 · Free Set up CarterBlock to block ads and trackers in apps, games and Safari, exclude anti-cheat games, allowlist sites and add your own rules. CarterBlock stops ad and tracker requests inside your apps, games, in-app browsers and Safari. It runs inside each app, so you can keep it out of specific apps and see exactly what it blocked. ## Before you start - A Dopamine rootless jailbreak on iOS 15 or later, with ElleKit and PreferenceLoader. Not jailbroken yet? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - CarterBlock is free. - It covers App Store apps, jailbreak apps, games, the web pages inside them, Safari, and the Safari sheets apps open for sign-ins. Apple's other apps, widgets and other app extensions are left alone. - It is not system DNS. Apps that use their own encrypted DNS or hard-coded IP addresses can still get through, and so can ad hosts listed inside a video playlist. - Online games with anti-cheat can treat any hooking as tampering. Exclude them before you play (see below). ## Set it up 1. Add the CarterWare source `https://tweaks.carterware.net/` in Sileo or Zebra ([how to add a source](https://tweaks.carterware.net/docs/install.html)) and install **CarterBlock**. 2. Open **Settings → CarterBlock**. **Enabled**, **Game Ad Patterns**, **Analytics & Trackers** and **Block in Safari** are already on. 3. Optional: tap **Download Hosts List** for a much bigger list of ad domains. When it finishes you see **Hosts Updated** with the number of domains saved. 4. Close any app that was already open (swipe it away in the app switcher). CarterBlock starts working in an app the next time it launches. 5. Tap **Reset Stats**, use an ad-heavy app or game for a minute, then come back. If **Blocked** has gone up and **Last Blocked** shows an ad domain, it's working. After that, setting changes reach open apps within a few seconds. ## Common tasks ### Keep CarterBlock out of an online game 1. Open **Settings → CarterBlock → Choose Apps**. 2. Search for the game and turn its switch on. 3. Blocking stops in that game right away. Close and reopen the game so CarterBlock is fully removed from it. ### Fix an app or site that stopped working 1. Repeat the action that failed, then read **Last Blocked** in **Settings → CarterBlock**. 2. If the app needs that domain, tap **Edit Allowlist → Add Domain** and enter it (for example `example.com`). 3. Try again. If the app still misbehaves, exclude it with **Choose Apps** instead. ### Block a domain yourself 1. Open **Settings → CarterBlock → Edit Custom Domains → Add Domain**. 2. Type the host. `ads.example.com` blocks only that host; `.example.com` also blocks every subdomain. ### Use a different hosts list 1. Replace the address in **Hosts URL** with any hosts file or plain domain list. 2. Tap **Download Hosts List**. The list doesn't refresh on its own; tap **Download Hosts List** again whenever you want the latest version. ## Settings explained Every row on **Settings → CarterBlock**: ### Blocking Blocks ad and tracker requests inside third-party apps and games: app networking (NSURLSession, including background downloads), DNS lookups made by other network stacks, video ads played with AVPlayer, and in-app web views. Not system DNS; other Apple apps are left alone. Changes apply to open apps automatically; relaunch an app if an ad was already loaded. - **Enabled** (Switch · on by default): Master switch. Turn it off to stop all blocking in apps and Safari without uninstalling; your lists and allowlist are kept. - **Game Ad Patterns** (Switch · on by default): Blocks the built-in list of ad networks used by apps and games (Google ads, AppLovin, Unity Ads, ironSource and similar) plus hosts named like ad servers. Turn it off to test whether an ad rule is breaking something. - **Analytics & Trackers** (Switch · on by default): Blocks built-in analytics and tracking services (Google Analytics, AppsFlyer, Adjust, Mixpanel and similar) plus hosts named metrics, analytics, telemetry, beacon or pixel. ### Safari Applies the same rules to pages in Safari and to Safari views that apps open (in-app browser, sign-in sheets). A blocked page shows Safari's "blocked by a content blocker" error. Changes reach open Safari tabs within a few seconds; if Safari was opened while this was off, close it from the app switcher once. - **Block in Safari** (Switch · on by default): Applies the same rules to Safari and to Safari sheets that apps open. Turn it off to keep blocking in apps only. ### Status Apps write counters every few seconds. Web View Blocks are the subset WebKit blocked inside web views and Safari; a web view the app never gave a navigation delegate can't report them. Rules = active built-ins + custom domains + hosts list (respects Enabled and the toggles above). - **Blocked** (Status) - **Game Ads** (Status) - **Trackers** (Status) - **Hosts Hits** (Status) - **Custom Hits** (Status) - **Web View Blocks** (Status) - **Last Blocked** (Status) - **Last Block** (Status) - **Allow Passes** (Status) - **Rules** (Status) - **Hosts List** (Status) - **Updated** (Status) - **Reset Stats** (Button): Sets the Status counters back to zero so you can run a clean test. Your rules and the downloaded hosts list are not touched. ### Excluded Apps Apps CarterBlock stays completely out of. Use it for online games with anti-cheat (blocking hooks can look like tampering) or an app that breaks with blocking on. - **Choose Apps** (Opens a screen): Opens the list of apps CarterBlock leaves alone completely. See [Excluded Apps](#excluded-apps) below. ### Allowlist Never block these domains or their subdomains — even if a hosts list, built-in, or custom rule includes them. - **Edit Allowlist** (Opens a screen): Opens the domains that are never blocked, even if a list would block them. See [Allowlist](#allowlist) below. ### Custom Domains Your own block rules. Exact host by default; start with a period (.tracker.net) to include every subdomain. - **Edit Custom Domains** (Opens a screen): Opens your own blocked domains, added on top of the built-in lists. See [Custom Domains](#custom-domains) below. ### Hosts List Optional AdAway-style hosts or plain domain list. Each entry also blocks its subdomains. Apple, Facebook/fbcdn, Crashlytics, and TikTok app CDNs stay protected if a list overblocks them. - **Hosts-Style Blocklist** (Switch · on by default): Uses the downloaded hosts list on top of the built-in rules. It does nothing until you tap Download Hosts List. - **Hosts URL** (Text field): The address Download Hosts List fetches. Leave the AdAway default, or paste any hosts file or plain domain list. - **Download Hosts List** (Button): Downloads the list from Hosts URL and applies it to open apps. If the download fails, your previous list is kept and the alert explains why. Not system DNS. Still gets through: apps that use their own encrypted DNS or hard-coded IP addresses, and hosts listed inside a video playlist. Data: /var/jb/var/mobile/Library/CarterBlock · CLI: cb-update-hosts - **Respring** (Button): Restarts the Home Screen after a confirmation. CarterBlock doesn't need it for setting changes. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug form in Safari with your CarterBlock version, iOS version and iPhone model already filled in. ### Status These rows show what CarterBlock has done across all your apps. They refresh each time you open the page. - **Blocked**: total blocked requests. **Game Ads**, **Trackers**, **Hosts Hits** and **Custom Hits** split it by which rule matched. - **Web View Blocks**: the part blocked inside web pages and Safari. Some in-app web views block without being able to report it. - **Last Blocked**: the latest blocked domain and its rule type. **Last Block** says how long ago. - **Allow Passes**: how often the Allowlist let a domain through, and the last one. - **Rules**: active rules. **Hosts List**: the downloaded list's size, **Not downloaded** or **Off**. **Updated**: when you downloaded it. ### Excluded Apps **Choose Apps** lists your App Store and jailbreak apps with a search bar. Turn on an app's switch and CarterBlock installs nothing into it. ### Allowlist **Edit Allowlist** holds domains that are never blocked by any rule, including your custom ones. Each entry covers its subdomains. Tap **Add Domain** to add one; swipe left to delete. ### Custom Domains **Edit Custom Domains** holds your own block rules. A plain host is matched exactly (with or without `www.`); a leading `.` or `*.` includes every subdomain. Custom rules can block domains CarterBlock normally protects (Apple, Facebook, Crashlytics and TikTok servers), but the Allowlist still wins. **Paste / Edit List** opens the list as text, one domain per line (hosts-file lines are fine); **Save** replaces the whole list. ## Troubleshooting ### Blocked stays at 0 Check **Enabled** is on and the app isn't switched on in **Choose Apps**, then reopen the app. Apple's own apps (other than Safari) are never covered. ### An ad still shows Relaunch the app; an ad that loaded earlier can stay on screen. Ads delivered through an app's own DNS, hard-coded addresses or video playlists get through. ### A page in Safari says it was blocked by a content blocker That page's domain matched a rule. Add it with **Edit Allowlist**, or turn off **Block in Safari**. ### Safari isn't blocking anything If Safari was opened while **Block in Safari** was off, close Safari from the app switcher once after turning it back on. ### Download Hosts List fails The alert gives the reason, and your old list is kept. **Invalid Hosts URL** means the address needs `http://` or `https://`. Web pages and files that don't look like a domain list are rejected. **Updater Missing** means you should reinstall CarterBlock. ### A game won't connect or closes after launch Exclude it in **Choose Apps**, then reopen it. If none of this helps, tap **Report a Bug** or use the [bug form](https://tweaks.carterware.net/report.html). ## Questions ### Is CarterBlock free? Yes. It's free on the CarterWare source, no account needed. ### Does CarterBlock block ads in Safari? Yes. **Block in Safari** applies the same rules to Safari and to the Safari sheets apps open. You can turn it off without affecting apps. ### Should I use the Allowlist or Excluded Apps? Use the Allowlist when one domain needs to load and you still want blocking everywhere else. Use Excluded Apps (**Choose Apps**) to keep CarterBlock completely out of an app, such as an online game with anti-cheat. --- # Fold guide: Apps and Tweaks drawers in iPhone Settings URL: https://tweaks.carterware.net/docs/fold.html Updated: 2026-10-27 Version 1.2.7 · iOS 15 – 17 · Tested on iOS 17.1 · Free Use Fold to tuck App Store app settings and jailbreak tweak panes into two Settings drawers, rename them, search inside them and undo it. Fold shortens the main Settings list by gathering App Store app settings into an **Apps** drawer and jailbreak tweak settings into a **Tweaks** drawer. Every page still opens exactly as before; you just reach it through a drawer. ## Before you start - A Dopamine rootless jailbreak on iOS 15 or later, with ElleKit and PreferenceLoader. Not jailbroken yet? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Fold is free. - Fold is a beta. Both drawers, opening pages from them, drawer search, Settings search for apps and live renames are tested on iOS 17.1. iOS 15 and 16 are supported but not yet re-tested. - Fold only changes the Settings app. It doesn't touch the Home Screen or any other app, and turning it off gives you the stock list back immediately. ## Set it up 1. Add the CarterWare source `https://tweaks.carterware.net/` in Sileo or Zebra ([how to add a source](https://tweaks.carterware.net/docs/install.html)) and install **Fold**. 2. If Settings was open during the install, close it from the app switcher. 3. Open **Settings** and scroll down. Where your app settings used to be there is now one **Apps** row with an indigo grid icon. Where your tweak settings used to be there is one **Tweaks** row with a gray puzzle-piece icon. 4. Tap **Tweaks** and open any tweak. Its normal settings page appears. Do the same in **Apps**. 5. Fold's own row stays on the main list, so you can always find **Settings → Fold**. A drawer row only appears when it has something to hold. If you have no App Store apps with settings, there is no **Apps** row. ## Common tasks ### Find a tweak's settings quickly 1. Tap **Tweaks**. 2. Pull down on the list to show the search bar, and type part of the tweak's name. The **Apps** drawer has the same search bar. ### Rename the Apps or Tweaks drawer 1. Open **Settings → Fold**. 2. Under **Apps Drawer** or **Tweaks Drawer**, type a new **Name**. 3. Go back to the main Settings list. The row has its new name; no restart needed. Clear the field to go back to the default name. ### Fold only tweaks (or only apps) Open **Settings → Fold** and turn off **Show Apps Drawer** or **Show Tweaks Drawer**. Those rows go back onto the main list. ### Get the normal Settings list back Open **Settings → Fold** and turn off **Enabled**. Every row returns to where iOS put it. Turn it back on to fold them again. ## Settings explained Every row on **Settings → Fold**: BETA — Apps and Tweaks drawers are not yet verified on every device. Changes apply right away; turn Fold off to get the stock Settings list back. - **Enabled** (Switch · on by default): Master switch. Turn it off and the stock Settings list comes back right away; your drawer names are kept. ### Apps Drawer Gathers settings for App Store apps (Instagram, TikTok and other downloaded apps) into one row where those apps used to be. Apple’s built-in apps stay on the main list. - **Show Apps Drawer** (Switch · on by default): Gathers settings for App Store apps into one Apps row. Turn it off to keep app settings on the main list while still folding tweaks. - **Name** (Text field): The name of the Apps row on the main Settings list. Leave it empty to use "Apps". ### Tweaks Drawer Gathers jailbreak tweak settings (PreferenceLoader panes) into one row. Fold’s own settings always stay on the main list. - **Show Tweaks Drawer** (Switch · on by default): Gathers jailbreak tweak settings pages into one Tweaks row. Fold's own row always stays on the main list. - **Name** (Text field): The name of the Tweaks row on the main Settings list. Leave it empty to use "Tweaks". BETA. Each drawer has its own search bar — pull down inside it. Panes inside a drawer may not show up in Settings search. Reload Settings re-scans the list if a newly installed tweak hasn’t been gathered yet. - **Reload Settings** (Button): Re-scans the Settings list without closing Settings. Use it if a newly installed tweak hasn't landed in the Tweaks drawer yet. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug form in Safari with your Fold version, iOS version and iPhone model already filled in. ## Troubleshooting ### A tweak I just installed isn't in the Tweaks drawer Leave Settings and come back; Fold re-checks for new tweaks each time Settings returns to the front. If it's still missing, tap **Settings → Fold → Reload Settings**. ### A tweak's row stays on the main list Fold gathers settings pages that tweaks add through PreferenceLoader, which is how almost all tweaks do it. A tweak that adds its row some other way stays on the main list. ### The Apps or Tweaks row is missing Check that **Enabled** and the matching **Show … Drawer** switch are on. If they are, the drawer has nothing to hold yet. ### Settings search doesn't find a tweak iPhone's Settings search doesn't index tweak settings pages, with or without Fold. Use the search bar inside the **Tweaks** drawer instead. App Store apps inside the **Apps** drawer do show up in Settings search and open their pages. ### A settings link opens the main Settings screen Links that open a specific page (for example another tweak's **Settings** button) work while Settings is already running. When Settings wasn't running, a link to an app's page can land on the main screen; stock iOS 17 does the same without Fold. Open the drawer and tap the page, or tap the link again now that Settings is open. ### Something in Settings looks wrong Turn off **Enabled** to confirm whether Fold is involved, then report what you saw with **Report a Bug** or the [bug form](https://tweaks.carterware.net/report.html). Include which drawer and page you opened. ## Questions ### Does Fold put apps and tweaks in the same drawer? No. App Store app settings go in **Apps** and jailbreak tweak settings go in **Tweaks**. Apple's built-in apps stay on the main list. ### Can I undo Fold without uninstalling it? Yes. Turn off **Settings → Fold → Enabled** and the stock Settings list comes back right away. Your drawer names are kept for when you turn it on again. ### Do I need to restart anything after changing Fold's settings? No. Switches and names apply live. Fold only runs inside the Settings app, so it never needs a respring (restart the Home Screen). ### Which iOS versions does Fold work on? Fold supports iOS 15 and later on Dopamine rootless. It is tested on iOS 17.1; iOS 15 and 16 are supported but not yet re-tested, which is why it is still labeled beta. ### Is Fold free? Yes. Fold is free on the CarterWare source and needs no account. --- # Fuse guide: use Wi-Fi and cellular together for big downloads URL: https://tweaks.carterware.net/docs/fuse.html Updated: 2026-10-27 Version 0.2.0 · iOS 15 – 17 · Tested on iOS 16.3.1 and 17.1 · Free during beta Turn on Fuse to download large files in apps over Wi-Fi and cellular at once, learn which downloads qualify, and check how much each link carried. Fuse lets a large file download inside an app use Wi-Fi and cellular at the same time. Wi-Fi downloads the file from the start while cellular fetches pieces from the end, each link doing a share that matches its speed, and the parts are joined into the exact same file. ## Before you start - A Dopamine rootless jailbreak on iOS 15 or later, with ElleKit and PreferenceLoader. Fuse is tested on iOS 17.1 and 16.3.1; iOS 15 has not been tested yet. Not jailbroken yet? Use the [jailbreak finder](https://tweaks.carterware.net/jailbreak.html). - Fuse is a free beta. It becomes a paid tweak when it leaves beta, but this beta stays free: keep it installed and it keeps working. - **It uses cellular data.** It's meant for unlimited plans, and it starts switched off. - You need Wi-Fi connected and cellular data on at the same time. - It only speeds up some downloads. Read the next list before you expect a difference. ### Which downloads Fuse can speed up All of these must be true: - The download happens inside an app while that app is open, using Apple's standard networking. Sileo package downloads are one example. - The address looks like a file: it ends in a type such as zip, ipa, deb, mp4, mov, mp3, pdf, dmg, iso, 7z, rar, tar, epub or ipsw, or it is a download link. - The file is at least 1 MB, and the server supports resuming (byte-range requests) and sends it uncompressed. - Wi-Fi alone would still need more than a few seconds, and cellular is fast enough to add something. These always stay on one link: Safari downloads, background downloads, App Store installs, apps with their own download engine (such as VLC), and downloads where the app asks not to use cellular data. Fuse helps most when a single Wi-Fi connection is the bottleneck: slow Wi-Fi, or a server that limits each connection. On fast Wi-Fi, cellular never joins: the download runs at the same speed as without Fuse and uses no cellular data. It can't make a download faster than the server allows overall. ## Set it up 1. Add the CarterWare source `https://tweaks.carterware.net/` in Sileo or Zebra ([how to add a source](https://tweaks.carterware.net/docs/install.html)) and install **Fuse**. 2. Open **Settings → Fuse** and turn on **Bond downloads**. 3. Make sure you're on Wi-Fi and cellular data is on in Control Center. 4. Close and reopen the app you'll download in, then download a large file from a qualifying address. 5. Go back to **Settings → Fuse**. If cellular helped, **Last Bonded Download** shows the file's **Size** and the **Links** row shows how much came over Wi-Fi and how much over cellular. ## Common tasks ### Check how much cellular data a download used Open **Settings → Fuse** and read **Links** under **Last Bonded Download**, for example "28 MB Wi-Fi + 12 MB cellular". The links shown are the ones iOS reports each part actually used. ### Stop Fuse from using cellular Turn off **Bond downloads**. Open apps pick up the change within a couple of seconds, and every download goes back to the normal single connection. ## Settings explained Every row on **Settings → Fuse**: ### Wi-Fi + Cellular Free BETA. When both links are up, large file downloads inside apps use both. Wi-Fi streams the file from the start while cellular fetches the end, each taking a share that matches its speed, then the parts are joined. A slow cellular link just does less. Small requests and pages stay on the normal path. Uses cellular data, so it starts off. Fuse becomes a paid tweak when it leaves beta. This beta stays free: keep it installed and it keeps working. - **Bond downloads** (Switch · off by default): Turns bonding on for large file downloads in apps. Off by default because it uses cellular data. After turning it on, reopen the app you'll download in; turning it off reaches open apps within a couple of seconds. ### Last Bonded Download The links shown are the ones iOS reports each part actually used. Only downloads an app makes while it is open can be bonded. Safari downloads, background downloads, App Store installs, apps with their own download engine (such as VLC), apps with Cellular Data turned off, and Low Data Mode stay on one link. The server must support resuming (byte ranges) and the file must be at least 1 MB. When Wi-Fi alone would finish in a few seconds, or cellular is far slower than Wi-Fi, cellular stays out so no data is spent for nothing. - **Size** (Status) - **Links** (Status) ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug form in Safari with your Fuse version, iOS version and iPhone model already filled in. ### Last Bonded Download These two rows describe the most recent download where cellular joined in. **Size** shows the file size and when it finished, or **None yet**. **Links** shows how much of the file came over each link. If both parts say Wi-Fi, the cellular part didn't actually travel over cellular for that download. ## Troubleshooting ### Last Bonded Download still says None yet Cellular only joins when it can shorten the download, so on fast Wi-Fi nothing is recorded; that's expected. Otherwise, check the list of downloads Fuse can speed up: the app must download in the foreground with standard networking, the file must be 1 MB or larger, and the server must support resuming. ### The download isn't any faster If the server or your Wi-Fi is already fast, cellular stays out on purpose. If cellular is much slower than Wi-Fi, Fuse stops using it after a short try so it doesn't spend data for nothing. ### A download fails with Fuse on but works with it off Turn off **Bond downloads**, retry to confirm, and send the app name and download address with **Report a Bug** or the [bug form](https://tweaks.carterware.net/report.html). If the cellular part fails, Fuse fetches the rest over Wi-Fi; if the file changes on the server mid-download, it stops splitting rather than joining two versions. ## Questions ### Is Fuse free? Yes, during the beta. Fuse becomes a paid tweak when it leaves beta, but this beta stays free: keep it installed and it keeps working. The paid release will be a separate package. ### Does Fuse use cellular data? Yes. Part of each bonded download comes over cellular, more when cellular is fast. That's why it starts off and why it's meant for unlimited plans. ### Does Fuse speed up App Store downloads or Safari? No. App Store installs, Safari downloads and background downloads happen outside the app, so they stay on one link. ### Will Fuse always make downloads faster? No. It only adds cellular when Wi-Fi alone would take more than a few seconds and cellular can contribute. On fast Wi-Fi the download runs at the same speed as without Fuse, using no cellular data. ### Does Fuse keep my sign-ins for downloads that need an account? Yes. Fuse uses the app's own cookies and saved logins, so downloads that need you to be signed in still work. Links that only work once are left alone. --- # TikTok Warm guide: auto swipe and like on For You (beta) URL: https://tweaks.carterware.net/docs/tiktokwarm.html Updated: 2026-10-27 Version 1.0.15 · iOS 15 – 17 · Tested on iOS 17.1 · Free Turn on TikTok Warm, use the Warm chip to auto swipe and like on For You, tune the timing, and know the beta's limits and account risk. TikTok Warm adds a small **Warm** chip to TikTok's For You feed. It moves to the next video on a timer and can double-tap to like every few videos. ## Before you start - **This is a beta.** Swipe and Like were last confirmed working on iOS 17.1 in October 2026. iOS 15 and 16 are not yet tested. TikTok changes its app often, and an update can stop Warm from swiping or liking until Warm is updated. - Automating TikTok may violate its Terms of Service and could get your account flagged. Use it at your own risk. - A Dopamine rootless jailbreak on iOS 15 or later, with ElleKit and PreferenceLoader. It works in TikTok and Douyin. - **Enabled** is off by default, so nothing happens until you turn it on. - TikTok Warm is free. ## Set it up 1. Add the CarterWare source `https://tweaks.carterware.net/` in Sileo or Zebra ([how to add a source](https://tweaks.carterware.net/docs/install.html)) and install **TikTok Warm**. 2. Open **Settings → TikTok Warm** and turn on **Enabled**. 3. Open TikTok and go to the **For You** feed. A red **Warm** chip appears at the edge of the screen. If TikTok was already open, it can take several seconds to appear. 4. Tap the chip to open its panel, then turn on **Swipe** (and **Like** if you want it). 5. The status line in the panel shows a countdown such as **next in ~5s**, and the counts go up as videos change. That's how you know it's working. Drag the chip to move it; it snaps to the nearest edge and remembers its spot. ## Settings explained Timing changes apply while TikTok is open; you don't need to restart it. ### TikTok Warm BETA. Warm moves the For You feed to the next video on a timer and can double-tap to like. Turn it on here, then use the Warm chip in TikTok. Automating TikTok may violate its Terms of Service; use at your own risk. - **Enabled** (Switch · off by default): Master switch, off by default. Turn it on to show the Warm chip in TikTok; turn it off to remove the chip and stop all swiping and liking. ### Timing In TikTok, tap the Warm chip to open it, then turn on Swipe (and Like if you want). Changes here apply live. Warm waits while you are touching the screen and pauses when TikTok leaves the foreground. - **Swipe Every** (Choice: 2 seconds, 3 seconds, 4 seconds, 5 seconds, 6 seconds, 8 seconds, 10 seconds, 12 seconds, 15 seconds, 20 seconds, 25 seconds, 30 seconds · default 5 seconds): How long Warm waits on each video before moving to the next one. Pick a longer time if you want videos to play out. - **Random Variation** (Choice: None, ± 1 second, ± 2 seconds, ± 3 seconds, ± 4 seconds, ± 5 seconds, ± 6 seconds, ± 8 seconds, ± 10 seconds · default ± 2 seconds): Adds or subtracts a random amount from each wait so the timing isn't identical every time. The wait never drops below 2 seconds. - **Like Every** (Choice: Every video, 2 videos, 3 videos, 4 videos, 5 videos, 6 videos, 8 videos, 10 videos, 12 videos, 15 videos · default 4 videos): How often Warm double-taps to like when Like is on. Every video likes each one; 4 videos likes one in four. TikTok Warm · BETA · Enabled defaults off. - **Restart TikTok** (Button): Force-closes TikTok (and Douyin) so it starts fresh the next time you open it. Use it if the chip doesn't show up. ### Support Opens a short form in Safari with your tweak version, iOS and iPhone model already filled in. Every report reaches the developer. - **Report a Bug** (Button): Opens a short bug form in Safari with your TikTok Warm version, iOS version and iPhone model already filled in. ## Troubleshooting ### The Warm chip doesn't appear Check **Enabled** is on, wait about ten seconds, then tap **Restart TikTok** in **Settings → TikTok Warm** and open TikTok again. ### The status says "Waiting" or "Feed is covered" Warm never swipes while your finger is on the screen, the keyboard is open, the feed is still scrolling, or comments or another sheet cover the video. Close what's on top and it carries on. It also pauses when you leave TikTok. ### The status says "Open the For You feed" Warm only drives the For You feed. Switch back to it from Following, Profile or Inbox. ### The status says "Feed didn't move" or swiping stopped after a TikTok update Scroll once by hand and try again. If it keeps failing, the TikTok update has likely changed the feed. Turn Swipe off and [report it](https://tweaks.carterware.net/report.html) with your TikTok version. ## Questions ### Does TikTok Warm work with the latest TikTok? It might not. It is a beta, last confirmed on iOS 17.1 in October 2026, and any TikTok update can break swiping or liking without warning. ### Can TikTok Warm get my account banned? It can't promise otherwise. Automating TikTok may violate its Terms of Service, so use it at your own risk. ### Why does Like do nothing on its own? Like happens as part of swiping: after every few videos (set by **Like Every**), Warm double-taps the video it just moved to. Turn on **Swipe** too. ### Is TikTok Warm free? Yes. It is free on the CarterWare source and needs no account. --- # Game HUD modding reference: mod packs and Lua scripts URL: https://tweaks.carterware.net/docs/gamehud-modding.html Updated: 2026-10-27 iOS 16 – 17 · Tested on iOS 17.1 Write mod packs (.ghmod) and Lua scripts for Game HUD: switches, sliders and buttons, Unity edits, code patches, speed, and the full gg and gh function list. Game HUD's mod menu can run two kinds of mods that anyone can write and share: **mod packs**, short `.ghmod` text files of switches, sliders and buttons for one game, and **Lua scripts** that use the same `gg` functions as GameGuardian, plus `gh` functions for iOS. This page covers both. For using the menu itself, see the [Game HUD guide](https://tweaks.carterware.net/docs/gamehud.html). > **Note:** Mods only change what a game keeps on your iPhone. Coins, gems and purchases in online games live on the game's servers and can't be changed, and changing an online game can get your account banned. Write and share mods for offline games. ## Before you start - Game HUD 1.4.0 or later, with **Mods** opened at least once in the game so the menu knows it. See [Set it up](https://tweaks.carterware.net/docs/gamehud.html#set-it-up). - The game's bundle ID, like `com.example.game`. In the menu, **⋯ → Copy Example Mod Pack** gives you a starting pack with it already filled in. - For Unity mods, the class and method names. Find them on the **Unity** tab: search a word like `Coins`, tap a method and choose **Copy as Mod Pack Entry**. - For code patches, the module, offset and bytes for the exact game version you have. ## Where mods live Each game has its own folder: ``` /var/jb/var/mobile/Library/GameHUD/Mods// ``` `.ghmod` files there show up on the **Mods** tab, `.lua` files on the **Lua** tab, and `.dylib` files under **Mod Files**. **Copy Folder** on the **Mods** tab copies the path, and Filza can open it. You don't have to use the folder: **Paste Mod** and **Paste Script** save what's on the clipboard there for you. **Paste Mod** accepts the text of a pack, the text of a Lua script, or an `https` link to either. A link must return the raw text (under 4 MB), so link to the raw file, not a web page around it. ## Write a mod pack A pack is a JSON object. This one has one of each kind of mod: ``` { "name": "Sky Dash mods", "author": "you", "description": "Lives, damage and speed for Sky Dash.", "game": "com.example.skydash", "gameVersion": "2.4.1", "mods": [ { "name": "Infinite lives", "description": "Lives never go down.", "unity": [ { "class": "PlayerStats", "method": "get_Lives", "params": 0, "return": "99" } ] }, { "name": "No damage", "patches": [ { "module": "UnityFramework", "offset": "0x1A2B3C", "bytes": "00 00 80 52 C0 03 5F D6" } ] }, { "name": "Game speed", "type": "slider", "min": 0.5, "max": 3, "step": 0.25, "default": 1, "target": "speed" }, { "name": "Fill coins", "type": "button", "fields": [ { "class": "Bank", "field": "coins", "value": "50000" } ] } ] } ``` ### Pack fields - `name`: shown as the pack's title and used as its file name. - `author` and `description`: optional, shown under the title. - `game`: the bundle ID the pack is for. A pack for a different game can't be switched on. Leave it out only for packs that work in any game. - `gameVersion`: optional. When it doesn't match the installed version, the pack still works but shows a warning, because code patches usually move between versions. Unity mods usually keep working. - `mods`: the list of switches, sliders and buttons, in the order they appear. Every mod has a `name` (unique within the pack) and an optional `description`. Game HUD remembers what you switched on by name, so renaming a mod resets it. ### Switches A mod without a `type`, or with `"type": "toggle"`, is a switch. Turning it on does everything listed; turning it off puts it all back. A switch left on applies again every time the game opens. It can combine any of these: - `patches`: a list of code patches. Each has `module` (blank or left out for the game's own code; Unity games usually use `UnityFramework`), `offset` (a hex string like `"0x1A2B3C"` or a number) and `bytes` (hex pairs like `"1F 20 03 D5"`). Optional `name`. The original bytes come back when it's switched off. - `unity`: a list of Unity method changes. Each has `class`, `method` and `return`, plus optional `params`, the number of parameters, to pick one version of an overloaded method. `return` is a number, `true` or `false`, `null` for objects, or `nothing` for methods that return nothing (which skips the method entirely). - `fields`: a list of Unity static fields to set. Each has `class`, `field` and `value`. When switched off, the field goes back to what it was, or to `off` if you give one. - `speed`: a game speed, like `2`. Switching off restores the speed from before. - `lua`: Lua code to run when switched on. `luaOff` runs when switched off. If a patch or Unity change fails, for example a method that doesn't exist in this version, the switch's other patches and Unity changes are taken back too, and the switch shows why. ### Sliders `"type": "slider"` with `min`, `max`, `step` (`0` for smooth) and `default`. Moving the slider sends its value to one `target`: - `"target": "speed"`: the game speed. Shown with a × after the number. - `"target": { "class": "Player", "method": "get_MaxHealth" }`: the method returns the slider's value. Optional `params`. Back at `default`, the method goes back to normal. - `"target": { "class": "Bank", "field": "coins" }`: the static field is set to the slider's value. - No target and a `lua` string: the code runs with a variable named `value` set to the slider's value. A slider only acts once you move it. After that, its value applies again each time the game opens, until you move it back to `default` or tap **Switch Everything Off**. ### Buttons `"type": "button"` runs once each time it's tapped. Give it `fields` to set static fields, `lua` to run code, or both. Buttons are good for one-off actions like "fill coins" or a script that asks what to change. ### Unity class names Use the class name as the **Unity** tab shows it. A bare name like `Bank` works when only one class has that name. Add the namespace to be exact, like `Game.Economy.Bank`, and use `/` for nested classes, like `Game.Player/Stats`. Property getters are methods named `get_` plus the property, like `get_Coins`. Unity mods wait for the game's Unity engine to start, so they may apply a second or two after the game opens. ### Test and share a pack 1. Copy the pack's text, open the game, and tap **Paste Mod** on the **Mods** tab. Pasting a pack with the same name replaces the old one. 2. Turn each mod on and check it in the game. A mod that failed shows the reason in pink under its name. 3. Close and reopen the game to check that what you left on comes back. 4. Share the text, or host the raw file and share the link. Tap **Share Mine** to start a pack from what you've already done: it turns your own patches and Unity changes for this game into a pack, with the game and version filled in. ## Write a Lua script Scripts run Lua 5.4 on their own thread inside the game, so dialogs and `gg.sleep` never freeze the game. Open the **Lua** tab, tap **New Script**, and tap **Check** to find mistakes before you **Save**. Tap **Run** to start a script and **Stop Script** to end it. `print` writes to the log under the scripts. This script asks for your coins and changes them, the same pattern as most GameGuardian scripts: ``` local r = gg.prompt({'Coins you have now', 'Coins you want'}, nil, {'number', 'number'}) if not r then return end -- With results left over from last time, this narrows them down. gg.searchNumber(r[1], gg.TYPE_DWORD) local n = gg.getResultsCount() if n == 0 then gg.clearResults() gg.alert('Nothing found. Try a different number.') elseif n > 50 then gg.alert(n .. ' matches. Spend some coins, then run it again with the new number.') else gg.editAll(r[2], gg.TYPE_DWORD) gg.toast('Changed ' .. n .. ' values') gg.clearResults() end ``` Code patches and Unity changes a script makes stay in place after it finishes, until you tap **Undo Changes** on the **Lua** tab or the game closes. Values written with `gg.editAll` or `gg.setValues` are ordinary memory writes and stay until the game changes them. ### Search text `gg.searchNumber`, `gg.refineNumber` and the **Search** box understand the same text: - `100` finds exactly 100. Decimals match loosely, so `1.5` finds 1.45 to 1.55. - `10~20` finds anything from 10 to 20. - `100;250;7` finds those numbers stored within 512 bytes of each other. End with `::64` to require that order within 64 bytes. - A type letter after a number mixes types: `B` byte, `W` word, `D` Int 32, `Q` Int 64, `F` float, `E` double. For example `1.5F;20D`. - `0x1F` or `1Fh` is hexadecimal. ### gg functions Searching: - `gg.searchNumber(text, type, encrypted, sign, from, to)`: searches the game's memory. If results already exist, it narrows them instead, like GameGuardian. `type` defaults to `gg.TYPE_AUTO`. `sign` supports `gg.SIGN_EQUAL`, `gg.SIGN_GREATER_OR_EQUAL` and `gg.SIGN_LESS_OR_EQUAL`. `from` and `to` limit results to an address range. Encrypted (`TYPE_XOR`) searches aren't supported. - `gg.refineNumber(text, type, encrypted, sign, from, to)`: narrows the current results. - `gg.startFuzzy(type)`: starts an unknown-value search. - `gg.searchFuzzy(difference, sign)`: narrows an unknown-value search. `gg.SIGN_FUZZY_GREATER` means it went up, `gg.SIGN_FUZZY_LESS` down, `gg.SIGN_FUZZY_NOT_EQUAL` changed, and `gg.SIGN_FUZZY_EQUAL` the same. A `difference` other than `"0"` means it changed by exactly that much. - `gg.getResultsCount()` (or `gg.getResultCount()`), `gg.getResults(max, skip)`, `gg.clearResults()`, `gg.loadResults(items)`, `gg.removeResults(items)`. Results are tables with `address`, `value` and `flags` (the type), the same shape GameGuardian uses. `gg.getResults` returns an empty list while an unknown-value search hasn't been narrowed yet. Editing and the Saved tab: - `gg.editAll(value, type)`: writes one value to every result and returns how many were written. It refuses to run on an unknown-value search that hasn't been narrowed. - `gg.getValues(items)` reads fresh values; `gg.setValues(items)` writes each item's `value`. - `gg.addListItems(items)` adds items to the **Saved** tab. An item with `freeze = true` is frozen, and `name` labels it. `gg.getListItems()`, `gg.removeListItems(items)` and `gg.clearList()` work on the same list. Dialogs and the menu: - `gg.alert(text, positive, negative, neutral)` returns 1, 2 or 3 for the button tapped. Every script dialog also has a **Stop Script** button. - `gg.choice(items, selected, title)` returns the chosen key or `nil`. `gg.multiChoice(items, selected, title)` returns a table of chosen keys set to `true`, or `nil`. - `gg.prompt(labels, defaults, types)` returns the answers or `nil`. Types are `number`, `text`, `checkbox` and `speed`. - `gg.toast(text)` shows a short message over the game. - `gg.isVisible()`, `gg.setVisible(visible)` check and show or hide the mod menu. - `gg.showUiButton()`, `gg.hideUiButton()`, `gg.isClickedUiButton()`: a floating script button the player can tap while the script loops. `gg.isClickedUiButton()` returns `true` once per tap. - `gg.sleep(ms)` waits without freezing the game. Game and system: - `gg.setSpeed(speed)`, `gg.getSpeed()`: game speed, from 0.1 to 10. - `gg.getTargetPackage()` returns the bundle ID. `gg.getTargetInfo()` returns `packageName`, `label`, `versionName`, `versionCode`, `x64`, `processName` and `pid`. - `gg.getRangesList(filter)` lists the game's loaded modules with `start`, `end`, `name` and `internalName`. Android filters like `libil2cpp.so` match `UnityFramework`. - `gg.getRanges()`, `gg.setRanges(ranges)` are accepted for compatibility. Game HUD always searches the game's writable memory. - `gg.copyText(text)`, `gg.getFile()`, `gg.getLine()`, `gg.getLocale()`, `gg.bytes(text)`. - `gg.makeRequest(url, headers, body)` fetches a URL (a POST when `body` is given) and returns `code`, `message`, `content` and `headers`, or an error message. - `os.exit()` ends the script quietly. Accepted but do nothing on iOS: `gg.processPause`, `gg.processResume`, `gg.processToggle`, `gg.skipRestoreState`, `gg.gotoAddress`, `gg.clearHistory` and `gg.require`. `gg.isProcessPaused()` always returns `false`. Not available on iOS (they return the message "Not available on iOS."): `gg.processKill`, `gg.timeJump`, `gg.searchAddress`, `gg.dumpMemory`, `gg.allocatePage`, `gg.saveList` and `gg.loadList`. The usual constants are there: `gg.TYPE_BYTE`, `gg.TYPE_WORD`, `gg.TYPE_DWORD`, `gg.TYPE_QWORD`, `gg.TYPE_FLOAT`, `gg.TYPE_DOUBLE`, `gg.TYPE_AUTO`, every `gg.REGION_` and `gg.SIGN_` value, `gg.VERSION`, `gg.PACKAGE`, `gg.CACHE_DIR`, `gg.FILES_DIR` and `gg.EXT_STORAGE`. Like GameGuardian, functions that can fail return `true` on success or an error message as a string, so check with `if ok ~= true then gg.alert(ok) end`. ### gh functions `gh` adds what iOS games need. Addresses are plain Lua integers. - `gh.base(module)` returns where a module starts in memory, or `nil`. An empty string is the game itself. - `gh.modules()` lists loaded modules with `name`, `start`, `end` and `main` (true for the game itself). - `gh.read(address, type)` reads a value (Int 32 by default). `gh.write(address, value, type)` writes one and returns `true` or an error message. - `gh.readBytes(address, count)` returns hex like `"1F 20 03 D5"`. `gh.writeBytes(address, hex)` writes them. - `gh.patch(module, offset, bytes, name)` patches code and returns an id, or `nil` and an error. `gh.unpatch(id)` puts the original code back. - `gh.speed(speed)` sets the game speed and returns it; `gh.speed()` just returns it. - `gh.log(text)` writes to the log. `gh.toast` and `gh.sleep` are the same as the `gg` versions. `gh.version` is the Game HUD version. `gh.unity` works in Unity games: - `gh.unity.available()` is `true` in a Unity game. - `gh.unity.search(text)` returns matching methods and fields, each with `class`, `name`, `type`, `field` (true for fields), `params` and `address`. When nothing matches it returns an empty list and a reason. - `gh.unity.find(class, method, params)` returns a method's code address, or `nil` and a reason. - `gh.unity.set(class, method, value, params)` makes a method return `value` and returns an id, or `nil` and a reason. `gh.unity.unset(id)` undoes it. - `gh.unity.field(class, field)` reads a static field as text, or returns `nil` and a reason. `gh.unity.setField(class, field, value)` sets one and returns `true` or an error message. ``` if not gh.unity.available() then return gg.alert('Not a Unity game.') end local id, err = gh.unity.set('Player', 'get_MaxHealth', '9999', 0) if not id then return gg.alert(err) end gg.toast('Max health is now 9999') ``` ## Troubleshooting ### Paste Mod says the text isn't a mod pack or a Lua script Packs must be valid JSON with a `mods` list. A trailing comma or a missing quote is the usual cause; paste the text into a JSON checker. For scripts, the message includes Lua's own error and line number. ### A Unity mod says the class or method wasn't found Search for it on the **Unity** tab to see the exact spelling and namespace. Names are case-sensitive, and an update to the game can rename or remove them. If a method has several versions, add `params`. ### A code patch says the offset is outside the module, or the bytes didn't stick The offset or module is wrong for this version of the game, or the game protects that part of its code. Patches are tied to one exact build, which is why `gameVersion` is worth filling in. ### My script waits forever A script stuck in a loop or waiting on a dialog can always be ended with **Stop Script**. Loops that call `gg.sleep` or any `gg` function stop right away; a tight loop of plain Lua stops within a moment. ## Questions ### Can I use my GameGuardian scripts? Many work as they are, especially ones that search, refine and edit numbers and use the standard dialogs. Scripts that depend on Android memory regions, encrypted (XOR) values, or Android-only functions like `gg.timeJump` need changes. ### Can a mod pack run code on my iPhone? A pack can run Lua inside the game it's made for, patch that game's code and change its values. It can't reach other apps. Only add packs, scripts and `.dylib` files from people you trust, because they run with full access to that game. ### Do mods stay on after the game updates? Switches and moved sliders try again each launch. Unity mods usually survive updates. Code patches usually don't, and show an error until someone updates the pack for the new version.