KubeJS UI You can also always look at existing modpack using KubeJS UI to see how they do it onEvent('ui.main_menu', event => { event.replace(ui => { //ui.background('kubejsui:textures/example_background.png') ui.tilingBackground('kubejsui:textures/example_background.png', 256) ui.minecraftLogo(30) ui.button(b => { b.name = 'Test' b.x = 10 b.y = 10 b.action = 'minecraft:singleplayer' }) ui.button(b => { b.name = 'Test but in bottom right corner' b.x = ui.width - b.width - 10 b.y = ui.height - b.height - 10 b.action = 'https://feed-the-beast.com/' }) ui.label(l => { l.name = Text.yellow('FTB Stranded') l.x = 2 l.y = ui.height - 12 l.action = 'https://feed-the-beast.com/' }) ui.image(i => { i.x = (ui.width - 40) / 2 i.y = (ui.height - 30) / 2 i.width = 40 i.height = 30 i.action = 'https://feed-the-beast.com/' }) ui.label(l => { l.name = Text.aqua('Large label') l.x = 100 l.y = ui.height - 20 l.height = 15 l.shadow = true }) }) })