private ["_block","_hlevel","_humanity","_level","_name","_spawn"];
disableSerialization;

_block = false;
_spawn = [];

_name = lbText [8888,(lbCurSel 8888)];
{
	if (_name == (_x select 0)) then {
		_spawn = _x;
	};
} forEach spawn_public;

if (_name == (localize "STR_ESS_GROUP")) then {_spawn = [0,[],0,0];};
if (_name == (localize "STR_ESS_PLOT")) then {_spawn = [0,[1],0,0];};

if (count _spawn == 0) exitWith {
	systemChat localize "STR_ESS_NOTHING_SELECTED";
};

if (count _spawn > 2) then {
	_level = _spawn select 2;
	_hlevel = _spawn select 3;
	_humanity = player getVariable ["humanity",0];
	
	_block = switch true do {
		case (_hlevel < 0 && _humanity >= _hlevel): {systemChat format[localize "STR_ESS_HUMANITY_TOO_HIGH",_hlevel]; true};
		case (_hlevel > 0 && _humanity <= _hlevel): {systemChat format[localize "STR_ESS_HUMANITY_TOO_LOW",_hlevel]; true};
		case (_level > 0 && !(_level in spawn_levels)): {systemChat format[localize "STR_ESS_NEED_SVIP",_level]; true};
		default {false};
	};
};

if (!_block) then {
	spawn_choice = _spawn;
};