Skip to content

Commit 9a1e9ae

Browse files
committed
Draft proposal for @tpto IM command
1 parent 620a1a0 commit 9a1e9ae

File tree

2 files changed

+97
-1
lines changed

2 files changed

+97
-1
lines changed

Template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ Include links to any relevant discussions, previous RFCs, or documentation.
6464
6565
---
6666
67-
**(End of RFC)**
67+
**(End of RFC)**

draft/[email protected]

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Request for Comments (RFC): @tpto as an IM force command
2+
3+
**Author(s):** Kitty Barnett
4+
**Date:** 2025-02-10
5+
**Status:** Draft
6+
**Related RFCs:** n/a
7+
8+
---
9+
10+
## 1. Summary
11+
12+
This proposal extends the IM command set to include a teleport command that allows the sender to teleport the recipient to a specified location.
13+
14+
## 2. Motivation
15+
16+
We already have `@tpto:<param>=force`, which lets users force-teleport someone to a specified location on the grid. By integrating this functionality into IMs, we can streamline the process — provided the recipient has the sender on an `@accepttp` or `@tpto` exception list and teleportation to that location is allowed.
17+
18+
## 3. Specification
19+
20+
### 3.1 Command/Restriction Overview
21+
22+
- **Command/Restriction Name:** `@tpto`
23+
- **Syntax:** `@tpto <slurl|region/x/y[/z]>`
24+
- **Parameters:**
25+
1. `slurl` – A valid SLurl that specifies the destination
26+
2. `region[/x/y[/z]` – Specifies the region and coordinates (Z is optional)
27+
- **Example Usage:**
28+
29+
```@tpto Ahern/123/56/20 ```
30+
31+
### 3.2 Behavior Details
32+
When an IM containing `@tpto` is received, the recipient is teleported to the designated location—assuming the sender is listed as an `@accepttp` or `@tpto` exception.
33+
34+
- Invalid Location: If the location is invalid, the sender receives a silent system message.
35+
- Valid Location: If the teleport succeeds, a notification appears in IM history and as a toast message (see Open Questions below).
36+
- Teleport Cooldown: To prevent abuse, a cooldown will be enforced to block rapid successive teleports that could force a user offline.
37+
38+
## 4. Impact Analysis
39+
40+
### 4.1 Compatibility
41+
42+
n/a
43+
44+
### 4.2 Security and Privacy Considerations
45+
46+
- Are there potential exploits or abuse scenarios?
47+
Since `@accepttp` already allows for arbitrary teleportation (via auto-accepted offers), this addition does not introduce new vulnerabilities—even when accounting for relays.
48+
49+
- Does this affect user privacy in any way?
50+
No.
51+
52+
### 4.3 Performance Considerations
53+
54+
- Does this introduce any performance bottlenecks?
55+
No.
56+
57+
- Any expected impact on resource consumption?
58+
Minimal. The command will be throttled to prevent spam teleports.
59+
60+
## 5. Alternatives Considered
61+
62+
n/a
63+
64+
## 6. Open Questions
65+
66+
#### Who Can Initiate a Teleport?
67+
68+
Three potential approaches:
69+
70+
1. Introduce `@tpto:<uuid>=add` to maintain a dedicated exception list.
71+
2. Extend `@accepttp:<uuid>=add` to cover both auto-accepting teleports and force-teleporting via IM.
72+
3. Implement both options.
73+
74+
#### Transparency vs. Hardcore Mode
75+
By default, force-teleports triggered via IM will generate a notification in IM history, a toast, and/or a nearby chat message for transparency. However, some users—especially hardcore RLVa users—might prefer silent teleports.
76+
77+
One solution could be a hardcore RLVa debug setting that toggles notifications (queryable via `@getdebug_xxx`). This would require a separate RFC.
78+
79+
#### Maturity-Level Considerations
80+
Some users may want to block forced teleports to regions that don’t match their preferred maturity level. Should RLVa include a setting to enforce max/min maturity levels for teleports? This would also require a separate RFC.
81+
82+
#### @tpme counterpart?
83+
84+
`@accepttprequest:<uuid>=add` already automatically accepts teleport offers, but `@tpme` would result in a teleport offer being sent to the sender. In this case, and because the recipient might be unaware, there is a privacy issue so the offered teleport would not include the recipient's location (the 'Join me in...'). If desired, this would also require a separate RFC.
85+
86+
## 7. Test scenarios
87+
88+
TODO
89+
90+
## 8. References
91+
92+
This topic will be discussed at the RLVa office hour.
93+
94+
---
95+
96+
**(End of RFC)**

0 commit comments

Comments
 (0)