But if i do that tuple[1]
and tuple[2]
will be broken.
Why do you need to use the tuple table at all?
I don’t know. But it has something to do with the Purchases.
Remove tuple completely. Replace tuple[1] with ShopType and tuple[2] with BoostType.
Okay! I will edit this post when a new result appeared. OH MY GOD HEADACHE HOPE THIS WILL BE FIXED ASAP
Only a print. That’s all.
17:19:19.850 ▶ Haste (x3) - Client - LocalGuiScript:180
Are you still getting nil
when you print the ShopType
variable?
No. I don’t. I don’t know why!
Are you doing this:
event.OnServerEvent:connect(function(player, ShopType, BoostType)
print(ShopType, BoostType)
17:42:19.002 Haste - Client - LocalGuiScript:180
17:42:19.011 Buy Haste - Server - MainScript:228
@PerilousPanther So yea only in the MainScript
it seems to print something!
Do this:
event.OnServerEvent:connect(function(player, ShopType, BoostType)
local mydata = playerdata[player.userId]
print(mydata.hashaste)
print(mydata.points)
print(ShopType, BoostType)
18:20:21.626 nil - Server - MainScript:229
18:20:21.626 427 - Server - MainScript:230
18:20:21.626 Buy Haste - Server - MainScript:231
@PerilousPanther We’re making some progress!
And you’ve done this?
event.OnServerEvent:connect(function(player, ShopType, BoostType)
if player then
if ShopType == "Buy" then
if BoostType == "100Points" then
marketservice:PromptProductPurchase(player,1169828694,false,Enum.CurrencyType.Robux)
elseif BoostType == "BloxxerChance" then
local mydata = playerdata[player.userId]
if mydata and mydata.points >= 25 then
mydata.multiplier = mydata.multiplier + 5
if mydata.multiplier == 6 then
mydata.multiplier = 5
end
awardpoints(player, -25)
local multipliervalue = player:FindFirstChild("Multiplier")
if multipliervalue then
multipliervalue.Value = mydata.multiplier
end
end
elseif BoostType == "EmeraldSword" then
local mydata = playerdata[player.userId]
if mydata and mydata.points >= 100 and mydata.emeraldsword == 0 then
mydata.emeraldsword = 1
awardpoints(player, -100)
local emeraldswordvalue = player:FindFirstChild("EmeraldSword")
if emeraldswordvalue then
emeraldswordvalue.Value = mydata.emeraldsword
end
end
elseif BoostType == "Haste" then
local mydata = playerdata[player.userId]
print(mydata.hashaste)
print(mydata.points)
print(BoostType)
if mydata and mydata.points >= 250 and mydata.hashaste == 0 then
mydata.hashaste = 1
print(mydata.hashaste)
print(mydata.points)
print(BoostType)
awardpoints(player, -250)
local hashastevalue = player:FindFirstChild("HasHaste")
if hashastevalue then
hashastevalue.Value = mydata.hashaste
end
end
end
end
end
end)
I liked so that means yes oof. So yea i did that. tuple[1] replaced with ShopType and tuple[2] replaced with BoostType
For simplicity’s sake could you change it to this and see what it prints?
event.OnServerEvent:connect(function(player, ShopType, BoostType)
if player then
local mydata = playerdata[player.userId]
if ShopType == "Buy" then
if BoostType == "Haste" then
if mydata and mydata.points >= 250 and mydata.hashaste == 0 then
mydata.hashaste = 1
print(mydata.hashaste)
print(mydata.points)
print(BoostType)
end
end
end
end
end
19:40:54.367 Haste - Client - LocalGuiScript:180
19:40:54.383 nil - Server - MainScript:230
19:40:54.383 427 - Server - MainScript:231
19:40:54.383 Buy Haste - Server - MainScript:232
@PerilousPanther Didn’t do anything…
Why would it print Buy Haste for the third print? Did you copy my script exactly?
Actually one is from the Client and one from the Server.
Yeah and the one on the server printed ‘buy haste’.