function onBegin()

  if getFlag("talkbad") then

    disablePause()
    disableMovement()

    player.Facing = getEnum("Celeste.Facings", "Right")

    player.DummyAutoAnimate = false
    player.Sprite:Play("choro", false, false)
    wait(3)

    badeline = getFirstEntity("BadelineDummy")
    badeline.Floatness = 0
    badeline.FloatSpeed = 60
    badeline.FloatAccel = 120

    coroutine.yield(badeline:FloatTo(badeline.Position + (vector2(-8, 52)), -1, true, false, true))
    badeline.Sprite:Play("idle", false, false)
    playSound("event:/char/badeline/landing", badeline.Position)
    wait(0.5)

    coroutine.yield(badeline:WalkTo(player.Position.X + 9, 20))
    wait(0.5)

    playSound("event:/char/badeline/duck", badeline.Position)
    badeline.Sprite:Play("hug", false, false)
    wait(0.5)

    say("CelesteBrasil_wanderbirthdaymap_finalbadeline")
    wait(1)

    coroutine.yield(badeline:FloatTo((player.Center + vector2(0, 6)), -1, false, false, true))
    playSound("event:/new_content/char/badeline/maddy_join_quick", player.Position)
    getRoom().Displacement:AddBurst(player.Center, 0.5, 8, 32, 0.5)
    badeline:RemoveSelf()
    wait(1)

    player.Sprite:Play("wakeUp", false, false)
    wait(2.5)

    player.DummyAutoAnimate = true
    setFlag("msgroomsaida")
    setFlag("summonbad", false)
    setFlag("talkbad", false)
    enableMovement()
    enablePause()

  end

end