How to play songs?

Hello everyone!

I would like to have my server play a game song when I press a keyboard button

Any way to do this?

Could you elaborate?

I am making a system that plays a small cutscene upon entering the server, however, I would like it to play along with the song “Sleepwalking” present in the game assets

Here is my code

Citizen.CreateThread(function()
    while true do
        Citizen.Wait(0)
        if IsControlJustPressed(1, 38) then
            ApresentationObservatoryCam(true)
            ShowMensage()
            Citizen.Wait(7000)
            ApresentationObservatoryCam(false)
            ApresentationDowntowCam(true)
            Citizen.Wait(7000)
            ApresentationDowntowCam(false)
            ApresentationBeatchCam(true)
            Citizen.Wait(7000)
            ApresentationBeatchCam(false)
            ApresentationBeatchCam2(true)
            Citizen.Wait(7000)
            ApresentationBeatchCam(false)
            ApresentationBridgeCam(true)
            Citizen.Wait(7000)
            ApresentationBridgeCam(false)
            ApresentationAirportCam(true)
            Citizen.Wait(4000)
            ApresentationAirportCam(false)
            ApresentationAirportCam2(true)
            Citizen.Wait(9000)
            local playerPed = GetPlayerPed(-1) --Get PlayerPed
            StartPlayerSwitch(playerPed, playerPed, 2050, 3)
            Citizen.Wait(500)
            ApresentationAirportCam2(false)
        end
    end
end)

function ApresentationObservatoryCam(OnThisCam)

    local playerPed = GetPlayerPed(-1) --Get PlayerPed
    SetEntityCoords(playerPed, -390.0, 1269.07, 336.0 - 50)
    FreezeEntityPosition(playerPed, OnThisCam)

    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -390.0, 1269.07, 336.0)
    SetCamRot(RenderedCam, 0.0, 0.0, -195.13, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, -359.5, 1048.07, 356.0)
    SetCamRot(EndCamPos, -10.0, 0.0, -175.13, 1)
    SetCamFov(EndCamPos, 40.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 8000, 0, 0)
end

function ApresentationDowntowCam(OnThisCam)
    
    if(not OnThisCam) then
    SetEntityCoords(playerPed, -117.0, -533.07, 500.0 - 50)
    Citizen.Wait(1000)
    end


    SetEntityCoords(playerPed, -117.0, -533.07, 500.0 - 50)
    FreezeEntityPosition(playerPed, OnThisCam)


    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -117.0, -533.07, 500.0)
    SetCamRot(RenderedCam, -90.0, 0.0, -195.13, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, 217.0, -833.07, 500.0)
    SetCamRot(EndCamPos, -90.0, 0.0, -195.13, 1)
    SetCamFov(EndCamPos, 40.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 8000, 0, 0)
end

function ApresentationBeatchCam(OnThisCam)

    if(not OnThisCam) then
    MovePlayer(-1340.0, -1292.07, 4.0 - 50, OnThisCam)
    Citizen.Wait(1000)
    end


    local playerPed = GetPlayerPed(-1) --Get PlayerPed
    SetEntityCoords(playerPed, -1978.5, -557.07, 25.0 - 50)
    FreezeEntityPosition(playerPed, OnThisCam)


    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -1978.5, -557.07, 25.0)
    SetCamRot(RenderedCam, 0.0, 0.0, -82.5, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, -1850.0, -684.07, 25.0)
    SetCamRot(EndCamPos, 0.0, 0.0, -115.5, 1)
    SetCamFov(EndCamPos, 40.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 8000, 0, 0)
end

function ApresentationBeatchCam2(OnThisCam)

    if(not OnThisCam) then
    MovePlayer(-148.0, -2503.07, 57.0 - 50, OnThisCam)
    Citizen.Wait(1000)
    end

    local playerPed = GetPlayerPed(-1) --Get PlayerPed
    SetEntityCoords(playerPed, -1340.0, -1292.07, 4.0 - 50)
    FreezeEntityPosition(playerPed, OnThisCam)

    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -1340.0, -1292.07, 4.0)
    SetCamRot(RenderedCam, -0.0, 0.0, 1.5, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, -1340.0, -1292.07, 11.0)
    SetCamRot(EndCamPos, -10.0, 0.0, -1.0, 1)
    SetCamFov(EndCamPos, 40.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 8000, 0, 0)
end

function ApresentationBridgeCam(OnThisCam)

    if(not OnThisCam) then
    MovePlayer(-810.0, -2460.07, 30.0 - 50, OnThisCam)
    Citizen.Wait(1000)
    end

    local playerPed = GetPlayerPed(-1) --Get PlayerPed
    SetEntityCoords(playerPed, -148.0, -2503.07, 57.0 - 50)
    FreezeEntityPosition(playerPed, OnThisCam)


    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -148.0, -2503.07, 57.0)
    SetCamRot(RenderedCam, -0.0, 0.0, 11.3, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, -492.0, -2266.07, 71.5)
    SetCamRot(EndCamPos, 0.0, 0.0, 49.0, 1)
    SetCamFov(EndCamPos, 40.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 8000, 0, 0)
end

function ApresentationAirportCam(OnThisCam)

    if(not OnThisCam) then
    MovePlayer(-997.0, -2721.07, 13.0, OnThisCam)
    Citizen.Wait(1000)
    end

    local playerPed = GetPlayerPed(-1) --Get PlayerPed
    SetEntityCoords(playerPed, -810.0, -2460.07, 30.0 - 50)
    FreezeEntityPosition(playerPed, OnThisCam)


    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -810.0, -2460.07, 30.0)
    SetCamRot(RenderedCam, -20.0, 0.0, 134.0, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, -810.0, -2460.07, 30.0)
    SetCamRot(EndCamPos, -0.0, 0.0, 134.0, 1)
    SetCamFov(EndCamPos, 40.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 5000, 0, 0)
end

function ApresentationAirportCam2(OnThisCam)
    
    local playerPed = GetPlayerPed(-1) --Get PlayerPed
    SetEntityCoords(playerPed, -1015.0, -2738.07, 13.0)
    SetEntityRotation(playerPed, 0,0,-27.32,1)
    FreezeEntityPosition(playerPed, OnThisCam)

    local RenderedCam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    RenderScriptCams(OnThisCam, true, 0, 1, 1)
    SetCamActive(RenderedCam, OnThisCam)

    SetCamCoord(RenderedCam, -997.0, -2721.07, 13.0)
    SetCamRot(RenderedCam, 20.0, 0.0, 117.7, 1)
    SetCamFov(RenderedCam, 40.0)

    local EndCamPos = CreateCam("DEFAULT_SCRIPTED_CAMERA", true)
    SetCamCoord(EndCamPos, -1013.3, -2734.07, 14.5)
    SetCamRot(EndCamPos, -0.0, 0.0, 153.3, 1)
    SetCamFov(EndCamPos, 40.0)

    SetGameplayCamRelativeHeading(180.0)
    SetGameplayCamRawYaw(0.0)
    SetGameplayCamRawPitch(0.0)

    SetCamActiveWithInterp(EndCamPos,RenderedCam, 10000, 1, 1)
end