
the simple way of creating a connection via config is twoSidedConnections
<<code yml>>#
twoSidedConnections:
    world1:
        dest: world2
        dm: 2.0
<</code>>

if you reach the bottom of world1 you'll get to ceiling of world2 and vise versa
dm= distancemodifier; if you leave world1 on x=100, z=-200 you will arrive world2 at 200;-400 . in the other direction its 1/dm in this example 0.5

for a more detailed connection use the singleConnection
con1 and con2 is just something for counting, you can write anything except pure numbers for this.
cob is ceiling or bottom.
you can create more than one destination from one world (seperate  connection), these will only be accessable with the right permission<<code yml>>
- cbtp.[world1].[world2]<</code>>

for example, if you have:
<<code yml>>#
singleConnections:
    con1:
        from:
            world: world1
            cob: bottom
        to:
            world: world2
            cob: ceiling
        dm: 1.0
    con2:
        from:
            world: world1
            cob: bottom
        to:
            world: world3
            cob: bottom
        dm: 2.0
<</code>>
if you have only "- cbtp.teleport" you will get to world2
if you have additional "- cbtp.world1.world3" you will get to world3 instead world2

cob means ceiling or bottom
dm is the distancemodifier
you will leave world1 from bottom
you will arrive world2 at ceiling on the same X and Z
with the additional permission you will arrive at world3 on bottom with twice the X and Z

you could also use this plugin with one world:
<<code yml>>#
singleConnections:
    con1:
        from:
            world: world1
            cob: bottom
        to:
            world: world1
            cob: ceiling
        dm: 1.0
<</code>>
or this for both directions
<<code yml>>#
twoSidedConnections:
    world1:
        dest: world1
        dm: 1.0
<</code>>


Settings:
BlockType: 20
block that will be createted if player spawns and has no block beneath

falling: true   
teleports also if player has no block beneath
if you set this to false, you might lower the ceiling-air arrival and depart a bit

ceilingBlock: false
if true, will let the player spawn at ceiling-air-arrival and creates a block under him
if false, the player spawns at 10 blocks above the ground (no fall dmg)

Bubble: true
lava/sand/gravel protection for spawns of the cathegory 'bedrock'

suppressBorderWarning: true
if false, it will spam the chat that you cant teleport
cause the border of the other map is reached

light: true
will set a light above the player after teleport (bedrock environment)

fallDamage: true
enables/disables the fall-damage
only the next falldamage that will happen after a teleportation will be prevented

toGround: true
teleports the player 5 blocks above the ground

debug: false
writes some more debug infos to the serverlog

following values are the hights to trigger the events
bedrock:
bedrock-environment are nether (bottom&ceiling), normal maps bottom, and cave-maps ceiling&bottom
<<code yml>>#
ceiling:
      depart: 124
      arrival: 123
bottom:
    depart: 5
    arrival: 6
air:
    ceiling:
        depart: 128
        arrival: 129
    bottom:
         depart: 0
         arrival: 1
<</code>>
v0.4+ the arrival in air:ceiling could be higher than depart, the player will only be ported back if he gets lower than air:ceiling:depart

the following values will be automatic generated, but you can add them manual if you want, but dont use counters with w + a number, these will be the generated ones
for default, all worlds will count as "bedrock" environment, when the player reaches the depart-hight, the plugin checks the area for bedrock, if there is none, the world will count as "air" and the air-values for depart and arrival will apply. additional the world will be listed here for the next reload (for performance increase) to avoid the bedrock check next time.
<<code yml>>#
airworlds:
    ceiling:
        a: world
        b: celestia
    bottom:
        c: celestia
<</code>>

complete example config.yml

<<code yml>>
singleConnections:
#one way-connections
#sorted by priority
    c1:
        from:
            world: midgard
            cob: bottom
            #cob = ceiling or bottom
        to:
            world: nether
            cob: ceiling
        #distance modifier
        dm: 0.5
    c2:
        from:
            world: nether
            cob: ceiling
        to:
            world: midgard
            cob: bottom
        dm: 2.0
#connection 1 and 2 are the same as the twoSidedeConnecion world1: dest: world2

twoSidedConnections:
#these connections work in both directions
#bottom:
#   dest: ceiling
#   dm: distance modifier
#bottom*dm->ceiling;  ceiling/dm->bottom

    world:
#this is not 'world' as type of world, my main-world is named 'world' :D
#the depart-world is allways bottom
        dest: midgard
#destination is allways ceiling
        dm: 0.5
    celestia:
        dest: world2
        dm: 2.0

settings:
    BlockType: 20
    falling: true
          #teleports also if player has no block beneath
          #if you set this to false, you might lower the ceiling-air arrival and depart a bit
    ceilingBlock: false
           # if true, will let the player spawn at ceiling-air-arrival and creates a block under him
           # if false, the player spawns at 10 blocks above the ground (no fall dmg)
    Bubble: true
           # lava/sand/gravel protection for spawns of the cathegory 'bedrock'
    suppressBorderWarning: true
           # if false, it will spam the chat that you cant teleport
           # cause the border of the other map is reached
    light: true
            # will set a light above the player after teleport (bedrock environment)
    bedrock:
        ceiling:
            depart: 124 # depart hight for cave-maps and nether
            arrival: 123
        bottom:
            depart: 5
            arrival: 6
    air:
        ceiling:
            depart: 128
            arrival: 127
        bottom:
            depart: 0
            arrival: 1

#this is not realy important, the plugin will check on runtime if a world is threaded as air or bedrock
#and will create the nodes with w0,w1...w999, so dont name them with w...
#airworlds:
#     ceiling:
#         w1: world   #<-- this is automatic generated
airworlds:
    ceiling:
        a: world   #<- manual added
        b: celestia
    bottom:
        c: celestia
<</code>>
if you set falling to false you might want to set the air ceiling arrival and depart -1 and the air bottom arrival and depart +1
then the only way to get down from a floating island is a waterfall
and if you set ceiling-block to true, you might want to take a bucket of water with ya :)