HyperLocal Loop
Jun 25, 2026
The Your

Close to home. Always in the loop.

California Library Shooting

An 18-year-old man faces two open counts of murder following a fatal shooting inside a public library on June 22. Authorities arrested Bradley Scott Sayer at the scene after he allegedly opened fire on strangers, killing two adults and wounding a child.

Investigation

According to investigators, Sayer was explicitly motivated to replicate the 1999 Columbine High School massacre. The incident began on June 22 when police responded to reports of gunfire inside the library. As officers entered through the front doors, Sayer attempted to escape out the back of the building. However, officers had already set up a perimeter outside and took him into custody immediately.

Two adults, 74-year-old Robert Johnson and 36-year-old Jacob Hull, died from their injuries. Emergency responders transported an injured child to a local hospital with non-life-threatening injuries. The Chico Police Department stated that Sayer did not know any of the victims.

Timeline of the Attack

Federal and local officials detailed a timeline of the attack. Sid Patel, the special agent in charge at the Sacramento FBI field office, reported that Sayer conducted a walk-through of the library right before the shooting took place. Sayer then walked back to his car, retrieved a semi-automatic rifle, and went back inside the building to open fire.

When officers arrested Sayer, he was wearing a shirt with hand lettering on the front that read “natural selection.” Police recovered the semi-automatic rifle at the scene. A subsequent search of Sayer’s car revealed additional firearms hidden inside. Chico Police Chief Billy Aldridge confirmed that all of the weapons found by investigators were registered to relatives of the teenager, rather than the suspect himself.


Original reporting: Tampa Free Press — read the source article.

OBBM Network Editorial Staff

[email protected]

Editorial team behind OBBM Network — independent, hyper-local journalism syndicated through HyperLocalLoop and OBBM Network TV.

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent News

Trending

Community News

Quick Start Deal

Get Loop-Ready in One Move

A low-commitment monthly bundle that keeps your business in front of local audiences across HyperLocal Loop and the OBBM Network.

$350 Per Month
What's Included
  • DataPulse · 1,000 Matches Identify and retarget anonymous visitors to your site
  • Banner Ads Geo-targeted display placement across HyperLocal Loop
  • Video Ad Airs on your Local OBBM Channel
  • Business Advertorial A featured sponsored article telling your story
Get Started
Secure checkout · Cancel anytime
§ 04 · Choose Your Package

Three levels. Up to 60% off.

Every Patriot Package is priced at over 40% off standard AdRevv list rates — and the discount deepens as you scale, up to 60% off at the Enterprise tier.

Tier I · Local
The Patriot
For local & regional brands launching with the network.
List Price: $835/mo
$500/mo
★ Save $335 — 40% Off
Monthly Allotment
  • Audio: 10,000Podcast impressions
  • Video: 10,000Streaming TV impressions
  • Banners: 50,000HyperLocal Loop geo-targeted banner impressions
  • DataPulse: First 1,000visitor matches included
  • City or regional geo-targeting via AdServe
  • Real-time campaign reporting
Start The Patriot
Tier III · National
The Enterprise
For national brands ready to dominate the network.
List Price: $5,065/mo
$2026/mo
★ Save $3,039 — 60% Off
Monthly Allotment
  • Audio: 14,000Podcast impressions
  • Video: 10,000Streaming TV impressions
  • Banners: 100,000HyperLocal Loop geo-targeted impressions
  • DataPulse: 5,000visitor matches included
  • LeadEngine: 20,000actionable buyer-intent contacts
  • Host Endorsements: 9podcast host-read spots
  • National geo-targeting + dedicated campaign manager
  • Priority creative production support
★ Bonus Included
Free 1-Year Freedom Chamber Membership
Faith, Family & Freedom business community at freedomchamber.net.
Start Enterprise

Need a custom configuration? Build your own package →