|  | const groups = ["body-part", "nsfw", "alt-vore", "gross", "magic"];
const groupInfo = {
  "body-part": {
    name: "Body parts",
  },
  nsfw: {
    name: "Sexual parts",
  },
  "alt-vore": {
    name: "Alt vore",
  },
  gross: {
    name: "Disposal/waste",
  },
  magic: {
    name: "Magic",
  },
};
const panels = {
  body: {
    name: "Body",
    buttons: [
      {
        name: "Eat",
        target: "feed",
      },
      {
        name: "Crop Swallow",
        target: "crop_swallow",
      },
      {
        name: "Digest",
        target: "digest_stomach",
      },
      {
        name: "Chew",
        target: "chew",
      },
      {
        name: "Grab",
        target: "hand_crush",
      },
      {
        name: "Drool",
        target: "drool",
      },
      {
        name: "Vomit",
        target: "vomit",
      },
      {
        name: "Sit",
        target: "sit",
      },
      {
        name: "Grind ass",
        target: "ass_grind",
      },
      {
        name: "Anal Vore",
        target: "anal_vore",
      },
      {
        name: "Digest Bowels",
        target: "digest_anal",
      },
      {
        name: "Grind hips",
        target: "grind",
      },
    ],
  },
  paws: {
    name: "Paws",
    buttons: [
      {
        name: "Stomp",
        target: "stomp",
      },
      {
        name: "Grab",
        target: "foot_crush",
      },
      {
        name: "Flex Toes",
        target: "flex_toes",
      },
      {
        name: "Absorb",
        target: "paw_vore",
      },
      {
        name: "Digest",
        target: "digest_paws",
      },
    ],
  },
  tails: {
    name: "Tails",
    buttons: [
      {
        name: "Tail Slap",
        target: "tail_slap",
      },
      {
        name: "Tail Vore",
        target: "tail_vore_only",
      },
      {
        name: "Tail Vore (1)",
        target: "tail_vore_one",
      },
      {
        name: "Tail Vore (some)",
        target: "tail_vore_some",
      },
      {
        name: "Tail Vore (all!)",
        target: "tail_vore_all",
      },
      {
        name: "Digest",
        target: "digest_tail",
      },
    ],
  },
  breasts: {
    name: "Breasts",
    buttons: [
      {
        name: "Stuff Cleavage",
        target: "cleavage_stuff",
      },
      {
        name: "Squeeze Cleavage",
        target: "breast_toy",
      },
      {
        name: "Crush Cleavage",
        target: "cleavage_crush",
      },
      {
        name: "Drop Cleavage",
        target: "cleavage_drop",
      },
      {
        name: "Absorb Cleavage",
        target: "cleavage_absorb",
      },
      {
        name: "Breast Crush",
        target: "breast_crush",
      },
      {
        name: "Breast Vore",
        target: "breast_vore",
      },
      {
        name: "Digest",
        target: "digest_breast",
      },
      {
        name: "Milk Breasts",
        target: "breast_milk",
      },
    ],
  },
  vagina: {
    name: "Slit",
    buttons: [
      {
        name: "Unbirth",
        target: "unbirth",
      },
      {
        name: "Digest",
        target: "digest_unbirth",
      },
      {
        name: "Finger Slit",
        target: "slit_toy",
      },
    ],
  },
  dick: {
    name: "Cock",
    buttons: [
      {
        name: "Cockslap",
        target: "cockslap",
      },
      {
        name: "Cock Vore",
        target: "cock_vore",
      },
      {
        name: "Digest",
        target: "digest_cock",
      },
      {
        name: "Ball Smother",
        target: "ball_smother",
      },
      {
        name: "Stuff Sheath",
        target: "sheath_stuff",
      },
      {
        name: "Squeeze Sheath",
        target: "sheath_toy",
      },
      {
        name: "Clench Sheath",
        target: "sheath_clench",
      },
      {
        name: "Absorb Sheath",
        target: "sheath_absorb",
      },
      {
        name: "Stuff Foreskin",
        target: "foreskin_stuff",
      },
      {
        name: "Squeeze Foreskin",
        target: "foreskin_toy",
      },
      {
        name: "Clench Foreskin",
        target: "foreskin_clench",
      },
      {
        name: "Absorb Foreskin",
        target: "foreskin_absorb",
      },
    ],
  },
  souls: {
    name: "Souls",
    buttons: [
      {
        name: "Soul Vore",
        target: "soul_vore",
      },
      {
        name: "Digest",
        target: "digest_soul",
      },
      {
        name: "Paws",
        target: "soul_absorb_paw",
      },
    ],
  },
  shoes: {
    name: "Footwear",
    buttons: [
      {
        name: "Put On Shoes",
        target: "wear_shoes",
      },
      {
        name: "Take Off Shoes",
        target: "remove_shoes",
      },
      {
        name: "Put On Socks",
        target: "wear_socks",
      },
      {
        name: "Take Off Socks",
        target: "remove_socks",
      },
      {
        name: "Stuff Shoes",
        target: "stuff_shoes",
      },
      {
        name: "Stuff Socks",
        target: "stuff_socks",
      },
      {
        name: "Dump Shoes",
        target: "dump_shoes",
      },
      {
        name: "Dump Socks",
        target: "dump_socks",
      },
    ],
  },
  waste: {
    name: "Waste",
    buttons: [
      {
        name: "Belch",
        target: "belch",
      },
      {
        name: "Fart",
        target: "fart",
      },
      {
        name: "Piss",
        target: "piss",
      },
      {
        name: "Bladder Vore",
        target: "bladder_vore",
      },
      {
        name: "Digest",
        target: "digest_bladder",
      },
      {
        name: "Scat",
        target: "scat",
      },
    ],
  },
  goo: {
    name: "Goo",
    buttons: [
      {
        name: "Solidify",
        target: "solidify",
      },
      {
        name: "Melt",
        target: "melt",
      },
      {
        name: "Flood",
        target: "flood",
      },
      {
        name: "Push to Stomach",
        target: "goo_stomach_push",
      },
      {
        name: "Pull from Stomach",
        target: "goo_stomach_pull",
      },
      {
        name: "Push to Bowels",
        target: "goo_bowels_push",
      },
      {
        name: "Pull from Bowels",
        target: "goo_bowels_pull",
      },
      {
        name: "Push to Womb",
        target: "goo_womb_push",
      },
      {
        name: "Pull from Womb",
        target: "goo_womb_pull",
      },
      {
        name: "Push to Balls",
        target: "goo_balls_push",
      },
      {
        name: "Pull from Balls",
        target: "goo_balls_pull",
      },
      {
        name: "Push to Breasts",
        target: "goo_breasts_push",
      },
      {
        name: "Pull from Breasts",
        target: "goo_breasts_pull",
      },
      {
        name: "Push to Tails",
        target: "goo_tail_push",
      },
      {
        name: "Pull from Tails",
        target: "goo_tail_pull",
      },
      {
        name: "Push to Paws",
        target: "goo_paws_push",
      },
      {
        name: "Pull from Paws",
        target: "goo_paws_pull",
      },
      {
        name: "Digest",
        target: "digest_goo",
      },
    ],
  },
  misc: {
    name: "Misc",
    buttons: [
      {
        name: "Stuff Pouch",
        target: "pouch_stuff",
      },
      {
        name: "Rub Pouch",
        target: "pouch_rub",
      },
      {
        name: "Eat From Pouch",
        target: "pouch_eat",
      },
      {
        name: "Absorb Pouch",
        target: "pouch_absorb",
      },
      {
        name: "Flap Wings",
        target: "wings_flap",
      },
      {
        name: "Wing Vore",
        target: "wings_vore",
      },
      {
        name: "Digest Wings",
        target: "digest_wings",
      },
    ],
  },
  breath: {
    name: "Breath",
    buttons: [
      {
        name: "Line Shape",
        target: "breath_line",
      },
      {
        name: "Cone Shape",
        target: "breath_cone",
      },
      {
        name: "Fire",
        target: "breath_fire",
      },
      {
        name: "Ice",
        target: "breath_ice",
      },
      {
        name: "Electric",
        target: "breath_electric",
      },
      {
        name: "Smoke",
        target: "breath_smoke",
      },
      {
        name: "Radiation",
        target: "breath_radiation",
      },
      {
        name: "Foul",
        target: "breath_foul",
      },
    ],
  },
  magic: {
    name: "Magic",
    buttons: [
      {
        name: "Shrink",
        target: "magic_shrink",
      },
      {
        name: "Fast Digestion",
        target: "magic_fast_digestion",
      },
      {
        name: "Pause Digestion",
        target: "magic_pause_digestion",
      },
      {
        name: "Arousal",
        target: "magic_arousal",
      },
      {
        name: "Summon Cum",
        target: "magic_fill_sexual",
      },
    ],
  },
  options: {
    name: "Options",
    type: "options",
    buttons: [
      {
        name: "Arousal On",
        target: "toggle_arousal",
        default: true,
      },
      {
        name: "Status: Standing",
        target: "toggle_auto",
        default: true,
      },
      {
        name: "Numbers: Words",
        target: "toggle_numbers",
        default: true,
      },
      {
        name: "Units: Metric",
        target: "toggle_units",
        default: true,
      },
      {
        name: "Verbose Text",
        target: "toggle_verbose",
        default: true,
      },
      {
        name: "Toggle Dark Mode",
        target: "toggleDarkMode",
        default: true,
      },
      {
        name: "Text Stays",
        target: "toggleTextFade",
        default: true,
      },
      {
        name: "Debug Log",
        target: "debugLog",
        default: true,
      },
    ],
  },
};
options = [
  {
    name: "Basics",
    optional: false,
    group: "main",
    entries: [
      {
        name: "Name",
        id: "name",
        type: "text",
        default: "Fen",
      },
      {
        name: "Scale",
        id: "scale",
        type: "float",
        default: "1",
        tooltip:
          "You start out this many times larger than normal. A good way to build a macro character is to design them at normal size, then adjust the scale to get them to the right height.",
      },
      {
        name: "Walk Speed",
        id: "walkSpeed",
        type: "float",
        default: "1",
        tooltip: "How quickly you move while walking, jogging, or running.",
      },
      {
        name: "Height",
        id: "baseHeight",
        type: "float",
        default: "2.26",
        unit: "length",
      },
      {
        name: "Weight",
        id: "baseMass",
        type: "float",
        default: "135",
        unit: "mass",
      },
      {
        name: "Paw length",
        id: "basePawLength",
        type: "float",
        default: "0.15",
        unit: "length",
      },
      {
        name: "Paw width",
        id: "basePawWidth",
        type: "float",
        default: "0.15",
        unit: "length",
      },
      {
        name: "Hand length",
        id: "baseHandLength",
        type: "float",
        default: "0.2",
        unit: "length",
      },
      {
        name: "Hand width",
        id: "baseHandWidth",
        type: "float",
        default: "0.15",
        unit: "length",
      },
      {
        name: "Ass area",
        id: "baseAssArea",
        type: "float",
        default: "0.1",
        unit: "area",
      },
      {
        name: "Same-size stomping",
        id: "sameSizeStomp",
        type: "checkbox",
      },
    ],
  },
  {
    name: "Extra Info",
    optional: false,
    group: "main",
    entries: [
      {
        name: "Bio",
        id: "bio",
        type: "text",
        default: "Big stompy monster, innit",
      },
    ],
  },
  {
    name: "Body Details",
    optional: false,
    group: "main",
    entries: [
      {
        name: "Species",
        id: "species",
        type: "text",
        default: "crux",
      },
      {
        name: "Foot type",
        id: "footType",
        type: "select",
        default: "paw",
        choices: [
          {
            name: "Paws",
            value: "paw",
          },
          {
            name: "Hooves",
            value: "hoof",
          },
          {
            name: "Feet",
            value: "foot",
          },
          {
            name: "Avian",
            value: "avian",
          },
        ],
      },
      {
        name: "Mouth type",
        id: "jawType",
        type: "select",
        default: "jaw",
        choices: [
          {
            name: "Jaws",
            value: "jaw",
          },
          {
            name: "Beak",
            value: "beak",
          },
        ],
      },
    ],
  },
  {
    name: "Gameplay",
    optional: false,
    group: "main",
    entries: [
      {
        type: "radio",
        id: "difficulty",
        default: "0",
        choices: [
          {
            name: "Sandbox",
            value: "0",
            tooltip: "Grow how you want, when you want.",
          },
          {
            name: "Stompvival",
            value: "1",
            tooltip:
              "Actions earn you growth points, which are used to grow bigger.",
          },
        ],
      },
      {
        name: "Automatic Growth",
        id: "automaticGrowthEnabled",
        type: "subcategory",
        entries: [
          {
            name: "Help",
            id: "",
            type: "label",
            tooltip:
              "When checked, you will automaically grow by ingesting/absorbing mass.",
          },
          {
            name: "Prey growth factor",
            id: "basePreyGrowthFactor",
            type: "float",
            default: "80",
            unit: "percentage",
            tooltip:
              "How much of what you eat gets automatically added to your body. Setting this to 0% disables it. To add half of your prey mass to your own, set to 50%.",
          },
          {
            name: "Scale growth with size",
            id: "growthScaleWithSize",
            type: "checkbox",
            tooltip:
              "If you're ten times bigger than normal, you gain ten times as much mass when digesting prey",
          },
        ],
      },
      {
        name: "Biomes",
        id: "biomes",
        type: "subcategory",
        entries: [
          {
            name: "Walk to other locations",
            id: "changingBiomes",
            type: "checkbox",
            tooltip:
              "When checked, walking will sometimes change your location.",
          },
          {
            name: "Default Biome",
            type: "select",
            id: "defaultBiome",
            default: "City",
            tooltip:
              'Where you start, if you have "Walk to other locations" disabled, you will be stuck here.',
            choices: [
              {
                name: "City",
                value: "City",
                tooltip: "The normal city enviroment you are used to.",
              },
              {
                name: "Downtown",
                value: "Downtown",
                tooltip: "A dense city center.",
              },
              {
                name: "Suburb",
                value: "Suburb",
                tooltip: "The perfect place to start a family, or eat one.",
              },
              {
                name: "Rural",
                value: "Rural",
                tooltip: "Is that a cow?",
              },
            ],
          },
          {
            name: "Enabled biomes:",
            id: "",
            type: "label",
          },
          {
            name: "City",
            id: "cityEnabled",
            type: "checkbox",
            default: true,
            tooltip: "The normal city enviroment you are used to.",
          },
          {
            name: "Downtown",
            id: "downtownEnabled",
            type: "checkbox",
            default: true,
            tooltip: "A dense city center.",
          },
          {
            name: "Suburb",
            id: "suburbEnabled",
            type: "checkbox",
            default: true,
            tooltip: "The perfect place to start a family, or eat one.",
          },
          {
            name: "Rural",
            id: "ruralEnabled",
            type: "checkbox",
            default: true,
            tooltip: "Is that a cow?",
          },
        ],
      },
    ],
  },
  {
    name: "Brutality",
    optional: false,
    group: "main",
    entries: [
      {
        type: "radio",
        id: "brutality",
        default: "1",
        choices: [
          {
            name: "Non-fatal",
            value: "0",
            tooltip: "All actions are explicitly safe.",
          },
          {
            name: "Fatal",
            value: "1",
            warning: "Fatal actions are enabled",
            tooltip:
              "Actions can have fatal consequences, but don't go into detail.",
          },
          {
            name: "Gory",
            value: "2",
            warning: "Gory actions are enabled",
            tooltip: "Descriptions are violent, but not excessively so.",
          },
          {
            name: "Sadistic",
            value: "3",
            warning: "Brutal actions are enabled",
            tooltip: "Cronch.",
          },
        ],
      },
    ],
  },
  {
    name: "Victims",
    optional: false,
    group: "main",
    entries: [
      {
        name: "Human prey",
        id: "victimsHuman",
        type: "checkbox",
        tooltip:
          "When checked, your prey is humans. By default your prey is a wide array of anthros.",
      },
      {
        name: "Military",
        id: "victimsMilitary",
        type: "checkbox",
        tooltip:
          "When checked, you can prey on military units like soldiers, tanks, helicopeter, up to destroying entire armies.",
      },
      {
        name: "Macros",
        id: "victimsMacros",
        type: "checkbox",
      },
      {
        name: "Micros",
        id: "victimsMicros",
        type: "checkbox",
      },
      {
        name: "Single Victim Type",
        id: "singleVictimType",
        type: "select",
        default: "Disabled",
        tooltip: "Only spawns one specific kind of victim.",
        choices: ["Disabled"]
          .concat(Object.keys(things))
          .map((thing) => {
            return thing === "Container" ? null : thing;
          })
          .filter((x) => x !== null)
          .map((x) => {
            return { name: x, value: x };
          }),
      },
    ],
  },
  {
    name: "Oral Vore",
    id: "oralVore",
    group: "main",
    optional: true,
    buttons: ["feed", "chew"],
    entries: [
      {
        name: "Automatic Digestion",
        id: "oralDigestAuto",
        type: "subcategory",
        default: true,
        entries: [
          {
            name: "Digestion time",
            id: "oralDigestTime",
            type: "float",
            default: "15",
          },
        ],
      },
      {
        name: "Manual digestion",
        id: "oralDigestManual",
        type: "checkbox",
        buttons: ["digest_stomach"],
      },
      {
        name: "Same-size vore",
        id: "sameSizeOralVore",
        type: "checkbox",
        default: true,
      },
      {
        name: "Vomiting",
        id: "vomitEnabled",
        type: "checkbox",
        warning: "Vomiting is enabled",
        buttons: ["vomit"],
      },
    ],
  },
  {
    name: "Anal Vore",
    id: "analVore",
    optional: true,
    group: "alt-vore",
    buttons: ["anal_vore"],
    entries: [
      {
        name: "Anus diameter",
        id: "baseAnalVoreDiameter",
        type: "float",
        default: "0.1",
        unit: "length",
      },
      {
        name: "Automatic Digestion",
        id: "analDigestAuto",
        type: "subcategory",
        default: true,
        entries: [
          {
            name: "Digestion time",
            id: "analDigestTime",
            type: "float",
            default: "15",
          },
        ],
      },
      {
        name: "Anal autogrowth factor",
        id: "assGrowthFactor",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip:
          "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
      },
      {
        name: "Manual digestion",
        id: "analDigestManual",
        type: "checkbox",
        buttons: ["digest_anal"],
      },
      {
        name: "Same-size vore",
        id: "sameSizeAnalVore",
        type: "checkbox",
        default: true,
      },
      {
        name: "Anal vore goes to stomach",
        id: "analVoreToStomach",
        type: "checkbox",
      },
    ],
  },
  {
    name: "Footwear",
    id: "footWear",
    group: "body-part",
    optional: true,
    panels: ["shoes"],
    entries: [
      {
        name: "Socks",
        id: "footSockEnabled",
        type: "subcategory",
        buttons: ["remove_socks", "wear_socks", "stuff_socks", "dump_socks"],
        entries: [
          {
            name: "Sock type",
            id: "footSock",
            type: "select",
            default: "sock",
            choices: [
              {
                name: "Socks",
                value: "sock",
              },
              {
                name: "Stockings",
                value: "stocking",
              },
            ],
          },
        ],
      },
      {
        name: "Shoes",
        id: "footShoeEnabled",
        type: "subcategory",
        buttons: ["remove_shoes", "wear_shoes", "stuff_shoes", "dump_shoes"],
        entries: [
          {
            name: "Shoe type",
            id: "footShoe",
            type: "select",
            default: "shoe",
            choices: [
              {
                name: "Shoes",
                value: "shoe",
              },
              {
                name: "Boots",
                value: "boot",
              },
              {
                name: "Trainers",
                value: "trainer",
              },
              {
                name: "Sandals",
                value: "sandal",
              },
              {
                name: "High Heels",
                value: "heel",
              },
              {
                name: "Crocs",
                value: "croc",
              },
            ],
          },
        ],
      },
    ],
  },
  {
    name: "Arousal",
    id: "arousalEnabled",
    group: "nsfw",
    optional: true,
    warning: "Arousal is enabled",
    entries: [
      {
        name: "Help",
        id: "",
        type: "label",
        tooltip:
          "Most actions increase arousal, as does digestion and being overfilled.\nEdging occurs when you're near orgasm, and increases the total volume of the orgasm.",
      },
      {
        name: "Arousal multiplier",
        id: "arousalFactor",
        type: "float",
        default: "1",
        tooltip: "How quickly arousal and orgasm builds.",
      },
      {
        name: "Edge multiplier",
        id: "edgeFactor",
        type: "float",
        default: "1",
        tooltip: "How quickly edge builds up.",
      },
    ],
  },
  {
    name: "Tail",
    id: "hasTail",
    group: "body-part",
    optional: true,
    parts: ["tail"],
    panels: ["tails"],
    buttons: ["tail_slap"],
    entries: [
      {
        name: "Number of tails",
        id: "tailCount",
        type: "int",
        default: "1",
      },
      {
        name: "Tail description",
        id: "tailType",
        type: "text",
        default: "fluffy",
      },
      {
        name: "Tail length",
        id: "baseTailLength",
        type: "float",
        default: "1",
        unit: "length",
      },
      {
        name: "Tail diameter",
        id: "baseTailDiameter",
        type: "float",
        default: "0.3",
        unit: "length",
      },
      {
        name: "Tail Vore",
        id: "tailMaw",
        type: "subcategory",
        entries: [
          {
            name: "Tail stretchiness",
            id: "tailStretchiness",
            type: "float",
            default: "3",
          },
          {
            name: "Tail autogrowth factor",
            id: "tailGrowthFactor",
            type: "float",
            default: "1",
            unit: "percentage",
            tooltip:
              "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
          },
          {
            name: "Automatic Digestion",
            id: "tailDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "tailDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "tailDigestManual",
            type: "checkbox",
            buttons: ["digest_tail"],
          },
          {
            name: "Same-size vore",
            id: "sameSizeTailVore",
            type: "checkbox",
            default: true,
          },
          {
            name: "Tail vore goes to stomach",
            id: "tailVoreToStomach",
            type: "checkbox",
          },
        ],
      },
    ],
  },
  {
    name: "Pouch",
    id: "hasPouch",
    group: "alt-vore",
    optional: true,
    panels: ["misc"],
    buttons: ["pouch_stuff", "pouch_rub"],
    entries: [
      {
        name: "Absorption",
        id: "pouchAbsorption",
        type: "checkbox",
        buttons: ["pouch_absorb"],
      },
    ],
  },
  {
    name: "Male Genitals",
    id: "maleParts",
    group: "nsfw",
    optional: true,
    stats: ["cum"],
    parts: ["dick", "balls"],
    panels: ["dick"],
    buttons: ["cockslap", "ball_smother"],
    entries: [
      {
        name: "Cock length",
        id: "baseDickLength",
        type: "float",
        default: "0.3",
        unit: "length",
      },
      {
        name: "Cock diameter",
        id: "baseDickDiameter",
        type: "float",
        default: "0.08",
        unit: "length",
      },
      {
        name: "Cock description",
        id: "dickType",
        type: "text",
        default: "canine",
      },
      {
        name: "Ball diameter",
        id: "baseBallDiameter",
        type: "float",
        default: "0.05",
        unit: "length",
      },
      {
        name: "Orgasm size",
        id: "baseCumVolume",
        type: "float",
        default: "0.1",
        unit: "volume",
      },
      {
        name: "Passive cum production",
        id: "baseCumProduction",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip: "How much you fill up every second",
      },
      {
        name: "Cum storage factor",
        id: "cumStorageScale",
        type: "float",
        default: "1",
      },
      {
        name: "Cock autogrowth factor",
        id: "cockGrowthFactor",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip:
          "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
      },
      {
        name: "Balls autogrowth factor",
        id: "ballGrowthFactor",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip:
          "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
      },
      {
        name: "Cock Vore",
        id: "cockVoreEnabled",
        type: "subcategory",
        buttons: ["cock_vore"],
        entries: [
          {
            name: "Cock stretchiness",
            id: "dickStretchiness",
            type: "float",
            default: "5",
          },
          {
            name: "Cum digestion factor",
            id: "baseCumDigestFactor",
            type: "float",
            default: "1",
          },
          {
            name: "Automatic Digestion",
            id: "cockDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "cockDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "cockDigestManual",
            type: "checkbox",
            buttons: ["digest_cock"],
          },
          {
            name: "Same-size vore",
            id: "sameSizeCockVore",
            type: "checkbox",
            default: true,
          },
          {
            name: "Scale cum with size",
            id: "cumScaleWithSize",
            type: "checkbox",
            tooltip:
              "If you're ten times bigger than normal, you produce ten times as much cum when digesting prey",
          },
        ],
      },
      {
        name: "Sheath",
        id: "hasSheath",
        type: "subcategory",
        buttons: ["sheath_stuff", "sheath_toy", "sheath_clench"],
        entries: [
          {
            name: "Absorption",
            id: "sheathAbsorptionEnabled",
            type: "checkbox",
            buttons: ["sheath_absorb"],
          },
        ],
      },
      {
        name: "Foreskin",
        id: "hasForeskin",
        type: "subcategory",
        buttons: ["foreskin_stuff", "foreskin_toy", "foreskin_clench"],
        entries: [
          {
            name: "Absorption",
            id: "foreskinAbsorptionEnabled",
            type: "checkbox",
            buttons: ["foreskin_absorb"],
          },
        ],
      },
      {
        name: "Musk",
        id: "maleMuskEnabled",
        type: "subcategory",
        parts: ["musk"],
        entries: [
          {
            name: "Musk factor",
            id: "baseMaleMuskArea",
            type: "float",
            default: "0.5",
          },
        ],
      },
    ],
  },
  {
    name: "Female Genitals",
    id: "femaleParts",
    group: "nsfw",
    optional: true,
    stats: ["femcum"],
    parts: ["slit", "womb"],
    panels: ["vagina"],
    buttons: ["slit_toy"],
    entries: [
      {
        name: "Slit length",
        id: "baseVaginaLength",
        type: "float",
        default: "0.1",
        unit: "length",
      },
      {
        name: "Slit width",
        id: "baseVaginaWidth",
        type: "float",
        default: "0.05",
        unit: "length",
      },
      {
        name: "Womb volume",
        id: "baseWombVolume",
        type: "float",
        default: "0.1",
        unit: "volume",
      },
      {
        name: "Orgasm size",
        id: "baseFemcumVolume",
        type: "float",
        default: "0.1",
      },
      {
        name: "Passive femcum production",
        id: "baseFemcumProduction",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip: "How much you fill up every second",
      },
      {
        name: "Femcum storage factor",
        id: "femcumStorageScale",
        type: "float",
        default: "1",
      },
      {
        name: "Unbirth",
        id: "unbirthEnabled",
        type: "subcategory",
        buttons: ["unbirth"],
        entries: [
          {
            name: "Slit stretchiness",
            id: "vaginaStretchiness",
            type: "float",
            default: "5",
          },
          {
            name: "Femcum digestion factor",
            id: "baseFemcumDigestFactor",
            type: "float",
            default: "1",
          },
          {
            name: "Vagina autogrowth factor",
            id: "vaginaGrowthFactor",
            type: "float",
            default: "1",
            unit: "percentage",
            tooltip:
              "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
          },
          {
            name: "Womb autogrowth factor",
            id: "wombGrowthFactor",
            type: "float",
            default: "1",
            unit: "percentage",
            tooltip:
              "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
          },
          {
            name: "Automatic Digestion",
            id: "unbirthDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "unbirthDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "unbirthDigestManual",
            type: "checkbox",
            buttons: ["digest_unbirth"],
          },
          {
            name: "Same-size vore",
            id: "sameSizeUnbirth",
            type: "checkbox",
            default: true,
          },
          {
            name: "Scale femcum with size",
            id: "femcumScaleWithSize",
            type: "checkbox",
            tooltip:
              "If you're ten times bigger than normal, you produce ten times as much femcum when digesting prey",
          },
        ],
      },
      {
        name: "Musk",
        id: "femaleMuskEnabled",
        type: "subcategory",
        parts: ["musk"],
        entries: [
          {
            name: "Musk factor",
            id: "baseFemaleMuskArea",
            type: "float",
            default: "0.5",
          },
        ],
      },
    ],
  },
  {
    name: "Sexual Magic",
    id: "sexualMagicEnabled",
    group: "nsfw",
    optional: true,
    panels: ["magic"],
    entries: [
      {
        name: "Arousal",
        id: "magicArousal",
        type: "checkbox",
        buttons: ["magic_arousal"],
        default: true,
        tooltip: "Rapidly arouses the caster",
      },
      {
        name: "Summon cum",
        id: "magicFillSexual",
        type: "checkbox",
        buttons: ["magic_fill_sexual"],
        default: true,
        tooltip: "Prepares the caster for quite the gush!",
      },
    ],
  },
  {
    name: "Breasts",
    id: "hasBreasts",
    group: "body-part",
    optional: true,
    panels: ["breasts"],
    parts: ["breasts"],
    buttons: [
      "breast_crush",
      "breast_toy",
      "cleavage_stuff",
      "cleavage_crush",
      "cleavage_drop",
      "cleavage_absorb",
    ],
    entries: [
      {
        name: "Breast diameter",
        id: "baseBreastDiameter",
        type: "float",
        default: "0.1",
        unit: "length",
      },
      {
        name: "Lactation",
        id: "lactationEnabled",
        type: "subcategory",
        stats: ["milk"],
        buttons: ["breast_milk"],
        warning: "Lactation is enabled",
        entries: [
          {
            name: "Lactation scale",
            id: "lactationFactor",
            type: "float",
            default: "0.25",
          },
          {
            name: "Passive milk production",
            id: "baseLactationProduction",
            type: "float",
            default: "0.1",
            unit: "percentage",
            tooltip: "How much you fill up every second",
          },
          {
            name: "Milk storage scale",
            id: "milkStorageScale",
            type: "float",
            default: "1",
          },
        ],
      },
      {
        name: "Breast Vore",
        id: "breastVore",
        type: "subcategory",
        buttons: ["breast_vore", "digest_breast"],
        entries: [
          {
            name: "Breast stretchiness",
            id: "breastStretchiness",
            type: "float",
            default: "3",
          },
          {
            name: "Milk digestion scale",
            id: "baseMilkDigestFactor",
            type: "float",
            default: "1",
          },
          {
            name: "Breast autogrowth factor",
            id: "breastGrowthFactor",
            type: "float",
            default: "1",
            unit: "percentage",
            tooltip:
              "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
          },
          {
            name: "Automatic Digestion",
            id: "breastDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "breastDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "breastDigestManual",
            type: "checkbox",
          },
          {
            name: "Same-size vore",
            id: "sameSizeBreastVore",
            type: "checkbox",
            default: true,
          },
          {
            name: "Scale milk with size",
            id: "milkScaleWithSize",
            type: "checkbox",
            tooltip:
              "If you're ten times bigger than normal, you produce ten times as much milk when digesting prey",
          },
        ],
      },
    ],
  },
  {
    name: "Stench",
    id: "stenchEnabled",
    group: "gross",
    optional: true,
    warning: "Stench is enabled",
    parts: ["stench"],
    entries: [
      {
        name: "Paw stench scale",
        id: "basePawStenchArea",
        type: "float",
        default: "1",
      },
      {
        name: "Ass stench scale",
        id: "baseAssStenchArea",
        type: "float",
        default: "1.5",
      },
      {
        name: "Piss stench scale",
        id: "basePissStenchArea",
        type: "float",
        default: "0.75",
      },
      {
        name: "Scat stench scale",
        id: "baseScatStenchArea",
        type: "float",
        default: "3",
      },
    ],
  },
  {
    name: "Gas",
    id: "gasEnabled",
    group: "gross",
    optional: true,
    stats: ["gas"],
    panels: ["waste"],
    warning: "Gas is enabled",
    entries: [
      {
        name: "Belching",
        id: "belchEnabled",
        type: "checkbox",
        buttons: ["belch"],
      },
      {
        name: "Farting",
        id: "fartEnabled",
        type: "checkbox",
        buttons: ["fart"],
      },
      {
        name: "Passive gas production",
        id: "baseGasProduction",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip: "How much you fill up every second",
      },
      {
        name: "Gas storage scale",
        id: "gasStorageScale",
        type: "float",
        default: "1",
      },
      {
        name: "Gas digestion factor",
        id: "baseGasDigestFactor",
        type: "float",
        default: "1",
      },
      {
        name: "Scale gas with size",
        id: "gasScaleWithSize",
        type: "checkbox",
        tooltip:
          "If you're ten times bigger than normal, you produce ten times as much gas when digesting prey",
      },
    ],
  },
  {
    name: "Soul Vore",
    id: "soulVoreEnabled",
    group: "alt-vore",
    optional: true,
    panels: ["souls"],
    buttons: ["soul_vore", "soul_absorb_paw"],
    warning: "Soul vore enabled",
    entries: [
      {
        name: "Souls autogrowth factor",
        id: "soulGrowthFactor",
        type: "float",
        default: "25",
        unit: "percentage",
        tooltip:
          "How much you grow when absorbing souls. [1]-you will gain equal mass to the souls you absorb. [.01]- you will grow by 1% of the mass of the souls you absorb. This does not stack with Prey growth factor",
      },
      {
        name: "Automatic Digestion",
        id: "soulDigestAuto",
        type: "subcategory",
        default: true,
        entries: [
          {
            name: "Digestion time",
            id: "soulDigestTime",
            type: "float",
            default: "15",
          },
        ],
      },
      {
        name: "Manual digestion",
        id: "soulDigestManual",
        type: "checkbox",
        buttons: ["digest_soul"],
      },
      {
        name: "Soul vore type",
        type: "select",
        id: "soulVoreType",
        default: "body",
        choices: [
          {
            name: "Released",
            value: "release",
          },
          {
            name: "Trapped",
            value: "body",
          },
          {
            name: "Digested",
            value: "oblivion",
          },
        ],
      },
    ],
  },
  {
    name: "Piss",
    id: "pissEnabled",
    group: "gross",
    optional: true,
    stats: ["piss"],
    panels: ["waste"],
    buttons: ["piss"],
    warning: "Watersports enabled",
    entries: [
      {
        name: "Passive piss production",
        id: "basePissProduction",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip: "How much you fill up every second",
      },
      {
        name: "Piss storage scale",
        id: "pissStorageScale",
        type: "float",
        default: "1",
      },
      {
        name: "Bladder Vore",
        id: "bladderVore",
        type: "subcategory",
        buttons: ["bladder_vore"],
        entries: [
          {
            name: "Urethra diameter",
            id: "baseUrethraDiameter",
            type: "float",
            default: "0.03",
            unit: "length",
          },
          {
            name: "Urethra stretchiness",
            id: "urethraStretchiness",
            type: "float",
            default: "5",
          },
          {
            name: "Piss digestion scale",
            id: "basePissDigestFactor",
            type: "float",
            default: "1",
          },
          {
            name: "Automatic Digestion",
            id: "bladderDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "bladderDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "bladderDigestManual",
            type: "checkbox",
            buttons: ["digest_bladder"],
          },
          {
            name: "Same-size vore",
            id: "sameSizeBladderVore",
            type: "checkbox",
            default: true,
          },
          {
            name: "Scale piss with size",
            id: "pissScaleWithSize",
            type: "checkbox",
            tooltip:
              "If you're ten times bigger than normal, you produce ten times as much piss when digesting prey",
          },
        ],
      },
    ],
  },
  {
    name: "Scat",
    id: "scatEnabled",
    group: "gross",
    optional: true,
    stats: ["scat"],
    panels: ["waste"],
    buttons: ["scat"],
    warning: "Scat is enabled",
    entries: [
      {
        name: "Scat digestion scale",
        id: "baseScatDigestFactor",
        type: "float",
        default: "1",
      },
      {
        name: "Passive scat production",
        id: "baseScatProduction",
        type: "float",
        default: "0.1",
        unit: "percentage",
        tooltip: "How much you fill up every second",
      },
      {
        name: "Scat storage scale",
        id: "scatStorageScale",
        type: "float",
        default: "1",
      },
      {
        name: "Scale scat with size",
        id: "scatScaleWithSize",
        type: "checkbox",
        tooltip:
          "If you're ten times bigger than normal, you produce ten times as much scat when digesting prey",
      },
    ],
  },
  {
    name: "Goo",
    id: "gooEnabled",
    group: "body-part",
    optional: true,
    panels: ["goo"],
    buttons: ["melt"],
    entries: [
      {
        name: "Digestion",
        id: "gooDigestion",
        type: "subcategory",
        entries: [
          {
            name: "Goo autogrowth factor",
            id: "gooGrowthFactor",
            type: "float",
            default: "80",
            unit: "percentage",
            tooltip:
              "How much you grow when absorbing people via goo. [1]-you will gain equal mass to the souls you absorb. [.01]- you will grow by 1% of the mass of the souls you absorb. This does not stack with Prey growth factor",
          },
          {
            name: "Automatic Digestion",
            id: "gooDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "gooDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "gooDigestManual",
            type: "checkbox",
          },
        ],
      },
    ],
  },
  {
    name: "Paw Vore",
    id: "pawVoreEnabled",
    group: "alt-vore",
    optional: true,
    buttons: ["paw_vore"],
    entries: [
      {
        name: "Paw autogrowth factor",
        id: "pawGrowthFactor",
        type: "float",
        default: "1",
        unit: "percentage",
        tooltip:
          "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
      },
      {
        name: "Automatic Digestion",
        id: "pawDigestAuto",
        type: "subcategory",
        default: true,
        entries: [
          {
            name: "Digestion time",
            id: "pawDigestTime",
            type: "float",
            default: "15",
          },
        ],
      },
      {
        name: "Manual digestion",
        id: "pawDigestManual",
        type: "checkbox",
        buttons: ["digest_paws"],
      },
      {
        name: "Same-size vore",
        id: "sameSizePawVore",
        type: "checkbox",
        default: true,
      },
    ],
  },
  {
    name: "Crop",
    id: "cropEnabled",
    group: "alt-vore",
    optional: true,
    buttons: ["crop_swallow"],
    entries: [
      {
        name: "Automatic Transfer",
        id: "cropTransferAuto",
        type: "subcategory",
        default: true,
        entries: [
          {
            name: "Digestion time",
            id: "cropTransferTime",
            type: "float",
            default: "10",
          },
        ],
      },
    ],
  },
  {
    name: "Breath",
    id: "breathEnabled",
    group: "magic",
    optional: true,
    panels: ["breath"],
    parts: ["breath"],
    buttons: ["breath_line", "breath_cone"],
    entries: [
      {
        name: "Breath area",
        id: "baseBreathArea",
        type: "float",
        default: "10",
        unit: "area",
      },
      {
        name: "Fire",
        id: "breathFire",
        type: "checkbox",
        buttons: ["breath_fire"],
      },
      {
        name: "Ice",
        id: "breathIce",
        type: "checkbox",
        buttons: ["breath_ice"],
      },
      {
        name: "Electric",
        id: "breathElectric",
        type: "checkbox",
        buttons: ["breath_electric"],
      },
      {
        name: "Smoke",
        id: "breathSmoke",
        type: "checkbox",
        buttons: ["breath_smoke"],
      },
      {
        name: "Radiation",
        id: "breathRadiation",
        type: "checkbox",
        buttons: ["breath_radiation"],
      },
      {
        name: "Foul",
        id: "breathFoul",
        type: "checkbox",
        buttons: ["breath_foul"],
      },
    ],
  },
  {
    name: "Drool",
    id: "droolEnabled",
    group: "gross",
    optional: true,
    buttons: ["drool"],
    entries: [
      {
        name: "Drool volume",
        id: "droolBaseVolume",
        type: "float",
        default: "0.01",
        unit: "volume",
      },
    ],
  },
  {
    name: "Magic",
    id: "magicEnabled",
    group: "magic",
    optional: true,
    panels: ["magic"],
    parts: ["magic"],
    entries: [
      {
        name: "Shrinking magic",
        id: "magicShrink",
        type: "subcategory",
        buttons: ["magic_shrink"],
        default: true,
        tooltip:
          "Allows you to shrink a wide area(relative to your size) into a smaller area, allowing you to devour prey much bigger than you are.",
        entries: [
          {
            name: "Auto-shrink",
            id: "magicShrinkAuto",
            type: "checkbox",
            default: false,
            tooltip:
              "Automatically shrink your victims before performing an action.",
          },
        ],
      },
      {
        name: "Fast digestion",
        id: "magicFastDigestion",
        type: "checkbox",
        buttons: ["magic_fast_digestion"],
        default: true,
        tooltip:
          "Fast Digestion allows you to speed up your digestion for a short duration.",
      },
      {
        name: "Pause digestion",
        id: "magicPauseDigestion",
        type: "checkbox",
        buttons: ["magic_pause_digestion"],
        default: true,
        tooltip:
          "Pause Digestion allows you to halt digestion until you cast it again.",
      },
    ],
  },
  {
    name: "Wings",
    id: "hasWings",
    group: "body-part",
    optional: true,
    panels: ["misc"],
    parts: ["wings"],
    buttons: ["wings_flap"],
    entries: [
      {
        name: "Wing width",
        id: "baseWingWidth",
        type: "float",
        default: "1",
        unit: "length",
      },
      {
        name: "Wing length",
        id: "baseWingLength",
        type: "float",
        default: "1",
        unit: "length",
      },
      {
        name: "Wing description",
        id: "wingDesc",
        type: "text",
        default: "feathery",
      },
      {
        name: "Wing Vore",
        id: "wingVoreEnabled",
        type: "subcategory",
        buttons: ["wings_vore"],
        entries: [
          {
            name: "Wing autogrowth factor",
            id: "wingGrowthFactor",
            type: "float",
            default: "1",
            unit: "percentage",
            tooltip:
              "How much this part grows during part specific digestion. This is relative to overall growth, 100%:all mass goes to this part 20%:20% part growth-80% overall growth.",
          },
          {
            name: "Automatic Digestion",
            id: "wingDigestAuto",
            type: "subcategory",
            default: true,
            entries: [
              {
                name: "Digestion time",
                id: "wingDigestTime",
                type: "float",
                default: "15",
              },
            ],
          },
          {
            name: "Manual digestion",
            id: "wingDigestManual",
            type: "checkbox",
            buttons: ["digest_wings"],
          },
          {
            name: "Same-size vore",
            id: "sameSizeWingVore",
            type: "checkbox",
            default: true,
          },
          {
            name: "Wing vore goes to stomach",
            id: "wingVoreToStomach",
            type: "checkbox",
          },
        ],
      },
    ],
  },
];
 |