So i'm making an NPC that you speak to in order to spawn a ship and have been having a large number of issues with it. This is my current set up
local Chat = script.Parent
local ChatContainer = Chat.DialogContainer
local Information = Chat.Information
local DataHolder = game.ReplicatedStorage.DataFolder
local ShipToSpawn = nil
script.Parent.DialogChoiceSelected:connect(function(Player, Choice)
local Data = DataHolder:FindFirstChild(Player.Name.."Data")
--[[
When you hit Request Purchase, it'll move in the available options into Dialog1 so that it's change-able via moving stuff in the folers and not
touching the script for quicker changes later on.
--]]
if Choice == Chat.RequestPurchase then
-- Move the buy options into the dialog
Information.SpawnButtons.RemoteEvent:FireClient(Chat)
else
-- The Choice was something else.
local ShipName = false
local NameCheck = ""
for Num, Check in pairs(ChatContainer:GetChildren()) do
if Choice.Name == Check.Name then
ShipName = true
NameCheck = Check.Name
ShipToSpawn = Information.ShipHolder.Value[Check.Name]
if Data.Berry.Value >= Information[NameCheck.."_Price"].Value then
Data.Berry.Value = Data.Berry.Value - Information[NameCheck.."_Price"].Value
Information.SpawnShip.Ship.Value = ShipToSpawn
Information.SpawnShip.RemoteEvent:FireServer()
else
-- You broke.
end
end
end
end
end)
My issue lies in where I run
Information.SpawnButtons.RemoteEvent:FireClient(Chat)
It's for another ServerScript I have with this code
function SpawnButtons()
local ChatContainer = script.Parent.Parent.DialogContainer
local Information = script.Parent.Parent.Information
local Chat = script.Parent.Parent
for Num, Obj in pairs(ChatContainer:GetChildren()) do
if Chat.RequestPurchase.Dialog1:FindFirstChild(Obj.Name) then
game.Debris:AddItem(Chat.RequestPurchase.Dialog1[Obj.Name],0)
end
local FindPrice = Information[Obj.Name.."_Price"]
local CloneDialog = Obj:clone()
CloneDialog.UserDialog = Obj.Name..": "..FindPrice.Value
CloneDialog.Parent = Chat.RequestPurchase.Dialog1
end
end
script.RemoteEvent.OnClientEvent:connect(SpawnButtons)
and yes before you say something about it being OnClientEvent, I've tried it with both client and server. This is just what it was left at when I was messing with it
I've been messing with this all day trying to get it. I have filtering enabled on and I don't have too much experience with it.
The end goal for this script is for when you speak to the NPC, it'll input the DialogChoices into the conversation based on what's in a folder so I don't need to alter the script at all later on and can just add to a folder. Then spawn the ship that you select.
Currently it stops too early.

1 comment
So you're trying to use :FireClient() onto a server script? :FireClient() only works when you're trying to fire that onto a localscript.