TypeScript type definitions and parser for ETS2 and ATS .sii save files
npm install sii-parse-ts.sii save files with complete type definitions.
bash
npm install sii-parse-ts
`
Usage
`typescript
import {
parseSii,
parseSiiFile,
parseSiiFileAuto,
parseSiiFileStreaming,
ProfileSii,
GameSii,
} from 'sii-parse-ts';
// Parse SII content string
const siiContent = SiiNunit
;
const parsed = parseSii(siiContent);
console.log(parsed.SiiNunit.user_profile[0].profile_name);
// Parse from file (standard)
const profile = await parseSiiFile('./profile.sii');
// Parse with automatic optimization (recommended for unknown file sizes)
const gameSave = await parseSiiFileAuto('./game.sii');
// Parse large files with streaming (>10MB files)
const largeSave = await parseSiiFileStreaming('./large-save.sii');
`
Performance Features
$3
The library automatically chooses the best parsing method:
`typescript
// Automatically uses streaming for files >10MB, standard parsing otherwise
const result = await parseSiiFileAuto('./unknown-size-file.sii');
`
$3
For very large SII files, use streaming to reduce memory usage:
`typescript
// Recommended for files >10MB
const result = await parseSiiFileStreaming('./large-save-file.sii');
`
API
$3
- parseSii - Parse SII content string
- parseSiiFile - Parse SII file (async)
- parseSiiFileSync - Parse SII file (sync)
$3
- parseSiiFileStreaming - Parse large SII files (>10MB) with streaming for reduced memory usage
- parseSiiFileAuto - Automatically choose optimal parsing method based on file size
- parseSiiChunked - Parse with chunked processing (future-ready API)
$3
- parseSiiAs - Parse SII content with type assertion
- parseSiiFileAs - Parse SII file with type assertion (async)
- parseSiiFileSyncAs - Parse SII file with type assertion (sync)
$3
- isValidSiiContent(content: string) - Validate SII content format
- isValidSiiPath(path: string) - Validate SII file path
$3
- ProfileSii - Player profile data
- GameSii - Game save state
- ControlsSii - Input configuration
- InfoSii - Save metadata
Supported Formats
Only plaintext SII files (SIIN format) are supported. Encrypted (SCSC) and binary (BSII) formats will throw an error with a clear message.
Error Handling
`typescript
import { isValidSiiContent, parseSii } from 'sii-parse-ts';
if (isValidSiiContent(content)) {
const result = parseSii(content);
} else {
console.log('Invalid or encrypted SII file');
}
`
Examples
See the examples/ directory for complete usage examples:
`bash
npm run example # JavaScript examples
npm run example:ts # TypeScript examples
``