您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Updated as of 2025 April 11th CHECK BACK DAILY FOR UPDATES!
- // ==UserScript==
- // @name Skribbl.io Cheats
- // @namespace https://nohesi.lol
- // @version 2025-04-12
- // @description Updated as of 2025 April 11th CHECK BACK DAILY FOR UPDATES!
- // @author bleh2rich
- // @match *://*.skribbl.io/*
- // @icon https://raw.githubusercontent.com/blmpsaa/skribbl/refs/heads/main/icon.jpg
- // @license Copyright (c) 2025 bleh2rich. All rights reserved.
- // @grant unsafeWindow
- // @run-at document-idle
- // ==/UserScript==
- javascript:(function() {
- const charWidthRatio = 0.6;
- const charHeightRatio = 1.0;
- const lineDelay = 30;
- const charSpacingFactor = 1.1;
- const lineSpacingFactor = 1.4;
- const spaceWidthFactor = 0.5;
- const maxLines = 10;
- const safetyMarginFactor = 0.9;
- const defaultAutoguessDelay = 1000;
- const wordDbResultsMaxHeight = '300px';
- const WORD_DATABASE_CSV_STRING = `word,count,
- abs,3,
- ace,3,
- afk,3,
- age,3,
- air,3,
- amp,3,
- ant,3,
- app,3,
- arm,3,
- art,3,
- ash,3,
- atv,3,
- axe,3,
- bad,3,
- bag,3,
- bar,3,
- bat,3,
- bay,3,
- bed,3,
- bee,3,
- blt,3,
- bmw,3,
- bmx,3,
- bot,3,
- bow,3,
- box,3,
- boy,3,
- bra,3,
- bug,3,
- bun,3,
- bus,3,
- can,3,
- cap,3,
- car,3,
- cat,3,
- cod,3,
- cow,3,
- cpu,3,
- cry,3,
- cup,3,
- cut,3,
- dab,3,
- dam,3,
- day,3,
- den,3,
- dew,3,
- die,3,
- dig,3,
- dip,3,
- dna,3,
- dog,3,
- dry,3,
- dye,3,
- ear,3,
- eat,3,
- eel,3,
- egg,3,
- elf,3,
- elk,3,
- emu,3,
- end,3,
- eye,3,
- fan,3,
- fat,3,
- fig,3,
- flu,3,
- fly,3,
- fog,3,
- fox,3,
- fry,3,
- fur,3,
- gag,3,
- gap,3,
- gas,3,
- gem,3,
- god,3,
- gru,3,
- gta,3,
- gum,3,
- gun,3,
- ham,3,
- hat,3,
- hen,3,
- hit,3,
- hoe,3,
- hop,3,
- hot,3,
- hug,3,
- hut,3,
- ice,3,
- imp,3,
- ink,3,
- ivy,3,
- jam,3,
- jar,3,
- jaw,3,
- job,3,
- joy,3,
- jug,3,
- keg,3,
- key,3,
- kfc,3,
- lan,3,
- lap,3,
- lid,3,
- log,3,
- low,3,
- mac,3,
- man,3,
- map,3,
- moo,3,
- mop,3,
- mow,3,
- mtv,3,
- mud,3,
- mug,3,
- nba,3,
- new,3,
- nfl,3,
- nod,3,
- nun,3,
- nut,3,
- oak,3,
- oar,3,
- oil,3,
- old,3,
- owl,3,
- pad,3,
- pan,3,
- paw,3,
- pen,3,
- pho,3,
- pie,3,
- pig,3,
- pin,3,
- pop,3,
- pot,3,
- pro,3,
- pub,3,
- pug,3,
- rag,3,
- ram,3,
- rap,3,
- rat,3,
- red,3,
- rib,3,
- rim,3,
- row,3,
- rug,3,
- run,3,
- sad,3,
- saw,3,
- sea,3,
- sew,3,
- shy,3,
- sip,3,
- sit,3,
- ski,3,
- sky,3,
- son,3,
- soy,3,
- spy,3,
- sun,3,
- suv,3,
- tax,3,
- tea,3,
- tee,3,
- tie,3,
- tip,3,
- toe,3,
- toy,3,
- tug,3,
- ufo,3,
- urn,3,
- usa,3,
- usb,3,
- van,3,
- war,3,
- wax,3,
- web,3,
- wet,3,
- wig,3,
- wok,3,
- wwe,3,
- zoo,3,
- abba,4,
- acdc,4,
- acid,4,
- acne,4,
- afro,4,
- ammo,4,
- arch,4,
- army,4,
- asia,4,
- atom,4,
- audi,4,
- aunt,4,
- baby,4,
- back,4,
- bait,4,
- bald,4,
- ball,4,
- band,4,
- bank,4,
- bark,4,
- barn,4,
- base,4,
- bass,4,
- bath,4,
- beak,4,
- bean,4,
- bear,4,
- beef,4,
- beer,4,
- beet,4,
- bell,4,
- belt,4,
- bend,4,
- bill,4,
- bird,4,
- bite,4,
- blow,4,
- blue,4,
- boar,4,
- boat,4,
- body,4,
- boil,4,
- bomb,4,
- bone,4,
- book,4,
- boss,4,
- bowl,4,
- buff,4,
- bull,4,
- bump,4,
- buoy,4,
- burn,4,
- burp,4,
- bush,4,
- cafe,4,
- cage,4,
- cake,4,
- calf,4,
- call,4,
- camp,4,
- cape,4,
- card,4,
- carp,4,
- cart,4,
- case,4,
- cash,4,
- cast,4,
- cave,4,
- cell,4,
- cent,4,
- chef,4,
- chew,4,
- chin,4,
- chip,4,
- chug,4,
- city,4,
- clam,4,
- clap,4,
- claw,4,
- clay,4,
- clip,4,
- club,4,
- coal,4,
- coat,4,
- code,4,
- coin,4,
- cola,4,
- cold,4,
- comb,4,
- cone,4,
- cook,4,
- copy,4,
- cord,4,
- cork,4,
- corn,4,
- crab,4,
- crow,4,
- cuba,4,
- cube,4,
- cure,4,
- cute,4,
- dark,4,
- dawn,4,
- dead,4,
- deaf,4,
- deep,4,
- deer,4,
- dent,4,
- derp,4,
- desk,4,
- dice,4,
- diet,4,
- dill,4,
- dirt,4,
- diva,4,
- dive,4,
- dock,4,
- doge,4,
- doll,4,
- dome,4,
- door,4,
- dora,4,
- dory,4,
- dots,4,
- dove,4,
- down,4,
- drag,4,
- drip,4,
- drug,4,
- drum,4,
- duck,4,
- duel,4,
- dumb,4,
- dump,4,
- dune,4,
- dusk,4,
- east,4,
- echo,4,
- edge,4,
- elmo,4,
- elsa,4,
- exam,4,
- exit,4,
- face,4,
- fall,4,
- farm,4,
- fart,4,
- fast,4,
- fern,4,
- fifa,4,
- file,4,
- finn,4,
- fire,4,
- fish,4,
- fizz,4,
- flag,4,
- flat,4,
- flea,4,
- flex,4,
- flop,4,
- flow,4,
- foam,4,
- foil,4,
- fold,4,
- food,4,
- foot,4,
- fork,4,
- fort,4,
- frog,4,
- fuel,4,
- full,4,
- game,4,
- gang,4,
- gasp,4,
- gate,4,
- germ,4,
- gift,4,
- girl,4,
- give,4,
- glow,4,
- glue,4,
- goal,4,
- goat,4,
- gold,4,
- golf,4,
- gong,4,
- good,4,
- grey,4,
- grid,4,
- grin,4,
- hail,4,
- hair,4,
- half,4,
- halo,4,
- hand,4,
- hard,4,
- harp,4,
- head,4,
- heat,4,
- heel,4,
- hell,4,
- herd,4,
- hero,4,
- high,4,
- hill,4,
- hive,4,
- hold,4,
- hole,4,
- hood,4,
- hoof,4,
- hook,4,
- horn,4,
- hose,4,
- hour,4,
- hulk,4,
- hurt,4,
- idea,4,
- ikea,4,
- ipad,4,
- iran,4,
- iron,4,
- itch,4,
- jail,4,
- jaws,4,
- jayz,4,
- jazz,4,
- jedi,4,
- jeep,4,
- jump,4,
- kick,4,
- kill,4,
- kilt,4,
- king,4,
- kiss,4,
- kite,4,
- kiwi,4,
- knee,4,
- knot,4,
- koto,4,
- lady,4,
- lake,4,
- lamb,4,
- lamp,4,
- lane,4,
- lava,4,
- lead,4,
- leaf,4,
- leak,4,
- leek,4,
- left,4,
- lego,4,
- legs,4,
- lens,4,
- liar,4,
- lily,4,
- lime,4,
- line,4,
- link,4,
- lion,4,
- lips,4,
- list,4,
- loaf,4,
- lock,4,
- logo,4,
- loki,4,
- long,4,
- look,4,
- loop,4,
- loot,4,
- loss,4,
- loud,4,
- love,4,
- luck,4,
- lung,4,
- lute,4,
- lynx,4,
- mace,4,
- maid,4,
- mail,4,
- mall,4,
- mane,4,
- mars,4,
- mask,4,
- math,4,
- maze,4,
- meal,4,
- mean,4,
- meat,4,
- melt,4,
- meme,4,
- menu,4,
- milk,4,
- mime,4,
- mint,4,
- mist,4,
- moat,4,
- mold,4,
- mole,4,
- monk,4,
- moon,4,
- moss,4,
- moth,4,
- mule,4,
- nail,4,
- nasa,4,
- navy,4,
- neck,4,
- nemo,4,
- nerd,4,
- nest,4,
- news,4,
- nike,4,
- noob,4,
- noon,4,
- nose,4,
- note,4,
- nuke,4,
- ogre,4,
- olaf,4,
- open,4,
- orca,4,
- oreo,4,
- oval,4,
- oven,4,
- page,4,
- pain,4,
- pair,4,
- palm,4,
- park,4,
- path,4,
- pear,4,
- peas,4,
- peru,4,
- pike,4,
- pill,4,
- pine,4,
- pink,4,
- pipe,4,
- plow,4,
- plug,4,
- poke,4,
- polo,4,
- pond,4,
- pong,4,
- pony,4,
- pool,4,
- poop,4,
- poor,4,
- pope,4,
- pork,4,
- port,4,
- pray,4,
- pull,4,
- puma,4,
- pump,4,
- punk,4,
- purr,4,
- push,4,
- race,4,
- raft,4,
- rage,4,
- rail,4,
- rain,4,
- rake,4,
- ramp,4,
- rare,4,
- read,4,
- reed,4,
- rest,4,
- rice,4,
- rich,4,
- rick,4,
- ring,4,
- riot,4,
- ripe,4,
- risk,4,
- road,4,
- robe,4,
- rock,4,
- roll,4,
- rome,4,
- roof,4,
- room,4,
- root,4,
- rope,4,
- rose,4,
- ruby,4,
- rune,4,
- safe,4,
- sale,4,
- salt,4,
- sand,4,
- save,4,
- scar,4,
- seal,4,
- seat,4,
- seed,4,
- shin,4,
- ship,4,
- shoe,4,
- shop,4,
- sick,4,
- sign,4,
- silo,4,
- sing,4,
- sink,4,
- skin,4,
- slam,4,
- sled,4,
- slip,4,
- slow,4,
- smug,4,
- snow,4,
- soap,4,
- soda,4,
- soil,4,
- song,4,
- soot,4,
- soup,4,
- spam,4,
- spin,4,
- spit,4,
- spot,4,
- spur,4,
- stab,4,
- star,4,
- stem,4,
- step,4,
- stew,4,
- stop,4,
- suck,4,
- suit,4,
- sumo,4,
- swag,4,
- swan,4,
- taco,4,
- tail,4,
- talk,4,
- tall,4,
- tank,4,
- tape,4,
- taxi,4,
- team,4,
- tear,4,
- tent,4,
- text,4,
- thin,4,
- thor,4,
- thug,4,
- tide,4,
- tile,4,
- tiny,4,
- tipi,4,
- tire,4,
- toad,4,
- tofu,4,
- tomb,4,
- tool,4,
- town,4,
- trap,4,
- tray,4,
- tree,4,
- trex,4,
- trip,4,
- tuba,4,
- tuna,4,
- turd,4,
- turn,4,
- tutu,4,
- twig,4,
- type,4,
- undo,4,
- vape,4,
- vase,4,
- veil,4,
- vein,4,
- vent,4,
- vest,4,
- vine,4,
- vise,4,
- vote,4,
- walk,4,
- wall,4,
- warm,4,
- wart,4,
- wash,4,
- wasp,4,
- wave,4,
- weak,4,
- well,4,
- west,4,
- whip,4,
- wife,4,
- wind,4,
- wine,4,
- wing,4,
- wink,4,
- wire,4,
- wish,4,
- wlan,4,
- wolf,4,
- wood,4,
- wool,4,
- work,4,
- worm,4,
- wrap,4,
- xbox,4,
- yarn,4,
- yawn,4,
- year,4,
- yeti,4,
- yoda,4,
- yoga,4,
- yolk,4,
- zeus,4,
- zoom,4,
- zuma,4,
- above,5,
- abyss,5,
- ac/dc,5,
- acorn,5,
- actor,5,
- adult,5,
- alarm,5,
- algae,5,
- alien,5,
- alley,5,
- alone,5,
- amber,5,
- angel,5,
- angry,5,
- anime,5,
- ankle,5,
- anvil,5,
- apple,5,
- apron,5,
- armor,5,
- arrow,5,
- attic,5,
- award,5,
- bacon,5,
- bagel,5,
- bambi,5,
- banjo,5,
- basil,5,
- beach,5,
- beans,5,
- beard,5,
- belly,5,
- below,5,
- bench,5,
- beret,5,
- bible,5,
- bidet,5,
- biker,5,
- bingo,5,
- birch,5,
- bison,5,
- black,5,
- blaze,5,
- blimp,5,
- blind,5,
- bling,5,
- block,5,
- blood,5,
- blush,5,
- board,5,
- bongo,5,
- boots,5,
- bored,5,
- boxer,5,
- braid,5,
- brain,5,
- brake,5,
- brand,5,
- brawl,5,
- bread,5,
- break,5,
- brick,5,
- bride,5,
- broom,5,
- brown,5,
- brush,5,
- bulge,5,
- bully,5,
- bunny,5,
- cabin,5,
- cable,5,
- camel,5,
- canal,5,
- candy,5,
- canoe,5,
- cargo,5,
- catan,5,
- cello,5,
- chain,5,
- chair,5,
- chalk,5,
- chaos,5,
- check,5,
- cheek,5,
- chess,5,
- chest,5,
- child,5,
- chile,5,
- chili,5,
- chime,5,
- china,5,
- chips,5,
- cigar,5,
- clamp,5,
- clean,5,
- clerk,5,
- click,5,
- cliff,5,
- climb,5,
- cloak,5,
- clock,5,
- clogs,5,
- close,5,
- cloth,5,
- cloud,5,
- clown,5,
- coach,5,
- coast,5,
- cobra,5,
- cocoa,5,
- coder,5,
- comet,5,
- coral,5,
- corgi,5,
- couch,5,
- court,5,
- cover,5,
- crack,5,
- crate,5,
- crawl,5,
- crazy,5,
- cream,5,
- creek,5,
- creep,5,
- crime,5,
- cross,5,
- crowd,5,
- crown,5,
- crumb,5,
- crust,5,
- cupid,5,
- curry,5,
- dairy,5,
- daisy,5,
- dance,5,
- darts,5,
- death,5,
- demon,5,
- devil,5,
- diary,5,
- dirty,5,
- dizzy,5,
- donut,5,
- dough,5,
- drain,5,
- drama,5,
- dream,5,
- dress,5,
- drift,5,
- drill,5,
- drink,5,
- drive,5,
- drool,5,
- drown,5,
- drunk,5,
- dryer,5,
- dumbo,5,
- dunes,5,
- dwarf,5,
- eagle,5,
- earth,5,
- egypt,5,
- elbow,5,
- elder,5,
- email,5,
- emoji,5,
- empty,5,
- error,5,
- fairy,5,
- fanta,5,
- fence,5,
- ferry,5,
- fever,5,
- field,5,
- flash,5,
- flask,5,
- float,5,
- flock,5,
- flood,5,
- floor,5,
- floss,5,
- flour,5,
- fluid,5,
- flush,5,
- flute,5,
- force,5,
- frame,5,
- fresh,5,
- fries,5,
- front,5,
- frown,5,
- fruit,5,
- fudge,5,
- funny,5,
- furry,5,
- gamer,5,
- gecko,5,
- genie,5,
- ghost,5,
- ghoul,5,
- giant,5,
- glass,5,
- globe,5,
- gloss,5,
- glove,5,
- gnome,5,
- golem,5,
- goofy,5,
- goose,5,
- gourd,5,
- grain,5,
- graph,5,
- grass,5,
- grave,5,
- gravy,5,
- greed,5,
- green,5,
- grill,5,
- grits,5,
- groan,5,
- groom,5,
- group,5,
- growl,5,
- guard,5,
- guiro,5,
- gummy,5,
- hades,5,
- hairy,5,
- happy,5,
- hatch,5,
- heart,5,
- hedge,5,
- heist,5,
- hijab,5,
- hippo,5,
- honda,5,
- honey,5,
- horse,5,
- hotel,5,
- house,5,
- hydra,5,
- hyena,5,
- idiot,5,
- india,5,
- intel,5,
- italy,5,
- japan,5,
- jeans,5,
- jello,5,
- jelly,5,
- jenga,5,
- joker,5,
- judge,5,
- juice,5,
- kayak,5,
- kazoo,5,
- kebab,5,
- kirby,5,
- kneel,5,
- knife,5,
- koala,5,
- label,5,
- ladle,5,
- laser,5,
- lasso,5,
- laugh,5,
- leash,5,
- leave,5,
- leech,5,
- lemon,5,
- lemur,5,
- level,5,
- light,5,
- limbo,5,
- liver,5,
- llama,5,
- lobby,5,
- lorry,5,
- loser,5,
- luigi,5,
- lunch,5,
- macho,5,
- mafia,5,
- magic,5,
- magma,5,
- mango,5,
- march,5,
- mario,5,
- match,5,
- mayor,5,
- medal,5,
- melon,5,
- merch,5,
- messy,5,
- metal,5,
- metro,5,
- miner,5,
- model,5,
- money,5,
- moose,5,
- morty,5,
- mouse,5,
- mouth,5,
- movie,5,
- muddy,5,
- mummy,5,
- music,5,
- nepal,5,
- niece,5,
- night,5,
- ninja,5,
- noise,5,
- north,5,
- notch,5,
- novel,5,
- nurse,5,
- oasis,5,
- ocean,5,
- olive,5,
- onion,5,
- opera,5,
- orbit,5,
- organ,5,
- otter,5,
- ozone,5,
- paint,5,
- panda,5,
- pants,5,
- paper,5,
- paris,5,
- party,5,
- pasta,5,
- patio,5,
- pause,5,
- peace,5,
- peach,5,
- pearl,5,
- pecan,5,
- pedal,5,
- penne,5,
- penny,5,
- pepsi,5,
- petal,5,
- phone,5,
- photo,5,
- piano,5,
- pidal,5,
- pidel,5,
- pilot,5,
- pinky,5,
- pixel,5,
- pizza,5,
- place,5,
- plane,5,
- plank,5,
- plant,5,
- plate,5,
- pluto,5,
- point,5,
- poker,5,
- poppy,5,
- porch,5,
- pound,5,
- power,5,
- prawn,5,
- press,5,
- price,5,
- prime,5,
- prism,5,
- prize,5,
- prune,5,
- pumba,5,
- punch,5,
- puppy,5,
- purse,5,
- pylon,5,
- queen,5,
- queue,5,
- quiet,5,
- quill,5,
- quilt,5,
- radar,5,
- radio,5,
- ramen,5,
- razor,5,
- reeds,5,
- rifle,5,
- right,5,
- river,5,
- robin,5,
- robot,5,
- rodeo,5,
- rolex,5,
- rough,5,
- round,5,
- royal,5,
- ruler,5,
- salad,5,
- salsa,5,
- santa,5,
- satan,5,
- sauce,5,
- sauna,5,
- scale,5,
- scarf,5,
- scary,5,
- scent,5,
- scoop,5,
- score,5,
- screw,5,
- scuba,5,
- seoul,5,
- sewer,5,
- shake,5,
- shape,5,
- share,5,
- shark,5,
- shave,5,
- sheep,5,
- sheet,5,
- shelf,5,
- shell,5,
- shirt,5,
- shock,5,
- shoot,5,
- short,5,
- shout,5,
- shrek,5,
- shrew,5,
- shrub,5,
- shrug,5,
- siren,5,
- sitar,5,
- skirt,5,
- skull,5,
- skunk,5,
- skype,5,
- slave,5,
- sleep,5,
- slide,5,
- slime,5,
- slope,5,
- sloth,5,
- slump,5,
- smart,5,
- smell,5,
- smile,5,
- smoke,5,
- snack,5,
- snail,5,
- snake,5,
- socks,5,
- sonic,5,
- sound,5,
- south,5,
- space,5,
- spade,5,
- spain,5,
- spank,5,
- spark,5,
- spear,5,
- speed,5,
- spend,5,
- spicy,5,
- spill,5,
- spine,5,
- spool,5,
- spoon,5,
- spore,5,
- spray,5,
- squat,5,
- squid,5,
- staff,5,
- stage,5,
- stain,5,
- stamp,5,
- stand,5,
- start,5,
- steak,5,
- steal,5,
- steam,5,
- stick,5,
- sting,5,
- stink,5,
- stock,5,
- stone,5,
- stool,5,
- store,5,
- stork,5,
- storm,5,
- stove,5,
- straw,5,
- study,5,
- stump,5,
- sugar,5,
- sunny,5,
- sushi,5,
- swamp,5,
- swarm,5,
- sweat,5,
- swing,5,
- swobd,5,
- sword,5,
- t-rex,5,
- table,5,
- tails,5,
- taser,5,
- tesla,5,
- texas,5,
- thick,5,
- thief,5,
- thigh,5,
- think,5,
- thorn,5,
- thumb,5,
- tibet,5,
- tiger,5,
- tired,5,
- title,5,
- toast,5,
- tokyo,5,
- tooth,5,
- torch,5,
- torso,5,
- totem,5,
- touch,5,
- towel,5,
- tower,5,
- toxic,5,
- track,5,
- trade,5,
- trail,5,
- train,5,
- trash,5,
- trend,5,
- troll,5,
- truck,5,
- trump,5,
- trunk,5,
- tulip,5,
- tumor,5,
- twins,5,
- udder,5,
- uluru,5,
- uncle,5,
- vault,5,
- venus,5,
- video,5,
- vinyl,5,
- viola,5,
- virus,5,
- vodka,5,
- vomit,5,
- w-lan,5,
- waist,5,
- wales,5,
- wario,5,
- watch,5,
- water,5,
- whale,5,
- wheat,5,
- wheel,5,
- whisk,5,
- white,5,
- whole,5,
- wifel,5,
- witch,5,
- woman,5,
- world,5,
- wound,5,
- wrist,5,
- x-ray,5,
- xerox,5,
- yacht,5,
- yo-yo,5,
- yoshi,5,
- young,5,
- zebra,5,
- zelda,5,
- zorro,5,
- abacus,6,
- action,6,
- adidas,6,
- africa,6,
- airbag,6,
- alaska,6,
- almond,6,
- alpaca,6,
- amazon,6,
- anchor,6,
- anubis,6,
- archer,6,
- arctic,6,
- armpit,6,
- artery,6,
- artist,6,
- athena,6,
- athens,6,
- author,6,
- autumn,6,
- baboon,6,
- badger,6,
- bakery,6,
- ballet,6,
- bamboo,6,
- banana,6,
- banker,6,
- banner,6,
- barber,6,
- barrel,6,
- basket,6,
- batman,6,
- battle,6,
- beanie,6,
- beaver,6,
- beetle,6,
- beggar,6,
- bellow,6,
- berlin,6,
- betray,6,
- biceps,6,
- bikini,6,
- bleach,6,
- blouse,6,
- bonnet,6,
- bonsai,6,
- booger,6,
- border,6,
- bottle,6,
- bottom,6,
- bounce,6,
- bowser,6,
- boxcar,6,
- boxing,6,
- braces,6,
- branch,6,
- brazil,6,
- breath,6,
- bridge,6,
- broken,6,
- bronze,6,
- bruise,6,
- bubble,6,
- bucket,6,
- buddha,6,
- buffer,6,
- buffet,6,
- bullet,6,
- bumper,6,
- bunker,6,
- butler,6,
- butter,6,
- button,6,
- cactus,6,
- camera,6,
- canada,6,
- canary,6,
- cancer,6,
- candle,6,
- cannon,6,
- canyon,6,
- carbon,6,
- carpet,6,
- carrot,6,
- cashew,6,
- casino,6,
- castle,6,
- casual,6,
- cavern,6,
- caviar,6,
- cement,6,
- center,6,
- cereal,6,
- cheeks,6,
- cheers,6,
- cheese,6,
- cherry,6,
- chorus,6,
- chrome,6,
- church,6,
- cicada,6,
- cinema,6,
- circle,6,
- circus,6,
- clinic,6,
- closed,6,
- closet,6,
- cloudy,6,
- clover,6,
- cobweb,6,
- cocoon,6,
- coffee,6,
- coffin,6,
- collar,6,
- comedy,6,
- cookie,6,
- copper,6,
- corner,6,
- corpse,6,
- cotton,6,
- couple,6,
- cousin,6,
- cowboy,6,
- coyote,6,
- cradle,6,
- crayon,6,
- credit,6,
- cringe,6,
- cruise,6,
- crunch,6,
- cuckoo,6,
- cyborg,6,
- cymbal,6,
- dagger,6,
- damage,6,
- danish,6,
- dantdm,6,
- darwin,6,
- degree,6,
- desert,6,
- dexter,6,
- diaper,6,
- dinner,6,
- dishes,6,
- doctor,6,
- dollar,6,
- donkey,6,
- double,6,
- dragon,6,
- drawer,6,
- driver,6,
- earwax,6,
- easter,6,
- eclair,6,
- embers,6,
- eminem,6,
- engine,6,
- eraser,6,
- eskimo,6,
- europe,6,
- eyelid,6,
- fabric,6,
- facade,6,
- falcon,6,
- family,6,
- farmer,6,
- father,6,
- faucet,6,
- ferret,6,
- filter,6,
- finger,6,
- flight,6,
- flower,6,
- folder,6,
- follow,6,
- forest,6,
- formal,6,
- fossil,6,
- france,6,
- fridge,6,
- friend,6,
- fungus,6,
- future,6,
- galaxy,6,
- gandhi,6,
- garage,6,
- garden,6,
- garlic,6,
- gender,6,
- genius,6,
- gentle,6,
- geyser,6,
- ginger,6,
- glider,6,
- gloves,6,
- goalie,6,
- goatee,6,
- goblin,6,
- google,6,
- gopher,6,
- grapes,6,
- gravel,6,
- grease,6,
- greece,6,
- grinch,6,
- grumpy,6,
- guitar,6,
- gutter,6,
- hacker,6,
- hammer,6,
- handle,6,
- hanger,6,
- harbor,6,
- hawaii,6,
- hazard,6,
- health,6,
- hearse,6,
- hearth,6,
- heaven,6,
- height,6,
- helium,6,
- helmet,6,
- hermes,6,
- hermit,6,
- hiking,6,
- hippie,6,
- hobbit,6,
- hockey,6,
- hoodie,6,
- hunger,6,
- hunter,6,
- hurdle,6,
- icicle,6,
- ignite,6,
- iguana,6,
- impact,6,
- impale,6,
- injury,6,
- insane,6,
- insect,6,
- inside,6,
- intern,6,
- iphone,6,
- island,6,
- israel,6,
- jacket,6,
- jaguar,6,
- jersey,6,
- jester,6,
- juggle,6,
- juicer,6,
- jungle,6,
- karate,6,
- katana,6,
- kermit,6,
- kettle,6,
- keypad,6,
- kidney,6,
- kitten,6,
- knight,6,
- kraken,6,
- ladder,6,
- laptop,6,
- lawyer,6,
- leader,6,
- lizard,6,
- locker,6,
- london,6,
- lotion,6,
- lounge,6,
- louvre,6,
- luxury,6,
- lyrics,6,
- magnet,6,
- makeup,6,
- mallet,6,
- mantis,6,
- manure,6,
- marble,6,
- marker,6,
- market,6,
- marmot,6,
- mascot,6,
- meadow,6,
- median,6,
- medusa,6,
- memory,6,
- meteor,6,
- mexico,6,
- middle,6,
- minion,6,
- minute,6,
- mirage,6,
- mirror,6,
- modern,6,
- mohawk,6,
- monday,6,
- monkey,6,
- moscow,6,
- mother,6,
- mozart,6,
- muffin,6,
- muscle,6,
- museum,6,
- musket,6,
- nachos,6,
- napkin,6,
- narnia,6,
- nascar,6,
- nature,6,
- needle,6,
- nephew,6,
- nether,6,
- nickel,6,
- noodle,6,
- norway,6,
- nugget,6,
- nutmeg,6,
- obelix,6,
- ocelot,6,
- office,6,
- omelet,6,
- online,6,
- orange,6,
- orchid,6,
- outlaw,6,
- outlet,6,
- oxygen,6,
- oyster,6,
- pacman,6,
- paddle,6,
- palace,6,
- panini,6,
- pantry,6,
- papaya,6,
- parade,6,
- parrot,6,
- pastry,6,
- paypal,6,
- peanut,6,
- pebble,6,
- pencil,6,
- pepper,6,
- period,6,
- person,6,
- pickle,6,
- picnic,6,
- pigeon,6,
- pigsty,6,
- pillar,6,
- pillow,6,
- pimple,6,
- pinata,6,
- pirate,6,
- pistol,6,
- piston,6,
- plague,6,
- plains,6,
- planet,6,
- player,6,
- pocket,6,
- poison,6,
- poland,6,
- police,6,
- pollen,6,
- poodle,6,
- popeye,6,
- portal,6,
- possum,6,
- poster,6,
- potato,6,
- potion,6,
- powder,6,
- preach,6,
- priest,6,
- prince,6,
- prison,6,
- profit,6,
- puddle,6,
- puffin,6,
- pulley,6,
- puppet,6,
- purity,6,
- purple,6,
- puzzle,6,
- python,6,
- quiche,6,
- quokka,6,
- radish,6,
- raisin,6,
- rapier,6,
- rapper,6,
- rattle,6,
- reaper,6,
- recipe,6,
- record,6,
- reddit,6,
- remote,6,
- repeat,6,
- resort,6,
- retail,6,
- rewind,6,
- ribbon,6,
- robber,6,
- roblox,6,
- rocket,6,
- rotten,6,
- rubber,6,
- russia,6,
- saddle,6,
- safari,6,
- sailor,6,
- salami,6,
- saliva,6,
- salmon,6,
- salute,6,
- saturn,6,
- scales,6,
- school,6,
- scream,6,
- screen,6,
- scroll,6,
- scythe,6,
- search,6,
- season,6,
- second,6,
- seesaw,6,
- segway,6,
- selfie,6,
- sensei,6,
- sensor,6,
- serbia,6,
- server,6,
- shades,6,
- shadow,6,
- shaggy,6,
- shield,6,
- shogun,6,
- shorts,6,
- shovel,6,
- shower,6,
- shrimp,6,
- signal,6,
- silver,6,
- skates,6,
- skinny,6,
- sledge,6,
- sleeve,6,
- slinky,6,
- sneeze,6,
- sniper,6,
- snoopy,6,
- soccer,6,
- socket,6,
- speech,6,
- sphinx,6,
- spider,6,
- spiral,6,
- sponge,6,
- sports,6,
- spread,6,
- spring,6,
- sprite,6,
- sprout,6,
- square,6,
- squash,6,
- squeal,6,
- stable,6,
- stalin,6,
- statue,6,
- stereo,6,
- stitch,6,
- stoned,6,
- street,6,
- stress,6,
- strong,6,
- studio,6,
- stylus,6,
- subway,6,
- sudoku,6,
- summer,6,
- sweden,6,
- switch,6,
- tablet,6,
- tailor,6,
- tampon,6,
- target,6,
- tarzan,6,
- tattoo,6,
- teapot,6,
- tennis,6,
- tetris,6,
- thanos,6,
- thirst,6,
- throat,6,
- throne,6,
- ticket,6,
- tickle,6,
- tiktok,6,
- tinsel,6,
- tissue,6,
- toilet,6,
- tomato,6,
- tongue,6,
- totoro,6,
- toucan,6,
- toyota,6,
- tripod,6,
- trophy,6,
- tundra,6,
- tunnel,6,
- turban,6,
- turkey,6,
- turnip,6,
- turtle,6,
- tuxedo,6,
- tweety,6,
- twitch,6,
- uganda,6,
- uranus,6,
- vacuum,6,
- valley,6,
- vanish,6,
- vector,6,
- victim,6,
- violet,6,
- violin,6,
- vision,6,
- volume,6,
- voodoo,6,
- vortex,6,
- waffle,6,
- waiter,6,
- wall-e,6,
- walnut,6,
- walrus,6,
- wasabi,6,
- wealth,6,
- weapon,6,
- weasel,6,
- weight,6,
- welder,6,
- wiggle,6,
- willow,6,
- window,6,
- winner,6,
- winter,6,
- wizard,6,
- wreath,6,
- wrench,6,
- writer,6,
- yellow,6,
- yogurt,6,
- zigzag,6,
- zipper,6,
- zombie,6,
- actress,7,
- airpods,7,
- airport,7,
- airship,7,
- aladdin,7,
- alcohol,7,
- algeria,7,
- allergy,7,
- america,7,
- anatomy,7,
- anchovy,7,
- ancient,7,
- android,7,
- antenna,7,
- anthill,7,
- antlers,7,
- apricot,7,
- aquaman,7,
- ashtray,7,
- assault,7,
- asterix,7,
- athlete,7,
- austria,7,
- average,7,
- avocado,7,
- bahamas,7,
- baklava,7,
- balance,7,
- balcony,7,
- balloon,7,
- bandage,7,
- bandaid,7,
- bandana,7,
- barcode,7,
- barrier,7,
- bathtub,7,
- battery,7,
- bayonet,7,
- bazooka,7,
- beatbox,7,
- bed bug,7,
- bedroom,7,
- bedtime,7,
- beijing,7,
- bicycle,7,
- big ben,7,
- bigfoot,7,
- biology,7,
- biscuit,7,
- bitcoin,7,
- blanket,7,
- blender,7,
- blossom,7,
- blow up,7,
- bobsled,7,
- booklet,7,
- boulder,7,
- bouncer,7,
- bouquet,7,
- bow tie,7,
- bowling,7,
- braille,7,
- britain,7,
- brownie,7,
- buffalo,7,
- burglar,7,
- burrito,7,
- butcher,7,
- cabbage,7,
- cabinet,7,
- camping,7,
- capsule,7,
- captain,7,
- capture,7,
- caramel,7,
- cartoon,7,
- cashier,7,
- catalog,7,
- catfish,7,
- caveman,7,
- ceiling,7,
- centaur,7,
- charger,7,
- cheetah,7,
- cheetos,7,
- chicken,7,
- chimney,7,
- circuit,7,
- climber,7,
- clothes,7,
- coaster,7,
- coconut,7,
- college,7,
- cologne,7,
- company,7,
- compass,7,
- concert,7,
- console,7,
- cookout,7,
- copycat,7,
- corrida,7,
- country,7,
- cowbell,7,
- cracker,7,
- creeper,7,
- cricket,7,
- croatia,7,
- crowbar,7,
- crystal,7,
- cupcake,7,
- curtain,7,
- cushion,7,
- cyclist,7,
- defense,7,
- denmark,7,
- dentist,7,
- dessert,7,
- diagram,7,
- diamond,7,
- diploma,7,
- discord,7,
- disease,7,
- dishrag,7,
- display,7,
- diverge,7,
- divorce,7,
- dogfish,7,
- dolphin,7,
- doormat,7,
- doritos,7,
- dracula,7,
- droplet,7,
- drought,7,
- earbuds,7,
- echidna,7,
- eclipse,7,
- ellipse,7,
- emerald,7,
- england,7,
- equator,7,
- evening,7,
- excited,7,
- exhaust,7,
- explode,7,
- extinct,7,
- eyebrow,7,
- eyelash,7,
- factory,7,
- failure,7,
- falafel,7,
- fallout,7,
- feather,7,
- fencing,7,
- ferrari,7,
- finland,7,
- firefly,7,
- firefox,7,
- fireman,7,
- flicker,7,
- florida,7,
- florist,7,
- forearm,7,
- fortune,7,
- freezer,7,
- frisbee,7,
- frogger,7,
- funeral,7,
- furious,7,
- furnace,7,
- gallery,7,
- gandalf,7,
- garbage,7,
- germany,7,
- giraffe,7,
- give up,7,
- glacier,7,
- glasses,7,
- glitter,7,
- goddess,7,
- gondola,7,
- gorilla,7,
- gravity,7,
- grenade,7,
- griffin,7,
- grow up,7,
- gumball,7,
- haircut,7,
- hallway,7,
- hammock,7,
- hamster,7,
- hangman,7,
- harpoon,7,
- hashtag,7,
- haunted,7,
- heading,7,
- healthy,7,
- hexagon,7,
- highway,7,
- hip hop,7,
- holiday,7,
- horizon,7,
- hot dog,7,
- hungary,7,
- husband,7,
- iceberg,7,
- ireland,7,
- janitor,7,
- jealous,7,
- jet ski,7,
- journey,7,
- jupiter,7,
- karaoke,7,
- kendama,7,
- ketchup,7,
- kingdom,7,
- kitchen,7,
- knuckle,7,
- koolaid,7,
- kung fu,7,
- ladybug,7,
- lantern,7,
- lasagna,7,
- laundry,7,
- leather,7,
- leopard,7,
- lettuce,7,
- library,7,
- license,7,
- lighter,7,
- lilypad,7,
- loading,7,
- lobster,7,
- lottery,7,
- luggage,7,
- machete,7,
- machine,7,
- mailbox,7,
- mailman,7,
- mammoth,7,
- manatee,7,
- manhole,7,
- mansion,7,
- maracas,7,
- marimba,7,
- marines,7,
- mascara,7,
- massage,7,
- measure,7,
- meerkat,7,
- mercury,7,
- mermaid,7,
- message,7,
- milkman,7,
- minivan,7,
- missile,7,
- monocle,7,
- monster,7,
- morning,7,
- morocco,7,
- mr bean,7,
- mugshot,7,
- mustard,7,
- narwhal,7,
- neptune,7,
- netflix,7,
- network,7,
- notepad,7,
- nothing,7,
- nuclear,7,
- nutella,7,
- oatmeal,7,
- ocarina,7,
- octagon,7,
- octopus,7,
- offline,7,
- orchard,7,
- origami,7,
- ostrich,7,
- outside,7,
- pac-man,7,
- pacific,7,
- package,7,
- pajamas,7,
- palette,7,
- pancake,7,
- panther,7,
- parasol,7,
- parents,7,
- parking,7,
- parsley,7,
- pasture,7,
- patient,7,
- patrick,7,
- patriot,7,
- peacock,7,
- peasant,7,
- pegasus,7,
- pelican,7,
- penguin,7,
- perfume,7,
- pharaoh,7,
- phoenix,7,
- pianist,7,
- picasso,7,
- pickaxe,7,
- pikachu,7,
- pinball,7,
- pitcher,7,
- plastic,7,
- plumber,7,
- plunger,7,
- pokemon,7,
- polygon,7,
- pompeii,7,
- popcorn,7,
- popular,7,
- porsche,7,
- pothole,7,
- pottery,7,
- poutine,7,
- present,7,
- pretzel,7,
- printer,7,
- protect,7,
- protein,7,
- protest,7,
- provoke,7,
- puberty,7,
- pudding,7,
- pumpkin,7,
- pyramid,7,
- quarter,7,
- raccoon,7,
- racecar,7,
- rainbow,7,
- ravioli,7,
- reality,7,
- receipt,7,
- red sea,7,
- referee,7,
- reptile,7,
- rhombus,7,
- romance,7,
- romania,7,
- rooster,7,
- samsung,7,
- samurai,7,
- sandals,7,
- sandbox,7,
- sausage,7,
- scalpel,7,
- science,7,
- scratch,7,
- seafood,7,
- seagull,7,
- seasick,7,
- seaweed,7,
- section,7,
- seizure,7,
- seltzer,7,
- shallow,7,
- shampoo,7,
- sheriff,7,
- shoebox,7,
- shooter,7,
- shotgun,7,
- siberia,7,
- silence,7,
- skyline,7,
- snowman,7,
- soldier,7,
- somalia,7,
- spatula,7,
- speaker,7,
- spinach,7,
- spoiler,7,
- spotify,7,
- stadium,7,
- stapler,7,
- sticker,7,
- stomach,7,
- stubble,7,
- student,7,
- suburbs,7,
- sunburn,7,
- sunrise,7,
- surface,7,
- surgeon,7,
- sweater,7,
- swimmer,7,
- t-shirt,7,
- tadpole,7,
- tangled,7,
- tea bag,7,
- teacher,7,
- theatre,7,
- thunder,7,
- timpani,7,
- tinfoil,7,
- titanic,7,
- toaster,7,
- toddler,7,
- toenail,7,
- tom cat,7,
- toolbox,7,
- top hat,7,
- tornado,7,
- torpedo,7,
- tourist,7,
- tractor,7,
- traffic,7,
- trailer,7,
- trigger,7,
- trumpet,7,
- tsunami,7,
- tugboat,7,
- twitter,7,
- ukraine,7,
- ukulele,7,
- unibrow,7,
- unicorn,7,
- uniform,7,
- upgrade,7,
- vaccine,7,
- vampire,7,
- vanilla,7,
- vatican,7,
- vehicle,7,
- victory,7,
- vietnam,7,
- village,7,
- villain,7,
- vinegar,7,
- vitamin,7,
- vlogger,7,
- volcano,7,
- vulture,7,
- wake up,7,
- waluigi,7,
- warning,7,
- warrior,7,
- weather,7,
- website,7,
- wedding,7,
- western,7,
- wetsuit,7,
- whiskey,7,
- whisper,7,
- whistle,7,
- windows,7,
- wingnut,7,
- witness,7,
- workout,7,
- woutube,7,
- wrinkle,7,
- yahtzee,7,
- youtube,7,
- zipline,7,
- aardvark,8,
- abstract,8,
- accident,8,
- addition,8,
- adorable,8,
- air horn,8,
- aircraft,8,
- airplane,8,
- alphabet,8,
- aluminum,8,
- among us,8,
- anaconda,8,
- anteater,8,
- antelope,8,
- applause,8,
- aquarium,8,
- armchair,8,
- assassin,8,
- asterisk,8,
- asteroid,8,
- atlantic,8,
- atlantis,8,
- audience,8,
- bachelor,8,
- backbone,8,
- backflip,8,
- backpack,8,
- bagpipes,8,
- baguette,8,
- ballroom,8,
- band-aid,8,
- bankrupt,8,
- barbecue,8,
- baseball,8,
- basement,8,
- bathrobe,8,
- bathroom,8,
- bean bag,8,
- birdcage,8,
- birthday,8,
- blizzard,8,
- blowfish,8,
- bob ross,8,
- bookmark,8,
- bracelet,8,
- broadway,8,
- broccoli,8,
- brunette,8,
- building,8,
- bullseye,8,
- bunk bed,8,
- bus stop,8,
- calamari,8,
- calendar,8,
- campfire,8,
- canister,8,
- car wash,8,
- cardinal,8,
- carnival,8,
- catapult,8,
- cauldron,8,
- cerberus,8,
- chainsaw,8,
- champion,8,
- checkers,8,
- chemical,8,
- chestnut,8,
- chipmunk,8,
- chlorine,8,
- cinnamon,8,
- clarinet,8,
- cocktail,8,
- colander,8,
- collapse,8,
- colombia,8,
- comedian,8,
- complete,8,
- composer,8,
- computer,8,
- concrete,8,
- conflict,8,
- confused,8,
- contrast,8,
- converge,8,
- corn dog,8,
- crayfish,8,
- crescent,8,
- criminal,8,
- crossbow,8,
- crucible,8,
- cucumber,8,
- cupboard,8,
- currency,8,
- customer,8,
- cylinder,8,
- dandruff,8,
- daughter,8,
- daydream,8,
- dead sea,8,
- deadpool,8,
- defender,8,
- delivery,8,
- detonate,8,
- diagonal,8,
- dinosaur,8,
- disabled,8,
- disagree,8,
- disaster,8,
- distance,8,
- division,8,
- doghouse,8,
- dominoes,8,
- doorknob,8,
- download,8,
- dressing,8,
- driveway,8,
- drum kit,8,
- dumbbell,8,
- dumpling,8,
- dynamite,8,
- earmuffs,8,
- egg hunt,8,
- eggplant,8,
- einstein,8,
- election,8,
- elephant,8,
- elevator,8,
- employer,8,
- engineer,8,
- envelope,8,
- equation,8,
- espresso,8,
- exercise,8,
- explorer,8,
- eyeliner,8,
- eyepatch,8,
- fabulous,8,
- facebook,8,
- festival,8,
- figurine,8,
- fireball,8,
- fireside,8,
- firework,8,
- flagpole,8,
- flamingo,8,
- football,8,
- footrest,8,
- forehead,8,
- fortress,8,
- fountain,8,
- freckles,8,
- frosting,8,
- game boy,8,
- gangrene,8,
- gangster,8,
- gardener,8,
- garfield,8,
- gas mask,8,
- gasoline,8,
- godzilla,8,
- goldfish,8,
- graffiti,8,
- graphite,8,
- habanero,8,
- hair gel,8,
- hairband,8,
- handicap,8,
- hard hat,8,
- hay bale,8,
- hazelnut,8,
- headache,8,
- headband,8,
- hedgehog,8,
- hercules,8,
- homeless,8,
- homework,8,
- hospital,8,
- impostor,8,
- industry,8,
- infinite,8,
- insomnia,8,
- internet,8,
- invasion,8,
- iron man,8,
- jalapeno,8,
- jet pack,8,
- kangaroo,8,
- keyboard,8,
- knuckles,8,
- kombucha,8,
- kool-aid,8,
- lacrosse,8,
- landfill,8,
- landlord,8,
- language,8,
- lavender,8,
- leggings,8,
- lemonade,8,
- levitate,8,
- licorice,8,
- lip balm,8,
- lipstick,8,
- lollipop,8,
- macaroni,8,
- magazine,8,
- magician,8,
- majority,8,
- manicure,8,
- marathon,8,
- marigold,8,
- matchbox,8,
- mattress,8,
- meatball,8,
- meatloaf,8,
- mechanic,8,
- mercedes,8,
- meridian,8,
- midnight,8,
- military,8,
- minfgocf,8,
- minfgolf,8,
- miniclip,8,
- minigolf,8,
- minority,8,
- minotaur,8,
- mosquito,8,
- mothball,8,
- mountain,8,
- mousepad,8,
- mr. bean,8,
- murderer,8,
- mushroom,8,
- mustache,8,
- napoleon,8,
- necklace,8,
- negative,8,
- neighbor,8,
- new year,8,
- new york,8,
- nintendo,8,
- nitrogen,8,
- nostrils,8,
- notebook,8,
- nutshell,8,
- obsidian,8,
- olympics,8,
- ornament,8,
- overalls,8,
- painting,8,
- pakistan,8,
- pandemic,8,
- panpipes,8,
- parakeet,8,
- parallel,8,
- parmesan,8,
- passport,8,
- password,8,
- pavement,8,
- pedicure,8,
- pendulum,8,
- pentagon,8,
- pet food,8,
- pet shop,8,
- pharmacy,8,
- pinwheel,8,
- plankton,8,
- platform,8,
- platypus,8,
- ponytail,8,
- popsicle,8,
- portrait,8,
- portugal,8,
- poseidon,8,
- positive,8,
- postcard,8,
- pregnant,8,
- princess,8,
- pringles,8,
- prisoner,8,
- question,8,
- railroad,8,
- raincoat,8,
- raindrop,8,
- rapunzel,8,
- recorder,8,
- redditor,8,
- redstone,8,
- reindeer,8,
- religion,8,
- reporter,8,
- revolver,8,
- ringtone,8,
- roadkill,8,
- rockstar,8,
- sailboat,8,
- sandwich,8,
- sapphire,8,
- sardines,8,
- savannah,8,
- scissors,8,
- scorpion,8,
- scotland,8,
- scrabble,8,
- scribble,8,
- sea lion,8,
- seahorse,8,
- seashell,8,
- security,8,
- shepherd,8,
- shoehorn,8,
- shoelace,8,
- shopping,8,
- shoulder,8,
- sidewalk,8,
- sim card,8,
- six pack,8,
- skeleton,8,
- ski jump,8,
- ski lift,8,
- skittles,8,
- skrillex,8,
- slippers,8,
- slippery,8,
- slovakia,8,
- snapchat,8,
- sneakers,8,
- snowball,8,
- sombrero,8,
- sparkles,8,
- squirrel,8,
- sriracha,8,
- starfish,8,
- stingray,8,
- stocking,8,
- streamer,8,
- strength,8,
- stroller,8,
- suitcase,8,
- sunshade,8,
- sunshine,8,
- superman,8,
- survivor,8,
- swelling,8,
- swimsuit,8,
- symmetry,8,
- symphony,8,
- tabletop,8,
- take off,8,
- tapeworm,8,
- teaspoon,8,
- teenager,8,
- tentacle,8,
- terraria,8,
- thailand,8,
- the rock,8,
- theremin,8,
- tiramisu,8,
- tortilla,8,
- tortoise,8,
- trapdoor,8,
- traveler,8,
- treasure,8,
- triangle,8,
- tricycle,8,
- triplets,8,
- trombone,8,
- tropical,8,
- trousers,8,
- umbrella,8,
- unicycle,8,
- universe,8,
- upstairs,8,
- vacation,8,
- van gogh,8,
- venomous,8,
- vertical,8,
- violence,8,
- vuvuzela,8,
- weakling,8,
- werewolf,8,
- whatsapp,8,
- whiskers,8,
- windmill,8,
- windsock,8,
- wireless,8,
- wrapping,8,
- wrestler,8,
- yearbook,8,
- youtuber,8,
- zeppelin,8,
- zimbabwe,8,
- zucchini,8,
- abandoned,9,
- accordion,9,
- addiction,9,
- afterlife,9,
- afternoon,9,
- agreement,9,
- albatross,9,
- alchemist,9,
- alligator,9,
- ambulance,9,
- amsterdam,9,
- animation,9,
- antivirus,9,
- apartment,9,
- apple pie,9,
- architect,9,
- argentina,9,
- armadillo,9,
- arthritis,9,
- artichoke,9,
- astronaut,9,
- asymmetry,9,
- australia,9,
- autograph,9,
- avalanche,9,
- back pain,9,
- back seat,9,
- badminton,9,
- ballerina,9,
- barbarian,9,
- barcelona,9,
- bartender,9,
- beanstalk,9,
- bear trap,9,
- bed sheet,9,
- beethoven,9,
- billiards,9,
- bird bath,9,
- birdhouse,9,
- blindfold,9,
- blowtorch,9,
- blueberry,9,
- bodyguard,9,
- bomberman,9,
- bookshelf,9,
- boomerang,9,
- boyfriend,9,
- brad pitt,9,
- brainwash,9,
- breakfast,9,
- broadcast,9,
- bruce lee,9,
- bug spray,9,
- bulldozer,9,
- butterfly,9,
- cable car,9,
- cameraman,9,
- capricorn,9,
- cardboard,9,
- carnivore,9,
- carpenter,9,
- casserole,9,
- cat woman,9,
- cathedral,9,
- celebrate,9,
- celebrity,9,
- centipede,9,
- chameleon,9,
- champagne,9,
- chapstick,9,
- chemistry,9,
- chevrolet,9,
- chewbacca,9,
- chihuahua,9,
- chinatown,9,
- chocolate,9,
- christmas,9,
- cigarette,9,
- classroom,9,
- clickbait,9,
- clownfish,9,
- coca cola,9,
- cockroach,9,
- colosseum,9,
- commander,9,
- communism,9,
- community,9,
- concealer,9,
- condiment,9,
- conductor,9,
- continent,9,
- corkscrew,9,
- cornfield,9,
- countdown,9,
- crab cake,9,
- cranberry,9,
- crocodile,9,
- croissant,9,
- crosswalk,9,
- dalmatian,9,
- dandelion,9,
- dashboard,9,
- delicious,9,
- deodorant,9,
- depressed,9,
- desperate,9,
- detective,9,
- detergent,9,
- direction,9,
- dish soap,9,
- dispenser,9,
- dollhouse,9,
- dr watson,9,
- dr. seuss,9,
- dragonfly,9,
- drum roll,9,
- duct tape,9,
- elon musk,9,
- emergency,9,
- escalator,9,
- evaporate,9,
- evolution,9,
- excalibur,9,
- excavator,9,
- exhausted,9,
- exit ramp,9,
- explosion,9,
- extravert,9,
- eyeshadow,9,
- fast food,9,
- filmmaker,9,
- fingertip,9,
- fire hose,9,
- firehouse,9,
- fireplace,9,
- fireproof,9,
- fish bowl,9,
- fisherman,9,
- fist bump,9,
- fried egg,9,
- frostbite,9,
- full moon,9,
- furniture,9,
- generator,9,
- gentleman,9,
- geography,9,
- gladiator,9,
- glowstick,9,
- godfather,9,
- golf cart,9,
- golf club,9,
- graveyard,9,
- greenland,9,
- guacamole,9,
- gunpowder,9,
- hairbrush,9,
- hairspray,9,
- hamburger,9,
- handcuffs,9,
- handshake,9,
- handstand,9,
- harmonica,9,
- harvester,9,
- headboard,9,
- hibernate,9,
- high five,9,
- hilarious,9,
- hollywood,9,
- honeycomb,9,
- honeymoon,9,
- hopscotch,9,
- horseshoe,9,
- horsewhip,9,
- hot sauce,9,
- hourglass,9,
- hula hoop,9,
- hypnotize,9,
- ice cream,9,
- incognito,9,
- indonesia,9,
- injection,9,
- instagram,9,
- interview,9,
- introvert,9,
- invention,9,
- invisible,9,
- jellyfish,9,
- joe biden,9,
- john cena,9,
- jump rope,9,
- junk food,9,
- king kong,9,
- lady gaga,9,
- landscape,9,
- landslide,9,
- las vegas,9,
- lava lamp,9,
- librarian,9,
- life buoy,9,
- lightbulb,9,
- lightning,9,
- limousine,9,
- lion king,9,
- loch ness,9,
- log flume,9,
- long coat,9,
- magnifier,9,
- mannequin,9,
- margarine,9,
- marmalade,9,
- mcdonalds,9,
- megaphone,9,
- merengues,9,
- meteorite,9,
- microsoft,9,
- microwave,9,
- milkshake,9,
- milky way,9,
- millipede,9,
- minecraft,9,
- moby dick,9,
- mona lisa,9,
- motorbike,9,
- mousetrap,9,
- music box,9,
- nail file,9,
- newspaper,9,
- nightclub,9,
- nightmare,9,
- north sea,9,
- nose hair,9,
- nose ring,9,
- nosebleed,9,
- nunchucks,9,
- olive oil,9,
- orangutan,9,
- orchestra,9,
- oven mitt,9,
- paintball,9,
- palm tree,9,
- paparazzi,9,
- paper bag,9,
- paperclip,9,
- parachute,9,
- passenger,9,
- peninsula,9,
- pensioner,9,
- peppa pig,9,
- pepperoni,9,
- periscope,9,
- pewdiepie,9,
- photoshop,9,
- pine cone,9,
- pine tree,9,
- pineapple,9,
- pinocchio,9,
- pistachio,9,
- pitchfork,9,
- pizza hut,9,
- poisonous,9,
- policeman,9,
- pollution,9,
- porcupine,9,
- porky pig,9,
- possessed,9,
- president,9,
- price tag,9,
- principal,9,
- professor,9,
- promotion,9,
- protester,9,
- quicksand,9,
- radiation,9,
- raspberry,9,
- reception,9,
- rectangle,9,
- recycling,9,
- red panda,9,
- roadblock,9,
- rock pool,9,
- saltwater,9,
- sandstorm,9,
- satellite,9,
- saxophone,9,
- scarecrow,9,
- scientist,9,
- sculpture,9,
- seat belt,9,
- shave ice,9,
- sheep dog,9,
- shipwreck,9,
- shoulders,9,
- sideburns,9,
- signature,9,
- singapore,9,
- skydiving,9,
- sleepwalk,9,
- slingshot,9,
- snowboard,9,
- snowflake,9,
- snowstorm,9,
- socialism,9,
- spaceship,9,
- spaghetti,9,
- spartacus,9,
- speedboat,9,
- spelunker,9,
- spiderman,9,
- spongebob,9,
- sprinkler,9,
- squidward,9,
- star wars,9,
- starbucks,9,
- starfruit,9,
- steampunk,9,
- stick man,9,
- stink bug,9,
- stockings,9,
- stone age,9,
- stop sign,9,
- stopwatch,9,
- streetcar,9,
- submarine,9,
- sunflower,9,
- surfboard,9,
- swim ring,9,
- swordfish,9,
- taco bell,9,
- taj mahal,9,
- tangerine,9,
- tap dance,9,
- tarantula,9,
- telephone,9,
- telescope,9,
- teletubby,9,
- thumbs up,9,
- tom brady,9,
- tombstone,9,
- toothpick,9,
- tow truck,9,
- translate,9,
- trapezoid,9,
- trash can,9,
- treadmill,9,
- treehouse,9,
- underwear,9,
- vault boy,9,
- vegetable,9,
- wallpaper,9,
- warehouse,9,
- wasteland,9,
- water gun,9,
- waterfall,9,
- whirlpool,9,
- wind farm,9,
- wolverine,9,
- workplace,9,
- wrestling,9,
- xylophone,9,
- yardstick,9,
- zookeeper,9,
- zoom call,9,
- anglerfish,10,
- antarctica,10,
- apocalypse,10,
- apple seed,10,
- aristocrat,10,
- atmosphere,10,
- background,10,
- basketball,10,
- battleship,10,
- bill gates,10,
- binoculars,10,
- black belt,10,
- black hole,10,
- blackberry,10,
- blacksmith,10,
- board game,10,
- boiled egg,10,
- brainstorm,10,
- breakdance,10,
- brick wall,10,
- bricklayer,10,
- broomstick,10,
- bubble gum,10,
- bugs bunny,10,
- bus driver,10,
- buttermilk,10,
- cab driver,10,
- calculator,10,
- california,10,
- can opener,10,
- candy cane,10,
- cannonball,10,
- capitalism,10,
- cappuccino,10,
- cargo ship,10,
- cell phone,10,
- chalkboard,10,
- chandelier,10,
- cheesecake,10,
- chest hair,10,
- chestplate,10,
- chimpanzee,10,
- chinchilla,10,
- chopsticks,10,
- cinderella,10,
- collarbone,10,
- colorblind,10,
- comic book,10,
- commercial,10,
- conspiracy,10,
- controller,10,
- cookie jar,10,
- coral reef,10,
- cuttlefish,10,
- daffy duck,10,
- death star,10,
- debit card,10,
- dictionary,10,
- didgeridoo,10,
- disgusting,10,
- dishwasher,10,
- diss track,10,
- downstairs,10,
- dump truck,10,
- earthquake,10,
- ed sheeran,10,
- elliptical,10,
- experiment,10,
- extinction,10,
- face paint,10,
- fairy tale,10,
- fake teeth,10,
- family guy,10,
- fanny pack,10,
- fertilizer,10,
- fettuccine,10,
- fingernail,10,
- fire alarm,10,
- fire truck,10,
- fist fight,10,
- flashlight,10,
- floodlight,10,
- flying car,10,
- flying pig,10,
- foundation,10,
- gamer girl,10,
- glue stick,10,
- gold chain,10,
- gold ingot,10,
- golden egg,10,
- goldilocks,10,
- graduation,10,
- gramophone,10,
- grapefruit,10,
- great wall,10,
- greenhouse,10,
- guillotine,10,
- guinea pig,10,
- gummy bear,10,
- gummy worm,10,
- gymnastics,10,
- hair dryer,10,
- happy meal,10,
- headphones,10,
- helicopter,10,
- hieroglyph,10,
- high heels,10,
- high score,10,
- hitchhiker,10,
- home alone,10,
- hovercraft,10,
- illuminati,10,
- insulation,10,
- invincible,10,
- iron giant,10,
- iron ingot,10,
- jackhammer,10,
- james bond,10,
- jeff bezos,10,
- journalist,10,
- katy perry,10,
- laboratory,10,
- lawn mower,10,
- leprechaun,10,
- lighthouse,10,
- lightsaber,10,
- litter box,10,
- london eye,10,
- lumberjack,10,
- madagascar,10,
- magic wand,10,
- markiplier,10,
- mayonnaise,10,
- medication,10,
- microphone,10,
- microscope,10,
- mont blanc,10,
- morse code,10,
- motorcycle,10,
- mount fuji,10,
- mozzarella,10,
- nightlight,10,
- north pole,10,
- notre-dame,10,
- nutcracker,10,
- overweight,10,
- pharmacist,10,
- photograph,10,
- piggy bank,10,
- plantation,10,
- playground,10,
- plexiglass,10,
- pogo stick,10,
- polar bear,10,
- power bank,10,
- programmer,10,
- prosciutto,10,
- protection,10,
- punishment,10,
- quarantine,10,
- quesadilla,10,
- race track,10,
- rainforest,10,
- razorblade,10,
- red carpet,10,
- reflection,10,
- republican,10,
- restaurant,10,
- rhinoceros,10,
- roadrunner,10,
- roast beef,10,
- robin hood,10,
- roundabout,10,
- scooby doo,10,
- sea turtle,10,
- sea urchin,10,
- semicircle,10,
- shot glass,10,
- silverware,10,
- skateboard,10,
- skribbl.io,10,
- skyscraper,10,
- smartphone,10,
- snoop dogg,10,
- snow globe,10,
- snow white,10,
- snowmobile,10,
- south park,10,
- south pole,10,
- space suit,10,
- speed bump,10,
- sports car,10,
- star bucks,10,
- steve jobs,10,
- stonehenge,10,
- strawberry,10,
- suez canal,10,
- sunglasses,10,
- superpower,10,
- tablecloth,10,
- tambourine,10,
- tater tots,10,
- teddy bear,10,
- television,10,
- terminator,10,
- tissue box,10,
- toothbrush,10,
- toothpaste,10,
- trampoline,10,
- translator,10,
- trick shot,10,
- tug of war,10,
- tumbleweed,10,
- typewriter,10,
- university,10,
- usain bolt,10,
- vegetarian,10,
- video game,10,
- vin diesel,10,
- volleyball,10,
- washington,10,
- watermelon,10,
- weatherman,10,
- wheelchair,10,
- whiteboard,10,
- windshield,10,
- wine glass,10,
- wonderland,10,
- woodpecker,10,
- yield sign,10,
- angry birds,11,
- baking soda,11,
- barbed wire,11,
- bell pepper,11,
- bench press,11,
- berlin wall,11,
- bottle flip,11,
- bubble wrap,11,
- bulletproof,11,
- burger king,11,
- butt cheeks,11,
- candy store,11,
- carrot cake,11,
- caterpillar,11,
- cauliflower,11,
- ceiling fan,11,
- cheerleader,11,
- chewing gum,11,
- coast guard,11,
- coffee shop,11,
- color-blind,11,
- comfortable,11,
- coronavirus,11,
- crawl space,11,
- credit card,11,
- cruise ship,11,
- darth vader,11,
- dining room,11,
- donald duck,11,
- donkey kong,11,
- electrician,11,
- electricity,11,
- environment,11,
- executioner,11,
- fingerprint,11,
- firecracker,11,
- firefighter,11,
- fishing net,11,
- fishing rod,11,
- floppy disk,11,
- fly swatter,11,
- forest fire,11,
- gas station,11,
- gingerbread,11,
- gold ingots,11,
- grandfather,11,
- grandmother,11,
- grasshopper,11,
- gravedigger,11,
- great lakes,11,
- green beans,11,
- grim reaper,11,
- guitar hero,11,
- hair roller,11,
- hairdresser,11,
- hash browns,11,
- hello kitty,11,
- high school,11,
- highlighter,11,
- hole in one,11,
- hummingbird,11,
- ice fishing,11,
- imagination,11,
- jackie chan,11,
- jerry mouse,11,
- kim jong-un,11,
- leaf blower,11,
- machine gun,11,
- magic trick,11,
- marshmallow,11,
- mathematics,11,
- mexico city,11,
- monkey bars,11,
- moon bounce,11,
- motherboard,11,
- mr meeseeks,11,
- music notes,11,
- nail polish,11,
- netherlands,11,
- new zealand,11,
- north korea,11,
- observatory,11,
- oktoberfest,11,
- outer space,11,
- paper plane,11,
- paragliding,11,
- pencil case,11,
- philippines,11,
- phone booth,11,
- photo booth,11,
- photo frame,11,
- pirate ship,11,
- plastic bag,11,
- playstation,11,
- pomegranate,11,
- pot of gold,11,
- power lines,11,
- quarterback,11,
- rattlesnake,11,
- real estate,11,
- renaissance,11,
- ring finger,11,
- rollerblade,11,
- rubber band,11,
- rubiks cube,11,
- safety clip,11,
- sand castle,11,
- screwdriver,11,
- shakespeare,11,
- sock puppet,11,
- solar flare,11,
- solar panel,11,
- south korea,11,
- speedometer,11,
- spray paint,11,
- stegosaurus,11,
- storm drain,11,
- subtraction,11,
- supermarket,11,
- switzerland,11,
- talent show,11,
- taxi driver,11,
- temperature,11,
- the beatles,11,
- thermometer,11,
- thumbs down,11,
- time travel,11,
- tooth fairy,11,
- toxic waste,11,
- traffic jam,11,
- trench coat,11,
- triceratops,11,
- tuning fork,11,
- underground,11,
- underweight,11,
- uninhabited,11,
- upside down,11,
- ventilation,11,
- wall street,11,
- watch tower,11,
- water cycle,11,
- water slide,11,
- water tower,11,
- wheelbarrow,11,
- white house,11,
- window sill,11,
- zodiac sign,11,
- baking sheet,12,
- barack obama,12,
- bart simpson,12,
- baseball bat,12,
- belly button,12,
- black friday,12,
- black pepper,12,
- brain freeze,12,
- broken heart,12,
- bus terminal,12,
- cheese stick,12,
- cheeseburger,12,
- chuck norris,12,
- clothes iron,12,
- connect four,12,
- construction,12,
- conversation,12,
- cookie dough,12,
- cotton candy,12,
- crystal ball,12,
- donald trump,12,
- easter bunny,12,
- eiffel tower,12,
- electric car,12,
- fast forward,12,
- ferris wheel,12,
- fire hydrant,12,
- flamethrower,12,
- frankenstein,12,
- golden apple,12,
- grand canyon,12,
- handkerchief,12,
- harry potter,12,
- hockey stick,12,
- intersection,12,
- isaac newton,12,
- jesus christ,12,
- johnny bravo,12,
- kindergarten,12,
- lebron james,12,
- lisa simpson,12,
- lobster roll,12,
- machu picchu,12,
- machu-picchu,12,
- mickey mouse,12,
- mr. meeseeks,12,
- neighborhood,12,
- nicolas cage,12,
- notification,12,
- onion powder,12,
- paint roller,12,
- paper towels,12,
- photographer,12,
- pickup truck,12,
- pillow fight,12,
- pink panther,12,
- plastic wrap,12,
- playing card,12,
- punching bag,12,
- receptionist,12,
- relationship,12,
- skateboarder,12,
- sledgehammer,12,
- social media,12,
- solar system,12,
- soviet union,12,
- spike strips,12,
- street light,12,
- sweet potato,12,
- table tennis,12,
- tape measure,12,
- tech support,12,
- the avengers,12,
- thunderstorm,12,
- time machine,12,
- toilet brush,12,
- toilet paper,12,
- tower bridge,12,
- trailer park,12,
- truck driver,12,
- velociraptor,12,
- veterinarian,12,
- water bottle,12,
- water cooler,12,
- watering can,12,
- weather vane,12,
- wishing well,12,
- wonder woman,12,
- yin and yang,12,
- advertisement,13,
- archaeologist,13,
- asteroid belt,13,
- baking powder,13,
- bowling alley,13,
- brachiosaurus,13,
- business card,13,
- charlie brown,13,
- cinnamon roll,13,
- climbing wall,13,
- constellation,13,
- control tower,13,
- conveyor belt,13,
- defibrillator,13,
- demonstration,13,
- dream catcher,13,
- easter island,13,
- finn and jake,13,
- fried chicken,13,
- garbage truck,13,
- garlic powder,13,
- graphics card,13,
- green lantern,13,
- haunted house,13,
- homer simpson,13,
- honey mustard,13,
- hot chocolate,13,
- jimmy neutron,13,
- justin bieber,13,
- laser pointer,13,
- marge simpson,13,
- mount everest,13,
- north america,13,
- peanut butter,13,
- plague doctor,13,
- puss in boots,13,
- reincarnation,13,
- robbie rotten,13,
- rock climbing,13,
- rocket league,13,
- rocking chair,13,
- shaving cream,13,
- shooting star,13,
- shopping cart,13,
- snake charmer,13,
- south america,13,
- swimming pool,13,
- tennis racket,13,
- tower of pisa,13,
- traffic light,13,
- train station,13,
- venus flytrap,13,
- wrecking ball,13,
- angelina jolie,14,
- bungee jumping,14,
- car dealership,14,
- cherry blossom,14,
- christmas tree,14,
- clothes hanger,14,
- cookie monster,14,
- fidget spinner,14,
- fish and chips,14,
- global warming,14,
- grilled cheese,14,
- gulf of mexico,14,
- ice cream shop,14,
- jack-o-lantern,14,
- michael jordan,14,
- morgan freeman,14,
- mount rushmore,14,
- multiplication,14,
- prime meridian,14,
- roller coaster,14,
- satellite dish,14,
- scrambled eggs,14,
- sewing machine,14,
- snowball fight,14,
- steering wheel,14,
- susan wojcicki,14,
- united kingdom,14,
- vladimir putin,14,
- zebra crossing,14,
- abraham lincoln,15,
- air conditioner,15,
- black and white,15,
- captain america,15,
- charlie chaplin,15,
- corn on the cob,15,
- crash bandicoot,15,
- drivers license,15,
- electric guitar,15,
- english channel,15,
- fitness trainer,15,
- fred flintstone,15,
- hot air balloon,15,
- ice cream truck,15,
- mark zuckerberg,15,
- mashed potatoes,15,
- michael jackson,15,
- nintendo switch,15,
- northern lights,15,
- procrastination,15,
- queen elizabeth,15,
- reading glasses,15,
- retirement home,15,
- sherlock holmes,15,
- stephen hawking,15,
- vending machine,15,
- virtual reality,15,
- washing machine,15,
- william wallace,15,
- winnie the pooh,15,
- christmas island,16,
- darwin watterson,16,
- demolition derby,16,
- fashion designer,16,
- flight attendant,16,
- pencil sharpener,16,
- phineas and ferb,16,
- romeo and juliet,16,
- combine harvester,17,
- drinking fountain,17,
- fire extinguisher,17,
- george washington,17,
- leonardo da vinci,17,
- leonardo dicaprio,17,
- lightning mcqueen,17,
- mechanical pencil,17,
- railroad crossing,17,
- statue of liberty,17,
- great barrier reef,18,
- leonardo di caprio,18,
- sydney opera house,18,
- friendship bracelet,19,
- william shakespeare,19,
- `;
- let parsedWordDatabase = null;
- let hintObserver = null;
- let isAutoGuessing = false;
- let currentAutoguessDelay = defaultAutoguessDelay;
- let autoGuessTimeoutId = null;
- let currentWordListForAutoguess = [];
- let guessedWordsThisRound = new Set();
- let lastHintInfoSignature = null;
- let canvasRect = null;
- const canvas = document.querySelector("#game-canvas canvas");
- if (!canvas) { alert("Could not find the game canvas element."); return; }
- const guiContainerId = 'skribblDrawGuiContainerV3';
- const openButtonId = 'skribblDrawGuiOpenButtonV3';
- const panelId = 'skribblDrawGuiPanelV3';
- const drawButtonId = 'skribblDrawGuiDrawButtonV3';
- const dbButtonId = 'skribblDrawGuiDbButtonV3';
- const closeGuiButtonId = 'skribblDrawGuiCloseButtonV3';
- const inputClass = 'skribblDrawGuiInputV3';
- const dbResultsId = 'skribblDrawDbResultsV3';
- const autoguessButtonId = 'skribblDrawAutoguessButtonV3';
- const autoguessSliderId = 'skribblDrawAutoguessSliderV3';
- const autoguessDelayValueId = 'skribblDrawAutoguessDelayValueV3';
- const styleId = 'skribblModernStyleV3';
- function sleep(ms) { return new Promise(resolve => { autoGuessTimeoutId = setTimeout(resolve, ms); }); }
- function simulatePointerEvent(element, eventName, clientX, clientY) {
- if(!canvasRect){console.error("Canvas position (rect) not available for event simulation.");return}
- const eventOptions={
- bubbles: true,
- cancelable: true,
- clientX: Math.round(clientX),
- clientY: Math.round(clientY),
- pointerId: 1,
- pointerType: "mouse",
- isPrimary: true,
- view: document.defaultView
- };
- let event;
- try{
- event=new PointerEvent(eventName,eventOptions);
- } catch(e){
- delete eventOptions.pointerId;
- delete eventOptions.pointerType;
- delete eventOptions.isPrimary;
- event=new MouseEvent(eventName,eventOptions);
- }
- element.dispatchEvent(event);
- }
- function parseWordDatabase(csvString) {
- if(parsedWordDatabase)return parsedWordDatabase;
- if(!csvString||csvString==='PASTE_WORD_DATABASE_HERE'||csvString.trim()==='')return[];
- parsedWordDatabase=[];const lines=csvString.split(/\r?\n/);let parseCount=0;
- lines.forEach((line,index)=>{
- const trimmedLine=line.trim();if(!trimmedLine||trimmedLine.toLowerCase()==='word,count'||trimmedLine.toLowerCase()==='word,count,')return;
- const parts=trimmedLine.split(',');
- if(parts.length>=2){
- const word=parts[0].trim().toLowerCase();const count=parseInt(parts[1].trim(),10);
- if(word&&!isNaN(count)&&count>0){parsedWordDatabase.push({word:word,count:count});parseCount++}
- }
- });
- return parsedWordDatabase;
- }
- function getHintInfo() {
- const hintContainer=document.querySelector("#game-word .container");if(!hintContainer)return null;
- const hintElements=hintContainer.querySelectorAll('.hint');if(!hintElements||hintElements.length===0)return null;
- const hints=[];let hasContent=!1;let currentSignature='';
- hintElements.forEach(el=>{
- const textContent=el.textContent;const hasUncover=el.classList.contains('uncover');let char='_';
- if(hasUncover){if(textContent==='-'){char='-'}else if(textContent===' '||textContent.trim()===''){char=' '}else{char=textContent.trim().toLowerCase()}hasContent=!0}
- else{hasContent=!0}hints.push(char);currentSignature+=char
- });
- const wordLengthEl=hintContainer.querySelector('.word-length');if(!wordLengthEl||!hasContent)return null;
- const expectedLengthText=wordLengthEl.textContent.trim();const lengths=expectedLengthText.split(' ').map(n=>parseInt(n,10)).filter(n=>!isNaN(n));if(lengths.length===0)return null;
- const spaceCount=Math.max(0,lengths.length-1);const totalLength=hints.length;
- if(lengths.reduce((s,l)=>s+l,0)+spaceCount!==totalLength){}
- let isNewRound=!1;
- if(currentSignature!==lastHintInfoSignature){
- const wentToBlanks=lastHintInfoSignature&&lastHintInfoSignature.replace(/_/g,'').length>0&¤tSignature.replace(/_/g,'').length===0;
- const lengthChanged=lastHintInfoSignature&¤tSignature.length!==lastHintInfoSignature.length;
- if(wentToBlanks||lengthChanged||lastHintInfoSignature===null){guessedWordsThisRound.clear();isNewRound=!0}
- lastHintInfoSignature=currentSignature
- }
- return{hints:hints,length:totalLength,spaceCount:spaceCount,isNewRound:isNewRound}
- }
- function filterWords(hintInfo, wordDatabase) {
- if(!hintInfo)return{filteredWords:[],message:"No active word/hints found."};
- if(!wordDatabase||wordDatabase.length===0)return{filteredWords:[],message:"Word database is empty or not loaded."};
- const{hints,length:wordLength,spaceCount}=hintInfo;
- let possibleWords=wordDatabase.filter(entry=>{const entrySpaceCount=(entry.word.match(/ /g)||[]).length;return entry.word.length===wordLength&&entrySpaceCount===spaceCount});
- if(possibleWords.length===0)return{filteredWords:[],message:`No words found with length ${wordLength} and exactly ${spaceCount} spaces.`};
- hints.forEach((hintChar,index)=>{if(hintChar!=='_'){const initialCount=possibleWords.length;possibleWords=possibleWords.filter(entry=>entry.word.length===wordLength&&entry.word[index]===hintChar)}});
- const initialCountBeforeGuessFilter=possibleWords.length;possibleWords=possibleWords.filter(entry=>!guessedWordsThisRound.has(entry.word));
- const wordStrings=possibleWords.map(entry=>entry.word);
- if(wordStrings.length===0){if(initialCountBeforeGuessFilter>0){return{filteredWords:[],message:"All matching words already guessed."}}else{return{filteredWords:[],message:"No matching words found."}}}
- return{filteredWords:wordStrings,message:`${wordStrings.length} possible words:`}
- }
- function submitGuess(word) {
- const chatInput=document.querySelector(".chat-form input[type='text']");const chatForm=document.querySelector(".chat-form");
- if(chatInput&&chatForm&&word){chatInput.value=word;chatInput.dispatchEvent(new Event('input',{bubbles:!0}));chatForm.requestSubmit();}
- }
- function updateWordDbDisplay() {
- const dbResultsDiv=document.getElementById(dbResultsId);if(!dbResultsDiv)return;
- const hintInfo=getHintInfo();const db=parseWordDatabase(WORD_DATABASE_CSV_STRING);
- const{filteredWords,message}=filterWords(hintInfo,db);currentWordListForAutoguess=filteredWords;
- dbResultsDiv.innerHTML='';const messageP=document.createElement('p');messageP.textContent=message;
- dbResultsDiv.appendChild(messageP);
- if(filteredWords.length>0){
- const list=document.createElement('ul');
- filteredWords.forEach(word=>{
- const item=document.createElement('li');const button=document.createElement('button');button.textContent=word;button.setAttribute('data-word',word);
- button.className = 'skribbl-db-word-button';
- if(guessedWordsThisRound.has(word)){button.classList.add('guessed');button.disabled=!0}
- button.addEventListener('click',(e)=>{e.preventDefault();submitGuess(word);guessedWordsThisRound.add(word);button.classList.add('guessed');button.disabled=!0});
- item.appendChild(button);list.appendChild(item)
- });
- dbResultsDiv.appendChild(list)
- }
- }
- async function drawSegment(startCanvasX, startCanvasY, endCanvasX, endCanvasY, isFirstSegment, isLastSegment) {
- if(!canvasRect){return}
- const startClientX=canvasRect.left+startCanvasX;const startClientY=canvasRect.top+startCanvasY;const endClientX=canvasRect.left+endCanvasX;const endClientY=canvasRect.top+endCanvasY;
- const clampedStartX=Math.max(canvasRect.left,Math.min(canvasRect.right,startClientX));const clampedStartY=Math.max(canvasRect.top,Math.min(canvasRect.bottom,startClientY));
- const clampedEndX=Math.max(canvasRect.left,Math.min(canvasRect.right,endClientX));const clampedEndY=Math.max(canvasRect.top,Math.min(canvasRect.bottom,endClientY));
- if(isFirstSegment){simulatePointerEvent(canvas,'pointerdown',clampedStartX,clampedStartY);await sleep(15)}
- simulatePointerEvent(canvas,'pointermove',clampedEndX,clampedEndY);await sleep(lineDelay);
- if(isLastSegment){simulatePointerEvent(canvas,'pointerup',clampedEndX,clampedEndY);await sleep(25)}
- }
- async function drawCharacter(char, charStartX, charStartY, charWidth, charHeight) {
- const points = getCharacterPoints(char, charStartX, charStartY, charWidth, charHeight);
- if (!points || points.length < 1) return;
- let lastPoint = null; let isFirstSegmentOfStroke = true;
- for (let i = 0; i < points.length; i++) {
- const currentPoint = points[i];
- if (currentPoint === null) { lastPoint = null; isFirstSegmentOfStroke = true; }
- else if (lastPoint !== null) {
- const isLastSegmentOfChar = (i === points.length - 1 || points[i+1] === null);
- await drawSegment(lastPoint[0], lastPoint[1], currentPoint[0], currentPoint[1], isFirstSegmentOfStroke, isLastSegmentOfChar);
- lastPoint = currentPoint; isFirstSegmentOfStroke = false;
- } else {
- lastPoint = currentPoint; isFirstSegmentOfStroke = true;
- if (i === points.length - 1 || points[i+1] === null) {
- await drawSegment(lastPoint[0], lastPoint[1], lastPoint[0], lastPoint[1], true, true);
- lastPoint = null; isFirstSegmentOfStroke = true;
- }
- }
- }
- if (lastPoint !== null && !isFirstSegmentOfStroke) {
- const lastClientX = canvasRect.left + lastPoint[0]; const lastClientY = canvasRect.top + lastPoint[1];
- const clampedX = Math.max(canvasRect.left, Math.min(canvasRect.right, lastClientX)); const clampedY = Math.max(canvasRect.top, Math.min(canvasRect.bottom, lastClientY));
- simulatePointerEvent(canvas, 'pointerup', clampedX, clampedY); await sleep(25);
- }
- }
- async function drawTextLines(lines) {
- if (!lines || lines.length === 0) return;
- canvasRect = canvas.getBoundingClientRect();
- const currentCanvasWidth = canvas.width; const currentCanvasHeight = canvas.height;
- const safeWidth = currentCanvasWidth * safetyMarginFactor; const safeHeight = currentCanvasHeight * safetyMarginFactor;
- let fontSize, charWidth, charHeight, lineHeight; let longestLineLength = 0;
- lines.forEach(line => { if (line.length > longestLineLength) { longestLineLength = line.length; } });
- const maxFontSizeWidth = longestLineLength > 0 ? (safeWidth / (longestLineLength * charWidthRatio)) : safeHeight;
- if (lines.length === 1) {
- const line = lines[0];
- fontSize = Math.max(5, Math.min(maxFontSizeWidth, safeHeight / charHeightRatio));
- charWidth = fontSize * charWidthRatio; charHeight = fontSize * charHeightRatio;
- const lineWidth = line.split('').reduce((width, char) => { return width + (char === ' ' ? charWidth * spaceWidthFactor : charWidth * charSpacingFactor); }, 0);
- const startX = (currentCanvasWidth - lineWidth) / 2; const startY = (currentCanvasHeight - charHeight) / 2;
- let currentX = startX;
- for (const char of line.split('')) {
- if (char === ' ') { currentX += charWidth * spaceWidthFactor; }
- else { if (currentX >= 0 && currentX + charWidth <= currentCanvasWidth && startY >= 0 && startY + charHeight <= currentCanvasHeight) { await drawCharacter(char, currentX, startY, charWidth, charHeight); } else { console.warn(`Character '${char}' skipped (out of bounds).`); } currentX += charWidth * charSpacingFactor; }
- if (currentX > currentCanvasWidth) break;
- }
- } else {
- const requiredBlockHeightFactor = lines.length * charHeightRatio * lineSpacingFactor; const maxFontSizeHeight = safeHeight / requiredBlockHeightFactor;
- fontSize = Math.max(5, Math.min(maxFontSizeWidth, maxFontSizeHeight));
- charWidth = fontSize * charWidthRatio; charHeight = fontSize * charHeightRatio; lineHeight = charHeight * lineSpacingFactor;
- const totalBlockHeight = lines.length * lineHeight - (lineHeight - charHeight);
- let currentY = (currentCanvasHeight - totalBlockHeight) / 2; currentY = Math.max(0, currentY);
- for (const line of lines) {
- const lineWidth = line.split('').reduce((width, char) => { return width + (char === ' ' ? charWidth * spaceWidthFactor : charWidth * charSpacingFactor); }, 0);
- let currentX = (currentCanvasWidth - lineWidth) / 2;
- for (const char of line.split('')) {
- if (char === ' ') { currentX += charWidth * spaceWidthFactor; }
- else { if (currentX >= 0 && currentX + charWidth <= currentCanvasWidth && currentY >= 0 && currentY + charHeight <= currentCanvasHeight) { await drawCharacter(char, currentX, currentY, charWidth, charHeight); } else { console.warn(`Character '${char}' skipped (out of bounds).`); } currentX += charWidth * charSpacingFactor; }
- if (currentX > currentCanvasWidth) break;
- }
- currentY += lineHeight; if (currentY > currentCanvasHeight) { console.warn("Next line would start below canvas. Stopping."); break; }
- }
- }
- }
- function getCharacterPoints(char, startX, startY, charWidth, charHeight) {
- const points=[]; const H=charHeight, W=charWidth, X=startX, Y=startY;
- switch(char){
- case 'A': points.push([X, Y + H]); points.push([X + W / 2, Y]); points.push([X + W, Y + H]); points.push(null); points.push([X + W * 0.2, Y + H * 0.6]); points.push([X + W * 0.8, Y + H * 0.6]); break;
- case 'B': points.push([X, Y]); points.push([X, Y + H]); points.push(null); points.push([X, Y]); points.push([X + W * 0.8, Y]); points.push([X + W, Y + H * 0.25]); points.push([X + W * 0.8, Y + H * 0.5]); points.push([X, Y + H * 0.5]); points.push(null); points.push([X, Y + H * 0.5]); points.push([X + W * 0.9, Y + H * 0.5]); points.push([X + W, Y + H * 0.75]); points.push([X + W * 0.8, Y + H]); points.push([X, Y + H]); break;
- case 'C': points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W * 0.5, Y]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X, Y + H * 0.5]); points.push([X + W * 0.1, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.9, Y + H * 0.8]); break;
- case 'D': points.push([X, Y]); points.push([X, Y + H]); points.push(null); points.push([X, Y]); points.push([X + W * 0.8, Y]); points.push([X + W, Y + H * 0.3]); points.push([X + W, Y + H * 0.7]); points.push([X + W * 0.8, Y + H]); points.push([X, Y + H]); break;
- case 'E': points.push([X + W, Y]); points.push([X, Y]); points.push([X, Y + H]); points.push([X + W, Y + H]); points.push(null); points.push([X, Y + H / 2]); points.push([X + W * 0.75, Y + H / 2]); break;
- case 'F': points.push([X + W, Y]); points.push([X, Y]); points.push([X, Y + H]); points.push(null); points.push([X, Y + H / 2]); points.push([X + W * 0.75, Y + H / 2]); break;
- case 'G': points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W * 0.5, Y]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X, Y + H * 0.5]); points.push([X + W * 0.1, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.9, Y + H * 0.8]); points.push([X + W, Y + H * 0.5]); points.push([X + W * 0.5, Y + H * 0.5]); break;
- case 'H': points.push([X, Y]); points.push([X, Y + H]); points.push(null); points.push([X + W, Y]); points.push([X + W, Y + H]); points.push(null); points.push([X, Y + H / 2]); points.push([X + W, Y + H / 2]); break;
- case 'I': points.push([X + W / 2, Y]); points.push([X + W / 2, Y + H]); points.push(null); points.push([X + W * 0.2, Y]); points.push([X + W * 0.8, Y]); points.push(null); points.push([X + W * 0.2, Y + H]); points.push([X + W * 0.8, Y + H]); break;
- case 'J': points.push([X + W * 0.8, Y]); points.push([X + W * 0.8, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.2, Y + H * 0.8]); break;
- case 'K': points.push([X, Y]); points.push([X, Y + H]); points.push(null); points.push([X + W, Y]); points.push([X + W * 0.2, Y + H / 2]); points.push([X + W, Y + H]); break;
- case 'L': points.push([X, Y]); points.push([X, Y + H]); points.push([X + W, Y + H]); break;
- case 'M': points.push([X, Y + H]); points.push([X, Y]); points.push([X + W / 2, Y + H * 0.6]); points.push([X + W, Y]); points.push([X + W, Y + H]); break;
- case 'N': points.push([X, Y + H]); points.push([X, Y]); points.push([X + W, Y + H]); points.push([X + W, Y]); break;
- case 'O': points.push([X + W * 0.5, Y]); points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W, Y + H * 0.5]); points.push([X + W * 0.9, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.8]); points.push([X, Y + H * 0.5]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X + W * 0.5, Y]); break;
- case 'P': points.push([X, Y + H]); points.push([X, Y]); points.push(null); points.push([X, Y]); points.push([X + W * 0.8, Y]); points.push([X + W, Y + H * 0.25]); points.push([X + W * 0.8, Y + H * 0.5]); points.push([X, Y + H * 0.5]); break;
- case 'Q': points.push([X + W * 0.5, Y]); points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W, Y + H * 0.5]); points.push([X + W * 0.9, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.8]); points.push([X, Y + H * 0.5]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X + W * 0.5, Y]); points.push(null); points.push([X + W * 0.6, Y + H * 0.7]); points.push([X + W, Y + H]); break;
- case 'R': points.push([X, Y + H]); points.push([X, Y]); points.push(null); points.push([X, Y]); points.push([X + W * 0.8, Y]); points.push([X + W, Y + H * 0.25]); points.push([X + W * 0.8, Y + H * 0.5]); points.push([X, Y + H * 0.5]); points.push(null); points.push([X + W * 0.4, Y + H * 0.5]); points.push([X + W, Y + H]); break;
- case 'S': points.push([X + W * 0.9, Y + H * 0.1]); points.push([X + W * 0.5, Y]); points.push([X + W * 0.1, Y + H * 0.1]); points.push([X, Y + H * 0.3]); points.push([X + W * 0.9, Y + H * 0.7]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.9]); break;
- case 'T': points.push([X, Y]); points.push([X + W, Y]); points.push(null); points.push([X + W / 2, Y]); points.push([X + W / 2, Y + H]); break;
- case 'U': points.push([X, Y]); points.push([X, Y + H * 0.8]); points.push([X + W * 0.2, Y + H]); points.push([X + W * 0.8, Y + H]); points.push([X + W, Y + H * 0.8]); points.push([X + W, Y]); break;
- case 'V': points.push([X, Y]); points.push([X + W / 2, Y + H]); points.push([X + W, Y]); break;
- case 'W': points.push([X, Y]); points.push([X + W * 0.25, Y + H]); points.push([X + W / 2, Y + H / 3]); points.push([X + W * 0.75, Y + H]); points.push([X + W, Y]); break;
- case 'X': points.push([X, Y]); points.push([X + W, Y + H]); points.push(null); points.push([X + W, Y]); points.push([X, Y + H]); break;
- case 'Y': points.push([X, Y]); points.push([X + W / 2, Y + H / 2]); points.push([X + W, Y]); points.push(null); points.push([X + W / 2, Y + H / 2]); points.push([X + W / 2, Y + H]); break;
- case 'Z': points.push([X, Y]); points.push([X + W, Y]); points.push([X, Y + H]); points.push([X + W, Y + H]); break;
- case '0': points.push([X + W * 0.5, Y]); points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W, Y + H * 0.5]); points.push([X + W * 0.9, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.8]); points.push([X, Y + H * 0.5]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X + W * 0.5, Y]); break;
- case '1': points.push([X + W * 0.3, Y + H * 0.15]); points.push([X + W / 2, Y]); points.push([X + W / 2, Y + H]); points.push(null); points.push([X + W * 0.2, Y + H]); points.push([X + W * 0.8, Y + H]); break;
- case '2': points.push([X + W * 0.1, Y + H * 0.2]); points.push([X + W * 0.5, Y]); points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W * 0.8, Y + H * 0.4]); points.push([X, Y + H]); points.push([X + W, Y + H]); break;
- case '3': points.push([X + W * 0.1, Y + H * 0.1]); points.push([X + W * 0.8, Y]); points.push([X + W, Y + H * 0.3]); points.push([X + W * 0.6, Y + H * 0.5]); points.push([X + W, Y + H * 0.7]); points.push([X + W * 0.8, Y + H]); points.push([X + W * 0.1, Y + H * 0.9]); break;
- case '4': points.push([X + W * 0.2, Y]); points.push([X + W * 0.2, Y + H * 0.6]); points.push([X + W, Y + H * 0.6]); points.push(null); points.push([X + W * 0.7, Y]); points.push([X + W * 0.7, Y + H]); break;
- case '5': points.push([X + W, Y]); points.push([X, Y]); points.push([X, Y + H * 0.5]); points.push(null); points.push([X, Y + H * 0.5]); points.push([X + W * 0.8, Y + H * 0.5]); points.push([X + W, Y + H * 0.7]); points.push([X + W * 0.8, Y + H]); points.push([X + W * 0.1, Y + H * 0.9]); break;
- case '6': points.push([X + W * 0.8, Y + H * 0.1]); points.push([X + W * 0.2, Y + H * 0.3]); points.push([X, Y + H * 0.6]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.9, Y + H * 0.8]); points.push([X + W * 0.8, Y + H * 0.5]); points.push([X, Y + H * 0.6]); break;
- case '7': points.push([X, Y]); points.push([X + W, Y]); points.push([X + W * 0.3, Y + H]); break;
- case '8': points.push([X + W * 0.5, Y]); points.push([X + W * 0.9, Y + H * 0.2]); points.push([X + W * 0.5, Y + H * 0.5]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X + W * 0.5, Y]); points.push(null); points.push([X + W * 0.5, Y + H * 0.5]); points.push([X + W * 0.9, Y + H * 0.8]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.8]); points.push([X + W * 0.5, Y + H * 0.5]); break;
- case '9': points.push([X + W * 0.2, Y + H * 0.9]); points.push([X + W * 0.8, Y + H * 0.7]); points.push([X + W, Y + H * 0.4]); points.push([X + W * 0.5, Y]); points.push([X + W * 0.1, Y + H * 0.2]); points.push([X + W * 0.2, Y + H * 0.5]); points.push([X + W, Y + H * 0.4]); break;
- case 'a': points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.1, Y + H*0.65]); points.push([X + W*0.25, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.5]); points.push(null); points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.75, Y + H]); break;
- case 'b': points.push([X + W*0.25, Y]); points.push([X + W*0.25, Y + H]); points.push(null); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.9, Y + H*0.65]); points.push([X + W*0.75, Y + H*0.8]); points.push([X + W*0.25, Y + H*0.8]); break;
- case 'c': points.push([X + W*0.9, Y + H*0.55]); points.push([X + W*0.5, Y + H*0.4]); points.push([X + W*0.1, Y + H*0.55]); points.push([X, Y + H*0.75]); points.push([X + W*0.1, Y + H*0.95]); points.push([X + W*0.5, Y + H]); points.push([X + W*0.9, Y + H*0.95]); break;
- case 'd': points.push([X + W*0.75, Y]); points.push([X + W*0.75, Y + H]); points.push(null); points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.1, Y + H*0.65]); points.push([X + W*0.25, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.8]); break;
- case 'e': points.push([X + W*0.1, Y + H*0.6]); points.push([X + W*0.9, Y + H*0.6]); points.push(null); points.push([X + W*0.9, Y + H*0.6]); points.push([X + W*0.6, Y + H*0.4]); points.push([X + W*0.2, Y + H*0.5]); points.push([X, Y + H*0.75]); points.push([X + W*0.2, Y + H]); points.push([X + W*0.8, Y + H*0.9]); break;
- case 'f': points.push([X + W*0.7, Y]); points.push([X + W*0.3, Y + H*0.1]); points.push([X + W*0.3, Y + H]); points.push(null); points.push([X, Y + H*0.5]); points.push([X + W*0.7, Y + H*0.5]); break;
- case 'g': points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.1, Y + H*0.65]); points.push([X + W*0.25, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.5]); points.push(null); points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.75, Y + H*1.2]); points.push([X + W*0.5, Y + H*1.3]); points.push([X + W*0.1, Y + H*1.1]); points.push([X + W*0.3, Y + H*0.9]); break;
- case 'h': points.push([X + W*0.25, Y]); points.push([X + W*0.25, Y + H]); points.push(null); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.5, Y + H*0.5]); points.push([X + W*0.75, Y + H*0.6]); points.push([X + W*0.75, Y + H]); break;
- case 'i': points.push([X + W/2, Y + H*0.4]); points.push([X + W/2, Y + H]); points.push(null); points.push([X + W/2, Y + H*0.2]); points.push([X + W/2, Y + H*0.25]); break;
- case 'j': points.push([X + W*0.6, Y + H*0.4]); points.push([X + W*0.6, Y + H*1.2]); points.push([X + W*0.4, Y + H*1.3]); points.push([X + W*0.1, Y + H*1.1]); points.push(null); points.push([X + W*0.6, Y + H*0.2]); points.push([X + W*0.6, Y + H*0.25]); break;
- case 'k': points.push([X + W*0.25, Y]); points.push([X + W*0.25, Y + H]); points.push(null); points.push([X + W*0.8, Y + H*0.5]); points.push([X + W*0.25, Y + H*0.7]); points.push([X + W*0.8, Y + H]); break;
- case 'l': points.push([X + W/2, Y]); points.push([X + W/2, Y + H]); break;
- case 'm': points.push([X + W*0.1, Y + H*0.5]); points.push([X + W*0.1, Y + H]); points.push(null); points.push([X + W*0.1, Y + H*0.5]); points.push([X + W*0.3, Y + H*0.5]); points.push([X + W*0.5, Y + H*0.6]); points.push([X + W*0.5, Y + H]); points.push(null); points.push([X + W*0.5, Y + H*0.5]); points.push([X + W*0.7, Y + H*0.5]); points.push([X + W*0.9, Y + H*0.6]); points.push([X + W*0.9, Y + H]); break;
- case 'n': points.push([X + W*0.2, Y + H*0.5]); points.push([X + W*0.2, Y + H]); points.push(null); points.push([X + W*0.2, Y + H*0.5]); points.push([X + W*0.5, Y + H*0.5]); points.push([X + W*0.8, Y + H*0.6]); points.push([X + W*0.8, Y + H]); break;
- case 'o': points.push([X + W * 0.5, Y + H*0.4]); points.push([X + W * 0.9, Y + H * 0.55]); points.push([X + W, Y + H * 0.75]); points.push([X + W * 0.9, Y + H * 0.95]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.95]); points.push([X, Y + H * 0.75]); points.push([X + W * 0.1, Y + H * 0.55]); points.push([X + W * 0.5, Y + H*0.4]); break;
- case 'p': points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.9, Y + H*0.65]); points.push([X + W*0.75, Y + H*0.8]); points.push([X + W*0.25, Y + H*0.8]); points.push(null); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.25, Y + H*1.3]); break;
- case 'q': points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.1, Y + H*0.65]); points.push([X + W*0.25, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.8]); points.push(null); points.push([X + W*0.75, Y + H*0.5]); points.push([X + W*0.75, Y + H*1.3]); points.push([X + W*0.9, Y + H*1.2]); break;
- case 'r': points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.25, Y + H]); points.push(null); points.push([X + W*0.25, Y + H*0.5]); points.push([X + W*0.6, Y + H*0.5]); points.push([X + W*0.8, Y + H*0.6]); break;
- case 's': points.push([X + W * 0.9, Y + H * 0.5]); points.push([X + W * 0.5, Y + H*0.4]); points.push([X + W * 0.1, Y + H * 0.5]); points.push([X, Y + H * 0.65]); points.push([X + W * 0.9, Y + H * 0.85]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.9]); break;
- case 't': points.push([X + W/2, Y + H*0.1]); points.push([X + W/2, Y + H]); points.push(null); points.push([X + W*0.1, Y + H*0.4]); points.push([X + W*0.9, Y + H*0.4]); break;
- case 'u': points.push([X + W*0.1, Y + H*0.5]); points.push([X + W*0.1, Y + H*0.9]); points.push([X + W*0.3, Y + H]); points.push([X + W*0.7, Y + H]); points.push([X + W*0.9, Y + H*0.9]); points.push([X + W*0.9, Y + H*0.5]); break;
- case 'v': points.push([X + W*0.1, Y + H*0.5]); points.push([X + W / 2, Y + H]); points.push([X + W*0.9, Y + H*0.5]); break;
- case 'w': points.push([X, Y + H*0.5]); points.push([X + W * 0.25, Y + H]); points.push([X + W / 2, Y + H * 0.7]); points.push([X + W * 0.75, Y + H]); points.push([X + W, Y + H*0.5]); break;
- case 'x': points.push([X + W*0.1, Y + H*0.5]); points.push([X + W*0.9, Y + H]); points.push(null); points.push([X + W*0.9, Y + H*0.5]); points.push([X + W*0.1, Y + H]); break;
- case 'y': points.push([X + W*0.1, Y + H*0.5]); points.push([X + W / 2, Y + H]); points.push([X + W*0.9, Y + H*0.5]); points.push(null); points.push([X + W / 2, Y + H]); points.push([X + W*0.3, Y + H*1.3]); break;
- case 'z': points.push([X + W*0.1, Y + H*0.5]); points.push([X + W*0.9, Y + H*0.5]); points.push([X + W*0.1, Y + H]); points.push([X + W*0.9, Y + H]); break;
- case '!': points.push([X + W/2, Y]); points.push([X + W/2, Y + H*0.7]); points.push(null); points.push([X + W/2, Y + H*0.9]); points.push([X + W/2, Y + H]); break;
- case '@': points.push([X + W*0.75, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.3]); points.push([X + W*0.5, Y + H*0.2]); points.push([X + W*0.25, Y + H*0.3]); points.push([X + W*0.25, Y + H*0.8]); points.push([X + W*0.75, Y + H*0.8]); points.push(null); points.push([X + W*0.5, Y]); points.push([X + W, Y + H*0.5]); points.push([X + W*0.5, Y + H]); points.push([X, Y + H*0.5]); points.push([X + W*0.5, Y]); break;
- case '#': points.push([X + W*0.25, Y + H*0.2]); points.push([X + W*0.25, Y + H*0.8]); points.push(null); points.push([X + W*0.75, Y + H*0.2]); points.push([X + W*0.75, Y + H*0.8]); points.push(null); points.push([X, Y + H*0.4]); points.push([X + W, Y + H*0.4]); points.push(null); points.push([X, Y + H*0.6]); points.push([X + W, Y + H*0.6]); break;
- case '$': points.push([X + W * 0.9, Y + H * 0.1]); points.push([X + W * 0.5, Y]); points.push([X + W * 0.1, Y + H * 0.1]); points.push([X, Y + H * 0.3]); points.push([X + W * 0.9, Y + H * 0.7]); points.push([X + W * 0.5, Y + H]); points.push([X + W * 0.1, Y + H * 0.9]); points.push(null); points.push([X + W/2, Y]); points.push([X + W/2, Y + H]); break;
- case '%': points.push([X + W*0.2, Y + H*0.1]); points.push([X + W*0.4, Y + H*0.3]); points.push([X + W*0.2, Y + H*0.5]); points.push([X, Y + H*0.3]); points.push([X + W*0.2, Y + H*0.1]); points.push(null); points.push([X, Y + H]); points.push([X + W, Y]); points.push(null); points.push([X + W*0.8, Y + H*0.9]); points.push([X + W*0.6, Y + H*0.7]); points.push([X + W*0.8, Y + H*0.5]); points.push([X + W, Y + H*0.7]); points.push([X + W*0.8, Y + H*0.9]); break;
- case '^': points.push([X + W*0.1, Y + H*0.6]); points.push([X + W/2, Y + H*0.2]); points.push([X + W*0.9, Y + H*0.6]); break;
- case '&': points.push([X + W, Y + H*0.8]); points.push([X + W*0.5, Y + H]); points.push([X + W*0.2, Y + H*0.8]); points.push([X, Y + H*0.5]); points.push([X + W*0.5, Y]); points.push([X + W*0.8, Y + H*0.2]); points.push([X + W*0.5, Y + H*0.5]); points.push([X, Y + H*0.8]); break;
- case '*': points.push([X + W/2, Y]); points.push([X + W/2, Y + H]); points.push(null); points.push([X, Y + H/2]); points.push([X + W, Y + H/2]); points.push(null); points.push([X + W*0.1, Y + H*0.1]); points.push([X + W*0.9, Y + H*0.9]); points.push(null); points.push([X + W*0.9, Y + H*0.1]); points.push([X + W*0.1, Y + H*0.9]); break;
- case '(': points.push([X + W*0.8, Y]); points.push([X + W*0.3, Y + H*0.2]); points.push([X + W*0.3, Y + H*0.8]); points.push([X + W*0.8, Y + H]); break;
- case ')': points.push([X + W*0.2, Y]); points.push([X + W*0.7, Y + H*0.2]); points.push([X + W*0.7, Y + H*0.8]); points.push([X + W*0.2, Y + H]); break;
- case '_': points.push([X, Y + H]); points.push([X + W, Y + H]); break;
- case '+': points.push([X + W/2, Y + H*0.2]); points.push([X + W/2, Y + H*0.8]); points.push(null); points.push([X + W*0.1, Y + H/2]); points.push([X + W*0.9, Y + H/2]); break;
- case '[': points.push([X + W*0.7, Y]); points.push([X + W*0.3, Y]); points.push([X + W*0.3, Y + H]); points.push([X + W*0.7, Y + H]); break;
- case ']': points.push([X + W*0.3, Y]); points.push([X + W*0.7, Y]); points.push([X + W*0.7, Y + H]); points.push([X + W*0.3, Y + H]); break;
- case '{': points.push([X + W*0.8, Y]); points.push([X + W*0.4, Y + H*0.1]); points.push([X + W*0.4, Y + H*0.4]); points.push([X + W*0.2, Y + H*0.5]); points.push([X + W*0.4, Y + H*0.6]); points.push([X + W*0.4, Y + H*0.9]); points.push([X + W*0.8, Y + H]); break;
- case '}': points.push([X + W*0.2, Y]); points.push([X + W*0.6, Y + H*0.1]); points.push([X + W*0.6, Y + H*0.4]); points.push([X + W*0.8, Y + H*0.5]); points.push([X + W*0.6, Y + H*0.6]); points.push([X + W*0.6, Y + H*0.9]); points.push([X + W*0.2, Y + H]); break;
- case '|': points.push([X + W/2, Y]); points.push([X + W/2, Y + H]); break;
- case '\\': points.push([X, Y]); points.push([X + W, Y + H]); break;
- case ';': points.push([X + W/2, Y + H*0.4]); points.push([X + W/2, Y + H*0.7]); points.push(null); points.push([X + W/2, Y + H*0.9]); points.push([X + W*0.4, Y + H]); break;
- case ':': points.push([X + W/2, Y + H*0.3]); points.push([X + W/2, Y + H*0.4]); points.push(null); points.push([X + W/2, Y + H*0.6]); points.push([X + W/2, Y + H*0.7]); break;
- case '"': points.push([X + W*0.3, Y]); points.push([X + W*0.3, Y + H*0.3]); points.push(null); points.push([X + W*0.7, Y]); points.push([X + W*0.7, Y + H*0.3]); break;
- case '\'': points.push([X + W/2, Y]); points.push([X + W/2, Y + H*0.3]); break;
- case ',': points.push([X + W/2, Y + H*0.7]); points.push([X + W*0.4, Y + H]); break;
- case '.': points.push([X + W/2, Y + H*0.9]); points.push([X + W/2, Y + H]); break;
- case '/': points.push([X + W, Y]); points.push([X, Y + H]); break;
- case '<': points.push([X + W*0.8, Y]); points.push([X + W*0.2, Y + H/2]); points.push([X + W*0.8, Y + H]); break;
- case '>': points.push([X + W*0.2, Y]); points.push([X + W*0.8, Y + H/2]); points.push([X + W*0.2, Y + H]); break;
- case '?': points.push([X + W*0.1, Y + H*0.3]); points.push([X + W*0.5, Y]); points.push([X + W*0.9, Y + H*0.3]); points.push([X + W*0.7, Y + H*0.5]); points.push([X + W*0.5, Y + H*0.5]); points.push([X + W*0.5, Y + H*0.7]); points.push(null); points.push([X + W*0.5, Y + H*0.9]); points.push([X + W*0.5, Y + H]); break;
- case '-': points.push([X + W * 0.1, Y + H * 0.5]); points.push([X + W * 0.9, Y + H * 0.5]); break;
- case ' ': return [];
- default: console.warn(`Character '${char}' not implemented for drawing.`); return null;
- }
- return points;
- }
- async function startAutoGuessing(words, delay) {
- console.log(`Starting autoguess with ${words.length} words, delay ${delay}ms`);const chatInput=document.querySelector(".chat-form input[type='text']");const chatForm=document.querySelector(".chat-form");const autoguessBtn=document.getElementById(autoguessButtonId);if(!chatInput||!chatForm){console.error("Autoguess failed: Could not find chat input or form.");isAutoGuessing=!1;if(autoguessBtn){autoguessBtn.textContent='Autoguess';autoguessBtn.style.backgroundColor='var(--skribbl-red)'}return}if(autoGuessTimeoutId)clearTimeout(autoGuessTimeoutId);currentWordListForAutoguess=[...words];for(let i=0;i<currentWordListForAutoguess.length;i++){const word=currentWordListForAutoguess[i];if(!word)continue;if(!isAutoGuessing){console.log("Autoguess stopped by user.");if(autoguessBtn){autoguessBtn.textContent='Autoguess';autoguessBtn.style.backgroundColor='var(--skribbl-red)'}return}if(guessedWordsThisRound.has(word)){console.log(`Autoguess skipping already guessed: ${word}`);continue}const hintInfo=getHintInfo();if(!hintInfo||hintInfo.length!==word.length){console.log("Hints changed/disappeared, stopping autoguess.");isAutoGuessing=!1;if(autoguessBtn){autoguessBtn.textContent='Autoguess';autoguessBtn.style.backgroundColor='var(--skribbl-red)'}return}chatInput.value=word;chatInput.dispatchEvent(new Event('input',{bubbles:!0}));await sleep(15);if(!isAutoGuessing){if(autoguessBtn){autoguessBtn.textContent='Autoguess';autoguessBtn.style.backgroundColor='var(--skribbl-red)'}return}chatForm.requestSubmit();console.log(`Autoguessed: ${word}`);guessedWordsThisRound.add(word);const dbResultsDiv=document.getElementById(dbResultsId);if(dbResultsDiv&&dbResultsDiv.style.display!=='none'){const buttonToDisable=dbResultsDiv.querySelector(`button[data-word="${word}"]`);if(buttonToDisable){buttonToDisable.classList.add('guessed');buttonToDisable.disabled=!0}}if(i<currentWordListForAutoguess.length-1){await sleep(delay)}}if(isAutoGuessing){console.log("Autoguess finished: exhausted word list.");isAutoGuessing=!1;if(autoguessBtn){autoguessBtn.textContent='Autoguess';autoguessBtn.style.backgroundColor='var(--skribbl-red)'}}
- }
- function createGUI() {
- const existingContainer = document.getElementById(guiContainerId); if (existingContainer) { existingContainer.remove(); }
- const existingPanel = document.getElementById(panelId); if(existingPanel) { existingPanel.remove(); }
- const existingStyle = document.getElementById(styleId); if(existingStyle) { existingStyle.remove(); }
- const css = ` :root { --skribbl-bg-dark: #1a1a2e; --skribbl-bg-med: #1f1f38; --skribbl-bg-light: #2a2a4a; --skribbl-text-input-light:rgb(32, 31, 31); --skribbl-text-light: #00f5d4; --skribbl-text-dark: #00f5d4; --skribbl-cyan: #00f5d4; --skribbl-cyan-hover: #00c4a6; --skribbl-blue: #0d6efd; --skribbl-grey: #6c757d; --skribbl-red: #dc3545; --skribbl-yellow: #ffc107; --skribbl-border: #40405f; } #${panelId} { position: fixed; top: 10px; right: 10px; width: 280px; background-color: var(--skribbl-bg-med); color: var(--skribbl-text-light); border: 1px solid var(--skribbl-border); border-radius: 8px; padding: 15px; padding-top: 40px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); display: none; z-index: 99998; max-height: 90vh; overflow-y: auto; font-family: 'Inter', sans-serif; opacity: 0; transform: translateX(20px); transition: opacity 0.3s ease, transform 0.3s ease; } #${panelId}.visible { opacity: 1; transform: translateX(0); } #${panelId}::-webkit-scrollbar { width: 10px; } #${panelId}::-webkit-scrollbar-track { background: var(--skribbl-bg-dark); border-radius: 5px; } #${panelId}::-webkit-scrollbar-thumb { background-color: var(--skribbl-cyan); border-radius: 5px; border: 2px solid var(--skribbl-bg-dark); } #${panelId}::-webkit-scrollbar-thumb:hover { background-color: var(--skribbl-cyan-hover); } #${closeGuiButtonId} { position: absolute; top: 8px; right: 10px; background: none; border: none; font-size: 20px; font-weight: bold; color: var(--skribbl-grey); cursor: pointer; padding: 0 5px; line-height: 1; transition: color 0.2s ease; } #${closeGuiButtonId}:hover { color: var(--skribbl-text-light); } #${panelId} h4 { margin-top: 0; margin-bottom: 15px; text-align: center; color: var(--skribbl-text-light); } #${panelId} p { margin-top: 0; margin-bottom: 5px; font-weight: bold; } .${inputClass} { display: block; width: calc(100% - 14px); margin-bottom: 8px; padding: 8px; border: 1px solid var(--skribbl-border); border-radius: 4px; background-color: var(--skribbl-bg-light); color: var(--skribbl-text-input-light); font-family: inherit; font-size: 13px; transition: border-color 0.2s ease, box-shadow 0.2s ease; } .${inputClass}:focus { outline: none; border-color: var(--skribbl-cyan); box-shadow: 0 0 0 3px rgba(0, 245, 212, 0.25); } #${panelId} button { width: 100%; padding: 9px 12px; margin-top: 5px; border: none; border-radius: 5px; cursor: pointer; font-weight: bold; font-family: inherit; font-size: 14px; transition: all 0.2s ease; } #${panelId} button:hover { filter: brightness(1.15); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2); transform: translateY(-1px); } #${panelId} button:active { filter: brightness(0.95); transform: translateY(0px); box-shadow: inset 0 1px 3px rgba(0,0,0,0.2); } #${drawButtonId} { background-color: var(--skribbl-blue); color: white; } #${dbButtonId} { background-color: var(--skribbl-grey); color: white; margin-bottom: 10px; } #${autoguessButtonId} { background-color: var(--skribbl-red); color: white; margin-bottom: 10px; } #${autoguessButtonId}.guessing { background-color: var(--skribbl-yellow); color: var(--skribbl-text-dark); } #${dbResultsId} { margin-top: 10px; padding: 10px; border: 1px dashed var(--skribbl-border); border-radius: 4px; min-height: 50px; max-height: ${wordDbResultsMaxHeight}; overflow-y: auto; display: none; font-size: 12px; word-break: break-word; background-color: var(--skribbl-bg-light); transition: max-height 0.3s ease; } #${dbResultsId} p { color: var(--skribbl-text-light); } #${dbResultsId} ul { list-style: none; padding-left: 5px; margin: 0; } #${dbResultsId} li { margin-bottom: 3px; } .skribbl-db-word-button { background: none; border: none; padding: 2px 4px; margin: 0; text-align: left; color: var(--skribbl-cyan); cursor: pointer; text-decoration: none; display: inline; font-family: inherit; font-size: inherit; border-radius: 3px; transition: background-color 0.2s ease, color 0.2s ease; } .skribbl-db-word-button:hover { background-color: rgba(0, 245, 212, 0.1); color: var(--skribbl-cyan-hover); } .skribbl-db-word-button.guessed, .skribbl-db-word-button:disabled { color: var(--skribbl-grey); text-decoration: line-through; cursor: default; background-color: transparent; } .skribbl-db-word-button.guessed:hover, .skribbl-db-word-button:disabled:hover { color: var(--skribbl-grey); text-decoration: line-through; background-color: transparent; } #${autoguessSliderId} { cursor: pointer; width: auto; margin: 0; flex-grow: 1; accent-color: var(--skribbl-cyan); height: 5px; } #${autoguessSliderId}::-webkit-slider-thumb { appearance: none; width: 16px; height: 16px; background: var(--skribbl-cyan); border-radius: 50%; cursor: pointer; margin-top: -5px; box-shadow: 0 0 5px rgba(0, 245, 212, 0.5); } #${autoguessSliderId}::-moz-range-thumb { width: 16px; height: 16px; background: var(--skribbl-cyan); border-radius: 50%; cursor: pointer; border: none; box-shadow: 0 0 5px rgba(0, 245, 212, 0.5); } #${autoguessSliderId}::-webkit-slider-runnable-track { height: 6px; background: var(--skribbl-bg-light); border-radius: 3px; border: 1px solid var(--skribbl-border); } #${autoguessSliderId}::-moz-range-track { height: 6px; background: var(--skribbl-bg-light); border-radius: 3px; border: 1px solid var(--skribbl-border); } #${autoguessDelayValueId} { min-width: 45px; text-align: right; flex-shrink: 0; color: var(--skribbl-text-light); } #skribblDrawAutoguessSliderContainer { display: flex; align-items: center; gap: 10px; font-size: 12px; width: 100%; } #${openButtonId} { padding: 8px 15px; background-color: var(--skribbl-bg-med); color: var(--skribbl-cyan); border: 1px solid var(--skribbl-cyan); border-radius: 20px; cursor: pointer; box-shadow: 0 2px 5px rgba(0, 245, 212, 0.2); transition: all 0.2s ease; font-weight: bold; font-size: 14px; } #${openButtonId}:hover { background-color: var(--skribbl-bg-light); box-shadow: 0 3px 8px rgba(0, 245, 212, 0.4); transform: translateY(-1px); } #${openButtonId}:active { transform: translateY(0px); } `;
- const styleSheet = document.createElement("style"); styleSheet.id = styleId; styleSheet.innerText = css; document.head.appendChild(styleSheet);
- const container = document.createElement('div');container.id=guiContainerId; Object.assign(container.style,{position:'fixed',zIndex:'99999',top:'10px',left:'50%',transform:'translateX(-50%)'});
- const openButton=document.createElement('button');openButton.id=openButtonId;openButton.textContent='✏️ Open GUI'; container.appendChild(openButton);
- const panel=document.createElement('div');panel.id=panelId; Object.assign(panel.style,{position:'fixed',top:'10px',right:'10px',width:'280px',display:'none',zIndex:'99998'});
- const closeButton=document.createElement('button');closeButton.id=closeGuiButtonId;closeButton.textContent='✕'; panel.appendChild(closeButton);
- const title=document.createElement('h4');title.textContent='Skribbl.io cheats made by bleh2rich https://nohesi.lol'; panel.appendChild(title);
- const drawSection=document.createElement('div'); const drawTitle=document.createElement('p');drawTitle.textContent='Draw Text:'; drawSection.appendChild(drawTitle); for(let i=0;i<maxLines;i++){const input=document.createElement('input');input.type='text';input.placeholder=`Line ${i+1}`;input.className=inputClass;drawSection.appendChild(input)} const drawButton=document.createElement('button');drawButton.id=drawButtonId;drawButton.textContent='Draw'; drawSection.appendChild(drawButton);panel.appendChild(drawSection);
- const dbSection=document.createElement('div'); const dbButton=document.createElement('button');dbButton.id=dbButtonId;dbButton.textContent='Show/Refresh Word DB'; dbSection.appendChild(dbButton); const dbResultsDiv=document.createElement('div');dbResultsDiv.id=dbResultsId; dbSection.appendChild(dbResultsDiv);panel.appendChild(dbSection);
- const autoguessSection=document.createElement('div'); const autoguessBtn=document.createElement('button');autoguessBtn.id=autoguessButtonId;autoguessBtn.textContent='Autoguess'; autoguessSection.appendChild(autoguessBtn); const sliderContainer=document.createElement('div'); sliderContainer.id = 'skribblDrawAutoguessSliderContainer'; const slider=document.createElement('input');slider.id=autoguessSliderId;slider.type='range';slider.min='25';slider.max='1000';slider.value=defaultAutoguessDelay; const delayValueSpan=document.createElement('span');delayValueSpan.id=autoguessDelayValueId;delayValueSpan.textContent=`${defaultAutoguessDelay}ms`; sliderContainer.appendChild(slider);sliderContainer.appendChild(delayValueSpan); autoguessSection.appendChild(sliderContainer);panel.appendChild(autoguessSection);
- document.body.appendChild(container);document.body.appendChild(panel);
- openButton.addEventListener('click', () => { const panel = document.getElementById(panelId); if(panel) { const isOpening = (panel.style.display === 'none' || panel.style.display === ''); if (isOpening) { panel.style.display = 'block'; setTimeout(() => panel.classList.add('visible'), 10); startHintObserver(); } else { panel.classList.remove('visible'); setTimeout(() => { panel.style.display = 'none'; }, 300); stopHintObserver(); } } });
- closeButton.addEventListener('click', () => { stopHintObserver(); if (isAutoGuessing) { isAutoGuessing = false; if (autoGuessTimeoutId) clearTimeout(autoGuessTimeoutId); } const panel = document.getElementById(panelId); if (panel) { panel.classList.remove('visible'); setTimeout(() => { panel.style.display = 'none'; }, 300); } });
- drawButton.addEventListener('click', async () => { const inputs=panel.getElementsByClassName(inputClass);const linesToDraw=[]; for(let i=0;i<inputs.length;i++){if(inputs[i].value.trim()!==''){linesToDraw.push(inputs[i].value)}} if(linesToDraw.length>0){ try{await drawTextLines(linesToDraw);}catch(error){console.error("Drawing script error:",error);alert("An error occurred during drawing.");}} });
- dbButton.addEventListener('click', () => { guessedWordsThisRound.clear(); updateWordDbDisplay(); const resultsDiv = document.getElementById(dbResultsId); if(resultsDiv)resultsDiv.style.display = 'block'; startHintObserver(); });
- slider.addEventListener('input', (e) => { currentAutoguessDelay=parseInt(e.target.value,10);delayValueSpan.textContent=`${currentAutoguessDelay}ms` });
- autoguessBtn.addEventListener('click', () => { const button = document.getElementById(autoguessButtonId); if(isAutoGuessing){ isAutoGuessing=!1;if(autoGuessTimeoutId)clearTimeout(autoGuessTimeoutId); button.textContent='Autoguess';button.classList.remove('guessing'); } else { const hintInfo=getHintInfo();const db=parseWordDatabase(WORD_DATABASE_CSV_STRING); const{filteredWords}=filterWords(hintInfo,db); if(filteredWords.length>0){ isAutoGuessing=!0;button.textContent='Stop Autoguess';button.classList.add('guessing'); startAutoGuessing(filteredWords,currentAutoguessDelay); } else { alert("Cannot start autoguess: No possible words found."); } } });
- }
- function startHintObserver() {
- if (hintObserver) return; const targetNode = document.querySelector("#game-word .container"); if (!targetNode) { return; }
- const config = { childList: true, characterData: true, subtree: true };
- const callback = function(mutationsList, observer) {
- const dbResultsDiv = document.getElementById(dbResultsId); const isDbVisible = dbResultsDiv && dbResultsDiv.style.display !== 'none';
- clearTimeout(window.skribblHintUpdateTimeout); window.skribblHintUpdateTimeout = setTimeout(() => {
- const hintInfo = getHintInfo(); if (isDbVisible) { updateWordDbDisplay(); }
- const currentlyGuessing = isAutoGuessing;
- if (currentlyGuessing) {
- const newWordList = isDbVisible ? currentWordListForAutoguess : filterWords(hintInfo, parseWordDatabase(WORD_DATABASE_CSV_STRING)).filteredWords;
- isAutoGuessing = false; if (autoGuessTimeoutId) clearTimeout(autoGuessTimeoutId); autoGuessTimeoutId = null;
- const autoguessBtn = document.getElementById(autoguessButtonId);
- if (autoguessBtn) {
- if (hintInfo && newWordList && newWordList.length > 0) {
- const freshFiltered = filterWords(hintInfo, parseWordDatabase(WORD_DATABASE_CSV_STRING)).filteredWords; currentWordListForAutoguess = [...freshFiltered];
- if (currentWordListForAutoguess.length > 0) {
- isAutoGuessing = true; autoguessBtn.textContent = 'Stop Autoguess'; autoguessBtn.classList.add('guessing');
- setTimeout(() => { if (isAutoGuessing) { startAutoGuessing(currentWordListForAutoguess, currentAutoguessDelay); } }, 50);
- } else { autoguessBtn.textContent = 'Autoguess'; autoguessBtn.classList.remove('guessing'); }
- } else { autoguessBtn.textContent = 'Autoguess'; autoguessBtn.classList.remove('guessing'); }
- }
- }
- if (isAutoGuessing && !hintInfo) {
- isAutoGuessing = false; const autoguessBtn = document.getElementById(autoguessButtonId);
- if(autoguessBtn) { autoguessBtn.textContent = 'Autoguess'; autoguessBtn.classList.remove('guessing'); }
- if (autoGuessTimeoutId) clearTimeout(autoGuessTimeoutId);
- }
- }, 250);
- };
- hintObserver = new MutationObserver(callback);
- try { hintObserver.observe(targetNode, config); } catch (error) { hintObserver = null; }
- }
- function stopHintObserver() { if(hintObserver){hintObserver.disconnect();hintObserver=null;clearTimeout(window.skribblHintUpdateTimeout);} }
- createGUI();
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址