Official reference: ISteamApps.
apps is synchronous and reads the running Steam application context.
- Ownership and installation:
isSubscribed(),isSubscribedApp(appId),isAppInstalled(appId), andisDlcInstalled(appId). - DLC changes:
installDlc(appId)anduninstallDlc(appId)request a state change. Observe thedlc-installedcallback event before treating an install as ready. - App metadata:
getAppBuildId(),getCurrentGameLanguage(),getAvailableGameLanguages(), andgetLaunchCommandLine(). - Paths and indexed records:
getCurrentGameInstallDir(),getAppInstallDir(appId), andgetDlcDataByIndex(index)returnnullwhen Steam has no value. Iterate indexes from0togetDlcCount() - 1.
for (let index = 0; index < apps.getDlcCount(); index++) {
const dlc = apps.getDlcDataByIndex(index);
if (dlc?.available && !apps.isDlcInstalled(dlc.appId)) {
apps.installDlc(dlc.appId);
}
}Use the current app ID from utils.getAppId() rather than embedding it in
consumer code when the app may run under multiple Steam configurations.