you can always use your own position as a reference.
you are stand still, your position second ibot variables is : (posx,posy,posz)
The X axis raises for the right >>>>
The Y axis raises for the south \/
so if you want it to trow the field on your northeast diagonal for example
you can use:
useitemon("energy wall rune", posx+1,posy-1,posz)
The other thing to detect if there is already a field on the floor is using toptileitem(x,y,z)
OBS: you can get the field ID via HUDS or using print(toptileitem(x,y,z))
local Rune = "energy wall rune"
local energyID = xxxx
if toptileitem(x,y,z) ~= energyID then