Hi @Nikedemos! Can you please add PveMode integration? This would be amazing for us that are running PVE Servers.
Thank you!
Cargo Train Event
$24.99
Sold by: NikedemosIt’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.
- Description
- Reviews (26)
- Version History
- Discussions (6)
- Setup
- Product Enquiry
Description
Description
Cargo Train Event
Questions? Support? Join the discord: https://discord.nikhub.dev
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
Reviews (26)
26 reviews for Cargo Train Event
Only logged in customers who have purchased this product may leave a review.
Version History
- Updated Update for the December 2024 forced wipe
- Added Added an optional harmony fix for tunnel dweller / scientist pair targetting
- Fixed Fixed the ever-growing console spam on save about entity being null
- Updated Update for October 2024 forced wipe
- Fixed Fixed the bug causing 0 fuel to be put in the Workcart tank instead of 2147483646. It caused the train to never move from its starting spot. Alternatively, that massive amount of fuel would sometimes overstay its welcome after the driver had been killed. Both issues sorted.
- Updated Update for July 2024 forced wipe
- Updated Update for May 2023 forced wipe
- Updated Update for April 2023 forced wipe
- Fixed Fixed the Prevent Looting issues so no more patching needed (and other things, by using skin ID instead of Owner ID for identification, now the OwnerID is 0)
- Fixed Fixed the wrong loot placement on large trains, for now locomotives won't be turned into event carts
- Updated Update for force wipe changes
- Updated Update for force wipe changes
- Fixed Fixed the issue where a Cargo Workcart would drop ridiculously large amounts of Low Grade fuel on event end if the driver was still alive before the explosion
- Updated Updated for December 2021 forced wipe changes
- Added Bradley APC, Patrol Helicopter and Turrets will now ignore Scientists/Drivers on the Train
- Fixed Fixed errors in the console related to GUIAnnouncements colours
- Fixed Fixed issue with Kits where Scientists wouldn't be able to redeem them
- 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).
- 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.
- 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.
- Fixed Fixed GUIAnnouncement compatibility
- 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.
- 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
- 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.
- Added Added support for Notify plugin and there's a new config value associated with that, UseNotifyPlugin (true by default).
- Fixed Fixed tunnel dwellers and train scientists targetting and eventually killing the train driver after June 2021 force wipe update
- Fixed Fixed the issue with the train staying still after reaching a dead end face-forward. Now the train should reverse.
- 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.
- Added Added a bunch of hooks, too many to list them here, so check out the section on the product page
- 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.
- 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.
- Fixed Fixed a compatibility issue with DeathNotes wrongfully displaying chat messages involving the Train Driver NPC
- Fixed Fixed null error when running the commands from server console and messages not displaying
- Fixed Fixed admin permission not being registered
- Fixed Fixed normal trains being indestructible - for good, this time!
- Fixed Fixed the issue with scientists leaving the train, now they hop right back on should that happen
- Added Added Fuel Manager compatibility (and 2 new lang strings to go with it)
- Added Added TruePVE combatibility (and the new config value, TruePVERadius - set to 0 to disable this feature)
- Fixed Fixed a typo preventing ALL trains from taking damage - thanks for spotting the issue, Darko!
- Fixed Fixed a problem where re-generating the config because of failure to parse the file would not generate workcart definitions, leaving them empty
- Added Added the chat prefix (along with the colour) to the language file - thanks for the suggestion, Alter Ego!
Discussions (6)
6 thoughts on "Cargo Train Event"
Leave a reply
-
-
The cargo train cart comes above ground and then gets stuck behind cargo wagons. Can you force this plugin to stay on underground rails please?
-
Very cool mod, but it gets stuck behind other trains. Would be great if it could just push the other trains.
-
Has he fixed this yet like other tain plugin or does this still get stuck on trains?
-
Getting the following error when running trainevent_now:
Failed executing console command ‘trainevent_now’ in ‘CargoTrainEvent v1.0.16 by Nikedemos’ [callback] (Value cannot be null.
Parameter name: vehicle)
at new BaseVehicle+Enumerable(BaseVehicle vehicle)
at Enumerable BaseVehicle.get_allMountPoints()
at bool BaseVehicle.HasDriver()
at List Oxide.Plugins.CargoTrainEvent.GetEligibleTrains(bool skipAllChecks) in /home/container/carbon/plugins/CargoTrainEvent.cs:line 3108
at bool Oxide.Plugins.CargoTrainEvent.TrainEventRun() in /home/container/carbon/plugins/CargoTrainEvent.cs:line 3153
at void Oxide.Plugins.CargoTrainEvent.ConsoleCommandTrainEvent(Arg arg) in /home/container/carbon/plugins/CargoTrainEvent.cs:line 3399
at object System.Reflection.RuntimeMethodInfo.Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture) -
Please add a map maker name because I only hold my event underground so I want it say Underground Train or something like that.
Setup
Plugin FAQ – 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.
Currently all products on Lone.Design will be contained within a zipped file which is the .7z or .zip that you see. I believe windows 10 and up can unzip on its own without 3rd party tools, but in that case, if you’re unfamiliar with zipped files here are 2 programs I recommend to easily unzip zipped files.
Video On How to Zip and Unzip: https://youtu.be/Ep-L3PjBPCk (TechInsider Youtube Channel)
Zipping/Unzipping Tools
Winrar https://www.rarlab.com (I used to use for years, but works great!)
7zip https://www.7-zip.org/a/7z2107-x64.exe (the one I use currently)
Gruber (verified owner) –
Wow, I’ve been waiting for this for a long time
MeinRust (verified owner) –
Great plugin, very good job! We can only recommend it!
raowlf (verified owner) –
Gives trains a use again.
Ryan Moore (verified owner) –
It’s a great plugin. Great work man! Players love it!
deyowan (verified owner) –
Very good plugin, easy to set up but can also be configured very detailed! Amazing Developer assistance as well!
JoCarter (verified owner) –
Another great one from Nikedemos! Easy to setup and the players love it. It has really given the new tunnels life.
CloysterDitch (verified owner) –
Great plugin with lots of configuration, and an awesome Dev with a great support community.
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 :)
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.
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 :)
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.
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
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.
Mods4Rust (verified owner) –
Really nice plugin, adds life to any server.
gunhoo001 (verified owner) –
A nice plugin!
The best event for PVE!
Great support!
Wrecks (verified owner) –
Super cool plugin :)
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!!
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.
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.
Justin Lott (verified owner) –
Love this event.
strand (verified owner) –
A great event for a server with tracks. Every option can be changed.
Matthew pease (verified owner) –
unfortunately I would not recommend this plugin with the current update that face punche has rolled out to include the above ground tracks and train cars the cargo train event literally gets stuck on every train car on the track it would require a lot of work to get it working correctly such as something to remove the trains from the tracks above “entity reducer from umod” and “work cart spawner” after these plug-ins were installed it would work pretty well but I still would not recommend it it’s a lot of headache for 1 plugin
Marmel1810 (verified owner) –
My gamers love this plugin
You never get bored and with the green track on the tracks you always have fun chasing the train
TDPcorndiggitydoggg (verified owner) –
Been using this for a long time and it’s been something I always keep running on every map!
harambe12023 (verified owner) –
Amazing plugin. I remember seeing this plugin on servers I used to play a couple years back and glad to see it still working today. Highly recommended especially for PvE servers.
richard.tester (verified owner) –
Neat plugin from a great developer!