From 5ffa44b44ed1c8e61f970019fff6e54c081073ef Mon Sep 17 00:00:00 2001 From: Scatt <61865847+scattagain@users.noreply.github.com> Date: Sun, 5 Oct 2025 04:23:04 +0500 Subject: [PATCH 1/4] Create interactionrework.md --- src/en/general-proposals/interactionrework.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/en/general-proposals/interactionrework.md diff --git a/src/en/general-proposals/interactionrework.md b/src/en/general-proposals/interactionrework.md new file mode 100644 index 000000000..f16b56be3 --- /dev/null +++ b/src/en/general-proposals/interactionrework.md @@ -0,0 +1,51 @@ +# Verb-Centric Interactions + +| Designers | Coders | Implemented | GitHub Links | +|---|---|---|---| +| scattagain | scattagain | :x: No | TBD | + +## Overview + +*to prevent confusion, clicking refers to what the game calls interacting (by default, left clicking), and interacting refers to all direct actions that can be taken on an entity.* + +This proposal aims to rework entity interactions to centered around verbs. +The main premise is that activating, alt-activating, and clicking will effectively be shortcuts to verbs on that entity. + +## Background + +This came from a failed attempt at a feature I wanted in the game, a simple "interaction hints" screen element (similar to many other games) which tells the user before they do something, what your buttons do in the current context. +Soon I found out that this was unfortunately impossible due to how the game is structured, theres no real way to reliably get information like that. + +*Due to the nature of this proposal and my reasoning for it, my original feature idea will come up alot, especially in [Game Design Rationale](#game-design-rationale)* + +## Features to be changed + +Currently, alt-activating will trigger the first `AlternativeVerb` on that entity. Ideally, the same should be done with `ActivationVerb` and `InteractionVerb`. +Clicking would attempt at an `InteractionVerb`, but would fallback to an `ActivationVerb` if necessary. + +Infact, this all seems to be already outlined by the commends of both `ActivationVerb` and `InteractionVerb` +- `ActivationVerb` + > These are verbs that activate an item in the world but are independent of the currently held items. For + > example, opening a door or a GUI. These verbs should correspond to interactions that can be triggered by + > using 'E', though many of those can also be triggered by left-mouse or 'Z' if there is no other interaction. + > These verbs are collectively shown second in the context menu. +- `InteractionVerb` + > These verbs those that involve using the hands or the currently held item on some entity. These verbs usually + > correspond to interactions that can be triggered by left-clicking or using 'Z', and often depend on the + > currently held item. These verbs are collectively shown first in the context menu. + + +## Game Design Rationale + +This would, ideally, make interactions more consistent between components and entities that share the same component. + +In the case of the interaction hints, it could help dramatically in guiding new players into the controls of the game and even prove useful to more experienced players finding faster ways to do things they were previously doing with the verbs menu. +It would prevent, or at the very least lessen, accidents made by incorrect assumptions. +It would hopefully make interactions feel more fluid and predictable. + +# Technical Considerations + +Initially switching to something like this would be pretty simple, just do the same thing we've already been doing for alt-activations. +In practice many components across the whole game would need atleast some refactoring. For the most part this would *probably* just be tedious boilerplate replacing but due to the effective removal of simple interaction events, there will be alot more boilerplate for even simpler tasks. + +There needs to be considerations for multiple components with interactions. How would priority work? You cant make multiple activation events on one entity due to the changes. From 77adee4d9b3f8226e20840fe1463fd00f9561207 Mon Sep 17 00:00:00 2001 From: Scatt <61865847+scattagain@users.noreply.github.com> Date: Sun, 5 Oct 2025 05:04:02 +0500 Subject: [PATCH 2/4] More fitting place for the proposal --- .../player-interaction/proposals}/interactionrework.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/en/{general-proposals => space-station-14/player-interaction/proposals}/interactionrework.md (100%) diff --git a/src/en/general-proposals/interactionrework.md b/src/en/space-station-14/player-interaction/proposals/interactionrework.md similarity index 100% rename from src/en/general-proposals/interactionrework.md rename to src/en/space-station-14/player-interaction/proposals/interactionrework.md From c83cfa09893c4fd4683f16596ff3d27c7adf1ef9 Mon Sep 17 00:00:00 2001 From: Scatt <61865847+scattagain@users.noreply.github.com> Date: Sun, 5 Oct 2025 05:07:24 +0500 Subject: [PATCH 3/4] Update SUMMARY.md --- src/SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index ae4eab9a3..bf0fe7450 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -176,6 +176,7 @@ Space Station 14 - [Proposals]() - [PDA Messaging](en/space-station-14/player-interaction/proposals/pda-messaging.md) - [Grid Inventory](en/space-station-14/player-interaction/proposals/grid-inventory.md) + - [Verb-Centric Interactions](en/space-station-14/player-interaction/proposals/interactionrework.md) - [Roleplay/Lore](en/space-station-14/roleplay-lore.md) - [PR Guidelines](en/space-station-14/roleplay-lore/guidelines.md) From b2a6b6244528acf6add7b28580c1ab0daaf4d539 Mon Sep 17 00:00:00 2001 From: Scatt <61865847+scattagain@users.noreply.github.com> Date: Sun, 5 Oct 2025 07:30:51 +0500 Subject: [PATCH 4/4] Mentioned prediction --- .../player-interaction/proposals/interactionrework.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/en/space-station-14/player-interaction/proposals/interactionrework.md b/src/en/space-station-14/player-interaction/proposals/interactionrework.md index f16b56be3..511198264 100644 --- a/src/en/space-station-14/player-interaction/proposals/interactionrework.md +++ b/src/en/space-station-14/player-interaction/proposals/interactionrework.md @@ -23,7 +23,7 @@ Soon I found out that this was unfortunately impossible due to how the game is s Currently, alt-activating will trigger the first `AlternativeVerb` on that entity. Ideally, the same should be done with `ActivationVerb` and `InteractionVerb`. Clicking would attempt at an `InteractionVerb`, but would fallback to an `ActivationVerb` if necessary. -Infact, this all seems to be already outlined by the commends of both `ActivationVerb` and `InteractionVerb` +Infact, this all seems to be already outlined by the comments of both `ActivationVerb` and `InteractionVerb` - `ActivationVerb` > These are verbs that activate an item in the world but are independent of the currently held items. For > example, opening a door or a GUI. These verbs should correspond to interactions that can be triggered by @@ -34,7 +34,6 @@ Infact, this all seems to be already outlined by the commends of both `Activatio > correspond to interactions that can be triggered by left-clicking or using 'Z', and often depend on the > currently held item. These verbs are collectively shown first in the context menu. - ## Game Design Rationale This would, ideally, make interactions more consistent between components and entities that share the same component. @@ -45,7 +44,9 @@ It would hopefully make interactions feel more fluid and predictable. # Technical Considerations -Initially switching to something like this would be pretty simple, just do the same thing we've already been doing for alt-activations. -In practice many components across the whole game would need atleast some refactoring. For the most part this would *probably* just be tedious boilerplate replacing but due to the effective removal of simple interaction events, there will be alot more boilerplate for even simpler tasks. +Issues with "prediction"; in many cases where verbs can only be decided on the server which has to be sent over the client, causing a delay while this happens. +This is a much bigger issue than this proposal can cover (See [this comment](https://github.com/space-wizards/docs/pull/525#issuecomment-3368646645) and its links). + +Due to that and the nature of this change many systems across the whole game would need atleast some refactoring to support prediction and use verb interaction, some of which are entirely impossible (or atleast without heavy changes to its logic) such as atmos logic. -There needs to be considerations for multiple components with interactions. How would priority work? You cant make multiple activation events on one entity due to the changes. +There needs to be considerations for multiple components with interactions. You cant make multiple activation events on one entity due to the changes so some sort of priority system needs to be implemented.