E2V Version 4

I’m going to begin publishing a few articles here and there about what to expect from the E2V system in version 4. These will include information about new features, and/or ways existing features and procedures will be changing. Here’s a few quickies for today…

Easy Updates – Keeping your system up to date will be easier than ever. Updates will be delivered to you automatically, and will (in all foreseeable cases) consist of a single box that you’ll just rez, click, and let it do its thing automatically.

Simpler Options Settings – The options settings on each vendor are going to return to version 2 style. For version 3 users, your existing vendors will be converted automatically for you, and you’ll find setting options to be much simpler going forward. For version 2 users, you’ll already be familiar with how to set options. This is to allow for more feature flexibility, and simpler instructions!

New 1-prim Controller object – There are several individual store support objects in version 3 that will be combined into a single Controller object for version 4. This means just one prim will be needed to run a store on any region.

More info coming in the future …

 

SL Groups and the E2V System

I’m often asked if the E2V system does “group discounts” – and the answer is a qualified “no.” When I think of “group discounts” I come up with two possible scenarios. The first is where group members pay a lower price than non-group members. The second is where group members receive cash back after paying the same price as non-group members. Let me explain why neither of these are great approaches in Second Life, and then explain what the E2V system does instead.

Two Prices
It is possible, using the SL “pay” dialog, to present two price buttons with different amounts. What’s not possible is to prevent someone from pressing the wrong button – both buttons are equally clickable by anyone, whether you have the group tag on or not. It is only after the Lindens have been deducted from the customer’s account, and transferred to yours, that a script can validate someone’s click. In other words, a person without a group tag can click the group price, and a person with the group tag can click the non-group price. So how would the script deal with these scenarios?

In the case of a non-group member clicking the lower price (and who wouldn’t?) the customer is due a refund of the entire payment amount, and would have to be informed that amount is only for those wearing the proper group tag. In the case of a person wearing the group tag and pressing the higher-priced non-group button, they would be due a refund of the difference between the price they paid, and the group price.

Both of these scenarios require that the system obtain debit permissions from the store owner, in order to be able to pay the customers. I’ve expressed my feelings about debit permissions on many occasions, but suffice it to say that I would never grant debit permissions to anyone else’s script, and therefore I certainly do not expect any of my customers to do it either. Granted, there are some scenarios (like splits) where there’s just no convenient or better way around it, and I’ve reluctantly implemented the requirement for debit permissions in those cases.

So to sum up – any approach where people can select the “wrong” amount to pay, requires debit permissions, and is therefore something I’m not terribly motivated to support.

Cash Back for Group Members
Debit permissions. Enough said.

The E2V Approach: Store Credit
It’s still possible to treat your group members specially, using Buyer’s Rewards. There are two rates of buyer’s rewards available on every vendor, one for group and one for non-group. There are a couple advantages to using store credit:

  • You do not earn less money from group members.
  • Store credit is an incentive for your customers to come back to your store.

For example, if all your items sell for L$100, and you offer 10% buyer’s rewards for group members, they essentially can get an 11th item for free. Isn’t getting them back into your store, and wearing/using your product, better than giving them L$100 in cash that they might spend elsewhere? 🙂

 

 

E2V: VIP Credit

One of the easily overlooked features of the E2V system is VIP Credit. This short article will explain quickly what it is, and what you might use it for.

VIP Credit is a way to give out “free” store credit to certain people. It’s a kiosk or terminal that you build, and add a script to – so you control how it looks. If an avatar is approved (more on that in a sec) they can click the terminal, and their store credit account is credited with an amount you determine. People can click only once per “round” – though you can reset the round at any time.

There are two ways to specify who can collect this credit gift. You can either create a notecard with a list of specific names, or you can set the terminal to your group, and then anyone with your group tag active can participate.

One possible usage of this feature would be something akin to a monthly group credit allowance. You simply set up the terminal to be group only, and then reset it every month.

Another possible usage is to give store credit to a select list of bloggers. You would add their names to a notecard, and perhaps reset the list before each release you’d like to invite them to.

VIP Credit can be an alternative to sending out free items, or can be an incentive for customers to come to the store.

You should already have the box in the E2V folder of your inventory (use the Filter Inventory input to search for “VIP”), but if you’d like to make sure you have the latest, just shoot me an IM in world.

(The latest for Version 3 users is called “[E2V-3] VIP Credit (Rez me)” and for version 2 users it’s called “[E2V-IS] VIPCredit 1.2”)

 

 

Why I dislike the term “RL”

A recent Plurk thread got me thinking again about my disdain for the term “RL” when used in contrast to SL. I do understand that most of the time, the term “RL” is used in relation to your privacy, and yeah, whatever. Do you, boo. But if you’re a content creator, and you feel like what you do in SL isn’t “real” then you’re doing yourself a disservice.

I sell a vendor system in SL, and it’s a combination of LSL (SL scripting), HTML5/CSS3, Javascript, PHP, and MySQL. Trust me when I say those are “real” technologies. And my recent job search proved that, when the interviewers were equally interested in my SL business as they were in my day job experience. You can bet that SL was listed on my resume as my own side business where I create an e-Commerce system for an MMORPG.

If you can texture, or you can do 3D models, then you’re using very advanced software and what you do is absolutely valid and valued in the “real” world. If you sell your creations in SL, and are generating income for yourself, then you own your own business. Your business is developing digital assets for an MMORPG.

I first heard about SL from an article talking about people quitting their day jobs and living off of SL income. The article was mostly about the Chung dynasty, but mentioned that many other people were doing it, too. So I never once thought of SL as a “game” for even a second. My whole purpose for starting was to see how people were able to make money. Regardless of why you first got into SL, I think the first step to truly valuing your own work is to get rid of the mindset that SL is a game that you play. You can play Halo all day and never make a cent. But if your Paypal account has seen money go in and out of it, then thinking SL is a game is just another mental block to appreciating the value of what you do in SL, and using the experience to bolster your value in the workforce.

 

Can PoseAnywhere do couple’s poses?

If you suffer from TL;DR syndrome, then here’s the quick answer (though there’s some good info down farther!): no, but if you have copy poses, you can try wearing two HUDs, and using the local move trick to pose them. So the answer is also a qualified “yes” … read on …

One avatar at a time
The PoseAnywhere HUD is designed to pose only one avatar – either yourself, or someone else – at a time. While that means it won’t pose couples, there are some tricks you can try. But first, some background info …

What is posing?
A static pose is an animation that contains only one frame. So it’s just like the walk animation in your AO, but with just one frame. In fact, the AO analogy is accurate, because when you pose yourself, you’re doing exactly what your AO does which is to play an animation. When you pose someone else, what they’re doing is allowing the PoseAnywhere HUD to animate them, exactly like their AO does. You’ll notice when you’re posing via the HUD, you can still move, walk around, jump, etc. It’s literally the same thing as an AO.

What happens when you sit on a prim
Believe it or not, when you sit on a prim, you convert that prim into a linked set, where the prim you sit on is the root prim, and your avatar is the first linked prim. If you sit on something like a couch that is already a linked set of prims, your avatar becomes an additional prim in the linked set. This is an important concept because it affects…

The bounding box
When you walk up to another avatar and get too close, you bump into them, and one or both of you moves. That’s because there is an invisible boundary around your avatar called the bounding box. This is part of the SL physics engine, enforcing the law that two bodies cannot occupy the same space at the same time. Prims, however, do not have a bounding box. That’s why you can drag your table “into” your couch, and it’ll sit there just fine.

Here’s the important part: when you sit on a prim, and become part of the linked set, you no longer have a bounding box (i.e. you’re no longer “physical” or managed by the SL physics engine). This is why it’s nearly impossible to pose two standing (i.e. physical) avatars really close to each other (like in a couple’s pose), and also why poseballs let you get two avatars as close as needed!

The light at the end of the tunnel
Let’s say you have a traditional M/F poseball set, and you want to pose a couple somewhere that you don’t have build rights, so you can’t rez your poseballs. The first step to posing them with the PoseAnywhere HUD is to figure out of the poses are Transfer/No Copy, and if they are, you’re out of luck and can stop reading here.

OK good, you bought poseballs with Copy/No Transfer permissions!

So what you can do is create two HUDs, and put the female pose in one, and the male pose in the other. How to do that is a bit beyond the scope of this writing. But now you can wear both HUDs at the same time, and pose the female with one HUD, and the male with the other. And then mutter curses because this only works so well. Why? It’s that dang bounding box again – you can’t get the two avatars close enough! And not only that, but trying to direct people to move an inch, and how to rotate just a leeeeetle to the left and …and… no, this isn’t going to work. Let’s not even talk about the fact that the female pose is probably way, way too low to match up to her guy. Too bad you can’t rez a cube for her to stand on …

The Local Move trick
This will work, but it’ll also test your patience a bit! It’s doable though, so I’m going to tell you how to do it. Actually, I’m going to let the amazing Strawberry Singh tell you how to do it, since she wrote a great blog post on the subject a while back. Heck, it’s so simple even I can do it.

So the idea here is:

  1. Create two HUDs, one with female poses, one with male poses (e.g.)
  2. Wear both HUDs
  3. Pose one person with each HUD, and select the poses you want them to be in
  4. Have them get “close enough” and then fine tune their positions on your screen only, using the Local Move trick.

Since the avatars are not physically moving in SL, their bounding boxes won’t prevent you from positioning them where ever you want them.

Hope that helps!

 

 

 

My Availability

As of March 17th, 2014, I’ve started a new day job. I previously worked at home, which gave me a lot of flexibility in terms of checking my email, answering questions, and even logging in during the daytime if needed. But my new job is much less flexible, and comes with a massive commute – meaning that there are at least 3 hours of my day that I’m utterly unavailable.

When it comes to support questions, my policy is to answer current customers before answering potential new customers. I do realize this likely means less sales for me, but I value my customers and think their needs/questions should come first.

So here’s how you can make the most effective use of your time (and mine) …

Existing Customers
If you’ll please keep these points in mind, it’ll help me offer you the best possible support:

  1. Never send me notecards. They might not get read for days.
  2. Never hesitate to send me an IM or email. I find it extremely distressing when a customer says to me “I struggled with this for soooo long, and just can’t figure it out, so I’m contacting you.” UGH, that makes me feel like dog poop. There’s no need to struggle with anything for “so long” when you can just IM me and ask! I don’t want you to come to me once you’re already frustrated, that’s no fun for either of us. I appreciate when people try to figure things out on their own, but please don’t let a question or problem fester, when I’m so totally willing to help you in any way I can.
  3. When you contact me, I need details, lots of details. If something’s not working, it doesn’t help me if you say it’s not working! I need to know what you’re seeing that makes you think it’s not working, what the symptoms are, any messages you see, etc. Please, please provide too many details in the first message, I promise you’ll save us both time!
  4. Please check the documentation. As you can imagine, I answer a lot of the same questions over and over, and that’s why I write stuff down, to save my poor fingers. The documentation for version 3 of the E2V system is found here.

Potential Customers
Thank you so much for your interest in the E2V system! I will be happy to talk to you about your business needs, and see if E2V is a good fit for your store. No one system is right for everyone, so a brief chat can help you avoid buying the wrong thing. A couple of quick notes:

  1. The features of the system are briefly mentioned on the E2V website. The full system documentation is also available here, so you can know exactly what’s involved with the system.
  2. Please read this overview page, especially if you’ve never used a scripted vendor system before!
  3. Please let me know what solution you’re currently using in your store. For example, “I’m just starting” or “I’m just using regular buy contents prims” or “I’m using system XYZ” or however you can describe your current setup. This helps me know how to best advise you in terms of conversion and setup!
  4. Please be a little patient. I will get back to you, it just might take me a day or so.

 

 

 

Buh-bye floating text

Did you know that SL prims have properties that you can’t see/edit in your viewer’s edit window? Sho’nuff, they do. For example, particle emission is a prim property. That means if a script that emits particles is placed into a prim, and then deleted, the prim will continue to emit particles.

Floating text (i.e. hover text) is another such property. Here’s a quick script that will erase floating text from any prim (as long as the prim doesn’t have scripts in it that are setting the text any more), and then delete itself. I have this in my inventory as “EraseTextOnce” and so I can quickly filter for the word “erase” and drag and drop the script from my inventory on top of any prim, and bingo, it’s done.

So, if you want to use this yourself, here’s how:

  1. Right-click in your Inventory and select New Script.
  2. Name the script whatever you’d like
  3. Double-click the script to open the script editor.
  4. Erase the contents of the default script, and replace it with the text below.
  5. Press Ctrl+S (or click the Save button)
default
{
  state_entry()
  {
    llSetText("", ZERO_VECTOR, 1.0);
    llRemoveInventory(llGetScriptName());
  }
}

Want to know when your region restarts?

Here’s a small script you can create and place into any prim on your region, and it will send you an IM every time the region finishes a restart. This can be a lot more convenient than repeatedly trying to TP home!

  1. Edit any prim and press the “New Script” button on the Content tab.
  2. Double click the script to open the script editor.
  3. Erase all the text inside the new script
  4. Copy/paste the text below into the script editor
  5. Press Ctrl+S (or the save button)
  6. Make sure that you see the text “Save complete” in the bottom of the script editor!

Here’s the script:

default
{
  changed(integer change)
  {
    if ( change & CHANGED_REGION_START )
      llInstantMessage( llGetOwner(), "Region just restarted." );
  }
}

Rolling Restarts

For most regions the standard LL rolling restarts happen on Tuesday mornings (SLT), and on Wednesday for the remaining regions. Certain configurations of the E2V system can be affected by these restarts, and this article explains those situations.

Please see this article to be sure which version of the system you have, as it makes a big difference when it comes to rolling restarts!

To understand the impact rolling restarts can have on the E2V system in your store, it’s important to first understand how your store is (or can be) configured when it comes to product delivery. The list of rules is:

  • If your vendor is using 2.9 or earlier, product is always delivered from the Inventor Server as a box.
  • If your vendor is using 2.13 or later, you have the option of product being delivered as a box from the vendor itself, or as a box from the Inventory Server.
  • If your vendor is using any version 3 script, you have the 3 options. Product is either delivered from the vendor prim as a box, from the vendor prim as a folder, or from the Inventory Server as a box.

(“Box” in this context means a single object, which might be a box, or a bag, or a duck, or whatever.)

If your store is configured to deliver product from the Inventory Server, and your Inventory Server is not on the same region as your store, then it’s possible for product delivery to be affected by a rolling restart, as the Inventory Server basically ceases to exist while that region is being restarted.

With version 2, there’s only one way to avoid delivery problems during the time the Inventory Server’s region is being restarted, and that is to Take A Copy of the server, and rez it on the store region.

For version 3 users, you have more choices.

First, you can do nothing. This is because the Delivery Relay will queue up purchases while the server is unavailable, and will then process them once the server (i.e. region) comes back online.

Second, you also put a copy of the server on the store region.

Third, you can use a backup Inventory Server. The backup server would only be used during the time that the primary Inventory Server is unreachable. Soon after the primary server region comes back online, the Delivery Relay will automatically switch back to the primary server.