Tugboat Pirates

The Tugboat Pirates plugin experience the thrill of high-seas plunder with “Tugboat Pirates”. Encounter a Tugboat, brimming with NPC pirates protecting their valuable loot. Engage in intense battles, eliminate the captain for an access code, and seize the treasure.

Features of Tugboat Pirates

Tugboat with Pirate NPCs and loot patrols the ocean

Kill the captain to get access to the loot room

Fully configurable boat interior

Boat location marked on the map

Fully customizable NPCs (you can even give them rocket launchers in their kits)

Event starts automatically (configurable time, can be disabled)

Announcements via gametip and/or chat

NPC are turret NPC that do not move from their station on the Tugboat

Door code of the loot room can be found in the captain’s corpse (pirate quotes can be changed in the config)

Commands

All Commands require the admin permission

/tugboatstart – Manually start the event
/tugboatstop – Manually end the event

Hooks

(void) OnTugboatPiratesStarted() // Called when the event has started
(void) OnTugboatPiratesEnded() // Called after the event has ended

Permissions

tugboatpirates.admin – Required to use admin commands

Configuration

{
    "Time between events (minutes, set to -1 to disable scheduled events)": 60,
    "Event duration (seconds)": 3600,
    "Show toast when event starts": true,
    "Announce event in chat": true,
    "Boat leave time before despawning (seconds)": 120,
    "Time before boat despawn when captain is killed (seconds)": 1200,
    "Boat configurations": [
        {
            "Location offset (used when spawning multiple boats)": {
                "x": 0.0,
                "y": 0.0,
                "z": 0.0
            },
            "Npc profile for captain (must be a valid profile)": "captain",
            "Npc spawn locations and profiles": {
                "back_right": "pirate_lr",
                "back_left": "pirate_lr",
                "upper_front_right": "pirate_lr",
                "upper_front_left": "pirate_lr",
                "upper_back_right": "pirate_lr",
                "upper_back_left": "pirate_lr",
                "roof_back": "pirate_lr",
                "entrance_right": "pirate_lr",
                "entrance_left": "pirate_lr",
                "roof_right": "pirate_lr",
                "roof_left": "pirate_lr",
                "front": "pirate_lr",
                "right": "pirate_mp5",
                "left": "pirate_mp5"
            },
            "Interior objects (crates, decoration, etc.)": [
                {
                    "Prefab path": "assets/prefabs/deployable/chinooklockedcrate/codelockedhackablecrate.prefab",
                    "Rotation": 180.0,
                    "Position on boat": {
                        "x": 0.0,
                        "y": 2.0,
                        "z": 4.2
                    },
                    "Skin id": 1394363785,
                    "Loot profile (only for crates, leave empty for default loot)": ""
                },
                // Removed some lines for readability reasons
            ]
        }
    ],
    "Npc profiles": {
        "pirate_lr": {
            "name": "Pirate",
            "health": 200.0,
            "enableRadio": true,
            "senseRange": 50.0,
            "visionCone": 135.0,
            "damageScale": 1.0,
            "memoryDuration": 60.0,
            "lootProfile": "pirate",
            "kit": "",
            "Clothing items": [
                {
                    "shortName": "hat.boonie",
                    "amount": 1,
                    "skinId": 965553937
                },
                {
                    "shortName": "hoodie",
                    "amount": 1,
                    "skinId": 2984978438
                },
                {
                    "shortName": "pants",
                    "amount": 1,
                    "skinId": 2984977257
                },
                {
                    "shortName": "attire.hide.boots",
                    "amount": 1,
                    "skinId": 861468674
                }
            ],
            "Belt items": [
                {
                    "shortName": "rifle.lr300",
                    "amount": 1,
                    "skinId": 0
                }
            ]
        },
        "pirate_mp5": {
            "name": "Pirate",
            "health": 150.0,
            "enableRadio": true,
            "senseRange": 50.0,
            "visionCone": 135.0,
            "damageScale": 1.0,
            "memoryDuration": 60.0,
            "lootProfile": "pirate",
            "kit": "",
            "Clothing items": [
                {
                    "shortName": "hat.boonie",
                    "amount": 1,
                    "skinId": 965553937
                },
                {
                    "shortName": "hoodie",
                    "amount": 1,
                    "skinId": 2984978438
                },
                {
                    "shortName": "pants",
                    "amount": 1,
                    "skinId": 2984977257
                },
                {
                    "shortName": "attire.hide.boots",
                    "amount": 1,
                    "skinId": 861468674
                }
            ],
            "Belt items": [
                {
                    "shortName": "smg.mp5",
                    "amount": 1,
                    "skinId": 0
                }
            ]
        },
        "captain": {
            "name": "Captain",
            "health": 100.0,
            "enableRadio": false,
            "senseRange": 0.0,
            "visionCone": 0.0,
            "damageScale": 1.0,
            "memoryDuration": 0.0,
            "lootProfile": "pirate",
            "kit": "",
            "Clothing items": [
                {
                    "shortName": "hat.boonie",
                    "amount": 1,
                    "skinId": 965553937
                },
                {
                    "shortName": "tshirt",
                    "amount": 1,
                    "skinId": 811762477
                },
                {
                    "shortName": "pants.shorts",
                    "amount": 1,
                    "skinId": 849256923
                },
                {
                    "shortName": "attire.hide.boots",
                    "amount": 1,
                    "skinId": 861468674
                }
            ],
            "Belt items": [
                {
                    "shortName": "mace.baseballbat",
                    "amount": 1,
                    "skinId": 0
                }
            ]
        }
    },
    "Loot profiles": {
        "crate_2": [
            {
                "Short name": "scrap",
                "Min amount": 2,
                "Max amount": 20,
                "Chance": 1.0,
                "Skin id": 0
            },
            {
                "Short name": "metal.refined",
                "Min amount": 4,
                "Max amount": 8,
                "Chance": 0.5,
                "Skin id": 0
            },
            {
                "Short name": "gears",
                "Min amount": 1,
                "Max amount": 3,
                "Chance": 0.2,
                "Skin id": 0
            },
            {
                "Short name": "sewingkit",
                "Min amount": 1,
                "Max amount": 3,
                "Chance": 0.2,
                "Skin id": 0
            },
            {
                "Short name": "rope",
                "Min amount": 1,
                "Max amount": 3,
                "Chance": 0.2,
                "Skin id": 0
            },
            {
                "Short name": "sheetmetal",
                "Min amount": 1,
                "Max amount": 2,
                "Chance": 0.2,
                "Skin id": 0
            },
            {
                "Short name": "grenade.molotov",
                "Min amount": 1,
                "Max amount": 2,
                "Chance": 0.1,
                "Skin id": 0
            },
            {
                "Short name": "grenade.f1",
                "Min amount": 1,
                "Max amount": 4,
                "Chance": 0.1,
                "Skin id": 0
            },
            {
                "Short name": "telephone",
                "Min amount": 1,
                "Max amount": 1,
                "Chance": 0.1,
                "Skin id": 0
            },
            {
                "Short name": "multiplegrenadelauncher",
                "Min amount": 1,
                "Max amount": 1,
                "Chance": 0.1,
                "Skin id": 0
            }
        ],
        "pirate": [
            {
                "Short name": "scrap",
                "Min amount": 2,
                "Max amount": 6,
                "Chance": 1.0,
                "Skin id": 0
            },
            {
                "Short name": "bottle.vodka",
                "Min amount": 1,
                "Max amount": 1,
                "Chance": 0.7,
                "Skin id": 0
            },
            {
                "Short name": "pistol.eoka",
                "Min amount": 1,
                "Max amount": 1,
                "Chance": 0.2,
                "Skin id": 0
            },
            {
                "Short name": "ammo.handmade.shell",
                "Min amount": 5,
                "Max amount": 10,
                "Chance": 0.2,
                "Skin id": 0
            },
            {
                "Short name": "rope",
                "Min amount": 1,
                "Max amount": 3,
                "Chance": 0.3,
                "Skin id": 0
            },
            {
                "Short name": "sewingkit",
                "Min amount": 1,
                "Max amount": 2,
                "Chance": 0.3,
                "Skin id": 0
            }
        ]
    },
    "Priate quotes (inluded in captain's note)": [
        "If rum can’t fix it, ye are not using enough rum.",
        "But… why is the rum gone?",
        "Be who you arrrr...",
        "All for rum and rum for all!",
        "Land was created to provide a place for boats to visit.",
        "If ye can read this ye be stupid."
    ]
}

Leave a Comment