# AI Content Guide for Game Computer and Media Maker **For the GM:** paste this entire file into your AI chat (ChatGPT, Claude, anything), together with a description of your scenario. The AI answers with a CSV file. Then, in Foundry: - **Computer content** (files, emails, databases): open the computer item, click **Import** at the top, paste the CSV. - **Newspapers and websites**: open Media Maker, click the **import button** at the top of the library column (either tab), paste the same CSV. The "Copy AI instructions" button in either import window copies this file for you, and from Media Maker it adds a line naming the active website era. Each import takes the rows it understands and skips the rest, so one CSV feeds both. Re-importing updates instead of duplicating: files by path, emails by sender and subject, newspapers by name, websites by address. Everything below this line is for the AI. --- ## Your job You are writing in-game props for a tabletop RPG session, through a toolset with three machines: 1. **An in-game computer**: folders, files with readable contents, an email inbox, and searchable databases the players dig through. 2. **In-game newspapers** rendered from your text by layout templates. 3. **In-game websites** built on a free canvas, shown in the game's own browser. The GM gives you a scenario. You answer with **one CSV file and nothing else**: a single fenced code block, no commentary before or after. If the GM gave no scenario yet, ask for the setting, the year, and what the players should find. This document is a reference of what each machine can do. Every creative decision, which is to say the writing, the colors, the fonts, the layouts and the structure, is yours, guided only by the GM's scenario and, for websites, the era named at the top of the message this guide arrived in. ## CSV rules The first line must be exactly this header: ``` type,name,where,from,to,subject,date,text,items,target,src,color,style,password ``` - Every row is one thing. `type` says what it is; what the other columns mean per type is listed below. Unused columns stay empty. - **Wrap every field in double quotes.** A quote inside a field is written as two quotes (`""`). - Line breaks are allowed inside quoted fields; file contents, email bodies and the `items` column usually need them. - Row order carries structure: a `page` belongs to the closest `website` row above it, a block row belongs to the closest `page` above it, and a `record` belongs to the closest `database` above it. - `src` columns are Foundry file paths (images, sounds, downloads). Leave them empty; the GM attaches real files afterwards. - All colors are hex, like `#000080`. ## Computer rows A computer is either a **Windows 98 desktop** or a **Fallout terminal** (green text, menu screens); which one is stated at the top of the message containing this guide when it was copied from the computer, and if it was not stated, ask the GM. On a desktop, every row below applies. A terminal is nothing but a menu of `option` rows: write every log, message, record and command as an option, and do not use `folder`, `file`, `email`, `database` or `record` rows for it. ### type "folder" A folder. Only needed for empty folders or folders with a password; file rows create their folders automatically. - `name`: the folder name. `where`: the path it sits in, like `C:/My Documents`. - `password`: optional. Players must type it to open the folder. ### type "file" A file on the computer. - `name`: the file name including extension. `where`: its folder path, like `C:/Cases/Hollow Creek`. Missing folders are created. - `text`: the contents. Only `.txt` files open readable in Notepad; any other extension (`.jpg`, `.wav`, `.xls`, `.dat`...) is a prop that just sits there. - `date`: optional "modified" stamp like `10/12/98 11:40 PM`. - `password`: optional lock on the file. ### type "email" One message in the inbox. Emails appear in the order given, top of the list first. - `from`, `to`: addresses. `subject`: the subject line. `text`: the body. - `date`: a full date like `October 13, 1998 9:12 PM`. - `style`: optional flags. `read` marks it opened; `priority` adds the urgent marker. Default is unread. ### type "database" Declares a database on the computer. Put this row before its records. - `name`: the database name. `text`: optional subtitle. - `items`: the field names, comma separated or one per line. The first field is the primary one. - `style`: optional. `searchonly` forces players to search by name instead of browsing the list. ### type "record" One entry in the closest `database` above it (or name the database in `where`). - `items`: one `Field=value` line per field. A value may continue over several lines. - Prefix a field name with `*` to **redact** it: players see it blacked out. - `target`: optional comma separated list of other record names shown as "see also" links. - `password`: optional lock on the record. ### type "option" (Fallout terminal only) A Fallout terminal's menu is nothing but options, and it starts empty. An option carries text that types out when chosen, sub-options, or both. That is the whole machine: a mailbox is an option called "Mailbox" whose sub-options are the messages, each message's body in its `text`; personnel records are an option per person under a "Personnel Records" parent; a reactor command is an option whose text describes what the terminal reports. - `name`: the option as shown on the menu. - `text`: what the terminal types out when the option is chosen. - `where`: optional parent path to nest it under other options, labels separated by `/`, like `Reactor Controls/Overrides`. Missing parents are created. - `style`: picking an option whispers the GM in chat, since options are roleplay actions; `silent` turns that off. Use `silent` for pure reading (logs, messages, records) and leave commands noisy. ``` "option","Mailbox","","","","","","","","","","","silent","" "option","RE: Shipment 44","Mailbox","","","","","FROM: R. MERCER Do not open crate nine. I mean it this time.","","","","","silent","" "option","Turn on the reactor","","","","","","THE REACTOR GROANS TO LIFE. COOLANT FLOW RESTORED. SUBLEVEL LIGHTING: ON","","","","","","" "option","Override safety limits","Turn on the reactor","","","","","SAFETY LIMITS DISENGAGED. VAULTRON INDUSTRIES ACCEPTS NO LIABILITY.","","","","","","" ``` ## Newspaper rows ### type "newspaper" One row per paper. You write the text and pick the look; a layout template places it on the page. - `name`: the name it is saved under. - `style`: a layout family plus a layout, like `modern broadsheet` or `fantasy f-wanted`: - `modern` (print newspaper): `classic`, `broadsheet`, `headline`, `feature`, `editorial`, `gazette`, `bulletin`, `mosaic`, `spotlight`, `banner` - `fantasy` (aged gazette): `f-tome`, `f-chronicle`, `f-scroll`, `f-ledger`, `f-centerfold`, `f-proclamation`, `f-wanted`, `f-dispatch`, `f-folio`, `f-manuscript` - `futuristic` (glowing cyber screen): uses the modern layout names - `date`: the printed date, any format fits the world. - `items`: the paper's content and look as `field=value` lines. Available fields: - Text: `masthead` (the paper's name), `vol`, `price`, `headline`, `subtitle`, `body` (main article), `body2`, `body3`, `sideheadline`, `sidetext`, `secondaryheadline`, `secondarytext`, `caption` (under the photo). Each layout shows its own mix of these slots; unused ones are simply not shown. - Colors: `papercolor`, `textcolor`, `accentcolor` (hex). - Fonts: `mastheadfont`, `headlinefont`, `bodyfont`. Valid values are any font from the library listed under "Fonts" below, or `Default`. #### Multiple pages (futuristic/cyber screen only) Place `page` rows directly after a `newspaper` row to add pages to that paper. The `newspaper` row is page 1; each `page` row adds another. Pages share the masthead, date, and colors from the newspaper row but have their own content. - `text`: the page's body text (same as `body` in items). - `items`: per-page fields as `field=value` lines: `headline`, `subtitle`, `body`, `body2`, `body3`, `sideheadline`, `sidetext`, `secondaryheadline`, `secondarytext`, `caption`. - `src`: the page's main image. - `style`: a content layout name (same list as above, e.g. `classic`, `broadsheet`). Defaults to `classic`. ```csv "newspaper","Neon Dispatch","","","","","2077-03-15","","masthead=NEON DISPATCH headline=CORPO TOWER BREACH body=Main article text here.","","","","futuristic classic","" "page","","","","","","","","headline=MARKET CRASH body=Second page article.","","","","","" "page","","","","","","","","headline=EDITORIAL body=Third page editorial.","","","","","" ``` ## Website rows The era these websites belong to is stated at the top of the message containing this guide (for example the 1990s retro web). If no era was stated, ask the GM. Within that era, the design of every site is yours. ### The canvas A page is a free canvas, like a desktop publishing program: - Coordinates are `top,left,width,height` in the block's `where` column, all in **percent of the page width** (the vertical axis too, so the numbers stay square). `"2,4,92,10"` is a bar across the top. The page is 100 units wide and grows downward as far as your content needs; there is no fixed bottom. - Blocks may overlap; later rows draw on top of earlier ones. - A block **without** `where` is placed automatically: it stacks below everything positioned, full height for its content. You can mix both on one page. - Sizing guide: at reading size the page is 800 pixels wide, so 1 unit is 8 pixels. Default body text is 16px, which makes one line of text about 2.7 units tall and fits roughly one character per unit of column width. Give positioned text blocks generous heights; content taller than its box spills over whatever is below. - A positioned row looks like this (the numbers are top, left, width, height): ```csv "text","","31,52,37,22","","","","","A text block placed by coordinates.","","","","","","" ``` ### Structure: every site its own Nothing about a page's anatomy is fixed. No block type is required, any block can sit at any coordinate, pages can be dense or nearly empty, symmetric or crooked, one screen tall or endless. Decide each site's structure from its fiction: who built it, how skilled they were, and what they wanted it to do. Then hold this rule: **No two sites may share a layout.** If two of your sites could be mistaken for each other with the text swapped, redesign one from scratch. If this conversation already produced sites earlier, new ones must also be structurally unlike those. Do not fall back on one skeleton (such as a title bar, a ticker, a button row, a text column and a side box) and refill it; that is the pattern to break, not the pattern to reach for. ### type "website" - `name`: the site's title. `where`: its address, like `www.hollowcreek.net`. - `items`: the site's look as `key=value` lines: - `bgcolor`, `textcolor`, `linkcolor`: hex colors, any you like. - `font`: the site's base font (see Fonts below). - `bgpattern`: `stars`, `checker`, `stripes`, `clouds` or `stucco`, tiled behind the page. Omit for a solid color. - `bgimage`: a graphics library path (see Graphics library below) tiled as the page background, like era wallpaper. - `statustext`: a message that scrolls in the browser's status bar while on the site. - `published`: `yes` or `no` (default yes). Unpublished sites exist only for the GM. ### type "page" - `name`: the page title. The first page is the one the address opens. - `password`: optional. The browser demands it before showing the page. ### Block types One row per block, placed on the closest `page` above it. Every block row may use: - `where`: the position, as described under The canvas. - `style`: space separated tokens, all optional: `fill:#hex` paints the block's background; a number like `24px` sets its font size; plus the per-type tokens below. - `color`: the block's main color, per type below. Link targets, wherever they appear, are either another site's address (`www.other-site.com`) or a page of the same site written `page:` plus its title (`page:Back Room`). | type | what it is | fields | |---|---|---| | `heading` | title text | `text`; `color` = text color; `style` tokens `h1` `h2` `h3` (size), `left` `center` `right`, and `logo` for a chunky banner-graphic shadow | | `text` | a paragraph | `text`; `style` alignment token | | `image` | a picture frame | `text` = caption; `target` = optional link; `src` stays empty | | `gif` | one graphic on a bare transparent box, the loose GIFs era pages were covered in | `src` = a graphics library path; `target` = optional link | | `navbar` | horizontal button bar | `items`: one `Label -> target` per line | | `links` | a titled box of links | `name` = title; `items`: `Label -> target` lines | | `list` | bulleted list | `name` = title; `items`: `Label -> target` lines, target optional; `src` = optional graphics library path used as the bullet | | `button` | one big 3D button | `name` = label; `target` | | `panel` | box with a colored title bar | `name` = title; `text` = contents; `color` = bar color | | `table` | a data table | `items`: one row per line, cells separated by a pipe; first line is the header; a cell written `label -> target` becomes a link; `style` token `noheader` drops the header styling | | `marquee` | text scrolling across its box | `text`; `color` | | `counter` | odometer-style counter | `name` = label; `text` = the number | | `badges` | tiny 88x31 web badges | `items`: one badge per line, either top text, a pipe, bottom text, or `img:` plus a graphics library path for a real badge graphic | | `download` | a file players download into the computer's My Documents | `name` = the file name, ending in .txt so it opens readable; `text` = the file's contents, which you write like any computer file; `src` stays empty | | `divider` | horizontal rule | `style` token `line` or `stars`; `src` = optional graphics library path tiled as a decorative line | | `footer` | links row + small print | `items`: `Label -> target` lines; `text` = the small print | ### HTML inside text These fields render HTML if you include any: heading text, text blocks, panel bodies, marquee text, image captions, box titles, counter labels, footer small print. Plain text with line breaks also works. Supported in-game: - ``, ``, ``, ``, `` - `blinking text` - `a link on words` or `...` (no href) Item labels, button labels and badges are plain text only. Table cells accept this HTML too, including `` links (or use the `label -> target` cell shorthand). ### Fonts Websites and newspapers share one font library. Era web fonts: `Times New Roman`, `Arial`, `Verdana`, `Courier New`, `Georgia`, `Comic Sans MS`. Bundled fonts: Alegreya, Alegreya Sans, Almendra, Amatic SC, Archivo, Archivo Black, Archivo Narrow, Bangers, Barlow, Barlow Condensed, Bebas Neue, Bitter, Black Ops One, Bree Serif, Bruno Ace, Cabin, Caesar Dressing, Cantarell, Cardo, Caveat, Chakra Petch, Cinzel, Cinzel Decorative, Comfortaa, Cormorant, Cormorant Garamond, Cormorant Infant, Creepster, Crimson Text, Dancing Script, DM Sans, DM Serif Display, Dosis, EB Garamond, Exo, Exo 2, Fira Sans, Fira Sans Condensed, Fondamento, Fredericka the Great, Gelasio, Gloria Hallelujah, Grenze, Grenze Gotisch, Hepta Slab, IM Fell English, IM Fell English SC, Inconsolata, Inter, Josefin Sans, Josefin Slab, Jost, Kalam, Kanit, Karla, Kaushan Script, Lato, Lexend, Libre Baskerville, Libre Franklin, Lilita One, Lobster, Lora, Macondo, Manrope, Marcellus, Marcellus SC, Mate SC, MedievalSharp, Merriweather, Merriweather Sans, Metal Mania, Montserrat, Montserrat Alternates, Mulish, Neuton, Nosifer, Noticia Text, Noto Sans, Noto Serif, Nunito, Nunito Sans, Old Standard TT, Oldenburg, Open Sans, Orbitron, Oswald, Outfit, Pacifico, Passion One, Patrick Hand, Permanent Marker, Philosopher, Pirata One, Playfair Display, Playfair Display SC, Plus Jakarta Sans, Poppins, Press Start 2P, PT Sans, PT Serif, Quicksand, Rajdhani, Raleway, Righteous, Roboto, Roboto Condensed, Roboto Slab, Rokkitt, Rubik, Russo One, Saira, Saira Condensed, Satisfy, Secular One, Shadows Into Light, Signika, Silkscreen, Sora, Source Sans 3, Source Serif 4, Space Grotesk, Space Mono, Spectral, Teko, Titillium Web, Ubuntu, Uncial Antiqua, UnifrakturMaguntia, Vollkorn, Work Sans, Yanone Kaffeesatz, Yeseva One, Zilla Slab. ### Graphics library The module ships a pack of real 90s web GIFs. You may use them anywhere a graphics library path is allowed: `gif` blocks, list bullets, divider lines, `img:` badges, and the site's `bgimage`. Write the path exactly as `modules/media-maker/graphics/` plus the category folder plus the file name. The files are a mid-90s webmaster icon set: `bullets/` holds list markers, `lines/` divider lines, `buttons/` and `icons/` small pictograms. Most are still images; names with `anim` animate. The GM may also mention their own graphics in their message, as paths in a `media-maker-graphics` folder; use those the same way. Available files: **bullets/** (113 files): a_down.gif, a_left.gif, a_right.gif, a_up.gif, b_blue.gif, b_blue_anim.gif, b_green.gif, b_green_anim.gif, b_grey.gif, b_red.gif, b_red_anim.gif, b_yellow.gif, b_yellow_anim.gif, black.gif, blue.gif, brown.gif, cool.gif, crystal.gif, cyan.gif, diamonds_black.gif, diamonds_blue.gif, diamonds_brown.gif, diamonds_cyan.gif, diamonds_green.gif, diamonds_grey.gif, diamonds_orange.gif, diamonds_purple.gif, diamonds_red.gif, diamonds_white.gif, diamonds_yellow.gif, earth.gif, earth2.gif, eye.gif, g_blue.gif, g_blue_anim.gif, g_blue_on.gif, g_green.gif, g_green_anim.gif, g_green_on.gif, g_grey.gif, g_grey_anim.gif, g_grey_on.gif, g_red.gif, g_red_anim.gif, g_red_on.gif, g_yellow.gif, g_yellow_anim.gif, g_yellow_on.gif, gem_blue.gif, gem_box.gif, gem_green.gif, gold.gif, green.gif, grey.gif, l_black.gif, l_blue.gif, l_brown.gif, l_cyan.gif, l_green.gif, l_grey.gif, l_orange.gif, l_purple.gif, l_red.gif, l_white.gif, l_yellow.gif, m_black.gif, m_blue.gif, m_brown.gif, m_green.gif, m_grey.gif, m_orange.gif, m_red.gif, m_white.gif, m_yellow.gif, marble_blue.gif, marble_blue_red.gif, marble_sky.gif, marble_yellow.gif, metalic.gif, metalic_purple.gif, orange.gif, purple.gif, red.gif, smiley.gif, sphere.gif, squares_b_blue.gif, squares_b_blue_anim.gif, squares_b_green.gif, squares_b_green_anim.gif, squares_b_grey.gif, squares_b_red.gif, squares_b_red_anim.gif, squares_b_yellow.gif, squares_b_yellow_anim.gif, squares_blue.gif, squares_brown.gif, squares_cyan.gif, squares_green.gif, squares_grey.gif, squares_l_blue.gif, squares_l_brown.gif, squares_l_cyan.gif, squares_l_green.gif, squares_l_grey.gif, squares_l_purple.gif, squares_l_red.gif, squares_l_yellow.gif, squares_orange.gif, squares_purple.gif, squares_red.gif, squares_yellow.gif, white.gif, yellow.gif **lines/** (153 files): archipelago.gif, banner.gif, bar_blue.gif, bar_brown.gif, bar_cyan.gif, bar_green.gif, bar_grey.gif, bar_orange.gif, bar_purple.gif, bar_red.gif, bar_yellow.gif, barbed_wire.gif, battlement.gif, birds.gif, blue_bar.gif, blue_marble.gif, blue_marble2.gif, blue_shade.gif, blue_stripe.gif, bomb.gif, bomb_2.gif, bomb_3.gif, bomb_4.gif, bomb_end.gif, bow.gif, bubble.gif, bulldog.gif, castle.gif, castle_hall.gif, castle_hall2.gif, castle_pass.gif, castle_wall.gif, caution.gif, celtic.gif, chain.gif, chain_links.gif, color_swirl.gif, color_tweed.gif, colr_splotch.gif, comet.gif, comet_2.gif, construction.gif, cool_links.gif, cross.gif, cut.gif, cyber.gif, day_night.gif, desert.gif, dragons.gif, dynamite.gif, eyes.gif, flower_n_bflys.gif, flowerpole.gif, flowers.gif, foot_steps.gif, footsteps.gif, forest.gif, ghost.gif, glue.gif, grad.gif, grad_left.gif, grad_right.gif, gradiated.gif, grape_vine.gif, grey.gif, grey_squares.gif, greyscale.gif, groove.gif, groove_wide.gif, header_lines.gif, hippo.gif, hot_links.gif, island.gif, jet.gif, jet_2.gif, kilroy.gif, kite.gif, kite2.gif, kitetail.gif, knot.gif, knotted.gif, lego.gif, lightbulb.gif, lockness.gif, melting.gif, music.gif, offroad.gif, orange_striped.gif, owl.gif, owl_anim.gif, pat_astec.gif, pat_byzan.gif, pat_celtic.gif, pat_circles.gif, pat_crossed.gif, pat_crossed2.gif, pat_crumpled.gif, pat_diamond.gif, pat_diamond2.gif, pat_diamond_dbl.gif, pat_dotted.gif, pat_flowers.gif, pat_locked.gif, pat_meshed.gif, pat_spiral.gif, pat_squares.gif, pat_squares2.gif, pat_swirls.gif, pat_vibration.gif, pat_weave.gif, pat_weave_dbl.gif, pat_weave_wide.gif, pat_zag.gif, pat_zag2.gif, pat_zigzag.gif, phoneline.gif, plasma.gif, quill.gif, rainbow.gif, raised.gif, red.gif, red_blue.gif, ribbon.gif, rocket.gif, rope.gif, ruler.gif, runner.gif, scroll_bottom.gif, scroll_top.gif, ship.gif, snail.gif, spear.gif, speckled.gif, spilt_beer.gif, staff_wizard.gif, string.gif, strings.gif, suntan.gif, surfer.gif, sword.gif, tap.gif, thin_green.gif, thin_red.gif, threadlines_suntan.gif, tightrope.gif, tracks.gif, train.gif, warp_speed.gif, waterbar.gif, wavy.gif, wavy2.gif, whale.gif, xmas_lites.gif **buttons/** (271 files): a-z.gif, afraid.gif, aicons.gif, archie.gif, aroma.gif, art.gif, asteroid.gif, australia.gif, back.gif, balance.gif, bed.gif, bell_hand.gif, binary.gif, binary_tree.gif, bitmap.gif, blank.gif, blank_blue.gif, blocks.gif, book.gif, book_index.gif, book_next.gif, book_prev.gif, books.gif, box.gif, butsmall_blank.gif, butsmall_down.gif, butsmall_frame.gif, butsmall_home_blue.gif, butsmall_home_green.gif, butsmall_home_grey.gif, butsmall_home_red.gif, butsmall_left.gif, butsmall_mail.gif, butsmall_question.gif, butsmall_right.gif, butsmall_top.gif, butsmall_up.gif, butsmall_warning.gif, calculator.gif, camera.gif, cards.gif, castle.gif, caution.gif, cave.gif, cdrom.gif, chest.gif, chicken.gif, coffee.gif, comments.gif, compass.gif, compass2.gif, compress.gif, connect.gif, const_hat.gif, construct.gif, construction.gif, continued.gif, credit_card.gif, crossbones.gif, cupboard.gif, curtain.gif, desk.gif, dir_E.gif, dir_N.gif, dir_NE.gif, dir_NW.gif, dir_S.gif, dir_SE.gif, dir_SW.gif, dir_W.gif, document.gif, dog.gif, door.gif, door2.gif, door2_1.gif, door2_2.gif, door2_3.gif, door2_4.gif, door2_anim.gif, door_exit.gif, door_open.gif, doorknob.gif, down.gif, dragon.gif, dungeon.gif, earth.gif, earth2.gif, earth_au.gif, electronics.gif, exclaimation.gif, eye.gif, feedback.gif, file.gif, file_trans.gif, film.gif, finger.gif, fire.gif, fishbowl.gif, fist.gif, flask.gif, fortune.gif, frame.gif, france.gif, ftp.gif, ftp_fish.gif, fun.gif, games.gif, glasses.gif, globe.gif, globe_earth.gif, go.gif, goblet.gif, gopher.gif, gopher_page.gif, graduate.gif, grapes.gif, graph.gif, grin.gif, hand.gif, hand_point.gif, hand_shake.gif, hand_up.gif, home.gif, home1.gif, home2.gif, home_blue.gif, home_green.gif, home_grey.gif, home_red.gif, hotlist.gif, house_dog.gif, html.gif, html2.gif, hut.gif, icons.gif, image.gif, index.gif, info.gif, info2.gif, java_applet.gif, joypad.gif, key.gif, key2.gif, keyboard.gif, keys.gif, kite.gif, knot.gif, ladder_down.gif, left.gif, letter.gif, library.gif, library2.gif, lift.gif, lightbulb.gif, link.gif, lute.gif, magic_wand.gif, mail.gif, mail2.gif, mail_send.gif, map.gif, math.gif, maze.gif, medical.gif, monalisa.gif, money.gif, more.gif, movie.gif, movie2.gif, mug.gif, multiple.gif, music.gif, new.gif, news.gif, news2.gif, next.gif, note.gif, oracle.gif, page.gif, palette.gif, passage.gif, passage_dark.gif, pencil.gif, penguin.gif, pentacle.gif, pentagram.gif, phone.gif, phone_book.gif, phone_yellow.gif, pie.gif, portal.gif, postit.gif, prev.gif, printer.gif, question.gif, rbuttons_afraid.gif, rbuttons_back.gif, rbuttons_binary.gif, rbuttons_blank.gif, rbuttons_construction.gif, rbuttons_down.gif, rbuttons_feedback.gif, rbuttons_ftp.gif, rbuttons_left.gif, rbuttons_music.gif, rbuttons_next.gif, rbuttons_prev.gif, rbuttons_right.gif, rbuttons_sound.gif, rbuttons_up.gif, redcross.gif, reports.gif, return.gif, right.gif, roadkill.gif, runner.gif, scroll.gif, search.gif, search_doc.gif, server.gif, shakespere.gif, shuttle.gif, sign.gif, sign_book.gif, sign_left.gif, sign_right.gif, smiley.gif, sound.gif, spider.gif, spiral_down.gif, spiral_up.gif, stairs_down.gif, stairs_up.gif, stats.gif, stats2.gif, stats_graph.gif, stop.gif, sun.gif, sun2.gif, suntan.gif, t_top.gif, table.gif, teaching.gif, telescope.gif, telnet.gif, theater.gif, tools.gif, tools2.gif, top.gif, torch.gif, tower.gif, town.gif, trash.gif, tree.gif, up.gif, usa.gif, video.gif, vortex.gif, warning.gif, water_rocket.gif, weather.gif, web.gif, web_search.gif, white_pages.gif, window.gif, wine.gif, www.gif, www_world.gif, x_spot.gif, yellow_pages.gif, zip.gif **icons/** (245 files): a.gif, aborigine.gif, aicons.gif, aicons_anim.gif, alert.gif, alert_black.gif, anchor.gif, angel.gif, archie.gif, asterix.gif, asterix_blue.gif, asterix_blue_sm.gif, asterix_green.gif, asterix_green_sm.gif, asterix_red.gif, asterix_red_sm.gif, asterix_sm.gif, atom.gif, australia.gif, back.gif, ball_gray.gif, ball_red.gif, binary.gif, binhex.gif, blank.gif, bomb.gif, book.gif, bow_ribbon.gif, box.gif, box2.gif, broken.gif, burst.gif, button.gif, button_back.gif, button_help.gif, button_home.gif, button_left.gif, button_next.gif, button_no.gif, button_ok.gif, button_prev.gif, button_right.gif, button_search.gif, button_top.gif, button_yes.gif, c.gif, calendar.gif, check.gif, check_tick.gif, citadel.gif, clover.gif, clover_blue.gif, clover_green.gif, clover_red.gif, cloverleaf.gif, colorspeck_change.gif, colorspeck_delete.gif, colorspeck_subscribe.gif, compass_anim.gif, compressed.gif, computer.gif, computer_blue.gif, continued.gif, cool_flip_anim.gif, copyright.gif, copyright2.gif, cross.gif, cross_blue.gif, cross_green.gif, cross_red.gif, cross_sm.gif, diamond.gif, diamond_blue.gif, diamond_green.gif, diamond_red.gif, dir.gif, dir_open.gif, dir_sec.gif, dirup.gif, dot.gif, dot_blue.gif, dot_green.gif, dot_red.gif, down.gif, dvi.gif, earth.gif, earth2.gif, email_anim.gif, exit.gif, eye.gif, f.gif, file.gif, file_red.gif, file_sec.gif, finger.gif, flag.gif, flag2.gif, flag2_blue.gif, flag2_green.gif, flag2_red.gif, flag_blue.gif, flag_green.gif, flag_red.gif, foot.gif, foot2.gif, forward.gif, ftp.gif, gem.gif, gem_blue.gif, gem_green.gif, gem_red.gif, globe.gif, gopher.gif, gravestone.gif, hand_right.gif, hand_up.gif, hearts.gif, help.gif, here.gif, image.gif, image2.gif, image_draw.gif, index.gif, info.gif, layout.gif, left.gif, left_blue.gif, left_green.gif, left_red.gif, library.gif, mail.gif, mail_color.gif, mandarin.gif, manpage.gif, manpage2.gif, message.gif, money.gif, movie.gif, network.gif, new_anim.gif, news.gif, nuke.gif, oracle.gif, p.gif, patch.gif, paw.gif, paw_blank.gif, paw_blue.gif, paw_green.gif, paw_left.gif, paw_left_blue.gif, paw_left_green.gif, paw_left_red.gif, paw_red.gif, paw_right.gif, paw_right_blue.gif, paw_right_green.gif, paw_right_red.gif, pdf.gif, pdf2.gif, phone.gif, portal.gif, ps.gif, quill.gif, registered.gif, reminder.gif, right.gif, right_blue.gif, right_green.gif, right_red.gif, robot.gif, screw.gif, screw2.gif, script.gif, script_browse.gif, script_index.gif, scroll.gif, sound.gif, sound2.gif, sphere.gif, sphere2.gif, square.gif, square_blue.gif, square_green.gif, square_red.gif, star.gif, star2.gif, star2_blue.gif, star2_green.gif, star2_red.gif, star_blue.gif, star_green.gif, star_red.gif, starroll2_anim.gif, starroll_anim.gif, std_bomb.gif, std_patch.gif, stop.gif, stop_red.gif, symbols_blank.gif, symbols_mail.gif, symbols_scroll.gif, symbols_text.gif, symbols_triangle.gif, tar.gif, terminal.gif, tex.gif, text.gif, thumbs_down.gif, thumbs_down_sm.gif, thumbs_right.gif, thumbs_up.gif, thumbs_up_sm.gif, tick.gif, tick_blue.gif, tick_green.gif, tick_red.gif, tick_sm.gif, timer_0.gif, timer_1.gif, timer_2.gif, timer_3.gif, timer_4.gif, timer_5.gif, timer_6.gif, timer_7.gif, timer_8.gif, tools.gif, trademark.gif, transfer.gif, tree.gif, triangle.gif, triangle_blue.gif, triangle_green.gif, triangle_red.gif, unknown.gif, up.gif, uu.gif, wizard.gif, words.gif, world.gif, www.gif, xbm.gif, xbones.gif, xpm.gif ### GifCities graphics (auto-download) Any field that takes a file path (the `src` of `gif`, `image`, `divider` and `download` rows, a `list` row's bullet `src`, `img:` badge lines, a site's `bgimage`, a newspaper's main image) also accepts `gifcities:term` or `gifcities:term:N`. On import the module searches the Internet Archive's GifCities collection (real GeoCities-era gifs) for that term, downloads the gif into the GM's own library and substitutes the local path. The CSV itself never contains the image. - `gifcities:flame` takes the first search result for "flame". If the GM ticks the import window's Variety option, every unnumbered token picks a random result instead; gifs already in the library are reused, new picks download. - `gifcities:flame:7` takes the 7th result; numbers past the end wrap around. Use different numbers to get different gifs for the same term. - A numbered token always gives the same gif, with or without Variety, so use numbers when a graphic must stay identical across imports. - A term with no results is skipped with a warning and the slot stays empty, so prefer terms from the indexed list below. Searching matches substrings, so `skulls` still finds `skull`. Indexed terms: alien, anchor, angel, apple, armor, arrow, art, atom, axe, background, balloon, banner, bar, bat, beach, bear, bee, beer, bell, bird, blood, boat, bone, book, bow, brain, bridge, burger, butterfly, button, bye, cactus, cake, calendar, camera, candle, candles, candy, car, cards, castle, cat, cauldron, chain, cherry, chess, chest, city, clock, clouds, coffee, coin, comet, computer, construction, cool, counter, cross, crown, crystal, cyborg, dagger, dance, dancing, danger, demon, desert, devil, diamond, dice, dinosaur, divider, dna, dog, dollar, dolphin, door, dove, dragon, drum, dungeon, eagle, earth, elf, email, envelope, exit, eye, eyeball, fairy, film, fire, fireworks, fish, flame, flower, forest, frog, garden, gargoyle, gear, gem, ghost, gift, glitter, globe, gold, grave, guestbook, guitar, halloween, hammer, hand, happy, heart, hello, hi, home, horse, hot, hourglass, house, island, joker, key, king, kiss, knight, lantern, laser, lighthouse, lightning, line, link, lion, lock, love, magic, mail, mailbox, map, marble, money, monster, moon, mountain, mouse, movie, music, new, note, ocean, owl, paint, party, peace, pen, pencil, penguin, pentagram, phone, piano, pizza, plane, planet, potion, present, pumpkin, queen, quill, rabbit, radio, rain, rainbow, rat, raven, reaper, ring, robot, rocket, rose, satellite, science, scroll, shark, shield, ship, sign, skeleton, skull, sky, smiley, snake, snow, snowman, space, sparkle, spider, star, stars, stone, stop, storm, sun, sword, telephone, texture, thumbs, tiger, tombstone, tools, torch, tower, train, treasure, tree, troll, turtle, tv, ufo, under construction, unicorn, vampire, volcano, warning, water, waterfall, wave, web, welcome, windmill, wine, witch, wizard, wolf, world, wow, wrench, zombie ## Hard rules 1. Every password you set must have a hint discoverable somewhere else in the content, or the players hit a dead end. 2. `src` columns are either empty or an exact path from the Graphics library list. Never invent any other path. 3. Stay under 200 rows per CSV. ## Format demonstration The rows below show the syntax only. They are not a template; do not copy their structure, styling or phrasing. ```csv type,name,where,from,to,subject,date,text,items,target,src,color,style,password "file","note.txt","C:/My Documents","","","","10/12/98 9:03 PM","First line. Second line.","","","","","","" "email","","","a@example.net","b@example.net","Subject here","October 11, 1998 4:30 PM","Body text.","","","","","priority","" "database","Example DB","","","","","","Subtitle","Name, Status","","","","","" "record","","","","","","","","Name=Jane Doe *Status=Hidden from players","","","","","" "newspaper","Example Paper","","","","","May 3, 1998","","masthead=The Example headline=HEADLINE HERE body=Article text. accentcolor=#336633","","","","modern gazette","" "website","Example Site","www.example.net","","","","","","bgcolor=#1a0b2e textcolor=#e8dcc8 linkcolor=#ffcc00 font=Georgia statustext=Scrolls in the status bar","","","","","" "page","Home","","","","","","","","","","","","" "heading","","","","","","","Heading text","","","","#ffcc00","36px","" "text","","","","","","","An auto-placed block with a bold word and a link on words.","","","","","fill:#2d1b4e","" "page","Vault","","","","","","","","","","","","hint-this-somewhere" "button","OPEN","","","","","","","","page:Vault","","","","" ``` These rows are auto-placed (empty `where`) only to keep the demonstration layout-free; position your own blocks with coordinates. ## Before you answer, check 1. One fenced code block, nothing else around it. 2. First line is the exact 14 column header. 3. Every field is in double quotes, quotes inside doubled, 14 fields per row. 4. Pages sit under their website, blocks under their page, records under their database. 5. Every password has a hint somewhere. 6. Every `src` is empty or copied exactly from the Graphics library list. 7. No two websites share a layout, and none reuses a layout from earlier in this conversation.