Документация
Скрипты
К скриптам
Рисование

Иконки и картинки

Иконки клиента, своя SVG-разметка прямо в коде, предметы, текстуры игры и картинки по ссылке.

Иконки клиента

local icons = render.icons()

render.svg(icons.KEYBOARD, x, y, 9, 9, render.theme().main)

В наборе есть KEYBOARD, POTIONS, USERS, COOLDOWN, WIFI, SIGNAL, MUSIC, SETTINGS и другие — те же, что клиент рисует в своих элементах.

Своя иконка

Если нужной иконки нет, разметку можно положить прямо в скрипт. Растеризация кэшируется по содержимому, поэтому вызывать load_svg на каждом кадре не страшно — пересчёт случится только при изменении разметки.

local HEART = render.load_svg([[
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#FFFFFF">
  <path d="M12 21s-7.5-4.7-9.4-9.1C1.1 8.3 3 5 6.3 5c2 0 3.4 1.1 4.2 2.3l1.5 2 1.5-2C14.3 6.1 15.7 5 17.7 5 21 5 22.9 8.3 21.4 11.9 19.5 16.3 12 21 12 21z"/>
</svg>
]])

render.svg(HEART, x, y, 7, 7, 0xFFFF5555)

Цвет задаётся при отрисовке, а не в разметке: в самом SVG держите белую заливку, тогда одна иконка подойдёт под любую тему.

Предметы и текстуры

render.item(id, x, y, size)предмет по id вида minecraft:diamond, размер в пикселях
render.texture(id, x, y, w, h, color)любая текстура игры по Identifier
render.entity_head(entity_id, x, y, size, radius, color)голова сущности из её скина
for _, effect in ipairs(player.effects() or {}) do
    local sprite = "minecraft:textures/mob_effect/" .. effect.id:match("[^:]+$") .. ".png"
    render.texture(sprite, x, y, 10, 10, 0xFFFFFFFF)
end

Картинки по ссылке

Загрузка идёт в фоне, поэтому первый кадр функция возвращает false — на этом месте рисуют заглушку.

if not render.image(url, x, y, 32, 32) then
    render.rounded_rect(x, y, 32, 32, 6, render.with_alpha(theme.main, 25))
end