Bingung Memulai Bikin Mod Map Baru? Disini Tempatnya

Pejindo Project menyediakan segudang tutorial pembuatan mod map paling lengkap - terutama untuk warga Indonesia dan negara tetangga.

image host

Nggak punya aset map atau nggak bisa bikin model? Disini sudah tersedia kok

Pejindo Project punya banyak koleksi aset dan model map. Mulai dari model jalan (road), persimpangan (prefab), rambu lalu-lintas (sign), dan masih banyak lagi.

image host

Masih kurang paham cara pakai tool dan menu di map editor?

Pejindo Project sudah siapkan kamus segala macam tool dan menu beserta fungsinya. Baik itu dari Item Properties maupun Toolbar yang disediakan di program Map Editor.

image host

Tutorial dari SCS Modding Wiki, juga tersedia disini loh!

Pejindo Project menyiapkan pembahasan versi -bahasa bayi- agar lebih mudah menangkap maksud perubahan fitur dan tool yang disediakan SCS. Link official : "https://modding.scssoft.com/"

image host

Sudah banyak belajar bikin mod map? Bagaimana kalau coba mainkan map satu ini?

Pejindo Project memiliki satu project utama yang dirilis sejak Januari 2021 sampai sekarang ini. Namanya map JRR (Java Road Revolution), berupa map add-on yang berfokus pada kawasan di pulau Jawa dan sekitarnya

Mengenal Script Map Definition (DEF) ETS2 : Ferry Data

Definisi (DEF) ETS2 #4 : Ferry Data (Nama Pelabuhan Penyeberangan di Game)

Diperbarui pada : Januari 2023
Alasan : Revisi

Salam! Postingan ini akan menjelaskan khusus bagian, fungsi, dan deskripsi masing-masing teks/script yang tertulis di setiap file yang berformat .sii/.sui pada folder “def”. Sekarang saatnya pengenalan!

Setelah menjelaskan ketiga bagian pokok dalam suatu script data DEF (country, company, dan city), sekarang saya akan membahas data DEF berikutnya yaitu ferry. Kita mungkin sudah tahu istilah 'ferry' yang berarti pelabuhan penyeberangan. Siapa lagi yang tidak mengenal pelabuhan Merak, Bakauheni, Ketapang, atau Gilimanuk? Semua itulah salah satu dari yang namanya ferry.

File ferry.sii

Daripada menjelaskan hal yang tidak-tidak, sekarang buka file ferry.sii yang berada langsung dalam folder ‘def’. Boleh menggunakan Notepad, Notepad++, atau WordPad.

Ketika yang di buka berupa file format SII, maka baris paling atas selalu diawali dengan tulisan SiiNunit sebagai teks pembuka suatu file.

Baris di bawahnya ada semacam peringatan yang diawali dengan tanda . Itu tandanya baris script tersebut sengaja tidak dibaca sama sistem atau game (tapi mata dan otak kalian tetap harus baca karena itu menunjukkan peringatan). Beberapa bahasa pemrograman juga begitu, seperti membuat kata-kata komentar. Untuk isi yang ada tanda # dijelaskan terkait pemberian judul (title) tambahan pada file .sii.

Baris di bawahnya lagi, tertulis lengkap daftar script 'ferry' yang tersedia atau dipakai di game atau mod map/peta. Setiap daftar tersebut tertulis sebagai berikut.

@include “ferry/<nama_ferry>.sii”

Maksudnya, setiap ferry yang akan dimasukkan (include) akan memuat definisi lain yang tertulis pada file ferry/<nama_ferry>.sii

Contoh : @include “ferry/dover.sii” (maknanya ada file “dover.sii” yang juga dimasukkan atau dimuat dari folder 'ferry')

Folder / "ferry" / <nama_pelabuhan>.sii atau .sui /

Sekarang masuk ke folder ‘ferry’ itu sendiri. Di dalamnya ada satu folder “connection” dan banyak file .sii (atau .sui) yang tertulis nama pelabuhan/ferry yang ada di game. Misalnya saya buka file script (definisi) dover.sii.

Kiri = ETS2 versi lama (1.30 ke bawah)

Kanan = ETS2 versi baru (1.33, 1.35, 1.36, 1.40, dst.)

ferry_data: ferry.<nama_tempat>
{
     ferry_name: "<nama_tempat>"
     ferry_name_localized: "@@<nama_tempat>@@"
}

  • ferry_data: ferry.<nama_ ferry> : parameter informasi awal untuk nama pelabuhan penyeberangan atau ferry.
  • ferry_name: "<nama_ ferry>" : nama pelabuhan penyeberangan atau ferry yang harus sesuai dengan parameter informasi diatas.
  • ferry_name_localized: "@@<nama_ ferry>@@: nama pelabuhan penyeberangan atau ferry sebagai 'token' untuk diterjemahkan dalam berbagai bahasa yang disediakan di game (tersambung sama folder 'locale')

Omong-omong, ada sedikit pengecualian untuk penyeberangan menggunakan kereta (train). Ini karena adanya jalur penyeberangan Euro Tunnel atau Channel Tunnel, dimana merupakan terowongan kereta bawah laut yang menghubungkan antara Calais (Perancis) dengan Folkestone (Inggris), yang jelas sesuai di dunia nyata (serius loh...).

Misalnya saya buka file script def untuk tunnel_d.sii.

Kurang lebih sama seperti diatas, hanya beda tambahan script berikut.

transport_type: "train"

  • transport_type: “train” : berfungsi sebagai penyeberangan kereta. Ikon Ferry akan berubah menjadi “terowongan” dari sebelumnya yang bergambar “jangkar”.

Folder / "ferry" / connection / <ruteA_ruteB>.sii /

Sekarang kita buka folder connection. Isinya ada berbagai file .sii yang berfungsi membuat jalur penghubung setiap titik ferry beserta deskripsi tambahan (jarak, lama waktu, dan ongkos perjalanan).

Misalnya ada dua titik ferry yang akan dihubungkan, yaitu “Calais” dan “Dover”. Ketika ingin menghubungkan keduanya, maka harus terdapat dua file .sii yaitu calais-dover.sii dan dover-calais.sii

Ini dimaksudkan ketika pemain ingin menyeberang dari Calais ke Dover (menggunakan file calais-dover.sii), atau dari Dover ke Calais (menggunakan file  dover-calais.sii). Meski begitu, dua file berbeda tersebut HARUS memiliki isi script yang sama.

Nggak percaya?? silahkan buka seperti ini

Kalau ditulis ulang di bawah ini maksud script tersebut adalah sebagai berikut.

SiiNunit
{
ferry_connection : conn.<nama_tempatA>.<nama_tempatB> {
   price: <angka>
   time: <angka>
   distance: <angka>
}
}

  • ferry_connection : conn.<nama_tempatA>.<nama_tempatB> : kode informasi jalur penghubung antar-ferry. Nama Tempat ke-A dan ke-B harus sesuai dengan judul(title) file .sii.
  • price: <angka> : harga/ongkos penyebrangan yang digunakan. Dalam satuan mata uang  Euro.
  • time: <angka> : lama perjalanan selama penyebrangan. Dalam satuan Menit.
  • distance: <angka> : jarak penyebrangan yang digunakan (sekadar tampil di menu). Dalam satuan kilometer(?) (barangkali di-konversi kedalam skala 1.19 ?).

Ada Script tambahan (opsional) untuk membuat variasi garis jalur penyeberangan hingga terlihat melengkung dan berkelok-kelok pada World Map (UI Map). Sudah diterapkan sejak DLC Scandinavia dan Italia.

  • connection_positions[<ke-n>]: (<sumbu_X * 256>, 0, <sumbu_Y * 256>) : Titik (point) posisi yang ingin ditambahkan dengan menentukan koordinat sumbu X dan sumbu Y. Jumlahnya [ke-n] bebas dan harus dimulai dari 0 (sesuai bahasa program). Jumlah maksimal bisa sesuai selera, mau buat dua atau lima titik juga bisa. 
  • connection_directions[<ke-n>]: (<-sin(sudut X)>, 0, <-cos(sudut Y)>) : Arah garis tiap titik (point) posisi yang ingin diatur sesuai sudut putar sumbu X dan sumbu Y. Jumlahnya [ke-n] bebas dan harus dimulai dari 0 (sesuai bahasa program). Jumlah maksimal bisa sesuai selera, mau buat dua atau lima titik juga bisa.

Terus... semua angka-angka itu dapatnya dari mana? 

Ternyata ini pakai RUMUS Matematika (lah...kok disuruh belajar matematika sih...?)

Nggak usah protes, salah sendiri gak mau belajar. Mau bikin program atau bikin game pun harus bisa Matematika. Paham?!

  • Untuk posisi koordinat (sumbu X & sumbu Y) hanya bisa dilihat pada editor pada baris bawah. Karena bentuknya dua dimensi (bangun datar), maka yang bisa diubah hanya sumbu x dan sumbu y. 
  • Rumus mencari connection_positions = (256 x sumbu X ; 0 ; 256 x sumbu Y) - intinya sumbu x maupun y dikalikan 256. Itu aja
  • Untuk sudut putar dari garis agar bisa melengkung. maka tentukan dengan perhitungan "Trigonometri"
  • Rumus mencari connection_directions = -sin(sudut putar) ; 0 ; -cos(sudut putar)

Terus arah garis nya bakal kemana setelah hitung connection_directions

  • Utara = 0 atau 360 derajat = Garis lurus ke ATAS = connection_directions [n] : (0, 0, -1)
  • Timur = 270 derajat = Garis lurus ke KANAN = connection_directions [n] : (1, 0, 0)
  • Selatan = 180 derajat = Garis lurus ke BAWAH= connection_directions [n] : (0, 0, 1)
  • Barat = 90 derajat = Garis lurus ke KIRI = connection_directions [n] : (-1, 0, 0)
Kalau mau buat garis miring tinggal kira-kira sendiri asal mendekati 4 ketentuan diatas.

Udah bang... udah... gak kuat bang...

Terkadang setiap pembaruan versi ETS2, script/definisi yang ada pun bisa berubah sewaktu-waktu. Jadi post/artikel ini akan terus diperbarui setiap waktu.

Masih ada banyak lagi yang harus dipelajari pada folder def yang ada sekian banyak file .sii atau .sui. Semoga ini bisa bermanfaat dan bisa menjadi panduan yang baik, sehingga dapat memperkecil error yang sering mengganggu saat membuat mod. Tunggu kelanjutannya di Pejindo Blog!

Sekian dari saya, Wassalam!

Mengenal Script Map Definition (DEF) ETS2 : City Data

Definisi (DEF) ETS2 #3 : City Data (Nama Kota di Game)

Diperbarui pada : Januari 2023
Alasan : Revisi

Salam! Postingan ini akan menjelaskan khusus bagian, fungsi, dan deskripsi masing-masing teks/script yang tertulis di setiap file yang berformat .sii/.sui pada folder “def”. Sekarang saatnya pengenalan!

Mohon diingat, bahwa ini hanya sebatas pengenalan script yang sudah ada di base-nya orian game yang diambil dan di-extract langsung dari file def.scs. Kalau ingin bikin data DEF pakai nama sendiri, bukan disini tempatnya, oke!

Berikut ini adalah DEF untuk data city (nama kota). Tentunya yang satu ini tidak kalah wajibnya dengan script DEF lainnya, karena berhubungan langsung dengan Data Country (negara) dan Data Company (job perusahaan). File yang diperlukan dalam menambah kota baru ialah city.sii dan semua file yang terdapat pada folder ‘city’.

File city.sii

Sekarang buka file city.sii yang berada langsung dalam folder ‘def’. Boleh menggunakan Notepad, Notepad++, atau WordPad.

Ketika yang di buka berupa file format SII, maka baris paling atas selalu diawali dengan tulisan SiiNunit sebagai teks pembuka suatu file.

Baris di bawahnya ada semacam peringatan yang diawali dengan tanda # . Itu tandanya baris script tersebut sengaja tidak dibaca sama sistem atau game (tapi mata dan otak kalian tetap harus baca karena itu menunjukkan peringatan). Beberapa bahasa pemrograman juga begitu, seperti membuat kata-kata komentar. Untuk isi yang ada tanda # dijelaskan terkait pemberian judul (title) tambahan pada file .sii.

Baris di bawahnya lagi, tertulis lengkap daftar script kota yang tersedia atau dipakai di game atau mod map/peta. Setiap daftar tersebut tertulis sebagai berikut.

@include “city/<nama_kota>.sii”

Maksudnya, setiap kota yang akan dimasukkan (include) akan memuat definisi lain yang tertulis pada file city/<nama_kota>.sii

Contoh : @include “city/london.sii” (maknanya ada file “london.sii” yang juga dimasukkan atau dimuat dari folder 'city')

Folder / "city" / <nama_kota>.sii atau .sui /

Sekarang masuk ke folder ‘city’ itu sendiri. Di dalamnya ada berbagai folder dan file .sii (atau .sui) yang tertulis setiap nama kota yang ada di game. 

Misalnya di dalam folder city ini isinya adalah satu folder bernama ‘aberdeen’ dan satu file script atau data def berformat .sui juga dengan nama aberdeen.sui.

Misalnya saya buka file script (definisi) aberdeen.sii.

Bedanya, disini tidak diawali dengan SiiNunit. Kalau ditulis ulang di bawah ini maka format script tersebut adalah di bawah ini.

  • city_data: city.<nama_kota> : parameter awal informasi nama kota.
  • city_name: "<nama_kota>" : nama kota yang harus sesuai dengan kode informasi diatas. Ditulis dalam huruf kapital.
  • city_name_localized: "@@<nama_kota>@@" : nama kota sebagai 'token' untuk diterjemahkan dalam berbagai bahasa yang disediakan di game (tersambung sama folder 'locale')
  • country: <nama_negara> : nama negara yang menjadi letak suatu kota. Ditulis sesuai dengan script def data country yang ada atau dibuat.
  • map_x_offsets[]: <angka> : posisi teks nama kota pada UI Map dalam sumbu x.
  • map_y_offsets[]: <angka> : posisi teks nama kota pada UI Map dalam sumbu y.
  • vehicle_brands[]: "<nama_truckdealer>" : nama dealer truk yang terdapat pada suatu kota. Pilih sesuai merek/brand truk yang ada di game ETS2 (Scania, Mercedes, Volvo, MAN, Iveco, Renault, DAF)
  • license_plate[]: .<nama_kota>.lp.<tipe traffic> : Pengelompokkan susunan plat nomor kendaraan pada suatu kota <nama_kota> dan sesuai <tipe_traffic> yang ingin ditentukan (jenis traffic : car, bus, truck, trailer, police)
  • templates[]: <format> : Susunan template buat kemunculan plat nomor kendaraan. Sudah dijelaskan di tutorial Mengenal Script DEF : Country Data
  • def<pola_angka>[]:"<angka/huruf>" -> daftar huruf atau angka yang tersedia untuk mengisi suatu pola pada plat nomor kendaraan. Sudah dijelaskan semuanya lengkap di tutorial Mengenal Script DEF : Country Data


Oke sampai disitu saja. Masih ada banyak lagi yang harus dipelajari pada folder def yang ada sekian banyak file .sii. Semoga ini bisa bermanfaat dan bisa menjadi panduan yang baik, sehingga dapat memperkecil error yang sering mengganggu saat membuat mod. Tunggu kelanjutannya di Pejindo Blog!

Sekian dari saya, Wassalam!

Mengenal Script Map Definition (DEF) ETS2 : Company Data

Definisi (DEF) ETS2 #2 : Company Data (Tempat Job Perusahaan di Game)

Diperbarui pada : Januari 2023
Alasan : Revisi

Salam! Postingan ini akan menjelaskan khusus bagian, fungsi, dan deskripsi masing-masing teks/script yang tertulis di setiap file yang berformat .sii/.sui pada folder “def”. Sekarang saatnya pengenalan!

Kali ini yang akan saya bahas ialah definisi (disingkat DEF) dari data company atau nama perusahaan di game. Pastinya game ini memiliki misi pengiriman barang dari suatu kota ke kota lain. Untuk itu, di setiap kota ada beberapa perusahaan/company yang menjadi tempat pengiriman, seperti gudang logistik, pabrik, pertambangan, peternakan, bahkan di bandara dan pelabuhan.

Dan untuk mengaktifkan semua tempat pengiriman tersebut diperlukan definisi (def) atau script baru ini. File yang diperlukan dalam menambah perusahaan baru ialah company.sii dan semua file yang terdapat pada folder ‘company’.

File company.sii

Sebagai permulaan, sekarang buka file company.sii yang berada langsung dalam folder ‘def’. Boleh menggunakan NotepadNotepad++, atau WordPad.

Bagian atas selalu diawali dengan tulisan SiiNunit sebagai teks pembuka suatu file. 

Di bawahnya tertera tulisan dalam bahasa Inggris yang selalu diawali dengan karakter # di setiap baris. Intinya hanya memberi penjelasan terkait pemberian imbuhan pada nama file .sii tersebut. Jangan pakai nama yang sama persis dengan yang sudah ada di bawaan (ori) game. 

Misal kalau ingin nambah data company tidak boleh langsung di file company .sii melainkan bikin file baru dengan nama beda (misal : company.map_jowo.sii)

Di bawahnya lagi, tertulis lengkap daftar script negara yang tersedia atau dipakai di game atau mod map/peta. Setiap daftar tersebut tertulis sebagai berikut.

@include “company/<nama_perusahaan atau tempat_job>.sii”

Maksudnya, setiap negara (country) yang akan dimasukan (include) akan memuat definisi lain yang tertulis pada file company/<nama_perusahaan atau tempat_job>.sii

Folder / "company" / <nama_perusahaan atau tempat_job>.sii /

Sekarang masuk ke folder ‘company’ itu sendiri.

Disitu ada banyak sekali folder dan file .sii (atau .sui) berisi berbagai macam nama company. Mulai dari kaarfor, ika_bohag, posped, eurogoodies, tradeaux, dsb. Tapi dari semua itu isi dan susunan script nya sama aja (hanya beda nama company diatas tadi. Jadi saya ambil salah satu file sii/sui sebagai patokan.

company_permanent: company.permanent.<tempat_job>
{
     name: "<tempat_job>"
     sort_name: "<tempat_job>"
     trailer_look: 
<tempat_job>
}

Berikut rincian dan fungsi setiap script diatas.

  • company_permanent: company.permanent.<tempat_job> : Parameter pembuka untuk data setiap tempat job (company) di game.
  • name: <tempat_job> : Nama tempat job (company) secara Default
  • sort_name: <tempat_job> : Nama tempat job (company) dalam huruf kecil
  • trailer_look: <tempat_job> : Nama tekstur skin trailer/kargo yang akan dimunculkan pada tempat job (company) itu.

Setelah itu pilih salah satu dari folder nama company yang ingin di klik, misal folder 'posped' tadi. Lalu akan tampak 3 folder lain : 

  • editor (daftar kota yang terdapat company ‘Posped’ tersebut untuk diaktifkan), 
  • in (barang/kargo yang dapat diterima/dituju oleh company ‘Posped’ tersebut), dan 
  • out (barang/kargo yang disediakan oleh company ‘Posped’ untuk dikirimkan ke tempat lain).

Folder / company / <nama_perusahaan atau tempat_job> / editor / <nama_kota>.sii

Folder "editor" inilah yang paling utama dan sering dipakai para mapper, yang bertujuan hanya untuk mengaktifkan tempat job (company) di suatu kota. Langsung saja buka folder editor.

Isinya memuat daftar kota yang terdapat suatu company (karena yang saya tunjukkan ini ada didalam folder company / posped / editor, maka maksudnya adalah daftar kota yang terdapat company ‘Posped’).

Sekarang coba buka salah satu kota yang ada. Boleh menggunakan Notepad, Notepad++, atau WordPad.

SiiNunit
{
company_def : .<nama_kota> {
 city: <nama_kota>
 prefab: <nomor_id_prefab>
}
}
  • company_def : .<nama_kota> : kode informasi nama kota pada suatu perusahaan(company).
  • city: <nama_kota> : nama kota yang akan diaktifkan dengan nama harus sama sesuai script company_def diatas.
  • prefab: <nomor_id_prefab> : Nomor kode unit ID prefab yang akan dipakai/diaktifkan untuk company tersebut. Untuk yang satu ini mungkin butuh sedikit hapalan, atau buka dan cari di folder def / world / prefab.sii
  • Contoh : prefab.263, prefab.dlc_fr_455, prefab.dlc_no_51, dll. Maka yang diambil yang diberi cetak tebal saja.

Folder / company / <nama_perusahaan atau tempat_job> / in atau out /

Masih di folder ‘posped’ tadi. Karena tadi sudah dilihat isi dalam folder editor, sekarang tinggal folder in dan out. Karena keduanya memiliki script/definisi yang sama di setiap file .sii. jadi saya buka salah satu saja, misalnya folder ‘in’.

Didalamnya terdapat sederet jenis trailer/kargo yang dimasukkan untuk company ‘posped’. Semua ini akan berhubungan langsung dengan foder def/cargo. Misalnya saya buka petrol.sii

SiiNunit
{
 cargo_def : . <nama_trailer/kargo> {
 cargo: "cargo. <nama_trailer/kargo>"
}
}
  • cargo_def : . <nama_trailer/kargo> : parameter informasi nama trailer/kargo.
  • cargo: "cargo.<nama_trailer/kargo>" : nama trailer/kargo yang harus sesuai dengan kode informasi diatas.

Untuk folder ‘out’ tidak jauh berbeda dengan yang satu ini. Hanya jumlah daftarnya saja yang berbeda. Mungkin sengaja dibuat beragam. Bahkan di folder company tertentu hanya ada folder ‘in’ saja, tanpa folder ‘out’.

Kenapa seperti itu?

Sesuai fungsi yang dijelaskan pada daftar poin diatas, folder 'in' berisi daftar muatan/kargo yang dapat diterima/dimasuki oleh company tersebut, sedangkan folder 'out' berisi daftar muatan/kargo yang disediakan oleh si company untuk dikirimkan ke tempat lain. 

Kalau bingung, anggap aja in = barang yang mau dibeli ; out = barang yang mau dijual. Masih bingung juga? anggap in = barang dari import ; out = barang yang mau di-eksport

Untuk suatu company yang hanya ada folder 'in 'tapi tidak ada folder 'out'. Maka company itu hanya bisa menerima pengiriman barang tanpa menyediakan barang yang akan dikirim (keluar). Contohnya Sellplan.


Oke sudah selesai. Itu saja untuk saat ini. Masih banyak hal yang harus dipelajari pada folder def yang ada sekian banyak file .sii. Semoga ini bisa bermanfaat dan bisa menjadi panduan yang baik, sehingga dapat memperkecil error yang sering mengganggu saat membuat mod. Tunggu kelanjutannya di Pejindo Blog!

Sekian dari saya, Wassalam!

Mengenal Script Map Definition (DEF) ETS2 : Country Data

Definisi (DEF) ETS2 #1 : Country Data (Negara)

Diperbarui pada : Januari 2023
Alasan : Revisi

Salam! Postingan ini akan menjelaskan khusus bagian, fungsi, dan deskripsi masing-masing teks/script yang tertulis di setiap file yang berformat .sii pada folder “def”. Sekarang saatnya pengenalan!

Hal yang akan saya bahas disini ialah definisi data country (nama negara). Bagi yang ingin membuat negara baru (pun dengan nama baru atau file terpisah, seperti data negara Indonesia), perlu memperhatikan script atau definisi(def) baru ini.

File yang diperlukan dalam menambah negara baru ialah country.sii dan semua file yang terdapat pada folder “country”.

Oh iya, kalau masih belum menemukan atau bingung dimana file script yang satu ini, kalian harus meng-ekstrak file def.sii yang ada di dalam folder lokasi game ETS2 masing-masing. Silahkan baca Map Editor Tutorial ETS2 (Part2).

Oh iya, ka simbol atau syntax seperti @, #, [], {}, dll. mengingatkan kita yang sedang belajar pemrograman (seperti saya). Fungsinya kurang lebih sama. Jadi script def ini seakan-akan merupakan salah satu kode dalam suatu program. 

File country.sii

Sekarang buka file country.sii yang berada langsung dalam folder ‘def’. Boleh menggunakan Notepad, Notepad++, atau WordPad.

Bagian atas selalu diawali dengan tulisan SiiNunit sebagai teks pembuka suatu file. 

Di bawahnya tertera tulisan dalam bahasa Inggris yang selalu diawali dengan karakter # di setiap baris. Intinya hanya memberi penjelasan terkait pemberian imbuhan pada nama file .sii tersebut. Jangan pakai nama yang sama persis dengan yang sudah ada di bawaan (ori) game. 

Misal kalau ingin nambah data country tidak boleh langsung di file country.sii melainkan bikin file baru dengan nama beda (misal : country.map_jowo.sii)

Di bawahnya lagi, tertulis lengkap daftar script negara yang tersedia atau dipakai di game atau mod map/peta. Setiap daftar tersebut tertulis sebagai berikut.

@include “country/<nama_negara>.sii”

Maksudnya, setiap negara (country) yang akan dimasukan (include) akan memuat definisi lain yang tertulis pada file country/<nama_negara>.sii

Contoh : @include “country/uk.sii” 

(maknanya ada file “uk.sii” yang juga dimuat dalam folder “country”)

Lalu, apa maksud dari daftar negara lain beserta angkanya di paling bawah? Nah, ternyata sudah dijelaskan kalimat di sana yang tertulis.

“Recommended country identifiers for currently unused countries. Using those indices is not required however it improves compatibility with future DLCs or with other mods utilizing indices from this table.”

Intinya, semua itu adalah daftar Country ID (Identifiers) yang disarankan dari SCS untuk negara lain yang tidak tersedia atau dibuat di game atau peta/map DLC. Ini dipakai khusus untuk modder atau mapper yang ingin membuat negara baru, seperti Indonesia. Dengan begitu, diharapkan masing-masing mod map/peta menggunakan kode/angka Country ID yang sama sesuai yang tertulis dalam daftar tersebut.

Terus kalau untuk mod map/peta imajinasi (fantasy map) bagaimana? 

Membuat negara baru dengan nama sesuka hati, lalu country ID-nya ditulis angka berapa? 

Sebenarnya terserah mau ditulis berapa angka. Kalau terakhir angkanya tertulis sampai 202, maka selebihnya (203, 204, 300, dst.) juga boleh. Tetapi kalau kalian membuatnya pada standalone map, masalah country ID tersebut diabaikan saja.

Folder / "country" / <nama_negara>.sii /

Sekarang masuk ke folder ‘country’ itu sendiri. Di dalamnya ada berbagai folder dan file .sii (atau .sui kalau di ETS2 versi baru) yang tertulis nama negara yang ada di game. 

Jadi jika ingin buat map/peta Indonesia, maka di dalam folder country ini isinya adalah satu folder bernama ‘indonesia’ dan satu file script atau definisi berformat .sii juga dengan nama indonesia.sii atau indonesia.sui.

Misalnya saya buka file script (definisi) uk.sii.

Catatan : Dari ETS2 versi 1.33, 1.36, 1.40 keatas

Bedanya, disini tidak diawali dengan SiiNunit. Kalau ditulis ulang di bawah ini maksud script tersebut adalah sebagai berikut.

country_data: country.data.<nama_negara>
{
     country_id: <nomor_ID_negara>

     name: "@@<nama_negara>@@"
     country_code: "<kode_negara>"

     pos:(<sumbu x; 0; sumbu y>)

     fuel_price: <harga_BBM(Bensin)_dalam_angka> # dalam mata uang Euro

     lights_mandatory: <true/false> # pilih salah satu
     imperial_units: <true/false> # pilih salah satu
     leftside_traffic: <true/false> # pilih salah satu
     trailer_standalone: <true/false> # pilih salah satu
     driving_tired_offence: <true/false> # pilih salah satu

     time_zone: <angka_dalam_menit>    # <+/-angka> jam dlm satuan menit
     time_zone_name: "<kode_zona_waktu_internsional>"
}

Berikut rincian dan fungsi setiap script diatas.

  • country_data: country.data.<nama_negara> : Data script negara (country) pada suatu file .sii. ‘Nama_negara’ yang tertulis pada kalimat tersebut harus sesuai dengan judul/nama file .sii.
  • country_id: <nomor_ID> : Kode Country ID (country identifiers) untuk nama_negara yang telah ditulis, seperti yang saya jelaskan tadi di atas.
  • name: "@@<nama_negara>@@" : Nama negara yang akan dibuat.
  • country_code: "<kode_negara>" : Kode negara yang akan dibuat. (catatan : kode tersebut harus sesuai dengan kode negara Internasional resmi)
  • pos: (<sumbu x, 0, sumbu y>) : Posisi judul atau nama negara yang akan muncul/dimuat di UI Map (saat membuka Quick Job atau Freight Market). Karena bentuknya dua dimensi (bangun datar), maka yang bisa diubah hanya sumbu x dan sumbu y. Angka atau jumlah kedua sumbu ini hanya bisa dilihat pada Map Editor.
  • fuel_price: <harga_BBM> : Rata-rata harga Bahan Bakar Minyak (BBM) atau bensin untuk suatu negara. Terkadang setiap daerah dalam satu negara memiliki harga BBM yang berbeda. Karena kendaraan utama di game ini adalah truk (Truck Simulator), maka gunakan harga BBM jenis diesel (umumnya di Indonesia memakai BBM jenis Solar). Harga tersebut harus ditulis dalam mata uang Euro. Jadi kalau mata uangnya Rupiah, maka harus di-konversi dulu ke mata uang Euro.

“Nasib baik negara kita memiliki bensin/BBM harga (lumayan...) murah. Kalau dilihat dari script country disini, di Eropa harganya cukup selangit untuk satu liter. Eh….”

  • lights_mandatory: <true/false> : Menentukan apakah di negara tersebut wajib atau selalu menyalakan lampu di jalanan baik siang atau malam. Untuk negara Indonesia, lights_mandatory harus aktif (true).
  • imperial_units: <true/false> : Menentukan apakah di negara tersebut menggunakan satuan imperial (mil per jam). Untuk negara Indonesia, imperial_units harus non-aktif (false) atau bisa menghapus script tersebut (karena negara kita memakai satuan km/jam).
  • trailer_standalone:<true/false> : Menentukan apakah negara tersebut memperbolehkan / memunculkan jenis trailer standalone/terpisah (saya kurang paham, mungkin tidak terlalu penting).
  • leftside_traffic: <true/false> : Menentukan apakah di negara tersebut berlalu-lintas (traffic) lajur kiri jalan atau setir kanan. Untuk negara Indonesia tentu saja harus aktif (true).
  • driving_tired_offence: <true/false> : Menentukan apakah ada sanksi/denda akibat berkendara dalam kondisi mengantuk. (kalau salah tolong dikoreksi)
  • time_zone: <angka_dalam_menit> : Menentukan lingkup/zona waktu negara tersebut. Untuk time_zone, zona waktu GMT ditulis angka 60 (dengan satuan menit, karena 1 jam = 60 menit), waktu UTC+1 ditulis angka 120, waktu UTC+2 ditulis angka 180, dan seterusnya (kelipatan 60). Kalau Indonesia berapa? Umm... yang WIB (UTC+7) jadinya 7 x 60 = 420 menit (?)
  • time_zone_name: "<kode_zona_waktu_internsional>"Menentukan nama dari time_zone tersebut (BST, CEST, EEST, dll.). Untuk Indonesia bisa menggunakan WIB, WITA, atau WIT (kalau dalam versi bahasa Inggris saya kurang tahu xD). “Hmm… apa bisa membagi tiga zona waktu dalam satu negara? Entahlah…”

Tambahan (1)

Sejak ETS2 versi 1.32, ada tambahan script sebagai berikut:

mass_limit_per_axle_count[]: 18000      # 2-axle vehicle
mass_limit_per_axle_count[]: 44000      # 6 and more-axle vehicle

Maksudnya yang satu ini mendefinisikan batas massa GWV (gross vehicle weight) maksimum yang diizinkan (dalam kilogram) dari seluruh set (truk + trailer + kargo) dengan jumlah axle yang diberikan (total truk + trailer) di suatu negara. Bila kosong berarti nilainya tak terbatas.

Baris atau entri pertama mengatur batas massa (beban?) kendaraan dengan 2 axles/gandar, 3 axles, dll. Jika memiliki lebih dari batas massa yang ditentukan, baris atau entri terakhir yang akan digunakan.

Tambahan (2)

Sejak versi 1.33 ada perubahan script sebagai berikut:

name: "<nama_negara>"
     name_localized: "@@<kode_negara>@@"
     country_code: "<kode_negara>"

Script ini disusun demikian sejak mod diperbolehkan untuk di-lokalisasi (diterjemahkan dalam bahasa negara yang tersedia pada ETS2). Untuk kode negara tersebut masih harus sesuai dengan kode negara Internasional resmi sesuai penjelasan diatas.

Tambahan (3)

Sejak versi 1.44 ada tambahan script sebagai berikut:

     iso_country_code: "<kode_ISO_negara>"

Yang jelas menentukan kode ISO dari suatu negara, versi huruf bukan yang angka. Kurang paham kenapa ada pembedaan negara berdasarkan kode ISO. Kalau Indonesia kode ISO nya... IDN.

Masih ada lagi.

  secondary_time_zone_area[]: (<titik 1>, <titik 2>, <titik 3>, <titik 4>)
  secondary_time_zone[]: <angka> # jam dalam satuan menit
  secondary_time_zone_name[]: "@@<nama_zona_waktu>@@"

Ini diperlukan jika suatu negara punya dua zona waktu yang berbeda. Contoh di Rusia yang pasti luas dan terbagi dalam zona waktu yang beda-beda. Satu kasusnya ialah kota Kaliningrad yang lokasinya paling mencar sendiri dari wilayah utamanya, pun masuk zona waktu yang beda. Sebab itu diperlukan definisi "secondary_time_zone" berarti zona waktu sekunder/kedua.

Bentar, kalau Indonesia gimana yang punya 3 zona waktu? Pertama (primer) pasti WIB, Secondary (sekunder)... hmm... WITA (mungkin). Kalau yang WIT berarti ketiga--eh, bahasa Inggrisnya apa jadinya... tertiery atau tersier(?) Terus kalau keempat, kelima, keenam...?

Udah bang... udah.... jangan bang...

......

Sekarang masuk ke folder nama negara yang tersedia, misalnya saya buka folder ‘uk’.

Ternyata di dalam folder tersebut ada tiga file .sii lainnya, yaitu license_plate, speed_limit, dan traffic.

Folder / country / <nama_negara> / license_plate.sii /

File license_plate memuat script tentang plat nomor kendaraan beserta susunan huruf, nomor, maupun gambar. Masing-masing negara memiliki script yang berbeda. Berikut contoh yang bisa dibandingkan setiap negara.

Secara umum bentuk script tersebut adalah sebagai berikut.

license_plate_data : .lp.<jenis_kendaraan>
{
     type: <jenis_kendaraan>

     templates[]:"<susunan_def<angka>>"

     def<angka> []:"<huruf/angka/gambar>"
     def<angka> []:"<huruf/angka/gambar>"
    
     def<angka> []:"<huruf/angka/gambar>"
     def<angka> []:"<huruf/angka/gambar>"

     def<angka> []:"<huruf/angka/gambar>"
     def<angka> []:"<huruf/angka/gambar>"
}

  • license_plate_data : .lp.<jenis_kendaraan> : data jenis kendaraan yang akan dibuat pada suatu plat kendaraan. Jenis tersebut hanya meliputi car (mobil), trailer (muatan barang/kontainer), truck (truk), police (mobil polisi), dan bus (bis).
  • type: <jenis_kendaraan> : jenis kendaraan yang akan dibuat pada suatu plat kendaraan. Jenis tersebut hanya meliputi car (mobil), trailer (muatan barang/kontainer), truck (truk), police (mobil polisi), dan bus (bis).
  • templates[]:"<susunan_def<angka>>" : Bentuk atau variasi susunan kode huruf, angka, maupun gambar pada suatu plat. Setiap negara pasti memiliki kode plat kendaraan yang berbeda-beda. Susunan tersebut akan disesuaikan dengan def<angka> di bawahnya.
  • def<angka> []:"<huruf/angka/gambar>" : Kode huruf, angka, maupun gambar yang dimuat secara acak pada setiap def<angka>. Hal ini disesuaikan dengan susunan templates[]:"<susunan_def<angka>>" diatas.

Cara kerjanya gimana? Simak di bawah ini (mari kita belajar program matematika, duh...)

Dibuatkan sebuah template[] (anggap aja itu isinya slot kotak kosong yang akan diisi lagi berupa huruf dan angka). 

Misalkan ada 4 buat slot kotak dalam setiap template tadi dan diberi label atau kode menjadi : template[] : 0 1 2 3 (slot pertama kodenya 0, slot kedua kodenya 1, slot ketiga kodenya 2, slot keempat kodenya 4) 

Lantas, tiap slot diisi huruf dan angka apa saja?

  • Slot 0 inginnya berupa huruf dari A sampai Z, jadi didefinisikan dulu (buatkan kelompok) huruf A sampai Z agar hanya masuk di slot 0 (pertama). Caranya tiap baris diketik def0 [] : (huruf). Artinya pada slot (def) kode-0 dimasukkan sebuah huruf.

Contoh : 

        def0[] : A
        def0[] : B
        def0[] : C
        dst.

  • Slot 1 inginnya berupa angka satuan dari 0, 1 sampai 9, jadi didefinisikan lagi (buatkan kelompok) angka 0 - 9 itu agar hanya masuk di slot 1 (kedua). Caranya tiap baris diketik def1 [] : (angka). Artinya pada slot (def) kode-1 dimasukkan sebuah angka.

Contoh : 

        def1[] : 0
        def1[] : 1
        def1[] : 2
        dst.
  • Slot 2 inginnya berupa angka lagi satuan dari 0, 1 sampai 9, jadi didefinisikan lagi (buatkan kelompok) angka 0 - 9 itu agar hanya masuk di slot 2 (ketiga). Caranya tiap baris diketik def2 [] : (angka). Artinya pada slot (def) kode-2 dimasukkan sebuah angka. Contoh sama diatas.
  • Slot 3 inginnya berupa huruf dari A sampai Z lagi, jadi didefinisikan lagi (buatkan kelompok) huruf A sampai Z agar hanya masuk di slot 3 (keempat). Caranya tiap baris diketik def4 [] : (huruf). Artinya pada slot (def) kode-3 dimasukkan sebuah huruf. Contoh seperti yang pertama diatas tadi.
  • Dan .... seterusnya.

Folder / country / <nama_negara> / speed_limit.sii /

Berikutnya adalah speed_limit. Sesuai namanya, script ini memuat tentang data batas kecepatan rata-rata untuk setiap jenis kendaraan. Pastinya setiap negara memuat batas kecepatan yang berbeda-beda, tergantung pada kondisi infrasturktur jalan, jenis kendaraan tersebut, maupun kebijakan masing-masing negara. 

Berikut contoh file speed_limit.sii untuk negara Inggris (UK).

Secara umum bentuk script tersebut adalah sebagai berikut.

country_speed_limit : .speed_limit.<jenis_kendaraan> {

     vehicle_speed_class:    <jenis_kendaraan>

     lane_speed_class[]: local_road
     limit[]:      <angka>
     urban_limit[]:     <angka>

     lane_speed_class[]:     expressway
     limit[]:      <angka>
     urban_limit[]:     <angka>

     lane_speed_class[]:     motorway
     limit[]:      <angka>
     urban_limit[]:     <angka>
}

  • country_speed_limit : .speed_limit.<jenis_kendaraan> : batas kendaraan suatu negara untuk jenis kendaraan tertentu. Kendaraan tersebut adalah mobil (car), truk (truck), dan bis (bus).
  • vehicle_speed_class: <jenis_kendaraan> : jenis kendaraan yang akan diterapkan. Harus sama dengan jenis kendaraan yang tertulis diatasnya.
  • lane_speed_class[]: <jenis jalan> : jenis/tipe jalanan yang akan diatur batas kecepatannya. Tipe tersebut meliputi local_road (jalan biasa atau jalan kecil), expressway (jalan raya utama, lebih dikenal sebagai jalur Arteri atau jalan penghubung antar kota/kabupaten), dan motorway (jalan bebas hambatan atau jalan tol)
  • limit[]: <angka> : batas kecepatan maksimal di semua jalan secara umum.
  • urban_limit[]: <angka> : batas kecepatan maksimal di jalan perkotaan/pedesaan.

Saya kurang tahu pasti berapa batas kecepatan maksimal untuk negara Indonesia sendiri. Kalau sering lihat rambu-rambu di jalan tol. Biasanya kecepatan maksimal 100-120 km/jam. Kalau di perkotaan dominan 40 km/jam.

Kalau dilihat di speed_limit.sii pada masing-masing negara, ternyata orang-orang disana suka ngebut (dengan kecepatan tinggi). Lihat saja untuk jenis motorway (jalan bebas hambatan/tol) batas kecepatannya saja bisa 130 km/jam. Bahkan di jalan biasa (local road) rata-rata bisa 80-90 km/jam untuk mobil. Mungkin karena disana masih sepi penduduk, atau karena mulusnya jalan raya disana, atau justru mental dan nyali mereka yang kuat.

Folder / country / <nama_negara> / traffic.sii /

Terakhir adalah traffic.sii. Isinya memuat script berbagai jenis AI Traffic (Lalu-lintas kendaraan AI) yang akan muncul di jalanan. Mungkin, dalam satu negara hanya dilewati beberapa mobil yang bentuknya itu-itu saja. Pastinya jenis/merek mobil yang sering terlihat dan melintas di jalanan Indonesia tidak selalu sama dengan mobil yang kerap dilintasi di negara lain. Karena semua itu diatur dalam file ini.

Berikut contoh file traffic.sii untuk negara Inggris (UK).

Secara umum bentuk script tersebut adalah sebagai berikut.

country_traffic_info : .country.info.<jenis_kendaraan> {
     object: <jenis_kendaraan>
     spawn_frequency: <angka>
}

  • country_traffic_info : .country.info.<jenis_kendaraan> : kode informasi kendaraan AI pada suatu negara.
  • object: <jenis_kendaraan> : jenis/merek kendaraan yang akan dimunculkan dengan nama harus sama sesuai script country info diatas.
  • spawn_frequency: <angka> : frekuensi jumlah kendaraan yang akan dimunculkan di jalanan suatu negara. Untuk membuat suatu kendaraan tidak dimunculkan di jalan, tulis angka 0.00

Untuk definisi atau script ini hanya berfungsi untuk kendaraan mobil (car) dan mobil polisi (police). Untuk kendaraan lain seperti bus dan truk ada script tersendiri di folder def/vehicle.



Terkadang setiap pembaruan versi ETS2, script/definisi yang ada pun bisa berubah sewaktu-waktu. Jadi post/artikel ini akan terus diperbarui setiap waktu. 

Itu saja untuk saat ini. Masih banyak hal yang harus dipelajari pada folder def yang ada sekian banyak file .sii. Semoga ini bisa bermanfaat dan bisa menjadi panduan yang baik, sehingga dapat memperkecil error yang sering mengganggu saat membuat mod. Tunggu kelanjutannya di Pejindo Blogs!

Sekian dari saya, Wassalam!