Take on a shift as a locomotive engineer. Find the stationmaster NPC, press G to start, board the train, and run the route. Stop at each station, hold position, then move on. Complete all stops and return to the depot to collect pay.
Config = {}
Config.Locale = 'en'
-- If true, player must have Config.JobName assigned to start the job.
-- You must create this job in your framework's job list, or set this to false.
Config.RequireJob = false
Config.JobName = 'engineer' -- set to whatever you want, make sure to add it to your jobs.
Config.Pay = 20.0 -- Base pay per stop. Actual pay is determined by Config.Levels.
Config.Levels = {
[1] = { toursRequired = 0, pay = 20.0 },
[2] = { toursRequired = 10, pay = 22.0 },
[3] = { toursRequired = 20, pay = 24.0 },
[4] = { toursRequired = 30, pay = 26.0 },
[5] = { toursRequired = 40, pay = 30.0 },
}
-- Cooldown in seconds between job runs (server-wide)
Config.Cooldown = 300 -- 5 minutes
Config.TrainModel = -1464742217
Config.TrainSpawn = vector4(2717.15, -1453.33, 46.78, 296.94) -- spawn position for the train (saint denis)
Config.TrainDirectionNudge = 2.0 -- dont touch this if you dont know what it does. If the train goes the wrong way, flip the sign.
Config.StopRadius = 2.0 -- Radius in meters for how close the train needs to be to a stop to count as "stopped" there.
Config.StopMaxSpeed = 2.0 -- Maximum speed the train can be moving at to count as "stopped" at a stop.
Config.NPC = {
model = 'cs_cornwalltrainconductor',
coords = vector4(2747.9392, -1396.4530, 46.1831, 24.0356), -- NPC spawn position (saint denis, near train station)
}
Config.Blip = {
show = true,
coords = vector3(2747.9392, -1396.4530, 46.1831),
}
Config.Stops = { -- add as many stops as you want, just make sure to adjust the coords and duration for each.
{ label = "Annesburg", coords = vector3(2983.87, 1364.68, 43.78), duration = 55000 },
{ label = "Bacchus Station", coords = vector3(557.16, 1725.46, 187.81), duration = 50000 },
{ label = "Riggs Station", coords = vector3(-1081.75, -594.29, 80.75), duration = 45000 },
{ label = "Flatneck Station", coords = vector3(-301.03, -329.78, 88.70), duration = 35000 },
{ label = "Rhodes", coords = vector3(1254.97, -1337.54, 76.43), duration = 35000 },
{ label = "Saint Denis", coords = vector3(2717.01, -1453.29, 45.78), duration = 20000 },
}
Config.FinishCoords = vector3(2857.6655, -1044.8975, 45.1618) -- Final destination coords
-- If player reaches this without completing all stops = no pay
-- Event name the server listens on to start the job.
-- Fire this from any external resource to start the train job for a player.
Config.StartEvent = 'lrc-trainjob:server:startJob'
-- External resource integration.
-- Set to true if another resource handles NPC spawning and the start prompt/interaction.
-- When true: lrc-trainjob will NOT spawn the NPC and will NOT show the interaction prompt.
-- The reboard timer (when the player leaves the train) remains active regardless.
-- Your external resource must trigger Config.StartEvent on the server to begin the job.
Config.External = false