Why doesn't this work?

The module script is required for this. I don’t fully understand why, but I know because when I transfer the script to a regular script it gives me errors.

also, what I’m doing is I’m changing a string value in replicated storage to the local player that presses e. that string value then gets sent to the module script, which reads out the string, and then the table gets sent back to the local script and it reads out “hello (playername).” The problem is, it gives me an error saying “attempted to use string value” in my module script. Go look at the first post, that’s my module script.

Not at all

When you want the player name simply use game.Players.LocalPlayer.Name from a local script

check out this video. This is what I used.

for the specific thing the guy is doing, module script is required. trust me, everything else works except the fact that it doesn’t let me reference a string value.

2 Likes

You don’t really need a module script for this either, this youtube video you sent is one of the toughest way to achieve this, I do stuff like this daily, trust me you don’t need a module script, you just need to know about attributes and variables and constants, then I can help you because its hard for you to understand without knowing them

well it’s not about wether I have a module script or not. Sure he did it a fancy way, but I studied module scripts and I completely understand why he chose to do that. Just for extra organization. But anyways, the fact that I have a module script is irrelevant, because if I just put “hello” instead of "hello “…game.ReplicatedStorage.PlayerName.Value” ", the dialog would work perfectly.

that was an example of how to put a function in a table