Data::SCS::DefParser
This software is a Perl module to parse units contained in SII definition files (plain text variant). SII files are used with the ATS and ETS2 truck simulator games.
What I originally needed was a quick solution to read basic city and company data. Instead of creating a generic SII parser, I ended up just throwing regular expressions at the problem until I got what I wanted. The result turned out to be capable of parsing many other def files as well to some extent, although it might not be very reliable. That said, it's served me well in practice for many years without needing too much maintenance. Which is good, since that quick-and-dirty approach let readability suffer.
The code is structured around the expectation that the game files have already been extracted to the file system, and have been limited to just the files you want to parse. While you can easily point the parser to the full game installation thanks to Archive::SCS, doing so is comparatively slow. Fixing that would be a bit of a redesign and I don't think I'll bother with it.
Usage
my $game_data = Data::SCS::DefParser->new(
mount => ( $game_name or $dir_path or [@scs_files] ),
parse => ( $def_file or [@def_files] ),
)->data;
# Example: Write out a YAML representation of definitions;
# omitting "parse" will default to city and company files.
use YAML::Tiny;
my $ats = Data::SCS::DefParser->new( mount => 'ATS' )->data;
YAML::Tiny->new( $ats )->write( 'ats.yml' );
# Example: List city tokens from the Texas DLC; the correct
# def name city.dlc_tx.sii will be automatically determined.
say for ( sort keys Data::SCS::DefParser->new(
mount => ['dlc_tx.scs'],
parse => ['def/city.sii'],
)->data->{city}->%* );
Installation
Using cpanminus on Perl v5.36 or later:
cpanm https://github.com/nautofon/Data-SCS-DefParser.git
Performing a manual installation should be considered slightly advanced because you'll need to handle all prerequisites yourself. For general information on installing Perl modules, see https://www.cpan.org/modules/INSTALL.html.
perl Makefile.PL
make
make test
make install
Contact
Feel free to post any kind of feedback or questions in the
SCS forum thread on Archive::SCS.
The two modules are somewhat related.
(Or send a PM to nautofon, if you prefer.)
License
Copyright © 2025 nautofon
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.