Fresh - Overview
Fresh transforms farm logistics in Farming Simulator 25. Instead of produce lasting forever, your goods now have realistic shelf lives - sell them in time or lose them to spoilage.
Note: This documentation was generated with AI assistance and may contain inaccuracies. If you spot an error, please open an issue.
What Changes
In vanilla FS25, you can harvest wheat, store it indefinitely, and sell it months or years later at the perfect seasonal price. There is no penalty for hoarding.
Fresh changes this. Every perishable product now has a shelf life measured in game months. Strawberries last 1 month. Wheat lasts 12 months. Canned goods last 2 years. When a product reaches its shelf life, it expires and is removed from the game - along with any revenue you would have earned.
This creates real economic decisions:
- Sell or hold? Waiting for a better price is risky if your goods might expire first
- Logistics matter - You need to move perishable goods through your supply chain efficiently
- Storage choices count - Proper storage (cooled, frozen) dramatically extends shelf life
How Aging Works
Fresh ages products every game hour. Each hour, every tracked product moves slightly closer to its expiration threshold.
The aging rate depends on your game's days per period setting. Whether you play with 1 day per month or 30 days per month, products expire after the same number of in-game months. A product with a 3-month shelf life expires after 3 months regardless of your time settings.
Time Remaining Display
When you look at a storage, vehicle, or bale containing perishable goods, the info box shows the time remaining before the oldest batch expires:
- "Expires in 2.5 months" - Plenty of time
- "Expires in 3 days" - Getting close (text turns yellow)
- "Expires in 6 hours" - Sell now or lose it (text turns yellow)
- "Expired" - Already gone
The warning color threshold is configurable (6h, 12h, 24h, 48h, or 72h before expiration).
Batch Tracking
Fresh doesn't treat all goods in a container as one lump. Instead, it tracks batches - groups of the same product added at roughly the same time.
Why Batches Matter
When you harvest 5,000 liters of wheat in March and another 5,000 in June, Fresh tracks these as two separate batches with different ages. The March wheat is 3 months older than the June wheat, and it will expire first.
Oldest First (FIFO)
When you or the game retrieves products from storage, Fresh uses a First In, First Out system. The oldest batch is consumed first. This means:
- Selling from a silo takes the oldest grain first
- Production buildings consume the oldest input materials first
- Loading a trailer from storage takes the oldest goods first
This prevents the situation where fresh goods are used while older ones sit forgotten and expire.
Batch Merging
To keep things efficient, Fresh merges batches that are close in age. If you add wheat to a silo repeatedly over a short period, those small additions merge into a single batch rather than creating dozens of tiny ones.
What Gets Tracked
Fresh tracks perishable goods across five types of storage:
Vehicles
Pallets, trailers, tankers, and any vehicle with fill capacity. When you load goods onto a vehicle, Fresh tracks them. When you sell or unload, the batches transfer with their ages preserved.
Bales
Grass, straw, hay, and silage bales. Bales age based on their contents - grass windrows spoil within 1 month, while dry grass lasts 18 months. Wrapped bales undergoing fermentation pause aging until fermentation completes, then age as silage.
When a bale expires completely, it is deleted from the game (unlike vehicles, which stay as empty containers).
Silos and Storage Points
Farm silos, selling stations, and any placeable storage. These are typically classified as Indoor storage, giving a moderate shelf life bonus.
Production Points
Internal storage at production facilities. When a factory produces goods (like flour from wheat), the output starts fresh. Ingredients consumed by the factory are taken oldest-first.
Husbandry Feed
Animal food troughs at husbandries. Feed placed in troughs ages over time, and animals consume the oldest feed first.
Age Preservation on Transfer
When goods move between storage types - from a silo to a trailer, from a trailer to a selling point - their age transfers with them. Loading month-old wheat onto a trailer doesn't reset its age to fresh.
Storage Classes
Where you store goods affects how quickly they age. Fresh has six storage classes, from worst to best:
| Class | Aging Rate | Example |
|---|---|---|
| Exposed | 1.5x faster | Pallets and bales left outdoors |
| Sheltered | 1.0x (baseline) | Covered storage, feed troughs |
| Indoor | 0.8x slower | Enclosed silos, production buildings |
| Cooled | 0.3x slower | Refrigerated storage |
| Frozen | 0.10x slower | Freezer storage (nearly stops aging) |
| Disabled | No aging | Aging completely stopped |
Each product also has a max benefit class that caps how much it benefits from better storage. For example, dairy products max out at Cooled - putting milk in a freezer doesn't help more than a fridge.
See the Storage Classes Guide for the full details.
Visual Feedback
Info Box
When you approach a vehicle, silo, or bale containing perishable goods, the standard info box displays:
- The time remaining before the oldest batch expires
- The amount expiring and when
- Text turns yellow when expiration is near (configurable threshold)
Age Distribution HUD
A separate HUD panel shows color-coded freshness bars when you're near a storage:
- Blue - Fresh (75-100% of shelf life remaining)
- Green - Good (50-75% remaining)
- Orange - Warning (25-50% remaining)
- Red - Critical (0-25% remaining)
Each row includes a small storage class icon so you can see at a glance which class applies. This gives you an at-a-glance view of how much of your stored goods are near expiration. The age display can be toggled on/off in settings.
Daily Loss Notifications
At the start of each game day, Fresh shows a summary notification if any products expired during the previous day, including the total amount lost.
Fresh Menu
Press Right Shift + F to open the Fresh Menu. It has six tabs:
Overview
A summary of all perishable goods across your farm:
- Left table - All tracked product types with total amounts, expiring quantities, and time to next expiry
- Right table - Items expiring soon (within 24h, 48h, or 72h), showing specific storage locations with storage class
- Sort by product type, expiring amount, or next expiry time
Product Details
Drill into a specific product to see where it's stored:
- Left panel - All perishable products with total amounts
- Right panel - Per-storage breakdown for the selected product, showing storage name, class, amount, and time to expiry
- Freshness distribution: Fresh (75-100%), Good (50-75%), Warning (25-50%), Critical (0-25%)
Storage Details
Drill into a specific storage to see what it holds:
- Left panel - All storages, filtered by category (Placeables, Husbandries, Vehicles, Bales & Pallets)
- Right panel - Per-product breakdown for the selected storage, showing amounts, effective class, and time to expiry
Loss Statistics
Track what you've lost to spoilage:
- Summary cards - Losses for today, this month, last 12 months, and all time (amount and estimated value)
- Product breakdown - Which products you lose the most of
- Recent losses - Detailed log of individual expiration events with dates and locations
Shelf Life
A read-only reference listing every perishable product with its active shelf life. When Storage Class Aging is enabled, the tab displays a table with columns for each storage class (Exposed through Frozen), showing the effective shelf life in months for every product in each class. Cells are left blank where a product's max benefit class is exceeded, making it easy to see at a glance which storage types actually help each product. When Storage Class Aging is disabled, a single shelf life value is shown per product.
Settings
Full customization of the mod's behavior:
- Difficulty presets - Quick adjustment of all shelf lives at once
- Per-product shelf lives - Individual control over every product's expiration time (requires Custom difficulty)
- Benefit limits - Adjust the storage class ceiling per product
- Storage class overrides - Override automatic storage class detection
- Global toggles - Enable/disable expiration, storage class aging, warnings, age display, warning threshold
See the Settings Reference for full details.
Controls
| Key | Action | Where |
|---|---|---|
| Right Shift + F | Open/close Fresh Menu | In-game |
The keybinding can be remapped in the game's input settings.
Further Reading
- Storage Classes Guide - Deep dive into how storage affects shelf life
- Shelf Life Table - Every product with its default shelf life
- Settings Reference - All configurable options
- FAQ - Common questions and answers