Skip to content

Conversation

@XeonMations
Copy link
Collaborator

@XeonMations XeonMations commented Jan 23, 2026

@FalloutFalcon
Copy link
Member

Allows for a lot of believable soft-DMing

From the porting pr.. I've never seen this before, would def like wider feedback from others.
I feel a little warry of it as while we are certainly can lean more MUD then alot of ss13 servers we do at-least in apoc distinctly have admins that actually serve as DMs in the same way most ss13 game masters tend to already do. (I see admins local-narrating ALOT here) I wonder if this steps on the toes on the "authority" we give players vs admins to dictate the canon of a situation if you understand what I mean?

@XeonMations
Copy link
Collaborator Author

Allows for a lot of believable soft-DMing

From the porting pr.. I've never seen this before, would def like wider feedback from others. I feel a little warry of it as while we are certainly can lean more MUD then alot of ss13 servers we do at-least in apoc distinctly have admins that actually serve as DMs in the same way most ss13 game masters tend to already do. (I see admins local-narrating ALOT here) I wonder if this steps on the toes on the "authority" we give players vs admins to dictate the canon of a situation if you understand what I mean?

It's essentially the same thing as /me emotes, just formatted differently IMO.

@XeonMations XeonMations changed the title Do commands Do commands and subtle + subtler Jan 23, 2026
@XeonMations XeonMations marked this pull request as ready for review January 23, 2026 20:20
@XeonMations XeonMations requested a review from a team as a code owner January 23, 2026 20:20
Copy link
Member

@FalloutFalcon FalloutFalcon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Modular edit comments should really be using the actual module ID

Small note, even on old code, it felt weird having 3 seperate methods of interfacing (for emotes specificly) in a private scene. Subtle is a req as it was in the old code but i worry tossing another verb into the mix. It feels like all of them could do with more unifying of behavior to make everything feel more cohesive.

also try and make sure subtle activates the typing indicator.


## \<DO EMOTES>

Module ID: DO EMOTES
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont think these should have spaces.

Suggested change
Module ID: DO EMOTES
Module ID: DO_EMOTES

Comment on lines +14 to +15
/datum/config_entry/flag/play_subtler_sound
default = TRUE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this a config? This is entirely a player pref thing Idk why a server host would ever adjust this.

Comment on lines +17 to +21
/datum/preference/toggle/subtler_sound
savefile_key = "subtler_sound"
savefile_identifier = PREFERENCE_PLAYER
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
default_value = TRUE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really within the scope of this pr but this should just be replaced with all our chat messages making sounds (as they do in tfn and apoc)

Comment on lines +8 to +12
/datum/emote/living/subtle
key = "subtle"
key_third_person = "subtle"
message = null
mob_type_blacklist_typecache = list(/mob/living/brain)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Im a bit confused of the value we get out of this being an emote when we override almost all the emote code, and every player that im aware of only interfaces with it via the verb. /datum/emote/living/custom seems to be how me emotes work tho so I guess its valid.

Comment on lines +1 to +11
/mob/verb/do_verb(message as message)
set name = "Do"
set category = "IC"
set instant = TRUE

if(GLOB.say_disabled)
to_chat(src, span_danger("Speech is currently admin-disabled."))
return

if(message)
QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, TYPE_VERB_REF(/mob/living, do_actual_verb), message), SSspeech_controller)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do is pretty detached from alot of me code and will definitly function a bit diffrnet because of it.,
me emotes have is_banned_from(user.ckey, "Emote")) and user.client.prefs.muted & MUTE_IC and this also seems to bypass word filters.

Comment on lines +63 to +65
for(var/mob/ghost as anything in GLOB.dead_mob_list)
if((ghost.client?.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(ghost in viewers))
to_chat(ghost, "[FOLLOW_LINK(ghost, user)] [subtle_message]")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

go look at /datum/emote/proc/run_emote
in there it makes sure to filter for isnewplayer which seems to be missing here.


subtle_message = span_subtle("<b>[user]</b>[space]<i>[user.apply_message_emphasis(subtle_message)]</i>")

var/list/viewers = get_hearers_in_view(SUBTLE_ONE_TILE, user)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consider this so that emoting in cars work? I cant think of any negative effects...

Suggested change
var/list/viewers = get_hearers_in_view(SUBTLE_ONE_TILE, user)
var/list/viewers = get_hearers_in_view(SUBTLE_ONE_TILE, get_turf(user))

if(!subtler_emote)
return FALSE

var/list/in_view = get_hearers_in_view(subtler_range, user)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Suggested change
var/list/in_view = get_hearers_in_view(subtler_range, user)
var/list/in_view = get_hearers_in_view(subtler_range, get_turf(user)))

Comment on lines +153 to +154
var/datum/preferences/prefs = target_mob.client?.prefs
if(prefs && prefs.read_preference(/datum/preference/toggle/subtler_sound))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto for all instances? unless this feels too messy?

Suggested change
var/datum/preferences/prefs = target_mob.client?.prefs
if(prefs && prefs.read_preference(/datum/preference/toggle/subtler_sound))
if(target_mob.client?.prefs?.read_preference(/datum/preference/toggle/subtler_sound))

Comment on lines +130 to +135
{ // DARKPACK EDIT ADDITION START
type: MESSAGE_TYPE_SUBTLE,
name: 'Subtle',
description: 'Subtle and Subtler actions.',
selector: '.subtle, .subtler',
}, // DARKPACK EDIT ADDITION END
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the fact that basic mobs no longer spam the shit out of ghost ears. These feel like they could be lumped in with emotes without issue. Just a thought.

@Latentish
Copy link
Collaborator

If I'm honest, I don't see us using this on Apocrypha. It has implications of players using these to describe their environs instead of themselves. Me's mostly cover the RP based usecases for this, as it doesn't force your text into quotation marks but still denotes the post as being from or belonging to a specific character. If anything, I'd just like to make sure this verb is mutable on downstreams if it's included on Dark Pack.

@FalloutFalcon
Copy link
Member

I saw someone complaining subtler is only 1k characters? forget where.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants