Documentation/Engine/Random Road Events
< Documentation | EngineRoad events (RE) are dynamically generated situations on roads present in ETS2 and ATS.
RE are defined from several cutscenes placed along the road. RE distinguishes 3 types of cutscenes:
- Start cutscene - The first cutscene of the RE, only one per the RE.
- End cutscene - The last cutscene of the RE, only one per the RE.
- Layer cutscenes - Cutscenes between Start and End cutscenes.
According to the length of the RE and the lengths of cutscenes, the space between start and end cutscenes is filled with layer cutscenes.
Composition of RE:
Defining random events
All RE are stored in "/def/world/journey_road_event.sii" as list of journey_events_road_event units.
Example journey_road_event.sii file definition:
SiiNunit { # For modders: Please do not modify this file if you want to add a new entry. Create in # this directory a new file "<base_name>.<idofyourmod>.sii" where <base_name> is name of # base file without the extension (e.g. "city" for "/def/city.sii") and <idofyourmod> is # some string which is unlikely to conflict with other mod. # # Warning: Even if the units are specified in more than one source file, they share the # same namespace so suffixes or prefixes should be used to avoid conflicts. journey_events_road_event : j_re.acc_uni_p { signs_distances_outer[]: 50 layer_min_curve[]: 0.0 layer_max_curve[]: 15.0 max_length: 55.0 min_length: 55.0 } journey_events_road_event : j_re.acc_plane { start_cutscene: j_cut.acc_stop_li layer_cutscenes[]: j_cut.acc_mid end_cutscene: j_cut.acc_plane min_shoulder_space: 3.0 outer_lane_allowed: true centerline_displacement: true layer_max_curve[]: 2.0 weight: 10.0 parent: j_re.acc_spec_p name: "Accident country specific plane (1)" } }
Defining cutscenes for random events
All three main attributes of RE: start_cutscene, end_cutscene and layer_cutscenes are of the same unit type: journey_events_cutscene and are listed/defined in "/def/world/journey_cutscene.sii".
These cutscenes are then linked to RE via their unit names. Eg. "j_cut.acc_stop_li" from example definition below is featured as start cutscene of RE "j_re.acc_plane" above.
Example journey_cutscene.sii file definition:
SiiNunit { # For modders: Please do not modify this file if you want to add a new entry. Create in # this directory a new file "<base_name>.<idofyourmod>.sii" where <base_name> is name of # base file without the extension (e.g. "city" for "/def/city.sii") and <idofyourmod> is # some string which is unlikely to conflict with other mod. # # Warning: Even if the units are specified in more than one source file, they share the # same namespace so suffixes or prefixes should be used to avoid conflicts. journey_events_cutscene : j_cut.acc_stop_li { cutscene_tokens[]: acc_stop_li1 cutscene_tokens[]: acc_stop_li2 left_width: 80.0 // [m] right_width: 5.0 // [m] sequence_mode: pseudo } journey_events_cutscene : j_cut.acc_mid { cutscene_tokens[]: acc_mid_1 cutscene_tokens[]: acc_mid_2 cutscene_tokens[]: acc_mid_3 left_width: 15.0 // [m] right_width: 15.0 // [m] sequence_mode: pseudo } journey_events_cutscene : j_cut.acc_plane { cutscene_tokens[]: acc_rare_1 left_width: 35.0 // [m] right_width: 25.0 // [m] sequence_mode: pseudo } }