CasperVend 2/Event Vendor Script

From CasperTech Wiki
Jump to navigation Jump to search

Schaue hier in Deutsch!

How To Use The Event Script

  1. Set up your vendor(s) with the regular vendor script on your "home" sim/region.
  2. Edit the vendor
  3. Click to the Contents tab
  4. Delete the "CasperVend2" script from the contents
  5. Drag the CasperVend2 Event Vendor replacement script from your inventory, into the contents of the vendor.
  6. Once the vendor reboots, grant debit perms.
  7. Pick up your newly modified event vendors, and rez them on the event sim/region.
  8. MAKE SURE you continue have regular vendors rezzed elsewhere in Second Life, on a quieter sim/region. The more the merrier.
  9. You CAN make changes to a vendor using the event script, you just have to click the vendor in-world, get the popup menu, and choose "Reset" for it to pick up the changes.

Caveats & Limitations


  1. You must have at least one normal vendor rezzed elsewhere, on a non-overloaded region - and ideally lots more. If you don't, your transactions will stall and fail!
  2. If you make a change to the configuration on the website, the vendor will not automatically update. You have to touch it inworld and choose Reset to get it to pull the latest config.
  3. License notecards will be delivered, but we can't wait for them to be accepted - the transaction will just go through regardless.
  4. Same for gift deliveries - we can't wait for the customer to confirm their gift selection, it just goes through as a direct gift.
  5. The vendor won't automatically reload if the linkset changes. So if you link the vendor to something, be sure to touch -> reset.
  6. The event vendor script is no-transfer, because it can't be used in affiliate vendors - it can't transfer money

All these features depend on the website being able to communicate with the vendor (HTTP-IN), which is why they are not fully available with the Event Vendor replacement script.

Profit sharing DOES work.

Cleaning Up Your Event Vendors

Because there are no incoming communications, event vendors will NEVER respond to a website scan - this also means you are unable to delete an inworld vendor via the website either. You can delete them from the website one-by-one, but this will not delete the vendor in-world.

You MUST remember to clean up your event vendors from an event before the sim goes away (either by click > menu > delete OR edit > delete > then run a bee on "Check All") otherwise you will be unable to later.

Background - Why Is There An Event Script?

CasperVend2 is a very efficient vendor system, and as such has always been in popular use at events, many of which consisted of packed sims of 60+ avatars. Recently, though, there have been two reported instances of CasperVend vendors not working well at two particular events - Collabor88 and Uber.

While it has been very hard to diagnose these issues (none of our team have been able to gain access to the regions while the vendors were malfunctioning), we were able to get hold of some data from our side which has helped us identify the cause.

So, what's the problem?


It appears that the issue lies with the "HTTP-IN" function.

CasperVend is a very sophisticated system, which depends on complex algorithms and processes running on our servers. This is because there is simply not enough script space in the vendor itself to perform all the extensive functionality that CasperVend provides.

As part of this process, the server needs to "dial in" to the sim/region, in order to reach the vendor - this is done to send notifications, confirm option choices and license agreements, or make affiliate payments. Unfortunately, it seems that once region load gets beyond a certain point, HTTP-IN just completely falls apart and can no longer be used, with every request failing with a message like so:

  <lsl>   Proxy Error
  
  The proxy server received an invalid response from an upstream server.
  The proxy server could not handle the request POST http://10.9.4.70:13020/web/task/8f493d26-de0b-19f1-74c6-5d199f02a8df/script/b48999ce-5e27-5fe8-0c22-e0c03b34babc/http.
  Reason: Error reading from remote server</lsl>

Once such an error has been encountered, the system automatically tries to "self-heal". This causes the vendor to reset and re-establish itself in the network. Unfortunately, in such a broken region, the vendor will take a long time to get back online.

I can't stress enough that this is an issue with Second Life and the Lab's architecture (notice the internal IP address; 10.9.4.70 is a machine on LL's internal network), and NOT a problem with CasperVend or our servers.

Why has this never been addressed before 2015?


Quite frankly, it's never been an issue before. CasperVend has been used in huge events for many years, and while it's experienced some lag, there have never been such wide-scale issues before the summer of 2015.

Our best bet is that something has changed recently in the LL server-side code which makes HTTP-IN more vulnerable to lag.

The CasperVend2 Event Vendor replacement script


We've now released a special "Event Vendor" replacement script.

This is a special version of the vendor which has all inbound communications ripped out and disabled. This means it's reliable enough to function in heavily overloaded/broken regions.