// Your "Library" tab should look like this
globalThis.text ??= "\n";
globalThis.stop ??= false;
const replacements = [
[/ho[- ]*oh/gi, "Ho-oh"],
[/mime[- ]*jr/gi, "Mime-Jr"],
[/porygon[- ]*z/gi, "Porygon-Z"],
[/type[- ]*null/gi, "Type-Null"],
[/jangmo[- ]*o/gi, "Jangmo-o"],
[/hakamo[- ]*o/gi, "Hakamo-o"],
[/kommo[- ]*o/gi, "Kommo-o"],
[/tapu[- ]*koko/gi, "Tapu-Koko"],
[/tapu[- ]*lele/gi, "Tapu-Lele"],
[/tapu[- ]*bulu/gi, "Tapu-Bulu"],
[/tapu[- ]*fini/gi, "Tapu-Fini"],
[/great[- ]*tusk/gi, "Great-Tusk"],
[/scream[- ]*tail/gi, "Scream-Tail"],
[/brute[- ]*bonnet/gi, "Brute-Bonnet"],
[/flutter[- ]*mane/gi, "Flutter-Mane"],
[/slither[- ]*wing/gi, "Slither-Wing"],
[/sandy[- ]*shocks/gi, "Sandy-Shocks"],
[/iron[- ]*treads/gi, "Iron-Treads"],
[/iron[- ]*bundle/gi, "Iron-Bundle"],
[/iron[- ]*hands/gi, "Iron-Hands"],
[/iron[- ]*jugulis/gi, "Iron-Jugulis"],
[/iron[- ]*moth/gi, "Iron-Moth"],
[/iron[- ]*thorns/gi, "Iron-Thorns"],
[/wo[- ]*chien/gi, "Wo-Chien"],
[/chien[- ]*pao/gi, "Chien-Pao"],
[/ting[- ]*lu/gi, "Ting-Lu"],
[/chi[- ]*yu/gi, "Chi-Yu"],
[/roaring[- ]*moon/gi, "Roaring-Moon"],
[/iron[- ]*valiant/gi, "Iron-Valiant"],
[/walking[- ]*wake/gi, "Walking-Wake"],
[/iron[- ]*leaves/gi, "Iron-Leaves"],
[/gouging[- ]*fire/gi, "Gouging-Fire"],
[/raging[- ]*bolt/gi, "Raging-Bolt"],
[/iron[- ]*boulder/gi, "Iron-Boulder"],
[/iron[- ]*crown/gi, "Iron-Crown"],
[/pokemon[- ]*beach/gi, "Pokemon-Beach"],
[/pokemon[- ]*garden/gi, "Pokemon-Garden"],
[/pokemon[- ]*square/gi, "Pokemon-Square"],
[/pokemon[- ]*village/gi, "Pokemon-Village"],
[/shiver[- ]*camp/gi, "Shiver-Camp"],
[/cabo[- ]*poco/gi, "Cabo-Poco"],
[/cinnabar[- ]*island/gi, "Cinnabar-Island"],
[/diamond[- ]*settlement/gi, "Diamond-Settlement"],
[/ever[- ]*grande/gi, "Ever-Grande"],
[/fight[- ]*area/gi, "Fight-Area"],
[/five[- ]*island/gi, "Five-Island"],
[/four[- ]*island/gi, "Four-Island"],
[/frontier[- ]*access/gi, "Frontier-Access"],
[/hammerlocke[- ]*hills/gi, "Hammerlocke-Hills"],
[/los[- ]*platos/gi, "Los-Platos"],
[/new[- ]*bark/gi, "New-Bark"],
[/one[- ]*island/gi, "One-Island"],
[/pearl[- ]*settlement/gi, "Pearl-Settlement"],
[/porto[- ]*marinada/gi, "Porto-Marinada"],
[/resort[- ]*area/gi, "Resort-Area"],
[/safari[- ]*zone[- ]*gate/gi, "Safari-Zone-Gate"],
[/seven[- ]*island/gi, "Seven-Island"],
[/six[- ]*island/gi, "Six-Island"],
[/stow[- ]*on[- ]*side/gi, "Stow-on-Side"],
[/survival[- ]*area/gi, "Survival-Area"],
[/three[- ]*island/gi, "Three-Island"],
[/two[- ]*island/gi, "Two-Island"],
[/white[- ]*forest/gi, "White-Forest"],
[/gateon[- ]*port/gi, "Gateon-Port"],
[/the[- ]*under/gi, "The-Under"],
[/aqua[- ]*resort/gi, "Aqua-Resort"],
[/10,000,000[- ]*volt[- ]*thunderbolt/gi, "10,000,000-Volt-Thunderbolt"],
[/acid[- ]*armor/gi, "Acid-Armor"],
[/acid[- ]*downpour/gi, "Acid-Downpour"],
[/acid[- ]*spray/gi, "Acid-Spray"],
[/aerial[- ]*ace/gi, "Aerial-Ace"],
[/after[- ]*you/gi, "After-You"],
[/air[- ]*cutter/gi, "Air-Cutter"],
[/air[- ]*slash/gi, "Air-Slash"],
[/all[- ]*out[- ]*pummeling/gi, "All-Out-Pummeling"],
[/alluring[- ]*voice/gi, "Alluring-Voice"],
[/ally[- ]*switch/gi, "Ally-Switch"],
[/anchor[- ]*shot/gi, "Anchor-Shot"],
[/ancient[- ]*power/gi, "Ancient-Power"],
[/apple[- ]*acid/gi, "Apple-Acid"],
[/aqua[- ]*cutter/gi, "Aqua-Cutter"],
[/aqua[- ]*jet/gi, "Aqua-Jet"],
[/aqua[- ]*ring/gi, "Aqua-Ring"],
[/aqua[- ]*step/gi, "Aqua-Step"],
[/aqua[- ]*tail/gi, "Aqua-Tail"],
[/arm[- ]*thrust/gi, "Arm-Thrust"],
[/armor[- ]*cannon/gi, "Armor-Cannon"],
[/aromatic[- ]*mist/gi, "Aromatic-Mist"],
[/astral[- ]*barrage/gi, "Astral-Barrage"],
[/attack[- ]*order/gi, "Attack-Order"],
[/aura[- ]*sphere/gi, "Aura-Sphere"],
[/aura[- ]*wheel/gi, "Aura-Wheel"],
[/aurora[- ]*beam/gi, "Aurora-Beam"],
[/aurora[- ]*veil/gi, "Aurora-Veil"],
[/axe[- ]*kick/gi, "Axe-Kick"],
[/baby[- ]*doll[- ]*eyes/gi, "Baby-Doll-Eyes"],
[/baddy[- ]*bad/gi, "Baddy-Bad"],
[/baneful[- ]*bunker/gi, "Baneful-Bunker"],
[/barb[- ]*barrage/gi, "Barb-Barrage"],
[/baton[- ]*pass/gi, "Baton-Pass"],
[/beak[- ]*blast/gi, "Beak-Blast"],
[/beat[- ]*up/gi, "Beat-Up"],
[/behemoth[- ]*bash/gi, "Behemoth-Bash"],
[/behemoth[- ]*blade/gi, "Behemoth-Blade"],
[/belly[- ]*drum/gi, "Belly-Drum"],
[/bitter[- ]*blade/gi, "Bitter-Blade"],
[/bitter[- ]*malice/gi, "Bitter-Malice"],
[/black[- ]*hole[- ]*eclipse/gi, "Black-Hole-Eclipse"],
[/blast[- ]*burn/gi, "Blast-Burn"],
[/blaze[- ]*kick/gi, "Blaze-Kick"],
[/blazing[- ]*torque/gi, "Blazing-Torque"],
[/bleakwind[- ]*storm/gi, "Bleakwind-Storm"],
[/blood[- ]*moon/gi, "Blood-Moon"],
[/bloom[- ]*doom/gi, "Bloom-Doom"],
[/blue[- ]*flare/gi, "Blue-Flare"],
[/body[- ]*press/gi, "Body-Press"],
[/body[- ]*slam/gi, "Body-Slam"],
[/bolt[- ]*beak/gi, "Bolt-Beak"],
[/bolt[- ]*strike/gi, "Bolt-Strike"],
[/bone[- ]*club/gi, "Bone-Club"],
[/bone[- ]*rush/gi, "Bone-Rush"],
[/bouncy[- ]*bubble/gi, "Bouncy-Bubble"],
[/branch[- ]*poke/gi, "Branch-Poke"],
[/brave[- ]*bird/gi, "Brave-Bird"],
[/breaking[- ]*swipe/gi, "Breaking-Swipe"],
[/breakneck[- ]*blitz/gi, "Breakneck-Blitz"],
[/brick[- ]*break/gi, "Brick-Break"],
[/brutal[- ]*swing/gi, "Brutal-Swing"],
[/bubble[- ]*beam/gi, "Bubble-Beam"],
[/bug[- ]*bite/gi, "Bug-Bite"],
[/bug[- ]*buzz/gi, "Bug-Buzz"],
[/bulk[- ]*up/gi, "Bulk-Up"],
[/bullet[- ]*punch/gi, "Bullet-Punch"],
[/bullet[- ]*seed/gi, "Bullet-Seed"],
[/burn[- ]*up/gi, "Burn-Up"],
[/burning[- ]*bulwark/gi, "Burning-Bulwark"],
[/burning[- ]*jealousy/gi, "Burning-Jealousy"],
[/buzzy[- ]*buzz/gi, "Buzzy-Buzz"],
[/calm[- ]*mind/gi, "Calm-Mind"],
[/ceaseless[- ]*edge/gi, "Ceaseless-Edge"],
[/charge[- ]*beam/gi, "Charge-Beam"],
[/chilling[- ]*water/gi, "Chilling-Water"],
[/chilly[- ]*reception/gi, "Chilly-Reception"],
[/chip[- ]*away/gi, "Chip-Away"],
[/circle[- ]*throw/gi, "Circle-Throw"],
[/clanging[- ]*scales/gi, "Clanging-Scales"],
[/clangorous[- ]*soul/gi, "Clangorous-Soul"],
[/clangorous[- ]*soulblaze/gi, "Clangorous-Soulblaze"],
[/clear[- ]*smog/gi, "Clear-Smog"],
[/close[- ]*combat/gi, "Close-Combat"],
[/collision[- ]*course/gi, "Collision-Course"],
[/combat[- ]*torque/gi, "Combat-Torque"],
[/comet[- ]*punch/gi, "Comet-Punch"],
[/confuse[- ]*ray/gi, "Confuse-Ray"],
[/continental[- ]*crush/gi, "Continental-Crush"],
[/conversion[- ]*2/gi, "Conversion-2"],
[/core[- ]*enforcer/gi, "Core-Enforcer"],
[/corkscrew[- ]*crash/gi, "Corkscrew-Crash"],
[/corrosive[- ]*gas/gi, "Corrosive-Gas"],
[/cosmic[- ]*power/gi, "Cosmic-Power"],
[/cotton[- ]*guard/gi, "Cotton-Guard"],
[/cotton[- ]*spore/gi, "Cotton-Spore"],
[/court[- ]*change/gi, "Court-Change"],
[/crafty[- ]*shield/gi, "Crafty-Shield"],
[/cross[- ]*chop/gi, "Cross-Chop"],
[/cross[- ]*poison/gi, "Cross-Poison"],
[/crush[- ]*claw/gi, "Crush-Claw"],
[/crush[- ]*grip/gi, "Crush-Grip"],
[/dark[- ]*pulse/gi, "Dark-Pulse"],
[/dark[- ]*void/gi, "Dark-Void"],
[/darkest[- ]*lariat/gi, "Darkest-Lariat"],
[/dazzling[- ]*gleam/gi, "Dazzling-Gleam"],
[/defend[- ]*order/gi, "Defend-Order"],
[/defense[- ]*curl/gi, "Defense-Curl"],
[/destiny[- ]*bond/gi, "Destiny-Bond"],
[/devastating[- ]*drake/gi, "Devastating-Drake"],
[/diamond[- ]*storm/gi, "Diamond-Storm"],
[/dire[- ]*claw/gi, "Dire-Claw"],
[/disarming[- ]*voice/gi, "Disarming-Voice"],
[/dizzy[- ]*punch/gi, "Dizzy-Punch"],
[/doom[- ]*desire/gi, "Doom-Desire"],
[/double[- ]*hit/gi, "Double-Hit"],
[/double[- ]*iron[- ]*bash/gi, "Double-Iron-Bash"],
[/double[- ]*kick/gi, "Double-Kick"],
[/double[- ]*shock/gi, "Double-Shock"],
[/double[- ]*slap/gi, "Double-Slap"],
[/double[- ]*team/gi, "Double-Team"],
[/double[- ]*edge/gi, "Double-Edge"],
[/draco[- ]*meteor/gi, "Draco-Meteor"],
[/dragon[- ]*ascent/gi, "Dragon-Ascent"],
[/dragon[- ]*breath/gi, "Dragon-Breath"],
[/dragon[- ]*cheer/gi, "Dragon-Cheer"],
[/dragon[- ]*claw/gi, "Dragon-Claw"],
[/dragon[- ]*dance/gi, "Dragon-Dance"],
[/dragon[- ]*darts/gi, "Dragon-Darts"],
[/dragon[- ]*energy/gi, "Dragon-Energy"],
[/dragon[- ]*hammer/gi, "Dragon-Hammer"],
[/dragon[- ]*pulse/gi, "Dragon-Pulse"],
[/dragon[- ]*rage/gi, "Dragon-Rage"],
[/dragon[- ]*rush/gi, "Dragon-Rush"],
[/dragon[- ]*tail/gi, "Dragon-Tail"],
[/drain[- ]*punch/gi, "Drain-Punch"],
[/draining[- ]*kiss/gi, "Draining-Kiss"],
[/dream[- ]*eater/gi, "Dream-Eater"],
[/drill[- ]*peck/gi, "Drill-Peck"],
[/drill[- ]*run/gi, "Drill-Run"],
[/drum[- ]*beating/gi, "Drum-Beating"],
[/dual[- ]*chop/gi, "Dual-Chop"],
[/dual[- ]*wingbeat/gi, "Dual-Wingbeat"],
[/dynamax[- ]*cannon/gi, "Dynamax-Cannon"],
[/dynamic[- ]*punch/gi, "Dynamic-Punch"],
[/earth[- ]*power/gi, "Earth-Power"],
[/echoed[- ]*voice/gi, "Echoed-Voice"],
[/eerie[- ]*impulse/gi, "Eerie-Impulse"],
[/eerie[- ]*spell/gi, "Eerie-Spell"],
[/egg[- ]*bomb/gi, "Egg-Bomb"],
[/electric[- ]*terrain/gi, "Electric-Terrain"],
[/electro[- ]*ball/gi, "Electro-Ball"],
[/electro[- ]*drift/gi, "Electro-Drift"],
[/electro[- ]*shot/gi, "Electro-Shot"],
[/energy[- ]*ball/gi, "Energy-Ball"],
[/esper[- ]*wing/gi, "Esper-Wing"],
[/expanding[- ]*force/gi, "Expanding-Force"],
[/extreme[- ]*evoboost/gi, "Extreme-Evoboost"],
[/extreme[- ]*speed/gi, "Extreme-Speed"],
[/fairy[- ]*lock/gi, "Fairy-Lock"],
[/fairy[- ]*wind/gi, "Fairy-Wind"],
[/fake[- ]*out/gi, "Fake-Out"],
[/fake[- ]*tears/gi, "Fake-Tears"],
[/false[- ]*surrender/gi, "False-Surrender"],
[/false[- ]*swipe/gi, "False-Swipe"],
[/feather[- ]*dance/gi, "Feather-Dance"],
[/feint[- ]*attack/gi, "Feint-Attack"],
[/fell[- ]*stinger/gi, "Fell-Stinger"],
[/fickle[- ]*beam/gi, "Fickle-Beam"],
[/fiery[- ]*dance/gi, "Fiery-Dance"],
[/fiery[- ]*wrath/gi, "Fiery-Wrath"],
[/fillet[- ]*away/gi, "Fillet-Away"],
[/final[- ]*gambit/gi, "Final-Gambit"],
[/fire[- ]*blast/gi, "Fire-Blast"],
[/fire[- ]*fang/gi, "Fire-Fang"],
[/fire[- ]*lash/gi, "Fire-Lash"],
[/fire[- ]*pledge/gi, "Fire-Pledge"],
[/fire[- ]*punch/gi, "Fire-Punch"],
[/fire[- ]*spin/gi, "Fire-Spin"],
[/first[- ]*impression/gi, "First-Impression"],
[/fishious[- ]*rend/gi, "Fishious-Rend"],
[/flame[- ]*burst/gi, "Flame-Burst"],
[/flame[- ]*charge/gi, "Flame-Charge"],
[/flame[- ]*wheel/gi, "Flame-Wheel"],
[/flare[- ]*blitz/gi, "Flare-Blitz"],
[/flash[- ]*cannon/gi, "Flash-Cannon"],
[/fleur[- ]*cannon/gi, "Fleur-Cannon"],
[/flip[- ]*turn/gi, "Flip-Turn"],
[/floaty[- ]*fall/gi, "Floaty-Fall"],
[/floral[- ]*healing/gi, "Floral-Healing"],
[/flower[- ]*shield/gi, "Flower-Shield"],
[/flower[- ]*trick/gi, "Flower-Trick"],
[/flying[- ]*press/gi, "Flying-Press"],
[/focus[- ]*blast/gi, "Focus-Blast"],
[/focus[- ]*energy/gi, "Focus-Energy"],
[/focus[- ]*punch/gi, "Focus-Punch"],
[/follow[- ]*me/gi, "Follow-Me"],
[/force[- ]*palm/gi, "Force-Palm"],
[/forest[- ]*curse/gi, "Forest-Curse"],
[/foul[- ]*play/gi, "Foul-Play"],
[/freeze[- ]*shock/gi, "Freeze-Shock"],
[/freeze[- ]*dry/gi, "Freeze-Dry"],
[/freezing[- ]*glare/gi, "Freezing-Glare"],
[/freezy[- ]*frost/gi, "Freezy-Frost"],
[/frenzy[- ]*plant/gi, "Frenzy-Plant"],
[/frost[- ]*breath/gi, "Frost-Breath"],
[/fury[- ]*attack/gi, "Fury-Attack"],
[/fury[- ]*cutter/gi, "Fury-Cutter"],
[/fury[- ]*swipes/gi, "Fury-Swipes"],
[/fusion[- ]*bolt/gi, "Fusion-Bolt"],
[/fusion[- ]*flare/gi, "Fusion-Flare"],
[/future[- ]*sight/gi, "Future-Sight"],
[/g[- ]*max[- ]*befuddle/gi, "G-Max-Befuddle"],
[/g[- ]*max[- ]*cannonade/gi, "G-Max-Cannonade"],
[/g[- ]*max[- ]*centiferno/gi, "G-Max-Centiferno"],
[/g[- ]*max[- ]*chi[- ]*strike/gi, "G-Max-Chi-Strike"],
[/g[- ]*max[- ]*cuddle/gi, "G-Max-Cuddle"],
[/g[- ]*max[- ]*depletion/gi, "G-Max-Depletion"],
[/g[- ]*max[- ]*drum[- ]*solo/gi, "G-Max-Drum-Solo"],
[/g[- ]*max[- ]*finale/gi, "G-Max-Finale"],
[/g[- ]*max[- ]*fireball/gi, "G-Max-Fireball"],
[/g[- ]*max[- ]*foam[- ]*burst/gi, "G-Max-Foam-Burst"],
[/g[- ]*max[- ]*gold[- ]*rush/gi, "G-Max-Gold-Rush"],
[/g[- ]*max[- ]*gravitas/gi, "G-Max-Gravitas"],
[/g[- ]*max[- ]*hydrosnipe/gi, "G-Max-Hydrosnipe"],
[/g[- ]*max[- ]*malodor/gi, "G-Max-Malodor"],
[/g[- ]*max[- ]*meltdown/gi, "G-Max-Meltdown"],
[/g[- ]*max[- ]*one[- ]*blow/gi, "G-Max-One-Blow"],
[/g[- ]*max[- ]*rapid[- ]*flow/gi, "G-Max-Rapid-Flow"],
[/g[- ]*max[- ]*replenish/gi, "G-Max-Replenish"],
[/g[- ]*max[- ]*resonance/gi, "G-Max-Resonance"],
[/g[- ]*max[- ]*sandblast/gi, "G-Max-Sandblast"],
[/g[- ]*max[- ]*smite/gi, "G-Max-Smite"],
[/g[- ]*max[- ]*snooze/gi, "G-Max-Snooze"],
[/g[- ]*max[- ]*steelsurge/gi, "G-Max-Steelsurge"],
[/g[- ]*max[- ]*stonesurge/gi, "G-Max-Stonesurge"],
[/g[- ]*max[- ]*stun[- ]*shock/gi, "G-Max-Stun-Shock"],
[/g[- ]*max[- ]*sweetness/gi, "G-Max-Sweetness"],
[/g[- ]*max[- ]*tartness/gi, "G-Max-Tartness"],
[/g[- ]*max[- ]*terror/gi, "G-Max-Terror"],
[/g[- ]*max[- ]*vine[- ]*lash/gi, "G-Max-Vine-Lash"],
[/g[- ]*max[- ]*volcalith/gi, "G-Max-Volcalith"],
[/g[- ]*max[- ]*volt[- ]*crash/gi, "G-Max-Volt-Crash"],
[/g[- ]*max[- ]*wildfire/gi, "G-Max-Wildfire"],
[/g[- ]*max[- ]*wind[- ]*rage/gi, "G-Max-Wind-Rage"],
[/gastro[- ]*acid/gi, "Gastro-Acid"],
[/gear[- ]*grind/gi, "Gear-Grind"],
[/gear[- ]*up/gi, "Gear-Up"],
[/genesis[- ]*supernova/gi, "Genesis-Supernova"],
[/giga[- ]*drain/gi, "Giga-Drain"],
[/giga[- ]*impact/gi, "Giga-Impact"],
[/gigaton[- ]*hammer/gi, "Gigaton-Hammer"],
[/gigavolt[- ]*havoc/gi, "Gigavolt-Havoc"],
[/glacial[- ]*lance/gi, "Glacial-Lance"],
[/glaive[- ]*rush/gi, "Glaive-Rush"],
[/glitzy[- ]*glow/gi, "Glitzy-Glow"],
[/grass[- ]*knot/gi, "Grass-Knot"],
[/grass[- ]*pledge/gi, "Grass-Pledge"],
[/grass[- ]*whistle/gi, "Grass-Whistle"],
[/grassy[- ]*glide/gi, "Grassy-Glide"],
[/grassy[- ]*terrain/gi, "Grassy-Terrain"],
[/grav[- ]*apple/gi, "Grav-Apple"],
[/guard[- ]*split/gi, "Guard-Split"],
[/guard[- ]*swap/gi, "Guard-Swap"],
[/guardian[- ]*of[- ]*alola/gi, "Guardian-of-Alola"],
[/gunk[- ]*shot/gi, "Gunk-Shot"],
[/gyro[- ]*ball/gi, "Gyro-Ball"],
[/hammer[- ]*arm/gi, "Hammer-Arm"],
[/happy[- ]*hour/gi, "Happy-Hour"],
[/hard[- ]*press/gi, "Hard-Press"],
[/head[- ]*charge/gi, "Head-Charge"],
[/head[- ]*smash/gi, "Head-Smash"],
[/headlong[- ]*rush/gi, "Headlong-Rush"],
[/heal[- ]*bell/gi, "Heal-Bell"],
[/heal[- ]*block/gi, "Heal-Block"],
[/heal[- ]*order/gi, "Heal-Order"],
[/heal[- ]*pulse/gi, "Heal-Pulse"],
[/healing[- ]*wish/gi, "Healing-Wish"],
[/heart[- ]*stamp/gi, "Heart-Stamp"],
[/heart[- ]*swap/gi, "Heart-Swap"],
[/heat[- ]*crash/gi, "Heat-Crash"],
[/heat[- ]*wave/gi, "Heat-Wave"],
[/heavy[- ]*slam/gi, "Heavy-Slam"],
[/helping[- ]*hand/gi, "Helping-Hand"],
[/hidden[- ]*power/gi, "Hidden-Power"],
[/high[- ]*horsepower/gi, "High-Horsepower"],
[/high[- ]*jump[- ]*kick/gi, "High-Jump-Kick"],
[/hold[- ]*back/gi, "Hold-Back"],
[/hold[- ]*hands/gi, "Hold-Hands"],
[/hone[- ]*claws/gi, "Hone-Claws"],
[/horn[- ]*attack/gi, "Horn-Attack"],
[/horn[- ]*drill/gi, "Horn-Drill"],
[/horn[- ]*leech/gi, "Horn-Leech"],
[/hydro[- ]*cannon/gi, "Hydro-Cannon"],
[/hydro[- ]*pump/gi, "Hydro-Pump"],
[/hydro[- ]*steam/gi, "Hydro-Steam"],
[/hydro[- ]*vortex/gi, "Hydro-Vortex"],
[/hyper[- ]*beam/gi, "Hyper-Beam"],
[/hyper[- ]*drill/gi, "Hyper-Drill"],
[/hyper[- ]*fang/gi, "Hyper-Fang"],
[/hyper[- ]*voice/gi, "Hyper-Voice"],
[/hyperspace[- ]*fury/gi, "Hyperspace-Fury"],
[/hyperspace[- ]*hole/gi, "Hyperspace-Hole"],
[/ice[- ]*ball/gi, "Ice-Ball"],
[/ice[- ]*beam/gi, "Ice-Beam"],
[/ice[- ]*burn/gi, "Ice-Burn"],
[/ice[- ]*fang/gi, "Ice-Fang"],
[/ice[- ]*hammer/gi, "Ice-Hammer"],
[/ice[- ]*punch/gi, "Ice-Punch"],
[/ice[- ]*shard/gi, "Ice-Shard"],
[/ice[- ]*spinner/gi, "Ice-Spinner"],
[/icicle[- ]*crash/gi, "Icicle-Crash"],
[/icicle[- ]*spear/gi, "Icicle-Spear"],
[/icy[- ]*wind/gi, "Icy-Wind"],
[/infernal[- ]*parade/gi, "Infernal-Parade"],
[/inferno[- ]*overdrive/gi, "Inferno-Overdrive"],
[/ion[- ]*deluge/gi, "Ion-Deluge"],
[/iron[- ]*defense/gi, "Iron-Defense"],
[/iron[- ]*head/gi, "Iron-Head"],
[/iron[- ]*tail/gi, "Iron-Tail"],
[/ivy[- ]*cudgel/gi, "Ivy-Cudgel"],
[/jaw[- ]*lock/gi, "Jaw-Lock"],
[/jet[- ]*punch/gi, "Jet-Punch"],
[/jump[- ]*kick/gi, "Jump-Kick"],
[/jungle[- ]*healing/gi, "Jungle-Healing"],
[/karate[- ]*chop/gi, "Karate-Chop"],
[/king[- ]*shield/gi, "King-Shield"],
[/knock[- ]*off/gi, "Knock-Off"],
[/kowtow[- ]*cleave/gi, "Kowtow-Cleave"],
[/land[- ]*wrath/gi, "Land-Wrath"],
[/laser[- ]*focus/gi, "Laser-Focus"],
[/lash[- ]*out/gi, "Lash-Out"],
[/last[- ]*resort/gi, "Last-Resort"],
[/last[- ]*respects/gi, "Last-Respects"],
[/lava[- ]*plume/gi, "Lava-Plume"],
[/leaf[- ]*blade/gi, "Leaf-Blade"],
[/leaf[- ]*storm/gi, "Leaf-Storm"],
[/leaf[- ]*tornado/gi, "Leaf-Tornado"],
[/leech[- ]*life/gi, "Leech-Life"],
[/leech[- ]*seed/gi, "Leech-Seed"],
[/lets[- ]*snuggle[- ]*forever/gi, "Lets-Snuggle-Forever"],
[/life[- ]*dew/gi, "Life-Dew"],
[/light[- ]*of[- ]*ruin/gi, "Light-of-Ruin"],
[/light[- ]*screen/gi, "Light-Screen"],
[/light[- ]*that[- ]*burns[- ]*the[- ]*sky/gi, "Light-That-Burns-the-Sky"],
[/lock[- ]*on/gi, "Lock-On"],
[/lovely[- ]*kiss/gi, "Lovely-Kiss"],
[/low[- ]*kick/gi, "Low-Kick"],
[/low[- ]*sweep/gi, "Low-Sweep"],
[/lucky[- ]*chant/gi, "Lucky-Chant"],
[/lumina[- ]*crash/gi, "Lumina-Crash"],
[/lunar[- ]*blessing/gi, "Lunar-Blessing"],
[/lunar[- ]*dance/gi, "Lunar-Dance"],
[/luster[- ]*purge/gi, "Luster-Purge"],
[/mach[- ]*punch/gi, "Mach-Punch"],
[/magic[- ]*coat/gi, "Magic-Coat"],
[/magic[- ]*powder/gi, "Magic-Powder"],
[/magic[- ]*room/gi, "Magic-Room"],
[/magical[- ]*leaf/gi, "Magical-Leaf"],
[/magical[- ]*torque/gi, "Magical-Torque"],
[/magma[- ]*storm/gi, "Magma-Storm"],
[/magnet[- ]*bomb/gi, "Magnet-Bomb"],
[/magnet[- ]*rise/gi, "Magnet-Rise"],
[/magnetic[- ]*flux/gi, "Magnetic-Flux"],
[/make[- ]*it[- ]*rain/gi, "Make-It-Rain"],
[/malicious[- ]*moonsault/gi, "Malicious-Moonsault"],
[/malignant[- ]*chain/gi, "Malignant-Chain"],
[/mat[- ]*block/gi, "Mat-Block"],
[/matcha[- ]*gotcha/gi, "Matcha-Gotcha"],
[/max[- ]*airstream/gi, "Max-Airstream"],
[/max[- ]*darkness/gi, "Max-Darkness"],
[/max[- ]*flare/gi, "Max-Flare"],
[/max[- ]*flutterby/gi, "Max-Flutterby"],
[/max[- ]*geyser/gi, "Max-Geyser"],
[/max[- ]*guard/gi, "Max-Guard"],
[/max[- ]*hailstorm/gi, "Max-Hailstorm"],
[/max[- ]*knuckle/gi, "Max-Knuckle"],
[/max[- ]*lightning/gi, "Max-Lightning"],
[/max[- ]*mindstorm/gi, "Max-Mindstorm"],
[/max[- ]*ooze/gi, "Max-Ooze"],
[/max[- ]*overgrowth/gi, "Max-Overgrowth"],
[/max[- ]*phantasm/gi, "Max-Phantasm"],
[/max[- ]*quake/gi, "Max-Quake"],
[/max[- ]*rockfall/gi, "Max-Rockfall"],
[/max[- ]*starfall/gi, "Max-Starfall"],
[/max[- ]*steelspike/gi, "Max-Steelspike"],
[/max[- ]*strike/gi, "Max-Strike"],
[/max[- ]*wyrmwind/gi, "Max-Wyrmwind"],
[/me[- ]*first/gi, "Me-First"],
[/mean[- ]*look/gi, "Mean-Look"],
[/mega[- ]*drain/gi, "Mega-Drain"],
[/mega[- ]*kick/gi, "Mega-Kick"],
[/mega[- ]*punch/gi, "Mega-Punch"],
[/menacing[- ]*moonraze[- ]*maelstrom/gi, "Menacing-Moonraze-Maelstrom"],
[/metal[- ]*burst/gi, "Metal-Burst"],
[/metal[- ]*claw/gi, "Metal-Claw"],
[/metal[- ]*sound/gi, "Metal-Sound"],
[/meteor[- ]*assault/gi, "Meteor-Assault"],
[/meteor[- ]*beam/gi, "Meteor-Beam"],
[/meteor[- ]*mash/gi, "Meteor-Mash"],
[/mighty[- ]*cleave/gi, "Mighty-Cleave"],
[/milk[- ]*drink/gi, "Milk-Drink"],
[/mind[- ]*blown/gi, "Mind-Blown"],
[/mind[- ]*reader/gi, "Mind-Reader"],
[/miracle[- ]*eye/gi, "Miracle-Eye"],
[/mirror[- ]*coat/gi, "Mirror-Coat"],
[/mirror[- ]*move/gi, "Mirror-Move"],
[/mirror[- ]*shot/gi, "Mirror-Shot"],
[/mist[- ]*ball/gi, "Mist-Ball"],
[/misty[- ]*explosion/gi, "Misty-Explosion"],
[/misty[- ]*terrain/gi, "Misty-Terrain"],
[/moongeist[- ]*beam/gi, "Moongeist-Beam"],
[/morning[- ]*sun/gi, "Morning-Sun"],
[/mortal[- ]*spin/gi, "Mortal-Spin"],
[/mountain[- ]*gale/gi, "Mountain-Gale"],
[/mud[- ]*bomb/gi, "Mud-Bomb"],
[/mud[- ]*shot/gi, "Mud-Shot"],
[/mud[- ]*sport/gi, "Mud-Sport"],
[/mud[- ]*slap/gi, "Mud-Slap"],
[/muddy[- ]*water/gi, "Muddy-Water"],
[/multi[- ]*attack/gi, "Multi-Attack"],
[/mystical[- ]*fire/gi, "Mystical-Fire"],
[/mystical[- ]*power/gi, "Mystical-Power"],
[/nasty[- ]*plot/gi, "Nasty-Plot"],
[/natural[- ]*gift/gi, "Natural-Gift"],
[/nature[- ]*power/gi, "Nature-Power"],
[/nature[- ]*madness/gi, "Nature-Madness"],
[/needle[- ]*arm/gi, "Needle-Arm"],
[/never[- ]*ending[- ]*nightmare/gi, "Never-Ending-Nightmare"],
[/night[- ]*daze/gi, "Night-Daze"],
[/night[- ]*shade/gi, "Night-Shade"],
[/night[- ]*slash/gi, "Night-Slash"],
[/no[- ]*retreat/gi, "No-Retreat"],
[/noble[- ]*roar/gi, "Noble-Roar"],
[/noxious[- ]*torque/gi, "Noxious-Torque"],
[/oblivion[- ]*wing/gi, "Oblivion-Wing"],
[/oceanic[- ]*operetta/gi, "Oceanic-Operetta"],
[/odor[- ]*sleuth/gi, "Odor-Sleuth"],
[/ominous[- ]*wind/gi, "Ominous-Wind"],
[/order[- ]*up/gi, "Order-Up"],
[/origin[- ]*pulse/gi, "Origin-Pulse"],
[/pain[- ]*split/gi, "Pain-Split"],
[/parabolic[- ]*charge/gi, "Parabolic-Charge"],
[/parting[- ]*shot/gi, "Parting-Shot"],
[/pay[- ]*day/gi, "Pay-Day"],
[/perish[- ]*song/gi, "Perish-Song"],
[/petal[- ]*blizzard/gi, "Petal-Blizzard"],
[/petal[- ]*dance/gi, "Petal-Dance"],
[/phantom[- ]*force/gi, "Phantom-Force"],
[/photon[- ]*geyser/gi, "Photon-Geyser"],
[/pika[- ]*papow/gi, "Pika-Papow"],
[/pin[- ]*missile/gi, "Pin-Missile"],
[/plasma[- ]*fists/gi, "Plasma-Fists"],
[/play[- ]*nice/gi, "Play-Nice"],
[/play[- ]*rough/gi, "Play-Rough"],
[/poison[- ]*fang/gi, "Poison-Fang"],
[/poison[- ]*gas/gi, "Poison-Gas"],
[/poison[- ]*jab/gi, "Poison-Jab"],
[/poison[- ]*powder/gi, "Poison-Powder"],
[/poison[- ]*sting/gi, "Poison-Sting"],
[/poison[- ]*tail/gi, "Poison-Tail"],
[/pollen[- ]*puff/gi, "Pollen-Puff"],
[/population[- ]*bomb/gi, "Population-Bomb"],
[/powder[- ]*snow/gi, "Powder-Snow"],
[/power[- ]*gem/gi, "Power-Gem"],
[/power[- ]*shift/gi, "Power-Shift"],
[/power[- ]*split/gi, "Power-Split"],
[/power[- ]*swap/gi, "Power-Swap"],
[/power[- ]*trick/gi, "Power-Trick"],
[/power[- ]*trip/gi, "Power-Trip"],
[/power[- ]*whip/gi, "Power-Whip"],
[/power[- ]*up[- ]*punch/gi, "Power-Up-Punch"],
[/precipice[- ]*blades/gi, "Precipice-Blades"],
[/prismatic[- ]*laser/gi, "Prismatic-Laser"],
[/psych[- ]*up/gi, "Psych-Up"],
[/psychic[- ]*fangs/gi, "Psychic-Fangs"],
[/psychic[- ]*noise/gi, "Psychic-Noise"],
[/psychic[- ]*terrain/gi, "Psychic-Terrain"],
[/psycho[- ]*boost/gi, "Psycho-Boost"],
[/psycho[- ]*cut/gi, "Psycho-Cut"],
[/psycho[- ]*shift/gi, "Psycho-Shift"],
[/psyshield[- ]*bash/gi, "Psyshield-Bash"],
[/pulverizing[- ]*pancake/gi, "Pulverizing-Pancake"],
[/pyro[- ]*ball/gi, "Pyro-Ball"],
[/quick[- ]*attack/gi, "Quick-Attack"],
[/quick[- ]*guard/gi, "Quick-Guard"],
[/quiver[- ]*dance/gi, "Quiver-Dance"],
[/rage[- ]*fist/gi, "Rage-Fist"],
[/rage[- ]*powder/gi, "Rage-Powder"],
[/raging[- ]*bull/gi, "Raging-Bull"],
[/raging[- ]*fury/gi, "Raging-Fury"],
[/rain[- ]*dance/gi, "Rain-Dance"],
[/rapid[- ]*spin/gi, "Rapid-Spin"],
[/razor[- ]*leaf/gi, "Razor-Leaf"],
[/razor[- ]*shell/gi, "Razor-Shell"],
[/razor[- ]*wind/gi, "Razor-Wind"],
[/reflect[- ]*type/gi, "Reflect-Type"],
[/relic[- ]*song/gi, "Relic-Song"],
[/revelation[- ]*dance/gi, "Revelation-Dance"],
[/revival[- ]*blessing/gi, "Revival-Blessing"],
[/rising[- ]*voltage/gi, "Rising-Voltage"],
[/roar[- ]*of[- ]*time/gi, "Roar-of-Time"],
[/rock[- ]*blast/gi, "Rock-Blast"],
[/rock[- ]*climb/gi, "Rock-Climb"],
[/rock[- ]*polish/gi, "Rock-Polish"],
[/rock[- ]*slide/gi, "Rock-Slide"],
[/rock[- ]*smash/gi, "Rock-Smash"],
[/rock[- ]*throw/gi, "Rock-Throw"],
[/rock[- ]*tomb/gi, "Rock-Tomb"],
[/rock[- ]*wrecker/gi, "Rock-Wrecker"],
[/role[- ]*play/gi, "Role-Play"],
[/rolling[- ]*kick/gi, "Rolling-Kick"],
[/sacred[- ]*fire/gi, "Sacred-Fire"],
[/sacred[- ]*sword/gi, "Sacred-Sword"],
[/salt[- ]*cure/gi, "Salt-Cure"],
[/sand[- ]*attack/gi, "Sand-Attack"],
[/sand[- ]*tomb/gi, "Sand-Tomb"],
[/sandsear[- ]*storm/gi, "Sandsear-Storm"],
[/sappy[- ]*seed/gi, "Sappy-Seed"],
[/savage[- ]*spin[- ]*out/gi, "Savage-Spin-Out"],
[/scale[- ]*shot/gi, "Scale-Shot"],
[/scary[- ]*face/gi, "Scary-Face"],
[/scorching[- ]*sands/gi, "Scorching-Sands"],
[/searing[- ]*shot/gi, "Searing-Shot"],
[/searing[- ]*sunraze[- ]*smash/gi, "Searing-Sunraze-Smash"],
[/secret[- ]*power/gi, "Secret-Power"],
[/secret[- ]*sword/gi, "Secret-Sword"],
[/seed[- ]*bomb/gi, "Seed-Bomb"],
[/seed[- ]*flare/gi, "Seed-Flare"],
[/seismic[- ]*toss/gi, "Seismic-Toss"],
[/self[- ]*destruct/gi, "Self-Destruct"],
[/shadow[- ]*ball/gi, "Shadow-Ball"],
[/shadow[- ]*bone/gi, "Shadow-Bone"],
[/shadow[- ]*claw/gi, "Shadow-Claw"],
[/shadow[- ]*force/gi, "Shadow-Force"],
[/shadow[- ]*punch/gi, "Shadow-Punch"],
[/shadow[- ]*sneak/gi, "Shadow-Sneak"],
[/shattered[- ]*psyche/gi, "Shattered-Psyche"],
[/shed[- ]*tail/gi, "Shed-Tail"],
[/sheer[- ]*cold/gi, "Sheer-Cold"],
[/shell[- ]*side[- ]*arm/gi, "Shell-Side-Arm"],
[/shell[- ]*smash/gi, "Shell-Smash"],
[/shell[- ]*trap/gi, "Shell-Trap"],
[/shift[- ]*gear/gi, "Shift-Gear"],
[/shock[- ]*wave/gi, "Shock-Wave"],
[/shore[- ]*up/gi, "Shore-Up"],
[/signal[- ]*beam/gi, "Signal-Beam"],
[/silk[- ]*trap/gi, "Silk-Trap"],
[/silver[- ]*wind/gi, "Silver-Wind"],
[/simple[- ]*beam/gi, "Simple-Beam"],
[/sinister[- ]*arrow[- ]*raid/gi, "Sinister-Arrow-Raid"],
[/sizzly[- ]*slide/gi, "Sizzly-Slide"],
[/skill[- ]*swap/gi, "Skill-Swap"],
[/skitter[- ]*smack/gi, "Skitter-Smack"],
[/skull[- ]*bash/gi, "Skull-Bash"],
[/sky[- ]*attack/gi, "Sky-Attack"],
[/sky[- ]*drop/gi, "Sky-Drop"],
[/sky[- ]*uppercut/gi, "Sky-Uppercut"],
[/slack[- ]*off/gi, "Slack-Off"],
[/sleep[- ]*powder/gi, "Sleep-Powder"],
[/sleep[- ]*talk/gi, "Sleep-Talk"],
[/sludge[- ]*bomb/gi, "Sludge-Bomb"],
[/sludge[- ]*wave/gi, "Sludge-Wave"],
[/smack[- ]*down/gi, "Smack-Down"],
[/smart[- ]*strike/gi, "Smart-Strike"],
[/smelling[- ]*salts/gi, "Smelling-Salts"],
[/snap[- ]*trap/gi, "Snap-Trap"],
[/snipe[- ]*shot/gi, "Snipe-Shot"],
[/soft[- ]*boiled/gi, "Soft-Boiled"],
[/solar[- ]*beam/gi, "Solar-Beam"],
[/solar[- ]*blade/gi, "Solar-Blade"],
[/sonic[- ]*boom/gi, "Sonic-Boom"],
[/soul[- ]*stealing[- ]*7[- ]*star[- ]*strike/gi, "Soul-Stealing-7-Star-Strike"],
[/spacial[- ]*rend/gi, "Spacial-Rend"],
[/sparkling[- ]*aria/gi, "Sparkling-Aria"],
[/sparkly[- ]*swirl/gi, "Sparkly-Swirl"],
[/spectral[- ]*thief/gi, "Spectral-Thief"],
[/speed[- ]*swap/gi, "Speed-Swap"],
[/spicy[- ]*extract/gi, "Spicy-Extract"],
[/spider[- ]*web/gi, "Spider-Web"],
[/spike[- ]*cannon/gi, "Spike-Cannon"],
[/spiky[- ]*shield/gi, "Spiky-Shield"],
[/spin[- ]*out/gi, "Spin-Out"],
[/spirit[- ]*break/gi, "Spirit-Break"],
[/spirit[- ]*shackle/gi, "Spirit-Shackle"],
[/spit[- ]*up/gi, "Spit-Up"],
[/splintered[- ]*stormshards/gi, "Splintered-Stormshards"],
[/splishy[- ]*splash/gi, "Splishy-Splash"],
[/springtide[- ]*storm/gi, "Springtide-Storm"],
[/stealth[- ]*rock/gi, "Stealth-Rock"],
[/steam[- ]*eruption/gi, "Steam-Eruption"],
[/steel[- ]*beam/gi, "Steel-Beam"],
[/steel[- ]*roller/gi, "Steel-Roller"],
[/steel[- ]*wing/gi, "Steel-Wing"],
[/sticky[- ]*web/gi, "Sticky-Web"],
[/stoked[- ]*sparksurfer/gi, "Stoked-Sparksurfer"],
[/stomping[- ]*tantrum/gi, "Stomping-Tantrum"],
[/stone[- ]*axe/gi, "Stone-Axe"],
[/stone[- ]*edge/gi, "Stone-Edge"],
[/stored[- ]*power/gi, "Stored-Power"],
[/storm[- ]*throw/gi, "Storm-Throw"],
[/strange[- ]*steam/gi, "Strange-Steam"],
[/strength[- ]*sap/gi, "Strength-Sap"],
[/string[- ]*shot/gi, "String-Shot"],
[/struggle[- ]*bug/gi, "Struggle-Bug"],
[/stuff[- ]*cheeks/gi, "Stuff-Cheeks"],
[/stun[- ]*spore/gi, "Stun-Spore"],
[/subzero[- ]*slammer/gi, "Subzero-Slammer"],
[/sucker[- ]*punch/gi, "Sucker-Punch"],
[/sunny[- ]*day/gi, "Sunny-Day"],
[/sunsteel[- ]*strike/gi, "Sunsteel-Strike"],
[/super[- ]*fang/gi, "Super-Fang"],
[/supercell[- ]*slam/gi, "Supercell-Slam"],
[/supersonic[- ]*skystrike/gi, "Supersonic-Skystrike"],
[/surging[- ]*strikes/gi, "Surging-Strikes"],
[/sweet[- ]*kiss/gi, "Sweet-Kiss"],
[/sweet[- ]*scent/gi, "Sweet-Scent"],
[/swords[- ]*dance/gi, "Swords-Dance"],
[/syrup[- ]*bomb/gi, "Syrup-Bomb"],
[/tachyon[- ]*cutter/gi, "Tachyon-Cutter"],
[/tail[- ]*glow/gi, "Tail-Glow"],
[/tail[- ]*slap/gi, "Tail-Slap"],
[/tail[- ]*whip/gi, "Tail-Whip"],
[/take[- ]*down/gi, "Take-Down"],
[/take[- ]*heart/gi, "Take-Heart"],
[/tar[- ]*shot/gi, "Tar-Shot"],
[/tearful[- ]*look/gi, "Tearful-Look"],
[/techno[- ]*blast/gi, "Techno-Blast"],
[/tectonic[- ]*rage/gi, "Tectonic-Rage"],
[/teeter[- ]*dance/gi, "Teeter-Dance"],
[/temper[- ]*flare/gi, "Temper-Flare"],
[/tera[- ]*blast/gi, "Tera-Blast"],
[/tera[- ]*starstorm/gi, "Tera-Starstorm"],
[/terrain[- ]*pulse/gi, "Terrain-Pulse"],
[/thousand[- ]*arrows/gi, "Thousand-Arrows"],
[/thousand[- ]*waves/gi, "Thousand-Waves"],
[/throat[- ]*chop/gi, "Throat-Chop"],
[/thunder[- ]*cage/gi, "Thunder-Cage"],
[/thunder[- ]*fang/gi, "Thunder-Fang"],
[/thunder[- ]*punch/gi, "Thunder-Punch"],
[/thunder[- ]*shock/gi, "Thunder-Shock"],
[/thunder[- ]*wave/gi, "Thunder-Wave"],
[/thunderous[- ]*kick/gi, "Thunderous-Kick"],
[/tidy[- ]*up/gi, "Tidy-Up"],
[/topsy[- ]*turvy/gi, "Topsy-Turvy"],
[/torch[- ]*song/gi, "Torch-Song"],
[/toxic[- ]*spikes/gi, "Toxic-Spikes"],
[/toxic[- ]*thread/gi, "Toxic-Thread"],
[/tri[- ]*attack/gi, "Tri-Attack"],
[/trick[- ]*room/gi, "Trick-Room"],
[/trick[- ]*or[- ]*treat/gi, "Trick-or-Treat"],
[/triple[- ]*arrows/gi, "Triple-Arrows"],
[/triple[- ]*axel/gi, "Triple-Axel"],
[/triple[- ]*dive/gi, "Triple-Dive"],
[/triple[- ]*kick/gi, "Triple-Kick"],
[/trop[- ]*kick/gi, "Trop-Kick"],
[/trump[- ]*card/gi, "Trump-Card"],
[/twin[- ]*beam/gi, "Twin-Beam"],
[/twinkle[- ]*tackle/gi, "Twinkle-Tackle"],
[/u[- ]*turn/gi, "U-turn"],
[/upper[- ]*hand/gi, "Upper-Hand"],
[/v[- ]*create/gi, "V-create"],
[/vacuum[- ]*wave/gi, "Vacuum-Wave"],
[/veevee[- ]*volley/gi, "Veevee-Volley"],
[/venom[- ]*drench/gi, "Venom-Drench"],
[/victory[- ]*dance/gi, "Victory-Dance"],
[/vine[- ]*whip/gi, "Vine-Whip"],
[/vise[- ]*grip/gi, "Vise-Grip"],
[/vital[- ]*throw/gi, "Vital-Throw"],
[/volt[- ]*switch/gi, "Volt-Switch"],
[/volt[- ]*tackle/gi, "Volt-Tackle"],
[/wake[- ]*up[- ]*slap/gi, "Wake-Up-Slap"],
[/water[- ]*gun/gi, "Water-Gun"],
[/water[- ]*pledge/gi, "Water-Pledge"],
[/water[- ]*pulse/gi, "Water-Pulse"],
[/water[- ]*shuriken/gi, "Water-Shuriken"],
[/water[- ]*sport/gi, "Water-Sport"],
[/water[- ]*spout/gi, "Water-Spout"],
[/wave[- ]*crash/gi, "Wave-Crash"],
[/weather[- ]*ball/gi, "Weather-Ball"],
[/wicked[- ]*blow/gi, "Wicked-Blow"],
[/wicked[- ]*torque/gi, "Wicked-Torque"],
[/wide[- ]*guard/gi, "Wide-Guard"],
[/wild[- ]*charge/gi, "Wild-Charge"],
[/wildbolt[- ]*storm/gi, "Wildbolt-Storm"],
[/will[- ]*o[- ]*wisp/gi, "Will-O-Wisp"],
[/wing[- ]*attack/gi, "Wing-Attack"],
[/wonder[- ]*room/gi, "Wonder-Room"],
[/wood[- ]*hammer/gi, "Wood-Hammer"],
[/work[- ]*up/gi, "Work-Up"],
[/worry[- ]*seed/gi, "Worry-Seed"],
[/wring[- ]*out/gi, "Wring-Out"],
[/x[- ]*scissor/gi, "X-Scissor"],
[/zap[- ]*cannon/gi, "Zap-Cannon"],
[/zen[- ]*headbutt/gi, "Zen-Headbutt"],
[/zing[- ]*zap/gi, "Zing-Zap"],
[/zippy[- ]*zap/gi, "Zippy-Zap"]
];
text = ((typeof text === "string") && text) || "\n";
text = text.replaceAll("é", "e");
for (const [pattern, replacement] of replacements) {
text = text.replace(pattern, replacement);
}
/*
Auto-Cards
Made by LewdLeah on May 21, 2025
This AI Dungeon script automatically creates and updates plot-relevant story cards while you play
General-purpose usefulness and compatibility with other scenarios/scripts were my design priorities
Auto-Cards is fully open-source, please copy for use within your own projects! ❤️
*/
function AutoCards(inHook, inText, inStop) {
"use strict";
/*
Default Auto-Cards settings
Feel free to change these settings to customize your scenario's default gameplay experience
The default values for your scenario are specified below:
*/
// Is Auto-Cards already enabled when the adventure begins?
const DEFAULT_DO_AC = true
// (true or false)
// Pin the "Configure Auto-Cards" story card at the top of the player's story cards list?
const DEFAULT_PIN_CONFIGURE_CARD = true
// (true or false)
// Minimum number of turns in between automatic card generation events?
const DEFAULT_CARD_CREATION_COOLDOWN = 22
// (0 to 9999)
// Use a bulleted list format for newly generated card entries?
const DEFAULT_USE_BULLETED_LIST_MODE = true
// (true or false)
// Maximum allowed length for newly generated story card entries?
const DEFAULT_GENERATED_ENTRY_LIMIT = 750
// (200 to 2000)
// Do newly generated cards have memory updates enabled by default?
const DEFAULT_NEW_CARDS_DO_MEMORY_UPDATES = true
// (true or false)
// Default character limit before the card's memory bank is summarized?
const DEFAULT_NEW_CARDS_MEMORY_LIMIT = 2750
// (1750 to 9900)
// Approximately how much shorter should recently compressed memories be? (ratio = 10 * old / new)
const DEFAULT_MEMORY_COMPRESSION_RATIO = 25
// (20 to 1250)
// Ignore all-caps during title candidate detection?
const DEFAULT_IGNORE_ALL_CAPS_TITLES = true
// (true or false)
// Should player input actions (Do/Say/Story) be considered during title detection?
const DEFAULT_DETECT_TITLES_FROM_INPUTS = false
// (true or false)
// How many (minimum) actions in the past does Auto-Cards look for named entities?
const DEFAULT_MINIMUM_LOOK_BACK_DISTANCE = 5
// (2 to 88)
// Is Live Script Interface v2 enabled?
const DEFAULT_DO_LSI_V2 = false
// (true or false)
// Should the "Debug Data" story card be visible?
const DEFAULT_SHOW_DEBUG_DATA = false
// (true or false)
// AI prompt used to generate new story card entries?
const DEFAULT_CARD_GENERATION_PROMPT = prose(
"-----",
"",
"",
"# Stop the story and ignore previous instructions. You are a Pokemon expert. Write a brief and coherent informational entry for %{title} following these instructions:",
"- Write only third-person pure prose information about %{title} using complete sentences with correct punctuation",
"- Avoid short-term temporary details or appearances, instead focus on plot-significant information",
"- Prioritize story-relevant details about %{title} first to ensure seamless integration with later fanfiction",
"- Adhere to the Pokemon canon at all times",
"- Create new information based on the context and story direction",
"- Mention %{title} in every sentence",
"- Use semicolons if needed",
"- Avoid meta media information; this entry is for fictional writing",
"- Add additional details about %{title} beneath incomplete entries",
"- Be concise and grounded",
"- Imitate the story's writing style and infer the reader's preferences",
"",
"Continue the entry for %{title} below while avoiding repetition:",
"%{entry}"
); // (mimic this multi-line "text" format)
// AI prompt used to summarize a given story card's memory bank?
const DEFAULT_CARD_MEMORY_COMPRESSION_PROMPT = prose(
"-----",
"",
"",
"# Stop the story and ignore previous instructions. You are a Pokemon expert. Summarize and condense the given paragraph into a narrow and focused memory passage while following these guidelines:",
"- Ensure the passage retains the core meaning and most essential details",
"- Use the third-person perspective",
"- Prioritize information-density, accuracy, completeness, and Pokemon canon-compliance",
"- Avoid meta media information",
"- Remain brief and concise",
"- Write firmly in the past tense",
"- The paragraph below pertains to old events from far earlier in the story",
"- Integrate %{title} naturally within the memory; however, only write about the events as they occurred",
"- Only reference information present inside the paragraph itself, be specific",
"",
"Write a summarized old memory passage for %{title} based only on the following paragraph:",
"\"\"\"",
"%{memory}",
"\"\"\"",
"Summarize below:"
); // (mimic this multi-line "text" format)
// Titles banned from future card generation attempts?
const DEFAULT_BANNED_TITLES_LIST = (
"North, East, South, West, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, January, February, March, April, May, June, July, August, September, October, November, December, Normal, Fire, Water, Electric, Grass, Ice, Fighting, Poison, Ground, Flying, Psychic, Bug, Rock, Ghost, Dragon, Dark, Steel, Fairy, Stellar, Pokemon, Poke, Pokeball, Pokedex, Trainer, Gym, Champion, Battle, Box, Team, Nature, Ability, Move, Form, Forme, Mega, Dynamax, Gigantmax, Terastallization, Tera, Hidden"
); // (mimic this comma-list "text" format)
// Default story card "type" used by Auto-Cards? (does not matter)
const DEFAULT_CARD_TYPE = "class"
// ("text")
// Should titles mentioned in the "opening" plot component be banned from future card generation by default?
const DEFAULT_BAN_TITLES_FROM_OPENING = true
// (true or false)
//—————————————————————————————————————————————————————————————————————————————————
/*
Useful API functions for coders (otherwise ignore)
Here's what each one does in plain terms:
AutoCards().API.postponeEvents();
Pauses Auto-Cards activity for n many turns
AutoCards().API.emergencyHalt();
Emergency stop or resume
AutoCards().API.suppressMessages();
Hides Auto-Cards toasts by preventing assignment to state.message
AutoCards().API.debugLog();
Writes to the debug log card
AutoCards().API.toggle();
Turns Auto-Cards on/off
AutoCards().API.generateCard();
Initiates AI generation of the requested card
AutoCards().API.redoCard();
Regenerates an existing card
AutoCards().API.setCardAsAuto();
Flags or unflags a card as automatic
AutoCards().API.addCardMemory();
Adds a memory to a specific card
AutoCards().API.eraseAllAutoCards();
Deletes all auto-cards
AutoCards().API.getUsedTitles();
Lists all current card titles
AutoCards().API.getBannedTitles();
Shows your current banned titles list
AutoCards().API.setBannedTitles();
Replaces the banned titles list with a new list
AutoCards().API.buildCard();
Makes a new card from scratch, using exact parameters
AutoCards().API.getCard();
Finds cards that match a filter
AutoCards().API.eraseCard();
Deletes cards matching a filter
*/
/*** Postpones internal Auto-Cards events for a specified number of turns
*
* @function
* @param {number} turns A non-negative integer representing the number of turns to postpone events
* @returns {Object} An object containing cooldown values affected by the postponement
* @throws {Error} If turns is not a non-negative integer
*/
// AutoCards().API.postponeEvents();
/*** Sets or clears the emergency halt flag to pause Auto-Cards operations
*
* @function
* @param {boolean} shouldHalt A boolean value indicating whether to engage (true) or disengage (false) emergency halt
* @returns {boolean} The value that was set
* @throws {Error} If called from within isolateLSIv2 scope or with a non-boolean argument
*/
// AutoCards().API.emergencyHalt();
/*** Enables or disables state.message assignments from Auto-Cards
*
* @function
* @param {boolean} shouldSuppress If true, suppresses all Auto-Cards messages; false enables them
* @returns {Array} The current pending messages after setting suppression
* @throws {Error} If shouldSuppress is not a boolean
*/
// AutoCards().API.suppressMessages();
/*** Logs debug information to the "Debug Log card console
*
* @function
* @param {...any} args Arguments to log for debugging purposes
* @returns {any} The story card object reference
*/
// AutoCards().API.debugLog();
/*** Toggles Auto-Cards behavior or sets it directly
*
* @function
* @param {boolean|null|undefined} toggleType If undefined, toggles the current state. If boolean or null, sets the state accordingly
* @returns {boolean|null|undefined} The state that was set or inferred
* @throws {Error} If toggleType is not a boolean, null, or undefined
*/
// AutoCards().API.toggle();
/*** Generates a new card using optional prompt details or a card request object
*
* This function supports two usage modes:
*
* 1. Object Mode:
* Pass a single object containing card request parameters. The only mandatory property is "title"
* All other properties are optional and customize the card generation
*
* Example:
* AutoCards().API.generateCard({
* type: "character", // The category or type of the card; defaults to "class" if omitted
* title: "Leah the Lewd", // The card's title (required)
* keysStart: "Lewd,Leah", // Optional trigger keywords associated with the card
* entryStart: "You are a woman named Leah.", // Existing content to prepend to the AI-generated entry
* entryPrompt: "", // Global prompt guiding AI content generation
* entryPromptDetails: "Focus on Leah's works of artifice and ingenuity", // Additional prompt info
* entryLimit: 750, // Target character length for the AI-generated entry
* description: "Player character!", // Freeform notes
* memoryStart: "Leah purchased a new sweater.", // Existing memory content
* memoryUpdates: true, // Whether the card's memory bank will update on its own
* memoryLimit: 2750 // Preferred memory bank size before summarization/compression
* });
*
* 2. String Mode:
* Pass a string as the title and optionally two additional strings to specify prompt details
* This mode is shorthand for quick card generation without an explicit card request object
*
* Examples:
* AutoCards().API.generateCard("Leah the Lewd");
* AutoCards().API.generateCard("Leah the Lewd", "Focus on Leah's works of artifice and ingenuity");
* AutoCards().API.generateCard(
* "Leah the Lewd",
* "Focus on Leah's works of artifice and ingenuity",
* "You are a woman named Leah."
* );
*
* @function
* @param {Object|string} request Either a fully specified card request object or a string title
* @param {string} [extra1] Optional detailed prompt text when using string mode
* @param {string} [extra2] Optional entry start text when using string mode
* @returns {boolean} Returns true if the generation attempt succeeded, false otherwise
* @throws {Error} Throws if called with invalid arguments or missing a required title property
*/
// AutoCards().API.generateCard();
/*** Regenerates a card by title or object reference, optionally preserving or modifying its input info
*
* @function
* @param {Object|string} request Either a fully specified card request object or a string title for the card to be regenerated
* @param {boolean} [useOldInfo=true] If true, preserves old info in the new generation; false omits it
* @param {string} [newInfo=""] Additional info to append to the generation prompt
* @returns {boolean} True if regeneration succeeded; false otherwise
* @throws {Error} If the request format is invalid, or if the second or third parameters are the wrong types
*/
// AutoCards().API.redoCard();
/*** Flags or unflags a card as an auto-card, controlling its automatic generation behavior
*
* @function
* @param {Object|string} targetCard The card object or title to mark/unmark as an auto-card
* @param {boolean} [setOrUnset=true] If true, marks the card as an auto-card; false removes the flag
* @returns {boolean} True if the operation succeeded; false if the card was invalid or already matched the target state
* @throws {Error} If the arguments are invalid types
*/
// AutoCards().API.setCardAsAuto();
/*** Appends a memory to a story card's memory bank
*
* @function
* @param {Object|string} targetCard A card object reference or title string
* @param {string} newMemory The memory text to add
* @returns {boolean} True if the memory was added; false if it was empty, already present, or the card was not found
* @throws {Error} If the inputs are not a string or valid card object reference
*/
// AutoCards().API.addCardMemory();
/*** Removes all previously generated auto-cards and resets various states
*
* @function
* @returns {number} The number of cards that were removed
*/
// AutoCards().API.eraseAllAutoCards();
/*** Retrieves an array of titles currently used by the adventure's story cards
*
* @function
* @returns {Array} An array of strings representing used titles
*/
// AutoCards().API.getUsedTitles();
/*** Retrieves an array of banned titles
*
* @function
* @returns {Array} An array of banned title strings
*/
// AutoCards().API.getBannedTitles();
/*** Sets the banned titles array, replacing any previously banned titles
*
* @function
* @param {string|Array} titles A comma-separated string or array of strings representing titles to ban
* @returns {Object} An object containing oldBans and newBans arrays
* @throws {Error} If the input is neither a string nor an array of strings
*/
// AutoCards().API.setBannedTitles();
/*** Creates a new story card with the specified parameters
*
* @function
* @param {string|Object} title Card title string or full card template object containing all fields
* @param {string} [entry] The entry text for the card
* @param {string} [type] The card type (e.g., "character", "location")
* @param {string} [keys] The keys (triggers) for the card
* @param {string} [description] The notes or memory bank of the card
* @param {number} [insertionIndex] Optional index to insert the card at a specific position within storyCards
* @returns {Object|null} The created card object reference, or null if creation failed
*/
// AutoCards().API.buildCard();
/*** Finds and returns story cards satisfying a user-defined condition
* Example:
* const leahCard = AutoCards().API.getCard(card => (card.title === "Leah"));
*
* @function
* @param {Function} predicate A function which takes a card and returns true if it matches
* @param {boolean} [getAll=false] If true, returns all matching cards; otherwise returns the first match
* @returns {Object|Array