Shared variables?

i am sure that the answers in front of my eyes, but currently I am mostly messing around and trying to learn lua independently. I am attempting to have one script set a value for a variable, take “x” for an example, at a specific point. Then, another script, would test to see if “x” is a particular example. Again, take “1” for an example. I attempted to do so using local name,addon=…; and addon.myvar = “true” but am recieving the error “attempt to index upvalue ‘addon’ (a nil value)”. How could I resolve that, and accomplish my goal?

If further clarification is required: In this particular example I am having them put an object into another object, and testing to see if the second object has the third object in it via another script

Code for the first script:


AddCSLuaFile("shared.lua")

include("shared.lua")


function ENT:Initialize()
	self:SetModel( "models/props_interiors/pot02a.mdl" )
	self:PhysicsInit( SOLID_VPHYSICS )
	self:SetMoveType( MOVETYPE_VPHYSICS )
	self:SetSolid( SOLID_VPHYSICS )
	self.isRunning = false
		local phys = self:GetPhysicsObject()
		
	if (phys:IsValid()) then


		phys:Wake()

	end

	self.isBaking = false
	self.finishBakeTime = 0

end

function ENT:StartTouch(ent)
	if ent:GetClass() == "dough" and self.isBaking == false then
		self.isBaking = true
		ent:Remove()
	
		--self.finishBakeTime = CurTime() + 0

		--else if ent:GetClass() == "bread" and self.isBaking == true then
			--ent:Remove()
		--end
	end
end



function ENT:Think()
	if self.isBaking == true then
		self:SetColor(Color(255,0,0))
		local name,addon=...
		addon.myvar = "true"
	else
		self:SetColor(Color(0,0,255))
	end


	--if self.isBaking == true then
		--if self.finishBakeTime <= CurTime() then
			--Done!
			--self.isBaking = false

			--local bread = ents.Create("bread")
			--bread:SetPos(self:GetPos() + Vector(0, 25, 0))
			--bread:Spawn()
		--end
	--end
end



Code for second script, where I wish to access a variable in the first script:


AddCSLuaFile("shared.lua")

include("shared.lua")

local name,addon=...;

function ENT:Initialize()
	self:SetModel( "models/props_c17/furnitureStove001a.mdl" )
	self:PhysicsInit( SOLID_VPHYSICS )
	self:SetMoveType( MOVETYPE_VPHYSICS )
	self:SetSolid( SOLID_VPHYSICS )
	self.isRunning = false
		local phys = self:GetPhysicsObject()
		
	if (phys:IsValid()) then


		phys:Wake()

	end

	self.isActive = false
	self.finishActiveTime = 0

end

function ENT:StartTouch(ent)
	if ent:GetClass() == "cooker" and addon.myvar == "true" then
		self.isActive = true
		ent:Remove()
	
		self.finishActiveTime = CurTime() + 10

		--else if ent:GetClass() == "bread" and self.isBaking == true then
			--ent:Remove()
		--end
	end
end

function ENT:Think()
	if self.isActive == true then
		self:SetColor(Color(255,0,0))
	else
		self:SetColor(Color(0,0,255))
	end

	if self.isActive == true then
		if self.finishActiveTime <= CurTime() then
			--Done!
			self.isActive = false

			local bread = ents.Create("bread")
			bread:SetPos(self:GetPos() + Vector(0, 25, 0))
			bread:Spawn()



		end
	end
end



You can’t access locals from other files, and …; is not valid notation. What do you want the variables of name and addon to be?

In script 2, I want to make sure that when the player is putting the pot into the stove, the player placed dough into the pot. The first script includes the information about the player placing the dough into the pot, I want the second one to use that information.