MPP - Teleport Hybrid Pro Script V1.8.1 - Documentation
Teleports your visitors to another Sansar experience (an Atlas link) or to a spot in the same scene, when they click an object or walk into a trigger volume. Optional Yes/No confirmation popup, optional countdown sound, delay before the jump, and a per-visitor anti-spam cooldown with a private "please wait" message.
This script is standalone - it does not require any other MPP script to function.
New in V1.8: each visitor has their own teleport flow, so someone who leaves during the delay, or a teleport that fails, no longer blocks the teleporter for the others, and two visitors can use it at the same time. The cooldown is now per visitor, with a private "please wait" message for a click that comes too soon. In volume mode, leaving the volume and VR hands no longer trigger anything. Sound Volume 0 is silent. Warnings in the script console for a missing World URL or a wrong setup. Settings grouped by category (Activation/, Destination/, Sound/, Debug/) and a Debug Logging switch. V1.8.1 only renames a few labels. Your settings are kept when you update: see "Updating from V1.7.2".
Quick Start
- After purchase, the script is in your Inventory in Build mode. Add it to the object that will be the teleporter: a pad, a door, a portal, a sign.
- To another experience: keep
Destination/Teleport To WorldOn and paste the Atlas link of the destination inDestination/World URL(for examplehttps://atlas.sansar.com/experiences/creator-handle/experience-name). - To a spot in this scene: turn
Destination/Teleport To WorldOff and enter the landing coordinates inDestination/Local Position(read them on any object placed where visitors should land). - Write the text of the confirmation popup in
Destination/Location Name, for exampleTeleport to the Main Store?. - Build and visit: click the object, answer Yes, and you are teleported after a short delay.
That is all most teleporters need. The rest of this guide details every option.
How It Works
| Step | Settings | What happens |
|---|---|---|
| Trigger | Activation/Use Click | The visitor clicks the object (On), or walks into it (Off) |
| Check | Activation/Cooldown Seconds | A visitor who used the teleporter a moment ago waits; a visitor whose popup or delay is already running is ignored |
| Confirm | Activation/Require Confirmation, Destination/Location Name | A Yes/No popup shows the Location Name. No = nothing happens |
| Wait | Activation/Delay Seconds or the Sound/ settings | A short delay, silent or with a sound played from the object |
| Teleport | Destination/... | To the World URL, or to the Local Position facing Local Forward |
Every visitor goes through these steps on their own: the popup, the delay and the cooldown belong to that visitor only. If the visitor leaves the scene at any point, their teleport is simply cancelled.
In the Build panel the settings are grouped by category: Activation/, Destination/, Sound/ and Debug/.
Activation
Click mode (default)
Activation/Use Click On: the object highlights on hover and shows Activation/Hover Text (default "Teleport"). A click starts the flow. Leave the hover text empty for a highlight without text.
With Activation/Hover Shows Location Name On, the hover text is the Destination/Location Name instead: the visitor reads where the object leads before clicking.
Volume or contact mode
Activation/Use Click Off: no click. The flow starts when an avatar enters the object:
- If the object's collider is a trigger volume, entering it starts the flow. Leaving it does nothing.
- If the collider is a normal one, touching the object starts the flow (walking onto a pad, for example).
- VR hands and the desktop grab point are ignored: only the avatar's body counts.
- The object needs a RigidBody component. Without one, a warning is written in the script console and the teleporter cannot be triggered.
In this mode the object has no hover text, unless Hover Shows Location Name is On: the Location Name then shows on hover, but a click still does nothing.
Confirmation Popup
With Activation/Require Confirmation On (default), the visitor sees a Yes/No popup whose text is Destination/Location Name. Write the whole question there, for example Go to the beach? or Teleport to MPP-Mainstore?.
- Yes starts the delay, then the teleport. No, or a popup closed without an answer, cancels the teleport; the cooldown then starts (see below).
- A click by the same visitor while their popup is open, or during their delay, is ignored without a message.
- With
Require ConfirmationOff, the delay starts right away, without a popup. Use it for pads inside your own scene, where a wrong click costs nothing.
Delay and Sound
After the confirmation (or right after the click when there is none), the script waits before teleporting:
- Without a sound (
Sound/Play SoundOff, or no sound assigned): the wait isActivation/Delay Seconds(default 1, 0 to 30; 0 = immediate). - With a sound (
Sound/Play SoundOn and a sound inSound/Teleport Sound): the sound is played from the objectSound/Repeat Counttimes (1 to 10), one play everySound/Sound Duration Seconds(0.1 to 30), and the teleport happens when the last play ends: after Repeat Count x Sound Duration Seconds.Delay Secondsis not used. Sound/Sound Volumegoes from 0 to 200 percent (100 = the sound as recorded). At 0 the sound is silent but the timing stays the same: the teleport still waits Repeat Count x Sound Duration Seconds.
Set Sound Duration Seconds to the real length of your sound so the repeats do not overlap. A countdown beep with Repeat Count 3 and Sound Duration Seconds 1 gives three beeps and a jump at the third second.
Destination
Another experience
Destination/Teleport To World On and Destination/World URL = the Atlas link of the destination, as shown in the Sansar Atlas or the "Share" button of the experience: https://atlas.sansar.com/experiences/<creator-handle>/<experience-name>.
- The link must start with
https://orhttp://. Anything else gets a warning in the script console at start. - With an empty World URL the teleporter does nothing at all (no popup), with a warning at start.
A spot in this scene
Destination/Teleport To World Off:
Destination/Local Position= the landing coordinates in the scene, in meters. A position left at<0,0,0>(the origin of the scene) gets a warning at start: it is rarely what you want.Destination/Local Forward= the direction the avatar faces after landing, as a vector:<1,0,0>looks towards +X,<0,-1,0>towards -Y. Leave<0,0,0>to keep the avatar's current heading. The vertical part (Z) is ignored: avatars always land upright.
Tip: place a small object where visitors should land and turn it the way they should face, then copy its position into Local Position and its forward direction into Local Forward.
Cooldown (anti-spam)
Activation/Cooldown Seconds (default 2, 0 to 30) is the time a visitor must wait after using the teleporter before using it again. It counts from the end of their last use: the teleport, a No answer, or a cancelled flow. Each visitor has their own cooldown; other visitors are never blocked.
- A click during the cooldown is ignored and, with
Activation/Cooldown NoticeOn (default), the visitor receives a private message, only visible to them: by default "Please wait 2 seconds before using this teleporter again." At most one message every 3 seconds per visitor, and none when the wait is under half a second. Write your own text inActivation/Cooldown Notice Text:{time}becomes the remaining time with its unit ("2 seconds", "1 minute 5 seconds"),{seconds}the whole number of seconds. Empty text, or the notice Off, = silent. - In volume or contact mode, an entry during the cooldown is ignored without a message: the visitor simply walks through.
- With
Cooldown Secondsat 0, a silent safety of a tenth of a second remains, so a double click never teleports twice.
Editor Properties Reference (19 total)
Activation
| Property | Type | Default | Description |
|---|---|---|---|
| Activation/Use Click | bool | On | On = click on the object. Off = entering the trigger volume, or touching the object |
| Activation/Cooldown Seconds | number, 0-30 | 2 | Wait per visitor between two uses, counted from the end of the last one |
| Activation/Cooldown Notice | bool | On | Private "please wait" message for a click during the cooldown |
| Activation/Cooldown Notice Text | string | "Please wait {time} before using this teleporter again." | Text of that message; {time} and {seconds} are replaced, empty = no message |
| Activation/Require Confirmation | bool | On | Yes/No popup before the teleport |
| Activation/Delay Seconds | number, 0-30 | 1 | Delay before the teleport when no sound is played |
| Activation/Hover Text | string | "Teleport" | Hover text in click mode; empty = highlight only |
| Activation/Hover Shows Location Name | bool | Off | The hover text shows the Location Name instead |
Destination
| Property | Type | Default | Description |
|---|---|---|---|
| Destination/Teleport To World | bool | On | On = another experience (World URL). Off = a spot in this scene |
| Destination/World URL | string | "https://atlas.sansar.com/experiences/morganeparis/mpp-mainstore" | Atlas link of the destination |
| Destination/Local Position | Vector | <0,0,0> | Landing position in this scene |
| Destination/Local Forward | Vector | <0,0,0> | Facing direction after a local teleport; <0,0,0> keeps the current heading |
| Destination/Location Name | string | "Destination" | Text of the confirmation popup, and the hover text when Hover Shows Location Name is On |
Sound
| Property | Type | Default | Description |
|---|---|---|---|
| Sound/Play Sound | bool | Off | Plays the sound below before the teleport |
| Sound/Teleport Sound | SoundResource | (none) | The sound, from your inventory |
| Sound/Repeat Count | integer, 1-10 | 1 | Number of plays |
| Sound/Sound Duration Seconds | number, 0.1-30 | 1 | Time between two plays; the teleport happens Repeat Count x this value after the first play |
| Sound/Sound Volume | integer, 0-200 | 100 | Loudness in percent (0 = silent, same timing) |
Debug
| Property | Type | Default | Description |
|---|---|---|---|
| Debug/Debug Logging | bool | Off | Writes the requests (clicks and volume entries), the refusals, the popup answers and the teleports to the script console, with the avatar handle and UUID |
Version Notes
| Version | What changed |
|---|---|
| V1.4 | First release: click or trigger volume, world or local destination, Yes/No popup, sound |
| V1.5 | Anti-spam cooldown for trigger entries, delay before the teleport for the sound |
| V1.6 | Optional confirmation popup, repeated sound with its own duration |
| V1.7 | One cooldown for click and trigger, Sound Volume, hover text showing the Location Name |
| V1.7.2 | Sold until V1.8.1 |
| V1.8.0 | Per-visitor flows (no global lock), per-visitor cooldown with the "please wait" message, trigger exit and VR hands ignored, Volume 0 silent, warnings at start, settings grouped by category, Debug Logging |
| V1.8.1 (this version) | Labels only: "Teleport Sound", "Sound Volume", module "MPP - Teleport Hybrid Pro" |
Updating from V1.7.2
- Your values carry over: the 16 settings of V1.7.2 keep their internal names and their values. As with any update, take a screenshot of the Build panel first, update one teleporter and check its panel before doing the others.
- Labels: the settings now have plain names in four groups. Same settings, same values:
| V1.7.2 | V1.8.1 |
|---|---|
| UseClick | Activation/Use Click |
| CooldownSeconds | Activation/Cooldown Seconds |
| RequireConfirmation | Activation/Require Confirmation |
| TeleportDelaySec | Activation/Delay Seconds |
| ButtonLabel | Activation/Hover Text |
| ShowLocationNameInHintText | Activation/Hover Shows Location Name |
| TeleportWorld, DestinationUrl, DestinationPos, DestinationFwd, LocationName | Destination/Teleport To World, World URL, Local Position, Local Forward, Location Name |
| PlaySound, TeleportSound, SoundRepeat, SoundDurationSec, SoundLoudnessPercent | Sound/Play Sound, Teleport Sound, Repeat Count, Sound Duration Seconds, Sound Volume |
- Three new settings at their defaults:
Activation/Cooldown Notice(On),Activation/Cooldown Notice TextandDebug/Debug Logging(Off). - What behaves differently: the cooldown is now per visitor (in V1.7.2 one use blocked the teleporter for everyone), and a click during it gets the private "please wait" message (turn
Cooldown NoticeOff for the V1.7.2 silence). A visitor who leaves during the delay no longer blocks the teleporter. In volume mode, leaving the volume no longer opens a second popup after a No, and VR hands are ignored.Sound Volume0 is now really silent, with the same timing.
Recipes
A - A portal to another experience. Defaults, plus your Atlas link in Destination/World URL and the question in Destination/Location Name ("Teleport to the Main Store?").
B - A pad inside your scene, instant. Destination/Teleport To World Off, Local Position set, Activation/Require Confirmation Off, Activation/Delay Seconds 0. Click and jump.
C - A walk-in portal. Put the script on a trigger volume (a box with a RigidBody set to Trigger Volume), Activation/Use Click Off. Walking in opens the popup. Hover Shows Location Name On lets visitors read the destination on hover before stepping in.
D - A countdown before the jump. Sound/Play Sound On, a short beep in Teleport Sound, Repeat Count 3, Sound Duration Seconds 1: three beeps, then the teleport.
E - Several destinations. Copy the object as many times as you have destinations: each copy keeps its own settings.
Troubleshooting
| Symptom | Check |
|---|---|
| Nothing happens on click, not even the popup | Destination/World URL empty with Teleport To World On (warning at start)? Your own popup or delay still running? A cooldown running: with Cooldown Notice On you get the "please wait" message |
| Nothing happens when walking in | Activation/Use Click Off? The object needs a RigidBody: a trigger volume reacts when you enter it, a normal collider when you touch it. During your cooldown an entry is ignored silently |
| The teleport to the other world does nothing | The World URL must be the Atlas link (https://atlas.sansar.com/experiences/...) of a published experience you have access to. Turn Debug/Debug Logging On: "Teleporting ... to ..." shows the link used |
| I land at the wrong place or facing the wrong way | Check Local Position (meters, scene coordinates) and Local Forward (<0,0,0> keeps the heading, Z ignored) |
| No sound | Sound/Play Sound On, a sound assigned in Teleport Sound, Sound Volume above 0? The sound plays from the object: stand near it |
| The teleport waits longer than my Delay Seconds | With a sound, the wait is Repeat Count x Sound Duration Seconds, even at Volume 0. Lower them, or turn Play Sound Off |
| "Please wait" messages annoy my visitors | Lower Activation/Cooldown Seconds, or turn Activation/Cooldown Notice Off |
| Settings look different after updating the script | Only the labels changed; the values stay (see "Updating from V1.7.2") |
| I want to know what the script does | Turn Debug/Debug Logging On and open the script console: every request, refusal, popup answer and teleport is written there |
Limits
- The cooldown is per visitor: there is no way to limit the teleporter to one use per minute for everyone.
- The popup shows one line of text; keep
Location Nameshort. - The hover text is cut at 128 characters.
- Sansar may refuse a teleport when it is asked too often in the whole scene; the script then writes a warning and the visitor can try again after the cooldown.
Related MPP Items
| Item | What it adds |
|---|---|
| Teleporter Pad - Unscripted | A ready-made pad to put this script on. Store: https://www.sansar.com/store/listings/ed49b5c4-cff6-4144-b831-a0798515445b/teleporter-pad---unscripted |
| Teleportation Sound - Airplane Seatbelt Beep | A short beep for the countdown (recipe D). Store: https://www.sansar.com/store/listings/ec6e965f-311c-44e0-a32c-069d1cdc3f71/teleportation-sound---airplane-seatbelt-beep |
MPP - My Pretty Pixels. Teleport Hybrid Pro Script V1.8.1 (script MPP - Teleport Hybrid Pro). Store: https://www.sansar.com/store/listings/792acd86-6980-4995-9fb1-813aed8fc8bb/teleport-hybrid-pro-script