Difference between revisions of "Games/ETS2/Modding guides/1.31"

From SCS Modding Wiki
Jump to navigation Jump to search
(New cables accessory data)
(New cables accessory data)
Line 61: Line 61:
 
physics_trailer_cable_data : .air_cable_b
 
physics_trailer_cable_data : .air_cable_b
 
{
 
{
locator_prefix: air_cable_b      // Name of the locator where cable will be "connected" on vehicle and trailer side.
+
locator_prefix: air_cable_b      // Name of the locator (in vehicle and trailer) where cable will be "connected".
rest_locator_prefix: rst_cable_b  // Name of the locator in vehicle where cable will be put to rest, when not connected to trailer. If not present in vehicle, cable is removed when disconnected from trailer.
+
rest_locator_prefix: rst_cable_b  // Name of the locator (in vehicle only) where cable will be put to rest, when not connected to trailer.  
 +
                                          // If not present in vehicle, cable is not visible when disconnected from trailer.
  
 
vehicle_plug_model: "/vehicle/share/models/cables_connectors/air_plug_b.pmd"    // Plug model for the cable end on vehicle side.
 
vehicle_plug_model: "/vehicle/share/models/cables_connectors/air_plug_b.pmd"    // Plug model for the cable end on vehicle side.

Revision as of 11:17, 27 April 2018

Recommendations

  • When basing your model on the original ones, add to your mod also ALL original /automat/ files used by it. The names of the files are generated as CityHash64 hash of theirs content so whenever we change the parameters of the material in any way, a different file will be used to store them and the original file might cease to exist if there is no other model utilizing the original parameters.
  • When modifying original models, always include ALL components of the model (pmg+pmd) instead of just those you changed. Otherwise you risk crash if we change the model.
  • As always when adding new objects to files which support multi-file approach (e.g. road_look.sii) it is HIGHLY RECOMMENDED to use suffix or prefix in the name to avoid conflicts with new objects we are adding in patches. Otherwise you might have to use the batch renaming functionality (see Batch renaming) to fix the conflicts when new patch appears.

How to convert map

  • Ensure that ALL map files are updated to version compatible with 1.30 update by resaving them in 1.30 version. Otherwise you will be unable to load the map in 1.31 editor.
  • Load map
  • If the editor shows a warning dialog about items referencing obsolete TERRAIN ONLY road flag, you MUST remove or replace all those items in the map before saving the map. Otherwise the editor might crash when loading the resaved map.
  • Run prefab node corrections (F3 - "Prefab node correction")
  • Save map
  • Do rebuild (F8)
  • Save map
  • Run shoulder check from "Map\Validate road shoulders" This will generate list of all items which could cause issues with random events (mostly models clipping through). You have following options:
    • Adjust the items so they do not cause issues by moving them or removing them
    • Mark the related road as having blocked shoulder ("Shoulder blocked" checkboxes in Road item properties) to prevent generation of events.
    • If you do not care about the issues, you can ignore the item.
  • Save map

Changes

Map format changes

TBA - stamps -> brushes, *.data sector files, ...

Game data

New float attribute blinker_auto_off_trigger has been added (default 0.01). It is used to define precise moment when blinker turn off automatically (if enabled) after they are armed by meeting blinker_auto_off_limit.

Country data

New boolean attribute trailer_standalone has been added (default false). It is used in countries where trailer does not have own registration and is registered with truck or similar vehicle and thus shares its licence plate (eg UK).

Vehicles data

Chassis accessory data

There was added array steerable_axles[] to chassis data that controls which axle is steerable instead of locator names. Locator names right now define only wheel type (model) dependency. Semantics of steerable_axles[] is same as powered_axles[] or liftable_axles[] respectively. If not defined its default is guessed from vehicle type (trailer has no steerables, truck has first axle steerable).

Array powered_wheels[] is not supported for powered wheels definition anymore, its just ignored. Use powered_axles[] array properly.

New cables accessory data

With new feature of trailer cables, there is also new accessory type accessory_addon_trailer_cables_data. This accessory type can be used only in conjunction with accessory named: trlr_cables. New accessory type, besides normal vehicle accessory attributes, has an array attribute of owner pointers of type physics_trailer_cable_data. This array defines what kind and how many cables will be used on vehicle. Each cable pointer from array has to be defined inside same SiiNunit.

Example of trailer cables accessory data:

SiiNunit
{
accessory_addon_trailer_cables_data : stock.<vehicle.name>.trlr_cables
{
	exterior_model: "<path/to/upgrade/model.pmd>"
	
	cables[]: .air_cable_b
	cables[]: .air_cable_r
	cables[]: .ele_cable_g
}

physics_trailer_cable_data : .air_cable_b
{
	locator_prefix: air_cable_b       // Name of the locator (in vehicle and trailer) where cable will be "connected".
	rest_locator_prefix: rst_cable_b  // Name of the locator (in vehicle only) where cable will be put to rest, when not connected to trailer. 
                                          // If not present in vehicle, cable is not visible when disconnected from trailer.

	vehicle_plug_model: "/vehicle/share/models/cables_connectors/air_plug_b.pmd"    // Plug model for the cable end on vehicle side.
	vehicle_plug_model_offset: (-0.0205, 0.0, -0.121)                               // Visual offset of cable start in space of vehicle plug model.
	trailer_plug_model: "/vehicle/share/models/cables_connectors/air_socket_b.pmd"  // Plug model for the cable end on trailer side.
	trailer_plug_model_offset: (0.0, 0.0, -0.11)                                    // Visual offset of cable end in space of trailer plug model.

	ring_count: 10      // Number of rings in spiral of cable.
	ring_resolution: 7  // Resolution of the ring, how many sides each ring has.
	diameter: 0.9       // Diameter of spiral.
	width: 0.0175       // Width of the cable itself.

	material: "/material/ropes/cable_white.mat"  // Material used for cable rendering.
	color: (0.1, 0.35, 0.55)                     // Vertex color that will be used for the cable. Note that this color is in linear colorspace.
}

physics_trailer_cable_data : .air_cable_r
{
	locator_prefix: air_cable_r
	rest_locator_prefix: rst_cable_r

	vehicle_plug_model: "/vehicle/share/models/cables_connectors/air_plug_r.pmd"
	vehicle_plug_model_offset: (-0.0205, 0.0, -0.121)
	trailer_plug_model: "/vehicle/share/models/cables_connectors/air_socket_r.pmd"
	trailer_plug_model_offset: (0.0, 0.0, -0.11)

	ring_count: 10

	color: (0.5, 0.05, 0.05)
}

physics_trailer_cable_data : .ele_cable_g
{
	locator_prefix: ele_cable_g
	rest_locator_prefix: rst_cable_g

	vehicle_plug_model: "/vehicle/share/models/cables_connectors/electric_plug.pmd"
	vehicle_plug_model_offset: (0.0, 0.0, -0.134)

	ring_count: 10

	color: (0.1, 0.1, 0.1)
}

}

Truck data

New mirrors data

TBA - mirror_data.sii, g_phys_mirror

Transmission accessory data

New float attribute shift_time has been added. Its value is approximate duration of the shift in seconds with default of 1.0. The time is measured from first moment of clutch disconnect to the moment clutch is fully connected again. By our precise measurement shifting times of most current transmissions are between 0.7 second (new Opticruises) and 1.5 seconds (old MP3 transmissions). Values drastically different may cause unwanted effects.

Truck dealer data

Truck dealer trucks are not handled by the list anymore, the game reads all unit files in given directory in same way as company or desktop trucks. The list file is gone, truck files must be separate units (start with SiiNunit header and properly enclosed in curled brackets). Broken units in directory won't prevent reading the rest.