{"id":92223,"date":"2023-10-31T12:48:54","date_gmt":"2023-10-31T11:48:54","guid":{"rendered":"https:\/\/fivem-mods.net\/?post_type=product&#038;p=92223"},"modified":"2024-12-10T13:37:35","modified_gmt":"2024-12-10T12:37:35","slug":"habilidades-de-gimnasio","status":"publish","type":"product","link":"https:\/\/fivemx.com\/es\/habilidades-de-gimnasio\/","title":{"rendered":"GIMNASIO Y HABILIDADES (ESX\/QB)"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe title=\"vms gym &amp; skills \uff5c Owned Gyms, Player Skills\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/-Smr_xvRqeY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Config file:<\/h2>\n\n\n\n<pre data-no-translation=\"\" class=\"EnlighterJSRAW\" data-enlighter-language=\"lua\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Config = {}\n\nConfig.Core = \"ESX\" -- \"ESX\" \/ \"QB-Core\"\nConfig.CoreExport = function()\n    return exports['es_extended']:getSharedObject()\n    -- return exports['qb-core']:GetCoreObject()\nend\n\nConfig.Notification = function(title, message, time, icon, type)\n    if type == \"success\" then\n        exports[\"vms_notify\"]:Notification(title, message, time, \"#27FF09\", icon)\n        -- ESX.ShowNotification(message)\n\t\t-- QBCore.Functions.Notify(message, \"success\", 5000)\n    elseif type == \"info\" then\n        exports[\"vms_notify\"]:Notification(title, message, time, \"#428AF5\", icon)\n        -- ESX.ShowNotification(message)\n\t\t-- QBCore.Functions.Notify(message, \"inform\", 5000)\n    elseif type == \"error\" then\n        exports[\"vms_notify\"]:Notification(title, message, time, \"#FF0909\", icon)\n        -- ESX.ShowNotification(message)\n\t\t-- QBCore.Functions.Notify(message, \"error\", 5000)\n    end\nend\n\nConfig.TextUI = {\n    Enabled = false,\n    Open = function(msg)\n        exports[\"interact\"]:Open(\"E\", msg) -- Here you can use your TextUI or use my free one - https:\/\/github.com\/vames-dev\/interact\n        -- exports['okokTextUI']:Open('[E] '..msg, 'darkgreen', 'right')\n        -- exports['qb-core']:DrawText(msg, 'right')\n    end,\n    Close = function(msg)\n        exports[\"interact\"]:Close() -- Here you can use your TextUI or use my free one - https:\/\/github.com\/vames-dev\/interact\n        -- exports['okokTextUI']:Close()\n        -- exports['qb-core']:HideText()\n    end,\n}\n\n--@AutoExecuteQuery: Will automatically add the 'statistics' column to your ESX: `users` \/ QB-Core: `players` table if it doesn't already exist.\nConfig.AutoExecuteQuery = true\n\n-- @PlayerLoaded: ESX: \"esx:playerLoaded\" \/ QB-Core: \"QBCore:Client:OnPlayerLoaded\"\nConfig.PlayerLoaded = \"esx:playerLoaded\"\n\n-- @PlayerLoaded: ESX: \"esx:playerLoaded\" \/ QB-Core: \"QBCore:Server:OnPlayerLoaded\"\nConfig.PlayerLoadedServer = \"esx:playerLoaded\"\n\n-- @PlayerLogoutServer: ESX: \"esx:playerDropped\" \/ QB-Core: \"QBCore:Server:OnPlayerUnload\"\nConfig.PlayerLogoutServer = \"esx:playerDropped\"\n\n-- @JobUpdated: ESX: \"esx:setJob\" \/ QB-Core: \"QBCore:Client:OnJobUpdate\"\nConfig.JobUpdated = 'esx:setJob'\n\n-- @SavingTimeout: Every how long the player's statistics will be saved to the database - recommended 10 or 15 minutes\nConfig.SavingTimeout = 60 * 10 * 1000 -- 10 minutes\n\nConfig.Menu = 'esx_context' -- 'esx_menu_default' \/ 'esx_context' \/ 'qb-menu' \/ 'ox_lib'\nConfig.ESXMenuDefault_Align = 'right'\n\nConfig.SendNotificationWhenSkillIncrase = true\nConfig.SendNotificationWhenSkillDecrease = true\n\nConfig.DistanceView = 2.25\nConfig.DistanceAccess = 0.5\nConfig.UseMarkers = true\nConfig.Use3DText = false\nConfig.UseHelpNotify = true\n\n-- @UseTarget: If you use a target, markers for gym activities will not be displayed - the marker will remain for the boss menu\nConfig.UseTarget = false\nConfig.TargetResource = 'ox_target'\nConfig.Target = function(data, func)\n    if Config.TargetResource == 'ox_target' then\n        exports[\"ox_target\"]:addBoxZone({\n            coords = data.activityCoord,\n            size = vec(2.0, 2.0, 4.3),\n            debug = false,\n            useZ = true,\n            rotation = data.activityCoord.w,\n            options = {\n                {\n                    distance = 2.0,\n                    name = 'gym-'..data.name,\n                    icon = 'fa-solid fa-dumbbell',\n                    label = Config.Translate[Config.Language]['action.'..data.name],\n                    onSelect = func\n                }\n            }\n        })\n    elseif Config.TargetResource == 'qb-target' then\n        local id = math.random(1000000,1000000000000)\n        exports['qb-target']:AddBoxZone('gym-'..data.name..'-'..id, data.activityCoord, 2.0, 2.0, {\n            name = 'gym-'..data.name..'-'..id,\n            heading = data.activityCoord.w,\n            debugPoly = true,\n            minZ = data.activityCoord.z,\n            maxZ = data.activityCoord.z+3.5,\n        }, {\n            options = {\n                {\n                    num = 1,\n                    icon = 'fas fa-example',\n                    label = Config.Translate[Config.Language]['action.'..data.name],\n                    targeticon = 'fa-solid fa-dumbbell',\n                    action = func,\n                    drawDistance = 10.0,\n                    drawColor = {255, 255, 255, 255},\n                    successDrawColor = {30, 144, 255, 255},\n                }\n            },\n            distance = 0.7,\n        })\n    else\n        -- If you are using a target system other than ox_target and qb-target, add your target usability logging function here\n    end\nend\n\n\n-- @EnableMemberships: If you use in any gym the required membership, run it then it will work correctly reading memberships\nConfig.EnableMemberships = true\n\n-- @EnableGiveMembership: Allows employees to give gym memberships.\nConfig.EnableGiveMembership = true\nConfig.GetClosestPlayersFunction = function()\n    local playerInArea = ESX.Game.GetPlayersInArea(GetEntityCoords(PlayerPedId()), 10.0) -- For ESX\n    -- local playerInArea = QBCore.Functions.GetPlayersFromCoords(GetEntityCoords(PlayerPedId()), 10.0) -- For QB-CORE\n    return playerInArea\nend\n\n\n-- @EnableStrenghtModifier: In the config.client.lua file, you can modify the player's hitting power with certain power stats.\n-- !!! IF YOUR ANTI-CHEAT BANS FOR STRENGHT MODIFICATION YOU NEED TO SET THIS OPTION TO FALSE OR MAKE A CHANGE IN THE ANTI-CHEAT !!!\nConfig.EnableStrenghtModifier = true\n\n-- @EnableRunSpeedModifier: In the config.client.lua file, you can modify the player's running speed with certain condition stats.\n-- !!! IF YOUR ANTI-CHEAT BANS FOR RUN MODIFICATION YOU NEED TO SET THIS OPTION TO FALSE OR MAKE A CHANGE IN THE ANTI-CHEAT !!!\nConfig.EnableRunSpeedModifier = true\n\n-- @EnableStaminaModifier: In the config.client.lua file, you can modify the player's stamina level with certain condition stats.\nConfig.EnableStaminaModifier = true\n\n\n-- @EnableSkillDrivingEffects: With low driving skill your vehicle will run into slides more often or through lack of skill will randomly turn, the higher the level the less or no effect it has\nConfig.EnableSkillDrivingEffects = true\nConfig.SkillDrivingEffectMinimumSpeed = 30.0\n\n-- @UnitOfSpeed: Customize your speed unit if you intend to use Config.EnableSkillDrivingEffects\nConfig.UnitOfSpeed = 'kmh' -- 'kmh' or 'mph'\n\n\n-- @AutoMembershipForEmployees: Every gym employee will have a gym membership with no requirement to buy one\nConfig.AutoMembershipForEmployees = true\n\n\n-- @UseCustomQuestionMenu: if you want to use for example vms_notify Question Menu, set it true, if you want to use Config.Menu to accept \/ reject of buying membership\nConfig.UseCustomQuestionMenu = false\nConfig.CustomQuestionMenu = function(sellerId, membershipName, days, hours, price)\n    local question = exports['vms_notify']:Question(\n        Config.Translate[Config.Language][\"question.title.buy_membership\"], \n        hours ~= 0 and Config.Translate[Config.Language][\"question.description.buy_membership_hours\"]:format(price, hours) or Config.Translate[Config.Language][\"question.description.buy_membership\"]:format(price, days), \n        '#4f64ff', \n        'fa-solid fa-people-arrows'\n    )\n    Citizen.Await(question)\n    if question == 'y' then -- vms_notify question export return 'y' when player accept and 'n' when player reject\n        TriggerServerEvent(\"vms_gym:sv:acceptMembership\", sellerId, membershipName, days, price)\n    elseif question == 'n' then\n        TriggerServerEvent(\"vms_gym:sv:rejectMembership\", sellerId)\n    end\nend\n\n\n-- @UseProgressbar: If you want to use a progress-bar for the exercises you are doing, you can do so below.\nConfig.UseProgressbar = false\nConfig.Progressbar = function(actionName, time)\n    exports['progressbar']:Progress({\n        name = actionName,\n        label = Config.Translate[Config.Language][\"progressbar.\"..actionName],\n        duration = time,\n        canCancel = false,\n        controlDisables = {\n            disableMouse = false,\n            disableMovement = true,\n            disableCarMovement = true,\n            disableCombat = true,\n        }\n    })\nend\n\n-- @UseSkillbar: If you want to use a skill-bar for the exercises you are doing, you can do so below.\nConfig.UseSkillbar = false\nConfig.Skillbar = function(actionName, cb)\n    local finished = exports[\"tgiann-skillbar\"]:taskBar(3000)\n    cb(finished)\nend\n\nConfig.BossMenu = function(jobName)\n    if Config.Core == \"ESX\" then\n        TriggerEvent('esx_society:openBossMenu', jobName, function(data, menu) -- esx_society\n            menu.close()\n        end, {wash = false})\n    elseif Config.Core == \"QB-Core\" then\n        TriggerEvent('qb-bossmenu:client:OpenMenu') -- qb-management\n    end\nend\n\nConfig.StatisticCommand = '+statistics'\nConfig.StatisticKey = 'G'\nConfig.StatisticDescription = 'Open statistics menu'\n\nConfig.StatisticsMenu = {\n    ['strenght'] = true,\n    ['condition'] = true,\n    ['shooting'] = true,\n    ['driving'] = true,\n    ['flying'] = true,\n}\n\nConfig.Blip = { -- https:\/\/docs.fivem.net\/docs\/game-references\/blips\/\n    [\"Sprite\"] = 311,\n    [\"Scale\"] = 0.85,\n    [\"Color\"] = 46,\n    [\"Display\"] = 4\n}\n\nConfig.Keys = { -- https:\/\/docs.fivem.net\/docs\/game-references\/controls\/\n    enter = 38, -- E\n    train = 22, -- SPACE\n    stop = 73-- X\n}\n\nConfig.Markers = {\n\t['BossMenu'] = {\n\t\tid = 29,\n\t\tcolor = {95, 255, 95, 125},\n\t\tsize = vec(0.33, 0.33, 0.33),\n\t\tbobUpAndDown = false,\n\t\trotate = true\n\t},\n\t['FreeSeat'] = {\n\t\tid = 20,\n        color = {59, 227, 137, 125},\n        rotation = {180.0, 0.0, 0.0},\n\t\tsize = vec(0.15, 0.15, 0.15),\n\t\tbobUpAndDown = false,\n\t\trotate = true\n\t},\n}\n\nConfig.Animations = {\n    ['pull-up'] = {\n        enter = {'amb@prop_human_muscle_chin_ups@male@enter', 'enter', 1800},\n        idle = {'amb@prop_human_muscle_chin_ups@male@idle_a', 'idle_a', -1},\n        training = {'amb@prop_human_muscle_chin_ups@male@base', 'base', 2900},\n        exit = {'amb@prop_human_muscle_chin_ups@male@exit', 'exit', 2000},\n    },\n    ['bench'] = {\n        enter = {'amb@prop_human_seat_muscle_bench_press@enter', 'enter', 0},\n        idle = {'amb@prop_human_seat_muscle_bench_press@base', 'base', -1},\n        training = {'amb@prop_human_seat_muscle_bench_press@idle_a', 'idle_a', 2350},\n        exit = {'amb@prop_human_seat_muscle_bench_press@exit', 'exit', 2500},\n    },\n    ['barbell'] = {\n        idle = {'amb@world_human_muscle_free_weights@male@barbell@idle_a', 'idle_a', -1},\n        training = {'amb@world_human_muscle_free_weights@male@barbell@base', 'base', 4500},\n    },\n    ['push-up'] = {\n        enter = {'amb@world_human_push_ups@male@enter', 'enter', 3500},\n        idle = {'amb@world_human_push_ups@male@idle_a', 'idle_a', -1},\n        training = {'amb@world_human_push_ups@male@base', 'base', 1100},\n        exit = {'amb@world_human_push_ups@male@exit', 'exit', 4050},\n    },\n    ['dumbbells'] = {\n        idle = {'amb@world_human_muscle_free_weights@male@barbell@idle_a', 'idle_a', -1},\n        training = {'amb@world_human_muscle_free_weights@male@barbell@base', 'base', 4500},\n    },\n    ['treadmill'] = {\n        idle = {'move_m@hurry@c', 'walk', -1},\n        training = {'move_m@brave@a', 'run', 4000},\n    },\n}\n\n-- @RefreshTimeAddStats: Time every how much the statistic will add up for different activities e.g. swimming, running etc.\nConfig.RefreshTimeAddStats = 10000 -- 10 seconds\nConfig.AddStatsValues = {\n    -- Condition:\n    ['Running'] = 3,\n    ['Swimming'] = {5, 8},\n    ['Cycling'] = {minimumSpeed = 15, value = {6, 8}},\n    \n    -- Shooting:\n    ['Shooting'] = {1, 2},\n\n    -- Driving:\n    ['Driving'] = {minimumSpeed = 140, value = {2, 7}},\n\n    -- Flying:\n    ['Flying'] = {minimumSpeed = 180, value = {5, 10}},\n}\n\n-- @RefreshTimeRemoveStats: \nConfig.RefreshTimeRemoveStats = 120000 -- 120 seconds\nConfig.RemoveStatsValues = {\n    -- Condition:\n    ['RemoveCondition'] = 1,\n\n    -- Strength:\n    ['RemoveStrength'] = 1,\n}\n\nConfig.Gyms = {\n    [1] = {\n        business = true,\n        ownerJob = 'police',\n        jobMenuPos = vector3(-1195.35, -1577.57, 4.5),\n        menuGrades = nil, -- nil: any player with this job | string: 'boss' | table: {'boss', 'manager'}\n        bossMenuGrades = 'boss', -- string: 'boss' or table: {'boss', 'manager'}\n        blipCoords = vector3(-1203.47, -1564.67, 4.02), -- don't remove it, set it in the center of the gym\n        blipName = 'Gym Plaza',\n        blipEnabled = true,\n        requiredMembership = 'plaza_gym', -- false or name of membership like: 'plaza_gym'\n        memberships = {\n            {hours = 2, price = 100},\n            {hours = 12, price = 500},\n            {days = 1, price = 1000},\n            {days = 7, price = 5500},\n            {days = 14, price = 10000},\n            {days = 24, price = 20000},\n            {days = 31, price = 25000},\n        },\n        points = {\n            {\n                name = 'bench',\n                prop = {name = 'prop_barbell_60kg', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1200.64, -1562.11, 3.10, 125.29),\n                position = vec(-1201.55, -1562.81, 4.5),\n                removeStamina = 8,\n                addSkill = {skill = \"strenght\", value = {2, 4}}, -- this value is divided by 10 - this means that setting {2, 4} it will be 0.2, 0.4\n            },\n            {\n                name = 'bench',\n                prop = {name = 'prop_barbell_60kg', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1207.11, -1560.81, 3.10, 212.49),\n                position = vec(-1206.53, -1561.62, 4.5),\n                removeStamina = 8,\n                addSkill = {skill = \"strenght\", value = {2, 4}}, -- this value is divided by 10 - this means that setting {2, 4} it will be 0.2, 0.4\n            },\n            {\n                name = 'bench',\n                prop = {name = 'prop_barbell_60kg', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1201.3, -1575.02, 3.10, 216.27),\n                position = vec(-1200.68, -1575.89, 4.5),\n                removeStamina = 8,\n                addSkill = {skill = \"strenght\", value = {2, 4}}, -- this value is divided by 10 - this means that setting {2, 4} it will be 0.2, 0.4\n            },\n            {\n                name = 'bench',\n                prop = {name = 'prop_barbell_60kg', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1197.96, -1568.22, 3.10, 305.69),\n                position = vec(-1197.13, -1567.6, 4.5),\n                removeStamina = 8,\n                addSkill = {skill = \"strenght\", value = {2, 4}}, -- this value is divided by 10 - this means that setting {2, 4} it will be 0.2, 0.4\n            },\n            {\n                name = 'pull-up',\n                activityCoord = vector4(-1204.74, -1564.35, 3.585, 35.88),\n                position = vec(-1204.74, -1564.35, 4.5),\n                removeStamina = 6,\n                addSkill = {skill = \"strenght\", value = {1, 3}}, -- this value is divided by 10 - this means that setting {1, 3} it will be 0.1, 0.3\n            },\n            {\n                name = 'pull-up',\n                activityCoord = vector4(-1200.02, -1571.14, 3.585, 213.62),\n                position = vec(-1200.19, -1570.93, 4.5),\n                removeStamina = 6,\n                addSkill = {skill = \"strenght\", value = {1, 3}}, -- this value is divided by 10 - this means that setting {1, 3} it will be 0.1, 0.3\n            },\n            {\n                name = 'barbell',\n                prop = {name = 'prop_curl_bar_01', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1199.03, -1574.59, 3.61, 215.48),\n                position = vec(-1198.97, -1574.5, 4.5),\n                removeStamina = 7,\n                addSkill = {skill = \"strenght\", value = {2, 3}}, -- this value is divided by 10 - this means that setting {2, 3} it will be 0.2, 0.3\n            },\n            {\n                name = 'barbell',\n                prop = {name = 'prop_curl_bar_01', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1197.01, -1572.9, 3.61, 214.71),\n                position = vec(-1197.01, -1572.9, 4.5),\n                removeStamina = 7,\n                addSkill = {skill = \"strenght\", value = {2, 3}}, -- this value is divided by 10 - this means that setting {2, 3} it will be 0.2, 0.3\n            },\n            {\n                name = 'barbell',\n                prop = {name = 'prop_curl_bar_01', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1202.67, -1565.53, 3.61, 32.46),\n                position = vec(-1202.67, -1565.53, 4.5),\n                removeStamina = 7,\n                addSkill = {skill = \"strenght\", value = {2, 3}}, -- this value is divided by 10 - this means that setting {2, 3} it will be 0.2, 0.3\n            },\n            {\n                name = 'barbell',\n                prop = {name = 'prop_curl_bar_01', attachBone = 28422, placement = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}},\n                activityCoord = vector4(-1210.31, -1561.34, 3.61, 77.1),\n                position = vec(-1210.31, -1561.34, 4.5),\n                removeStamina = 7,\n                addSkill = {skill = \"strenght\", value = {2, 3}}, -- this value is divided by 10 - this means that setting {2, 3} it will be 0.2, 0.3\n            },\n            {\n                name = 'push-up',\n                activityCoord = vector4(-1204.48, -1561.15, 3.61, 29.36),\n                position = vec(-1204.48, -1561.15, 4.5),\n                removeStamina = 3,\n                addSkill = {skill = \"strenght\", value = 1}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'dumbbells',\n                prop = {name = 'prop_barbell_01', attachBone = 28422, placement = {-0.24, 0.0, -0.03, 0.0, -50.0, 0.0}},\n                prop2 = {name = 'prop_barbell_01', attachBone = 60309, placement = {0.05, 0.0, 0.0, 0.0, -90.0, 120.0}},\n                activityCoord = vector4(-1202.6, -1572.78, 3.61, 127.31),\n                position = vec(-1202.6, -1572.78, 4.5),\n                removeStamina = 4,\n                addSkill = {skill = \"strenght\", value = {1, 2}}, -- this value is divided by 10 - this means that setting {1, 2} it will be 0.1, 0.2\n            },\n            {\n                name = 'dumbbells',\n                prop = {name = 'prop_barbell_01', attachBone = 28422, placement = {-0.24, 0.0, -0.03, 0.0, -50.0, 0.0}},\n                prop2 = {name = 'prop_barbell_01', attachBone = 60309, placement = {0.05, 0.0, 0.0, 0.0, -90.0, 120.0}},\n                activityCoord = vector4(-1209.33, -1559.18, 3.61, 48.95),\n                position = vec(-1209.33, -1559.18, 4.5),\n                removeStamina = 4,\n                addSkill = {skill = \"strenght\", value = {1, 2}}, -- this value is divided by 10 - this means that setting {1, 2} it will be 0.1, 0.2\n            },\n            {\n                name = 'dumbbells',\n                prop = {name = 'prop_barbell_01', attachBone = 28422, placement = {-0.24, 0.0, -0.03, 0.0, -50.0, 0.0}},\n                prop2 = {name = 'prop_barbell_01', attachBone = 60309, placement = {0.05, 0.0, 0.0, 0.0, -90.0, 120.0}},\n                activityCoord = vector4(-1198.32, -1565.38, 3.62, 240.3),\n                position = vector3(-1198.32, -1565.41, 4.5),\n                removeStamina = 4,\n                addSkill = {skill = \"strenght\", value = {1, 2}}, -- this value is divided by 10 - this means that setting {1, 2} it will be 0.1, 0.2\n            },\n        },\n    },\n    [2] = {\n        business = nil,\n        ownerJob = nil,\n        jobMenuPos = vector3(-1254.26, -354.04, 36.96),\n        menuGrades = nil, -- nil: any player with this job | string: 'boss' | table: {'boss', 'manager'}\n        bossMenuGrades = 'boss', -- string: 'boss' or table: {'boss', 'manager'}\n        blipCoords = vector(-1255.8, -354.21, 35.96),\n        blipName = 'Pump &amp; Run GYM',\n        blipEnabled = true,\n        requiredMembership = 'pump_and_run', -- false or name of membership like: 'pump_and_run'\n        memberships = {\n            {days = 1, price = 1000},\n            {days = 7, price = 5500},\n            {days = 14, price = 10000},\n            {days = 24, price = 20000},\n            {days = 31, price = 25000},\n        },\n        points = {\n            {\n                name = 'treadmill',\n                activityCoord = vector4(-1257.63, -366.56, 36.12, 207.75),\n                position = vector3(-1258.33, -365.23, 36.96),\n                removeStamina = 1,\n                addSkill = {skill = \"condition\", value = {4, 5}}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'treadmill',\n                activityCoord = vector4(-1259.15, -367.3, 36.11, 207.75),\n                position = vector3(-1259.76, -366.11, 36.96),\n                removeStamina = 1,\n                addSkill = {skill = \"condition\", value = {4, 5}}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'treadmill',\n                activityCoord = vector4(-1260.75, -368.02, 36.11, 207.75),\n                position = vector3(-1261.32, -366.99, 36.96),\n                removeStamina = 1,\n                addSkill = {skill = \"condition\", value = {4, 5}}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'treadmill',\n                activityCoord = vector4(-1262.14, -368.9, 36.11, 207.75),\n                position = vector3(-1262.67, -367.88, 36.96),\n                removeStamina = 1,\n                addSkill = {skill = \"condition\", value = {4, 5}}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'treadmill',\n                activityCoord = vector4(-1263.46, -369.66, 36.11, 207.75),\n                position = vector3(-1264.11, -368.58, 36.96),\n                removeStamina = 1,\n                addSkill = {skill = \"condition\", value = {4, 5}}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'treadmill',\n                activityCoord = vector4(-1264.84, -370.34, 36.11, 210.35),\n                position = vector3(-1265.42, -369.34, 36.96),\n                removeStamina = 1,\n                addSkill = {skill = \"condition\", value = {4, 5}}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n\n            {\n                name = 'push-up',\n                activityCoord = vector4(-1263.23, -363.06, 35.99, 281.81),\n                position = vector3(-1263.24, -363.07, 36.99),\n                removeStamina = 3,\n                addSkill = {skill = \"strenght\", value = 1}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'push-up',\n                activityCoord = vector4(-1262.22, -359.14, 35.99, 225.7),\n                position = vector3(-1262.35, -359.08, 36.99),\n                removeStamina = 3,\n                addSkill = {skill = \"strenght\", value = 1}, -- this value is divided by 10 - this means that setting 1 it will be 0.1\n            },\n            {\n                name = 'dumbbells',\n                prop = {name = 'prop_barbell_01', attachBone = 28422, placement = {-0.24, 0.0, -0.03, 0.0, -50.0, 0.0}},\n                prop2 = {name = 'prop_barbell_01', attachBone = 60309, placement = {0.05, 0.0, 0.0, 0.0, -90.0, 120.0}},\n                activityCoord = vector4(-1261.55, -353.61, 35.96, 293.97),\n                position = vector3(-1261.55, -353.61, 36.96),\n                removeStamina = 4,\n                addSkill = {skill = \"strenght\", value = {1, 2}}, -- this value is divided by 10 - this means that setting {1, 2} it will be 0.1, 0.2\n            },\n            {\n                name = 'dumbbells',\n                prop = {name = 'prop_barbell_01', attachBone = 28422, placement = {-0.24, 0.0, -0.03, 0.0, -50.0, 0.0}},\n                prop2 = {name = 'prop_barbell_01', attachBone = 60309, placement = {0.05, 0.0, 0.0, 0.0, -90.0, 120.0}},\n                activityCoord = vector4(-1268.76, -357.8, 35.96, 298.89),\n                position = vector3(-1268.7, -357.75, 36.96),\n                removeStamina = 4,\n                addSkill = {skill = \"strenght\", value = {1, 2}}, -- this value is divided by 10 - this means that setting {1, 2} it will be 0.1, 0.2\n            },\n            {\n                name = 'dumbbells',\n                prop = {name = 'prop_barbell_01', attachBone = 28422, placement = {-0.24, 0.0, -0.03, 0.0, -50.0, 0.0}},\n                prop2 = {name = 'prop_barbell_01', attachBone = 60309, placement = {0.05, 0.0, 0.0, 0.0, -90.0, 120.0}},\n                activityCoord = vector4(-1266.69, -356.9, 35.96, 118.72),\n                position = vector3(-1266.69, -356.9, 36.96),\n                removeStamina = 4,\n                addSkill = {skill = \"strenght\", value = {1, 2}}, -- this value is divided by 10 - this means that setting {1, 2} it will be 0.1, 0.2\n            },\n        },\n    },\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<h2>Caracter\u00edsticas<\/h2>\n<ul>\n<li>Compatible con <strong>ESX y QB-Core<\/strong><\/li>\n<li>Compatibilidad con barras de progreso<\/li>\n<li>Compatibilidad con <a href=\"https:\/\/fivemx.com\/es\/minijuegos\/\"  data-wpil-monitor-id=\"454\">minijuegos<\/a> como la barra de habilidades<\/li>\n<li>Compatibilidad con el sistema de destino: ox_target, qb-target, etc.<\/li>\n<li>Compatibilidad con los men\u00fas: esx_menu_default, esx_context, qb-menu, ox_lib.<\/li>\n<li>Compatibilidad con el men\u00fa de preguntas personalizado para aceptar compras de pases de gimnasio como vms_notify.<\/li>\n<li>Men\u00fa con estad\u00edsticas del personaje.<\/li>\n<li><a href=\"https:\/\/fivemx.com\/es\/traduccion-de-scripts-fivem\/\"  data-wpil-monitor-id=\"567\">Traducci\u00f3n del script<\/a> en muchos idiomas gracias al equipo de VMS Translator: ingl\u00e9s, checo, alem\u00e1n, franc\u00e9s, espa\u00f1ol, portugu\u00e9s, polaco<\/li>\n<li>La capacidad de tener m\u00faltiples gimnasios en el servidor.<\/li>\n<li>La capacidad de configurar el gimnasio para que funcione, incluida la capacidad de configurar el pase requerido que puede vender un empleado con el llamado configurado en la configuraci\u00f3n de trabajo.<\/li>\n<li>Membres\u00edas de gimnasio temporales integradas en el script con tiempos de vencimiento ajustables.<\/li>\n<li>Muchas actividades en el gimnasio: banco, barra, mancuernas, dominadas en barra, flexiones, correr en cinta. La resistencia durante el ejercicio depende de la condici\u00f3n f\u00edsica de tu personaje: para mejorarla, puedes nadar, correr o montar en bicicleta. Para practicar esto, debes presionar un bot\u00f3n; no es autom\u00e1tico; tambi\u00e9n puedes conectarlo, por ejemplo, a la barra de habilidades.<\/li>\n<li>La falta de ejercicio da como resultado una reducci\u00f3n de la condici\u00f3n y la fuerza con el tiempo.<\/li>\n<li>Capacidad de modificar la velocidad de carrera y la fuerza del impacto dependiendo de las estad\u00edsticas del personaje.<\/li>\n<li>Posibilidad de usar marcador, texto 3D o sin estas opciones.<\/li>\n<li>El script tiene 3 exportaciones disponibles del lado del cliente: addSkill(&#039;skill_name&#039;, value) =&gt; Esto le permite aumentar sus habilidades con otras actividades en sus otros scripts. \u2013 getSkill(&#039;skill_name&#039;) =&gt; La capacidad de obtener un valor de cu\u00e1nta habilidad tiene un jugador y as\u00ed agregar la capacidad de estar activo en otros recursos cuando un jugador tiene suficiente resistencia o fuerza, por ejemplo. \u2013 removeSkill(&#039;skill_name&#039;, value) =&gt; Esto le permite reducir las habilidades con otras actividades en sus otros scripts, por ejemplo, comer alimentos cal\u00f3ricos como hamburguesas, etc.<\/li>\n<li>Traducci\u00f3n completa con config.lua y translation.js.<\/li>\n<li>Lleno <a class=\"wpil_keyword_link\" href=\"https:\/\/fivemx.com\/es\/apoyo\/\"   title=\"apoyo\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1356\">apoyo<\/a>.<\/li>\n<\/ul>","protected":false},"featured_media":92224,"comment_status":"open","ping_status":"closed","template":"","meta":[],"product_brand":[2917],"product_cat":[1892,96,1820,512,511],"product_tag":[],"class_list":["post-92223","product","type-product","status-publish","has-post-thumbnail","product_brand-vms","product_cat-fivem-job-scripts","product_cat-esx-scripts","product_cat-police-scripts","product_cat-qbcore-scripts","product_cat-standalone-scripts","first","instock","sale","downloadable","virtual","taxable","purchasable","product-type-simple"],"_links":{"self":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product\/92223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/comments?post=92223"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/media\/92224"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/media?parent=92223"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product_brand?post=92223"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product_cat?post=92223"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product_tag?post=92223"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}