{"id":11674,"date":"2026-09-22T06:25:24","date_gmt":"2026-09-22T06:25:24","guid":{"rendered":"https:\/\/www.joytify.com\/blog\/en-us\/?page_id=11674"},"modified":"2026-09-30T04:09:35","modified_gmt":"2026-09-30T04:09:35","slug":"steal-an-egg-calculator","status":"publish","type":"page","link":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/","title":{"rendered":"Roblox Steal An Egg Calculator"},"content":{"rendered":"\n<!-- ===================================================================\n     STEAL AN EGG CALCULATOR \u2014 self-contained block for Elementor\n     Paste the WHOLE file into: Elementor > HTML widget\n     (NOT the Text Editor widget - that one runs wpautop and breaks it.)\n     Everything is inline: markup, CSS and script. No external files.\n     If the calculators do not respond, a red notice appears at the top of\n     the block telling you why - see the bottom of this comment.\n\n     The script tag carries opt-out flags for Cloudflare Rocket Loader,\n     WP Rocket, LiteSpeed and Autoptimize. Those tools rewrite inline JS\n     and are a common cause of a dead calculator. Do not remove them.\n\n     IF THE RED NOTICE SHOWS: your install is removing the script tag.\n     Check with: view page source (Ctrl+U), search for  saecReady\n       - not found  -> WordPress stripped the script. No inline version can\n                       survive that; someone with admin rights has to add it\n                       via Elementor Custom Code, WPCode or the child theme.\n       - found      -> the script is present but erroring. Open the console\n                       (F12) and read the red line.\n     No external files, fonts or images. All CSS scoped to .saec\n\n     ---- SEO NOTES (delete before publishing if you like) -------------\n     Primary keyword ....... steal an egg calculator\n     Secondary ............. steal an egg income calculator,\n                             steal an egg fuse calculator,\n                             steal an egg pet calculator,\n                             steal an egg mutation calculator,\n                             steal an egg speed calculator,\n                             money per second calculator,\n                             pen upgrade calculator, egg odds calculator\n     Deliberately NOT targeted (owned by the Joytify pets-list post):\n                             steal an egg pets list \/ all pets \/\n                             pet rarities \/ best pets income list\n                             -> linked to instead, twice, from here.\n     Suggested title tag (57) ...\n       Steal An Egg Calculator: Income, Fuse & Speed Tools\n     Suggested meta description (152) ...\n       Free Steal An Egg calculator for money per second, mutations,\n       fusing, egg odds and pen vs treadmill upgrades. Six tools, live\n       results, no login.\n     Internal links to add where relevant: steal an egg codes,\n       roblox top up, other Roblox calculators on the blog.\n     =================================================================== -->\n<div class=\"saec\" id=\"saec-app\">\n\n<style>\n.saec{\n  \/* palette: eggshell shell + incubator dark + yolk gold *\/\n  --ink:#1b1b23; --ink-soft:#4a4a58; --ink-faint:#7c7c8c;\n  --shell:#f7f3e8; --shell-2:#efe8d6; --line:#ddd3ba;\n  --nest:#221f2e; --nest-2:#2c2839; --nest-line:#443e57;\n  --yolk:#f0a91d; --yolk-deep:#c97f06; --leaf:#2f7d52; --ember:#d1452f;\n  --cool:#3d6ea8; --violet:#7a5bd0;\n  --radius:14px;\n  color:var(--ink);\n  background:var(--shell);\n  font-family:ui-sans-serif,system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n  font-size:16px; line-height:1.65;\n  -webkit-font-smoothing:antialiased;\n  border-radius:var(--radius);\n  overflow:hidden;\n}\n.saec *,.saec *::before,.saec *::after{box-sizing:border-box;}\n.saec p,.saec h1,.saec h2,.saec h3,.saec h4,.saec ul,.saec ol,.saec table,.saec figure{margin:0;}\n.saec ul,.saec ol{padding-left:1.15em;}\n.saec li{margin:.3em 0;}\n.saec a{color:var(--yolk-deep); text-decoration:underline; text-underline-offset:2px;}\n.saec strong{font-weight:700;}\n.saec-in{max-width:1080px; margin:0 auto; padding:0 20px;}\n.saec-num{font-variant-numeric:tabular-nums; font-feature-settings:\"tnum\";}\n\n\/* ---------- hero ---------- *\/\n.saec-hero{background:var(--shell); padding:38px 0 26px; border-bottom:1px solid var(--line);}\n.saec-kicker{display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700;\n  color:var(--yolk-deep); background:#fff5dd; border:1px solid #f0dcaa; padding:5px 11px; border-radius:999px;}\n.saec-hero h1{font-size:clamp(28px,5.2vw,46px); line-height:1.08; font-weight:800; letter-spacing:-.02em; margin:16px 0 0; max-width:19ch;}\n.saec-hero .saec-lede{margin-top:14px; font-size:17px; color:var(--ink-soft); max-width:62ch;}\n.saec-jump{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px;}\n.saec-jump a{font-size:14px; font-weight:600; text-decoration:none; color:var(--ink);\n  background:#fff; border:1px solid var(--line); padding:8px 13px; border-radius:999px;}\n.saec-jump a:hover{border-color:var(--yolk); background:#fffaf0;}\n\n\/* ---------- incubator (calculator zone) ---------- *\/\n.saec-nest{background:var(--nest); color:#efeaf7; padding:30px 0 38px;}\n.saec-nest h2,.saec-nest h3{color:#fff;}\n.saec-nest-head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:18px;}\n.saec-nest-head h2{font-size:clamp(20px,3.4vw,27px); font-weight:800; letter-spacing:-.01em;}\n.saec-nest-head p{color:#b7aecd; font-size:14.5px; max-width:56ch; margin-top:6px;}\n\n.saec-tabs{display:flex; gap:6px; overflow-x:auto; padding-bottom:4px; margin-bottom:-1px; scrollbar-width:thin;}\n.saec-tabs button{flex:0 0 auto; font:inherit; font-size:14px; font-weight:700; cursor:pointer;\n  color:#b7aecd; background:transparent; border:1px solid var(--nest-line); border-bottom-color:transparent;\n  padding:10px 15px; border-radius:10px 10px 0 0;}\n.saec-tabs button:hover{color:#fff;}\n.saec-tabs button[aria-selected=\"true\"]{color:var(--nest); background:var(--yolk); border-color:var(--yolk);}\n.saec-panel{background:var(--nest-2); border:1px solid var(--nest-line); border-radius:0 12px 12px 12px; padding:20px;}\n.saec-panel[hidden]{display:none;}\n.saec-panel h3{font-size:17px; font-weight:700; margin-bottom:4px;}\n.saec-panel .saec-sub{color:#b7aecd; font-size:14px; margin-bottom:18px; max-width:66ch;}\n\n.saec-grid{display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}\n.saec-f{display:flex; flex-direction:column; gap:6px;}\n.saec-f label{font-size:12.5px; font-weight:700; color:#cfc7e0;}\n.saec-f .saec-hint{font-size:11.5px; color:#9a92b0; font-weight:400;}\n.saec select,.saec input[type=number],.saec input[type=text]{\n  font:inherit; font-size:15px; width:100%; color:#fff; background:#1a1824;\n  border:1px solid var(--nest-line); border-radius:9px; padding:10px 11px; appearance:none;}\n.saec select:focus-visible,.saec input:focus-visible,.saec button:focus-visible,.saec summary:focus-visible{\n  outline:3px solid var(--yolk); outline-offset:2px;}\n.saec input[type=checkbox]{width:17px; height:17px; accent-color:var(--yolk);}\n.saec-check{flex-direction:row; align-items:center; gap:9px; padding-top:22px;}\n.saec-check label{font-weight:600; font-size:13.5px; color:#efeaf7;}\n\n\/* results *\/\n.saec-out{margin-top:20px; background:#1a1824; border:1px solid var(--nest-line); border-radius:12px; overflow:hidden;}\n.saec-out-main{padding:18px 20px; border-bottom:1px dashed var(--nest-line);}\n.saec-out-main .saec-label{font-size:12.5px; font-weight:700; color:#b7aecd;}\n.saec-big{font-size:clamp(30px,6vw,44px); font-weight:800; line-height:1.05; letter-spacing:-.02em; color:var(--yolk); margin-top:2px;}\n.saec-big small{font-size:.42em; font-weight:700; color:#b7aecd; letter-spacing:0;}\n.saec-cells{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}\n.saec-cell{padding:14px 20px; border-right:1px solid var(--nest-line); border-top:1px solid var(--nest-line);}\n.saec-cell:last-child{border-right:0;}\n.saec-cell span{display:block; font-size:11.5px; font-weight:700; color:#9a92b0;}\n.saec-cell b{display:block; font-size:19px; font-weight:800; margin-top:2px; color:#fff;}\n.saec-verdict{display:flex; gap:11px; align-items:flex-start; padding:15px 20px; border-top:1px solid var(--nest-line); font-size:14.5px;}\n.saec-verdict .saec-dot{flex:0 0 auto; width:10px; height:10px; border-radius:50%; margin-top:7px; background:var(--yolk);}\n.saec-verdict b{color:#fff; display:block;}\n.saec-verdict p{color:#b7aecd; margin-top:2px;}\n.saec-go .saec-dot{background:#43c17a;} .saec-no .saec-dot{background:var(--ember);} .saec-hold .saec-dot{background:var(--yolk);}\n.saec-note{font-size:12.5px; color:#9a92b0; margin-top:13px;}\n.saec-note code{background:#1a1824; border:1px solid var(--nest-line); padding:1px 5px; border-radius:4px; font-size:12px;}\n\n\/* pen builder rows *\/\n.saec-rows{display:flex; flex-direction:column; gap:10px;}\n.saec-row{display:grid; grid-template-columns:1fr 150px 78px 40px; gap:9px; align-items:center;}\n.saec-row .saec-del{font:inherit; font-size:18px; line-height:1; cursor:pointer; color:#b7aecd;\n  background:#1a1824; border:1px solid var(--nest-line); border-radius:9px; padding:9px 0;}\n.saec-row .saec-del:hover{color:#fff; border-color:var(--ember);}\n.saec-add{font:inherit; font-size:14px; font-weight:700; cursor:pointer; margin-top:12px;\n  color:var(--yolk); background:transparent; border:1px dashed var(--yolk-deep); border-radius:9px; padding:10px 15px;}\n.saec-add:hover{background:#2a2333;}\n\n\/* odds table inside panel *\/\n.saec-odds{width:100%; border-collapse:collapse; font-size:14px; margin-top:16px;}\n.saec-odds th{text-align:left; font-size:11.5px; color:#9a92b0; padding:7px 9px; border-bottom:1px solid var(--nest-line);}\n.saec-odds td{padding:8px 9px; border-bottom:1px solid #332e42; color:#efeaf7;}\n.saec-odds td:last-child,.saec-odds th:last-child{text-align:right;}\n.saec-bar{height:6px; border-radius:3px; background:var(--yolk); display:block; min-width:2px;}\n\n\/* rarity + biome chips *\/\n.saec-chip{display:inline-block; font-size:11.5px; font-weight:700; padding:2px 8px; border-radius:999px; white-space:nowrap;}\n.saec-r-Common{background:#e8e8ee; color:#4a4a58;}\n.saec-r-Uncommon{background:#dcf0e2; color:#1f6340;}\n.saec-r-Rare{background:#dbe8f7; color:#25507e;}\n.saec-r-Epic{background:#ece0fa; color:#5b3ba8;}\n.saec-r-Legendary{background:#fdeccc; color:#8a5a00;}\n.saec-r-Mythic{background:#fbdcd5; color:#9c3220;}\n.saec-r-Cosmic{background:#d8ecf0; color:#1a5f6b;}\n.saec-r-Secret{background:#2a2a33; color:#ffd479;}\n.saec-r-Eternal{background:#1f2b47; color:#9ec6ff;}\n.saec-r-Divine{background:#3a2440; color:#ffc0f0;}\n\n\/* ---------- prose \/ guide ---------- *\/\n.saec-body{padding:42px 0 10px;}\n.saec-sec{padding-bottom:36px;}\n.saec-sec + .saec-sec{border-top:1px solid var(--line); padding-top:36px;}\n.saec-sec h2{font-size:clamp(22px,3.6vw,30px); font-weight:800; letter-spacing:-.015em; max-width:26ch;}\n.saec-sec h3{font-size:19px; font-weight:700; margin-top:26px;}\n.saec-sec h4{font-size:16px; font-weight:700; margin-top:20px;}\n.saec-sec p{margin-top:12px; max-width:70ch; color:var(--ink-soft);}\n.saec-sec p strong{color:var(--ink);}\n.saec-sec ul{margin-top:12px; max-width:70ch; color:var(--ink-soft);}\n.saec-pull{margin-top:20px; padding:16px 18px; background:#fff; border:1px solid var(--line);\n  border-left:4px solid var(--yolk); border-radius:0 10px 10px 0; font-size:15px; color:var(--ink-soft); max-width:70ch;}\n.saec-pull b{color:var(--ink);}\n\n.saec-scroll{overflow-x:auto; margin-top:18px; border:1px solid var(--line); border-radius:11px; background:#fff;}\n.saec-tbl{width:100%; border-collapse:collapse; font-size:14.5px; min-width:560px;}\n.saec-tbl th{text-align:left; background:var(--shell-2); font-size:12px; font-weight:700; color:var(--ink-soft);\n  padding:10px 13px; border-bottom:1px solid var(--line); white-space:nowrap;}\n.saec-tbl td{padding:10px 13px; border-bottom:1px solid #eee6d4; color:var(--ink-soft);}\n.saec-tbl tr:last-child td{border-bottom:0;}\n.saec-tbl td:first-child{font-weight:700; color:var(--ink);}\n.saec-tbl .saec-r{text-align:right; font-variant-numeric:tabular-nums;}\n\n\/* faq *\/\n.saec-faq{margin-top:20px; border:1px solid var(--line); border-radius:11px; overflow:hidden; background:#fff; max-width:78ch;}\n.saec-faq details{border-bottom:1px solid #eee6d4;}\n.saec-faq details:last-child{border-bottom:0;}\n.saec-faq summary{cursor:pointer; list-style:none; padding:15px 18px; font-weight:700; font-size:15.5px;\n  display:flex; justify-content:space-between; gap:14px; align-items:flex-start;}\n.saec-faq summary::-webkit-details-marker{display:none;}\n.saec-faq summary::after{content:\"+\"; color:var(--yolk-deep); font-size:20px; line-height:1; flex:0 0 auto;}\n.saec-faq details[open] summary::after{content:\"\\2212\";}\n.saec-faq .saec-a{padding:0 18px 16px; font-size:15px; color:var(--ink-soft); max-width:68ch;}\n\n\/* footer *\/\n.saec-alert{margin:0; padding:14px 20px; background:#fdecea; color:#8a1c0f;\n  border-bottom:2px solid #d1452f; font-size:14.5px; font-weight:600;}\n.saec-alert span{display:block; font-weight:400; margin-top:4px; color:#a33a28;}\n.saec-foot{background:var(--nest); color:#9a92b0; padding:26px 0; font-size:13px;}\n.saec-foot b{color:#efeaf7;}\n.saec-foot p + p{margin-top:9px;}\n\n@media (max-width:640px){\n  .saec-in{padding:0 15px;}\n  .saec-panel{padding:16px; border-radius:12px;}\n  .saec-row{grid-template-columns:1fr 1fr; grid-template-areas:\"pet pet\" \"mut qty\";}\n  .saec-row > *:nth-child(1){grid-area:pet;}\n  .saec-row > *:nth-child(2){grid-area:mut;}\n  .saec-row > *:nth-child(3){grid-area:qty;}\n  .saec-row .saec-del{grid-column:1\/-1;}\n  .saec-cell{border-right:0;}\n}\n@media (prefers-reduced-motion:reduce){.saec *{transition:none !important; animation:none !important;}}\n<\/style>\n\n<!-- ============================ HERO ============================ -->\n<div class=\"saec-alert\" id=\"saec-alert\" role=\"alert\">\n  The calculators on this page need JavaScript, and it is not loading.\n  <span>Everything below is still readable. If you are the site owner: the script tag in this block is being removed by WordPress or a plugin.<\/span>\n<\/div>\n\n<header class=\"saec-hero\">\n  <div class=\"saec-in\">\n    <span class=\"saec-kicker\">\ud83e\udd5a Six tools \u00b7 updated September 2026 \u00b7 free, no login<\/span>\n    <h1>Steal An Egg Calculator<\/h1>\n    <p class=\"saec-lede\">A free Steal An Egg calculator for the six numbers the game never shows you: what a pet earns per second once its mutation is applied, what your whole pen brings in per hour, the real odds behind an egg pool, whether a fuse gains or loses money, how much speed stands between you and the next biome, and whether your cash belongs in a pen slot or the treadmill. Pick a tool, type your own figures, read the answer.<\/p>\n    <nav class=\"saec-jump\">\n      <a href=\"#saec-calcs\">Open the calculators<\/a>\n      <a href=\"#saec-income\">Money per second<\/a>\n      <a href=\"#saec-mutations\">Mutation multipliers<\/a>\n      <a href=\"#saec-fuse-guide\">Fusing<\/a>\n      <a href=\"#saec-speed-guide\">Speed by biome<\/a>\n      <a href=\"#saec-faq\">FAQ<\/a>\n    <\/nav>\n  <\/div>\n<\/header>\n\n<!-- ========================= CALCULATORS ========================= -->\n<section class=\"saec-nest\" id=\"saec-calcs\">\n  <div class=\"saec-in\">\n    <div class=\"saec-nest-head\">\n      <div>\n        <h2>Six calculators, one page<\/h2>\n        <p>Nothing to submit and nothing to install. Change any field and the answer moves with it. Base income figures come from community tracking; the card on your own pet is always the last word.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"saec-tabs\" role=\"tablist\" aria-label=\"Steal An Egg calculators\">\n      <button type=\"button\" role=\"tab\" id=\"saec-t-pet\"   aria-controls=\"saec-p-pet\"   aria-selected=\"true\">\ud83d\udc3e Pet income<\/button>\n      <button type=\"button\" role=\"tab\" id=\"saec-t-pen\"   aria-controls=\"saec-p-pen\"   aria-selected=\"false\">\ud83c\udfe1 Whole pen<\/button>\n      <button type=\"button\" role=\"tab\" id=\"saec-t-egg\"   aria-controls=\"saec-p-egg\"   aria-selected=\"false\">\ud83e\udd5a Egg odds &amp; EV<\/button>\n      <button type=\"button\" role=\"tab\" id=\"saec-t-fuse\"  aria-controls=\"saec-p-fuse\"  aria-selected=\"false\">\ud83d\udd17 Fuse<\/button>\n      <button type=\"button\" role=\"tab\" id=\"saec-t-speed\" aria-controls=\"saec-p-speed\" aria-selected=\"false\">\u26a1 Speed &amp; biome<\/button>\n      <button type=\"button\" role=\"tab\" id=\"saec-t-goal\"  aria-controls=\"saec-p-goal\"  aria-selected=\"false\">\ud83c\udfaf Upgrade payback<\/button>\n    <\/div>\n\n    <!-- ---------- PET INCOME ---------- -->\n    <div class=\"saec-panel\" role=\"tabpanel\" id=\"saec-p-pet\" aria-labelledby=\"saec-t-pet\">\n      <h3>Pet income calculator: money per second<\/h3>\n      <p class=\"saec-sub\">Pick a pet, apply its mutation, and see what it pays per second, hour and day \u2014 plus the Index reward you get for registering it.<\/p>\n      <div class=\"saec-grid\">\n        <div class=\"saec-f\">\n          <label for=\"saec-pet-sel\">Pet<\/label>\n          <select id=\"saec-pet-sel\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-pet-mut\">Mutation \/ aura<\/label>\n          <select id=\"saec-pet-mut\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-pet-size\">Size &amp; weight roll <span class=\"saec-hint\">100% = an average pet<\/span><\/label>\n          <input type=\"number\" id=\"saec-pet-size\" value=\"100\" min=\"10\" max=\"400\" step=\"5\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-pet-qty\">How many equipped<\/label>\n          <input type=\"number\" id=\"saec-pet-qty\" value=\"1\" min=\"1\" max=\"50\" step=\"1\">\n        <\/div>\n      <\/div>\n      <div class=\"saec-out\" id=\"saec-pet-out\"><\/div>\n      <p class=\"saec-note\">Money per second is multiplied by the mutation, then by your size\/weight roll. Size and weight are known to move the displayed figure but the exact curve has never been published, so treat that field as a manual nudge \u2014 read the real number off the pet card and type it straight into the pen tool if you want exact totals.<\/p>\n    <\/div>\n\n    <!-- ---------- WHOLE PEN ---------- -->\n    <div class=\"saec-panel\" role=\"tabpanel\" id=\"saec-p-pen\" aria-labelledby=\"saec-t-pen\" hidden>\n      <h3>Whole-pen income calculator<\/h3>\n      <p class=\"saec-sub\">Your real income is the sum of every pet in an active slot. Build your pen here to see the total, find your weakest slot, and check how long a purchase takes to fund.<\/p>\n      <div class=\"saec-grid\" style=\"grid-template-columns:repeat(auto-fit,minmax(150px,1fr));\">\n        <div class=\"saec-f\">\n          <label for=\"saec-pen-slots\">Pen slots unlocked<\/label>\n          <input type=\"number\" id=\"saec-pen-slots\" value=\"6\" min=\"1\" max=\"40\" step=\"1\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-pen-target\">Next purchase cost <span class=\"saec-hint\">slot, treadmill, egg\u2026<\/span><\/label>\n          <input type=\"number\" id=\"saec-pen-target\" value=\"1000000\" min=\"0\" step=\"1000\">\n        <\/div>\n      <\/div>\n      <div class=\"saec-rows\" id=\"saec-pen-rows\" style=\"margin-top:16px;\"><\/div>\n      <button type=\"button\" class=\"saec-add\" id=\"saec-pen-add\">+ Add a pet to the pen<\/button>\n      <div class=\"saec-out\" id=\"saec-pen-out\"><\/div>\n      <p class=\"saec-note\">A pet in storage earns nothing. If the pen total below is lower than it could be, the fix is almost always swapping a stored earner into a slot rather than chasing another hatch.<\/p>\n    <\/div>\n\n    <!-- ---------- EGG ODDS ---------- -->\n    <div class=\"saec-panel\" role=\"tabpanel\" id=\"saec-p-egg\" aria-labelledby=\"saec-t-egg\" hidden>\n      <h3>Egg odds calculator &amp; expected value<\/h3>\n      <p class=\"saec-sub\">For the egg pools that publish hatch rates, this works out the average income per hatch and your chance of actually landing the chase pet across a run of eggs \u2014 from the real odds, not a guessed percentage.<\/p>\n      <div class=\"saec-grid\" style=\"grid-template-columns:repeat(auto-fit,minmax(170px,1fr));\">\n        <div class=\"saec-f\">\n          <label for=\"saec-egg-pool\">Egg pool<\/label>\n          <select id=\"saec-egg-pool\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-egg-n\">Eggs you plan to open<\/label>\n          <input type=\"number\" id=\"saec-egg-n\" value=\"10\" min=\"1\" max=\"10000\" step=\"1\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-egg-cost\">Cost per egg <span class=\"saec-hint\">0 if it isn&#8217;t cash-priced<\/span><\/label>\n          <input type=\"number\" id=\"saec-egg-cost\" value=\"0\" min=\"0\" step=\"1000\">\n        <\/div>\n      <\/div>\n      <div class=\"saec-out\" id=\"saec-egg-out\"><\/div>\n      <table class=\"saec-odds\" id=\"saec-egg-tbl\"><\/table>\n      <p class=\"saec-note\">Odds are per individual roll. Ten eggs at a 4% chase rate is not a 40% shot \u2014 it works out at <code>1 \u2212 (1 \u2212 p)\u207f<\/code>, which the panel above calculates for you. Nothing here implies a pity timer; none has ever been confirmed.<\/p>\n    <\/div>\n\n    <!-- ---------- FUSE ---------- -->\n    <div class=\"saec-panel\" role=\"tabpanel\" id=\"saec-p-fuse\" aria-labelledby=\"saec-t-fuse\" hidden>\n      <h3>Fuse calculator<\/h3>\n      <p class=\"saec-sub\">The machine takes three copies of the <em>same<\/em> pet and returns one egg of that species. You lose three earners for one, so the maths only works if the result is strong enough \u2014 or if the freed slots get filled with something better.<\/p>\n      <div class=\"saec-grid\">\n        <div class=\"saec-f\">\n          <label for=\"saec-fuse-pet\">The pet you&#8217;re fusing (\u00d73)<\/label>\n          <select id=\"saec-fuse-pet\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-fuse-mut\">Mutation on the inputs<\/label>\n          <select id=\"saec-fuse-mut\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-fuse-out\">Fused result, per second <span class=\"saec-hint\">blank = estimate at 3\u00d7<\/span><\/label>\n          <input type=\"number\" id=\"saec-fuse-out\" placeholder=\"auto\" min=\"0\" step=\"1\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-fuse-fee\">Fuse fee (cash)<\/label>\n          <input type=\"number\" id=\"saec-fuse-fee\" value=\"0\" min=\"0\" step=\"1000\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-fuse-slots\">Pen slots \/ in use<\/label>\n          <div style=\"display:flex; gap:8px;\">\n            <input type=\"number\" id=\"saec-fuse-slots\" value=\"6\" min=\"1\" max=\"40\" step=\"1\" aria-label=\"Pen slots\">\n            <input type=\"number\" id=\"saec-fuse-used\" value=\"6\" min=\"0\" max=\"40\" step=\"1\" aria-label=\"Slots in use\">\n          <\/div>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-fuse-rep\">What you&#8217;d put in a freed slot, per second<\/label>\n          <input type=\"number\" id=\"saec-fuse-rep\" value=\"0\" min=\"0\" step=\"1\">\n        <\/div>\n      <\/div>\n      <div class=\"saec-out\" id=\"saec-fuse-out-box\"><\/div>\n      <p class=\"saec-note\">All three inputs must be the identical species \u2014 three Walruses, not a Walrus and two friends. Mutations can carry through a fusion but are not guaranteed to, so don&#8217;t feed the machine your only Rainbow. Fuse duplicates that are sitting in storage first; pulling three active earners drops your income until the new egg hatches.<\/p>\n    <\/div>\n\n    <!-- ---------- SPEED ---------- -->\n    <div class=\"saec-panel\" role=\"tabpanel\" id=\"saec-p-speed\" aria-labelledby=\"saec-t-speed\" hidden>\n      <h3>Speed calculator: biome requirements<\/h3>\n      <p class=\"saec-sub\">Speed is the real gate on the whole game: it decides which nest you can rob and how much egg weight you can carry home. This tells you how far off the next biome you are and how long the treadmill will take.<\/p>\n      <div class=\"saec-grid\">\n        <div class=\"saec-f\">\n          <label for=\"saec-sp-biome\">Biome you&#8217;re aiming at<\/label>\n          <select id=\"saec-sp-biome\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-sp-cur\">Your speed now<\/label>\n          <input type=\"number\" id=\"saec-sp-cur\" value=\"5000\" min=\"0\" step=\"100\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-sp-trail\">Flat bonus from trails \/ gear<\/label>\n          <input type=\"number\" id=\"saec-sp-trail\" value=\"0\" min=\"0\" step=\"100\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-sp-rate\">Speed gained per second of training<\/label>\n          <input type=\"number\" id=\"saec-sp-rate\" value=\"25\" min=\"0.01\" step=\"1\">\n        <\/div>\n        <div class=\"saec-f saec-check\">\n          <input type=\"checkbox\" id=\"saec-sp-buffer\" checked>\n          <label for=\"saec-sp-buffer\">Add a 25% margin over the floor<\/label>\n        <\/div>\n      <\/div>\n      <div class=\"saec-out\" id=\"saec-sp-out\"><\/div>\n      <p class=\"saec-note\">The listed floor is the point at which a steal becomes possible, not comfortable. Heavy eggs slow you down on the way back and the guardian does not, which is why a margin over the floor turns a coin-flip run into a repeatable one. Every floor here is a moving target between updates, so read your own off the upgrade board before committing cash.<\/p>\n    <\/div>\n\n    <!-- ---------- GOAL \/ PAYBACK ---------- -->\n    <div class=\"saec-panel\" role=\"tabpanel\" id=\"saec-p-goal\" aria-labelledby=\"saec-t-goal\" hidden>\n      <h3>Pen upgrade calculator: slot vs treadmill<\/h3>\n      <p class=\"saec-sub\">Two ways to spend the same pile of cash. This compares how fast a new slot pays for itself against how long the treadmill needs to get you into the biome you&#8217;re chasing.<\/p>\n      <div class=\"saec-grid\">\n        <div class=\"saec-f\">\n          <label for=\"saec-gl-bench\">Best benched pet, per second <span class=\"saec-hint\">what a new slot would earn<\/span><\/label>\n          <input type=\"number\" id=\"saec-gl-bench\" value=\"15000\" min=\"0\" step=\"100\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-gl-slot\">Next pen slot cost<\/label>\n          <input type=\"number\" id=\"saec-gl-slot\" value=\"5000000\" min=\"0\" step=\"10000\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-gl-tread\">Next treadmill upgrade cost<\/label>\n          <input type=\"number\" id=\"saec-gl-tread\" value=\"5000000\" min=\"0\" step=\"10000\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-gl-biome\">Biome you&#8217;re training for<\/label>\n          <select id=\"saec-gl-biome\"><\/select>\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-gl-cur\">Your speed now<\/label>\n          <input type=\"number\" id=\"saec-gl-cur\" value=\"5000\" min=\"0\" step=\"100\">\n        <\/div>\n        <div class=\"saec-f\">\n          <label for=\"saec-gl-rate\">Speed per second after the upgrade<\/label>\n          <input type=\"number\" id=\"saec-gl-rate\" value=\"40\" min=\"0.01\" step=\"1\">\n        <\/div>\n      <\/div>\n      <div class=\"saec-out\" id=\"saec-gl-out\"><\/div>\n      <p class=\"saec-note\">Only two options get compared here, and only on payback speed. Hatch luck, mutation rolls and the way several upgrades compound into each other all sit outside the maths, so use the verdict for the purchase in front of you rather than as a plan for the account.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================ GUIDE ============================ -->\n<div class=\"saec-body\">\n  <div class=\"saec-in\">\n\n    <section class=\"saec-sec\" id=\"saec-income\">\n      <h2>What the Steal An Egg income calculator works out<\/h2>\n      <p>Money per second is not one number, it is three stacked on top of each other, and the game shows you only the finished total. The income calculator above pulls those three apart so you can see which one is actually carrying your pen:<\/p>\n      <ul>\n        <li><strong>The species rate.<\/strong> Fixed per pet and loaded in for all 12 biomes, from the Forest Chicken up to the Cosmic and Angels &amp; Demons headliners.<\/li>\n        <li><strong>The mutation.<\/strong> A flat multiplier from 1.25\u00d7 to 3\u00d7, applied to the species rate.<\/li>\n        <li><strong>Your size and weight roll.<\/strong> Two identical pets with identical mutations still pay differently. The field is there as a manual nudge because no published curve exists for it.<\/li>\n      <\/ul>\n      <p>The pet calculator handles one pet at a time, which is the right tool for a straight comparison: is my Golden Walrus worth more than my plain Polar Bear? The pen calculator handles the number that actually matters, because your income is the sum of every pet in an <strong>active slot<\/strong> and nothing else. Pets in storage pay zero. That one rule quietly costs more progress than bad egg luck ever does, and the pen tool flags it the moment your slot count exceeds the pets you have listed.<\/p>\n      <div class=\"saec-pull\"><b>Try this first:<\/b> put your real pen into the whole-pen tab, then read the weakest-slot line. That pet is both your next upgrade target and the right thing to feed the fuse machine. Everything else in your account can wait.<\/div>\n      <p>Looking for base rates rather than a calculation? The full index of every pet, rarity and listed income per second lives in our <a href=\"https:\/\/www.joytify.com\/blog\/en-us\/rpg-others\/roblox\/steal-an-egg-pets-list\/\">Steal an Egg pets list<\/a>, which is the better page to bookmark if you just want to look a creature up.<\/p>\n    <\/section>\n\n    <section class=\"saec-sec\" id=\"saec-mutations\">\n      <h2>Mutation multipliers the calculator applies<\/h2>\n      <p>Five mutations are in the pool. Silver, Golden and Rainbow turn up on egg spawns and during Admin Abuse. Bloom and Spirit Bloom come out of the Sakura Incubator, unlocked by handing an Epic Crane from Cherry Blossom to the machine and then feeding it Sakura Crystals farmed during Great Bloom.<\/p>\n      <div class=\"saec-scroll\">\n        <table class=\"saec-tbl\">\n          <thead><tr><th>Mutation<\/th><th class=\"saec-r\">Multiplier<\/th><th>Source<\/th><th class=\"saec-r\">Reported chance<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td>Spirit Bloom<\/td><td class=\"saec-r\">3\u00d7<\/td><td>Sakura Incubator<\/td><td class=\"saec-r\">2.5%<\/td><\/tr>\n            <tr><td>Rainbow<\/td><td class=\"saec-r\">2.5\u00d7<\/td><td>Egg spawn, Admin Abuse<\/td><td class=\"saec-r\">not published<\/td><\/tr>\n            <tr><td>Golden<\/td><td class=\"saec-r\">2\u00d7<\/td><td>Egg spawn, Admin Abuse<\/td><td class=\"saec-r\">not published<\/td><\/tr>\n            <tr><td>Bloom<\/td><td class=\"saec-r\">1.5\u00d7<\/td><td>Sakura Incubator<\/td><td class=\"saec-r\">97.5%<\/td><\/tr>\n            <tr><td>Silver<\/td><td class=\"saec-r\">1.25\u00d7<\/td><td>Egg spawn, Admin Abuse<\/td><td class=\"saec-r\">not published<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n      <p>Because the multiplier is flat, it cuts across rarity. Run a Spirit Bloom Epic against a plain Legendary in the pet tab and the Epic often wins outright, which is the single most common reason players sell or fuse something they should have kept. Read the mutation before you decide anything.<\/p>\n      <p>One caution on the numbers themselves. Every current tracker agrees on this table, but no developer figures have ever been published, and the screenshots behind it rarely hold size and weight steady. A pet earning 10M\/s next to a Rainbow twin earning 50M\/s is not proof of a 5\u00d7 Rainbow; the twin may simply be a heavier roll. Gender and Personality also appear on the card and have no established effect on income, so leave them out of any comparison.<\/p>\n    <\/section>\n\n    <section class=\"saec-sec\" id=\"saec-egg-guide\">\n      <h2>Egg odds instead of guesswork<\/h2>\n      <p>Most egg tools multiply your spend by a made-up percentage and call it expected value. This one only does maths where real hatch rates exist. The three Rift Egg banners publish both odds and income per pet, so the panel returns a true average per egg opened. The shop pools are treated differently: Brainrot, Monster and Luminous publish rates but not income, so you get the odds table and an honest blank rather than an invented figure.<\/p>\n      <p>The part worth internalising is the probability line. Ten eggs against a 4% chase rate is not a 40% shot, it works out at roughly 37%, and the panel runs <code>1 \u2212 (1 \u2212 p)\u207f<\/code> for whatever quantity you type. It also tells you how many eggs a coin-flip chance actually takes. No pity timer has ever been confirmed in this game, so a bad run of 40 rolls at 2.5% is unremarkable rather than broken.<\/p>\n    <\/section>\n\n    <section class=\"saec-sec\" id=\"saec-fuse-guide\">\n      <h2>The fuse calculator: when merging three pets pays off<\/h2>\n      <p>The Fuse Machine sits in the safe zone near your pen and asks for three copies of the same species. Not three of the same rarity. Three Walruses qualify; a Walrus with two friends does not. It consumes all three, charges a cash fee that scales with how strong they are, and returns one egg of that species which still has to hatch before it pays anything.<\/p>\n      <p>Fusing needs a calculator because the default outcome is a loss. You trade three income streams for one, so the result has to clear roughly three times a single input just to stand still. The fuse tab shows you that break-even rate directly, then adds the case that changes the answer: a full pen. When every slot is taken, fusing frees two of them, and whatever you had benched moves in. That is usually where the gain comes from, not from the fused pet itself.<\/p>\n      <div class=\"saec-pull\"><b>Clear win:<\/b> pen full, the three duplicates are your weakest equipped pets, better pets stuck on the bench with nowhere to go. <b>Clear loss:<\/b> you have an empty slot. Equip all three and fuse later.<\/div>\n      <p>Two more things the tool cannot know for you. Mutations sometimes carry through a fusion and sometimes vanish depending on the inputs, so test the behaviour on something expendable before you risk a Rainbow. And pulling three active earners drops your income until the replacement egg hatches, which is why duplicates rotting in storage are the right material. They earn nothing where they are, so anything the machine hands back is upside.<\/p>\n    <\/section>\n\n    <section class=\"saec-sec\" id=\"saec-speed-guide\">\n      <h2>Speed requirements by biome<\/h2>\n      <p>Speed gates everything above your current zone. It sets which nest you can rob and how much egg weight you can drag home before the guardian catches you. If runs keep failing, that is a speed problem rather than a pet problem, and the speed calculator turns it into a time estimate: how far short you are, and how many minutes of treadmill close the gap.<\/p>\n      <p>The floors below are attempt thresholds, not comfort thresholds. A heavy egg slows you on the return leg and the guardian is unaffected, so the planner adds a 25% margin by default. A biome you clear nine times out of ten will out-earn a richer one you fail in, because income is per hour, not per successful steal.<\/p>\n      <div class=\"saec-scroll\">\n        <table class=\"saec-tbl\" id=\"saec-biome-tbl\">\n          <thead><tr><th>Biome<\/th><th>Guardian<\/th><th class=\"saec-r\">Speed floor<\/th><th class=\"saec-r\">With 25% margin<\/th><th class=\"saec-r\">Pets loaded<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td>Forest<\/td><td>Chicken<\/td><td class=\"saec-r\">none<\/td><td class=\"saec-r\">\u2014<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Lake<\/td><td>Swan<\/td><td class=\"saec-r\">900<\/td><td class=\"saec-r\">1.13K<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Desert<\/td><td>Scorpion<\/td><td class=\"saec-r\">10K<\/td><td class=\"saec-r\">12.5K<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Jungle<\/td><td>Tiger<\/td><td class=\"saec-r\">40K<\/td><td class=\"saec-r\">50K<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Snow<\/td><td>Yeti<\/td><td class=\"saec-r\">170K<\/td><td class=\"saec-r\">213K<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Volcano<\/td><td>Hellhound<\/td><td class=\"saec-r\">700K<\/td><td class=\"saec-r\">875K<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Abyss Ocean<\/td><td>Moby<\/td><td class=\"saec-r\">2.5M<\/td><td class=\"saec-r\">3.13M<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Prehistoric<\/td><td>T-Rex<\/td><td class=\"saec-r\">18M<\/td><td class=\"saec-r\">22.5M<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Cosmic<\/td><td>Cosmic Dragon<\/td><td class=\"saec-r\">700M<\/td><td class=\"saec-r\">875M<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Cherry Blossom<\/td><td>Oni Tiger<\/td><td class=\"saec-r\">2.5B<\/td><td class=\"saec-r\">3.13B<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Titan Temple<\/td><td>Gorilla King<\/td><td class=\"saec-r\">7B<\/td><td class=\"saec-r\">8.75B<\/td><td class=\"saec-r\">8<\/td><\/tr>\n            <tr><td>Angels &amp; Demons<\/td><td>Celestial \/ Demon \/ Hybrid<\/td><td class=\"saec-r\">20B<\/td><td class=\"saec-r\">25B<\/td><td class=\"saec-r\">17<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n      <p>Floors move with patches and trackers disagree slightly, Prehistoric most of all, where both 17M and 18M get reported. Check yours against the upgrade board in game. Trails are worth a look too: a flat speed bonus stacks on top of treadmill gains and often costs less than the training time it saves. Once you clear your target zone, the planner will tell you to stop training and buy slots instead.<\/p>\n    <\/section>\n\n    <section class=\"saec-sec\" id=\"saec-payback-guide\">\n      <h2>Pen slot or treadmill: which upgrade pays back first<\/h2>\n      <p>This is the question the game asks you every few minutes and never helps with. The last tab settles it by comparing two durations. A pen slot costs cash and returns the income of whatever you can put in it, so its payback is simply cost divided by your best benched pet. The treadmill costs cash and returns access to a biome, so its payback is the training time still standing between you and that biome&#8217;s floor.<\/p>\n      <p>Whichever number is smaller wins your next purchase. Two situations flip the result hard. If you already clear the biome you are training for, the treadmill buys you nothing at all and the slot wins by default. If your bench is empty, a new slot earns nothing and the treadmill wins by default. The tool calls both out rather than returning a meaningless comparison.<\/p>\n      <p>Only two options get compared, and only on payback speed. Hatch luck, mutation rolls and the way upgrades compound into each other sit outside the maths, so apply the verdict to the purchase in front of you and nothing further.<\/p>\n      <p style=\"margin-top:22px;\"><a href=\"https:\/\/www.joytify.com\/en-us\/roblox?utm_source=SEO&amp;utm_medium=BLOG&amp;utm_campaign=CALCULATOR\"><strong>Need Robux for shop eggs and gamepasses?<\/strong> Top up Roblox at Joytify \u2192<\/a><\/p>\n    <\/section>\n\n    <section class=\"saec-sec\" id=\"saec-faq\">\n      <h2>Steal An Egg calculator FAQ<\/h2>\n      <div class=\"saec-faq\">\n        <details><summary>What does this Steal An Egg calculator work out?<\/summary><div class=\"saec-a\">Six separate calculations: one pet&#8217;s money per second with its mutation and size applied, a whole pen&#8217;s combined income per second, hour and day, the average income and chase-pet probability of an egg pool, the net income change from fusing three pets, the training time to a biome&#8217;s speed floor, and whether a pen slot or a treadmill upgrade returns its cost faster.<\/div><\/details>\n        <details><summary>How do I calculate money per second for one pet?<\/summary><div class=\"saec-a\">Take the pet&#8217;s base rate, multiply by its mutation, then adjust for how heavy the roll is. The pet tab does all three and shows the base, the post-mutation figure and the final total side by side so you can see which part is doing the work.<\/div><\/details>\n        <details><summary>How do I work out my total pen income?<\/summary><div class=\"saec-a\">Add up every pet sitting in an active slot. Storage contributes nothing. Build your pen in the second tab and it returns the total per second, hour and day, names your weakest slot, and tells you how long a purchase you are saving for will take to fund.<\/div><\/details>\n        <details><summary>Does the fuse calculator tell me if fusing is worth it?<\/summary><div class=\"saec-a\">Yes, and it will often say no. It compares three separate pets against one fused pet plus whatever fills the freed slots, then gives you the break-even rate the fused pet needs to clear. With an empty slot in your pen, equipping the three duplicates beats fusing them nearly every time.<\/div><\/details>\n        <details><summary>How accurate are the income numbers?<\/summary><div class=\"saec-a\">They are community-tracked base values, not developer figures. The game publishes no complete income or hatch-rate table, and updates land often. Your own pet card, which already includes your size and weight roll, always overrides anything here.<\/div><\/details>\n        <details><summary>Why can&#8217;t the calculator show income for Brainrot or Monster eggs?<\/summary><div class=\"saec-a\">Those pools publish hatch rates but not income per pet. Rather than inventing a value, the odds tab shows the rates and marks income as unpublished. Only the Rift banners, which publish both, produce a real expected value.<\/div><\/details>\n        <details><summary>Can I use it to decide between a pen slot and the treadmill?<\/summary><div class=\"saec-a\">That is the last tab. It divides the slot cost by your best benched pet to get a payback time, works out how long the treadmill needs to reach your target biome, and recommends whichever is shorter.<\/div><\/details>\n        <details><summary>Do mutation multipliers stack with size?<\/summary><div class=\"saec-a\">Mutation and size are separate properties on the card, and both move the final number, but the combined formula has never been published. The calculator multiplies them, which matches observed behaviour closely enough for planning without claiming to be exact.<\/div><\/details>\n        <details><summary>Where can I see every pet&#8217;s base income?<\/summary><div class=\"saec-a\">The calculator loads all of them into its dropdowns, and our <a href=\"https:\/\/www.joytify.com\/blog\/en-us\/rpg-others\/roblox\/steal-an-egg-pets-list\/\">Steal an Egg pets list<\/a> lays the same data out as browsable tables by biome, which is easier if you are looking one creature up rather than running a calculation.<\/div><\/details>\n      <\/div>\n    <\/section>\n\n  <\/div>\n<\/div>\n\n<footer class=\"saec-foot\">\n  <div class=\"saec-in\">\n    <p><b>About these numbers.<\/b> Every figure driving these calculators is community-tracked and cross-checked across public pet indexes. Roblox and the Steal An Egg developers publish no complete table of pet income, index rewards or hatch probability, so treat outputs as planning estimates. Patches move the underlying values, and your in-game pet card and upgrade board are the authority whenever they disagree with this page.<\/p>\n    <p><b>Independent fan project.<\/b> No affiliation with, sponsorship from or endorsement by Roblox Corporation or the Steal An Egg development team. Pet names and game terms belong to their respective owners. Data reviewed September 2026.<\/p>\n  <\/div>\n<\/footer>\n\n<script type=\"text\/javascript\" data-cfasync=\"false\" data-no-optimize=\"1\" data-no-defer=\"1\" data-nowprocket data-noptimize>\n\/*!\n * Steal An Egg Calculator -- behaviour script (part 2 of 2)\n * Pairs with the HTML block pasted into the Elementor HTML widget.\n * Safe to load from head, footer, deferred, or a delayed-JS optimiser:\n * it waits for #saec-app to appear and never initialises twice.\n *\/\n(function () {\n  \"use strict\";\n\n  function initSAEC() {\n    var root = document.getElementById(\"saec-app\");\n    if (!root) return false;                       \/* widget not on the page yet *\/\n    if (root.dataset.saecReady === \"1\") return true;\n    root.dataset.saecReady = \"1\";\n\n    \/* the script is alive: remove the \"JavaScript is not loading\" notice *\/\n    var alertBox = document.getElementById(\"saec-alert\");\n    if (alertBox) alertBox.parentNode.removeChild(alertBox);\n\n  \/* ============== DATA ==============\n     Each pet: [name, rarity, moneyPerSecond, indexSpeedReward, indexCashReward] *\/\n  var BIOMES = [\n    {name:\"Forest\",           guardian:\"Chicken\",                  speed:0,           pets:[\n      [\"Chicken\",\"Common\",1,420,100],[\"Dog\",\"Common\",2,460,200],[\"Bird\",\"Uncommon\",8,500,800],\n      [\"Burrowing Owl\",\"Rare\",35,560,3500],[\"Raccoon\",\"Rare\",45,620,4500],[\"Fox\",\"Epic\",180,720,18000],\n      [\"Bear\",\"Epic\",240,820,24000],[\"Brr Brr Patapim\",\"Legendary\",1800,1000,180000]]},\n    {name:\"Lake\",             guardian:\"Swan\",                     speed:900,         pets:[\n      [\"Frog\",\"Common\",3,2000,300],[\"Duckling\",\"Common\",4,2200,400],[\"Catfish\",\"Uncommon\",12,2500,1200],\n      [\"Turtle\",\"Rare\",60,2700,6000],[\"Trulimero Trulicina\",\"Epic\",260,3000,26000],[\"Swan\",\"Epic\",320,3500,32000],\n      [\"Axolotl\",\"Legendary\",2800,4000,280000],[\"Leviathan\",\"Cosmic\",220000,5000,22000000]]},\n    {name:\"Desert\",           guardian:\"Scorpion\",                 speed:10000,       pets:[\n      [\"Jerboa\",\"Common\",6,7200,600],[\"Fennec\",\"Uncommon\",18,8100,1800],[\"Camel\",\"Rare\",75,9000,7500],\n      [\"Tob Tobi Tob Tob\",\"Epic\",325,9900,32500],[\"Snake\",\"Legendary\",3600,10800,360000],\n      [\"Sand Spider\",\"Mythic\",16000,12600,1600000],[\"Scorpion\",\"Mythic\",18500,14400,1800000],\n      [\"Royal Sphinx\",\"Cosmic\",280000,18000,28000000]]},\n    {name:\"Jungle\",           guardian:\"Tiger\",                    speed:40000,       pets:[\n      [\"Chimpanzee\",\"Rare\",90,7200,9000],[\"Toucan\",\"Rare\",110,8100,11000],[\"Crocodile\",\"Epic\",420,9000,42000],\n      [\"Gorilla\",\"Legendary\",4800,9900,480000],[\"Orangutini Ananassini\",\"Legendary\",5500,10800,550000],\n      [\"Spider\",\"Mythic\",22000,12600,2200000],[\"Tiger\",\"Mythic\",28000,14400,2800000],\n      [\"King Snake\",\"Secret\",3500000,18000,350000000]]},\n    {name:\"Snow\",             guardian:\"Yeti\",                     speed:170000,      pets:[\n      [\"Penguin\",\"Rare\",140,12800,14000],[\"Walrus\",\"Epic\",600,14400,60000],[\"Polar Bear\",\"Legendary\",7000,16000,700000],\n      [\"Sabertooth Tiger\",\"Mythic\",35000,17600,3500000],[\"Mammoth\",\"Mythic\",42000,19200,4200000],\n      [\"King Mammoth\",\"Cosmic\",400000,22400,40000000],[\"Yeti\",\"Secret\",5000000,25600,500000000],\n      [\"Ice Dragon\",\"Eternal\",65000000,32000,6500000000]]},\n    {name:\"Volcano\",          guardian:\"Hellhound\",                speed:700000,      pets:[\n      [\"Lava Gecko\",\"Rare\",180,24000,18000],[\"Lava Frog\",\"Epic\",850,27000,85000],\n      [\"Flaming Bull\",\"Legendary\",9500,30000,950000],[\"Lava Iguana\",\"Legendary\",11000,36000,1100000],\n      [\"Chillin Chilli\",\"Mythic\",55000,33000,5500000],[\"Cerberus\",\"Secret\",8000000,42000,800000000],\n      [\"Phoenix\",\"Eternal\",85000000,48000,8500000000],[\"Lava Dragon\",\"Eternal\",100000000,60000,10000000000]]},\n    {name:\"Abyss Ocean\",      guardian:\"Moby\",                     speed:2500000,     pets:[\n      [\"Parrotfish\",\"Rare\",220,72000,22000],[\"Swordfish\",\"Epic\",1100,81000,110000],[\"Shark\",\"Legendary\",15000,90000,1500000],\n      [\"Orca\",\"Mythic\",80000,99000,8000000],[\"Whale Shark\",\"Cosmic\",700000,108000,70000000],\n      [\"Beluga Whale\",\"Cosmic\",850000,126000,85000000],[\"Kraken\",\"Secret\",15000000,144000,1500000000],\n      [\"El Maja\",\"Eternal\",130000000,180000,13000000000]]},\n    {name:\"Prehistoric\",      guardian:\"T-Rex\",                    speed:18000000,    pets:[\n      [\"Dodo\",\"Rare\",280,240000,28000],[\"Pterodactyl\",\"Legendary\",22000,270000,2200000],\n      [\"Ankylosaurus\",\"Mythic\",120000,330000,12000000],[\"Triceratops\",\"Cosmic\",1200000,360000,120000000],\n      [\"Bronto\",\"Cosmic\",1500000,300000,150000000],[\"T-Rex\",\"Secret\",25000000,420000,2500000000],\n      [\"Tralaledon\",\"Secret\",32000000,480000,3200000000],[\"Mosasaurus\",\"Eternal\",180000000,600000,18000000000]]},\n    {name:\"Cosmic\",           guardian:\"Cosmic Dragon\",            speed:700000000,   pets:[\n      [\"Centapede\",\"Epic\",1500,960000,150000],[\"Cosmic Gecko\",\"Legendary\",30000,1000000,3000000],\n      [\"Cosmic Gorilla\",\"Mythic\",180000,1200000,18000000],[\"La Vacca Saturno Saturnita\",\"Cosmic\",2200000,1300000,220000000],\n      [\"Cosmic Skeleton Boss\",\"Secret\",45000000,1600000,4500000000],[\"Cosmic Dragon\",\"Secret\",60000000,1400000,6000000000],\n      [\"Eternal Lunar Dragon\",\"Eternal\",250000000,1900000,25000000000],[\"Unicorn\",\"Divine\",1000000000,2400000,100000000000]]},\n    {name:\"Cherry Blossom\",   guardian:\"Oni Tiger\",                speed:2500000000,  pets:[\n      [\"Crane\",\"Epic\",4000,2700000,400000],[\"Salamander\",\"Legendary\",74000,3000000,7400000],\n      [\"Red Panda\",\"Mythic\",450000,3400000,45000000],[\"Snowy Owl\",\"Cosmic\",7500000,3700000,750000000],\n      [\"Koi\",\"Cosmic\",12000000,4200000,1200000000],[\"Stag\",\"Secret\",145000000,4800000,14500000000],\n      [\"Oni Tiger\",\"Eternal\",600000000,5400000,60000000000],[\"Kitsune\",\"Divine\",1800000000,6800000,180000000000]]},\n    {name:\"Titan Temple\",     guardian:\"Gorilla King\",             speed:7000000000,  pets:[\n      [\"Spideron\",\"Legendary\",95000,3700000,9500000],[\"Crustacia\",\"Legendary\",130000,2700000,13000000],\n      [\"Bladehide\",\"Mythic\",750000,4800000,75000000],[\"Mantaris\",\"Cosmic\",11000000,3400000,1100000000],\n      [\"Rhinotaur\",\"Cosmic\",17500000,3000000,1700000000],[\"Mutant Shark\",\"Secret\",215000000,4100000,21500000000],\n      [\"Gorilla King\",\"Eternal\",880000000,5400000,88000000000],[\"Nightflame\",\"Divine\",3000000000,6800000,300000000000]]},\n    {name:\"Angels \\u0026 Demons\",  guardian:\"Celestial \/ Demon \/ Hybrid\", speed:20000000000, pets:[\n      [\"Light Dove\",\"Legendary\",225000,3000000,22500000],[\"Flame Sprite\",\"Legendary\",225000,3000000,22500000],\n      [\"Winged Lamb\",\"Mythic\",1200000,4000000,125000000],[\"Toro\",\"Mythic\",1200000,4000000,125000000],\n      [\"Sacred Moth\",\"Cosmic\",16000000,8000000,1600000000],[\"Imp\",\"Cosmic\",16000000,8000000,1600000000],\n      [\"Holy Peacock\",\"Cosmic\",25000000,20000000,2500000000],[\"Demon Hound\",\"Cosmic\",25000000,20000000,2500000000],\n      [\"Pure Jellyfish\",\"Secret\",225000000,30000000,22500000000],[\"Gargoyle\",\"Secret\",225000000,30000000,22500000000],\n      [\"Centaur\",\"Secret\",350000000,90000000,35000000000],[\"RazorFang\",\"Secret\",350000000,90000000,35000000000],\n      [\"Pegasus\",\"Eternal\",1300000000,200000000,130000000000],[\"Skeleton Horse\",\"Eternal\",1300000000,200000000,130000000000],\n      [\"ArchAngel\",\"Divine\",5000000000,600000000,500000000000],[\"World Burner\",\"Divine\",5000000000,600000000,500000000000],\n      [\"Aetheron\",\"Divine\",1000000000000,0,0]]},\n    {name:\"Rift \\u0026 event pets\", guardian:\"\\u2014\",                       speed:-1,          pets:[\n      [\"Rift Eye\",\"Legendary\",11000,42000,1100000],[\"Void Angler\",\"Legendary\",30000,42000,3000000],\n      [\"Voidmaw\",\"Mythic\",50000,42000,5000000],[\"Riftwing\",\"Mythic\",220000,42000,3000000],\n      [\"Shardling\",\"Mythic\",450000,42000,45000000],[\"Ventinal\",\"Cosmic\",585000,34000,58500000],\n      [\"Dreadclaw\",\"Cosmic\",2200000,30000,220000000],[\"Shattered Ram\",\"Cosmic\",8000000,42000,800000000],\n      [\"Nibbles #013\",\"Cosmic\",185000,0,0],[\"Wendigo\",\"Secret\",15000000,40000,1500000000],\n      [\"Mawbreaker\",\"Secret\",60000000,42000,6000000000],[\"Shardwing\",\"Secret\",145000000,32000,14500000000],\n      [\"Experiment #001\",\"Secret\",285000000,0,0],[\"World Eater\",\"Eternal\",500000000,60000,50000000000],\n      [\"Shattered Drake\",\"Eternal\",800000000,65000,80000000000],[\"Void Serpent\",\"Eternal\",900000000,45000,90000000000],\n      [\"Shattered Colossus\",\"Divine\",3500000000,48000,350000000000]]}\n  ];\n\n  var MUTATIONS = [\n    {name:\"Normal (no mutation)\", mult:1},\n    {name:\"Silver \\u2014 1.25\\u00d7\",  mult:1.25},\n    {name:\"Bloom \\u2014 1.5\\u00d7\",    mult:1.5},\n    {name:\"Golden \\u2014 2\\u00d7\",     mult:2},\n    {name:\"Rainbow \\u2014 2.5\\u00d7\",  mult:2.5},\n    {name:\"Spirit Bloom \\u2014 3\\u00d7\",mult:3}\n  ];\n\n  \/* Egg pools that publish hatch rates. mps:null = income not published yet. *\/\n  var EGGS = [\n    {name:\"Rift Egg \\u2014 Void banner\", note:\"Banner rotates every three hours. Costs three sacrificed pets per egg, not cash.\", rows:[\n      [\"Rift Eye\",\"Legendary\",45,11000],[\"Voidmaw\",\"Mythic\",36,50000],[\"Ventinal\",\"Cosmic\",15,585000],\n      [\"Wendigo\",\"Secret\",4,15000000],[\"World Eater\",\"Eternal\",0.5,500000000]]},\n    {name:\"Rift Egg \\u2014 Angler banner\", note:\"Banner rotates every three hours. Costs three sacrificed pets per egg, not cash.\", rows:[\n      [\"Void Angler\",\"Legendary\",45,30000],[\"Riftwing\",\"Mythic\",36,220000],[\"Dreadclaw\",\"Cosmic\",15,2200000],\n      [\"Mawbreaker\",\"Secret\",4,60000000],[\"Void Serpent\",\"Eternal\",0.5,900000000]]},\n    {name:\"Rift Egg \\u2014 Shattered banner\", note:\"The richest of the three Rift banners, and the only one with a Divine slot.\", rows:[\n      [\"Shardling\",\"Mythic\",45,450000],[\"Shattered Ram\",\"Cosmic\",36,8000000],[\"Shardwing\",\"Secret\",15,145000000],\n      [\"Shattered Drake\",\"Eternal\",4,800000000],[\"Shattered Colossus\",\"Divine\",0.5,3500000000]]},\n    {name:\"Brainrot Egg (shop)\", note:\"Income per pet is not published for this pool, so only the odds are shown.\", rows:[\n      [\"Tung Tung Sahur\",\"Rare\",39,null],[\"Bananita Dolphinita\",\"Epic\",25,null],[\"Belula Beluga\",\"Mythic\",20,null],\n      [\"Mangolini Parrochini\",\"Cosmic\",10,null],[\"Bomboclat Crocolat\",\"Secret\",5,null],[\"Strawberry Elephant\",\"Eternal\",1,null]]},\n    {name:\"Monster Egg (shop)\", note:\"A separate 1% Mecha re-roll sits on top of these results, so a Mecha form works out at roughly its base rate \\u00d7 1%.\", rows:[\n      [\"Scorpio\",\"Legendary\",39,null],[\"Froggo\",\"Mythic\",24,null],[\"Crawler\",\"Cosmic\",18,null],\n      [\"Crocodon\",\"Secret\",11,null],[\"Krakenoid\",\"Eternal\",6.5,null],[\"Dreadscale\",\"Divine\",0.5,null]]},\n    {name:\"Luminous Egg (shop)\", note:\"Each base result carries a 1% chance to shift into its Luminous form. Income not yet published.\", rows:[\n      [\"Spike\",\"Legendary\",39,null],[\"Spirit Manta\",\"Mythic\",24,null],[\"Abyss Shark\",\"Cosmic\",18,null],\n      [\"Electric Eel\",\"Secret\",11,null],[\"Terra Snapper\",\"Eternal\",6.5,null],[\"Cthulhu\",\"Divine\",0.5,null]]},\n    {name:\"Sakura Incubator (mutation roll)\", note:\"Not a pet pool \\u2014 this rolls a mutation onto an egg you already have.\", rows:[\n      [\"Bloom (1.5\\u00d7)\",\"Common\",97.5,null],[\"Spirit Bloom (3\\u00d7)\",\"Divine\",2.5,null]]}\n  ];\n\n  var TOP_TIERS = {Secret:1, Eternal:1, Divine:1};\n\n  \/* ============== HELPERS ============== *\/\n  function fmt(n){\n    if(n === null || n === undefined || !isFinite(n)) return \"\\u2014\";\n    var neg = n < 0; n = Math.abs(n);\n    var out;\n    if(n >= 1e12)      out = trim(n\/1e12) + \"T\";\n    else if(n >= 1e9)  out = trim(n\/1e9)  + \"B\";\n    else if(n >= 1e6)  out = trim(n\/1e6)  + \"M\";\n    else if(n >= 1e3)  out = trim(n\/1e3)  + \"K\";\n    else               out = trim(n);\n    return (neg ? \"-\" : \"\") + out;\n  }\n  function trim(x){\n    var s = x >= 100 ? x.toFixed(0) : x >= 10 ? x.toFixed(1) : x.toFixed(2);\n    return s.replace(\/\\.0+$\/,\"\").replace(\/(\\.\\d*[1-9])0+$\/,\"$1\");\n  }\n  function money(n){ return \"$\" + fmt(n); }\n  function dur(sec){\n    if(!isFinite(sec) || sec < 0) return \"\\u2014\";\n    if(sec < 1) return \"instant\";\n    if(sec < 60) return Math.round(sec) + \"s\";\n    if(sec < 3600){ var m = Math.floor(sec\/60); return m + \"m \" + Math.round(sec%60) + \"s\"; }\n    if(sec < 86400){ var h = Math.floor(sec\/3600); return h + \"h \" + Math.round((sec%3600)\/60) + \"m\"; }\n    var d = Math.floor(sec\/86400);\n    if(d > 3650) return \"over 10 years\";\n    return d + \"d \" + Math.round((sec%86400)\/3600) + \"h\";\n  }\n  function num(el, fallback){\n    var v = parseFloat(el.value);\n    return isFinite(v) ? v : (fallback || 0);\n  }\n  function $(id){ return document.getElementById(id); }\n  function esc(s){ return String(s).replace(\/[\\u0026\\u003c\\u003e\"]\/g, function(c){\n    return ({\"\\u0026\":\"\\u0026amp;\",\"\\u003c\":\"\\u0026lt;\",\"\\u003e\":\"\\u0026gt;\",'\"':\"\\u0026quot;\"})[c]; }); }\n  function chip(rarity){ return '<span class=\"saec-chip saec-r-' + esc(rarity) + '\">' + esc(rarity) + \"<\/span>\"; }\n\n  \/* flat pet list + lookup *\/\n  var PETS = [], PET_BY_KEY = {};\n  BIOMES.forEach(function(b){\n    b.pets.forEach(function(p){\n      var o = {name:p[0], rarity:p[1], mps:p[2], spd:p[3], cash:p[4], biome:b.name};\n      o.key = b.name + \"|\" + p[0];\n      PETS.push(o); PET_BY_KEY[o.key] = o;\n    });\n  });\n\n  function fillPetSelect(sel, defaultKey){\n    var html = \"\";\n    BIOMES.forEach(function(b){\n      html += '<optgroup label=\"' + esc(b.name) + '\">';\n      b.pets.forEach(function(p){\n        html += '<option value=\"' + esc(b.name + \"|\" + p[0]) + '\">' + esc(p[0]) +\n                \" \\u2014 \" + money(p[2]) + \"\/s<\/option>\";\n      });\n      html += \"<\/optgroup>\";\n    });\n    sel.innerHTML = html;\n    if(defaultKey){ if(PET_BY_KEY[defaultKey]) sel.value = defaultKey; }\n  }\n  function fillMutSelect(sel){\n    sel.innerHTML = MUTATIONS.map(function(m,i){\n      return '<option value=\"' + i + '\">' + esc(m.name) + \"<\/option>\"; }).join(\"\");\n  }\n  function fillBiomeSelect(sel){\n    sel.innerHTML = BIOMES.filter(function(b){ return b.speed >= 0; }).map(function(b,i){\n      return '<option value=\"' + b.speed + '\">' + esc(b.name) + \" \\u2014 \" + fmt(b.speed) + \" speed<\/option>\";\n    }).join(\"\");\n  }\n\n  \/* ============== TABS ============== *\/\n  var tabs = Array.prototype.slice.call(root.querySelectorAll('.saec-tabs button'));\n  tabs.forEach(function(btn){\n    btn.addEventListener(\"click\", function(){\n      tabs.forEach(function(b){\n        var on = b === btn;\n        b.setAttribute(\"aria-selected\", on ? \"true\" : \"false\");\n        $(b.getAttribute(\"aria-controls\")).hidden = !on;\n      });\n    });\n  });\n\n  \/* ============== 1. PET INCOME ============== *\/\n  var petSel = $(\"saec-pet-sel\"), petMut = $(\"saec-pet-mut\"),\n      petSize = $(\"saec-pet-size\"), petQty = $(\"saec-pet-qty\"), petOut = $(\"saec-pet-out\");\n  fillPetSelect(petSel, \"Lake|Axolotl\");\n  fillMutSelect(petMut);\n\n  function renderPet(){\n    var pet = PET_BY_KEY[petSel.value] || PETS[0];\n    var mut = MUTATIONS[parseInt(petMut.value,10) || 0];\n    var size = Math.max(1, num(petSize, 100)) \/ 100;\n    var qty = Math.max(1, Math.round(num(petQty, 1)));\n    var each = pet.mps * mut.mult * size;\n    var total = each * qty;\n    var idx = (pet.spd ? \"+\" + fmt(pet.spd) + \" speed\" : \"not published\") +\n              (pet.cash ? \" \\u0026amp; \" + money(pet.cash) : \"\");\n    petOut.innerHTML =\n      '<div class=\"saec-out-main\">' +\n        '<div class=\"saec-label\">' + esc(pet.name) + \" \" + chip(pet.rarity) +\n          ' <span style=\"color:#9a92b0;font-weight:600;\">' + esc(pet.biome) + \"<\/span><\/div>\" +\n        '<div class=\"saec-big saec-num\">' + money(total) + \"<small>\/second<\/small><\/div>\" +\n      \"<\/div>\" +\n      '<div class=\"saec-cells\">' +\n        cell(\"Base rate\", money(pet.mps) + \"\/s\") +\n        cell(\"With mutation\", money(pet.mps * mut.mult) + \"\/s\") +\n        cell(\"Each pet\", money(each) + \"\/s\") +\n        cell(\"Per hour\", money(total * 3600)) +\n        cell(\"Per day\", money(total * 86400)) +\n        cell(\"Index reward\", idx) +\n      \"<\/div>\" +\n      verdict(mut.mult > 1 ? \"go\" : \"hold\",\n        mut.mult > 1\n          ? \"The mutation is adding \" + money(total - (pet.mps * size * qty)) + \"\/s over a plain copy.\"\n          : \"No mutation applied. A Golden copy of this pet would earn \" + money(pet.mps * 2 * size * qty) + \"\/s.\",\n        \"Equip it before anything else \\u2014 this pays nothing in storage.\");\n  }\n  function cell(label, val){\n    return '<div class=\"saec-cell\"><span>' + label + '<\/span><b class=\"saec-num\">' + val + \"<\/b><\/div>\";\n  }\n  function verdict(kind, title, body){\n    return '<div class=\"saec-verdict saec-' + kind + '\"><span class=\"saec-dot\"><\/span><div><b>' +\n      title + \"<\/b><p>\" + body + \"<\/p><\/div><\/div>\";\n  }\n  [petSel, petMut, petSize, petQty].forEach(function(el){\n    el.addEventListener(\"input\", renderPet); el.addEventListener(\"change\", renderPet);\n  });\n\n  \/* ============== 2. WHOLE PEN ============== *\/\n  var penRows = $(\"saec-pen-rows\"), penOut = $(\"saec-pen-out\"),\n      penSlots = $(\"saec-pen-slots\"), penTarget = $(\"saec-pen-target\");\n\n  function addPenRow(key, mutIdx, qty){\n    var row = document.createElement(\"div\");\n    row.className = \"saec-row\";\n    var s = document.createElement(\"select\"); fillPetSelect(s, key);\n    var m = document.createElement(\"select\"); fillMutSelect(m); m.value = mutIdx || 0;\n    var q = document.createElement(\"input\");\n    q.type = \"number\"; q.min = \"1\"; q.max = \"40\"; q.step = \"1\"; q.value = qty || 1;\n    q.setAttribute(\"aria-label\", \"Quantity\");\n    var d = document.createElement(\"button\");\n    d.type = \"button\"; d.className = \"saec-del\"; d.innerHTML = \"\\u00d7\";\n    d.setAttribute(\"aria-label\", \"Remove this pet\");\n    d.addEventListener(\"click\", function(){ row.remove(); renderPen(); });\n    [s,m,q].forEach(function(el){\n      el.addEventListener(\"input\", renderPen); el.addEventListener(\"change\", renderPen);\n    });\n    row.appendChild(s); row.appendChild(m); row.appendChild(q); row.appendChild(d);\n    penRows.appendChild(row);\n  }\n  $(\"saec-pen-add\").addEventListener(\"click\", function(){ addPenRow(\"Lake|Axolotl\",0,1); renderPen(); });\n\n  function renderPen(){\n    var rows = Array.prototype.slice.call(penRows.querySelectorAll(\".saec-row\"));\n    var total = 0, count = 0, weakest = null, strongest = null;\n    rows.forEach(function(r){\n      var sels = r.querySelectorAll(\"select\"), qEl = r.querySelector(\"input\");\n      var pet = PET_BY_KEY[sels[0].value]; if(!pet) return;\n      var mult = MUTATIONS[parseInt(sels[1].value,10) || 0].mult;\n      var qty = Math.max(1, Math.round(parseFloat(qEl.value) || 1));\n      var each = pet.mps * mult;\n      total += each * qty; count += qty;\n      if(!weakest || each < weakest.v) weakest = {v:each, n:pet.name};\n      if(!strongest || each > strongest.v) strongest = {v:each, n:pet.name};\n    });\n    var slots = Math.max(1, Math.round(num(penSlots, 6)));\n    var target = Math.max(0, num(penTarget, 0));\n    var free = slots - count;\n    var vKind, vTitle, vBody;\n    if(count === 0){\n      vKind = \"hold\"; vTitle = \"Nothing in the pen yet\";\n      vBody = \"Add your equipped pets above to see your real income per second.\";\n    } else if(free > 0){\n      vKind = \"no\"; vTitle = free + \" slot\" + (free>1?\"s\":\"\") + \" sitting empty\";\n      vBody = \"Filling them with anything you have benched is the cheapest income you will ever buy. Even a copy of \" +\n              esc(strongest.n) + \" in each would add \" + money(strongest.v * free) + \"\/s.\";\n    } else if(free < 0){\n      vKind = \"no\"; vTitle = \"You've listed \" + (-free) + \" more pet\" + (-free>1?\"s\":\"\") + \" than you have slots\";\n      vBody = \"Only pets in an active slot earn. Either raise the slot count or drop the extras \\u2014 the total above is counting pets you can't actually equip.\";\n    } else {\n      vKind = \"go\"; vTitle = \"Pen is full\";\n      vBody = \"Your weakest slot is \" + esc(weakest.n) + \" at \" + money(weakest.v) +\n              \"\/s. That is the one to replace next, and the one to feed the Fuse Machine.\";\n    }\n    penOut.innerHTML =\n      '<div class=\"saec-out-main\">' +\n        '<div class=\"saec-label\">Total pen income<\/div>' +\n        '<div class=\"saec-big saec-num\">' + money(total) + \"<small>\/second<\/small><\/div>\" +\n      \"<\/div>\" +\n      '<div class=\"saec-cells\">' +\n        cell(\"Pets equipped\", count + \" \/ \" + slots) +\n        cell(\"Per hour\", money(total * 3600)) +\n        cell(\"Per day\", money(total * 86400)) +\n        cell(\"Time for \" + money(target), (total > 0 ? (target > 0 ? 1 : 0) : 0) ? dur(target\/total) : \"\\u2014\") +\n      \"<\/div>\" +\n      verdict(vKind, vTitle, vBody);\n  }\n  [penSlots, penTarget].forEach(function(el){\n    el.addEventListener(\"input\", renderPen); el.addEventListener(\"change\", renderPen);\n  });\n\n  \/* ============== 3. EGG ODDS AND EV ============== *\/\n  var eggPool = $(\"saec-egg-pool\"), eggN = $(\"saec-egg-n\"), eggCost = $(\"saec-egg-cost\"),\n      eggOut = $(\"saec-egg-out\"), eggTbl = $(\"saec-egg-tbl\");\n  eggPool.innerHTML = EGGS.map(function(e,i){\n    return '<option value=\"' + i + '\">' + esc(e.name) + \"<\/option>\"; }).join(\"\");\n\n  function renderEgg(){\n    var pool = EGGS[parseInt(eggPool.value,10) || 0];\n    var n = Math.max(1, Math.round(num(eggN, 1)));\n    var cost = Math.max(0, num(eggCost, 0));\n    var sumP = 0, ev = 0, known = 0, chaseP = 0, best = null;\n    pool.rows.forEach(function(r){\n      sumP += r[2];\n      if(TOP_TIERS[r[1]]) chaseP += r[2];\n      if(r[3] !== null){ ev += (r[2]\/100) * r[3]; known += r[2]; }\n      if(r[3] !== null){ if(!best || r[3] > best[3]) best = r; }\n    });\n    var evNorm = known > 0 ? ev * (100\/known) : null;   \/* normalised over the priced slots *\/\n    var pAny = 1 - Math.pow(1 - Math.min(chaseP,100)\/100, n);\n    var rarest = pool.rows[pool.rows.length - 1];\n    var pRarest = 1 - Math.pow(1 - rarest[2]\/100, n);\n\n    eggOut.innerHTML =\n      '<div class=\"saec-out-main\">' +\n        '<div class=\"saec-label\">' + (evNorm !== null\n          ? \"Average income per egg opened\"\n          : \"Odds published, income not\") + \"<\/div>\" +\n        '<div class=\"saec-big saec-num\">' + (evNorm !== null ? money(evNorm) + \"<small>\/s per egg<\/small>\"\n          : \"\\u2014<small>see the table<\/small>\") + \"<\/div>\" +\n      \"<\/div>\" +\n      '<div class=\"saec-cells\">' +\n        cell(\"Secret+ chance, one egg\", trim(chaseP) + \"%\") +\n        cell(\"Secret+ in \" + n + \" eggs\", (pAny*100).toFixed(1) + \"%\") +\n        cell(\"Rarest slot in \" + n, (pRarest*100).toFixed(2) + \"%\") +\n        cell(\"Eggs for a coin-flip\", chaseP > 0 ? Math.ceil(Math.log(0.5)\/Math.log(1-chaseP\/100)) + \" eggs\" : \"\\u2014\") +\n        cell(\"Total spend\", cost > 0 ? money(cost*n) : \"no cash cost\") +\n        (evNorm !== null ? (cost > 0 ? 1 : 0) : 0\n          ? cell(\"Cost per 1\/s gained\", money(cost\/evNorm))\n          : cell(\"Best slot\", best ? money(best[3]) + \"\/s\" : \"\\u2014\")) +\n      \"<\/div>\" +\n      verdict(evNorm !== null ? \"go\" : \"hold\", pool.name, pool.note);\n\n    var maxP = Math.max.apply(null, pool.rows.map(function(r){ return r[2]; }));\n    eggTbl.innerHTML =\n      \"<thead><tr><th>Outcome<\/th><th>Rarity<\/th><th>Chance<\/th><th><\/th><th>Income<\/th><\/tr><\/thead><tbody>\" +\n      pool.rows.map(function(r){\n        return \"<tr><td>\" + esc(r[0]) + \"<\/td><td>\" + chip(r[1]) + \"<\/td>\" +\n          '<td class=\"saec-num\">' + trim(r[2]) + \"%<\/td>\" +\n          '<td style=\"width:22%\"><span class=\"saec-bar\" style=\"width:' +\n            Math.max(2, Math.round(r[2]\/maxP*100)) + '%\"><\/span><\/td>' +\n          '<td class=\"saec-num\">' + (r[3] !== null ? money(r[3]) + \"\/s\" : \"not published\") + \"<\/td><\/tr>\";\n      }).join(\"\") + \"<\/tbody>\";\n  }\n  [eggPool, eggN, eggCost].forEach(function(el){\n    el.addEventListener(\"input\", renderEgg); el.addEventListener(\"change\", renderEgg);\n  });\n\n  \/* ============== 4. FUSE ============== *\/\n  var fPet = $(\"saec-fuse-pet\"), fMut = $(\"saec-fuse-mut\"), fOutV = $(\"saec-fuse-out\"),\n      fFee = $(\"saec-fuse-fee\"), fSlots = $(\"saec-fuse-slots\"), fUsed = $(\"saec-fuse-used\"),\n      fRep = $(\"saec-fuse-rep\"), fBox = $(\"saec-fuse-out-box\");\n  fillPetSelect(fPet, \"Snow|Walrus\");\n  fillMutSelect(fMut);\n\n  function renderFuse(){\n    var pet = PET_BY_KEY[fPet.value] || PETS[0];\n    var mult = MUTATIONS[parseInt(fMut.value,10) || 0].mult;\n    var input = pet.mps * mult;\n    var fused = fOutV.value === \"\" ? input * 3 : Math.max(0, num(fOutV, 0));\n    var fee = Math.max(0, num(fFee, 0));\n    var slots = Math.max(1, Math.round(num(fSlots, 6)));\n    var used = Math.max(0, Math.round(num(fUsed, 0)));\n    var rep = Math.max(0, num(fRep, 0));\n    var penFull = used >= slots;\n    var freed = penFull ? 2 : 0;\n\n    var before = input * 3;\n    var after = fused + freed * rep;\n    var delta = after - before;\n    var payback = (delta > 0 ? (fee > 0 ? 1 : 0) : 0) ? fee\/delta : (fee === 0 ? 0 : Infinity);\n\n    var kind, title, body;\n    if(delta > 0){\n      kind = \"go\"; title = \"Fuse it\";\n      body = \"You gain \" + money(delta) + \"\/s\" +\n        (freed ? \" once the two freed slots are refilled\" : \"\") +\n        (fee > 0 ? \", and the \" + money(fee) + \" fee pays itself back in \" + dur(payback) + \".\" : \".\");\n    } else if(Math.abs(delta) < input * 0.02){\n      kind = \"hold\"; title = \"Break-even\";\n      body = \"Three pets into one lands almost exactly where you started. Worth it only for the slot space, or if the result might roll a mutation.\";\n    } else {\n      kind = \"no\"; title = \"Hold in the pen\";\n      body = \"Fusing costs you \" + money(-delta) + \"\/s. \" + (penFull\n        ? \"Even with two slots freed, the fused pet doesn't make up for the two earners you lose. Raise the fused estimate or wait for better benched pets.\"\n        : \"Your pen has room, so you're giving up two income streams for nothing. Equip all three instead.\");\n    }\n\n    fBox.innerHTML =\n      '<div class=\"saec-out-main\">' +\n        '<div class=\"saec-label\">Change in money per second<\/div>' +\n        '<div class=\"saec-big saec-num\" style=\"color:' +\n          (delta > 0 ? \"#43c17a\" : delta < 0 ? \"#ff7a63\" : \"var(--yolk)\") + '\">' +\n          (delta > 0 ? \"+\" : \"\") + money(delta) + \"<small>\/second<\/small><\/div>\" +\n      \"<\/div>\" +\n      '<div class=\"saec-cells\">' +\n        cell(\"3 separate pets\", money(before) + \"\/s\") +\n        cell(\"1 fused pet\", money(fused) + \"\/s\") +\n        cell(\"Freed slots refilled\", freed ? money(freed*rep) + \"\/s\" : \"pen not full\") +\n        cell(\"Break-even fused rate\", money(before - freed*rep) + \"\/s\") +\n        cell(\"Fee payback\", fee > 0 ? dur(payback) : \"no fee entered\") +\n        cell(\"Pen status\", penFull ? \"full (\" + used + \"\/\" + slots + \")\" : (slots-used) + \" free\") +\n      \"<\/div>\" +\n      verdict(kind, title, body);\n  }\n  [fPet, fMut, fOutV, fFee, fSlots, fUsed, fRep].forEach(function(el){\n    el.addEventListener(\"input\", renderFuse); el.addEventListener(\"change\", renderFuse);\n  });\n\n  \/* ============== 5. SPEED AND BIOME ============== *\/\n  var spBiome = $(\"saec-sp-biome\"), spCur = $(\"saec-sp-cur\"), spTrail = $(\"saec-sp-trail\"),\n      spRate = $(\"saec-sp-rate\"), spBuf = $(\"saec-sp-buffer\"), spOut = $(\"saec-sp-out\");\n  fillBiomeSelect(spBiome); spBiome.value = \"40000\";\n\n  function renderSpeed(){\n    var floor = parseFloat(spBiome.value) || 0;\n    var label = spBiome.options[spBiome.selectedIndex].textContent.split(\" \\u2014 \")[0];\n    var cur = Math.max(0, num(spCur, 0));\n    var trail = Math.max(0, num(spTrail, 0));\n    var rate = Math.max(0.01, num(spRate, 1));\n    var goal = spBuf.checked ? floor * 1.25 : floor;\n    var have = cur + trail;\n    var deficit = Math.max(0, goal - have);\n    var eta = deficit \/ rate;\n    var biome = BIOMES.filter(function(b){ return b.speed === floor; })[0];\n    var top = biome ? biome.pets.reduce(function(a,p){ return p[2] > a[2] ? p : a; }, biome.pets[0]) : null;\n\n    var kind, title, body;\n    if(deficit === 0){\n      kind = \"go\"; title = \"You can farm \" + esc(label) + \" now\";\n      body = \"You're \" + fmt(have - goal) + \" speed over the target\" + (spBuf.checked ? \" including the 25% margin\" : \"\") +\n        \". Spend on pen slots instead of the treadmill until the next biome becomes the bottleneck.\";\n    } else if(eta < 3600){\n      kind = \"hold\"; title = dur(eta) + \" of training to reach \" + esc(label);\n      body = \"You need \" + fmt(deficit) + \" more speed. That's close enough to finish in one session.\";\n    } else {\n      kind = \"no\"; title = dur(eta) + \" of training to reach \" + esc(label);\n      body = \"You're \" + fmt(deficit) + \" short. A flat trail bonus or a treadmill upgrade will cut this more than grinding will \\u2014 and check the payback tab before committing the cash.\";\n    }\n\n    spOut.innerHTML =\n      '<div class=\"saec-out-main\">' +\n        '<div class=\"saec-label\">Speed still needed for ' + esc(label) + \"<\/div>\" +\n        '<div class=\"saec-big saec-num\">' + fmt(deficit) + \"<small>speed<\/small><\/div>\" +\n      \"<\/div>\" +\n      '<div class=\"saec-cells\">' +\n        cell(\"Biome floor\", fmt(floor)) +\n        cell(\"Target\" + (spBuf.checked ? \" (+25%)\" : \"\"), fmt(goal)) +\n        cell(\"Your effective speed\", fmt(have)) +\n        cell(\"Training time\", dur(eta)) +\n        cell(\"Guardian\", biome ? esc(biome.guardian) : \"\\u2014\") +\n        cell(\"Best pet there\", top ? money(top[2]) + \"\/s\" : \"\\u2014\") +\n      \"<\/div>\" +\n      verdict(kind, title, body);\n  }\n  [spBiome, spCur, spTrail, spRate, spBuf].forEach(function(el){\n    el.addEventListener(\"input\", renderSpeed); el.addEventListener(\"change\", renderSpeed);\n  });\n\n  \/* ============== 6. PAYBACK ============== *\/\n  var glBench = $(\"saec-gl-bench\"), glSlot = $(\"saec-gl-slot\"), glTread = $(\"saec-gl-tread\"),\n      glBiome = $(\"saec-gl-biome\"), glCur = $(\"saec-gl-cur\"), glRate = $(\"saec-gl-rate\"), glOut = $(\"saec-gl-out\");\n  fillBiomeSelect(glBiome); glBiome.value = \"170000\";\n\n  function renderGoal(){\n    var bench = Math.max(0, num(glBench, 0));\n    var slotCost = Math.max(0, num(glSlot, 0));\n    var treadCost = Math.max(0, num(glTread, 0));\n    var floor = parseFloat(glBiome.value) || 0;\n    var label = glBiome.options[glBiome.selectedIndex].textContent.split(\" \\u2014 \")[0];\n    var cur = Math.max(0, num(glCur, 0));\n    var rate = Math.max(0.01, num(glRate, 1));\n    var slotPayback = bench > 0 ? slotCost\/bench : Infinity;\n    var deficit = Math.max(0, floor - cur);\n    var treadEta = deficit \/ rate;\n\n    var kind, title, body;\n    if(bench <= 0){\n      kind = \"hold\"; title = \"Enter your best benched pet\";\n      body = \"A pen slot is only worth what you can put in it. With nothing on the bench, the slot earns nothing and the treadmill wins by default.\";\n    } else if(deficit === 0){\n      kind = \"go\"; title = \"Buy the pen slot\";\n      body = \"You already clear \" + esc(label) + \", so the treadmill buys you nothing right now. The slot pays for itself in \" + dur(slotPayback) + \".\";\n    } else if(slotPayback <= treadEta){\n      kind = \"go\"; title = \"Buy the pen slot\";\n      body = \"The slot pays itself back in \" + dur(slotPayback) + \", faster than the \" + dur(treadEta) +\n        \" the treadmill needs to open \" + esc(label) + \". Slot first, then train with the extra income.\";\n    } else {\n      kind = \"no\"; title = \"Put it into the treadmill\";\n      body = esc(label) + \" opens in \" + dur(treadEta) + \", while the slot would take \" + dur(slotPayback) +\n        \" to pay for itself. The biome's pets are worth more than one more slot of what you already have.\";\n    }\n\n    glOut.innerHTML =\n      '<div class=\"saec-out-main\">' +\n        '<div class=\"saec-label\">Faster return on your next purchase<\/div>' +\n        '<div class=\"saec-big saec-num\">' + (bench > 0 ? (slotPayback <= treadEta ? (deficit >= 0 ? \"Pen slot\" : \"Treadmill\") : \"Treadmill\") : \"\\u2014\") + \"<\/div>\" +\n      \"<\/div>\" +\n      '<div class=\"saec-cells\">' +\n        cell(\"Slot payback\", dur(slotPayback)) +\n        cell(\"Time to \" + esc(label), dur(treadEta)) +\n        cell(\"Speed short by\", fmt(deficit)) +\n        cell(\"Slot cost\", money(slotCost)) +\n        cell(\"Treadmill cost\", money(treadCost)) +\n        cell(\"Bench pet\", money(bench) + \"\/s\") +\n      \"<\/div>\" +\n      verdict(kind, title, body);\n  }\n  [glBench, glSlot, glTread, glBiome, glCur, glRate].forEach(function(el){\n    el.addEventListener(\"input\", renderGoal); el.addEventListener(\"change\", renderGoal);\n  });\n\n  \/* ============== INIT ============== *\/\n  addPenRow(\"Snow|Polar Bear\",3,1);\n  addPenRow(\"Lake|Axolotl\",0,2);\n  addPenRow(\"Jungle|Tiger\",1,1);\n  renderPet(); renderPen(); renderEgg(); renderFuse(); renderSpeed(); renderGoal();\n    return true;\n  }\n\n  \/* Elementor can render a widget late (tabs, accordions, popups, lazy\n     sections), so try immediately, again on DOM ready, then poll briefly. *\/\n  function boot() {\n    if (initSAEC()) return;\n    var tries = 0;\n    var timer = setInterval(function () {\n      tries += 1;\n      if (initSAEC() || tries > 40) clearInterval(timer);   \/* give up after ~10s *\/\n    }, 250);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", boot);\n  } else {\n    boot();\n  }\n}());\n<\/script>\n<\/div>\n<!-- ===================== END STEAL AN EGG CALCULATOR ===================== -->\n","protected":false},"excerpt":{"rendered":"<p>The calculators on this page need JavaScript, and it is not loading. Everything below is still readable. If you are the site owner: the script tag in this block is being removed by WordPress or a plugin. \ud83e\udd5a Six tools \u00b7 updated September 2026 \u00b7 free, no login Steal An Egg Calculator A free Steal<\/p>\n","protected":false},"author":1,"featured_media":11676,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-11674","page","type-page","status-publish","has-post-thumbnail"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Roblox Steal An Egg Calculator - Joytify United States Blog<\/title>\n<meta name=\"description\" content=\"Free Steal An Egg calculator: pet and pen income per second, mutation multipliers, fuse maths, egg hatch odds and speed requirements by biome.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Roblox Steal An Egg Calculator - Joytify United States Blog\" \/>\n<meta property=\"og:description\" content=\"Free Steal An Egg calculator: pet and pen income per second, mutation multipliers, fuse maths, egg hatch odds and speed requirements by biome.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"Joytify United States Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T04:09:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2026\/09\/noFilter-9.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"767\" \/>\n\t<meta property=\"og:image:height\" content=\"432\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/\",\"url\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/\",\"name\":\"Roblox Steal An Egg Calculator - Joytify United States Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/noFilter-9.webp\",\"datePublished\":\"2026-09-22T06:25:24+00:00\",\"dateModified\":\"2026-09-30T04:09:35+00:00\",\"description\":\"Free Steal An Egg calculator: pet and pen income per second, mutation multipliers, fuse maths, egg hatch odds and speed requirements by biome.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/noFilter-9.webp\",\"contentUrl\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/noFilter-9.webp\",\"width\":767,\"height\":432,\"caption\":\"steal an egg calculator\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/steal-an-egg-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Roblox Steal An Egg Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/#website\",\"url\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/\",\"name\":\"Joytify United States Blog\",\"description\":\"Gaming News, Guide, and More\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/#organization\",\"name\":\"Joytify United States Blog\",\"url\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/Copy-of-joytify-byLG-e1719285016258.png\",\"contentUrl\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/Copy-of-joytify-byLG-e1719285016258.png\",\"width\":800,\"height\":256,\"caption\":\"Joytify United States Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.joytify.com\\\/blog\\\/en-us\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Roblox Steal An Egg Calculator - Joytify United States Blog","description":"Free Steal An Egg calculator: pet and pen income per second, mutation multipliers, fuse maths, egg hatch odds and speed requirements by biome.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/","og_locale":"en_US","og_type":"article","og_title":"Roblox Steal An Egg Calculator - Joytify United States Blog","og_description":"Free Steal An Egg calculator: pet and pen income per second, mutation multipliers, fuse maths, egg hatch odds and speed requirements by biome.","og_url":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/","og_site_name":"Joytify United States Blog","article_modified_time":"2026-09-30T04:09:35+00:00","og_image":[{"width":767,"height":432,"url":"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2026\/09\/noFilter-9.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/","url":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/","name":"Roblox Steal An Egg Calculator - Joytify United States Blog","isPartOf":{"@id":"https:\/\/www.joytify.com\/blog\/en-us\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/#primaryimage"},"image":{"@id":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/#primaryimage"},"thumbnailUrl":"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2026\/09\/noFilter-9.webp","datePublished":"2026-09-22T06:25:24+00:00","dateModified":"2026-09-30T04:09:35+00:00","description":"Free Steal An Egg calculator: pet and pen income per second, mutation multipliers, fuse maths, egg hatch odds and speed requirements by biome.","breadcrumb":{"@id":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/#primaryimage","url":"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2026\/09\/noFilter-9.webp","contentUrl":"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2026\/09\/noFilter-9.webp","width":767,"height":432,"caption":"steal an egg calculator"},{"@type":"BreadcrumbList","@id":"https:\/\/www.joytify.com\/blog\/en-us\/steal-an-egg-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.joytify.com\/blog\/en-us\/"},{"@type":"ListItem","position":2,"name":"Roblox Steal An Egg Calculator"}]},{"@type":"WebSite","@id":"https:\/\/www.joytify.com\/blog\/en-us\/#website","url":"https:\/\/www.joytify.com\/blog\/en-us\/","name":"Joytify United States Blog","description":"Gaming News, Guide, and More","publisher":{"@id":"https:\/\/www.joytify.com\/blog\/en-us\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.joytify.com\/blog\/en-us\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.joytify.com\/blog\/en-us\/#organization","name":"Joytify United States Blog","url":"https:\/\/www.joytify.com\/blog\/en-us\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.joytify.com\/blog\/en-us\/#\/schema\/logo\/image\/","url":"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2024\/06\/Copy-of-joytify-byLG-e1719285016258.png","contentUrl":"https:\/\/www.joytify.com\/blog\/en-us\/wp-content\/uploads\/2024\/06\/Copy-of-joytify-byLG-e1719285016258.png","width":800,"height":256,"caption":"Joytify United States Blog"},"image":{"@id":"https:\/\/www.joytify.com\/blog\/en-us\/#\/schema\/logo\/image\/"}}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/pages\/11674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/comments?post=11674"}],"version-history":[{"count":5,"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/pages\/11674\/revisions"}],"predecessor-version":[{"id":11681,"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/pages\/11674\/revisions\/11681"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/media\/11676"}],"wp:attachment":[{"href":"https:\/\/www.joytify.com\/blog\/en-us\/wp-json\/wp\/v2\/media?parent=11674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}