aubergine18 wrote:Can't at the moment, doing a lot of dev on my own mods and need to avoid too many distractions 
 
The long text description on your mod page is breaking because you're using forums formatting (bbcode); use markdown instead - see 
viewtopic.php?f=189&t=32664 
hey thanks.... ive finished my mod and updated to 0.14.x too. 
Can you help me with a error which i cant find a solution for:
error while running eventon_build_entity (ID 6)__PlatinumEragongs_Transormator__/control.lua:68: attempt to index field 'player' (a nil value)
--[[
global.transformators <- list of transformators
transformator:
	trafo     -- the transformator itself
	producer  -- the power producing part
	consumer  -- the power consuming part
	direction -- direction when first placed
	
all local functions are prefixed with "Transformator"
	
--]]
-- Make sure our functions get called for specific events.
-- A robot built one.
script.on_event(defines.events.on_robot_built_entity, function(event) OnBuilt(event.created_entity) end)
-- A player built one.
script.on_event(defines.events.on_built_entity, function(event) OnBuilt(event.created_entity) end)
-- A player removed one.
script.on_event(defines.events.on_preplayer_mined_item, function(event) OnRemoved(event.entity) end)
-- A robot removed one.
script.on_event(defines.events.on_robot_pre_mined, function(event) OnRemoved(event.entity) end)
-- It died.
script.on_event(defines.events.on_entity_died, function(event) OnRemoved(event.entity) end)
local function TransformatorIsTransformator(entity)
	if entity.name == "transformator" then
		return true
	else
		return false
	end
end
local function TransformatorGetSourcePosition(direction)
	if direction == 0 then		return {x = 0, y = 1}   -- north
	elseif direction == 2 then	return {x = -1, y = 0}  -- ost
	elseif direction == 4 then	return {x = 0, y = -1}  -- south
	else						return {x = 1, y = 0}   -- west
	end
end
local function TransformatorGetTargetPosition(direction)
	if direction == 0 then		return {x = 0, y = -1}   -- north
	elseif direction == 2 then	return {x = 1, y = 00}  -- ost
	elseif direction == 4 then	return {x = 0, y = 1}  -- south
	else						return {x = -1, y = 0}   -- west
	end
end
function OnBuilt(entity)
      --game.createentity{name = "pole-light", position = entity.position, force = entity.force}
	if TransformatorIsTransformator(entity) then
		local struct = {trafo = entity}
		struct.direction = entity.direction
		local srcpos = TransformatorGetSourcePosition(struct.direction)
		local tarpos = TransformatorGetTargetPosition(struct.direction)
		local srcconpos = {x = srcpos.x, y = srcpos.y}
		local tarconpos = {x = tarpos.x, y = tarpos.y}
		srcconpos.x = 2 * srcconpos.x + entity.position.x
		srcconpos.y = 2 * srcconpos.y + entity.position.y
		tarconpos.x = 2 * tarconpos.x + entity.position.x
		tarconpos.y = 2 * tarconpos.y + entity.position.y
		srcpos.x = srcpos.x + entity.position.x
		srcpos.y = srcpos.y + entity.position.y
		tarpos.x = tarpos.x + entity.position.x
		tarpos.y = tarpos.y + entity.position.y
		
		local create = game.player.surface.create_entity
		local producer = create{name = "powerproducer", position =
			tarpos, force = entity.force}
		struct.producer = producer
		local consumer = create{name = "powerconsumer", position =
			srcpos, force = entity.force}
		struct.consumer = consumer
		local consumer_pole = create{name = "transformator-connection".."_src_"..entity.direction,
			position = srcconpos, force = entity.force}
		struct.consumer_pole = consumer_pole
		local producer_pole = create{name = "transformator-connection".."_tar_"..entity.direction,
			position = tarconpos, force = entity.force}
		struct.producer_pole = producer_pole
		struct.lastdraw = 0
		table.insert(global.transformators, struct)
	end
end
function OnRemoved(entity)
	if TransformatorIsTransformator(entity) then
		local found_struct
		local index
		for key, struct in pairs(global.transformators) do
			if struct.trafo == entity then
				found_struct = struct
				index = key
				break
			end
		end
		table.remove(global.transformators, index)
		found_struct.producer.destroy()
		found_struct.producer = nil
		found_struct.consumer.destroy()
		found_struct.consumer = nil
		found_struct.producer_pole.destroy()
		found_struct.producer_pole = nil
		found_struct.consumer_pole.destroy()
		found_struct.consumer_pole = nil
	end
end
script.on_init(function(event)
	if global.transformators == nil then
		global.transformators = {}
	end
end)
script.on_event(defines.events.on_player_rotated_entity, function(event)
	local entity = event.entity;
	if TransformatorIsTransformator(entity) then
		for key, struct in pairs(global.transformators) do
			if struct.trafo == entity then
				entity.direction = struct.direction
				break
			end
		end
	end
end)
script.on_event(defines.events.on_tick, function(event)
	--if (game.tick % 18 ~= 0)
	--then
	--	return
	--end
	local efficiency = 0.98 -- efficiency of 98% (realistic for grid transformers)
	local max_amount = 20 -- 360
	for key, struct in pairs(global.transformators) do
		--local newbox = {type = "water", amount = 10, temperature = 25}
		--struct.producer.fluidbox[1] = newbox
		local target_amount = 0
		if struct.producer.fluidbox[1] ~= nil then
			target_amount = struct.producer.fluidbox[1].amount
		end
		local source_energy = struct.consumer.energy -- we can take so much energy from the source
		local target_energy = (max_amount - target_amount) * 10.0 * 1e3 / efficiency -- so much more energy can be stored
		local energy_to_move
		if source_energy > target_energy then
			energy_to_move = target_energy
		else
			energy_to_move = source_energy
		end
		if struct.lastdraw == nil then
			struct.lastdraw = 0
		end
		if energy_to_move > struct.lastdraw then
			energy_to_move = energy_to_move * 0.05 + 0.95 * struct.lastdraw
		end
		--game.player.print(tostring(source_energy).." and "..tostring(target_amount))
		--energy_to_move = 0
		struct.lastdraw = energy_to_move
		if energy_to_move ~= 0 then
			local liquid_amount = energy_to_move / 10.0 / 1e3
			--if target_amount ~= 0 then
			--	game.player.print(target_amount)
			--end
			local new_amount = target_amount + liquid_amount * efficiency 
			if new_amount > max_amount then
				new_amount = max_amount -- if rounding gone wrong
			end
			struct.producer.fluidbox[1] = {type="water", amount=new_amount, temperature=25}
			struct.consumer.energy = struct.consumer.energy - energy_to_move
		end
	end
end)