Result saying nil in my script

Hello, i want to create a simple math game but the result is printing nil and i want to solve that.

my local script

local isRecipe = false
local module = require(game.ReplicatedStorage.RecipeModule)
local correctResult = nil


if isRecipe == false then
	module.createRecipe(game.Players.LocalPlayer)
end

script.Parent.Result.InputEnded:Connect(function()
	if script.Parent.Result.Text == tostring(correctResult) then
		module.createRecipe(game.Players.LocalPlayer)
	end
end)

game.ReplicatedStorage.TransferRecipe.OnClientEvent:Connect(function(player, number1, number2, mathSign, result)
	script.Parent.Number1.Text = tostring(number1)
	script.Parent.Number2.Text = tostring(number2)
	script.Parent.Sign.Text = mathSign
	correctResult = result
end)

server one

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player, number1, number2, mathSign, result)
    game.ReplicatedStorage.TransferRecipe:FireClient(player, number1, number2, mathSign, result)
end)

and the module

local module = {}

function module.createRecipe(player)
	local number1 = math.random(0, 100)
	local number2 = math.random(0, 100)
	local sign = math.random(1, 4)
	local mathSign = nil
	local result = nil

	if sign ~= nil then
		if sign == 1 then
			mathSign = "-"
			result = number1 - number2
			print(number1.. mathSign.. number2.. "=".. result)
		elseif sign == 2 then
			mathSign = "+"
			result = number1 + number2
			print(number1.. mathSign.. number2.. "=".. result)
		elseif sign == 3 then
			mathSign = "/"
			result = math.round(number1 / number2)
			print(number1.. mathSign.. number2.. "=".. result)
		elseif sign == 4 then
			mathSign = "*"
			result = number1 * number2
			print(number1.. mathSign.. number2.. "=".. result)
		else	
			error("Unknown error!")
		end
	end
	
	game.ReplicatedStorage.RemoteEvent:FireServer(player, number1, number2, mathSign, result)
end

return module

could someone help with that?

This is probably due to sending the player along with :FireServer(). There is no need to send the player here since this is a function inside the module which is being ran by a client script, removing the player in game.ReplicatedStorage.RemoteEvent:FireServer(player, number1, number2, mathSign, result) should fix your issue.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.