Making the board is the part people overcomplicate. You do not need a spreadsheet with conditional formatting, a Discord bot, or someone manually colouring cells at midnight. You need a tile list and about ten minutes.
This walkthrough covers all three ways to get tiles onto a board, the exact Google Sheets column format the importer accepts, how to attach item images, and how to fix the handful of things that actually go wrong during import.
That's the whole process. Everything below is detail for when you want tile images, precise point values, or a repeatable sheet your clan reuses every event.
Board size is really a decision about event length, since it sets how many tiles need completing. A 5×5 is the safe default for a weekend clan event. Larger boards are not harder, they're longer — and a board nobody finishes feels worse than a small board someone blacked out. There's a full size-versus-duration breakdown on the OSRS Bingo page if you want to match it precisely.
One practical note: your tile list should have at least as many entries as the board has squares. A 7×7 board needs 49 tiles. If your list is shorter, tiles get reused to fill the grid, which usually isn't what you want.
| Method | Best for | Supports images? |
|---|---|---|
| Built-in drop list | Getting a board running in seconds with no prep | Yes, pre-set |
| Paste a list | A tile list you already wrote in Discord or Notes | Optional |
| Google Sheet import | Reusable clan templates, images, per-tile points | Yes |
If your clan runs bingo regularly, the sheet is worth the setup — you build it once, and every future event is a one-click import with images and point values already attached.
The importer reads your sheet as CSV, so the format requirements are simple but strict.
Row 1 must be a header row. The importer reads the headers to work out which column is which, so column order does not matter. Headers are matched case-insensitively.
| Field | Accepted header names | Required? |
|---|---|---|
| Tile name | name, tile, task, item | Yes |
| Image | image, img, icon, picture | No |
| Description | any header containing desc, or details, or info | No |
| Difficulty | difficulty, diff | No |
| Type / category | type, category | No |
| Points | points, pts, point, value | No |
Anything omitted gets a sensible default: difficulty falls back to normal, type falls back to general, and description and image are left empty. Points must be a whole number — text or decimals in a points cell are ignored rather than causing an error.
Note the third row: a blank image cell is completely fine. You do not need to fill every optional column for every tile.
Two things have to be true. The sheet must be publicly readable — in Google Sheets, use Share → General access → Anyone with the link → Viewer. And the link you give the importer needs to be a CSV export URL, not the URL from your browser's address bar.
Take your sheet ID out of the normal URL:
And use it in this form instead:
The gid is the tab number — 0 is the first tab. If your tiles live on a second tab, copy the gid value from the address bar while that tab is open and use it here.
Reusable template trick: keep one master sheet with every tile your clan has ever used, images and points included, and put each event's board on its own tab. Then each new event is just a different gid in the import URL, and you never rebuild a tile list from scratch again.
Tile images make a board dramatically more readable — players recognise a Twisted bow icon faster than they read a line of text. The rules are straightforward:
http. Anything else is discarded and the tile falls back to plain text, which is the single most common reason images silently don't appear..png, .jpg or .webp is what you want.To grab a wiki icon, find the item on the OSRS Wiki, right-click its inventory icon and choose "Copy image address." You'll get something like https://oldschool.runescape.wiki/images/Twisted_bow.png, which you can paste straight into the image column.
If you already have your tiles written somewhere, pasting is faster than building a sheet. The paste importer is deliberately forgiving:
name, tile, task or item.That last point is the quickest route for most hosts: highlight your tile column in a spreadsheet, copy, paste, done.
A plain paste looks like this — nothing else required:
A quantity tile asks for a number of something rather than a single item — 25 Barrows chests, 10 Zulrah kills, 100 Wintertodt crates. Instead of completing on the first approved proof, the tile counts each approved submission and only marks when it hits the target.
These are the best tiles on a team board, because every member's contribution lands on the same square instead of being wasted when someone else gets there first. They also give you visible mid-event progress, which keeps people engaged when the rare drops aren't landing. There's a list of quantity tile ideas with sensible targets in the tile ideas guide.
Nearly every failed import comes down to one of these:
| Symptom | Cause | Fix |
|---|---|---|
| Fetch or permission error | Sheet isn't shared publicly | Share → Anyone with the link → Viewer |
| Fetch fails or returns HTML | You used the /edit URL |
Swap to the /export?format=csv&gid=0 form |
| "Sheet is empty or has no data rows" | Only a header row, or an empty tab | Check you're pointing at the right gid |
| First tile is missing | No header row, so row 1 was read as headers | Add a header row with name |
| Wrong data in wrong fields | Headers not recognised, so positional fallback kicked in | Rename headers to the accepted names above |
| Images don't show | URL doesn't start with http, or isn't a direct file link |
Use a full direct image URL |
| Tiles split or garbled | Line breaks inside a cell | Keep each tile on one line; no newlines within cells |
| Rows silently skipped | Empty name cell | Rows without a name are ignored by design |
Commas inside a cell are fine as long as the cell is quoted — Google's CSV export handles that automatically. Commas in your header names are not: keep headers to single words.
Five minutes here saves an hour of messages during the event.
Create a free account on The Birdhouse, click Create Game, choose Bingo, pick a size from 3×3 to 15×15, and add tiles by pasting a list or importing a Google Sheet. Share the room code and your clan joins in a browser. No download, no payment, no player cap.
A header row in row 1, with a name column titled name, tile, task or item. Optional columns are image, description, difficulty, type and points, using any of the accepted header names listed above. Column order doesn't matter.
Yes — put a direct image URL starting with http in an image column. OSRS Wiki item icons work well. Google Drive links do not, because they serve a preview page rather than the image file.
No. Pasting one tile per line works fine, and you can paste a spreadsheet selection directly since tab-separated input is supported.
Yes, admins can edit tiles mid-event. If you swap a broken tile, announce it publicly with a timestamp and don't touch already-approved proofs.
No. Everything runs in the browser and screenshots can be uploaded manually. The Dink plugin is optional and only adds automatic drop posting for players who want it.
© 2026 The Birdhouse — Free OSRS Bingo Board Generator