πŸ“– 8-BALL POOL← WIKI
8-Ball Pool screenshot

The WOW COOL Billiards Club: real spin, tight pockets, and full bar-rules 8-ball.

8-Ball Pool is a to-scale billiards sim with proper cue physics β€” english, follow and draw all behave the way they should off the cushions. It plays full bar-rules 8-ball: break the rack, claim solids or stripes on the first legal pot, run your group and sink the 8 to win. Break off against three AI house sharks for ticket stakes, pass the cue in local 2-player, or join a live online table with chat. Wins are what the leaderboard counts.

β–Ά PLAY 8-BALL POOLVERSION Hby Clutch Play Co.

STORY & LORE

The WOW COOL Billiards Club

A quiet green-felt corner of Wow Cool World. The table is rendered to scale with tight, punishing pockets and a felt logo at its heart. Everything about it β€” the rack, the rails, the way the cue ball skids and grabs β€” is built to feel like a real table, not an arcade approximation.

Play For Tickets

The house sharks play for keeps: beat one and you take real account tickets (🎟), lose and you're out the ante. Local 2-player is for honor only, and online tables let you rack up against real people β€” chat drawer included.

CHARACTERS & ENEMIES

Chalk CharlieEASY β€” the warm-upENEMY

Barely knows which end of the cue to hold. Misses makeable balls and leaves you the table. The gentlest way to learn the physics and pocket a few tickets.

Win 10 🎟Loss 5 🎟
Felt FoxMEDIUM β€” the steady handENEMY

Pots clean and thinks one ball ahead. Won't hand you the rack β€” you'll have to earn your run and punish his misses.

Win 25 🎟Loss 5 🎟
The SharkHARD β€” position play & no mercyBOSS

Plays position, leaves you safeties, and clears the table when you blink. Beating The Shark is the real test of the club β€” and the biggest ticket payout.

Win 60 🎟Loss 5 🎟

HOW IT PLAYS

Aim & Power

Drag to aim the cue and preview your line, then set the power meter for how hard you strike β€” drag the handle and let go to shoot. It's all touch/drag, no twitch reflexes, just angles and pace. The meter and the spin puck move to the edge of the screen with the most room to spare, so the table is always as big as the screen allows and nothing is ever sitting on the cloth.

Spin (English, Follow & Draw)

Tap the cue-ball chip and place the contact point: high sends the cue forward after impact (follow), low pulls it back (draw), and left/right put english on it that changes how it comes off the cushions. Spin is how you play position for your next shot.

Bar-Rules 8-Ball

The table is OPEN after the break β€” the first ball you legally pot assigns your group, solids or stripes. Sink all seven of your group, then the 8-ball, to win. Call it clean and run the rack.

Fouls & Ball-in-Hand

Scratching the cue, hitting the wrong group first, or failing to drive any ball to a rail after contact is a foul β€” and hands your opponent ball-in-hand anywhere on the table. Pot the 8-ball early, or scratch as it drops, and you lose on the spot.

The Break

Place the cue ball behind the head string and break. A legal break drives four or more balls to the rails or pots one; a soft break is a foul that gives ball-in-hand in the kitchen. Sink the 8 on the break and it's simply re-spotted β€” you keep shooting.

Three Ways To Play

VS AI for ticket stakes against the three sharks, LOCAL 2P pass-the-cue on one screen, or ONLINE live tables against real players with a chat drawer. Only wins move the leaderboard.

GAME MODES

Pick your table from the club's front room.

10–60 🎟
VS AI
Take on the three house sharks for ticket stakes.
FOR HONOR
Local 2P
Pass-the-cue hotseat β€” settle it on one screen.
LIVE
Online
Live tables against real players, with chat.

GALLERY

CUE-BALL SPIN

Tap the cue-ball chip and place the contact point.

Contact pointEffect
High (top)Follow β€” cue rolls forward after contact
Low (bottom)Draw β€” cue pulls back after contact
Left / RightEnglish β€” side spin alters angle off the cushions
CentreNatural / stun β€” stops or rolls true

BAR-RULES CHEAT SHEET

SituationRuling
After the breakTable is OPEN β€” first legal pot sets your group
To winPot all seven of your group, then the 8-ball
Scratch / wrong ball / no railFoul β€” opponent gets ball-in-hand anywhere
Soft breakFoul β€” ball-in-hand in the kitchen
8-ball on the breakRe-spotted; you carry on shooting
8-ball early, or scratch on the 8You lose the game

WHERE THE CONTROLS SIT

Chosen per screen, on every resize, by whichever layout leaves the table biggest.

Screen shapeControls dockWhy
Phone uprightAlong the bottomThe table turns sideways to fill a tall screen, so width is scarce and height is not
Phone on its sideLeft and right marginsWider than a 2:1 table, so height is scarce and the side margins are free
Tablet or laptopAlong the bottomSquarer than the table, so width binds and there is height going spare
Any screen, portal chromeClear of the watermark and EXITThe frame publishes where its own chrome is; the table and the controls both keep out of it

VERSION HISTORY

VERSION H2026-08-31
  • THE TABLE NOW GETS OUT OF THE WAY OF ITSELF. The margins around the table used to be four hand-tuned numbers, and hand-tuned numbers go stale the moment anything moves: the spin puck sat on the bottom-left corner pocket, the player cards sat on the top rail, and the portal's own watermark and EXIT button β€” which are painted over the game and are not the game's to move β€” sat wherever they landed. The layout is no longer authored. Every control's real on-screen rectangle is measured, the frame is asked where its own chrome is, and the table shrinks until it touches none of them. Move a control and the table gets out of its way on its own.
  • THE CONTROLS DOCK TO WHICHEVER EDGE HAS ROOM TO SPARE. A pool table is about 2:1. Turn a phone sideways and the screen is wider than that, so height is the scarce axis and a control docked along the bottom costs real table β€” the spin puck and the power meter belong in the side margins, which are free. Hold a tablet sideways, or open a laptop, and the screen is squarer than the table: now width binds and the same controls belong along the bottom. Both layouts are costed on every resize and the better one wins. On a phone held sideways the table went from a third of the screen to well over half; on a 1440x900 laptop, from 63% to 76%.
  • MENUS NEVER SCROLL. A menu that was too tall was scaled down to fit β€” except the thing being scaled was the scroll container itself, so its viewport and its contents shrank by the same factor and the ratio between them, which is the only thing that decides whether it scrolls, never moved. The menu got smaller and went on scrolling exactly as much as before. Five of the eight screens also had no content wrapper at all, so the fitting was scaling the whole screen, background and all. Every screen at every size now fits without scrolling.
  • THE BALLS ROLL IN THREE DIMENSIONS. Orientation was two angles added up independently, and rotations do not work like that: roll a ball a metre east then a metre north and it does not end up where north-then-east would leave it, so the numbers drifted and a ball sent round a cushion came home wearing a different face. Each ball now carries a real orientation, and the stripe is a genuine band wound round its pole rather than an ellipse painted across the front β€” it stays put when the ball spins about its own stripe axis and tumbles when it does not, and the numbers foreshorten into the surface as they go over the edge.
  • A STRAY TOUCH NO LONGER TAKES YOUR SHOT. Letting go of the power meter fired unconditionally, and on a phone that meter is docked along the bottom edge, exactly where a thumb rests while you look at the table. Firing now needs either a drag or a deliberate hold; brushing it costs nothing. Pulling back and releasing still fires instantly.
  • THE POWER METER WAS BEING MEASURED WHILE IT WAS STILL HIDDEN, so it read as zero by zero, decided it was the upright rail even in the docked horizontal layout, and parked its handle along the wrong axis β€” that was the stray '0%' chip sitting on top of the POWER caption. On a phone inside the portal the docked bar was also having the watermark's left inset and the EXIT button's right inset added to both of its edges, which squeezed a 226px control down to about ten. An inset says which edge is occupied, not that you owe it margin on every side.
  • IN-GAME MESSAGES MOVED INTO THE SCOREBOARD. A toast floating over the cloth landed on the felt in landscape and straight across the spin puck and the POWER caption in portrait, and there is no spot over a pool table that is reliably free. They now replace the stake line in the HUD's centre slot, where the call-shot prompt already lives, so nothing is ever painted over the table.
  • Verified on real phone viewports with touch β€” placing, aiming, spin, and the power meter all driven by taps and drags at 390x844, 360x740 and sideways at 844x390 β€” so the game is now marked phone-ready and no longer warns that it is unverified.
  • THE POWER METER LOOKS LIKE A CUE BEING DRAWN BACK. It was a black tube with a hairline of ticks and a nub on it β€” legible, but it read as a thermometer showing you a number rather than something you grab and pull. The channel is recessed with the ticks inside it and the quarter marks longer than the rest, so a shot can be measured and repeated; the charge runs cool to hot behind a bright leading edge; and its glow rises with the power, so you can feel where you are without looking away from the table. The grip is a knurled brass slab with the percentage on it, and it is narrower than the rail it runs in β€” it had been left at its old width when the rail was slimmed, so it hung off both sides again.
  • THE SPIN PUCK MOVED TO THE CORNER. Centred in the left margin it sat at exactly cue height, so on most shots the cue stick ran straight across it β€” a white ball with a crosshair on it, overlapping the real cue, right where you are aiming. It keeps the left margin, which is what stops it costing the table any height on a sideways phone, but sits at the bottom of it now, clear of the cue's swing.
VERSION G2026-08-30
  • THE TOP FIFTH OF THE POWER METER DID NOTHING. The curve was a smoothstep multiplied by 1.15 and then clamped, so it hit maximum speed at about 79% β€” every setting from 0.80 to 1.00 launched the cue ball at exactly the same 5.6 m/s. Pulling from 80% to full was wasted motion. It now reaches full speed at full power and nowhere before it, with a linear term mixed in so the last few percent are still worth having, and the ceiling raised to 6.6 m/s so a break feels like a break.
  • SQUIRT. Strike a ball off-centre and it does not set off down the line of the cue β€” the tip pushes it sideways as it grips, and it leaves squirting away from the side you hit, by a few degrees. Without it, side spin was a free ride with no cost, which is the single biggest way a pool game stops feeling like pool. Modelled at about 3 degrees at full english, and the aiming guide follows the same deflected line, because a guide that ignored what the physics did would be the game lying about its own rules.
  • THE PHYSICS IS NOW PROVEN, NOT ASSUMED. A new suite plays single shots on a bare table and checks the laws a player has in their hands: follow carries the cue ball past the contact point, stun leaves it there, draw pulls it back; a stun cut sends the cue ball off at 85 degrees to the object ball (the 90-degree tangent rule); a full straight hit passes 94% of its speed on; a cushion returns the ball at 57 degrees having arrived at 55, keeping 77% of its speed. Shot times on a real rack: break 2.75s, ordinary shot 4.1s.
  • PART OF THE MENU WAS UNREACHABLE ON A PHONE. The scrolling column capped its own height at the viewport with nowhere to put the rest, and flex centring pushed overflow off BOTH ends β€” so on a 390x844 screen the HELP button was simply clipped away with no way to scroll to it. Both fixed; every control on every screen is now reachable down to a 320x568 display.
VERSION F2026-08-30
  • CALL YOUR POCKET FOR THE 8 β€” and only the 8. Nominating a pocket for every tap is a lot of ceremony for a casual table, but the 8 is the shot the frame is about, and dropping it by luck somewhere you were not aiming should not win a game. Six markers appear on the real pockets when you are on the 8; the shot is REFUSED until you pick one, because letting it fly and then ruling it a loss is how call-shot earns a reputation for being unfair. Potting the 8 anywhere else loses, as it does under WPA. The AI calls too, from the pocket it was already aiming at, and the call crosses the wire with the shot so both online players judge the same 8-ball the same way.
  • SIX BALL SETS, AND FOUR ITEM SETS. Europe (solid colours, no numbers), RvV (red against blue), Old School (white against black, rainbow 8, striped cue), Psychedelic (a gradient per ball, seeded from its number so it never shimmers and both players see the same table), Rainbow (warm against cold) and CvP (checks against polka dots). Plus Grunge, Fancy and Bodyguard as full sets β€” a cloth, a cue and a ball set that equip together. Every set has to pass one test: you can tell the two groups apart at a glance. Psychedelic failed it first time β€” solids and stripes carried the same gradient and were indistinguishable above the band, where you actually look β€” so its stripes now wear a pale body with the gradient in the band.
  • THE FIFTEEN WOWCOOL COLOURWAYS. The seven rainbow colours plus pink, white, black, gray, brown, tan, teal and lime green, as both table cloths and cues. The list lives at lib/wowcool-colors.ts and belongs to the whole site, so a Teal cue and a Teal table are the same teal in every game; the copy inside the game is checked against it by the test suite.
  • THE DROP FEELS LIKE A DROP. It was a shrink and a fade on top of the pocket. The ball is now pulled to the pocket centre accelerating, dives on a curve so the last of the descent is fastest, goes dark as it sinks because the inside of a pocket has no light in it, and only fades once it is already small and dark.
  • FOUR TIMES THE FRAME RATE ON A PHONE. On a throttled handset the game ran at 6-7fps. Profiling found the cost was not the physics (2ms) but the drawing: a full-canvas RADIAL gradient rasterised every frame for the backdrop, a second one for the lamp glow, and β€” the big one β€” a fresh font string built for every ball on every frame, which makes the canvas re-parse the font a thousand times a second. Backdrop and glow are baked into one sprite; the font size is snapped to the half pixel so the string repeats. Rendering went from 21ms a frame to 3.3ms, and a throttled phone from 7fps to 27-32.
VERSION E2026-08-30
  • THE CLOTH LOOKS LIKE CLOTH. Noise alone gives texture but not baize. Three things sit on top of it now, all drawn once to an offscreen canvas and blitted, so they cost nothing per frame: a directional nap running the length of the table, because worsted cloth is brushed along the long axis and catches light in lines rather than evenly; a lit centre falling away into the corners, because the cloth under the lamp is not the same green as the cloth in the corner; and a soft shadow cast inward by the cushions, which is what makes the rails look like they stand ON the bed rather than being butted up against it. The table logo dropped from 16% to 8.5% opacity β€” it was competing with the balls for attention on every frame.
  • Whole matches are now played and watched. scripts/test-pool-games.mjs runs real games through the actual turn and rules loop and inspects the table on EVERY animation frame β€” 8,800 inspections across four games β€” checking that no two balls merge, none leaves the cushions, none goes NaN, all sixteen exist exactly once, and the match never deadlocks. Deepest overlap seen was 0.69mm of a 57mm ball, which is a contact frame resolving, not balls passing through each other.
VERSION D2026-08-29
  • A BALL COULD LEAVE THE TABLE. The cushions are cut away at the pockets, so at full power a ball can slip through a jaw without landing inside a capture radius. The out-of-world net started two and a half ball radii past the rail, which left a dead zone: a ball could come to rest just outside the cloth β€” past the cushion but not far enough to be swallowed β€” and sit there, off the table, while the game still counted it in play. One shot in four hundred at maximum power did exactly that to the CUE ball. The line is now drawn where it belongs, and only once a ball has stopped, so a ball still rattling in a jaw is left alone to rattle back out.
  • A 29-assertion regression suite now drives the real game in a browser: 400 max-power shots with no ball escaping, identical shots producing identical tables (which is what keeps two online peers in sync), draw and follow leaving the cue ball in genuinely opposite places, the rack being tournament legal, the power handle tracking the pointer and staying seated in both orientations, no control overlapping another or leaving the screen at five viewports, and the emote set matching the player's own avatar.
VERSION C2026-08-29
  • THE CUE IS A CUE NOW. It was one stroked line at a constant width β€” a dowel. A real cue runs about 13mm at the tip to 30mm at the butt, and from directly above that taper is most of what makes it read as a cue at all. It is drawn as a filled quad so it can actually taper, with a leather tip, a white ferrule, collars at the joint, the wrap you hold, a butt cap, and a lit edge down one side that is what makes a cylinder look round from overhead.
  • CUE SKINS. Three to start β€” House Maple, Ebony Pro and Brass Sovereign β€” on the same footing as the table cloths and ball sets, with their own tab in Customize. An owned shop item with metadata.slot 'cue' drops straight in beside them, so adding one is a data change rather than a code change. The preview is drawn with the same taper and collars as the real thing, so it cannot drift from what you get on the table.
  • EMOTES, AND THEY ARE YOURS. The set always leads with your own avatar emoji, so the character you picked on the site is what goes across the table; the rest are the four a pool match needs. What the button shows is exactly what is sent and exactly what pops β€” nothing re-maps it on the way out. Bubbles rise from the sender's player card, so an emote is attributed without a name on it, and a peer's emote can only ever appear over the peer's card. Same wire shape HoofBeat already used, so the two games speak one protocol. Online matches only, with a short cooldown that greys the buttons so the limit is visible rather than mysterious.
VERSION B2026-08-29
  • THE POWER METER WAS INVERTED. Dragging it returned full power at the BOTTOM of the track while the handle jumped to the TOP β€” so the thing you were dragging fled to the opposite end of the rail the moment you touched it, and the fill disagreed with both. Power now grows upward, the handle sits under your finger, and the percentage is stated on the handle itself, because "about two thirds" is not something you can repeat on the next shot.
  • THE SPIN CONTROL WAS CLIPPED OFF THE SCREEN. Its caption was absolutely positioned below a puck pinned 12px from the bottom, so the word SPIN was cut in half by the viewport edge. The puck is now a column that lays its label out normally, and it is 78px β€” a thumb target rather than something to poke at.
  • THE POWER METER WAS SITTING ON THE TABLE. On a phone it stood upright against the right edge, covering the right rail and the whole side pocket β€” the game's own controls were on the playfield. On narrow screens it now lies down and docks below the table, anchored between the spin puck and the menu button rather than centred, since centring a fixed width is what put its end under the puck. A leftover `body.tall` rule outranked the new layout on specificity and kept dragging it back over the menu; that now agrees instead of fighting.
  • BALLS ARE SPHERES NOW. The shading sprite was an ambient darkening and one soft highlight. It is four layers built at twice the resolution: body shading offset away from the light, a contact crescent that seats the ball on the cloth, a tight specular core with a hard hotspot inside it, and a rim light bouncing off the felt along the lower edge β€” the last of which is what stops the bottom of a ball dying into the cloth. Tuned back once, because the first pass turned the CUE BALL grey, and a cue ball you cannot pick out at a glance is a real problem.
  • PLAYER CARDS SAY SOMETHING. Glass panels with a lit accent bar and a slow breathing glow on whoever is at the table, so whose shot it is reads three ways at once. The ball tray draws the balls you still have to clear as real balls, keeps a cleared ball's place as a dark socket so the row reads as progress, and calls ON THE 8 when you get there.
VERSION A2026-07-16
  • Initial catalogued version: to-scale table, spin physics (english/follow/draw), and full bar-rules 8-ball.
  • Three AI opponents β€” Chalk Charlie (easy, 10🎟), Felt Fox (medium, 25🎟), The Shark (hard, 60🎟) β€” plus local 2P and online tables with chat.
  • Awaiting Johnny's hand-tuning pass β€” AI, physics feel and stakes may shift in later versions.