# Engine Swaps

{% hint style="success" %}
In this file **`t1ger_tuningsystem/shared/engine_swaps.lua`** you can access all of these configurable options.
{% endhint %}

## Config.EngineSwaps

```lua
Config.EngineSwaps = {

    DefaultIcon = 'gear', -- default icon for listed engines in menu

	Hoist = { -- Hoist Configuration:
		model = 'imp_prop_engine_hoist_02a', -- hoist prop
        removeItem = true, -- set to false and item will not be removed on use. If true, item will be removed on use and re-added, when collecting the hoist.
        keybind = 47, -- keybind to handle hoist (place on ground)
        playSound = true, -- sound effects when attaching/detaching an engine to/from the hoist.
        smoothness = 150, -- number of counts the engine will go/up down (the higher the more smooth)
        delay = 10, -- delay in hoist handle (how fast should engine go(up down))
		boneId = 28422, -- boneId on player

        textUi = { -- textUi when carrying hoist:
            string = '[G] - Detach Hoist', -- string in textUi
            icon = 'location-crosshairs', -- icon 
            position = 'right-center', -- position
            style = {borderRadius = 0, backgroundColor = '#48BB78', color = 'white'} -- css
        },

		anim = {dict = 'anim@heists@box_carry@', name = 'idle', blendIn = 4.0, blendOut = 1.0, duration = -1, flags = 49}, -- carry animation
        offset = {
            ['carry'] = {pos = vector3(0.0, -0.5, -1.3), rot = vector3(-195.0, -180.0, 180.0)}, -- offset for carry animation with player
            ['engine'] = {pos = vector3(-0.2, -0.-1.10, 1.2), rot = vector3(0.0, 0.0, 0.0)}, -- offset for hoist hook attach point for engine
        },

        target = { -- do not change index[''] strings , do not change target.name. Only change icon, label and distance. 
            ['carry'] = {name = 'tuningsystem:target:carryHoist', icon = 'fa-solid fa-up-down-left-right', label = 'Carry Hoist', distance =  2.5}, -- carry target
            ['extract'] = {name = 'tuningsystem:target:extractEngine', icon = 'fa-solid fa-arrow-up-long', label = 'Extract Engine', distance =  2.0}, -- extract target
            ['attach'] = {name = 'tuningsystem:target:attachEngine', icon = 'fa-solid fa-link', label = 'Attach Engine', distance =  2.0}, -- attach target
            ['detach'] = {name = 'tuningsystem:target:detachEngine', icon = 'fa-solid fa-link-slash', label = 'Detach Engine', distance =  2.0}, -- detach target
            ['remove'] = {name = 'tuningsystem:target:removeHoist', icon = 'fa-solid fa-hand', label = 'Collect Hoist', distance =  2.0}, -- remove target
        }
	},

    -- target created on extracted engine to dump/delete the old engine prop:
    ExtractTarget = {
        label = 'Dump Engine', -- target label
        icon = 'fa-solid fa-trash-can', --target icon
        distance = 2.0 -- target distance
    },

    -- target created on vehicle at engien bone pos:
    VehicleTarget = { -- do not change index[''] strings , do not change target.name. Only change icon, label and distance. 
        ['access'] = {name = 'tuningsystem:target:accessVehicleEngine', icon = 'fa-solid fa-screwdriver', label = 'Access Engine Bay', distance =  5.0},
        ['complete'] = {name = 'tuningsystem:target:completeSwap', icon = 'fa-solid fa-screwdriver', label = 'Complete Engine Swap', distance =  5.0}
    },

    -- animation to access engien bay/complete engine swap
    RepairAnimation = {dict = 'mini@repair', name = 'fixing_a_player', blendIn = 2.0, blendOut = 2.0, duration = 3000, flags = 1},

    -- settings for point when extracting engine / installing new engine on the vehicle: 
    VehiclePoint = {
        distance = 5, -- distance for nearby function
        marker = {
            type = 20, -- type for the marker
            scale = vector3(0.25, 0.25, 0.25), -- scale for the marker
            color = { -- do not change the index[''] string names!
                ['default'] = vector4(194, 80, 80, 200), -- rgba color for default marker at engine on the vehicle
                ['success'] = vector4(63, 195, 128, 200), -- rgba color for marker and engine object outline when distance <= precision (success)
            }
        },
        precision = 0.15, -- distance from hoist hook to detach marker. The smaller the more precise player has to be before placing the hoist.
    },

    -- settings for point when attaching new engine to the hoist:
    EnginePoint = {
        distance = 5, -- distance for nearby function
        marker = {
            type = 30, -- type for the markers
            scale = vector3(0.1, 1.0, 1.2), -- scale for the markers
            color = { -- do not change the index[''] string names!
                ['engine'] = vector4(194, 80, 80, 200), -- rgba color for engine marker
                ['hoist'] = vector4(20, 20, 20, 200), -- rgba color for hoist marker
                ['success'] = vector4(63, 195, 128, 200), -- rgba color for engine marker when distance <= precision (success)
            }
        },
        precision = 0.15, -- distance from hoist marker to engine marker. The smaller the more precise player has to be before placing the hoist.
    }
}
```

Read the end-text comments!

## Config.Engines

All engines that can be swapped...


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.t1ger.net/resources/t1ger-tuning-system/guides/engine-swaps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
