# Documentation on creating Scheduled Player Plugins

**URL:** <https://community.info-beamer.com/t/documentation-on-creating-scheduled-player-plugins/1035>\
**Category:** Help\
**Created:** [July 5, 2021, 7:05am UTC](https://community.info-beamer.com/t/documentation-on-creating-scheduled-player-plugins/1035 "2021-07-05T07:05:32Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![infobeamer-fw](https://community.info-beamer.com/user_avatar/community.info-beamer.com/infobeamer-fw/32/3_2.png) [@infobeamer-fw](https://community.info-beamer.com/u/infobeamer-fw)\
**Post date:** [July 5, 2021, 2:27pm UTC](https://community.info-beamer.com/t/documentation-on-creating-scheduled-player-plugins/1035/4 "2021-07-05T14:27:10Z")

</div>

Right now there’s no documentation on how everything works, but you can take a look at the [existing plugins](https://github.com/info-beamer/package-scheduled-player). Their overall structure is always the same. You’ll need a `tile.lua` file within your plugin. It gets automatically loaded once the setup is activated on a device:

```lua
local api, CHILDS, CONTENTS = ...

local M = {}

function M.updated_config_json(config)
    --[[ 
      Called when the local config.json is updated. This happens if the
      user edits any value within the plugin's editor tab within the setup.
      If you have a configuration option like this in the local node.json
      you can use api.localized to get the correct full path name:
      {
        "title": "Font",
        "name": "font",
        "type": "font",
        "default": "default-font.ttf"
      }
    ]]--
    pp(config)
    font = resource.load_font(api.localized(config.font.asset_name))
end

function M.task(starts, ends, config, x1, y1, x2, y2)
    --[[
      Called when a plugin is added within a page and that page
      is about to get activated. The function is executed as a coroutine
      and you must yield after drawing your content. The helper function
      api.frame_between automatically does that and "loops" while your
      plugin should show content on the screen.
   ]]-- 
    for now in api.frame_between(starts, ends) do
        print("draw something within", x1, y1, x2, y2)
    end
end

return M

```

---

_[View the full topic](https://community.info-beamer.com/t/documentation-on-creating-scheduled-player-plugins/1035)._
