Cargo Train Event
Cargo Train Event.mp4 snapshot 00.04.000 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.06.745 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.15.047 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.18.595 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.20.873 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.36.327 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.51.560 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.54.508 Cargo Train Event
Cargo Train Event.mp4 snapshot 00.58.927 Cargo Train Event
Cargo Train Event.mp4 snapshot 01.06.171 Cargo Train Event
 

Cargo Train Event

(19 customer reviews)

It’s exactly what it sounds like: a workcart loaded with precious cargo starts randomly traversing the rail system – IT WILL WORK ON ANY TRAIN-ENABLED MAP, INCLUDING PROCGENS AND CUSTOM MAPS, OUT OF THE BOX! It’s up to the players to defeat the Scientists and take control of the loot before the Cargo Train self-destructs. Tunnel Dwellers and possible radiation on the Train is only one of your problems: keep an eye for other players who might be watching your every move on the Train CCTVs while the event is active! Randomized loot may include Bradley-, Heli-, Elite and Locked Crates by default.  Highly configurable, optimised for performance and works on any map with a rail system, including PvE and custom maps! And great for those where Cargo Ship is just not possible.

$24.99

Sold By: Nikedemos

Description

Questions? Support? Join the discord: https://discord.gg/jYdnT2N

Cargo Train Event In short

It’s exactly what it sounds like: a workcart loaded with precious cargo starts randomly traversing the rail system – IT WILL WORK ON ANY TRAIN-ENABLED MAP, INCLUDING PROCGENS AND CUSTOM MAPS, OUT OF THE BOX! It’s up to the players to defeat the Scientists and take control of the loot before the Cargo Train self-destructs. Tunnel Dwellers and possible radiation on the Train is only one of your problems: keep an eye for other players who might be watching your every move on the Train CCTVs while the event is active! Randomized loot may include Bradley-, Heli-, Elite and Locked Crates by default.  Highly configurable, optimised for performance and works on any map with a rail system, including PvE and custom maps! And great for those where Cargo Ship is just not possible.

Watch the video below.

 

Finally, THE event to spice up your Rail System

When the plugin loads, the first event will be scheduled to run on a random timer based on values specified in the config (default: random between an hour and two hours from now). You will see a message in the server console telling you when the next event is going to happen as soon as it’s scheduled. If you don’t want to wait, use one of the console commands to schedule the train in a specified amount of time or run the event immediately outside of the scheduled timer – read below for those.

As soon as the event starts, if the appropriate notification is enabled in your config, players will see a message in the chat about the event happening. By default, they will also see the grid coordinate of the train and a list of CCTVs on the train (always in the format TRAIN000X, where 000 is a number between 0 and 999 and X is a letter from A to Z). After adding those to a computer station, anyone can watch the event on the Train CCTVs – unless those had been destroyed. CCTVs, like any other loot/entity can be moved, rotated, disabled or have its probability of occurring lowered.

The only thing more entertaining than watching the heist unfold from your base… is participating in it!

Here’s most of what your players need to know about the Cargo Train…

  • It contains a random combination of possible crates/scientists. You never know what you’re gonna get, but according to default config, at least 1 Locked Crate is guaranteed.

  • If there’s still a locked crate on the Train, you can follow it on your map – or watch out for chat messages updating you with the last known grid position

  • For the duration of the event, the workcart itself will be impervious to damage. It’s to help it smash through those pesky barricades!

  • The Train comes with an NPC driver. As long as the driver is alive, they will randomly traverse the connected rail system on the map (without the need for any fuel) and stop the Train when it’s under attack.

  • Shooting/damaging any NPC/entity on the Cargo Train will also make the NPC Driver stop the train (again, as long as they’re alive).

  • Keep the NPC Driver alive if you don’t have any fuel on you and you need to keep moving – or kill them to take control of the workcart. Killing the driver might also stop the train if the dead man switch setting is on (on by default).

  • The workcart can be radioactive! You can specify the radius of the radioactivity bubble and how strong it is (OPTIONAL, on by default). So better suit that hazzie up!

  • The cart might also ooze blobs of mysterious, acid-green liquid (not radioactive itself) that will stick around for a few minutes, along the train track – you can follow them like a trail of breadcrumbs!

  • Just like Cargo Ship, the time is ticking. Based on your config (30 minutes till self-destruct sequence + 60 seconds final countdown by default), the train is going to eventually self-destruct, severely hurting everyone and everything in a configurable explosion radius and with given damage (default 2000 HP in a radius of 12 meters, so guaranteed to insta-kill anything nearby). Grab the loot and dip when the time’s running out! If your config allows it (and it’s not the final countdown yet), starting to hack a Locked Crate on the train can extend the timer (default: off)

  • Power Counters in the driver’s cabin (on by default) will show you the remaining minutes/seconds before self-destruction/final countdown

  • By default, the Cargo Train comes with 4 CCTVs attached to it that anyone can watch through. The CCTVs are destructible, too, if the participants decide they need some privacy.

  • Cargo Trains are always red, normal trains are always yellow, so you can tell them apart easily, even from far away

  • The Scientists will shoot at any human nearby indiscriminately, and that includes Tunnel Dwellers (who won’t shoot back in turn)

Works on any map with no setup – including custom maps, like Last Train!

If you haven’t seen Gruber’s amazing map yet – it’s a must have! The map and the plugin compliment each other really well. Get it while it’s still hot! NOTE: The map is sold separately by a different Vendor and it’s not a part of the plugin.

Permissions (Oxide.Grant user YourName [permission name starting with cargotrainevent.])

There’s only one permission at the moment – the admin permission:

cargotrainevent.admin

It will allow you to run the /te_cfg command and all admin console commands if you don’t have ownerid/moderatorid on the server.

Since this is one of those “set it and forget it” plugins, I honestly couldn’t think of any more. If you have an idea for a permission that could spruce up your VIP package, don’t hesitate to let me know!

Admin console commands (must have ownerid/moderatorid/cargotrainevent.admin permission)

These can be run from the server console or the client F1 console – or even invoked by other plugins.  Only players with ownerid/moderatorid/cargotrainevent.admin permission can run those from the F1 console. Obviously that doesn’t apply to the server console.

Unless a specific train/location is pointed to (with trainevent_now_at and/or trainevent_now_nearest), one of the idle trains (no players on, no moving forward, optionally only at a station) already existing on the server will be picked at random for the event, unless no valid trains have been found – in that case, you will see no message.

trainevent_schedule [optional arg: number of seconds to schedule the event in]
This will schedule a Train Event manually. If you provide the parameter, the event will be scheduled precisely this amount of seconds from now. If you don’t, a random value between EventRandomTimerMin and EventRandomTimerMax will be used from the config.

trainevent_now

This will instantly invoke a Train Event. Just like above, one of the idle workcarts present on the map will be picked at random.

trainevent_now_nearest

This will instantly use the workcart nearest to your position for a new Train Event and run it. (F1 console only)

trainevent_now_at [semi-optional args: x y z]

This will instantly spawn a new workcart and use it for a new Train Event at the location specified by the args. What does semi-optional mean? It means if you’re running this command as a player, from the F1 console, you don’t need to provide any arguments, as it will use your position. But if you’re running it from the server console/another plugin, x y z values need to be defined.

Configuration (oxide/config/CargoTrainEvent.json)

Vast majority of the settings can be configured with the /te_cfg chat command. Typing it in the chat with no parameters should dump a rundown of config fields and their values.

In order to run any of the config commands, you will need to have ownerid or moderatorid (or the cargotrainevent.admin permission).

/te_cfg EnableRandomEvent [logical values (true or false)]
If true, enable random Cargo Train Event with random timers based on your config. If false, you will have to run the console command “trainevent” manually (DEFAULT: True)

/te_cfg EventDuration [fractions (like 1.2345) between 1.00 and 10000.00]
How long the Cargo Train Event is going to last before initiating self-destruction timer (in seconds) (DEFAULT: 1800)

/te_cfg EventTrainAltitudeMin [fractions (like.12345) between -10000 and +10000]
Only idle carts with Y-position greater than this value (higher altitude) will be considered for the event. Use for no lower bound.

/te_cfg EventTrainAltitudeMax [fractions (like.12345) between -10000 and +10000]
Only idle carts with Y-position lesser than this value (lower altitude) will be considered for the event. Use large values for no upper bound.

/te_cfg EventRandomTimerMin [fractions (like 1.2345) between 1.00 and 10000.00]
Minimum time to wait before the next Cargo Train Event (in seconds) (DEFAULT: 3600)

/te_cfg EventRandomTimerMax [fractions (like 1.2345) between 1.00 and 10000.00]
Maximum time to wait before the next Cargo Train Event (in seconds) (DEFAULT: 7200)

/te_cfg SelfDestructTimer [fractions (like 1.2345) between 1.00 and 10000.00]
The length of the self-destruction timer (in seconds) (DEFAULT: 60)

/te_cfg SelfDestructDamageRadius [fractions (like 1.2345) between 1.00 and 10000.00]
The radius of the self-destruction explosion (in meters) (DEFAULT: 12)

/te_cfg SelfDestructDamageAmount [fractions (like 1.2345) between 1.00 and 10000.00]
The amount of damage taken by entities within explosion radius (in HP) (DEFAULT: 2000)

/te_cfg HackingAddsSeconds [fractions (like 1.2345) between 0.00 and 10000.00]
When a locked crate on the Train is hacked and the train is not self-destructing yet, postpone the self-destruct timer by this many seconds – or 0 to disable. 900 seconds (15 minutes) is the normal duration of the crate. (DEFAULT: 0)

/te_cfg WhenAttackedStopFor [fractions (like 1.2345) between 0.00 and 3600.00]
When the train (or any entity belonging it) is attacked, it will brake and wait for this amount of seconds before continuing along the track (DEFAULT: 10)

/te_cfg TrainTopSpeed [fractions (like 1.2345) between 1.00 and 60.00]
The top speed of the Train (in meters/second). Rust default is 12.00. (DEFAULT: 10.00)

/te_cfg DeadManSwitchStop [logical values (true or false)]
If true, when the Train Driver NPC is killed, the train comes to a stop (DEFAULT: True)

/te_cfg CandidateHasToBeAtStation [logical values (true or false)]
If true, when deciding which idle train to man for the event, only consider trains flagged by Rust as “At station”. (DEFAULT: True)

/te_cfg TrainDriverKit [strings (like ThisIsAString) – if they have a space, in quotes (like “This Is A String”)]
The name of the custom kit for the Train Driver – or NULL to restore default (Heavy Scientist suit) (DEFAULT: NULL)

/te_cfg TrainScientistKit [strings (like ThisIsAString) – if they have a space, in quotes (like “This Is A String”)]
The name of the custom kit for the Scientists – or NULL for no custom kit (so default blue hazmat + LR) (DEFAULT: NULL)

/te_cfg RadiationEnable [logical values (true or false)]
If true, the train will have a radiation bubble around it at all times, according to the RadiationTier and RadiationRadius (DEFAULT: True)

/te_cfg RadiationRadius [fractions (like 1.2345) between 0.00 and 3600.00]
If radiation is enabled, this is how far the bubble will reach from the centre of the train (in meters) (DEFAULT: 10)

/te_cfg RadiationTier [integers (like 12345) between 0.00 and 3.00]
Radiation tier, from 0 (minimal) to 3 (high) (DEFAULT: 2)

/te_cfg SplatsEnable [logical values (true or false)]
If true, the train will “leak” acid-green splats on the train track when the Train is on the move (acting as highly visible “breadcrumbs” to track the train down). Each one of them will despawn at random in the time frame defined by SplatsLifetimeMin and SplatsLifetimeMax or when the plugin is reloaded. (DEFAULT: True)

/te_cfg SplatsPerSecond [fractions (like 1.2345) between 0.01 and 3.00]
The frequency of splatting (on average); the higher it is (up to 3 splats per second), the more splats it produces. WARNING: More than 1 is not recommended due to possible performance drop. (DEFAULT: 1)

/te_cfg SplatsLifetimeMin [fractions (like 1.2345) between 1.00 and 1000.00]
The minimum time before a splat despawns (in seconds) (DEFAULT: 60)

/te_cfg SplatsLifetimeMax [fractions (like 1.2345) between 1.00 and 1000.00]
The maximum time before a splat despawns (in seconds) (DEFAULT: 300)

/te_cfg UseChatMessages [logical values (true or false)]
If true, plugin-related chat notifications for all players will be sent to the in-game chat. Can be used in conjunction with UseGUIAnnouncementsPlugin and UseNotifyPlugin. (DEFAULT: True)

/te_cfg UseNotifyPlugin [logical values (true or false)]
If true, plugin-related chat notifications for all players will be sent using Mevent’s Notify plugin. Can be used in conjunction with UseGUIAnnouncementsPlugin and UseChatMessages. (DEFAULT: True)

/te_cfg UseGuiAnnouncements [logical values (true or false)]
If true, plugin-related chat notifications for all players will be sent using the Gui Announcements plugin. Can be used in conjunction with UseChatMessages and UseNotifyPlugin. (DEFAULT: True)

/te_cfg NotifyWhenStarted [logical values (true or false)]
If true, when the event starts, a global message will appear in the chat, according to the format specified in your lang JSON (DEFAULT: True)

/te_cfg NotifyWhenEnded [logical values (true or false)]
If true, when the event ends, a global message will appear in the chat, according to the format specified in your lang JSON (DEFAULT: True)

/te_cfg NotifyAboutSelfDestruct [logical values (true or false)]
If true, when train initiates a self-destruct sequence, a global message will appear in the chat, according to the format specified in your lang JSON (DEFAULT: True)

/te_cfg NotifyAboutCrateHacking [logical values (true or false)]
If true, when one of the locked crates on the train starts being hacked, a global message will appear in the chat, according to the format specified in your lang JSON (DEFAULT: True)

/te_cfg NotifyAboutDriverDeath [logical values (true or false)]
If true, when the Train Driver NPC is killed, a global message will appear in the chat, according to the format specified in your lang JSON (DEFAULT: True)

/te_cfg NotifyAboutPosition [logical values (true or false)]
If true, the train will announce its current position on the grid as a global message in the chat, according to the format specified in your lang JSON (DEFAULT: True)

/te_cfg NotifyAboutPositionEvery [fractions (like 1.2345) between 1.00 and 1000.00]
How often to announce the train’s grid position (in seconds) (DEFAULT: 180)

/te_cfg AttachTimeCounters [logical values (true or false)]
If true, the train will come equipped with power counters to display the remaining minutes and seconds before self destruction initiation (or when already initiated, minutes and seconds before actual self destruction). The position/rotation of the counters can be set with the 12 values below. (DEFAULT: True)

/te_cfg CamerasAreFunctional [logical values (true or false)]
If true, any cameras attached to the train will be powered and assigned an ID for the event. If false, they will only be used for decoration (DEFAULT: True)

/te_cfg CounterMinutePosX [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the position X of the minute counter, relative to the Train (DEFAULT: 0.572)

/te_cfg CounterMinutePosY [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the position Y of the minute counter, relative to the Train (DEFAULT: 3.515)

/te_cfg CounterMinutePosZ [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the position Z of the minute counter, relative to the Train (DEFAULT: 4.357)

/te_cfg CounterMinuteRotX [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the rotation X of the minute counter, relative to the Train (DEFAULT: 18.428)

/te_cfg CounterMinuteRotY [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the rotation Y of the minute counter, relative to the Train (DEFAULT: 180)

/te_cfg CounterMinuteRotZ [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the rotation Z of the minute counter, relative to the Train (DEFAULT: 0)

/te_cfg CounterSecondPosX [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the position X of the second counter, relative to the Train (DEFAULT: 0.75)

/te_cfg CounterSecondPosY [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the position Y of the second counter, relative to the Train (DEFAULT: 3.515)

/te_cfg CounterSecondPosZ [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the position Z of the second counter, relative to the Train (DEFAULT: 4.357)

/te_cfg CounterSecondRotX [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the rotation X of the second counter, relative to the Train (DEFAULT: 18.428)

/te_cfg CounterSecondRotY [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the rotation Y of the second counter, relative to the Train (DEFAULT: 180)

/te_cfg CounterSecondRotZ [fractions (like 1.2345) between -Infinity and Infinity]
If counters are enabled, this is the rotation Z of the second counter, relative to the Train (DEFAULT: 0)

/te_cfg TruePVERadius [fractions (like 1.2345) between 0 and 1000]
If TruePVE is loaded, this is the radius of the the PVP zone around the train. Set to 0 to disable PVP zone. If TruePVE is not loaded, this setting has no effect. (DEFAULT: 100)

/te_cfg ScientistHealthMultiplier [fractions (like 1.2345) between 0.0001 and 100]
Setting this value to 1 means the Scientists will have the normal expected amount of health (175 HP). Setting it to 0.5 will halve it, setting it to 2 will double it, etc. (DEFAULT: 1.0)

Advanced config – build your custom Cargo Trains with randomised Workcart Entities

Every camera, electric entity, crate and scientist you see on the workcart (and sometimes you don’t) has been picked at semi-random from a list of possible Workcart Entity Definitions in the config. Those define where to put the entity (and what rotation), what skin to give it (if any), whether players will be able to damage that entity, the chance of spawning that entity per event, which entities (if any) need to successfully spawn first (so you don’t have scientists standing on nothing, where the locked crate would be – rather, they just don’t spawn if the crate doesn’t) etc (look below)…

When you load the plugin for the first time, a list of default definitions will be found in the oxide/config/CargoTrainEvent.json file. With those definitions you’re completely free to attach nearly any spawnable entity to the Workcart (some of the entities, like Recyclers, Batteries/Solar Panels will become invisible over large distances from the original spawnpoint – this is not a bug with the plugin, just the way rust culls model rendering based on distance). Be warned, I haven’t tested it with many different types of entities!

So if you edit the JSON file, you will find a list of pre-defined entries. Feel free to tweak their values, remove entries, add your own etc – as long as you know what you’re doing! Always check your final JSON file with a tool like JSON lint before reloading the plugin! Below is a sample entry – in this case, the first scientist that’s supposed to stand on the first crate (the one in the middle of the cart):

"3": {
    "ID": 3,
    "PrefabName": "assets/prefabs/npc/scientist/htn/scientist_turret_any.prefab",
    "SpawnChance": 0.5,
    "HealthMultiplier": 2.0,
    "Indestructible": false,
    "PickupEnabled": false,
    "IsLocked": false,
    "PowerUpImmediately": false,
    "ReliesOnSpawningIDs": [
        0
    ],
    "ConflictsWithSpawningIDs": null,
    "LocalPosX": -0.742,
    "LocalPosY": 2.845,
    "LocalPosZ": -3.675,
    "LocalRotX": 0.0,
    "LocalRotY": 223.095,
    "LocalRotZ": 0.0,
    "SkinID": 0
}
  • ID (in this case, 3) is for identifying with other prefabs – both numbers have to match in the first two lines of the entry. If you let two entries have the same ID, bad things will happen.
  • PrefabName is what it sounds, the full prefab name of a spawnable entity – in this case, it’s a turretn scientist. If you can spawn it from the console, you can use it as a Workcart Entity… in theory!
  • SpawnChance is a probability fraction between 0 (never) and 1 (always). It’s the base probability of the entity spawning on the train (it will still be checked if dependencies/conflicts will allow it – if those are not null)
  • Indestructible applies to BaseCombatEntities – i.e. anything that has health, like players, deployables etc. Set it to true if you don’t want those entities to take any damage when attached to the train
  • HealthMultiplier will let you give the entity more or less health (it will multiply the health by this value, so 2.0 is twice the normal health, 0.25 is quarter the normal health, etc)
  • PickupEnabled is false by default and I see absolutely no reason you’d want your players to be able to pick up the entities from the train with a hammer – but whatever, it’s there, go nuts if you must.
  • IsLocked is also false by default. If true, it will set the Locked flag of the entity to true – and it means different things for different entities, usually meaning players can’t interact with them (decoration only, pretty much).
  • PowerUpImmediately set to true means that if the entity is an electrical thing (siren, flasher etc) it will be powered on event start and stay powered throughout. If false, it will only power up during the final countdown
  • ReliesOnSpawningIDs can be null and it will be ignored. But if it contains a list of IDs, those IDs need to have had spawned in first before this entity can spawn. In this example, it’s a scientist relying on ID 0 (according to the default config, it’s the first locked crate) spawning. If the crate doesn’t spawn (in this example, it always does, though), this particular scientist won’t spawn either
  • ConflictsWithSpawningIDs can also be null and it will be ignored. But if it contains a list of IDs, those IDs are the opposite of ReliesOnSpawningIDs  – they must have not had spawned in first place in order for this particular entity to be considered. For obvious reasons, the same ID cannot be both relied on AND conflicting with the same entry, so if any such inconsistencies are found, they will be addressed on plugin load automatically by re-generating the config, so always make backups!
  • LocalPosX, LocalPosY, LocalPosZ, LocalRotX, LocalRotY, LocalRotZ refer to the position and rotation of the prefab relative to the workcart. How to find those out? Simple, open a blank map in Rust Edit, place a Workcart Entity at precisely 0,0,0 with rotation 0,0,0, and start placing entities relative to those. Take note of the 3 coordinates and the 3 rotation angles of the entities and that’s it, there’s no guesstimates!
  • SkinID will be 0 in most cases, but if you want to place anything skinnable (target practices, boxes, fridges and what have you), this is the field you need to change. You can extract the skin ID from the workshop item URL.

NOTE: You can have multiple entities overlapping in the same spot, just make sure you make their IDs unique and add appropriate conflicts if you don’t want them to spawn at the same time, but rather on an “if this doesn’t spawn, spawn this instead, maybe” basis.

Translation support (oxide/lang/en/CargoTrainEvent.json)

I have learned my lesson. And the lesson was, not everyone had lessons in English, Rust is a game for players all over the world! Nobody likes editing the plugin to change the text, so I’ve included all strings (apart from config, but that’s just for admins) dumped to a language file that can be quickly edited, so you can give your server that extra personal touch.

Hooks/API (for plugin developers)

void OnTrainEventStarted(TrainEngine train)
{
//This gets called when a Cargo Train event starts (a train turns into a special workcart)
}

void OnTrainEventEnded(TrainEngine train)
{
//This gets called when a Cargo Train event ends (a special workcart entity dies)
}

void OnBookmarkControlStartedTrainCCTV(BasePlayer player, string text, CCTV_RC cctv)
{
//This gets called when a player starts controlling a train CCTV camera
}

void OnTrainCrateHack(TrainEngine train, HackableLockedCrate crate)
{
//This gets called when a player starts hacking a train crate
}

void OnPlayerEnterPVPBubble(TrainEngine Train, BasePlayer player)
{
//This gets called when TruePVE is enabled and a player enters the PVP bubble around the train
}

void OnPlayerExitPVPBubble(TrainEngine Train, BasePlayer player)
{
//This gets called when TruePVE is enabled and a player exits the PVP bubble around the train
}

void OnTrainStartBraking(TrainEngine train, float delayStopFor)
{
//This gets called when the cargo train starts braking because of damage taken
}

void OnTrainFinalizeBraking(TrainEngine train)
{
//This gets called when the cargo train comes to a full stop because of damage taken
}

void OnTrainMoveAgain(TrainEngine train)
{
//This gets called when the cargo train starts moving again after stopping for period of time
}

void OnTrainDriverDeath(TrainEngine train, BasePlayer trainDriver, HitInfo info)
{
//This gets called when the original train driver NPC dies for whatever reason
}

void OnTrainSelfDestructionInitiated(TrainEngine train, float secondsLeftUntilDestruction, bool becauseDriverDied)
{
//This gets called when the final countdown starts ticking
}

EULA

I’m not going to speak legalese here. It’s going to be short and to the point. By purchasing Cargo Train Event you hereby agree to these conditions:

  • If something goes wrong with your server (not that it will!) while using this plugin, you will not hold Nikedemos responsible. You use the plugin at your own risk. Always make sure you make backup copies before experimenting with anything.
  • You are granted a license to use the plugin on up to 6 servers at time. You have to be the owner or co-owner of those servers. This license will never expire. When the plugin gets updated, every license owner is entitled to an update.
  • You will not distribute this plugin in any shape or form – not on forums, social media, not to your friends, not to other server owners nor other plugin developers. Making plugins takes time and effort and I really appreciate respecting plugin developers by not stealing their work. The only way to legally own and use Cargo Train Event on a server you own is to purchase a license. If you’re not a permanent co-owner on a particular server (that has been participating in the server costs/revenue), you can’t deploy the plugin there, even if you’re friends with the owner. They have to purchase a separate license.
Check out more of my work here! https://lone.design/vendor/nikedemos/
Join the Lone.Design Discord Here! https://discord.gg/VEesZs9

19 reviews for Cargo Train Event

  1. Gruber (verified owner)

    Wow, I’ve been waiting for this for a long time

  2. MeinRust (verified owner)

    Great plugin, very good job! We can only recommend it!

  3. raowlf (verified owner)

    Gives trains a use again.

  4. Ryan Moore (verified owner)

    It’s a great plugin. Great work man! Players love it!

  5. deyowan (verified owner)

    Very good plugin, easy to set up but can also be configured very detailed! Amazing Developer assistance as well!

  6. JoCarter (verified owner)

    Another great one from Nikedemos! Easy to setup and the players love it. It has really given the new tunnels life.

  7. CloysterDitch (verified owner)

    Great plugin with lots of configuration, and an awesome Dev with a great support community.

  8. doublee313 (verified owner)

    Awesome idea…Awesome code…Awesome dev! I had a issue and he fixed instantly on his Discord. Takes pride in his plugins 🙂

  9. Kleementin (verified owner)

    It’s a great addition to every server and makes the new subway tunnel system feel more complete and meaningful.
    Also, the developer is very reflective and kind. Thank you.

  10. Jacqueline Yalda (verified owner)

    This plugin is LOADS of fun! I def enjoy it on my map and so will your players! Something different for players to enjoy 🙂

  11. orbit0r (verified owner)

    “Exactly what it sounds like” – Cargo Train event with many options. Easy to setup and works as advertised. Great addition to both PVP and PVE servers.

  12. bmthebigredmachine (verified owner)

    Works amazingly right away, barely any tweaking needed (if running PVE-ONLY set TruePVE Radius to 0 to turn off PVP) Loot scales with server settings, train runs well along the track even on a custom map. Overall 10/10 Cargo Train go BRRRRRR

  13. Skillz (verified owner)

    My only gripe about this plugin is I wish we had the ability to make the train ONLY spawn on tracks above ground for maps that have above ground tracks. The train will spawn on tracks above ground (Last Train map), but it also spawns underground and just randomly picks.

  14. Mods4Rust (verified owner)

    Really nice plugin, adds life to any server.

  15. gunhoo001 (verified owner)

    A nice plugin!
    The best event for PVE!
    Great support!

  16. Wrecks (verified owner)

    Super cool plugin 🙂

  17. benragin (verified owner)

    I’m currently running Oregon Land of dead and included this today and i’m wondering how I ever lived without it. If you have a nice train system on your map do yourself a favor and buy this. This is perfect for PVP servers and gives players something new and exciting to do! Another great plugin from the Legend!!

  18. Kleementin (verified owner)

    This one’s great.
    Many options to set and individualize the plugin.
    It’s just great to bring some action to these underground rails.

  19. undertow (verified owner)

    Super fun plugin and concept, well programmed, and works on any map. It just keeps getting better with updates, too. Great support from Nikedemos as usual! This is well worth the cost if it looks interesting for you / your players.

Only logged in customers who have purchased this product may leave a review.

Version 1.0.6
  • 1 month ago Added Two new config values: EventTrainAltitudeMin and EventTrainAltitudeMax. Now you can limit spawning of the event trains to underground only or overground only, based on the allowed altitude range. By default, those values are -Infinity and +Infinity (so no defined range).
  • 1 month ago Added Two new config values: UseChatMessages (normal, vanilla chat messages, default true) and UseGuiAnnouncements (the GUI Announcement plugin). Those settings now exist independently of UseNotifyPlugin - each one of them can be true/false and won't affect other methods of displaying.
  • 1 month ago Updated Concatenated the CCTV message with the event starting message to fit in the GUIAnnouncements/Notify plugin UI. Now the event starting message and the CCTV message are one message, without newline characters. If there's no functional CCTV cameras on the train, no messages will be displayed.
  • 1 month ago Fixed Fixed GUIAnnouncement compatibility
  • 1 month ago Added Added new config value: TrainScientistKit. Now you can kit-out your train scientists with no 3rd party NPC kit plugins, just like you can with the Driver! By default this value is set to NULL, so they'll be wearing their usual blue threads.
Version 1.0.5
  • 2 months ago Updated NPC Targetting config is back to its pre 1.0.4 glory, now you can use settings ScientistsTargetTunnelDwellers and DontStopOnTunnelDwellerAttack to your heart's content
  • 2 months ago Fixed SplatsEnable in the config now actually does something as opposed to being a useless variable. If you set it to false, you won't see any more green goo.
  • 2 months ago Added Added support for Notify plugin and there's a new config value associated with that, UseNotifyPlugin (true by default).
Version 1.0.4
  • 5 months ago Fixed Fixed tunnel dwellers and train scientists targetting and eventually killing the train driver after June 2021 force wipe update
  • 5 months ago Fixed Fixed the issue with the train staying still after reaching a dead end face-forward. Now the train should reverse.
  • 5 months ago Fixed Fixed the issue with the train not stopping while it's reversing, even if hit by players. Now then the train is reversing and it's hit, it starts moving forwards again after stopping for n seconds.
  • 5 months ago Added Added a bunch of hooks, too many to list them here, so check out the section on the product page
Version 1.0.3
  • 5 months ago Added Added new config value: ScientistHealthMultiplier. By default, it's set to 1, so unless you modify it, there should be no changes. Set it to 2 to double the scientists health etc.
  • 5 months ago Fixed Fixed the issue with the chat message updating players with the current train position. Now the message will only show if the train is on the move.
  • 5 months ago Fixed Fixed a compatibility issue with DeathNotes wrongfully displaying chat messages involving the Train Driver NPC
Version 1.0.2
  • 6 months ago Fixed Fixed null error when running the commands from server console and messages not displaying
  • 6 months ago Fixed Fixed admin permission not being registered
  • 6 months ago Fixed Fixed normal trains being indestructible - for good, this time!
  • 6 months ago Fixed Fixed the issue with scientists leaving the train, now they hop right back on should that happen
  • 6 months ago Added Added Fuel Manager compatibility (and 2 new lang strings to go with it)
  • 6 months ago Added Added TruePVE combatibility (and the new config value, TruePVERadius - set to 0 to disable this feature)
Version 1.0.1
  • 6 months ago Fixed Fixed a typo preventing ALL trains from taking damage - thanks for spotting the issue, Darko!
  • 6 months ago Fixed Fixed a problem where re-generating the config because of failure to parse the file would not generate workcart definitions, leaving them empty
  • 6 months ago Added Added the chat prefix (along with the colour) to the language file - thanks for the suggestion, Alter Ego!

No custom license found. Refer to the TOS for License information!

Got something to discuss?


Customer
fruitl00py
5 months 28 days ago

Anyone else having problem with the loot? My players cannot open any of the boxes as they do no have ownership of them. The settings I used were unchanged in the config. Also weird is that the driver when killed shows up as having his Killstreak ended, as though he was a player. Could this be the reason, the boxes are owned by the driver and my PvE server is preventing anyone else from opening them?

Support
Nikedemos
5 months 28 days ago

Hi there! All the entity IDs are set internally to 1337422 for easy cleanup/memory management/performance in hooks. If you have a plugin that doesn’t let player open containers that don’t belong to them, whatever plugin that is, it should be making an exception for that particular ID. Join the discord (link on the top of the product page) and open up a new support ticket, quoting your 5-digit order ID – I’m sure it’s something that can be fixed in a jiffy! When it comes to Killstreaks, I am not familiar with that plugin either, but the train driver IS a player, technically speaking, hence why it might be creating a profile for them. Again – hit me up on discord!

Customer
wsad 920NW
4 months 20 days ago

Have got the same issue here. I added the exception for 1337422 in the prevent looting config but player still cannot open the crates. Any ideas? It’s the only prevent looting plugin of its type I have installed.

Customer
Audrey Athiel
5 months 10 days ago

yes I have this problem also with my pve server, it is the true pve or prevent looting plugin which is a barrier to loot

Customer
Grimm530
5 months 27 days ago

When I run command in f1 console trainevent_now this shows up in server console but the train does show up and appears to work…
[CargoTrainEvent] NOPE NO PERMISHUN
Failed to call hook ‘ConsoleCommandTrainEvent’ on plugin ‘CargoTrainEvent v1.0.1’ (NullReferenceException: Object reference not set to an instance of an object)
at Oxide.Plugins.CargoTrainEvent.TellMessage (BasePlayer player, System.String message, System.Boolean alsoPrintWarning) [0x00000] in :0
at Oxide.Plugins.CargoTrainEvent+SpecialTrain.Prepare (TrainEngine train) [0x00835] in :0
at Oxide.Plugins.CargoTrainEvent.MakeTrainSpecial (TrainEngine train) [0x00031] in :0
at Oxide.Plugins.CargoTrainEvent.TrainEventRun () [0x00028] in :0
at Oxide.Plugins.CargoTrainEvent.ConsoleCommandTrainEvent (ConsoleSystem+Arg arg) [0x00067] in :0
at Oxide.Plugins.CargoTrainEvent.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00bbb] in :0
at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in :0
at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in :0
at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in :0

Support
Nikedemos
5 months 27 days ago

Hi there! I can see you’ve already opened a support ticket on my Discord, so we can take it over there. This is one of the issues that I have been working on fixing today and there will be an official update tonight to fix this and other problems – as soon as I get confirmation that everything has been sorted. Stay tuned and thanks for your patience!

Customer
CloysterDitch
5 months 21 days ago

Would you have any interest in a MagicPanel plugin for this event if I worked on one?

Support
Nikedemos
5 months 21 days ago

You should probably ask fellow server owners, but most importantly, the developer of MagicPanel, if that’s an existing plugin you’re talking about.
Next release I was planning on something simple, a configurable GUI icon that lights up when the event is active, similar to other event plugins.

Customer
Audrey Athiel
5 months 10 days ago

yes!!!

Customer
clyde.knight.jr
5 months 7 days ago

is this broken?. . . bought this over a week ago and yet to successfully invoke the event. . .

Support
Nikedemos
5 months 7 days ago

Hi there! Of course it’s not broken, hundreds of servers are running it already! Sorry to hear you seem to be having issues on your setup! Join my discord at https://discord.gg/jYdnT2N and let’s get in touch, we’ll see what’s up

Customer
doublee313
5 months 23 hours ago

Can you add so we can use more then one kit on the train driver? Also, is it possible to kit the scientists on the train? Thx

Support
Nikedemos
5 months 23 hours ago

Hi there! We already spoke in the DMs, but for the benefit of anyone wondering: you can use any plugin (like NPCKits) to change the scientists kits – just make sure you give them guns that they can actually use! The Train Driver only has 1 kit as it is purely for aesthetic purposes.

Customer
wesley
4 months 23 days ago

Request: Add names of who is hacking/who has killed the driver/who entered the event to notifications.
example:
Wesley has entered the Cargo Train
Cargo Train driver has been killed by Wesley!
Cargo Train has been raided by Wesley

Support
Nikedemos
4 months 23 days ago

Hi there! Next update I will be adding some Oxide hooks, so all sorts of magic, including notifications, should be possible! Thanks for your suggestion

Customer
wesley
4 months 23 days ago

Why are there small wooden boxes on the train with no loot inside?

Support
Nikedemos
4 months 20 days ago

Hi there! I don’t know, you should probably ask the person who configured your train design. You CAN put small empty boxes on a train (or any spawnable entities) if you want, but normally they don’t come by default. Check the Workcart Entity Definitions!

Customer
lurenmu
4 months 20 hours ago

Hi. Have a question maybe anyone can help with Cargo Train Event, Tunnel Dwellers wont shoot NPC’s on train. And how to put that train driver die without player help!

Guest
WAYNE HOUSERIGHT
3 months 11 days ago

Afternoon, just got the plugin, so far we like it. However, was wondering if theres a way to turn on and off if one desires, when the next event will occur and is there a way to tie the msg_event_started to lets say the GUIAnnmounments plugin or a way for it to show like GUIAnnounements for start and when next event will occur.

Support
Nikedemos
3 months 11 days ago

Hi there! Everything regarding the timer is explained on the product page, make sure you read the config section! You can turn the built-in timer off in the config, and then you can rely solely on manually typed console commands or a plugin like https://umod.org/plugins/timed-execute. Regarding the announcement, looks like a simple job, GUI Announcements does offer a hook for that. But this is obviously not the place for me to send you patched files, so join my discord at https://discord.com/invite/jYdnT2N and DM me, or open a new ticket. Make sure you quote your #5-digit order ID!

Customer
Ryan Hanley
3 months 8 days ago

Why is the driver getting killed by Tunnel Dwellers? I don’t see anywhere in the config to disable that.. :(. Also , there is no red marker over the moving crate. I have the Marker Plugin installed for other things. Perhaps that’s conflicting somehow?

Support
Nikedemos
3 months 7 days ago

Hi there! It’s because Facepunch has recently overhauled the game’ AI logic, which broke Oxide’s targetting hooks. Oxide has re-introduced a replacement for that hook recently but I haven’t had the time to implement it yet. I’m working on a 1.0.5 update which will bring back the ability to decide targetting, so make sure you join my discord at https://discord.gg/jYdnT2N to get the latest alpha builds/ plugin incompatibilities sorted. Once you join, DM me your order ID so I can grant you Verified roles!

Customer
Edward van Delden
2 months 5 days ago

Can someone explain to me how I manage to get the cargo event above the ground? They’re driving in the tunnel now and I can’t get it up.

Support
Nikedemos
2 months 5 days ago

Hi there! Most likely you don’t have any workcarts spawning on the surface. Make sure you use a plugin like Workcart Spawner or one that comes with a custom map, like Gruber’s Last Train. Cargo Train Event activates an ALREADY EXISTING train and makes it intp a cargo one – it doesn’t spawn any new trains in. Join the discord at https://discord.gg/jYdnT2N because discussion page is a horrible place for tech support 😉

Customer
BetterDeadThanZed
2 months 1 hour ago

I’m testing this with Last Train. It seems that it’s only spawning the event on the underground railroad. Is there a way to get this to spawn on the railroad on the surface?

Customer
BetterDeadThanZed
2 months 1 hour ago

I just read the reply above mine. I will make sure that I have carts spawning above ground.

Customer
BetterDeadThanZed
1 month 23 days ago

I am using this plugin with Last Train. So far it seems it’s only spawning underground. I have the Stations plugin on my server, so workcarts should be spawning there.

Customer
Anthony Villarreal
1 month 17 days ago

Anyway we can get a function to disable the chat notif if were using the notify plugin??

 
How do I use this .zip/.7z file I just purchased on my server?

• First, you want to unzip the file. You can do so by just double-clicking it to open, then drag the contents to the desired location (you may need to install an external unzipping software if you don’t already have one such as 7zip or winrar)
• Next you will find either a structure of folders or just the .cs file itself (it’s the actual plugin file itself).
• After that just install the .cs (plugin file) into your …/oxide/plugins/ folder where you will install plugins you ever need to.

Additionally, here’s a great video that easily covers adding a plugin to your server if you need! https://youtu.be/yWC_p97FhQA

• Installation is not included with any products on the site, however, if needed we may assist if you reach out to our support.