Here’s an English reply you can send (clear + factual, and it explains why T / Trigger editor doesn’t show up, and what to do instead in AoE4 Crafted Maps):
Hi Braindeath,
In Age of Empires IV’s Content Editor (Crafted Maps) there isn’t a “Trigger Editor” like in older RTS editors, and the “press T to open triggers” tip is simply not applicable here (it’s either for a different game/editor, or outdated info). That’s why nothing happens when you press T, and why you can’t find a “Triggers” panel in Scenario / Tools / Window.
If your goal is automatic unit spawning (units coming out automatically / periodic spawns / etc.), the correct way in AoE4 is to use SCAR scripting + SCAR markers placed in the map.
What you need to do instead (AoE4 way)
-
Place markers in the map (Content Editor)
Example names per player:
mkr_start_pos_p1, mkr_start_pos_p2, …
-
Create a SCAR script that reads those markers and spawns units.
Here is a minimal working structure (example: villager spawn per alive player):
print("[SPAWN] LTW_spawn.scar loaded")
function GetRecipe()
local recipe = {
modules = {},
onStart = {
intelEvent = "",
expositionCamera = {},
titleCard = {
icon = "icons/campaign/campaign_angevin_the_conquest",
location = LOC(""),
},
actions = {},
},
}
local n = World_GetPlayerCount() or 0
print("[LTW] World_GetPlayerCount=" .. tostring(n))
for idx = 1, n do
local p = World_GetPlayerAt(idx)
if p ~= nil and Player_IsAlive(p) then
local mkr = LTW_GetPlayerSpawnMarker(idx)
if mkr ~= nil then
table.insert(recipe.modules, {
type = "UnitSpawner",
player = p,
spawnLocation = mkr,
units = {
{ type = "scar_villager", numSquads = 1 },
},
})
print("[LTW] Spawn queued idx=" .. tostring(idx) .. " marker=mkr_start_pos_p" .. tostring(idx))
end
else
print("[LTW] Skip idx=" .. tostring(idx) .. " (nil player or not alive)")
end
end
return recipe
end
Marker helper:
print("[MARKERS] LTW_markers.scar loaded")
function LTW_GetPlayerSpawnMarker(idx)
local markerName = "mkr_start_pos_p" .. tostring(idx)
local mkr = Marker_FromName(markerName, "Player Spawn")
if not mkr then
print("[LTW] ERROR: Marker not found: name=" .. markerName .. " type=Player Spawn")
return nil
end
return mkr
end
Optional core init example:
print("[CORE] LTW_core.scar loaded")
function LTW_Core_Start()
LTW_RevealFullMap_AllPlayers()
Rule_AddInterval(LTW_RevealFullMap_AllPlayers, 1)
print("[CORE] schedule TP init")
Rule_AddOneShot(LTW_TP_Init_AllSlots, 1)
end
Important note
You must ensure:
-
your markers are actually present in the map (correct names),
-
your SCAR files are in the correct mod/script folder, and
-
the map is configured to load/run the SCAR (SCAR entry point / recipe).
So: no trigger panel to “find” — for auto spawning, it’s SCAR + markers.
Best regards.
in this script is scar_villager one unit you can change with the blueprint and can change for mor unit