In my game, I have spells that you type in the chat. It works fine for PC/Laptop players, but the chat isn’t being detected for players on mobile.
I am using the legacy chat system, NOT the new one.
my script:
local spell = false
local sendNotif = false
player.Chatted:Connect(function(msg)
if string.lower(msg) == "ignis" then
spell = true
sendNotif = true
loadedSpell.Value = "Ignis"
end
end)
the issue is with the loadedSpell.Value = "Ignis" line. The loaded spell value does not change when a mobile user says the spell, but it does for PC players.
i added a print(msg) to the script after the loadedSpell.Value line and it prints when on pc and when on mobile, and the loadedSpell.Value changes now, but the spell won’t actually cast.
after the chat function, i have a UserInputService detection that detects MouseButton1Click or Touch input, and it works fine for the pc, but again an issue with mobile. It will not cast at all on mobile.
script:
UIS.InputBegan:Connect(function(Key, gameProcessed)
if gameProcessed then return end
if Key.UserInputType == Enum.UserInputType.MouseButton1 and spell == true and player.Character.Ragdoll.Value == false and not player.Character.Humanoid.PlatformStand and player.Character.Humanoid.Health > 0 and player:FindFirstChild("Concilium") or Key == Enum.UserInputType.Touch and spell == true and player.Character.Ragdoll.Value == false and not player.Character.Humanoid.PlatformStand and player.Character.Humanoid.Health > 0 and player:FindFirstChild("Concilium") then
PlrNotificationHandler.NewWarning("Invisibilis is on cooldown for "..Cooldown.." seconds.", 5.5)
loadedSpell.Value = "None"
print("sent cooldown notif")
sendNotif = false
spell = false
loadedSpell.Value = "None"
end
end)
im not sure if the way i’m doing it for mobile is the issue or if its just something else causing it, but
on pc: the loadedSpell.Value gets set to “None”
on mobile: the loadedSpell.Value stays as the spell and does not change
If I remember correctly, Enum.UserInputType.MouseButton1 will only run for users with a mouse if using UserInput service. Try adding Enum.UserInputType.Touch to your if statement and tell me if that fixes your result.