OpenSimWorld @opensimworld

Offline

Visit OpenSimWorld to get the latest versions of the OpenSimWorld beacon, the SatyrFarm, SFposer and SFsail


ActiveNPCs: An interactive-NPC controller

<h1>ActiveNPCs NPC Controller</h1>
<p>This is a full-featured controller for creating interactive NPCs , scripting them (through notecards) and creating waypoints of your region so that the NPCs can walk around your region. The controller is extremely lightweight (a single script manages all the NPCs) and the NPCs are interactive (i.e. you can give them commands through the local chat).</p>
<p>You can get the latest package from the OpenSimWorld region:</p>
<p><a href="http://opensimworld.com/hop/74730-OpenSimWorld">http://opensimworld.com/hop/74730-OpenSimWorld&lt;/a&gt;&l...
<p>Hypergrid: hg.osgrid.org:80:OpenSimWorld</p>
<h1>Quickstart</h1>
<p>The controller requires OSSL functions to work. You need to have permission to use the osNpc*() functions and, additionally: , osGetNotecard(), osGetNotecardLines(), osMessageAttachments(), osSetSpeed(). The controller uses the channel 68 to communicate.</p>
<p>To start using the controller:</p>
<ul>
<li>Rez the OSW NPC Controller object somewhere in your region. Make sure your avatar is within distance of 20m or less from the controller</li>
<li>Wear the OSW NPC Listener object (it should attach automatically to your Right Pec!)</li>
<li>Edit the <code>__npc_names</code> notecard, and place first name and last names of each of your NPCs in a line by itself. Example:
<pre><code>Bob TheRobot
Alice TheNPC
</code></pre>
</li>
<li>Touch the controller -> ReConfig</li>
<li>Touch the controller, SaveNPC -> Bob (You should see a message "Saved appearance xxx-xxx -> APP_bob"</li>
<li>Touch the controller -> LoadNPC -> Bob</li>
</ul>
<p>Your npc should now be responding to commands , e.g. "Bob come"</p>
<h1>Controller object Contents</h1>
<ul>
<li>The controller script (..Controller). This is the single script that runs everything.</li>
<li>An example extension script (..Extension). This can be used to add commands to the system (explained below).</li>
<li>The Listener object. All our NPCs must wear this invisible object on their Right Pec. This object listens for commands from the local chat and forwards them to the controller script for processing.</li>
<li>The __npc_names notecard. This notecard contains the names of the NPCs, one in each line . After making changes to this notecard, select "Reconfig" from the controller menu.</li>
<li>The __initcommands notecard. This is a notecard with the commands that are executed when you click "InitCmds" on the controller menu.</li>
<li>The <strong>waypoints notecard. This contains a list of points in your region. The NPCs can walk from one point to the other, if they are connected (via the </strong>links notecard) . <em>You do not need to edit this by hand. There is an HUD for editing the map</em></li>
<li>The __links notecard. This contains a list of pairs of connected points. I.e. if you want to link point 1 to point 2, there will be a line "1,2" in the notecard. <em>You do not need to edit this by hand. There is an HUD for editing the map</em></li>
<li>The __config notecard. This contains configuration ootions.</li>
<li>Command notecards. You can put any list of commands for NPCs a notecard named [command-name].scr. You can then order your NPCs to execute the notecards from the local chat. E.g. if you create a notecard "dance.scr", you can say "Bob dance" to execute it.</li>
<li>Waypoint notecards. Notecards named _1.scr , _2.scr etc are executed automatically when the NPCs reach the waypoint number 1, number 2 etc.</li>
<li>The appearance notecards are stored as APP_[firstname] for each NPC. You can also have multiple appearances per NPC (see below).</li>
<li>The Waypoint HUD is used to edit the map and create/update the <strong>waypoints and </strong>links notecards</li>
</ul>
<h1>Overview of commands</h1>
<p>The NPCs respond to commands that you give to them through the local chat.</p>
<p>Assuming your NPC is named "Bob", you can say the following in the local chat:</p>
<pre><code> Bob come
Bob leave
Bob stop
Bob follow me
Bob fly with me
Bob say hi
...
etc.
</code></pre>
<p>You can put these commands in notecards in order to create complex scenarios.</p>
<p>For more complex behavior, the following control commands are supported in notecards: if, if-not, jump</p>
<p>Example of a scenario notecard:</p>
<pre><code> if name-is Bob Alice
say hi
say I am either Bob or Alice
jump outofhere
end-if
say i am not bob or alice
@outofhere
if-not name-is Bob
say I am definitely not Bob
end-if
say ... and i 'm now leaving
leave
</code></pre>
<p>You can add these commands to a notecard named "test.scr" inside the controller object, and then ask the Bob to execute them by saying "Bob test" in the local chat.</p>
<h1>List of NPC commands</h1>
<p>When giving commands through the local chat, commands must be preceded by the first name of the NPC. Here we assume our NPC is called "Bob"</p>
<pre><code> Bob come : "Come here ". Bob will move close to you
Bob moveto 23 : Walk towards waypoint #23
Bob movetov <23,24,25> : walk towards point with coordinates <23,24,25> (Note, no spaces between vector coordinates)
Bob runtov <23,24,25> : run towards point with coordinates <23,24,25>
Bob flytov <23,24,25> : fly towards point <23,24,25> in region
Bob movetovr <23,24,25> <33,34,25> : walk to a random point between the points <23,24,25> <33,34,25>
Bob runtovr <23,24,25> <33,34,25> : same as above, but run
</code></pre>
<ul>
<li>
<ul>
<li>Note: never leave spaces in coordinate vectors, i.e. <23,24,25> NOT <23, 24, 25> **</li>
</ul>
</li>
</ul>
<pre><code>Bob say hi : Says "hi" on public channel
Bob saych 90 blablah : say "blablah" on channel 90
Bob shout Blah bleh
Bob teleport <23,30,40> : Teleports to a point. REMEMBER: no spaces inside the vector brackets
Bob lookat me : attempts to look at you
Bob lookat <x,y,z> : look towards point x,y,z
Bob anim dance : play animation "dance" . the animation must be in the inventory of the controller object
Bob sound 1c8a3af2-6e5a-4807-a7a3-a42e5744217c 1.0 : The NPC will trigger the sound with the given UUID at the volume specified by the second parameter (1.0 is max volume)
Bob light : turn on/off a light the NPCs have on them
Bob give Apple : Give the object "Apple" from the controller's inventory to the user. For security, only Objects can be given.
Bob follow me
Bob follow Alice : follow the avatar whose first name is 'Alice'
Bob fly with me
Bob fly with alice : fly with another user
Bob stop : Stops his animation and his movement, and stops following you
</code></pre>
<h3>Waypoint and Pathfinding commands</h3>
<p>You need to have set up the map of your region for these commands. That is described elsewhere. The NPC can automatically try to find how to walk from waypoint A to B. Because this is computationally intensive, only paths with less than 15 connections between them are supported.</p>
<pre><code>Bob leave : Start walking randomly between connected waypoints
Bob teleport Bar : Teleports bob to the waypoint named "Bar"
Bob lookat Bar : look towards the waypoint named "Bar"
Bob moveto 1 : Walk to waypoint #1
Bob nearest : Tell me which is the nearest waypoint
Bob setpath 0:1:3:5:1:0 : Walk through the given waypoints, i.e. walk to waypoint 0 , then to 1, then to 3, then to 5 etc.
Bob goto 13 : Will walk between connected waypoints to waypoint #13
Bob go to Bar : Will walk between connected waypoints to the waypoint named "Bar"
: BEWARE! "goto" and "go to" (with space) are different commands
Bob go to : without a destination, Bob will print the names of waypoints he knows
</code></pre>
<h2>Command Notecards</h2>
<p>Multiple commands can be appended to a notecard, and then the NPC can execute them.</p>
<pre><code>Bob run-notecard my_script.scr : Execute the contents of the notecard my_script.scr (the notecard must be in the controller inventory
Bob my_script : Simpler syntax. Same as run-notecard: Starts executing the notecard "my_script.scr"
Bob batch say hi ; wait 10; say bye : Executes multiple commands one after the other. Commands are separated by ";" The commands will be executed as if they were in a notecard
Bob stop-script : Stop executing the notecard script
</code></pre>
<h2>Multiple appearances</h2>
<p>You can have multiple appearance notecards for an NPC by renaming them. The default notecard for NPC Bob is stored in the APP_bob notecard. You can rename the notecard to, e.g. APP_bob_swimming, and then ask bob to load that notecard:</p>
<pre><code>Bob dress swimming : load the appearance from notecard "APP_bob_swimming"
Bob dress : load the NPC's default appearance from notecard "APP_bob"
</code></pre>
<h2>Sitting on objects</h2>
<p>The NPCs can sit on objects with the "use" command.</p>
<pre><code>Bob use chair
</code></pre>
<p>Bob will attempt to find a SCRIPTED object (e.g. a poseball) named "chair" (You can change the Object Name from the properties box when editing it) near him and try to sit on it if its transparency (alpha) is less than 100%. Since by convention poseballs change their transparency to 100% when users sit on them, this ensures that Bob will not sit on an already-occupied poseball. If you just say "Bob use", the NPC will sit on the nearest scripted object.</p>
<pre><code>Bob stand : Bob will stand up if he is sitting
</code></pre>
<h2>Variables</h2>
<p>Variables can be used with IF commands in notecards for more complex behavior.Variables are global and shared between notecards and NPCs.</p>
<pre><code>Bob setvar foo 13 : set variable foo to be "13". Only string variables are supported. Variables can be used with IF blocks
Bob setvar foo : set variable foo to the empty string. (The empty string is the default value if a variable does not exist)
Bob say $foo : Bob says "13"
if var-is foo 13
say foo is thirteen
end-if
if var-is foo
say foo is empty string or not set
end-if
waitvar foo 13 : wait (and do nothing) until the variable foo becomes 13
</code></pre>
<p>The following commands increase and decrease a variable by 1. They are useful in cases where you want 2 or more avatars to be present to proceed:</p>
<pre><code>increase totalAvatarsHere : Increase the variable "totalAvatarsHere" by 1
decrease totalAvatarsHere : Decrease the variable "totalAvatarsHere" by 1
zero totalAvatarsHere : Set variable totalAvatarsHere to 0 (same as setvar totalAvatarsHere 0)
</code></pre>
<p>Example usage in a notecard:</p>
<pre><code>increase totalAvatarsHere
waitvar totalAvatasHere 2
say Now there are 2 of us
anim dance
wait 10
stop
...
say Time to depart
decrease totalAvatarsHere
</code></pre>
<h2>IF commands</h2>
<p>There is support for multiple levels of IF blocks. Blocks must end with "end-if". There is no "else" command, but you can achieve the same effect with "jump" commands</p>
<pre><code>if name-is bob alice : if the npc's name is Bob or alice
say I am either Bob or Alice
if-not name-is Bob
say I must be Alice
end-if
end-if : always end IF blocks with end-if. You can nest if blocks
if-not name-is Bob : Example of negative if
say I am not Bob
end-if
if-prob 0.3 : IF block will be executed with probabilty 0.3 (the if block will be executed 30% of the time)
say This will be heard 30% of the times
end-if
if var-is party 1 : Will execute the IF block if the variable party is "1"
say We are having a party already!
end-if
if var-is party : Will execute the IF block if the variable party is empty or not set
say No party yet, let's start one!
setvar party 1
end-if
</code></pre>
<p>Jump command. You can use the syntax @label to create labels in your notecards. The syntax is:</p>
<pre><code>@myLabel : a label
say This will loop forever
jump myLabel : like "jump" in LSL or "goto" in other languages. the label should be on a line by itself prefixed with '@'
</code></pre>
<h2>WAIT commands</h2>
<pre><code>wait 200 : wait (don't do anything) for 200 seconds
wait 200 300 : wait between 200 and 300 second before executing the next command
waitvar foo 13 : wait until the variable foo gets the value 13
waitvar foo : wait until the variable foo is empty.
</code></pre>
<h2>Other commands</h2>
<pre><code>Bob msgatt attachment_command 12 13 14 15
</code></pre>
<p>Uses osMessageAttachments to send the message "attachment_command" to attachments at attach points 12 13 14 15. This can be useful for scripting NPC attachments. Read the OSSL docs of osMessageAttachments() for more.</p>
<h2>Custom command notecards</h2>
<p>You can extend the list of commands with notecards. To create a command notecard, enter the commands for the NPC to execute in a notecard, and save it into the controller's inventory with the name [command-name].scr</p>
<p>E.g. a dance command notecard would be named "dance.scr" and contain the following</p>
<pre><code>say I love to dance!
anim RockDance
wait 600 800
say oops, I am tired...
stop
</code></pre>
<p>You can then say "Bob dance" to have bob execute the notecard</p>
<h2>Interactive menus</h2>
<p>With interactive menus, your NPCs can ask your visitors to make a choice from a menu in the local chat. The following notecard asks the user if they want apple or an orange and gives an object to them:</p>
<pre><code>say Welcome to the shop!
@prompt
prompt Do you want an [apple] or an [orange]?
say I didn't catch that. Starting over.
jump prompt
@apple
say Here is an apple
give Apple
jump end
@orange
say Here is your orange
give Orange
jump end
@end
say Goodbye
</code></pre>
<p>Here is how it works:</p>
<ul>
<li>The options of the menu are specified in the prompt string itself, in square brackets:
<pre><code>prompt Do you want an [apple] or an [orange]?
</code></pre>
</li>
<li>Bob will say "Do you want an [apple] or an [orange]?" to the local chat, and it will expect to read the words "apple" or "orange" in the local chat from your visitor.</li>
<li>If he hears "apple", he will jump to the label "@apple" in the notecard.</li>
<li>If he hears "orange", he will jump to label "@orange" in the notecard.</li>
<li>If he hears something else, he will not jump, but continue normally to the next notecard line after the "prompt" line. (In our case, he asks again).</li>
<li>The menu options can only be single words (e.g. "orange", or "apple"). They are case-insensitive, and the menu will work even if the word is said in a phrase (I.e. "I want an apple" will still jump to @apple)</li>
</ul>
<h2>Waypoints and Pathfinding</h2>
<p>You can use the controller to create waypoints and links between them in your region. Bob can then walk between the connected points when you say 'Bob leave'</p>
<p>Each waypoint has a number (starting from 0) and optionally a name. Waypoints can be connected to other waypoints, thus creating a map (graph) between them. Bob can then wander between the waypoints (Say "Bob leave" to start walking), and you can also ask him to find his way from point A to point B (say Bob go to [destination]).</p>
<p>The waypoint data are stored in the <strong>waypoints notecard, one in each line, and the links data is stored in the </strong>links notecard. You do not need to edit these notecards by hand however, as you can use the included Waypoint Editor HUD.</p>
<p>To create a map, first wear the WaypointEditor HUD. If you already have created a map before, click RezPegs from the HUD menu. This will rez a peg in each waypoint you have already created. If you are starting with an empty map, you do not need to do this.</p>
<p>To add a waypoint, move your avatar to the desired position, and select "AddPeg" from the HUD menu. A peg should appear in front of you. To create a second waypoint, move to another position, and repeat.</p>
<p>To link the two waypoints X and Y, click on the first one (X), then click on the second one (Y). The pop up dialog should say "Current peg: Y, previous: X". To link them, select "LinkPegs" from the popup dialog. To unlink two waypoints, again, click on the first one, then click on the second one and select "UnlinkPegs" from the popup. Be careful to disregard all other dialogs that have popped up.</p>
<p>You can give a name to waypoints. Click the peg, select "SetName", and enter the name (E.g. "Bar"). You can use this name to give commands to your NPCs later (e.g. "Bob go to bar").</p>
<p>You can move the waypoints around to correct their positions. Important: After you move pegs to new positions click "ScanPegs" from the editor HUD. If you don't do this your changes will be lost.</p>
<p>After you have created/edited your waypoints, click the WaypointEditor HUD and select "SaveCards". This will update/create the <strong>waypoints and the </strong>links notecards inside the controller to match your new map. To test that all went well, clear the pegs and rez them again.</p>
<p>Note! Removing waypoints is not supported, as it would break the numbering and would mess up the notecard naming scheme. Although deleting is not supported, you can unlink a waypoint from all other waypoints, in which case the NPCs will never go there when wandering. If you want to start over with an empty map, edit the <strong>waypoints and </strong>links notecards, remove all their contents, and then select "Reconflg" from the controller.</p>
<h2>Configuration</h2>
<p>Configurable options for the controller are added in the __config notecard:</p>
<pre><code>AutoLoadOnReset=0
</code></pre>
<p>Change AutoLoadOnReset=0 to AutoLoadOnReset=1 to make the controller rez the NPCs automatically on region restart or script reset. Please note that autoloading NPCs may not always work well with some opensim versions.</p>
<h2>Permissions</h2>
<p>Permissions allow you to limit access to NPCs , and to specific commands to certain users or to all users. An access control list is specified in the __permissions notecard which is inside the controller object.</p>
<p>Each line in the __permissions notecard has the format</p>
<pre><code><npc-name> <command-name> = <RULE> <avatar name>
</code></pre>
<p>Where RULE is ALLOW, DENY, ALLOWID, DENYID or ALLOWSAMEGROUP (read below for usage).</p>
<p>The following line blocks (denies) avatar "Bad Hombre" from issuing the "bob come" command:</p>
<pre><code>bob come = DENY Bad Hombre
</code></pre>
<p>You can substitute the name of the NPC or the name of the command or the name of the avatar with the wildcard character '*'. for example, this blocks any avatar from using the command:</p>
<pre><code>bob come = DENY *
</code></pre>
<p>you can block any avatar from issuing the "come" command to any NPC:</p>
<pre><code>* come = DENY *
</code></pre>
<p>you can block any avatar from issuing any command to Bob:</p>
<pre><code>Bob * = DENY *
</code></pre>
<p>you can block a specific avatar from using any command on any npc:</p>
<pre><code>* * = DENY Bad Hombre
</code></pre>
<p>you can also use the DENYID command to block an avatar by UUID</p>
<pre><code>* * = DENYID d37a3f5b-562a-4bfd-b780-68c0b9b940b1
</code></pre>
<p>and you can block any avatar from using any command with any NPC!</p>
<pre><code>* * = DENY *
</code></pre>
<p>The rules specified in the notecard are executed from top to bottom, therefore you can add exceptions for specific users with the ALLOW and ALLOWID commands at the end of the list:</p>
<pre><code>* come = ALLOW Good User
* come = ALLOWID d37a3f5b-562a-4bfd-b780-68c0b9b940b1
</code></pre>
<p>You can also use the keyword ALLOWSAMEGROUP, which allows any avatar that is in the same group as the controller object.</p>
<pre><code>* come = ALLOWSAMEGROUP
</code></pre>
<p>You can use the wildcard '*' with the ALLOW commands as well</p>
<pre><code>Bob come = ALLOW *
* come = ALLOW *
Bob * = ALLOW *
</code></pre>
<p>An example __permissions notecard is given below which blocks any avatar from controlling the NPC "Alice" and disallows the "exec" command, but allows exceptions to certain users. It also blocks "evil user" from any command:</p>
<pre><code>Alice * = DENY *
* exec = DENY *
Alice * = ALLOW Good User
Alice * = ALLOWSAMEGROUP
* exec = ALLOW Good User
* exec = Allow Another Gooduser
* * = DENY Evil User
</code></pre>
<ul>
<li>Note that the ALLOW, DENY, ALLOWID etc. rules need to be in CAPITALS. Also, There must always be a space before and after the '=' character.</li>
<li>The owner of the controller is always able to use all commands with all NPCs regardless of access list.</li>
<li>If you make changes to the __permissions notecard, please click on the controller ->ReConfig to reload the permissions list.</li>
</ul>
<h2>Initialization commands</h2>
<p>The notecard <strong>initcommands contains initial commands to give to the NPCs. If AutoLoadOnReset is enabled, the notecard contents are executed automatically after loading. You can also manually execute the notecard by clicking "InitCmds" from the controller menu. You can use the </strong>initcommands to add any command that sets your NPCs in motion. Typically you would tell them to "leave" so that they start walking between waypoints. An example of __initcommands is :</p>
<pre><code>Bob say I am rezzed!
Bob teleport <64,64,22>
Alice teleport <128,64,22>
Bob leave
Alice leave : Start walking!
</code></pre>
<h2>Extension scripts</h2>
<p>You can extend the functionality of the controller with extension scripts. Extensions are LSL scripts that you create and add inside the controller object. If a command given to an NPCs is not understood by the NPC controller, the NPC controller will send a link_message to the extension scripts to process it. The extensions can also use link_message to send back commands to the NPC controller (the "number" parameter must be greater than 0) . The OSW NPC Controller object already contains an extension that implements the "help" command (look at the "..Extension" script). The script in it shows how extensions parse the data sent from the controller (sent through link_message) and how they can respond back.</p>
<p>The number parameter of the link_message is -1 if it comes from the controller script. The key parameter of the link_message is the UUID of the NPC. The string parameter of the link_message (or through channel 68) is of the format:</p>
<pre><code>! [uuid] Bob Bob help
</code></pre>
<p>Where:</p>
<ul>
<li>[uuid] is the UUID of the user who gave the command</li>
<li>Bob is the name of the NPC. The name is repeated once again.</li>
<li>What follows is the rest of the command that the NPC heard (e.g. "help")</li>
</ul>
<p>You can easily split the string with llParseString2List. Look into the ..Extension script for an example.</p>
<h2>Sending commands from other objects</h2>
<p>You can send commands directly to the NPC controller from any object. The NPC controller listens on channel 68. You have to remember to send the command using llRegionSay region-wide, so that the controller can hear it. The syntax is the same as the one used in link_message:</p>
<pre><code>llRegionSay(68, "! 0000-0000-0000-0000 Bob Bob say hello");
</code></pre>
<p>The UUID can be zero, and the name of the NPC must be repeated twice, as shown above</p>
<ul>
<li>ONLY scripts owned by the owner of the controller can send commands this way *</li>
</ul>
<h2>Setting controller variables from other objects</h2>
<p>Another way to interact with the controller is by setting variables from other objects by sending SETVAR [variable name] [value] from other objects to channel 68. This is the syntax:</p>
<pre><code>llRegionSay(68, "SETVAR foo 1");
</code></pre>
<p>(SETVAR must be in capitals. This example will set the variable "foo" to "1").</p>
<p>The variables can be used normally in notecards. In this example notecard, the NPC will waits for the variable "foo" to become '1' before starting to dance:</p>
<pre><code>@start
say Waiting for variable foo to become 1...
waitvar foo 1
say Variable foo is now 1! Let's dance!
anim dance1
wait 10
stop
setvar foo 0 : Reset var foo to 0 before waiting again
jump start
</code></pre>
<h2>Technical Notes</h2>
<p>The controller runs a single timer, that updates the states of all the NPCs every 5 seconds. This allows it to be extremely lightweight, as it does not block any script processing, but it may also cause delays when executing commands.</p>
<p>The controller checks the number of visitors in your region every 2 minutes. If there are no visitors in the region for 2 minutes, it will stop executing commands to avoid creating unnecessary load to the region.</p>
<h1>Bugs</h1>
<p>The controller was tested with version 0.8.2.1 . There may be multiple issues with other versions. Please add an issue, or get in touch with Satyr Aeon @ hypergrid.org:8002</p>
<h1>Thanks</h1>
<p>Thanks goes to Spax Orion for testing out lots of features and giving feedback</p>

👍 8 like

Milestones

Hide Feed  
███▓▒░░...(̅̅̅(̅̅̅̅̅̅̅_̅̅()ڪڪ....░░▒▓
♬-.¸·´·CLUB PARADISE·.¸·´·.¸.-♬
♬ WHO: DJ ISADORA
♬ WHAT: MIXED AND YOUR REQUEST
♬ WHEN: 6-11 pm AMV
♬ WHERE: CLUB PARADISE
♬ COME DANCE WITH US!!!
♬ BRING YOUR FRIENDS AND SONG REQUESTS
alternatemetaverse.com:8002:Club Paradise

Request that membership be vetted and any transphobes be ejected/rejected and just catapulted from the fucking planet. There is no 2SLGBTQQIA+ without the T.


Nico Kalani: Done. 59 minutes ago



GlennXpletive: Outstanding display of virtue signalling Leonitas. You DID block me because you cannot handle the truth while claiming to be so intelligent and righteous in your own mind! So telling me to rot in a h... 1 hour ago
TONIGHT WE ARE AT CLUB PARADISE WITH DJ ISADORA CLOUDPUNK


███▓▒░░...(̅_̅_̅(̅_̅_̅_̅_̅_̅_̅_̅̅()ڪڪ....░░▒▓
♬-.¸·´`·CLUB PARADISE·.¸·´`·.¸.-♬
♬ WHO: DJ ISADORA
♬ WHAT: MIXED AND YOUR REQUEST
♬ WHEN: 6-11 pm AMV
♬ WHERE: CLUB PARADISE
♬ COME DANCE WITH US!!!
♬ BRING YOUR FRIENDS AND SONG REQUESTS
alternatemetaverse.com:8002:Club Paradise
CLUB PARADISE PRESENTS DJ ISADORA CLOUDPUNK


███▓▒░░...(̅_̅_̅(̅_̅_̅_̅_̅_̅_̅_̅̅()ڪڪ....░░▒▓
♬-.¸·´`·CLUB PARADISE·.¸·´`·.¸.-♬
♬ WHO: DJ ISADORA
♬ WHAT: MIXED AND YOUR REQUEST
♬ WHEN: 6-11 pm AMV
♬ WHERE: CLUB PARADISE
♬ COME DANCE WITH US!!!
♬ BRING YOUR FRIENDS AND SONG REQUESTS
alternatemetaverse.com:8002:Club Paradise
All about transgender people. :)
Transgender - From Wikipedia, "A transgender person (often shortened to trans person) is someone whose gender identity differs from that typically associated with the sex they were assigned at birth."

Transexual - A transgender person who desires medical assistance to transistion from one sex to another.

Transgender - includes transmen, transwomen, non-binary, genderqueer,gender 3 people, drag queens, drag kings, cross-dressers.

Gender 3 - A person who is neither a man or a woman.

Being transgender is distinct from sexual orientation, and transgender people may identify as heterosexual (straight), homosexual (gay or lesbian), bisexual, asexual, pansexual, or non-label.

cisgender - gender identity matches assigned sex at birth.

Transfeminine - any person, binary or non-binary, who was assigned male at birth and has a predominantly feminine gender identity or presentation.

Transmasculine - a person, binary or non-binary, who was assigned female at birth who has a predominantly masculine gender identity or presentation.

androphylic transexual - a transexual attracted to men.

gynephilic transexual - a transexual attracted to women.

bisexual transexual - a transexual attracted to both men and women.

asexual transexual - a transexual attracted to neither men or women.

pansexual transexual - a transexual attracted to men and women, but also the entire transexual spectrum.

non binary transexual - agender, androgynous, androgynes, bigender, pangender, or genderfluid, and exist outside of cisnormativity.

agender non-binary transexual - genderless transexual.

androgynous non-binary transexual - identifies as being both male & female simultaneously.

androgynes non-binary transexual - identifies as being beyond both male & female simultaneously.

intergender androgynes non-binary transexual - identifies as being between male & female genders.

bigender non-binary transexual - switches to male or female gender.

genderfluid non-binary transexual - moves between male & female roles.

transvestite - synonym for cross-dresser. a person who dresses in opposite cis gender style.

Faux Queen - woman who does female drag.

Nico Kalani: Suggested reading: • Defining “transgender or gender non-conforming”: https://tinyurl.com/5fwebe8c And, if you want to understand the community, try to understand their fear, and the danger they face... 1 hour ago
The recent homophobic posts and bullying have made me decide to step up and say something. People who don't like it can F-off.

I have been in OpenSim, basically from the beginning. I started in OSgrid about three months after they first opened.
For anyone who has been around that long, I have been gender transitioning all of that time that you have known me. The picture illustrates 16+ years ago vs now. I am proud of who I am, and how far I have come.

To our LGBT friends who are being harrassed, insulted, bullied. YOU ARE NOT ALONE! You are welcome, valued and loved. The crap you read from those few people, and on this site is absolutely NOT representative of what OpenSim is about. Their hate has no place here.

Nico Kalani: This post has, at the moment, 34 likes. The bully's comments, in total, have one like. Maybe he just needs to insult people louder and longer to be liked. Rant away pal. The trans hater has a few like... 2 hours ago
The Love Is Love Alliance
We promote LGBT community-building activities in OS, such as identifying and promoting places that celebrate pride, individuality, and diversity. Membership is open to all people and places supportive of our purpose and those working to promote it.

Join us: https://opensimworld.com/groups/1032

Nico Kalani: Some group business, posted here so non-group members can see it. Membership to the group is open to all people and places supportive of our purpose and those working to promote it. However, we are ... 3 hours ago
Dear Friends,
We begin by thanking each of you for always participating in such large numbers and with such enthusiasm in our events. Your support is of paramount importance to us and we cannot help but express our gratitude. Thank you all from the bottom of our hearts.
A special thanks this evening goes to our extraordinary friend, DJ GIO.
With his inexhaustible energy and unquestionable talent, DJ GIO was able to turn the evening into a real party, keeping everyone present dancing and involved.
His exceptional talent and passion for music make him a DJ with a capital D. We can't help but say it. DJ GIO, you are truly a phenomenon!!!
Your ability to create such an engaging and fun atmosphere is something unique and rare. Thank you for giving us an unforgettable evening.
See you soon for more music and fun-filled events. We look forward to seeing you all again and sharing many more special moments together. A virtual hug to all of you, wishing to see you again soon for new musical adventures.

With love,
Staff.
Dear Friends,
We begin by thanking each of you for always participating in such large numbers and with such enthusiasm in our events. Your support is of paramount importance to us and we cannot help but express our gratitude. Thank you all from the bottom of our hearts.
A special thanks this evening goes to our extraordinary friend, DJ GIO.
With his inexhaustible energy and unquestionable talent, DJ GIO was able to turn the evening into a real party, keeping everyone present dancing and involved.
His exceptional talent and passion for music make him a DJ with a capital D. We can't help but say it. DJ GIO, you are truly a phenomenon!!!
Your ability to create such an engaging and fun atmosphere is something unique and rare. Thank you for giving us an unforgettable evening.
See you soon for more music and fun-filled events. We look forward to seeing you all again and sharing many more special moments together. A virtual hug to all of you, wishing to see you again soon for new musical adventures.

With love,
Staff.

With all the haters, negative comments and drama, I think Opensim needs to add an "unlike" or "not cool" button. What's your thoughts?


KrisTina: Down votes are for the weak. 5 hours ago

In light of the recent spew -I'm happy to be a part of a dedicated spew-free space. Thanks for having me! :D

test^^

I'm happy to be in the group with you. :-)


Jamie Wright: @DorenaVerne I see you in here. Can you access it now? 7 hours ago

Yes folks, £5 regions are back at Wolf Territories Grid for a Limited Time. With Free terrain generator. Available in 1024x1024 to well whatever you like ( we have a 64x64)


Xenon Darrow: Best decision you could ever make, HG peeps. DO EEEET! 8 hours ago

I am committed to being an ally. Hugs and support to all! I will likely lurk and listen more than speak. That is how I learn.

www.newlifeitaly.net

Wolf Fest is Coming....


Xenon Darrow: And so chock full of education! 9 hours ago
You can add your region for free.
Go to the site to download the configuration files and register
http://www.virtualife-grid.it/
Virtualife hub.Free mesh dress.games, races, horse, fishing area, combat system and rp and much more
1/4 sim for free or rent a sim.

GlennXpletive: No I don't think so. I heard how you treated nice ladies who were a part of your grid. Your reputation has become that you are garbage and a complete douchebag asshole. Deleting people's lands and ban... 9 hours ago

Beautiful lunar eclipse from our flat Earth. Proof the Earth is flat.

▀▄▀▄▀▄▀▄▀▄▀▄▀ Party am Roadhouse▀▄▀▄▀▄▀▄▀▄▀▄▀
✠✠✠✠✠✠✠✠✠✠✠✠
Wer: DJ Winni
Was: Was die Plattenkisten hergeben
Wann: Mittwoch den 22. 05.24
Ab: 19 Uhr --- 10 am

ankabi.de:8002:AnKaBi Bikers Heaven
▀▄▀▄▀▄▀▄▀▄▀▄▀ Party am Roadhouse▀▄▀▄▀▄▀▄▀▄▀▄▀
✠✠✠✠✠✠✠✠✠✠✠✠
Wer: DJ Winni
Was: Was die Plattenkisten hergeben
Wann: Mittwoch den 22. 05.24
Ab: 19 Uhr --- 10 am

ankabi.de:8002:AnKaBi Bikers Heaven

WEDNESDAY 22 MAY 10am Slt / 19Uhr Cet

DJ Marlon

Put on your dancing shoes and come to the Bourbon Bar !


hop://pangeagrid.de:8002/Bourbon%20Beach/104/153/24

▀▄▀▄▀▄▀▄▀▄▀▄▀ Party am Roadhouse▀▄▀▄▀▄▀▄▀▄▀▄▀
✠✠✠✠✠✠✠✠✠✠✠✠
Wer: DJ Winni
Was: Was die Plattenkisten hergeben
Wann: Mittwoch den 22. 05.24
Ab: 19 Uhr --- 10 am

ankabi.de:8002:AnKaBi Bikers Heaven
Some friends on our transgender facebook group were discussing how we've used games, apps, etc, as creative visualization over the years. Here's 15 years of slowly morphing into my SL and OpenSim avatar.

I work a pretty physical job, and as Han Solo says, I could "pull the ears off a gundark" Thus far no one has called me a faggot, so I'm not too worried about the keyboard warrior here.

Jamie Wright: Beautiful and beloved in all worlds @Hyacinth:) 15 hours ago
I have various circlets and tiaras created at the back of the store by the wedding rings. I was asked to create these when I first started creating jewelry and have loved them ever since; these are always so fun to create and look pretty when worn. three.hills.grid.outworldz.net:8002:Monentes Jewelry

SilviaFrey: Son preciosos todos tus circlets y coronas. Me encantan. Yo paso mucho tiempo vestida de la época medieval y me vinieron muy bien. Muchas gracias. 15 hours ago
Hello friends, what an enchanting evening we had yesterday! We want to express our endless gratitude towards the talented DJ Luna Nera, who gave us magical moments with her music. Not only did she delight us with some songs sung by her, but she was also able to involve us in an emotional journey of wonderful love songs, making us sing and dance together.
Our most heartfelt thanks also go to all of you, whose presence and affection make each of our events special. It is precisely this human warmth that motivates us to organize each evening with enthusiasm and dedication. Thank you for your continued support.
A special thanks goes to our French friends, Max and Nadir. Your extraordinary kindness, politeness and constant support are an inexhaustible source of joy and encouragement for us. Your friendship is precious to us and makes us feel lucky to have friends like you.
We are excited to announce that we will meet again tomorrow night in the company of the great DJ Giò, ready to experience another unforgettable evening together.
We embrace you all with love and wish you a wonderful day, a joyful evening or a sweet night, wherever you are in the world and whatever your time zone. :D

Love,
The Staff
I want to take a moment to express my unwavering support and admiration for each and every one of you. I believe in the importance of standing alongside you in the fight for equality, acceptance, and love. Bullying, in any form, is a reflection of the bully's own issues, not yours. It's often a reaction to the power they sense in you—power that they wish they had or that challenges their sense of control. They might use words or actions to try to tear you down, to make you doubt yourself, or to push you back into a box they find less threatening. Each time you stand firm, you send a message that you won't be easily broken. Your strength is not only a source of power for you but also an inspiration for others who face similar challenges. Like me, who is often misjudged. I apologize to all whom I have offended in the past; I became so ugly because of all the bullying I have endured over the years; it changed me. Please never allow that to happen to you, and thank you for being "here". I will always support you.

Hi everyone,
I was appalled by some of the comments in the box today. It is nice to have this safe spot to offer support to each other.

Heads up people. There are faggots here on OWS. And according to the all-round bully who used that word in the box, fags just need to "toughen up" and not let words bother them.

Among other kinds of hurtful behavior, bullies do like to name-call and make fun of others. Name-calling is more than disrespectful. It’s verbal and emotional abuse that can be hurtful and harmful. Typically bullies will deny the harm caused, and even just not care.

Studies have found bullying peaks around ages 11 to 13 and decreases as children grow older. When adult bullies excuse their abuse by saying “toughen up,” it’s tempting to say “grow up.” But some kids never grow up. Many who were bullies as children turn into antisocial adults. They are far more likely than non-aggressive kids to commit crimes, batter their wives, abuse their children—and produce another generation of bullies.

As wounding as a bully’s own childhood may have been, its important to distinguish between people who have problems and people who are problems. Bullies are problems. We don’t need to “toughen up”. Rather, we need to get tough on them to end their abusive behavior. How that plays out in OS would seem to be a work in progress. But calling abusive behavior what it is is a start. The Love Is Love Alliance can be helpful by identifying places in OS that are not only free of homophobic bullies, but also intentionally inclusive and respectful.

Hyacinth: They guy's region pretty much gets the traffic it deserves. No one wants to go hang out naked with an angry, bitter person. Otherwise it's a beautiful region. 17 hours ago
Gentle fire grid has now opened Hall of Fame for those who have contributed to opens sim and Gentle fire Grid in entertainment, music live singers' Dj's and hostess we would like to add those that have contributed to all these things in the last Few Years and thank you and hopefully you will visit and see some of the people. we honored Zorre Jupiter has been Announced to be add to the hall of Fame Wosey also honored DJ Howard DJ Lala DJ John DJ Tech DJ Cuddles DJ Eagle and many more congratulations to you all and to all of you have given so much to open sim and Gentle Fire grid.

Good job Nico!


Nico Kalani: Ah gosh... :) Thanks. 20 hours ago
In the early days of the Gay Pride movement, as it was called then, I heard a man ask, "What do the gays do that they are so proud of?" He was suggesting that what defined gay people was simply their sexual behavior, and that behavior was unnatural and repulsive. Yet studies have found that 82.2% of women and 82.7% of men have had oral sex with an opposite-sex partner. And 35.1% of women and 38.1% of men have had anal sex with an opposite-sex partner. That guy, and people like him, need to be hating on a whole lot more people it seems.

But I didn't tell him that. What I said was that "Gay people are proud of surviving, and continuing to strive to be with those they love, despite the vile hatred of people like you." There have been 55 years of Pride Parades, and almost 10 years of nationwide legal same-sex marriage in the U.S.. But the struggle is not yet over -- in the world or in-world. So, thanks for being part of the Love Is Love Alliance.
Satyr

Charlene McNally: ? 23 hours ago
THOR'S FORGE is up and open for folks to visit for medieval and Viking builds. Beautiful medieval structures done to perfection by our own Thorvaldr Ragnarsson. Next to Thor's Forge is our Medieval department with more medieval and Viking builds as well as clothing and many more medieval supplies. Come check it out, you just might find what you're looking for. Blessings and Much Love, Lavia.
Summer is almost here!!! YAY! And we finally have a few items in our Holidays & Season's department for Summer time. Stop in and check it out, in fact, take your time and check out everything, it is a huge 8x8 mall with creators like Artman Xau, Star Ravenhurst, Thorvaldr Ragnarsson, Ares Halostar & Roland Francis contributing! Hope to see you soon! Blessings and much love, Lavia
COME AS YOU ARE PARTY HERE AT SAVAGE DESIRE

♬-.¸·´`·.¸.♪·.¸.-♬-.¸.♪·.¸·´`·.¸.-♬
♫ Who DJ JOY SAVAGE
♫ What OUTLAW / COUNTRY
♫ When 7PM - 11PM
♫ Where: SAVAGE DESIRE
♬-.¸·´`·.¸.♪·.¸.-♬-.¸.♪·.¸·´`·.¸.-♬
COME ON DOWN AND JOIN THE SMOKIN' HOT PARTY!
███▓▒░░...(̅_̅_̅(̅_̅_̅_̅_̅_̅_̅_̅̅()ڪڪ....░░▒▓
COME AS YOU ARE PARTY HERE AT SAVAGE DESIRE

♬-.¸·´`·.¸.♪·.¸.-♬-.¸.♪·.¸·´`·.¸.-♬
♫ Who DJ JOY SAVAGE
♫ What OUTLAW / COUNTRY
♫ When 7PM - 11PM
♫ Where: SAVAGE DESIRE
♬-.¸·´`·.¸.♪·.¸.-♬-.¸.♪·.¸·´`·.¸.-♬
COME ON DOWN AND JOIN THE SMOKIN' HOT PARTY!
███▓▒░░...(̅_̅_̅(̅_̅_̅_̅_̅_̅_̅_̅̅()ڪڪ....░░▒▓

Comments

No comments yet