You can write your topic however you want, but you need to answer these questions:
What do you want to achieve? Keep it simple and clear!
I want to make a dialog for my guide npc wich says anything i put in the script…
What is the issue? Include screenshots / videos if possible!
So like in the textlabel i did put nothing as the text value, and i made a script that fils in the value if the ScreenGui is enabled, but it won’t change the text when i launch the game…
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
I did look for solutions but nothing , iremade the script but nothing, so i need help…
After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!
local DialogText = script.Parent
if script.Parent.Parent.Parent.Enabled == true then
wait(0.1)
DialogText.Text = "Hello, my name is Bob! Im your guide fro today (not really), have you got question?"
wait(5)
DialogText.Text = "I guess not..."
wait(3)
DialogText.Text = "In this map you can play obbies and tower defense mini-games!"
wait(4)
DialogText.Text = "This map was created for events that are held by ADB, currently the vent is for NTD!"
wait(5)
DialogText.Text = "On my left there is the Tower Defense game, on my right is the obbies with multiple themes!"
wait(5)
DialogText.Text = "Now, you can go play with friends, bye bye!"
wait(3)
script.Parent.Parent.Parent.Enabled = false
end
local chat = game:GetService("Chat")
local npc = workspace.npc -- or something
chat:Chat(npc,"Hello, my name is Bob! Im your guide fro today (not really), have you got question?","Blue")
wait(5)
-- repeat
local chat = game:GetService("Chat")
local npc = workspace.npc -- Replace with NPC, or whatever
local part = workspace.Part -- Replace with your part
local function DialogueSequnce()
chat:Chat(npc,"Hello, my name is Bob! Im your guide fro today (not really), have you got question?","Blue")
-- Do other stuff
end
part.Touched:connect(DialogueSequnce)
This just tells when the part variable is touched, it then triggers the DialogueSequence function, which does the dialogue
okay, this won’t change much, but can you PLEASE do something like this?
local function ChangeDialogueText(textToDisplay: string)
DialogText.Text = textToDisplay -- if DialogText is defined above the function
-- you can just reference to it, if it's not defined, you can pass it as a parameter
end
task.wait(x)
ChangeDialogueText("Your text here")
also, i think the reason it doesn’t work is because:
this will run once when the client loads in, and since the screenGui (assuming that’s the finishing parent) is not enabled, it will ignore that check and never rerun again
a simple fix (Because i cannot be bothered to do anything bigger than that) would be to do something like this:
if not pathToScreenGui.Enabled then
repeat task.wait() until pathToScreenGui.Enabled
end
Make a remote event inside replicated storage called NPC
Server Script In ServerScriptService:
local part = workspace.Part -- Replace part with the part that you need to fire the function
part.Touched:Connect(function(hit)
if game.Players:GetPlayerFromCharacter(hit.Parent) then
game.ReplicatedStorage.NPC:FireClient(game.Players:GetPlayerFromCharacter(hit.Parent))
end
end)
Local Script in StarterPlayerScripts:
local NPC = workspace.NPC -- Replace NPC with the NPC's Head
local chat = game:GetService("Chat")
game.ReplicatedStorage.NPC.OnClientEvent:Connect(function()
chat:Chat(NPC,"Hello, my name is Bob! Im your guide fro today (not really), have you got a question?","Blue")
wait(5)
chat:Chat(NPC,"I guess not...","Blue")
wait(3)
chat:Chat(NPC,"In this map, you can play obbies and tower defense mini games! ","Blue")
wait(4)
chat:Chat(NPC,"This map was created for events that are held by ADB, currently the vent is for NTD!","Blue")
wait(5)
chat:Chat(NPC,"On my left there is the Tower Defense game, on my right is the obbies with multiple themes!","Blue")
wait(5)
chat:Chat(NPC,"Now, you can go play with friends, bye bye!","Blue")
end)