Configuration Reference
All configuration lives in config .lua , which is escrow_ignore -listed — you always have full access to it.
General
MBT .Debug = false
MBT .DedicatedBucket = 400
MBT .EnableStashes = true
Option Type Default Description MBT .Debug boolean false Prints debug messages to the console. Disable in production. MBT .DedicatedBucket number 400 Routing bucket used to isolate the match from the main server. Change if it conflicts with another resource. MBT .EnableStashes boolean true When true and ox_inventory is present, player inventories are stashed at match start and returned at the end.
Match Timers & Rules
MBT .MinPlayer = { [ "Active" ] = true , [ "Amount" ] = 2 }
MBT .WaitPlayerTime = 10
MBT .EventDuration = 180
MBT .AreaDistance = 80
MBT .RepawnTime = 7
MBT .CaptureTime = 10
MBT .MaxKickAttempt = 5
MBT .UpdateVip = 3
MBT .UpdateFlagOwnerPosition = 10
MBT .PickupsRefresh = 15
Option Type Default Description MBT .MinPlayer.Active boolean true Enforce a minimum number of players before the match can start. MBT .MinPlayer.Amount number 2 Minimum players required to start.
Locations
MBT .Locations = {
[ "PreGameLocation" ] = vector3 (- 1052.37 , 4911.14 , 210.35 ),
[ "GameArea" ] = vector3 (- 1114.75 , 4923.61 , 202.05 ),
[ "StashLocation" ] = vector3 (- 1058.85 , 4915.94 , 212.0 ),
[ "FirstFlag" ] = vector3 (- 1165.240 , 4925.880 , 221.982 ),
[ "WinnerSpot" ] = {
[ "Coords" ] = vector3 (- 1169.88 , 4926.89 , 223.38 ),
[ "Heading" ] = 89.23
},
}
Key Purpose PreGameLocation Where the NPC stands; players spawn here before and after a match. GameArea Center of the arena; defines the boundary circle for MBT .AreaDistance . StashLocation Marker where players can deposit/withdraw inventory items. FirstFlag Where the flag spawns at match start. WinnerSpot
Spawn Points
MBT .SpawnPoints = {
vector4 ( ... ),
vector4 ( ... ),
-- add as many as you need
}
Array of vector4 (x, y, z, heading) values. Players respawn at a random point from this list that is not occupied by another player.
Enemy NPCs
MBT .Enemies = {
[ "SpawnPoints" ] = {
vector3 (- 1100.0 , 4920.0 , 202.0 ),
-- ...
},
[ "Models" ] = { `a_m_m_hillbilly_02` },
[ "Max" ] = 3 ,
}
Option Type Description SpawnPoints vector3 [] Locations where enemy NPCs can appear. Models model [] Ped model hashes to choose from for each enemy. Max number Maximum enemies alive at the same time (refreshes every seconds).
Allowed Weapons
MBT .AllowedWeapon = {
[ "4191993645" ] = 1 , -- Hatchet
[ "940833800" ] = 1 , -- Stone Hatchet
[ "1317494643" ] = 1 , -- Knife
[ "3756226112" ] = 1 , -- Switchblade
[ "419712736" ] = 1 , -- Wrench
[ "3713923289" ] = 1 , -- Machete
[ "2578778090" ] = 1 , -- Hammer
[ "2460120199" ] = 1 , -- Dagger
[ "2227010557" ] = 1 , -- Crowbar
[ "3441901897" ] = 1 , -- Battleaxe
Any weapon hash not in this table is blocked. A player dealing damage with a blocked weapon is automatically kicked from the match. Add or remove entries using GTA weapon hash values.
Weapon Pickups
MBT .PickupWeapons = {
"PICKUP_WEAPON_HAMMER" ,
"PICKUP_WEAPON_SWITCHBLADE" ,
-- ...
"PICKUP_HEALTH_STANDARD" ,
}
Pickups from this list spawn randomly across MBT .SpawnPoints and refresh every MBT .PickupsRefresh seconds.
NPC (Lobby)
MBT .Ped = {
[ "PedHash" ] = `csb_isldj_04` ,
[ "Coords" ] = vector3 (- 1055.05 , 4915.59 , 211.82 ),
[ "Heading" ] = 185.87 ,
[ "Scenario" ] = "WORLD_HUMAN_SMOKING" ,
}
The stationary NPC that players interact with to start the match. Change PedHash and Coords to reposition or restyle the lobby attendant.
Blips
MBT .Blips = {
[ "FlagOwner" ] = { [ "Sprite" ] = 84 , [ "Colour" ] = 1 , [ "Scale" ] = 1.0 },
[ "GameArea" ] = { [ "Colour" ] = 1 , [ "Scale" ] = 1.0 },
[ "Location" ] = { [ "Sprite" ] = 419 , [ "Colour" ] = 1 , [ "Scale" ] = 1.0 },
}
Configures the map blips shown during the match. FlagOwner follows the player holding the flag in real time.
Marker
MBT .Marker = {
[ "Type" ] = 23 ,
[ "Coords" ] = vector3 (- 1058.791 , 4915.471 , 210.838 ),
[ "Rot" ] = { [ "X" ] = 0 , [ "Y" ] = 0 , [ "Z" ] = 0 },
[ "Scale" ] = { [ "X" ] = 0.5 , [ "Y" ] = 0.5 , [ "Z" ] = 0.5 },
[ "Color" ] = { [ "R" ] = 10 , [ "G" ] = 255 , [ "B" ] = 0 , [ "A" ] = 100 },
}
The ground marker drawn at the lobby/stash area. Type 23 is a small cylinder. Adjust Scale and Color as needed.
Rewards
MBT .Rewards = {
[ 1 ] = { [ "Name" ] = "money" , [ "Quantity" ] = { [ "Min" ] = 500 , [ "Max" ] = 1000 } },
[ 2 ] = { [ "Name" ] = "water" , [ "Quantity" ] = { [ "Min" ] = 1 , [ "Max" ] = 3 } },
[ 3 ] = { [ "Name" ] = "ouija" , [ "Quantity" ] = { [ "Min" ] = 1 , [ "Max" ] = 3 } },
}
One entry is selected at random when the match ends. Name is either "money" (handled as framework cash) or an inventory item name. Quantity is randomised between Min and Max .
Camera Sequences
MBT .Camera = {
[ "Intro" ] = { { pos = ... , rot = ... , fov = 60 }, { ... } },
[ "Winner" ] = { { pos = ... , rot = ... , fov = 60 } },
}
Defines the camera positions for the match intro and the winner sequence. Each entry is a keyframe; the camera interpolates between them.
Notifications & Labels
MBT . Notification = function ( data )
lib . notify ( data )
end
MBT . UIHelp = function ( data )
lib . showTextUI ( data .text)
end
MBT . HideUIHelp = function ()
lib . hideTextUI ()
end
MBT . Progress = function ( posOutcome , negOutcome )
lib . progressCircle ({ ... })
end
All UI calls are wrapped in config functions. Replace any of them with your own library calls if you don't use ox_lib .
Inventory Functions (Custom)
server / storing_custom .lua and client / client_custom .lua are escrow_ignore -listed. Use them to integrate an alternative inventory system if you don't use ox_inventory .
-- server/storing_custom.lua
-- Uncomment and fill in for QBCore / ESX inventory:
-- AddEventHandler("mbt_ktf:handleStoring", function(action)
-- ...
-- end)
NUI Notification Colors
Edit html / config .json to change the notification colours shown in the game UI:
{
"WinnerNotifyColor" : "#00cc00" ,
"InfoNotifyColor" : "#e69138"
}
Key Default Purpose WinnerNotifyColor # 00 cc00 (green)Colour for winner announcements. InfoNotifyColor # e69138 (orange)Colour for general in-game info.