Semi Trailer delivery plugin for Karuza's custom semi trucks
Try Before You Buy at Karuza's Plugin Corner - https://discord.gg/jxwVpn9mEq
The Trucker Event brings utility and some role play fun to the Karuza semi trucks and any similar custom vehicle truck/trailer combos.
Trailers will spawn at configured monuments, marked on the map, ready to be picked up.
Trailers automatically spawn at configured monuments and must be picked up by the trucks. Players then transport them to randomized delivery zones within a specified time limit, which will earn them a reward of your choosing. Additionally, if all trailers during the event runtime are delivered, a bonus reward can be given to all players that successfully delivered a trailer.
The plugin features a flexible route system, allowing fully random deliveries or predefined routes between specific monuments. You can configure different delivery types which can yield differetn rewards, time limits, and spawn locations.
Players receive guidance through map markers that display trailer locations, as well as marking delivery locations when towed.
The reward system is customizable, supporting commands (with player steamid wildcard support), item rewards, and chance-based payouts. You can also grant bonus rewards when all deliveries are completed, encouraging full participation.
Several vanilla monuments are pre-configured with trailer spawn positions and drop off locations. You can easily change the locations or add additional monuments in the config file. I recommend using rustedit to define positions relative to the monument.
With built-in commands, you can create custom monument positions, add trailer spawn points, and define delivery zones in-game.
The event is aimed at PVE/RP servers, however PVP action can still take place in the form of destroying trailers to prevent players getting rewarded, or hijacking towed trailers from other players.
An optional leaderboard plugin is also available for free.
kot.start - forces the event to start (works in chat and console)
kot.stop - forces the event to end (worksd in chat and console)
truckercreate "position name" - allows you to create a custom position anchor, for example at a custom monument
truckeraddspawn "position name" - adds a trailer spawn point relative to the custom position name configured above. Spawn rotation will be the direction you are looking when running this command.
truckerdrop "position name" - add a delivery zone relative to the custom position name configured above.
void OnTruckerStart(int eventId) - called when the event starts
void OnTruckerEnd(Dictionary<string, object> summary) - called when the event ends, where summary contains:
bool IsTruckerActive() - returns true if the event is currently running
| 1 | { |
| 2 | "Auto Start / trailer count": { |
| 3 | "Enabled": true, |
| 4 | "Run event every x seconds": 3600, |
| 5 | "Max trailers per event": 5, |
| 6 | "Delay between spawning each trailer": 5.0 |
| 7 | }, |
| 8 | "Trailer map marker settings (follows trailer)": { |
| 9 | "Enabled": true, |
| 10 | "Vending marker enabled": true, |
| 11 | "Radius marker enabled": true, |
| 12 | "Radius marker radius": 0.25, |
| 13 | "Radius marker alpha": 0.5, |
| 14 | "Radius marker color": { |
| 15 | "R": 1.0, |
| 16 | "G": 0.6, |
| 17 | "B": 0.1 |
| 18 | }, |
| 19 | "Marker follow update seconds": 3.0 |
| 20 | }, |
| 21 | "Delivery zone markers (visible to driver)": { |
| 22 | "Enabled": true, |
| 23 | "Vending marker enabled": true, |
| 24 | "Radius marker enabled": true, |
| 25 | "Radius marker radius": 0.25, |
| 26 | "Radius marker alpha": 0.6, |
| 27 | "Radius marker color": { |
| 28 | "R": 0.15, |
| 29 | "G": 0.85, |
| 30 | "B": 1.0 |
| 31 | } |
| 32 | }, |
| 33 | "Default time limit per delivery trailer": 900, |
| 34 | "Trailer prefabs": [ |
| 35 | "assets/custom/SemiTrailer_green.prefab", |
| 36 | "assets/custom/SemiTrailer_blue.prefab", |
| 37 | "assets/custom/SemiTrailer_orange.prefab", |
| 38 | "assets/custom/SemiTrailer_yellow.prefab" |
| 39 | ], |
| 40 | "Delivery types": [ |
| 41 | { |
| 42 | "Key": "fish", |
| 43 | "Display name": "Fish Delivery", |
| 44 | "Marker text": "Fish Delivery", |
| 45 | "Rewards": [ |
| 46 | { |
| 47 | "Type": "command", |
| 48 | "Command (for Type=command)": "say (SAMPLE COMMAND) %name% (%steamid%) completed Fish Delivery!", |
| 49 | "Items (for Type=items)": [] |
| 50 | }, |
| 51 | { |
| 52 | "Type": "items", |
| 53 | "Command (for Type=command)": null, |
| 54 | "Items (for Type=items)": [ |
| 55 | { |
| 56 | "Shortname": "scrap", |
| 57 | "Amount": 100, |
| 58 | "Display name (optional)": null, |
| 59 | "Skin ID (optional)": 0, |
| 60 | "Chance % (0-100)": 100.0 |
| 61 | } |
| 62 | ] |
| 63 | } |
| 64 | ] |
| 65 | }, |
| 66 | { |
| 67 | "Key": "weapons", |
| 68 | "Display name": "Weapons Delivery", |
| 69 | "Marker text": "Weapons Delivery", |
| 70 | "Rewards": [ |
| 71 | { |
| 72 | "Type": "command", |
| 73 | "Command (for Type=command)": "say (SAMPLE COMMAND) %name% (%steamid%) completed Weapons Delivery!", |
| 74 | "Items (for Type=items)": [] |
| 75 | }, |
| 76 | { |
| 77 | "Type": "items", |
| 78 | "Command (for Type=command)": null, |
| 79 | "Items (for Type=items)": [ |
| 80 | { |
| 81 | "Shortname": "scrap", |
| 82 | "Amount": 200, |
| 83 | "Display name (optional)": null, |
| 84 | "Skin ID (optional)": 0, |
| 85 | "Chance % (0-100)": 100.0 |
| 86 | } |
| 87 | ] |
| 88 | } |
| 89 | ] |
| 90 | } |
| 91 | ], |
| 92 | "Bonus reward if all trailers delivered. Awarded to all players who completed a delivery.": [ |
| 93 | { |
| 94 | "Type": "items", |
| 95 | "Command (for Type=command)": null, |
| 96 | "Items (for Type=items)": [ |
| 97 | { |
| 98 | "Shortname": "supply.signal", |
| 99 | "Amount": 1, |
| 100 | "Display name (optional)": null, |
| 101 | "Skin ID (optional)": 0, |
| 102 | "Chance % (0-100)": 100.0 |
| 103 | } |
| 104 | ] |
| 105 | }, |
| 106 | { |
| 107 | "Type": "command", |
| 108 | "Command (for Type=command)": "say (SAMPLE COMMAND) Bonus payout to %name% for contributing to 100% trailer delivery!", |
| 109 | "Items (for Type=items)": [] |
| 110 | } |
| 111 | ], |
| 112 | "Use custom routes?": false, |
| 113 | "Custom routes": [ |
| 114 | { |
| 115 | "Route name": "Train Yard -> Gas Station (Fish)", |
| 116 | "Spawn monument display name": "Train Yard", |
| 117 | "Delivery monument display name": "Gas Station", |
| 118 | "Allowed delivery type": [ |
| 119 | "fish" |
| 120 | ], |
| 121 | "Delivery time limit (0 = use default)": 900 |
| 122 | } |
| 123 | ], |
| 124 | "Monuments": { |
| 125 | "trainyard_1.prefab": { |
| 126 | "Enabled": true, |
| 127 | "Display name": "Train Yard", |
| 128 | "Allowed delivery types": [ |
| 129 | "fish", |
| 130 | "weapons" |
| 131 | ], |
| 132 | "Spawn points": [ |
| 133 | { |
| 134 | "Local position": { |
| 135 | "x": -95.505, |
| 136 | "y": 1.126, |
| 137 | "z": -9.582 |
| 138 | }, |
| 139 | "Local rotation": { |
| 140 | "x": 0.0, |
| 141 | "y": 180.0, |
| 142 | "z": 0.0 |
| 143 | } |
| 144 | }, |
| 145 | { |
| 146 | "Local position": { |
| 147 | "x": 100.286, |
| 148 | "y": 1.126, |
| 149 | "z": -78.051 |
| 150 | }, |
| 151 | "Local rotation": { |
| 152 | "x": 0.0, |
| 153 | "y": 90.0, |
| 154 | "z": 0.0 |
| 155 | } |
| 156 | } |
| 157 | ], |
| 158 | "Delivery zones": [ |
| 159 | { |
| 160 | "Local position": { |
| 161 | "x": -95.634, |
| 162 | "y": 0.138, |
| 163 | "z": -50.857 |
| 164 | }, |
| 165 | "Radius": 13.0 |
| 166 | } |
| 167 | ] |
| 168 | }, |
| 169 | "harbor_1.prefab": { |
| 170 | "Enabled": true, |
| 171 | "Display name": "Big Harbor", |
| 172 | "Allowed delivery types": [ |
| 173 | "fish", |
| 174 | "weapons" |
| 175 | ], |
| 176 | "Spawn points": [ |
| 177 | { |
| 178 | "Local position": { |
| 179 | "x": -104.668, |
| 180 | "y": 5.25, |
| 181 | "z": -54.947 |
| 182 | }, |
| 183 | "Local rotation": { |
| 184 | "x": 0.0, |
| 185 | "y": 0.0, |
| 186 | "z": 0.0 |
| 187 | } |
| 188 | }, |
| 189 | { |
| 190 | "Local position": { |
| 191 | "x": 45.13, |
| 192 | "y": 5.25, |
| 193 | "z": 5.658 |
| 194 | }, |
| 195 | "Local rotation": { |
| 196 | "x": 0.0, |
| 197 | "y": 180.0, |
| 198 | "z": 0.0 |
| 199 | } |
| 200 | } |
| 201 | ], |
| 202 | "Delivery zones": [ |
| 203 | { |
| 204 | "Local position": { |
| 205 | "x": -36.182, |
| 206 | "y": 3.576, |
| 207 | "z": -37.616 |
| 208 | }, |
| 209 | "Radius": 13.0 |
| 210 | } |
| 211 | ] |
| 212 | }, |
| 213 | "harbor_2.prefab": { |
| 214 | "Enabled": true, |
| 215 | "Display name": "Small Harbor", |
| 216 | "Allowed delivery types": [ |
| 217 | "fish", |
| 218 | "weapons" |
| 219 | ], |
| 220 | "Spawn points": [ |
| 221 | { |
| 222 | "Local position": { |
| 223 | "x": -39.895, |
| 224 | "y": 5.0, |
| 225 | "z": -100.995 |
| 226 | }, |
| 227 | "Local rotation": { |
| 228 | "x": 0.0, |
| 229 | "y": 340.0, |
| 230 | "z": 0.0 |
| 231 | } |
| 232 | }, |
| 233 | { |
| 234 | "Local position": { |
| 235 | "x": -50.213, |
| 236 | "y": 5.0, |
| 237 | "z": -100.873 |
| 238 | }, |
| 239 | "Local rotation": { |
| 240 | "x": 0.0, |
| 241 | "y": 340.0, |
| 242 | "z": 0.0 |
| 243 | } |
| 244 | } |
| 245 | ], |
| 246 | "Delivery zones": [ |
| 247 | { |
| 248 | "Local position": { |
| 249 | "x": -65.475, |
| 250 | "y": 3.876, |
| 251 | "z": 15.434 |
| 252 | }, |
| 253 | "Radius": 13.0 |
| 254 | } |
| 255 | ] |
| 256 | }, |
| 257 | "airfield_1.prefab": { |
| 258 | "Enabled": true, |
| 259 | "Display name": "Airfield", |
| 260 | "Allowed delivery types": [ |
| 261 | "fish", |
| 262 | "weapons" |
| 263 | ], |
| 264 | "Spawn points": [ |
| 265 | { |
| 266 | "Local position": { |
| 267 | "x": -31.412, |
| 268 | "y": 1.3, |
| 269 | "z": 13.228 |
| 270 | }, |
| 271 | "Local rotation": { |
| 272 | "x": 0.0, |
| 273 | "y": 135.0, |
| 274 | "z": 0.0 |
| 275 | } |
| 276 | }, |
| 277 | { |
| 278 | "Local position": { |
| 279 | "x": -38.44, |
| 280 | "y": 1.3, |
| 281 | "z": 10.754 |
| 282 | }, |
| 283 | "Local rotation": { |
| 284 | "x": 0.0, |
| 285 | "y": 135.0, |
| 286 | "z": 0.0 |
| 287 | } |
| 288 | } |
| 289 | ], |
| 290 | "Delivery zones": [ |
| 291 | { |
| 292 | "Local position": { |
| 293 | "x": -15.386, |
| 294 | "y": 0.3, |
| 295 | "z": -59.078 |
| 296 | }, |
| 297 | "Radius": 13.0 |
| 298 | } |
| 299 | ] |
| 300 | }, |
| 301 | "gas_station_1.prefab": { |
| 302 | "Enabled": true, |
| 303 | "Display name": "Gas Station", |
| 304 | "Allowed delivery types": [], |
| 305 | "Spawn points": [ |
| 306 | { |
| 307 | "Local position": { |
| 308 | "x": -0.642, |
| 309 | "y": 3.5, |
| 310 | "z": 9.108 |
| 311 | }, |
| 312 | "Local rotation": { |
| 313 | "x": 0.0, |
| 314 | "y": 90.0, |
| 315 | "z": 0.0 |
| 316 | } |
| 317 | } |
| 318 | ], |
| 319 | "Delivery zones": [ |
| 320 | { |
| 321 | "Local position": { |
| 322 | "x": 5.363, |
| 323 | "y": 0.0, |
| 324 | "z": -17.232 |
| 325 | }, |
| 326 | "Radius": 10.0 |
| 327 | } |
| 328 | ] |
| 329 | }, |
| 330 | "ferry_terminal_1.prefab": { |
| 331 | "Enabled": true, |
| 332 | "Display name": "Ferry Terminal", |
| 333 | "Allowed delivery types": [ |
| 334 | "fish", |
| 335 | "weapons" |
| 336 | ], |
| 337 | "Spawn points": [ |
| 338 | { |
| 339 | "Local position": { |
| 340 | "x": -17.774, |
| 341 | "y": 5.5, |
| 342 | "z": -34.886 |
| 343 | }, |
| 344 | "Local rotation": { |
| 345 | "x": 0.0, |
| 346 | "y": 297.768, |
| 347 | "z": 0.0 |
| 348 | } |
| 349 | }, |
| 350 | { |
| 351 | "Local position": { |
| 352 | "x": -18.32, |
| 353 | "y": 5.5, |
| 354 | "z": -40.456 |
| 355 | }, |
| 356 | "Local rotation": { |
| 357 | "x": 0.0, |
| 358 | "y": 297.768, |
| 359 | "z": 0.0 |
| 360 | } |
| 361 | } |
| 362 | ], |
| 363 | "Delivery zones": [ |
| 364 | { |
| 365 | "Local position": { |
| 366 | "x": -36.639, |
| 367 | "y": 5.145, |
| 368 | "z": -63.354 |
| 369 | }, |
| 370 | "Radius": 13.0 |
| 371 | } |
| 372 | ] |
| 373 | }, |
| 374 | "powerplant_1.prefab": { |
| 375 | "Enabled": true, |
| 376 | "Display name": "Power Plant", |
| 377 | "Allowed delivery types": [ |
| 378 | "fish", |
| 379 | "weapons" |
| 380 | ], |
| 381 | "Spawn points": [ |
| 382 | { |
| 383 | "Local position": { |
| 384 | "x": -13.821, |
| 385 | "y": 0.75, |
| 386 | "z": 13.762 |
| 387 | }, |
| 388 | "Local rotation": { |
| 389 | "x": 0.0, |
| 390 | "y": 90.0, |
| 391 | "z": 0.0 |
| 392 | } |
| 393 | }, |
| 394 | { |
| 395 | "Local position": { |
| 396 | "x": 48.517, |
| 397 | "y": 0.75, |
| 398 | "z": 59.401 |
| 399 | }, |
| 400 | "Local rotation": { |
| 401 | "x": 0.0, |
| 402 | "y": 180.0, |
| 403 | "z": 0.0 |
| 404 | } |
| 405 | } |
| 406 | ], |
| 407 | "Delivery zones": [ |
| 408 | { |
| 409 | "Local position": { |
| 410 | "x": 18.09, |
| 411 | "y": 0.138, |
| 412 | "z": 41.286 |
| 413 | }, |
| 414 | "Radius": 13.0 |
| 415 | } |
| 416 | ] |
| 417 | }, |
| 418 | "water_treatment_plant_1.prefab": { |
| 419 | "Enabled": true, |
| 420 | "Display name": "Water Treatment Plant", |
| 421 | "Allowed delivery types": [ |
| 422 | "fish", |
| 423 | "weapons" |
| 424 | ], |
| 425 | "Spawn points": [ |
| 426 | { |
| 427 | "Local position": { |
| 428 | "x": -48.63, |
| 429 | "y": 1.244, |
| 430 | "z": -150.399 |
| 431 | }, |
| 432 | "Local rotation": { |
| 433 | "x": 0.0, |
| 434 | "y": 90.0, |
| 435 | "z": 0.0 |
| 436 | } |
| 437 | }, |
| 438 | { |
| 439 | "Local position": { |
| 440 | "x": 45.18, |
| 441 | "y": 1.244, |
| 442 | "z": 6.831 |
| 443 | }, |
| 444 | "Local rotation": { |
| 445 | "x": 0.0, |
| 446 | "y": 0.0, |
| 447 | "z": 0.0 |
| 448 | } |
| 449 | } |
| 450 | ], |
| 451 | "Delivery zones": [ |
| 452 | { |
| 453 | "Local position": { |
| 454 | "x": 15.898, |
| 455 | "y": 0.176, |
| 456 | "z": -86.208 |
| 457 | }, |
| 458 | "Radius": 20.0 |
| 459 | } |
| 460 | ] |
| 461 | }, |
| 462 | "supermarket_1.prefab": { |
| 463 | "Enabled": true, |
| 464 | "Display name": "Supermarket", |
| 465 | "Allowed delivery types": [ |
| 466 | "fish", |
| 467 | "weapons" |
| 468 | ], |
| 469 | "Spawn points": [ |
| 470 | { |
| 471 | "Local position": { |
| 472 | "x": 16.531, |
| 473 | "y": 1.2, |
| 474 | "z": 3.311 |
| 475 | }, |
| 476 | "Local rotation": { |
| 477 | "x": 0.0, |
| 478 | "y": 180.0, |
| 479 | "z": 0.0 |
| 480 | } |
| 481 | } |
| 482 | ], |
| 483 | "Delivery zones": [ |
| 484 | { |
| 485 | "Local position": { |
| 486 | "x": 6.489, |
| 487 | "y": 0.0, |
| 488 | "z": -19.524 |
| 489 | }, |
| 490 | "Radius": 13.0 |
| 491 | } |
| 492 | ] |
| 493 | }, |
| 494 | "warehouse.prefab": { |
| 495 | "Enabled": true, |
| 496 | "Display name": "Warehouse", |
| 497 | "Allowed delivery types": [ |
| 498 | "fish", |
| 499 | "weapons" |
| 500 | ], |
| 501 | "Spawn points": [ |
| 502 | { |
| 503 | "Local position": { |
| 504 | "x": -17.745, |
| 505 | "y": 1.0, |
| 506 | "z": -11.832 |
| 507 | }, |
| 508 | "Local rotation": { |
| 509 | "x": 0.0, |
| 510 | "y": 180.0, |
| 511 | "z": 0.0 |
| 512 | } |
| 513 | } |
| 514 | ], |
| 515 | "Delivery zones": [ |
| 516 | { |
| 517 | "Local position": { |
| 518 | "x": 19.743, |
| 519 | "y": 0.034, |
| 520 | "z": -7.603 |
| 521 | }, |
| 522 | "Radius": 13.0 |
| 523 | } |
| 524 | ] |
| 525 | } |
| 526 | }, |
| 527 | "Custom monuments": [], |
| 528 | "Wipe stats on server wipe": true, |
| 529 | "Debug": { |
| 530 | "Enabled": false, |
| 531 | "Print to chat": false, |
| 532 | "Print to console": true |
| 533 | } |
| 534 | } |