File: src/utils/DataProvider.lua
Class: FT_DataProvider
Instance: self.system.data from any app drawer
Full reference for all public methods. See developer/data-provider.md for implementation details and the caching system.
Returns the local player's farm ID. Fallback: 1.
Returns the farm's current balance (floored integer). TTL: 1 000 ms.
Returns the active loan amount. TTL: 2 000 ms.
Returns the farm's display name, or nil if not set.
Returns total session income (sum of all income stat keys). TTL: 3 000 ms.
Returns total session expenses (sum of all expense stat keys). TTL: 3 000 ms.
Returns the count of owned farmland parcels with a linked field. TTL: 5 000 ms.
Returns the count of motorised vehicles owned by the farm. TTL: 5 000 ms.
TTL: 500 ms. Returns:
{
day = number, -- current day number
season = number|nil, -- 0=Spring … 3=Winter; nil in base game
hour = number, -- 0–23
minute = number, -- 0–59
}TTL: 2 000 ms. Returns:
{
temperature = number, -- °C
rainScale = number, -- 0.0–1.0
isRaining = boolean, -- rainScale > 0.05
isStorming = boolean, -- rainScale > 0.70
isFoggy = boolean, -- fogScale > 0.3
cloudCover = number, -- 0.0–1.0
windSpeed = number, -- km/h
windDir = string|nil, -- "N","NE","E","SE","S","SW","W","NW" or nil
humidity = number|nil, -- 0.0–1.0 or nil
condition = string, -- "Clear","Partly Cloudy","Overcast","Foggy","Rainy","Stormy"
condKey = string, -- "clear","cloudy","overcast","fog","rain","storm"
forecast = table|nil, -- array of up to 7 entries (see below)
}Forecast entry:
{
weatherType = string|number|nil,
temperature = number|nil,
maxTemperature = number|nil,
minTemperature = number|nil,
}TTL: 4 000 ms. Returns array sorted by field ID ascending:
{
id = number, -- farmland / field ID
cropName = string, -- localised crop name or "Empty"
stateName = string, -- growth stage label
stateColor = {r,g,b,a},
phase = string, -- "ready", "growing", or "empty"
area = number, -- hectares
}TTL: 3 000 ms. Returns one entry per animal pen placeable:
{
typeName = string,
numAnimals = number,
maxAnimals = number,
foodPct = number|nil, -- 0–100
waterPct = number|nil, -- 0–100
cleanPct = number|nil, -- 0–100
hasFood = boolean,
hasWater = boolean,
hasCleanliness = boolean,
}Not cached. Returns motorised vehicles within radiusM metres (default 20), sorted by distance:
{
vehicle = object, -- raw FS25 vehicle
name = string,
distance = number, -- metres (integer)
fuel = number, -- litres
fuelCap = number,
fuelPct = number, -- 0–100
wearPct = number, -- 0–100
opHours = number, -- integer hours
}Locale-aware money formatting via g_i18n:formatMoney(). Fallback: "$amount".
0→"Spring", 1→"Summer", 2→"Autumn", 3→"Winter". Returns nil if seasonIdx is nil.
Flushes the entire cache immediately.