Electus LogoElectus Documentation

Electus Heists Available Files

Browse the Electus Heists source files and configuration by folder.

config/config.lua
Config.Framework = "auto"
Config.Inventory = "auto"
Config.InventoryPath = "nui://ox_inventory/web/images/"
Config.Locale = "en"

Config.DebugSettings = {
	enabled = false, -- master switch for every debug type
	general = false, -- uncategorized debugprint(...) calls
	callbacks = false,
	framework = false,
	netIds = false,
	polyzones = false,
	scenes = false,
	targets = false,
}
Config.Debug = Config.DebugSettings.enabled

Config.TargetSystem = "qtarget" -- qtarget, ox_target, qb-target

Config.KeyActions = { -- if you change KeyActions the Key must also be avaliable in Keys table.
	drillForward = "W",
	drillBackward = "S",
	drillSlow = "Q",
	drillFast = "E",
	drillCancel = "G",
	cancel = "BACKSPACE",
	dropCarry = "X",
	createDoor = "E",
	selectNewEntity = "E",
	confirmEntities = "ENTER",
	confirm = "E",
	up = "UP",
	down = "DOWN",
	left = "LEFT",
	right = "RIGHT",
	leftMouse = "LEFTMOUSE",
	rightMouse = "RIGHTMOUSE",
}

Config.PoliceJobs = {
	"police",
}

Config.PoliceHeistStartApproval = {
	enabled = false,
	timeoutSeconds = 15,
}

Config.PoliceDoorControl = {
	duration = 10000,
	canCancel = false,
	animation = {
		dict = "missheistfbisetup1",
		clip = "unlock_loop_janitor",
		flag = 49,
	},
}

Config.NPCModels = {
	{ value = "g_m_m_chicold_01", label = "Criminal Guard" },
	{ value = "s_m_m_security_01", label = "Security Guard" },
	{ value = "s_m_m_prisguard_01", label = "Prison Guard" },
	{ value = "s_m_m_armoured_01", label = "Armored Guard" },
	{ value = "s_m_m_chemsec_01", label = "Private Guard" },
	{ value = "s_m_m_highsec_01", label = "Security Guard 2" },
	{ value = "s_m_y_marine_03", label = "Marine" },
}

Config.NPCWeapons = {
	{ value = "WEAPON_UNARMED", label = "Unarmed" },
	{ value = "WEAPON_KNIFE", label = "Knife" },
	{ value = "WEAPON_BAT", label = "Bat" },
	{ value = "WEAPON_SNSPISTOL", label = "SNS Pistol" },
	{ value = "WEAPON_PISTOL", label = "Pistol" },
	{ value = "WEAPON_COMBATPISTOL", label = "Combat Pistol" },
	{ value = "WEAPON_MICROSMG", label = "Micro SMG" },
	{ value = "WEAPON_SMG", label = "SMG" },
	{ value = "WEAPON_ASSAULTSMG", label = "Assault SMG" },
	{ value = "WEAPON_PUMPSHOTGUN", label = "Pump Shotgun" },
	{ value = "WEAPON_COMPACTRIFLE", label = "Compact Rifle" },
	{ value = "WEAPON_ASSAULTRIFLE", label = "Assault Rifle" },
	{ value = "WEAPON_CARBINERIFLE", label = "Carbine Rifle" },
}

Config.FailSafe = true -- if true it will prevent triggers to receive item, xp and actions such as that to all players
Config.MaxCrews = 10 -- max number of crews a player can create
Config.PlayerSelectDistance = 5.0 -- set to -1 for global select

Config.ContractMenu = {
	hideLockedContracts = true,
	tabs = {
		contracts = true,
		activeContracts = true,
		crew = true,
		skillMastery = true,
		skillTree = true,
		blackmarket = true,
	},
	command = {
		enabled = true,
		name = "contracts",
	},
	npc = {
		enabled = true,
		label = "Contracts",
		icon = "fas fa-file-contract",
		model = "g_m_m_chicold_01",
		coords = vector4(739.46, -546.48, 26.88, 88.69),
		scenario = "WORLD_HUMAN_AA_SMOKE",
	},
	gang = {
		enabled = true,
		label = "Heists",
		activeIcon = "IoCash",
		inactiveIcon = "IoCashOutline",
	},
}

Config.AdminPermissions = {
	allowConsole = true,
	acePermissions = {
		"admin",
		"command",
		"superadmin",
	},
	frameworkGroups = {
		"admin",
		"superadmin",
		"god",
	},
	identifiers = {
		-- "license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
	},
}

Config.Heat = {
	enabled = true,
	maxHeat = 100,
	decay = {
		cooldownMinutes = 30,
		amount = 10,
	},
	defaults = {
		maxHeatToStart = 80,
		gainOnStart = 20,
	},
}

Config.SignalJammers = {
	pickupDistance = 1.0,
	pickupOwnerOnly = false,
	weak = {
		item = "weak_signal_jammer",
		label = "Weak Signal Jammer",
		prop = "m24_2_prop_m42_jammer_01a",
		radius = 20.0,
		placementAnimation = {
			duration = 2000,
			dict = "anim@scripted@mfh4@ig1_jammer_set@male@",
			clip = "action",
			flag = 1,
		},
	},
	strong = {
		item = "strong_signal_jammer",
		label = "Strong Signal Jammer",
		prop = "ch_prop_ch_mobile_jammer_01x",
		radius = 50.0,
		placementAnimation = {
			duration = 4000,
			dict = "anim@amb@business@weed@weed_inspecting_lo_med_hi@",
			clip = "weed_crouch_checkingleaves_idle_02_inspector",
			flag = 1,
		},
	},
}

Config.EMPs = {
	pickupDistance = 1.0,
	pickupOwnerOnly = false,
	pickupReturnsItem = false,
	weak = {
		item = "weak_emp",
		label = "M42 EMP",
		prop = "m24_2_prop_m42_emp_01a",
		radius = 20.0,
		placementZOffset = 0.0,
		particle = {
			dict = "scr_xs_dr",
			name = "scr_xs_dr_emp",
			scale = 20.0,
			zOffset = 0.15,
		},
		placementAnimation = {
			duration = 2000,
			dict = "anim@amb@business@weed@weed_inspecting_lo_med_hi@",
			clip = "weed_crouch_checkingleaves_idle_02_inspector",
			flag = 1,
		},
	},
	strong = {
		item = "strong_emp",
		label = "M31 EMP",
		prop = "hei_prop_heist_emp",
		radius = 50.0,
		placementZOffset = 0.0,
		particle = {
			dict = "scr_xs_dr",
			name = "scr_xs_dr_emp",
			scale = 50.0,
			zOffset = 0.15,
		},
		placementAnimation = {
			duration = 4000,
			dict = "anim@amb@business@weed@weed_inspecting_lo_med_hi@",
			clip = "weed_crouch_checkingleaves_idle_02_inspector",
			flag = 1,
		},
	},
}

Config.CameraScanner = {
	item = "camera_scanner",
	prop = "w_am_digiscanner_reh",
	range = 35.0,
	refreshRate = 750,
	attach = {
		bone = 60309,
		offset = {
			pos = vec3(0.0, 0.0, 0.0),
			rot = vec3(180.0, -90.0, 180.0),
		},
	},
	animation = {
		dict = "amb@world_human_security_shine_torch@male@idle_b",
		clip = "idle_e",
		flag = 49,
	},
}

Config.Scuba = {
	item = "scuba_gear",
	maxTimeUnderwater = 2000.0,
	resetTimeUnderwater = 10.0,
	tank = {
		enabled = true,
		model = "p_s_scuba_tank_s",
		bone = 24818,
		offset = vec3(-0.25, -0.25, 0.0),
		rotation = vec3(180.0, 90.0, 0.0),
	},
	mask = {
		enabled = true,
		model = "p_d_scuba_mask_s",
		bone = 12844,
		offset = vec3(0.0, 0.0, 0.0),
		rotation = vec3(180.0, 90.0, 0.0),
	},
}

Config.SecurityCameras = {
	small = {
		model = "prop_cctv_cam_07a",
		health = 10,
		detectionDistance = 10.0,
		fov = 180.0,
		verticalFov = 300.0,
		yawOffset = 90.0,
		pitchOffset = -90.0,
		lightOffset = vec3(0.15, 0.2, 0.2),
	},
	medium = {
		model = "xm_prop_x17_server_farm_cctv_01",
		health = 50,
		detectionDistance = 15.0,
		fov = 90.0,
		verticalFov = 90.0,
		yawOffset = 180.0,
		pitchOffset = 0.0,
		lightOffset = vec3(0.0, -0.10, -0.25),
	},
	advanced = {
		model = "prop_cctv_cam_05a",
		health = 100,
		detectionDistance = 25.0,
		fov = 100.0,
		verticalFov = 90.0,
		yawOffset = 180.0,
		pitchOffset = -20.0,
		lightOffset = vec3(0.0, -0.35, -0.35),
	},
}

Config.SecurityCameraLight = {
	enabled = true,
	color = {
		r = 255,
		g = 15,
		b = 15,
		a = 230,
	},
	size = 0.025,
	range = 0.5,
	intensity = 2.0,
	offset = vec3(0.0, 0.22, -0.1),
	forwardOffset = 0.22,
	zOffset = 0.04,
	debugSphere = false,
	debugSphereSize = 0.055,
	debugSphereColor = {
		r = 80,
		g = 190,
		b = 255,
		a = 190,
	},
	slowBlinkInterval = 900,
	fastBlinkInterval = 180,
}

Config.HelpTextNode = {
	display = "integrated", -- native, integrated
}

-- do not change these values unless you know what you are doing.
Config.Performance = {
	setupQueueTasksPerTick = 4,
	heistInitBatchSize = 4,
	joinSyncBatchSize = 8,
	staticHeistPlacementBatchSize = 1,
	distanceCheckInterval = 300,
	distanceCheckIdleInterval = 750,
	distanceCheckNearBuffer = 25.0,
	distanceCheckFarInterval = 2500,
	deleteEntityActiveDistance = 120.0,
	deleteEntityNearInterval = 100,
	deleteEntityFarInterval = 1000,
	runtimeDoorActiveDistance = 90.0,
	runtimeDoorNearInterval = 250,
	runtimeDoorFarInterval = 5000,
	objectStreamActiveDistance = 120.0,
	objectStreamNearInterval = 1000,
	objectStreamFarInterval = 5000,
	sceneObjectActiveDistance = 120.0,
	sceneObjectNearInterval = 1000,
	sceneObjectFarInterval = 5000,
	sceneObjectBatchSize = 4,
	npcActiveDistance = 120.0,
	npcNearInterval = 150,
	npcFarInterval = 2500,
	alarmVisualDistance = 35.0,
	alarmVisualNearCheckInterval = 500,
	alarmVisualFarInterval = 2500,
	alarmAudioInterval = 500,
	alarmAudioFarInterval = 2500,
	alarmStreamFarInterval = 5000,
	securityCameraActiveDistanceBuffer = 15.0,
	securityCameraVisualDistance = 60.0,
	securityCameraNearInterval = 100,
	securityCameraFarInterval = 2500,
	securityCameraVisualNearInterval = 250,
	securityCameraVisualFarInterval = 2500,
}

if Config.TargetSystem == "ox_target" then
	Config.TargetSystem = "qtarget"
end