Join us in Outworldz at or follow us:

[Table of Contents]

Outworldz Opensimulator Bird Module

Global Bird Module settingThe bird module brings large flocks of birds to Opensim.  It is configured globally and may be enabled or disable in each region.

You will need a bird. There is a button at the top of the Setup Page that will ask you for your Avatar Name and password. It will load a pair of Seagulls into your inventory.

You should log in and rez "SeaGull1" on the ground in one or more of your regions.

Navigate go to the region panel for that region. Here I am using a region named "TestBirds"

Click "More" to expand the panel:


Click Enable and restart the region.


This module will run a instance of itself once per region. By default it will configure itself to some sensible defaults and will sit quietly in the background waiting for commands from the console, or from in-world. It will not enable itself (i.e. rez some birds) until commanded to do so, or configured to do so by being enabled. It is possible to completely stop the module from doing anything (including listening for commands).

To become active, the module needs to be enabled.   If you are running multiple regions on one simulator you can have different Birds settings per region.

Runtime Commands:

There are many runtime commands control the flocking module behavior as described below. These can either be invoked from the Console or in world by directing them to a chat channel either from the client's Local Chat or via a script. You can specify which channel to use:

BirdsChatChannel = 118  is the default the chat channel to listen for Bird commands

The following commands can be issued on the Console or via in-world chat or scripted chat on the Chat Channel to control the birds at runtime:

birds-stop or /118 stop                         		;stop all birds flocking 
birds-start or /118 start                       		;start all birds flocking
birds-enable or /118 enable                     		;enable the flocking simulation if disabled and rez new birds
birds-disable or /118 disable                   		;stop all birds and remove them from the scene
birds-prim <name> or /118 prim <name> framerate <num>   	;only update the flock positions every  frames
                                                		;only really useful for photography and debugging bird

These commands are great for playing with the flock dynamics in real time:

birds-size  or /118 size              ;change the size of the flock
birds-speed  or /118 speed            ;change the maximum velocity each bird may achieve
birds-force  or /118 force            ;change the maximum force each bird may accelerate
birds-distance  or /118 distance      ;change the maximum distance that other birds are to be considered in the same flock as us
birds-separation  or /118 separation  ;sets how far away from other birds we would like to stay
birds-tolerance  or /118 tolerance    ;sets how close to the edges of things can we get without being worried
Of course if distance is less than separation then the birds will never flock. The other way around and they will always eventually form one or more flocks.


By default anyone can send commands to the module from within a script or via the in-world chat on the 'BirdsChatChannel' channel. You should use a high negative value for this channel if you want to allow script access, but not in-world chat.

You can restrict which users are allowed to control the module using the 'BirdsAllowedControllers' setting. This is a comma separated list of user UUIDs, but it may also contain one of the pre-defined constants ESTATE_OWNER (evaluates to the UUID of the estate owner) and ESTATE_MANAGER (evaluates to a list of estate manager UUIDS).

For commands sent from in-world chat, it is the UUID of the avatar sending the command that is checked against the list.

For commands sent from a script it is the UUID of the owner of the prim in which the script resides that is checked against the list.

Bird prims:

Any currently rezzed in-scene-object can be used as the bird prim. However fps is very much affected by the complexity of the entity to use. It is easier to throw a single prim (or sculpty) around the scene than it is to throw the constituent parts of a 200 linked prim dragon.

Tests show that <= 500 single prims can be flocked effectively - depending on system and network.   However maybe <= 300 simple linksets can perform as well.

Network Traffic:

I tested the amount of network traffic generated by bird updates. 20 birds (each with 4 linked prims) takes up about 300kbps in network position updates. 50 of the same birds generates about 750kbps traffic. Each bird uses roughly 15kbps of network traffic. This is all measured using an update framerate of 1, i.e. birds' position is updated every simulator frame.


The stats command in-world or via script returns data to BirdsChatChannel. The console command returns stats to the console. All the the modules parameters are returned including a list of the active bird prims currently rezzed in the region, and the UUIDs of those prims' root prim. Also included is a list of any avatar UUIDs that may be sitting on those prims. Here is an example output:

birds-started = False
birds-enabled = True
birds-prim = SeaGull1
birds-framerate = 1
birds-maxsize = 100
birds-size = 20
birds-speed = 1.5
birds-force = 0.2
birds-distance = 25
birds-separation = 10
birds-tolerance = 5
birds-border = 5
birds-prim0 = OpenSimBirds0 : 01abef79-7fb2-4c8d-831e-62ce1ce878f1 :
birds-prim1 = OpenSimBirds1 : af85996d-af4d-4dda-bc89-721c51e09d0c :
birds-prim2 = OpenSimBirds2 : ca766390-1877-4b19-a29e-4590cf40aece :
birds-prim3 = OpenSimBirds3 : 6694bfa9-8e7f-4ac5-b336-ad13e5cfced2 :
birds-prim4 = OpenSimBirds4 : 1c6b152d-dcca-4fef-8979-b7ccc8139e1e :
birds-prim5 = OpenSimBirds5 : 08bba2cc-d427-4855-a7f0-57aa55109707 :
birds-prim6 = OpenSimBirds6 : bbeb8b6d-28d8-41a9-b8ce-dab3173bd454 :
birds-prim7 = OpenSimBirds7 : 45c73475-1f0f-487f-ac9f-87d30d0315e8 :
birds-prim8 = OpenSimBirds8 : d5891cc8-c196-4b05-82ef-3c7d0f703963 :
birds-prim9 = OpenSimBirds9 : 557b61e1-5fd6-4878-980e-e93cabcc078f :
birds-prim10 = OpenSimBirds10 : 7ff2c02d-d73c-4e49-a4e9-84b652dc70a9 :
birds-prim11 = OpenSimBirds11 : c2b0820c-ba20-4318-a0e8-ec6ad521f524 :
birds-prim12 = OpenSimBirds12 : e8e87309-7a47-4983-89a1-4bb11d05a40c :
birds-prim13 = OpenSimBirds13 : a351e0e3-ae99-48b8-877d-65156f437b33 :
birds-prim14 = OpenSimBirds14 : 150f1c3b-e9d9-4cda-9e03-69fb5286e436 :
birds-prim15 = OpenSimBirds15 : ebf63de1-d419-45d0-8eee-3db14295e401 :
birds-prim16 = OpenSimBirds16 : faad97af-4ee6-425c-b221-99ef53650e93 :
birds-prim17 = OpenSimBirds17 : d75ba544-bbc2-4f5a-9d7e-00e21ed6f191 :
birds-prim18 = OpenSimBirds18 : b91e42cb-ae5b-4f03-bf6e-dc03d52858b7 : a351e0e3-ae99-48b8-877d-65156f437b33
birds-prim19 = OpenSimBirds19 : 44aa3e14-56bc-43dd-afbd-7348c5dfe3a5 :
In the above example, there is one avatar sitting on bird-prim18. For more than one avatar the UUID list will be separated by spaces.


JakDaniels from jonc/osboids

Back to the Best Free Tools in Second Life and OpenSim.