Log In  
Follow
goose2point0

\('v')/

I make things.
Also, I'm like, poly-lingual. But only one of them isn't a coding language.
Anyway, picotron and pico 8 are pretty cool.

Oh, and before the terms of use update, I used AI to help me find what my code was doing wrong, or sometimes to write code for 3D stuff, so don't use any of my code from before June 22, 2026. But I'll have you know that I wasn't creating complete AI slop. Any posts beyond that date are AI free.


Cart #runway_wallpaper-0 | 2026-09-07 | Embed ▽ | License: CC4-BY-NC-SA


Wallpaper with a bunch of stats and cool airplanes.
To install, copy and run these commands, one line at a time, into the Picotron terminal:

cp -f bbs://runway_wallpaper.p64 /appdata/system/wallpapers/runway_wallpaper.p64
config wallpaper /appdata/system/wallpapers/runway_wallpaper.p64
?"\^t\^w\f7\^oeffThank you for installing Runway Wallpaper!\n\^-t\^-wYou can change the wallpaper through Picotron's settings at\n/system/apps/settings.p64"
0 comments



I suppose this is probably a question for @zep
Is there a way to fetch the BBCode (asterisks, hashtags, etc. that format a BBS post) from a post? I'm planning on making a cart for picotron that is able to read and display things from the BBS. On that note, is there also a way to find out what the most recently posted posts are by using fetches?
That's it, thanks!

1 comment



Cart #process_backspace-0 | 2026-07-08 | Embed ▽ | License: CC4-BY-NC-SA
1

Easily remove processes!

Ever opened a cart from the BBS only to realize you can't close it without using the task manager???
This new widget allows you to easily remove that process with the click of a mouse!
And, you can easily move this widget around your tooltray by dragging that little bar on top!

Credits:

  • Art and code created by Daniel Jorgensen
  • Transparent interactive pixels and drag code by Picotron's bundled clock.p64
  • Kll code (but not deciding what to kll) by Picotron's bundled kll.lua
  • Bar design based on Fuzzy Detective Agency by @xietanu

(Unsandboxing required for use. Excludes its own process. Excludes root, wm, and pm. Terms and conditions apply. Anyone know if I'm allowed to type kll?)

1
0 comments



I'm unsure if this is a bug with my code, or with picotron's. Anyway, the text editor in this code doesn't seem to be working, and the gui elements don't seem to be resizing. Any help would be appreciated.

--update the friend list to contain the user's data, such as icon or username
function ufl()
	for i=#friends,1,-1 do
		friends[i]=fetch("bbs://user/"..friends[i].user_id)
	end
	store(fl_path,friends)
end

function _init()
	window{
		width=200,
		height=100,
		title="♥ Podnet Friends ♥"
	}

	fl_path="/appdata/bbs/"..stat(101).."/friends.pod"
	friends=fetch(fl_path) or {}
	ufl()

	width=200
	height=100

	gui=create_gui{
		x=0,
		y=0,
		width=200,
		height=100,
		update=function(self,msg)
			self.width=width
			self.height=height
			return true
		end
	}

	add_friend=gui:attach{
		x=0,
		y=0,
		width=100,
		height=15,
		cursor="pointer",
		draw=function(self,msg)
			if msg.has_pointer then
				rectfill(0,0,self.width,self.height,25)
			else
				rectfill(0,0,self.width,self.height,9)
			end
			spr(1,4,4)
			print("Add Friend",15,3,7)
		end
	}

	te=gui:attach_text_editor{
		x=80,
		y=0,
		width=100,
		height=15,
		max_lines=1,
		margin_top=4,
		margin_left=4,
		text_callback=function(self,msg)
			if (tonum(msg)) return true
		end
		--allows only numbers. credit to the user manual
	}

	friend_holder=gui:attach{
		x=0,
		y=15,
		height=85,
		width=200,
		update=function(self,msg)
			self.width=width
			self.height=height-15
		end
	}

	friend_holder:attach_scrollbars{
		scroll_spd=1,
		autohide=false
	}

	friend_holder:attach{
		x=0,
		y=0,
		width=200,
		height=0,
		update=function(self,msg)
			self.width=width
			self.height=#friends*18
		end,
		draw=function(self,msg)
			rectfill(0,0,self.width,self.height,18)
			for i=1,#friends do
				rectfill(0,(i-1)*18,self.width,i*18,13)
			end
		end
	}
end

function _update()
	local disp=get_display()
	width=disp:width()
	height=disp:height()
	gui:update_all()
	--gui IS updating
	--I think
	--something different happens if I comment it out
end

function _draw()
	cls(1)
	gui:draw_all()
end
3 comments



Cart #dj_wallpaper-0 | 2026-06-22 | Embed ▽ | License: CC4-BY-NC-SA
3


A cool little background, starring linear, quadratic, and cos equations!
It also shows some of your LXO stats.
I almost forgot, I used @Saturn91 's podnet stat code to help with measuring the percentage of how much your podnet holds.

3
3 comments



To anyone out there:

Is there any way to fetch the username of someone based on their ID in picotron? I've figured out a way to fetch the icon, because the podnet folder of a user has their icon as the icon of the folder, but there's nothing else in the folder's metadata. And I want to be able to fetch it without needing to use scoresub tactics.

Also,

what are the limitations of using fetch and store on the podnet with code? An AI told me that you couldn't use store on podnets, but using store("podnet://80974/test.txt","hamburger") seemed to totally work in the terminal.

4 comments



window{cursor=-1} freezes picotron

running window{cursor=n}, where n<0, freezes all of picotron.

GFX editor: resizing a gfx doesn't immediately change the size

When changing the dimensions of a gfx in the gfx editor, you can't see the changes in the dimensions of the canvas until you save the file.

1
2 comments



Cart #manual_viewer-0 | 2026-06-14 | Embed ▽ | License: CC4-BY-NC-SA
3


A TXT viewer made by me, with the official picotron manual as the file.

About the viewer:

This viewer includes a line highlighter, or whatever it's called, as well as line numbers, a text finder, and smooth scrolling. By default, it uses the picotron manual as the source file, but if you go around messing with the code, you can change the source file easier. But it was made specifically for the user manual. to use the find tool, simply type something out and press enter. Results will be highlighted in yellow, and you can navigate the results via the up/down arrow keys. You can also type in a line number to jump to it.

About the manual:

It was written by Joseph White, and is the official manual of picotron. I hope it's okay that I copied it into this p64.

The first few lines of the manual:

Picotron v0.3.0b
https://www.picotron.net
(c) Copyright 2022~26 Lexaloffle Games LLP
Author: Joseph White // [email protected]

Picotron is made with:

  SDL2 http://www.libsdl.org
  Lua 5.4 http://www.lua.org  // see license.txt
  lz4 by Yann Collet https://www.lz4.org // see license.txt
  z8lua by Sam Hocevar https://github.com/samhocevar/z8lua
  GIFLIB http://giflib.sourceforge.net/
  libb64 by Chris Venter

Latest version of this manual: https://www.lexaloffle.com/picotron.php?page=resources

DISCLAIMER

The code in this post may contain some AI code, which is now not allowed by the Terms of Use anymore (this post was made before the TOU update).

3
13 comments



Cart #pod_share-3 | 2026-06-06 | Embed ▽ | License: CC4-BY-NC-SA

Just a little test. When it's finished, it should be able to send files via scoresub. But right now it's just a little handshake system.

DISCLAIMER

The code in this post may contain some AI code, which is now not allowed by the Terms of Use anymore (this post was made before the TOU update).

0 comments



Here's a short code snippet that allows you to fetch the current user's icon/avatar gfx via podnet (in picotron). returns the gfx blob, or nil if it couldn't be fetched or the user is not signed in. You'll notice that if you go to podnet:// in filenav, the folders have the icons of the corresponding user, which is the basis of this function.

function get_icon()
	if stat(64) then
		local meta=fetch_metadata("podnet://"..(stat(64)))
		if meta and meta.icon then
			return meta.icon
		end
	end
end
4
3 comments



Welcome to ravin', a joust-like by your one and only Daniel Jorgensen (or goose2point0)! Your goal? have fun with your friends! Or, you could try hitting your opponents on their heads and hitting them while they're in an egg! Just use the arrows to move, O to jump, and X to bird. It's still a WIP though, so the bots don't do anything yet. And if you have any suggestions, let me know! Enjoy!

Cart #ravin_demo-3 | 2026-04-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

DISCLAIMER

The code in this post may contain some AI code, which is now not allowed by the Terms of Use anymore (this post was made before the TOU update).

Prev. versions:


Cart #ravin_demo-2 | 2026-04-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2


Cart #ravin_demo-1 | 2026-04-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2


Cart #ravin_demo-0 | 2026-04-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2


[ Continue Reading.. ]

2
2 comments



While working on a game I was working on, I figured I should post a code snippet on how I made this cool wavy Text effect. feel free to use it and change it however you like. (this was designed for wide text. to use it for normal text, change x4 to x2 on the local tx line)

local k="victory!"
pal(12,1)
for i=1,#k do
local tx=64+(i*8)-((1+#k)*4)
local ty=20+(cos((time()+(i*0.1))*0.6)*5)
print("\^w\^t"..k[i],tx,ty+1,1)
print("\^w\^t"..k[i],tx,ty,
8+flr(((time()+(i*0.1))*2)%8))
end
pal()
2
0 comments



So, for some reason, if you try to divide a number by 0, picotron just completely freezes. That's it. Anyway, here's the code I was making when I encountered this bug.

function sprDim(s,getw)
	local spr_data = s

	if type(s) == "number" then
		spr_data = get_spr(s)
	end

	if spr_data then
		if(getw)then
			return spr_data:width()
		else
			return spr_data:height()
		end
	end

	return 0, 0
end
function tquad(src,x1,y1,x2,y2,x3,y3,x4,y4)
	local dist12 = sqrt( ((x2-x1) ^ 2) + ((y2-y1) ^ 2) )
	local dist34 = sqrt( ((x4-x3) ^ 2) + ((y4-y3) ^ 2) )
	local maxDist = max(dist12, dist34)

	if maxDist == 0 then return end

	for i=0, maxDist do
		local ti = i / maxDist

		local xa = x1 + (x2 - x1) * ti
		local ya = y1 + (y2 - y1) * ti
		local xb = x3 + (x4 - x3) * ti
		local yb = y3 + (y4 - y3) * ti

		tline3d(src, xa, ya, xb, yb, ti*sprDim(src,true), 0, ti*sprDim(src,true), sprDim(src,false)-1)
	end
end

function project(x,y,z,retX)
	if retX then
		return ((x*fov)/y)+240
	else
		return ((z*fov)/y)+135
	end
end

function _init()
	fov=1
	floorCorners={
	project(-1,0,1,true),project(-1,0,1,false),
	project(1,0,1,true),project(1,0,1,false),
	project(-1,1,1,true),project(-1,1,1,false),
	project(1,1,1,true),project(1,1,1,false)
	}
end

function printFloor(src)
	tquad(src,unpack(floorCorners))
end

function _draw()
	cls()
	printFloor(1)
end

function _update()
end

UPDATE:

turns out it's not actually because of dividing by zero. Instead, it's related to arguments put into tline3d. See @Werxzy comment for more details.

1 comment



Cart #super_ufo_blaster-0 | 2026-03-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Super UFO Blaster: How to play

Welcome to the arcade game of Super UFO Blaster, or SUFOB for short. In SUFOB, your goal is to kick some alien butt! But to do that, you have to press 🅾 to shoot, ⬅ and ➡ to turn, and ⬆ to move forward. Keep in mind that running into an alien or the planet can seriously beat up your ship. Also, the planet has some gravity, so make sure that you keep your distance. Of course, you can also take advantage of the gravity by orbiting around the planet or sling-shooting yourself across. You can also warp around the screen, and you gain a heart whenever you clear a wave. Make sure your not lollygagging, or the aliens will speed up!

GOOD LUCK!

[ Continue Reading.. ]

3
0 comments



While messing around with tline3d, I managed to make some kind of tunnel. fun. Maybe someone will turn it into a proper background or something, but here's the cart.

Cart #tunnel-0 | 2026-03-14 | Embed ▽ | No License
5

5
0 comments



I decided to try to make a theme in picotron. I was sort of inspired by magma and rocks and stuff. Anyway, here's the theme:

Cart #magmatheme-0 | 2026-03-13 | Embed ▽ | License: CC4-BY-NC-SA
3

In order to get the theme, you'll have to go into the cartridge's contents. Oh, also, for some reason when I click on a picotron window, the little buttons on the bar stay in the dormant window colors until I click on the bar.

3
3 comments



Cart #duperasida-0 | 2026-03-12 | Embed ▽ | No License


when running the attached program, it sometimes crashes picotron. It seems that if I open picotron back up, load the cart, and run it, it works fine. But if I then edit a variable such as spread the cart crashes picotron upon running.

Edit:
It now crashes all the time 🙃

0 comments



While messing around with 3d rendering, I encountered an error in which the application crashed if I lowered the camera to the floor. attached is the cartridge.

Cart #wahejewako-0 | 2026-03-05 | Embed ▽ | License: CC4-BY-NC-SA

0 comments



If you try to drag and drop a file from splore or filenav onto the picotron desktop, it won't automatically snap to the grid until you move it again (but it's really just a mild inconvenience).

0 comments



When I tried using the save shortcut (on PICO-8 education edition) nothing seemed to happen, other than the notification on the bottom of the screen. I do know about manually typing "save" in the console, so I suppose it isn't much of a problem ┐( ̄ヘ ̄)┌

3 comments





Top    Load More Posts ->