Skip to content

News System

The news system allows you to create realistic in-game news articles that players can read. News articles are written in Markdown and appear in the in-game news feed.

Overview

News articles provide a way to:

  • Deliver story information outside of conversations
  • Create world-building and atmosphere
  • Reveal plot developments at specific times
  • Add realism with multiple news sources and publication dates
  • Control pacing by unlocking articles as the story progresses

Directory Structure

News articles are stored in stories/your-story/news/ as Markdown files.

stories/
└── your-story/
    └── news/
        ├── breaking-news.md
        ├── club-investigation.md
        └── police-update.md

Each .md file represents one news article.

Creating a News Article

Basic Format

Example: stories/your-story/news/breaking-news.md

markdown
#initial
#title:Local Woman Reported Missing
#source:City News Network
#image:news-photo.jpg
#publishedAt:2025-10-22T10:00:00Z

**BREAKING**: A local woman has been reported missing after failing to return home last night.

Sarah Thompson, 28, was last seen leaving Club Neon on King Street at approximately 11:30 PM on Friday evening. Friends and family are growing increasingly concerned as she has not been in contact since.

## Last Known Details

According to witnesses, Sarah was with a group of colleagues from her workplace. She told friends she had arranged a ride home but never arrived at her residence.

Her phone appears to be switched off, and attempts to reach her have been unsuccessful.

## Police Investigation

Local authorities have opened a missing person investigation. Detective Inspector James Morrison stated: "We are treating this matter seriously and urge anyone with information to come forward."

![Police at the scene](evidence-photo.jpg)

The investigation is ongoing, and police are reviewing CCTV footage from the area.

## How You Can Help

If you have any information about Sarah's whereabouts, please contact the police immediately on 101 or call Crimestoppers anonymously on 0800 555 111.

*This is a developing story. Updates will be posted as more information becomes available.*

Metadata Tags

All metadata tags must be placed at the top of the file, before any content. Each tag starts with # and is on its own line.

#initial

Purpose: Marks the article as unlocked from the start of the story.

Usage:

markdown
#initial
#title:Welcome to City News

When to use:

  • Welcome/tutorial articles
  • Background information available from the start
  • Setting the scene before the main story begins

When to omit:

  • Articles that should be unlocked during gameplay
  • Breaking news that appears as events unfold
  • Story-critical information revealed at specific times

#title:Article Title (Required)

Purpose: The headline that appears in the news feed.

Usage:

markdown
#title:Local Woman Reported Missing
#title:Police Investigate Club Following Disappearance
#title:Breaking: New Evidence Discovered in Missing Person Case

Best practices:

  • Write compelling, realistic news headlines
  • Use title case or sentence case consistently
  • Keep headlines concise but informative
  • Use action words and specific details

Examples:

  • #title:Police Search Warehouse in Missing Person Investigation
  • #title:Club Neon Temporarily Closed Pending Investigation
  • #title:news article 1 (too vague)
  • #title:This is a really long headline that goes on and on with too much detail (too long)

#source:News Source (Required)

Purpose: The publication or news organization name.

Usage:

markdown
#source:City News Network
#source:Evening Chronicle
#source:Metropolitan Police Press Office

Best practices:

  • Create 2-3 consistent news sources for your story
  • Use realistic-sounding publication names
  • Match the tone to the source (tabloid vs. broadsheet)
  • Consider using official sources (police, government) for formal announcements

Example sources:

  • Local newspapers: "Evening Chronicle", "City Herald", "Metro Daily"
  • TV news: "City News Network", "Channel 7 News"
  • Online: "CityNews.com", "Local News Online"
  • Official: "Metropolitan Police Press Office", "City Council"

#image:filename.jpg (Optional)

Purpose: Featured image displayed with the article.

Usage:

markdown
#image:news-photo.jpg
#image:police-scene.png

Requirements:

  • Image must exist in stories/your-story/assets/ directory
  • Use just the filename, not the full path
  • Supported formats: .jpg, .jpeg, .png, .gif, .webp

Best practices:

  • Use relevant, high-quality images
  • Optimize image size (compress before adding)
  • Recommended size: 800-1200px wide
  • Consider using the same image in the article body for consistency

#publishedAt:ISO-date (Optional)

Purpose: Publication timestamp in ISO 8601 format.

Usage:

markdown
#publishedAt:2025-10-22T10:00:00Z
#publishedAt:2025-10-22T14:30:00Z
#publishedAt:2025-10-23T08:15:00Z

Format: YYYY-MM-DDTHH:MM:SSZ

  • YYYY - Four-digit year
  • MM - Two-digit month (01-12)
  • DD - Two-digit day (01-31)
  • T - Separator between date and time
  • HH - Two-digit hour (00-23)
  • MM - Two-digit minute (00-59)
  • SS - Two-digit second (00-59)
  • Z - UTC timezone indicator

Best practices:

  • Use realistic timestamps that match your story timeline
  • Create a chronological sequence of articles
  • Consider time zones and when news would realistically break
  • Space articles appropriately (hours or days apart)

Example timeline:

markdown
# First article - morning
#publishedAt:2025-10-22T10:00:00Z

# Update - afternoon same day
#publishedAt:2025-10-22T14:30:00Z

# Next day update
#publishedAt:2025-10-23T08:15:00Z

Unlocking News Articles

Initial Articles

Articles with the #initial tag are automatically unlocked when the story starts:

markdown
#initial
#title:Welcome to City News
#source:City News Network

Stay informed with the latest local news and updates.

Unlocking via Ink

Articles without #initial must be unlocked using the #unlockNews: tag in your Ink scripts.

Immediate unlock:

ink
Breaking news just came in! #unlockNews:breaking-news
Check the news app, there's an important update. #unlockNews:police-statement

Delayed unlock:

ink
The news will break in a few minutes. #unlockNews:breaking-news:5m
Check back in an hour for updates. #unlockNews:investigation-update:1h

Time units:

  • s - seconds (e.g., 30s)
  • m - minutes (e.g., 5m)
  • h - hours (e.g., 2h)

Checking if News is Read

Use external functions to check if a player has read an article:

ink
{IsNewsRead("breaking-news"):
    I see you read the news about Sarah. Terrible, isn't it?
- else:
    Have you checked the news today? You should.
}

// Check if unlocked
{IsNewsUnlocked("police-statement"):
    The police have released a statement. Check the news.
}

Markdown Formatting

News articles support full Markdown syntax for rich formatting.

Headings

markdown
# Main Headline (H1)
## Section Heading (H2)
### Subsection (H3)

Best practice: Use H2 (##) for section headings within articles, as H1 is typically reserved for the main title.

Text Formatting

markdown
**Bold text** for emphasis
*Italic text* for subtle emphasis
***Bold and italic*** for strong emphasis

> Quoted text or pull quotes

Lists

Bulleted lists:

markdown
- First point
- Second point
- Third point

Numbered lists:

markdown
1. First step
2. Second step
3. Third step
markdown
[Link text](https://example.com)
[Read more on our website](https://citynews.com/article)

Images

markdown
![Alt text](image-filename.jpg)
![Police at the scene](crime-scene.jpg)

Note: Images must be in the stories/your-story/assets/ directory.

Horizontal Rules

markdown
---

Use to separate sections or create visual breaks.

Inline Code and Emphasis

markdown
Call the hotline at `0800 555 111`
Reference number: `2510/22`

Writing Effective News Articles

Structure

A well-structured news article typically includes:

  1. Headline (#title:) - Grab attention
  2. Lead paragraph - Answer who, what, when, where, why
  3. Body sections - Provide details, quotes, context
  4. Call to action - What readers should do (if applicable)
  5. Closing - Updates, contact information

Example structure:

markdown
#title:Police Search Warehouse in Missing Person Case
#source:Evening Chronicle
#publishedAt:2025-10-23T16:00:00Z

Police have launched a search of an abandoned warehouse in connection with the disappearance of Sarah Thompson.

## Investigation Update

Detective Inspector James Morrison confirmed that officers are currently searching a property on Riverside Drive...

## What We Know

- Warehouse has been abandoned for 3 years
- Security cameras were disabled
- Anonymous tip led police to the location

## Police Statement

"We are following every lead," stated DI Morrison. "We urge anyone with information to come forward."

---

*Anyone with information should contact police on 101, quoting reference 2510/22.*

Writing Style

Be realistic:

  • Use professional news writing tone
  • Stick to facts and attributed quotes
  • Avoid first-person perspective
  • Use past tense for events, present for ongoing situations

Good examples:

markdown
Police have confirmed that...
Detective Morrison stated: "We are treating this seriously."
The investigation is ongoing.

Avoid:

markdown
I think the police are...
You should be worried about...
This is definitely suspicious...

Quotes

Add authenticity with realistic quotes:

markdown
Detective Inspector James Morrison stated: "We are treating this matter seriously and urge anyone with information to come forward."

A spokesperson for Club Neon said: "We are deeply concerned about this situation and are doing everything we can to assist the police investigation."

Best practices:

  • Attribute all quotes to specific people or organizations
  • Use realistic job titles and names
  • Vary quote placement (don't put all quotes together)
  • Use quotes to reveal information or add perspective

Images in Articles

markdown
![Police cordon at the scene](police-scene.jpg)

Officers have been searching the area since early morning.

![CCTV footage timestamp](cctv-image.jpg)

The last known sighting was captured at 11:47 PM.

Tips:

  • Place images near relevant text
  • Use descriptive alt text
  • Don't overload articles with too many images
  • Ensure images add value to the story

Developing Stories

Create a sense of ongoing investigation:

markdown
*This is a developing story. Updates will be posted as more information becomes available.*

*Last updated: October 23, 2025 at 4:30 PM*

**UPDATE (3:45 PM):** Police have confirmed that...

Complete Example

Here's a complete, realistic news article:

markdown
#title:Police Investigate Club Neon Following Disappearance
#source:Evening Chronicle
#image:club-exterior.jpg
#publishedAt:2025-10-22T14:30:00Z

Authorities have launched a full investigation into Club Neon after a local woman was reported missing following a night out at the venue.

## Investigation Underway

Detective Inspector James Morrison confirmed that officers are currently reviewing CCTV footage from the club and surrounding area. "We are speaking with staff members and patrons who were present on Friday evening," he stated.

The club's management has released a statement expressing their cooperation with the investigation.

![Club Neon exterior](club-exterior.jpg)

## Witness Appeals

Police are particularly interested in speaking with anyone who may have seen Sarah Thompson between 11:00 PM and midnight on Friday.

Several witnesses have come forward, but investigators believe there may be others who have not yet contacted authorities.

## Safety Concerns

The incident has raised concerns among local residents about safety in the entertainment district. City Council member Patricia Williams stated: "We take the safety of our residents very seriously and will be working closely with police to ensure all necessary measures are in place."

## Club Response

A spokesperson for Club Neon said: "We are deeply concerned about this situation and are doing everything we can to assist the police investigation. The safety and wellbeing of our patrons is our top priority."

The club has voluntarily provided all security footage and staff records to investigators.

---

*Anyone with information is urged to contact police on 101, quoting reference number 2510/22.*

Best Practices

Content Strategy

  1. Plan your news timeline - Map out when each article should appear
  2. Create multiple sources - Use 2-3 different news outlets for variety
  3. Build gradually - Start with basic facts, reveal more over time
  4. Stay consistent - Keep facts aligned across all articles
  5. Use timestamps - Create a realistic timeline of events

File Naming

Use descriptive, lowercase filenames with hyphens:

✅ Good:

  • breaking-news.md
  • club-investigation.md
  • police-statement-day-2.md

❌ Avoid:

  • news1.md
  • Article About Sarah.md
  • breaking_news.md

Testing

Before publishing:

  • ✅ Check all metadata tags are present and correctly formatted
  • ✅ Verify images exist in assets folder
  • ✅ Test unlock timing in your story
  • ✅ Proofread for typos and formatting errors
  • ✅ Ensure timestamps are in correct chronological order

Integration with Story

Referencing News in Conversations

ink
Have you seen the news today? #typing:2s
There's a breaking story about Sarah. #unlockNews:breaking-news #delay:3s

{IsNewsRead("breaking-news"):
    So you saw the news. What do you think?
- else:
    You should check the news app. It's important.
}

Creating Story Beats

Use news articles to:

  • Introduce the story - Initial article sets the scene
  • Escalate tension - Breaking news reveals new developments
  • Provide clues - Details in articles help solve mysteries
  • Show consequences - Report on player's actions or story events
  • Conclude arcs - Final articles wrap up storylines

Example Story Flow

Day 1 Morning:
  - "Local Woman Reported Missing" (#initial)
  
Day 1 Afternoon:
  - Player discovers phone
  - "Police Investigate Club Neon" (unlocked via Ink)
  
Day 2:
  - "Search Expands to Riverside District" (unlocked after player finds clue)
  
Day 3:
  - "Breakthrough in Missing Person Case" (unlocked near story climax)

Troubleshooting

Article not appearing:

  • Check filename matches the ID used in #unlockNews:
  • Verify #title: tag is present
  • Ensure file is in stories/your-story/news/ directory

Image not showing:

  • Confirm image exists in stories/your-story/assets/
  • Check filename spelling and extension
  • Verify image isn't corrupted

Formatting issues:

  • Ensure metadata tags are at the top of the file
  • Check for proper Markdown syntax
  • Verify no extra spaces in tag definitions

Timestamp errors:

  • Use ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
  • Include the T separator and Z timezone
  • Use 24-hour time format

Next Steps

Released under the MIT License.