Contact Us

Ilan Papini:phoneE-mail: support@hangsim.com

Scenery Objects

There are two types of objects in Virtual Sailor scenery, automatic objects and user defined objects, the automatic objects are objects associated with ground textures and generated by the program, the user defined objects are objects placed by the maker of the scenery at specific positions.

Virtual Sailor includes a powerful yet simple scenery editor which allows you to edit both types of objects and see the results in 3D, to get started with scenery objects please read the scenery basics.

The following section explains the details of object design and related files.

Object Types

Virtual Sailor has the following object types, for each object there are different parameters specifying its position size and properties, these parameters appear inside the different object files as explained in the following sections.


[Smoke] - Smoke object
xpos ypos zpos size red green blue
[Fire] - fire object
xpos ypos zpos size red green blue

[Light] - Light object
xpos ypos zpos range red green blue

[Path] - Path made of light points
xpos ypos zpos angle width length size

[PathRed] - Red path of light points
xpos ypos zpos angle width length size

[PathGreen] - Green path of light points
xpos ypos zpos angle width length size

[PathBlue] - Blue path of light points
xpos ypos zpos angle width length size

[PathWhite] - White path of light points
xpos ypos zpos angle width length size

[PathStrobe] - White path of light points flashing in sequence
xpos ypos zpos angle width length size

[PathVASI] - Path of light points that indicate glide slope
xpos ypos zpos angle width length size

[LightArray] - Rectangular area of light points
xpos ypos size num red green blue

[Blink] - Blinking point of light
xpos ypos zpos size red green blue

[Beam] - Rotating beacon of light
xpos ypos zpos angle scale_x scale_y scale_z

[Decal] - Single light point of any color
xpos ypos zpos size red green blue

[DecalRed] - Red light point
xpos ypos zpos size red green blue

[DecalGreen] - Green light point
xpos ypos zpos size red green blue

[DecalBlue] - Blue light point
xpos ypos zpos size red green blue

[DecalWhite] - White light point
xpos ypos zpos size red green blue

[Thermal] - Thermal object
xpos ypos NA NA r_min r_max v_core

*.def - Bouy or Beacon of light defined file def file
xpos ypos zpos angle scale_x scale_y scale_z

array*.bmp/dds/jpg - Rectangular area of rectangles, flexes in wind.
xpos ypos zpos num width height size

fixed_array*.bmp/dds/jpg - Rectangular area of rectangles.
xpos ypos zpos num width height size

water_array*.bmp/dds/jpg - Rectangular area of rectangles, active in water also.
xpos ypos zpos num width height size

line_array*.bmp/dds/jpg - Line of rectangles of selected bitmap.
xpos ypos zpos angle width length size

decal*.bmp/dds/jpg - Singel rectangle of selected bitmap.
xpos ypos zpos NA width length NA
fixed_decal*.bmp/dds/jpg - Singel rectangle of selected bitmap.
xpos ypos zpos NA width length NA

patch*.bmp/dds/jpg - Flat surface object of selected bitmap.
xpos ypos zpos angle scale_x scale_y scale_z

runway*.bmp/dds/jpg - Flat runway surface object of selected bitmap, with lights at night.
xpos ypos zpos angle scale_x scale_y scale_z

dark_runway*.bmp/dds/jpg - Flat runway surface object of selected bitmap.
xpos ypos zpos angle scale_x scale_y scale_z

road*.bmp/dds/jpg - Flat road surface object of selected bitmap, with lights at night.
xpos ypos zpos angle width length d_angle

dark_road*.bmp/dds/jpg - Flat road surface object of selected bitmap.
xpos ypos zpos angle width length d_angle
track*.bmp/dds/jpg - Elevated track section object of selected bitmap.
xpos ypos zpos angle width length d_angle

group*.x/xx - Group of mesh objects, each object is placed at ground level.
xpos ypos zpos angle scale_x scale_y scale_z
fixed_group*.x/xx - Group of mesh objects, objects are not placed at ground level.
xpos ypos zpos angle scale_x scale_y scale_z

anim*.x/xx - Frame animated mesh object file.
xpos ypos zpos angle scale fps act_dist
wav*.x/xx - sound object file heard around the specified location.
xpos ypos zpos angle act_dist act_dist act_dist

float*.x/xx - Mesh object file that floats.
xpos ypos zpos angle scale_x scale_y scale_z

surface*.x/xx - Flattened mesh surface placed at ground level.
xpos ypos zpos angle scale_x scale_y scale_z
windsock*.x/xx - Mesh object file that alignes with wind.
xpos ypos zpos angle scale_x scale_y scale_z
windvane*.x/xx - Mesh object file that alignes with wind.
xpos ypos zpos angle scale_x scale_y scale_z
spin*.x/xx - Mesh object file that spins along z axis.
xpos ypos zpos angle scale_x scale_y scale_z

night*.x/xx - Mesh object file remains lit at night.
xpos ypos zpos angle scale_x scale_y scale_z

*.x/xx - Mesh object file.
xpos ypos zpos angle scale_x scale_y scale_z
*_n.x/xx - Mesh object file remains lit at night.
xpos ypos zpos angle scale_x scale_y scale_z

Automatic Objects

For every scenery texture you can define a set of objects which will be shown on specific positions on this texture, this allows for a scenery with realistic object and ground texture matching.

The automatic objects are defined in relation to the texture they are defined for, for example for a texture file called txt000.jpg there exists an object file called txt000.txt, these files can be found inside the common directory or scenery directory itself.

A typical structure of such file can be seen in the following sample:


// User objects saved in tile units at txt000.jpg
// Original tile size = 987.492

buildrw2.x 0.564417 0.258602 0.000000 0.000000 1.158277 1.158277 1.158277
buildrw2.x 0.187126 0.286726 0.000000 0.000000 1.158277 1.158277 1.158277
buildrw2.x 0.035967 0.594349 0.000000 0.000000 1.158277 1.158277 1.158277
array5.dds 0.321617 0.928057 0.000000 45.000000 4.000000 7.899998 25.000000
array5.dds 0.323381 0.974754 0.000000 45.000000 2.800002 10.000000 25.000000
buildrw2.x 0.033300 0.259048 0.000000 0.000000 1.158277 1.158277 1.158277
decal6.bmp 0.042721 0.267025 0.000000 0.000000 6.900000 22.499998 1.000000
decal6.bmp 0.044823 0.257679 0.000000 0.000000 6.900000 22.499998 1.000000
decal6.bmp 0.042650 0.250189 0.000000 0.000000 6.900000 22.499998 1.000000
decal6.bmp 0.170454 0.282139 0.000000 0.000000 6.900000 22.499998 1.000000
decal6.bmp 0.170158 0.290146 0.000000 0.000000 6.900000 22.499998 1.000000
decal_a.bmp 0.576120 0.263700 0.000000 0.000000 7.699999 18.299999 1.000000
decal_a.bmp 0.575392 0.253687 0.000000 0.000000 7.699999 18.299999 1.000000


This file was saved by the program, using the function "Save Tile Objects", it shows the original tile size for this collection of objects, and the objects themselves with the following parameters:

X position in tile units, Y position in tile units, elevation above ground, angle, X scale, Y scale, Z scale.

Note: different object types may have slightly different parameter arrangement, see object types for details.

When the scenery is loaded for the first time the program reads all the texture object files, and generates the automatic objects file called auto_objects.txt, this file is a large collection of the objects read for each texture index on every elevation point.

The auto_objects.txt file can also be edited by the program using the object editor inside, and saved using the function "save user objects", the objects saved in it are saved in geographic coordinates and not in tile units.

The automatic objects are composed from texture objects files in the arbitrary shapes they appear on land.

User defined objects

The user can add objects in specific locations, these objects are called user defined objects because they are not generated automatically by the program.

User defined objects can be saved in two types of files, absolute files and relative files.

The absolute files with prefix "abs_" are collections of objects in geographic coordinates, this is a typical collection of objects in absolute position:


// User objects saved in geographic coordinates

array5.dds 7.296118 44.665440 0.002319 134.000000 2.800002 10.000000 74.955864
decal6.bmp 7.327896 44.647198 0.000244 0.000000 6.900000 22.499998 1.000000
array_line_a.bmp 7.285673 44.677162 0.003174 1.583982 17.930002 447.000000 10.000000
array_line_a.bmp 7.285644 44.673199 0.001221 1.563982 17.930002 410.000000 10.000000
array_line_a.bmp 7.286039 44.677212 0.003540 1.583982 17.930002 447.000000 10.000000
array_line_a.bmp 7.285987 44.673241 0.002991 1.563982 17.930002 410.000000 10.000000
pole.x 7.284191 44.677979 0.001343 0.000000 1.639572 1.639572 1.639572


The relative files with prefix "rel_" are collections objects in metric coordinates around an arbitrary position, this is a typical collection given in relative position:


// User objects saved in meters relative to camera
// Original position = 7.283503 44.677288

array5.dds 993.485413 -1316.471313 0.002319 134.000000 2.800002 10.000000 74.955864
decal6.bmp 3500.684570 -3343.510254 0.000244 0.000000 6.900000 22.499998 1.000000
array_line_a.bmp 171.461975 -13.861938 0.003174 1.583982 17.930002 447.000000 10.000000
array_line_a.bmp 168.004944 -454.276001 0.001221 1.563982 17.930002 410.000000 10.000000
array_line_a.bmp 200.372131 -8.354126 0.003540 1.583982 17.930002 447.000000 10.000000
array_line_a.bmp 195.106506 -449.619751 0.002991 1.563982 17.930002 410.000000 10.000000
pole.x 54.598694 76.848999 0.001343 0.000000 1.639572 1.639572 1.639572


These files are placed into the common directory of the program or inside the scenery directory itself.

The main objects file is called objects.txt, this is an absolute file, it is the first object file loaded and contains references to the relative and absolute files loading them by reference.

This is a sample of the main objects file containing relative and absolute files and also ordinary objects, as you can see these files are referenced just as ordinary objects are referenced.


// User objects saved in geographic coordinates

abs1_objects.txt 0 0 0 0 1 1 1
abs2_objects.txt 0 0 0 0 1 1 1
rel1_objects.txt -121.937508 36.515621 0 0 1 1 1
rel2_objects.txt -121.913170 36.534702 0 0 1 1 1

// User objects saved in geographic coordinates

blink_w.def -121.952637 36.521786 0.0 0.0 1.0 1.0 1.0
blink_g.def -121.927132 36.536034 0.0 0.0 1.0 1.0 1.0
blink_r.def -121.927849 36.537647 0.0 0.0 1.0 1.0 1.0
blink_g.def -121.941551 36.520443 0.0 0.0 1.0 1.0 1.0
blink_r.def -121.936310 36.522060 0.0 0.0 1.0 1.0 1.0


The prefix of "abs_" is used by the program to load absolute files, the coordinates of the reference is not used in this case and should be kept as zero, the "rel_" prefix is used by the program to load relative files, the coordinates of the reference are used, and the relative file is read in meters from this reference point.

Tips for scenery design

Make relative files for objects that you wish to use many times, such as villages and towns, position these files using "Add relative file" from the scenery editor at every point you want this village to be.

Make absolute files for areas that you make especially to fit a desired place, for example a special city, airport, or rural area, assemble these areas using "Add absolute file" from the scenery editor, the positions will be read from original locations in these files.

Try to make your files re usable as possible, so you can use them on other sceneries as well.

Try to make accurate tile objects and create automatic objects from them before populating your scenery with user defined objects, this will save you a lot of customization and will fill the scenery quickly with interesting objects.

You can select a group of objects by using Shift + Left mouse drag, then save these objects as absolute or as relative files, and use later when adding villages or small groups of objects.

Technically, you can use the "Save user objects" and add all the objects you need to the user objects file, without the need for absolute or relative file, however this method does not offer objects re use, and each of changing your scenery later.