Also forgot to post this, an example on how to utilize the AWS_MouseEvent.
function fxDTSBrick::getBrowserPos(%this, %location) {
	%vec = vectorSub(%location, %this.getTransform());
	return ((getWord(%vec, (%this.angleID&1) ? 0:1) * ((%this.angleID>>1) ? "-1":1) )+ 4)/8*1024 SPC 768-(getWord(%vec, 2)+3)/6*768;
}
package browserSupport {
	function GameConnection::browserSupport(%this) {
		cancel(%this.bs);
		if(isObject(%player=%this.player)) {
			%ray = containerRaycast(%player.getEyePoint(), vectorAdd(vectorScale(%player.getEyeVector(), 30), %player.getEyePoint()), $TypeMasks::FxBrickObjectType, "");
			if(isObject(%ray) && %ray.getDatablock().printAspectRatio $= "Screen") {
				%playero = %ray.getBrowserPos(posFromRaycast(%ray));
				bottomPrint(%this, "\c6" @ %playero, 3);
				commandToClient(%this, 'AWS_MouseEvent', getWord(%playero, 0) | 0, getWord(%playero, 1) | 0, 4);
			}
		}
		%this.bs = %this.schedule(100, browserSupport);
	}
	function Player::activateStuff(%player) { 
		if(isObject(%client = %player.client)) {
			%ray = containerRaycast(%player.getEyePoint(), vectorAdd(vectorScale(%player.getEyeVector(), 30), %player.getEyePoint()), $TypeMasks::FxBrickObjectType, "");
			if(isObject(%ray) && %ray.getDatablock().printAspectRatio $= "Screen") {
				%playero = %ray.getBrowserPos(posFromRaycast(%ray));
				commandToClient(%client, 'AWS_MouseEvent', getWord(%playero, 0) | 0, getWord(%playero, 1) | 0, 0);
			}
		}
		return Parent::activateStuff(%player);
	}
};
activatePackage("browserSupport");