-- ============================================================
-- LOCATIONS CONFIG
-- Locatons and NPC foremen.
-- Add new locations/missions here —
--
-- UI CARD FIELDS (per city):
-- uiOrder – Controls card order in the selector UI.
-- uiLabel – Display name shown on the card (ex "Limpany").
-- uiSub – Subtitle shown on the card when unlocked (ex "Location available").
-- uiImage – Path to the location preview image shown on the right panel.
-- levelRequired – The player level required to access this mission.
-- Pay shown on the card is auto-pulled from Config.LevelSystem.levels[levelRequired].pay.
-- ============================================================
Config.Cities = {
-- ── MISSION 1: Limpany ──────────────────────────────────
limpany = {
-- UI card
uiOrder = 1,
uiLabel = 'Limpany',
uiSub = 'Location available',
uiImage = 'assets/m1.png',
levelRequired = 1,
destination = vector3(-376.64, -126.74, 46.01),
-- Wave order: Hammer → Plank → Sack → Brick → Plank | Control this as you like.
waveOrder = { 'hammer', 'plank', 'sack', 'brick', 'plank' },
WorkSpots1 = { -- hammer
vector3(-383.42, -133.91, 48.36),
vector3(-378.47, -141.95, 48.35),
vector3(-387.38, -141.95, 48.36),
vector3(-375.61, -135.98, 48.06),
vector3(-377.30, -142.37, 48.16),
},
WorkSpots2 = { -- plank
vector3(-364.69, -120.59, 47.51),
vector3(-360.90, -121.36, 47.53),
vector3(-354.05, -115.25, 47.86),
vector3(-363.24, -111.81, 47.57),
vector3(-370.46, -112.18, 45.97),
},
WorkSpots3 = { -- sack
vector3(-371.57, -141.92, 48.36),
vector3(-337.62, -124.98, 50.39),
vector3(-344.76, -155.58, 50.70),
vector3(-359.88, -140.33, 47.61),
vector3(-372.97, -112.69, 46.16),
},
WorkSpots4 = { -- brick
vector3(-331.40, -151.57, 50.99),
vector3(-329.11, -147.39, 50.90),
vector3(-326.38, -146.29, 50.94),
vector3(-327.48, -147.47, 51.08),
vector3(-323.97, -153.68, 51.08),
},
WorkSpots5 = { -- plank
vector3(-320.91, -132.38, 51.20),
vector3(-315.79, -131.44, 51.81),
vector3(-317.54, -135.78, 51.39),
vector3(-318.57, -128.23, 51.26),
vector3(-320.92, -134.19, 51.11),
},
},
-- ── MISSION 2: Pleasance ────────────────────────────────
pleasance = {
-- UI card
uiOrder = 2,
uiLabel = 'Pleasance',
uiSub = 'Location available',
uiImage = 'assets/m2.png',
levelRequired = 2,
destination = vector3(1767.6915, -439.6481, 46.7331),
waveOrder = { 'sack', 'plank', 'brick', 'hammer', 'plank' },
WorkSpots1 = { -- sack
vector3(1739.8202, -462.9131, 47.6797),
vector3(1743.7147, -466.1329, 47.7516),
vector3(1769.5574, -472.6369, 45.1940),
vector3(1781.6168, -462.3596, 44.7799),
vector3(1750.6359, -416.7635, 48.0068),
},
WorkSpots2 = { -- plank
vector3(1771.9274, -468.8380, 45.3030),
vector3(1784.5370, -472.0982, 44.9537),
vector3(1773.6807, -466.1415, 45.5901),
vector3(1783.1281, -474.3506, 45.0597),
vector3(1774.1052, -476.3369, 45.2000),
},
WorkSpots3 = { -- brick
vector3(1702.9774, -410.7193, 48.7690),
vector3(1705.1453, -410.4184, 53.7491),
vector3(1739.3405, -413.9337, 52.6526),
vector3(1782.7463, -397.4455, 51.6832),
vector3(1781.7781, -474.4066, 51.6511),
},
WorkSpots4 = { -- hammer
vector3(1746.9457, -416.6886, 47.8694),
vector3(1746.1682, -408.8139, 48.0446),
vector3(1743.5787, -416.6436, 47.5697),
vector3(1708.3293, -408.4095, 49.4588),
vector3(1704.7905, -403.3052, 48.9860),
},
WorkSpots5 = { --plank
vector3(1785.1713, -401.5957, 47.4558),
vector3(1783.4893, -394.5448, 47.0291),
vector3(1743.7014, -461.8596, 47.5244),
vector3(1739.7805, -467.8582, 46.6687),
vector3(1704.2087, -390.6011, 49.8788),
},
},
-- ── MISSION 3: Ewing Basin ────────────────────────────────
-- Wave order: Sack → Plank → Brick → Hammer → Plank
ewingbasin = {
-- UI card
uiOrder = 3,
uiLabel = 'Ewing Basin',
uiSub = 'Location available',
uiImage = 'assets/m3.png',
levelRequired = 3,
destination = vector3(-1895.3932, 1322.0270, 199.4042),
waveOrder = { 'boxdrop', 'plank', 'sack', 'hammer', 'plank' },
WorkSpots1 = { -- box
vector3(-1880.5869, 1319.9769, 201.5120),
vector3(-1876.7612, 1329.7988, 202.2113),
vector3(-1889.9679, 1331.0117, 200.1049),
vector3(-1884.8862, 1352.9384, 203.2724),
vector3(-1908.3969, 1347.2604, 202.0585),
},
WorkSpots2 = { -- plank
vector3(-1906.0745, 1330.8090, 200.0544),
vector3(-1910.3126, 1330.8002, 200.2375),
vector3(-1931.6545, 1334.3488, 203.0575),
vector3(-1938.9055, 1330.7987, 205.0754),
vector3(-1901.3796, 1333.9407, 200.0972),
},
WorkSpots3 = { -- sack
vector3(-1904.6295, 1348.3533, 202.0377),
vector3(-1904.6295, 1348.3533, 202.0377),
vector3(-1891.9789, 1364.2164, 203.8017),
vector3(-1891.9789, 1364.2164, 203.8017),
vector3(-1886.8160, 1335.4489, 200.6217),
},
WorkSpots4 = { -- hammer
vector3(-1893.0714, 1332.7729, 200.0972),
vector3(-1898.0411, 1335.7745, 200.0972),
vector3(-1875.8632, 1359.2015, 203.4139),
vector3(-1875.6254, 1360.4982, 211.5148),
vector3(-1874.7687, 1363.2653, 211.5219),
},
WorkSpots5 = { --plank
vector3(-1896.7463, 1358.3610, 203.3496),
vector3(-1899.5768, 1359.8938, 203.3418),
vector3(-1914.7770, 1351.4546, 202.9318),
vector3(-1915.6653, 1358.0844, 205.0929),
vector3(-1921.7349, 1337.7711, 201.7639),
},
},
-- ── HOW TO ADD A NEW MISSION ────────────────────────────
-- Copy the block below, uncomment it, fill in the values.
-- The card will appear automatically in-game
--
-- newcity = {
-- uiOrder = 3, -- card position in the list
-- uiLabel = 'New City', -- card title
-- uiSub = 'Locatie disponibila', -- card subtitle when unlocked
-- uiImage = 'assets/m3.png', -- drop PNG in ui/assets/
-- levelRequired = 3, -- pay auto-pulled from Config.LevelSystem.levels[3].pay
--
-- wagonSpawn = vector4(0.0, 0.0, 0.0, 0.0),
-- pickupZone = vector3(0.0, 0.0, 0.0),
-- destination = vector3(0.0, 0.0, 0.0),
--
-- waveOrder = { 'hammer', 'plank', 'sack', 'brick', 'plank' },
--
-- WorkSpots1 = { vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0) },
-- WorkSpots2 = { vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0) },
-- WorkSpots3 = { vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0) },
-- WorkSpots4 = { vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0) },
-- WorkSpots5 = { vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0), vector3(0,0,0) },
-- },
}
-- ============================================================
-- NPC FOREMEN
-- ============================================================
Config.NPCs = { -- add/replace how you want
saintdenis = {
model = 'u_m_m_bivforeman_01',
coords = vector4(2533.6863, -1502.1650, 45.9730, 4.4304), -- npc coords
wagonSpawn = vector4(2537.7744, -1498.5179, 45.9734, 355.6565), -- wagon spawn
pickupZone = vector3(2538.6865, -1502.1600, 45.9731), -- where boxes spawn to load the wagon.
},
strawberry = {
model = 'u_m_m_racforeman_01',
coords = vector4(-1821.8894, -427.7985, 159.9921, 79.3883),
wagonSpawn = vector4(-1829.72, -432.65, 159.66, 155.90),
pickupZone = vector3(-1825.48, -431.38, 159.83),
},
valentine = {
model = 'u_m_m_htlforeman_01',
coords = vector4(-259.0458, 627.4171, 113.4465, 135.8091),
wagonSpawn = vector4(-264.3984, 625.6421, 113.1656, 148.8408),
pickupZone = vector3(-265.4656, 631.0618, 113.3332),
},
}