if hasInterface then
	{
		uiNamespace setVariable ["VEMFrMsgQueue", []];
		uiNamespace setVariable ["RscDisplayVEMFrClient", displayNull];
		// custom addPublicVariableEventHandler. Those bloody BE filters.....
		if isMultiplayer then
			{
				_handleMessage =
					{
						_data = _this;
						_msg = param [0, "", [[],format[""]]];
						_mode = param [1, "", [""]];
						if (_mode isEqualTo "sys") then
							{
								systemChat _msg;
							} else
							{
								(uiNamespace getVariable ["VEMFrMsgQueue", []]) pushBack _msg;
								if isNull(uiNamespace getVariable ["RscDisplayVEMFrClient", displayNull]) then
									{
										(["RscDisplayVEMFrClient"] call BIS_fnc_rscLayer) cutRsc["RscDisplayVEMFrClient", "PLAIN", 0, true]
									};
							};
					};
				while {true} do
					{
						if not isNil"VEMFrMsgToClient" then
							{
								VEMFrMsgToClient spawn _handleMessage;
								VEMFrMsgToClient = nil;
							} else
							{
								uiSleep 0.05;
							};
					};
			} else
			{
				_arr = uiNamespace getVariable ["VEMFrMsgQueue",[]];
				_arr pushBack [0,"NEW TAKEOVER","Raiders have taken over ..."];
				_arr pushBack [1,"NEW POLICE RAID", format["%1 Police forces are raiding ...", worldName]];
				_arr pushBack [2,"NEW S.W.A.T. RAID", format["%1's S.W.A.T. teams are raiding ...", worldName]];
				waitUntil { if not(isNull(findDisplay 46)) then {true} else {uiSleep 0.5; false} };
				player addAction ["Trigger VEMFr Message",{(["RscDisplayVEMFrClient"] call BIS_fnc_rscLayer) cutRsc["RscDisplayVEMFrClient", "PLAIN", 0, true]},"",-1,false,true,"User2","alive player"];
			};
	};
