Testimonial: Our God who can move mountains…

God has brought to mind a specific memory, repeatedly, that he calls to be shared.  It is the day that Jesus gave me a hug. It started weeks before the actual event…. In a time when euthanasia was being pushed in the medical field and legal arena in our country, I went to a seminar, back when I specialized with the elderly and those impacted by Alzheimer disease. In this seminar the speakers were pro ending the life of elderly patients in nursing homes. The social worker from our site also joined me and sat with me in the audience. She casually glanced over as I wrote notes and thoughts on the conversation. At the end of the presentation I stood up and countered with the risks and ethical implications, not religion based, very respectful. I was proud to have offered the counter aspect. It wasn’t easy and was not received well however I thought it to be my ethical responsibility to offer another perspective on a one sided seminar discussion. The next day at work I was called into the social workers office. I was reprimanded for speaking publicly at the conference in opposition to euthanasia. I was told I was “suffering from belief system syndrome” as if I had a mental illness. The social worker convinced the administration I needed additional exposure to alternative beliefs and I was required to attend an 8 hour seminar on spirituality in the health care field. Out of all the presenters that day only one was “christian” but it focused on the power of prayer as the power positivity and belief has on healing, not the power of God to heal. The others were about other religions, meditations, and controversial beliefs and practices. Driving home that day I felt I had just left a war zone and would be expected to report back “what i had learned” All the way home I spoke with God, my faith had not been shaken, I knew what i believed, I understood and accepted others have different views, but it was still upsetting realizing that I was expected not to have an open discussion and to condone all beliefs and practices, even euthanasia, in the least by simply remaining silent and that my own professional concerns and personal ethical beliefs were not respected. This was something I did not feel I should be asked to do ethically. Morality is a much deeper level, however even on the surface of professional ethics I felt this was not appropriate. As I neared my village I was no longer talking to God I was yelling. Tears streaming down my face. (I really should not have been driving at this point.) I wasn’t yelling at God. I was not angry at God. I was just hurt and wanted God to take the pain away. He spoke in soft thoughts in my mind and I snapped back. That wasn’t good enough. I needed more. I could envision Jesus in my mind sitting in the car with me. I knew God was with me and listening and I felt his love but I yelled back still…. No! I need more. I don’t want thoughts in my mind to sooth me, I do not want visions in my mind to comfort… I want a hug. I said to Jesus directly, you are God and nothing is impossible for you. I know it is not reasonable for me to expect you to appear in the flesh and give me a hug but that is what I need. I need a hug NOW. My God who can move mountains and bring nations to their knees. My God who loves me as a daughter, I needed a hug from my father. It didn’t matter how ridiculous my request sounded. I was like an inconsolable child. I was hurt. At this point I was driving into my home village. The village was empty on a Tuesday evening with everyone at supper. Then I saw them at the little church that was only occupied a few hours a week on Sunday morning and occasionally on a Wednesday evening. There was no reason for them to be there, on the sidewalk with their car doors open, about to get in and drive away, at the exact moment as I approached…. If the car had been there without seeing them, I would not have stopped, and a moment later they would have been on their way home, far outside of the village…. but there they were, on the sidewalk. I pulled over to the side of the road and literally jumped out of my car, I didn’t even have time to think about it. It was automatic. I think, by the looks on their faces I scared the dickens out of them with tears on my cheeks and stuttering as I approached them. I don’t even remember what I said but I told them I was there for hug and I got one. They offered to speak with me, they hadn’t even eaten supper yet, I tried to decline but they insisted. They had only stopped by the church on chance, a last minute thought as they were driving home, past the village church for some quick cleaning… I don’t even remember what we talked about. What I do remember is that I asked God for a miracle of a Hug that day. That is all I wanted but everything I needed and God moved a mountain just for me…..

Advertisements

Words of wisdom from a virtual student and a virtual employee.

For those who do not know me I have been isolated by poverty and distance since childhood. Technology has freed me from those bounds. I have been a virtual student since 2001 and have been a virtual employee for almost as long. I am forever surprised at the fear of technology that exists in our schools and in our professions. I worked for five years as a teacher and was daily faced with having to defend technology and argue its value and importance. Even as a Masters student I am still shocked at how slow educators and professionals are to accept technology due to misconceptions and fear. So here are my thoughts on the benefit of hybrid meetings using technology to facilitate networking and engagement.

While students and employees continue to benefit from face to face networking in a function room, new technologies are increasingly advancing with the ability to draw in participants who would otherwise be isolated. New technologies, not subject to physical boundaries are becoming increasingly more accessible.

This can be accomplished through personal mobile devices or virtual meeting environments, technology is the key to expanding outreach and the way content is communicated, both in conjunction with and separate from face to face communication. Not only are people who are limited by distance or other boundaries drawn into the discussion where they would otherwise be excluded, but those within the physical environment have access to a more engaged degree of interaction.

Overcoming fear of new technologies as taboo has always been a challenge. From the onset of telephonic conferences, rejected as impersonal, to video conferences rejected as intrusive, the taboo of having any electronic device in a classroom or meeting, all these taboos have been overcome and can now be looked back upon as the fear of change that slowed networking progress. 3D environments is the current taboo that professionals face in all fields that require networking and collaboration.

Mobile technology and social media are the current most active trends. 3D environments are quickly catching on, from virtual worlds to the development of walk in 3D web pages. The use of 3D environments are proving to increase engagement with the ability to learn and collaborate in meeting spaces. It is becoming common place to see layered meetings, even with face to face interaction, combined with distance communication and participants, live streaming, recording, gamification within the presentations, and multiple levels of interaction with links, slide shows, and even independent exploration of all of these options inside virtual environments.

Virtual meeting technology is efficient and cost effective. It eliminates travel, saves time, reduces expenditures, and increases convenience for the participant. It is also more environmentally friendly and quickly being adopted in the business fields, even as an alternative to the brick and mortar work space for all of the reasons mentioned above.

Companies have virtual employees using adobe rooms, Skype, Zoom, messenger, virtual networks and remote desktops because it is cost effective and convenient on a global scale. Colleges are needing to help students embrace virtual technology not only as a social and educational venue, but in career preparation in order to encourage future success.

Hybrid or blended meetings are the bridge for those still uncertain when it comes to improvements that require open mindedness towards newer technologies. Hybrid meetings have real time face to face components as well as virtual components, such as live streaming a conference or meeting with a group to experience a 3D immersive tour and discussion. Back channel conversations on social media, twitter, Facebook, or even meeting platforms such as Zoom, can work in conjunction with live events or live virtual immersive events.

Virtual meetings and immersive environments will never replace face to face interaction but they can greatly enhance them. We are social beings and physical proximity will always be a major aspect of networking and engagement. Emerging technologies merely enhance the experience and remove the boundaries that prevent many from participating. Those individuals who would otherwise feel isolated due to financial, physical, distance or other challenges, through blended environments are able to contribute and collaborate. The exploration of these interactive and immersive formats challenge us to become more relevant and more engaging. What a great opportunity to continue developing relationships that may start at a college or business event and be able to be nurtured and continued through the use of virtual and immersive technology.

Treasure hunt scripts

 

This is the script for a wearable hud that works with other game features as well. For this example we will use it just to collect tokens for finding gems. You would put this in a wearable object like jewelry,  a badge or a hat etc.

// The actual HUD //
// ——————————————–
// ——————————————–
// declare / define global variables //

integer pCoins = 0;
integer pGems = 0;
integer pScore = 0;
string vhCustomTitle = “Tresure Hunt”;
string vhTitleOffset = ” \n \nThanks for trying the Game Kit.\nBegin by collecting gem.”;
string vhMessageLine = “\n \n “;
string vhCoinString = “”;
string vhGemString = “”;
string vhScoreString = “”;
integer vhAccessCost = 0;
list pPuzzleList = [];
integer pHUDworn = 0;
string gsCardOneName = “config”;
string g_sNoteCardName;
list gOneCard;
list g_lTempLines;
integer g_iLine;
key g_kQuery;

initialize(string _action) {
if (_action == “”) {
loadNoteCard(gsCardOneName);
} else if (_action == “finish”) {
integer i;
for (i = 0; i< 7; ++i)
{
string tLineText = llList2String(gOneCard,i);
if (i == 0)
{
vhAccessCost = (integer)right(tLineText,”:”);
}
if (i == 1)
{
vhCustomTitle = right(tLineText,”:”);
vhCustomTitle = vhCustomTitle + “\n “;
}
if (i == 2)
{
vhTitleOffset = right(tLineText,”:”);
vhTitleOffset = vhTitleOffset + “\n \n “;
}
llListen(999,””, “”,””);
//llListen(reset_channel, “”, “”, “”); // RESET channel

}
}
}

loadNoteCard( string _notecard ) {
g_lTempLines = [];
g_sNoteCardName = _notecard;
g_iLine = 0;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);

}

notecardFinished(string _notecard){
if (_notecard == gsCardOneName) {
gOneCard = g_lTempLines;
initialize(“finish”);
}
}

// ——————————————–
// ——————————————–
// define global custom functions //
// these are from the lsl tutorials //

string left(string src, string divider) {
//llSubStringIndex
// find the first appearance of the divider
integer indexLF1 = llSubStringIndex( src, divider );
if(~indexLF1)
// check to see that the appearance falls in a positive number position
//string llDeleteSubString(string src, integer start, integer end)
// remove all of the text that falls to the right of the first divider
return llDeleteSubString( src, indexLF1 + llStringLength(divider)-1, -1);
return src;

}

string right(string src, string divider) {
integer index = llSubStringIndex( src, divider );
string tString = “”;
if (~index)
{
// this fetches the string to the right of the first marker
tString = llDeleteSubString( src, 0, index + llStringLength(divider) – 1);
//llSay(0,”whats left ” + src);
// now we need to get the right half of that
integer indexSR1 = llSubStringIndex(tString, divider);
if (~indexSR1)
{
// here’s the far right side of a 3 part list
tString = llDeleteSubString(tString, 0, indexSR1 + llStringLength(divider) – 1);
}
}
return tString;
}

string center(string src, string divider) {
integer index = llSubStringIndex( src, divider );
string tString2 = “”;
if(~index)
{
tString2 = llDeleteSubString( src, 0, index + llStringLength(divider) – 1);
integer indexC1 = llSubStringIndex(tString2, divider);
if (~indexC1)
{
return llDeleteSubString( tString2, indexC1 + llStringLength(divider)-1, -1);
}
}
return tString2;
}

default
{
on_rez(integer start_param)
{

if (llGetAttached() > 30)
{
pHUDworn = 1;
initialize(“”);
llSetText(vhCustomTitle + vhTitleOffset + “\n \n “, <0,0,0>, 1);
}else{
llSetText(“”, <0,0,0>, 1);
llSay(0, (string)llGetAttached());
}

}
state_entry()
{
initialize(“”);
integer messageInt = llListen(1717, “”, NULL_KEY, “” );
integer messageInt2 = llListen(1718, “”, NULL_KEY, “” );
integer messageInt3 = llListen(1719, “”, NULL_KEY, “”);
integer messageInt4 = llListen(1791, “”, NULL_KEY, “”);
integer messageInt5 = llListen(1616, “”, NULL_KEY, “”);
integer messageInt6 = llListen(2654, “”, NULL_KEY, “” );
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
}

touch_start(integer total_number)
{
// if they touch the scorekeeping object – readout the scores
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(),vhCustomTitle+vhMessageLine+vhCoinString+vhGemString+vhScoreString);
}
}

listen( integer channel, string name, key id, string message )
{
if (channel == 1717)
//llSay(0, (string)channel + ” ” + name + ” ” + (string)id + ” ” + message);
{
string mesR = right(message, “:”);
string mesL = left(message, “:”);
string mesC = center(message, “:”);
integer tValue = (integer)mesR; // convert the coin string to a number
//llSay(0, (string)llGetOwner());
//llSay(0, mesL);
if (mesL == (string)llGetOwner())

// this is the parse for hud owner messages only
{
//llSay(0, “LINE 110: ” +(string)tValue);
pCoins = pCoins + tValue;
// fix according to positive v negative values
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(), vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString);
}
}
// llSay(0, (string)pCoins);
}

if (channel == 1718)
{
string mesR = right(message, “:”);
string mesL = left(message, “:”);
string mesC = center(message, “:”);
integer tValue = (integer)mesR; // convert the coin string to a number
//llSay(0, mesL);
//llSay(0, (string)llGetOwner());
if (mesL == (string)llGetOwner())
{
if (tValue > 0)
{
if (pCoins >= tValue)
{
//llSay(0, “LINE 132: ” +(string)tValue);
pCoins = pCoins – tValue;
}else{
pCoins = 0;
}
}
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;

if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(), vhCustomTitle+vhMessageLine+mesC+vhCoinString+vhGemString+vhScoreString);
}
}
}

if (channel ==1719)
{
if (message == (string)llGetOwner())
{

if (pCoins >= vhAccessCost)
{
pCoins = pCoins – vhAccessCost;
llSay(1720, “Y”);
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+”You spent “+ (string)vhAccessCost+ ” tokens to use this object.” +vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llSay(0, vhCustomTitle+vhMessageLine+”You spent “+ (string)vhAccessCost+ ” tokens to use this object.” +vhCoinString+vhGemString+vhScoreString);
}
}else{
llSay(1720, “N”);
}
}
}

if (channel == 1791)
{
if (message == (string)llGetOwner())
{
// here we should add a list to hold which objects have been acquired. We can do it by storing a list of the
// puzzle boards that awarded gems – and simply ignoring repeat awards – (you could add a message to that effect as well.
list tTest = [id]; // the uuid of the puzzle board
integer foundIndex = llListFindList(pPuzzleList, tTest);
if (foundIndex == -1)
{
pGems = pGems+1;
list insertNameList = [id];
pPuzzleList = llListInsertList(pPuzzleList, insertNameList, 0);
vhCoinString = “\nTOKENS: “+(string)pCoins;
vhGemString = “\nPRIZES: “+(string)pGems;
pScore = pCoins * pGems;
vhScoreString = “\nPOINTS: “+(string)pScore;
if (pHUDworn == 1)
{
llSetText(vhCustomTitle+vhMessageLine+”You earned a prize.”+vhCoinString+vhGemString+vhScoreString, <0,0,0>, 1);
}else{
llInstantMessage(llGetOwner(), vhCustomTitle+vhMessageLine+”You earned a prize.”+vhCoinString+vhGemString+vhScoreString);
}
}else{
llInstantMessage(llGetOwner(), “You have already earned this prize.”);
}
}else{

//llSay(0, message);
key tKeyMes = (key)message;
list tTest = [tKeyMes];
//llSay(0, (string)pPuzzleList);
//llSay(0, (string)tTest);
integer foundIndex = llListFindList(pPuzzleList, tTest);
//llSay(0, (string)foundIndex);
llSay(3719, (string)foundIndex);
}

}
if (channel == 1616)
{
string whoCalled = right(message, “:”);
if (whoCalled == “board”)
{
llSay(1617, ((string)pCoins + “:” + (string)pGems));
}else{
llSay(1417, ((string)pCoins + “:” + (string)pGems));
}
}

if (channel == 2654)
{
llSay(2655, “ScorekeeperReply”);
}

}
dataserver(key _query_id, string _data)
{
if (_query_id == g_kQuery) {
if (_data != EOF) {
g_lTempLines += [_data];
g_iLine++;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);
} else {
notecardFinished(g_sNoteCardName);
}
}
}

}


 

This is the notecard you would include in the object as well. Title in config

 

// PAY BOARDS TO PLAY // :5
// HUD GAME TITLE // :Treasure Hunt Game
// INSTRUCTIONS // : Collect gems.


 

And now for the treasure token script put this inside any object you want to award tokens for finding.

 

string pCoinValue = “30”; // um, change the number to make it worth more or less
string pAcquireMessage = “Follow the gems.”; // change the text inside quotes to make it say something different
string CONTROLLER_ID = “A”;
float tAlpha = 0.8; // set this to 1.0 if you want your object to be fully opaque.
// for the adventurous, you could make a random list and choose different things to say
string gsCardOneName = “config”;
list gOneCard;
list g_lTempLines;
string g_sNoteCardName;
integer g_iLine;
string g_kQuery;
integer resetChannel = 3;
integer respawnDelay = 30;
string vhUseParticles = “TRUE”;
float vhTargetOmega = 0.3;

 

//—————– PRIVATE —————————–
string left(string src, string divider) {
integer index = llSubStringIndex( src, divider );
if(~index)
{
return llDeleteSubString( src, index + llStringLength(divider)-1, -1);
}
return src;
}

string right(string src, string divider) {
integer index = llSubStringIndex( src, divider );
string tString = “”;
if (~index)
{
return llDeleteSubString( src, 0, index + llStringLength(divider) – 1);
}
return tString;
}

initialize(string _action) {
if (_action == “”) {
//llSay(0, “1”);
loadNoteCard(gsCardOneName);
} else if (_action == “finish”) {
//llSay(0, “2”);
integer i;
for (i = 0; i< 7; ++i)
{
string tLineText = llList2String(gOneCard,i);
if (i == 0)
{
pCoinValue = right(tLineText,”:”);
}
if (i == 1)
{
pAcquireMessage = right(tLineText,”:”);
}
if (i == 2)
{
string tAlphaString = right(tLineText,”:”);
tAlpha = (float)tAlphaString;
}
if (i == 3)
{
string stresetChannel = right(tLineText, “:”);
resetChannel = (integer)stresetChannel;
integer lHandle5 = llListen(resetChannel, “”,””,””);
}
if (i == 4)
{
string stRespawnDelay = right(tLineText, “:”);
respawnDelay = (integer)stRespawnDelay;
//llSay(0, stRespawnDelay);
}
if (i == 5)
{
vhUseParticles = right(tLineText, “:”);
if (vhUseParticles == “TRUE”)
{
llMessageLinked( LINK_SET, TRUE, CONTROLLER_ID, NULL_KEY );
}else{
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
}
if (i == 6)
{
string stvhTargetOmega = right(tLineText, “:”);
vhTargetOmega = (float)stvhTargetOmega;
llTargetOmega(<0,0,vhTargetOmega>, 10, 10);
}
}
}
}

loadNoteCard( string _notecard ) {
g_lTempLines = [];
g_sNoteCardName = _notecard;
g_iLine = 0;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);
}

notecardFinished(string _notecard){
if (_notecard == gsCardOneName) {
gOneCard = g_lTempLines;
initialize(“finish”);
}
}
//——————————————–

 

default
{
state_entry()
//
{
initialize(“”);
// on stateChange do stuff
//integer lHandle5 = llListen(resetChannel, “”,””,””);
llSetLinkAlpha(LINK_SET, tAlpha, ALL_SIDES);
// set entire prim 100% visible.
//llTargetOmega(<0,0,vhTargetOmega>, 10, 10);
llSetStatus(STATUS_PHANTOM, TRUE);
llSetStatus(STATUS_ROTATE_Z, TRUE);
llTargetOmega(<0,0,vhTargetOmega>, 10, 10);
llVolumeDetect(TRUE);
}
touch_start(integer total_number)

{
float tAlpha = (llGetAlpha(ALL_SIDES/llGetNumberOfSides()));
//llSay(0,(string)tAlpha);
if (tAlpha>0.0)
{
//llInstantMessage(llDetectedKey(0), “You picked up a Spanish Doubloon!”);
// make it invisible
llSetAlpha(0.0, ALL_SIDES);llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
// set entire prim 100% invisible.
llSetStatus(STATUS_ROTATE_Z, FALSE);
llSetStatus(STATUS_PHANTOM, TRUE);
// make it non-physical
// start a timer
// make it reappear after n seconds (n=60)
if (respawnDelay > 0)
{
llSetTimerEvent(respawnDelay);
}
// send a message to the gatherer’s HUD to add 1 coin
llSay(1717, ((string) llDetectedKey(0) + “:” + pAcquireMessage + “:” + pCoinValue));
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
//llSay(0, ((string) llDetectedKey(0) + “:” + pAcquireMessage + “:” + pCoinValue));
// llSay(1717, ((string) llDetectedKey(0) + “: 100”)); // would also work now or any integer positive or negative for that matter.
}

}
collision_start(integer num_detected)
{
float tAlpha = (llGetAlpha(ALL_SIDES/llGetNumberOfSides()));
if (tAlpha>0.0)
{
//llInstantMessage(llDetectedKey(0), “You picked up a Spanish Doubloon!”);
// make it invisible
llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);
// set entire prim 100% invisible.
llSetStatus(STATUS_ROTATE_Z, FALSE);
llSetStatus(STATUS_PHANTOM, TRUE);

if (respawnDelay > 0)
{
llSetTimerEvent(respawnDelay);
}
llSay(1717, ((string) llDetectedKey(0) + “:” + pAcquireMessage + “:” + pCoinValue));
llVolumeDetect(FALSE);

llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
}
//////
listen(integer channel, string name, key id, string mes)
{

if (channel == resetChannel)
{
initialize(“”);
llSay(0, “Okay, I reset the token”);
llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);
if (vhUseParticles == “TRUE”)
{
llMessageLinked( LINK_SET, TRUE, CONTROLLER_ID, NULL_KEY );
}else{
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
llSetStatus(STATUS_PHANTOM, TRUE);
llVolumeDetect(TRUE);
//llSetTimerEvent(0);

}
}
//////////

timer()
{
//llResetScript();
llSetLinkAlpha(LINK_SET, tAlpha, ALL_SIDES);
if (vhUseParticles == “TRUE”)
{
llMessageLinked( LINK_SET, TRUE, CONTROLLER_ID, NULL_KEY );
}else{
llMessageLinked( LINK_SET, FALSE, CONTROLLER_ID, NULL_KEY );
}
llVolumeDetect(TRUE);
llSetStatus(STATUS_PHANTOM, TRUE);
llSleep(1);
llSetTimerEvent(0);
}
dataserver(key _query_id, string _data)
{
if (_query_id == g_kQuery) {
if (_data != EOF) {
g_lTempLines += [_data];
g_iLine++;
g_kQuery = llGetNotecardLine(g_sNoteCardName, g_iLine);
} else {
notecardFinished(g_sNoteCardName);
}
}
}
}

 

———————————————————————————————————————————————————————————————————————————————————————————-and the notecard for the token is also titled config

How many credits is this token worth? :30
What message should this token say? :Nice find! These Gems will help you on your path.
How opaque is this token?(range is 0.0-1.0) :1.0
What channel number should be used for reset? :3
How many seconds delay before respawning? :30
The token should use particles? (TRUE or FALSE) :TRUE
Speed / direction of spin? (range -1.000 – 1.000) :0.0
// never delete a colon
// Spin speed can be set to 0.0 for no spin
// If you use a HUD, message length should not be longer than about 60 characters.
// resetting any value above is entirely optional.
// Set respawn delay to a negative integer to prevent respawning
// You can reset any token using the channel defined above (if for example you left it channel 3, type ‘/3 ‘ and enter

 

Who do you see

Who do you see when you look at me?
Do you see who I am and who I hope to be?
Who do you see when you look at me?
that you would condemn or hope to admire?
If you’re looking high, look lower.
If you’re looking low, look higher.
I am a child of anger...

 

Who do you see when you look at me?
Do you see who I am and who I hope to be?
Who do you see when you look at me?
that you would condemn or hope to admire?
If you’re looking high, look lower.
If you’re looking low, look higher.
I am a child of anger with a ones of her own,
A loving mother whose children adore.
Do you see a harlot, a disgrace to her home,
a devoted wife who could not be more?
Is that what you see when you look at me?
That you would condemn or you would admire?
If your looking high, look lower.
If your looking low, look higher.
Lazy in deed, even at play,
A loyal worker doing her best,
ashamed and alone, forgetting to pray,
A faithful Christian never at rest?
Whomever you see when you look at me,
do not condemn or hope to admire.
For all of who I am, it is all of me,
If you’re looking high, look lower.
If you’re looking low, look higher.