I wasn’t sure where to post this, because i think the collectibles issue has something to do with my code.
Anyways, so, i tried to play my game in Roblox on the actual website (not Studio), and it seemed to work pretty good. Everything ran fine, i could grab the coins and stuff, the GUI looked nice, etc. However, for mobile, it’s a completely different story. In Studio, when i play with mobile mode, everything works perfectly fine, however when i play on my phone it’s just completely broken. Here is a video for both of the issues :
Client Code :
--||Services
local Players = game:GetService("Players")
local Replicated_Storage = game:GetService("ReplicatedStorage")
--||Variables
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Hum_Root = Character:WaitForChild("HumanoidRootPart")
local Player_Gui = Player.PlayerGui
local Main_GUI = Player_Gui:WaitForChild("Main_GUI")
------------------------------------------------------------------------------
local Events_Folder = Replicated_Storage.FLDR_EVENTS
local Leader_Stats = Player:WaitForChild("leaderstats")
------------------------------------------------------------------------------
local Coins = Main_GUI.Coins
local Coins_Folder = workspace:WaitForChild("Coins")
local Coins_Display = Coins.CoinDisplay
local Coin_Event = Events_Folder.CoinEvent
local Coin_Val = Leader_Stats.Coins
------------------------------------------------------------------------------
local Crystals = Main_GUI.Crystals
local Crystals_Folder = workspace:WaitForChild("Crystals")
local Crystal_Display = Crystals.CrystalDisplay
local Crystal_Event = Events_Folder.CrystalEvent
local Crystal_Val = Leader_Stats.Crystals
------------------------------------------------------------------------------
local IBs_Folder = workspace:WaitForChild("ItemBlocks")
local IB_Event = Events_Folder.ItemBlockEvent
------------------------------------------------------------------------------
--||Function
for __, Coin in pairs(Coins_Folder:GetChildren()) do
local Sparkles = Coin.Sparkles
local Light = Coin.PointLight
local Collect = Coin.Collect
local function onTouched(Hit)
if Hit and Hit.Parent:FindFirstChild("Humanoid") then
local PlayerHit = Players:GetPlayerFromCharacter(Hit.Parent)
if PlayerHit == nil then
return
end
Coin.CanTouch = false
Coin_Event:FireServer(Coin_Val, Coin, Sparkles, Light, Collect)
end
end
Coin.Touched:Connect(onTouched)
end
------------------------------------------------------------------------------
for __, Crystal in pairs(Crystals_Folder:GetChildren()) do
local Green_Sparkles = Crystal.GreenSparkles
local Green_Glow = Crystal.GreenGlow
local Light = Crystal.PointLight
local Glow = Crystal.Glow
local Collect = Crystal.Collect
local CSnd = Crystal.CSnd
local function onTouched(Hit)
if Hit and Hit.Parent:FindFirstChild("Humanoid") then
local PlayerHit = Players:GetPlayerFromCharacter(Hit.Parent)
if PlayerHit == nil then
return
end
Crystal.CanTouch = false
Crystal_Event:FireServer(Crystal_Val, Crystal, Green_Sparkles, Green_Glow, Light, Glow, Collect, CSnd, Hum_Root)
end
end
Crystal.Touched:Connect(onTouched)
end
------------------------------------------------------------------------------
for __, Block in pairs(IBs_Folder:GetChildren()) do
local Left = Block:WaitForChild("Left")
local Right = Block:WaitForChild("Right")
local Center = Block:WaitForChild("Center")
local Hitbox = Block:WaitForChild("Hitbox")
local HitS = Hitbox.HitS
local Collect = Hitbox.Collect
local Light = Center.SpotLight
local Sparkles = Center.Sparkles
local function onTouched(Hit)
if Hit and Hit.Parent:FindFirstChild("Humanoid") then
local PlayerHit = Players:GetPlayerFromCharacter(Hit.Parent)
if PlayerHit == nil then
return
end
Hitbox.CanTouch = false
IB_Event:FireServer(Coin_Val, Block, Left, Right, Center, Hitbox, HitS, Collect, Light, Sparkles)
end
end
Hitbox.Touched:Connect(onTouched)
end
------------------------------------------------------------------------------
while true do
Coins_Display.Text = "x"..Coin_Val.Value
Crystal_Display.Text = "x"..Crystal_Val.Value
task.wait()
end
------------------------------------------------------------------------------
Server Code :
--||Services
local Players = game:GetService("Players")
local Replicated_Storage = game:GetService("ReplicatedStorage")
local Tween_Service = game:GetService("TweenService")
--||Variables
local Events_Folder = Replicated_Storage.FLDR_EVENTS
local Coins_Folder = workspace.Coins
local IBs_Folder = workspace.ItemBlocks
local Crystals_Folder = workspace.Crystals
--||Functions
------------------------------------------------------------------------------
local function onPlayerAdded(Player)
local function onCharacterAdded()
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Root = Character:WaitForChild("HumanoidRootPart")
local LeaderStats = Instance.new("Folder", Player)
Humanoid.WalkSpeed = 26
Humanoid.JumpPower = 50
LeaderStats.Name = "leaderstats"
------------------------------------------------------------------------------
local Coins = Instance.new("IntValue")
Coins.Name = "Coins"
Coins.Value = 0
Coins.Parent = LeaderStats
------------------------------------------------------------------------------
local Crystals = Instance.new("IntValue")
Crystals.Name = "Crystals"
Crystals.Value = 0
Crystals.Parent = LeaderStats
end
Player.CharacterAdded:Connect(onCharacterAdded)
end
------------------------------------------------------------------------------
local function onCoinEvent(Player, Coin_Val, Coin, Sparkles, Light, Collect)
Coin.CanTouch = false
Collect:Play()
Light:Destroy()
Sparkles.Enabled = true
Coin.Transparency = 1
Collect:Play()
Sparkles:Emit()
Coin_Val.Value = Coin_Val.Value + 1
task.wait(0.5)
Coin:Destroy()
end
------------------------------------------------------------------------------
local function onIBEvent(Player, Coin_Val, Block, Left, Right, Center, Hitbox, HitS, Collect, Light, Sparkles)
Collect:Play()
Hitbox.CanTouch = false
Sparkles.Enabled = true
Sparkles:Emit()
Light:Destroy()
HitS:Play()
Collect:Play()
Left:Destroy()
Right:Destroy()
Center.BrickColor = BrickColor.new("Dark orange")
Coin_Val.Value = Coin_Val.Value + 5
local Block_TInfo = TweenInfo.new(0.25, Enum.EasingStyle.Bounce, Enum.EasingDirection.In)
local TweenUp = Tween_Service:Create(Center, Block_TInfo, {CFrame = Center.CFrame + Vector3.new(0, 1, 0)})
local TweenDown = Tween_Service:Create(Center, Block_TInfo, {CFrame = Center.CFrame - Vector3.new(0, 0.5, 0)})
TweenUp:Play()
task.wait(0.4)
Sparkles:Destroy()
TweenDown:Play()
end
------------------------------------------------------------------------------
local function onCrystalEvent(Player, Crystal_Val, Crystal, Green_Sparkles, Green_Glow, Light, Glow, Collect, CSnd, Root)
Glow:Stop()
Collect:Play()
CSnd:Play()
Crystal.CanTouch = false
Crystal.Transparency = 1
Green_Sparkles:Destroy()
Green_Glow:Destroy()
Light:Destroy()
Crystal_Val.Value = Crystal_Val.Value + 1
local Green_Explosion = Instance.new("Part", Root)
Green_Explosion.Size = Vector3.new(.5,.5,.5)
Green_Explosion.BrickColor = BrickColor.new(0, 255, 0)
Green_Explosion.Material = Enum.Material.Neon
Green_Explosion.Shape = Enum.PartType.Ball
Green_Explosion.Position = Root.Position
Green_Explosion.Transparency = 0
Green_Explosion.CanCollide = false
local Weld = Instance.new("WeldConstraint", Green_Explosion)
Weld.Part0 = Green_Explosion
Weld.Part1 = Root
local Crystal_TI = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.In)
local TweenGE = Tween_Service:Create(Green_Explosion, Crystal_TI, {Size = Vector3.new(6, 6, 6), Transparency = 1})
TweenGE:Play()
task.wait(.5)
Green_Explosion:Destroy()
end
------------------------------------------------------------------------------
--||Connections
Players.PlayerAdded:Connect(onPlayerAdded)
Events_Folder.CoinEvent.OnServerEvent:Connect(onCoinEvent)
Events_Folder.ItemBlockEvent.OnServerEvent:Connect(onIBEvent)
Events_Folder.CrystalEvent.OnServerEvent:Connect(onCrystalEvent)