Log In  
BBS > Lexaloffle Community Superblog
This is a combined feed of all Lexaloffle user blogs. For Lexaloffle-related news, see @zep's blog.

All | Following | PICO-8 | Voxatron | General | Off-site
:: Unfold ::

Cart #yegumagizi-0 | 2022-12-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Barnsley Fern https://en.wikipedia.org/wiki/Barnsley_fern

Tweetcart version:

Cart #gesabeteyo-0 | 2022-12-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#121675 2022-12-01 16:24 ( Edited 2022-12-01 16:25)
:: Unfold ::

Halloween is an occasion for everyone to be creative, not only Halloween costumes but also crazy halloween tattoos. Whether you want a permanent tattoo or a temporary design for the upcoming halloween, this small halloween tattoo ideas article will give you great ideas.

1. Witch tattoo

Witch is a popular image every Halloween. You can choose for yourself a scary witch tattoo or subtle sexy witch to show off your personality. It will look great on your arm.

You can also choose to go with a traditional look, or be creative and create something unique. Whatever you choose, a witch tattoo is sure to make a statement this Halloween!

➡➡➡ See more t-shirt designs at Gift Shirt for Family and Friends - 9TeeShirt.Com!

2. Ghost tattoo

This is definitely a cute little tattoo suggestion for you. A mischievous and funny ghost will be designed to highlight your arm. You should use a small tattoo because if it is too big, it will not be as cute as you expected.

The ghost will have big eyes, a wide smile, and its hands covering its mouth. It will be outlined in black and filled with vibrant colors of your choice. This design will make your arm look charming and bring out the fun side of you.

3. Pumpkin tattoo

Round and colorful pumpkins will be an interesting choice for you to tattoo. Get a tattoo to represent this spooky festival, it will show you really love the Halloween festival. You can get a simple pumpkin tattoo or you can choose a creative and detailed design.

Pumpkins are usually seen in orange, so make sure to pick the color that will look great on your skin. You can also combine pumpkins with other Halloween elements, like bats, spiders, or a witch hat, to create a unique and special tattoo.

4. Spider web tattoo

Spider web tattoo is a simple but meaningful tattoo that all your problems are caused by your wrong decisions. This is a great design for those who like minimalism.

The web can be designed in a variety of ways, such as with spiders, geometric patterns, or lines. The web can also have other symbols and elements incorporated into it, such as stars, hearts, or crescent moons.

5. Skeleton tattoo

The first thing you need to consider is the design of your skeleton tattoo. Do you want something simple and graphic, or something more intricate and detailed? The placement - another important consideration is where on your body you would like your skeleton tattoo to be placed. You may want to go for a small one on your forearm or ankle, or you could choose to get a large tattoo on your back or chest.

Small Halloween Tattoo Ideas

Another important consideration is where on your body you would like your skeleton tattoo to be placed. You may want to go for a small one on your forearm or ankle, or you could choose to get a large tattoo on your back or chest. The type of ink - you will also need to think about the type of ink you want to use for your skeleton tattoo.

6. Skull tattoo

Skull tattoo is an artistic tattoo with the meaning of living happily as if it were your last day. A small skull tattoo will make you so cool this Halloween.

7. Bat tattoo

A dark creature that always appears in every carnival is the bat. Bat tattoos are also quite interesting for you to experience. The choice of a spooky bat or an adorable design is up to your preference.

8. Maple leaves tattoo

The maple leaf tattoo has a very beautiful color and pattern. Especially its suitability with the halloween festival. You will look amazing when you combine it with spooky carnival outfits. It has been a popular symbol of patriotism in Canada since the 19th century and is known to represent national pride.

It can also be used as a symbol of strength, resilience and hope, making it an ideal tattoo for those who are passionate about their country or are looking for a meaningful representation of their values.

9. Castle tattoo

Images of spooky castles are very familiar every Halloween. So why don't you try this specially designed castle tattoo. This will definitely be your unique tattoo.

➡➡➡ Read now: 23 Surprise Romantic Anniversary Gift For Husband

The castle design is a mix of gothic and modern elements. The castle is standing tall with its spooky towers and crenellations. There are bats flying around the towers and the moon in the background gives an extra eerie feeling to the tattoo.

10. Horror movie character tattoo

Are you a fan of horror movies? If yes, then you really have a lot of interesting tattoo options this Halloween. Try getting a tattoo of a character from your favorite movie. It's going to be great looking at it!


Thank you for reading to the end. Hope this article will help you in finding small tattoo ideas for the upcoming Halloween. Remember to choose a design that speaks to your personality and style. Also, don’t forget to research the artist you choose carefully and be sure to always follow safe tattooing practices. Have a great time!

P#121672 2022-12-01 15:04
:: Unfold ::

Cart #tryhard-0 | 2022-12-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#121671 2022-12-01 14:23
:: Unfold ::

Cart #knutil_bpack-0 | 2022-12-01 | Code ▽ | Embed ▽ | No License

Feature Overview

BPACK() pack the value of the bit specification with bit width.

  • By packs in the direction of low bits when multiple bit values are specified.
  • By setting [number s] to a negative value, bit pack can be started from the decimal point.
  • If there are fewer bit-width elements relative to the value to be packed, the bit-width elements are rotated.
  • This function consumes 37 Token.
?tostr(v,1) -- 0x00ff.b000 (bit-left-shift:0)

?tostr(v,1) -- 0xffb0.0000 (bit-left-shift:8)

release note


  • first release
P#59572 2022-12-01 13:18 ( Edited 2022-12-01 13:54)
:: Unfold ::

This is probably a huge request, but it would be super useful for me.

Nowadays, most of my Pico-8ing takes place on pico-8-edu.com on a school-issued chromebook. Which means it's bad. It randomly decides to sign me out, reload tabs, and/or clear my downloads folder. So I have to backup all my projects to Github daily or I risk losing my project. My friend @Ummmm_ok lost progress on like 3 games he'd been working on when his tabs reloaded and hadn't backed up in a while (he has the same situation as me).

It would be extremely nice (in my opinion) if the education edition worked a bit more like Scratch, where the projects are linked to an account and saved in the cloud. That way, it wouldn't be as much work to back it up all the time.

Perhaps there would just be a button in the top right corner with your username and profile picture. When you click it, it gives you a list of all carts saved on your account. Then you can click one to load it. It would autosave like every 30 seconds or so, or alternatively you'd have to manually save like it is currently.

Again, this would probably be pretty hard to do, but it would be super handy.

P#121656 2022-12-01 02:11
:: Unfold ::

Cart #starjump_pico_cover-2 | 2022-11-30 | Code ▽ | Embed ▽ | No License

i did a cover of starjump from Celeste for @ooooggll and thought i should put it here :)

i quite love love love starjump but couldn't do it justice (especially the baseline, anxiety parts) but whatever hope you like it.

P#121651 2022-11-30 23:39
:: Unfold ::

No, it's not a duolingo demake.

Cart #duo-0 | 2022-11-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

It's a simple demake of Duet, a (primarily) mobile game by Kumobius. Made in about 2 days.
Also featuring auto-generated levels! Yay! Let me know your highscore (or when you gave up because you were bored).

P#121646 2022-11-30 23:15
:: Unfold ::

Cart #shapeofmind-0 | 2022-11-30 | Code ▽ | Embed ▽ | No License

Arrow keys - Move cursor
(X) - Confirm, pick up pieces, drop pieces
(O) - Cancel
Enter - Menu

​Shape of Mind is a simple puzzle game similar to Solitaire card games. Connect shapes by dragging them on the board. Shapes of the same color won't connect. You can move strips of connected shapes by grabbing the top-most shape of a strip. Drop shapes onto the Dreamer to begin a Halo. Shapes in the Halo cannot be removed. Once a Halo is complete the shapes will disappear. Complete three Halos to clear all the shapes and win the game!


​This game was created as part of the A Game By Its Cover Jam 2022​. The goal was to create a game based on of the cartridge covers from the Famicase Exhibition 2022​. The cover to Shape of Mind was created by Agustin Crisostomo​.​

The game was written and designed by Krystian Majewski​, an Independent Developer and the host of the Lazy Devs Academy video channel​. The entire development process was livestreamed.

The music was composed by Gruber Music​.

The game is written entirely in Pico-8.

P#121642 2022-11-30 22:25
:: Unfold ::

Cart #calcinp8-0 | 2022-11-30 | Code ▽ | Embed ▽ | No License

calculator in pico 8!

this was pretty fun to make!

hope you enjoy!


instructions on how to use are shown when you play it!
the code is heavily commented for "ease of access" and "peace of mind" so that you can edit it if you want
this was
have fun mathing!

thank you so much for all the support! i love this community so much and i am grateful of how kind and accepting it is! thank for for all the support on my last project:"celestenograv" and the feedback! i hope you all have a wonderful day! have fun out there!

P#121633 2022-11-30 20:00
:: Unfold ::

how to i export a cart as an image

P#121630 2022-11-30 18:30
:: Unfold ::

Comment changer son pseudonyme ?

P#121619 2022-11-30 12:53
:: Unfold ::

Cart #knutil_bunpack-2 | 2022-11-30 | Code ▽ | Embed ▽ | No License

Feature Overview

BUNPACK() slice the value with bit width.

  • By specifying the argument after [number w], a value of up to 32 bits can be sliced.
  • By setting [number s] to a negative value, bit slice can be started from the decimal point.
  • This function consumes 30 Token.
a,b=bunpack(0xf8,4,4,4) -- Value, First bit-shift, bit-width, ...[bit-width]
?a -- 15 (0xf)
?b -- 8 (0x8)

release note


  • first release
P#121616 2022-11-30 12:12 ( Edited 2022-11-30 12:37)
:: Unfold ::

Cart #tuyizubuso-1 | 2022-11-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hello friends ! this is the second episode of the Aliens invaders saga !

I hope you can have some fun !

Enjoy !

P#121607 2022-11-30 07:26 ( Edited 2022-12-01 04:56)
:: Unfold ::

for s=1,10do
for i in all(stars)do

hey! super quick and basic question, feel like ive definitely done this before but i am just not thinking hard enough rn but why isn't this working? no errors are being thrown so i feel like im definitely forgetting something super basic thats making it all break but i am still a beginner and can't seem to figure out what. ty for any help!

P#121581 2022-11-29 21:16
:: Unfold ::

I purchased the bundle of Pico-8 and Voxatron earlier this year, but have since lost my download key in an email purge. I realize now that I never created an account to link to it. Is there any way for me to recover my info so I can re-download them? I emailed the support email a few times, but haven't heard anything back.

P#121576 2022-11-29 20:11
:: Unfold ::

Cart #moonshmup-0 | 2022-11-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


The legendary remake of the game

"Moonpong: The Tales Of Epic Lunacy" by Punkcake Deliceux

and Remy Devaux.

This is a shooter in which you can shoot down enemy

spaceships with balls.

Many sprites and models are specially drawn as in the original)

Have a fun \^_^/

P#121570 2022-11-29 17:11
:: Unfold ::

Cart #vector_p8-1 | 2022-11-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


A simple and lightweight (in tokens) vector math library for PICO-8. This library contains no error handling at all. It's a side effect of keeping it low in tokens, so you're gonna have to be responsible of whatever goes in.


  • load #vector_p8
  • Save as such: vector.p8.
  • Remove all the demo code; it's in the second tab.
  • #include in any cart you want.

Functions within:

Creation and management

vector(x,y,z) - The function. Vectors are just normal Lua tables with x, y and z fields, so you can pass any table that contains x, y and z to any of the functions and it'll work just fine.

v_polar(length,angle)- Makes a vector using polar coordinates.
v_rnd() - Gives a normalized vector with a random direction.

v_cpy(v) - Copies a vector.
v_unpck(v) - Unpacks a vector.
v_arr(v) - Returns a vector as an array of the 3 components that comprise it. Ignore the third value (Z) if your vector is a 2D one.
v_tostr(v,d) - Turns a vector into a string. The d parameter is used to know if it should be printed as a 3D vector or not.
v_isvec(v) - Checks if a certain value is a vector.

Actual math

v_add(a,b) - Adds two vectors of any dimension.
v_sub(a,b) - Subtracts two vectors of any dimension.
v_scl(v,n) - Scales a vector by a scalar (normal number).
v_mul(v,n) - Alias for v_scl.
v_div(v,n) - Scales a vector by the inverse of a scalar ("divides" the vector).

v_dot(a,b) - Computes the dot product of two vectors.
v_cross(a,b) - Computes the cross product of two 3D vectors.
v_magsq(v) - Computes the magnitude squared of a vector.
v_mag(v) - Computes the magnitude of a vector.
v_dstsq(a,b) - Computes the distance squared between two vectors.
v_dst(a,b) - Computes the distance between two vectors.
v_norm(v) - Normalizes a vector.
v_perp(v) - Gets a 2D vector perpendicular to the passed one.
v_sprj(a,b) - Returns the scalar projection of one 2D vector in another.
v_proj(a,b) - Returns the actual projection of one 2D vector in another.

Rotation related functions

WARNING! None of these functions work with 3D vectors. When passing in 3D vectors, the result will always be 2D. All these functions work with revolutions according to PICO-8's convention.

v_rot(v,t) - Rotates a vector by an angle t.
v_ang(v) - Gets the direction a vector is pointing towards.
v_atwds(a,b) - Gets the angle needed to point towards.


v_lerp(a,b,t) - Linearly interpolates two vectors.
v_eq(a,b) - Checks if two vectors are equal.


WARNING! Because of the way Lua tables work, do NOT use compound assignments to alter a variable if you directly assign one of these constants to it. Either copy the constant using v_cpy and then assign that to the variable or use one of the functions within the library (all but v_be*d) to manipulate it.

v_right - Rightwards pointing vector.
v_left - Leftwards pointing vector.
v_up - Upwards pointing vector. Y points downward in 2D so this vector points towards -Y.
v_down - Downwards pointing vector. Y points downward in 2D so this vector points towards +Y.

v_above - 3D vector pointing upwards. Unlike 2D, Y in 3D points upwards, so this vector points towards +Y.
v_below - 3D vector pointing downwards. Unlike 2D, Y in 3D points upwards, so this vector points towards -Y.
v_front - 3D vector pointing forwards.
v_back - 3D vector pointing backwards.

v_zero - Zero vector. All components are set to 0.
v_one - Identity vector. All components are set to 1.

v_cntr - Utility vector pointing towards the center of the screen, i.e. [64,64].


v1.1 (09-11-2022):

  • Removed all dimension related functions.
    Consequently, a parameter was added to v_tostr for it to know how to format the output.
  • Added v_sprj and v_proj.
  • Renamed v_center to v_cntr.

v1.0 (09-11-2022):

  • Initial release
P#121553 2022-11-29 14:31 ( Edited 2022-12-01 03:24)
:: Unfold ::

Cart #gubegimofi-0 | 2022-11-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#121549 2022-11-28 22:53
:: Unfold ::

Cart #naharana-0 | 2022-11-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#121509 2022-11-28 03:53
:: Unfold ::

I'm going to start with my general understanding and label questions [Q#] with the hope someone can fill in the blanks. Consider the discussion of 'cost' in terms of speed/cpu. I'm hoping there's a general concept I'm missing that will cleanup the flurry of questions around [Q2], regardless please bear with me:

General code is written topdown like the below where you define the function at the top and then you can simply call said function below that point to access the block inside. I don't fully understand the cost, in terms of lua itself, associated with defining 'function a()end' (the pico8 wiki has general pico8 cycle costs). My understanding though is the program won't look inside of the function 'until' I call it and so there is simply some generic predefined 'base cost'(cpu cycles) to defining a function and this cost is not affected by the number of parameters or whatever is inside the function....tldr it's always a flat cost each time the compiler/better-word runs down that part of the page and sees you want to define a function. So this usually amounts to the general idea of 'define the function once at the top of the code' and then call it as many times as u need where u need to after:

function a()end
for i=1,100 do a() end
--vs: for i=1,100 do function a()end a()end; defining the same function 100 times is bad.

However, the defining of function, like most parts of lua, can be optimized through the limiting of its scope. Again my understanding of scope is limited(puns), but as a functional explanation it amounts to 'smaller scope of an item = less cpu cost of the item'. Turning functions local makes it apply to 'just the' remaining part of the block it is currently in, and you can further limit the scope of a larger block with 'do end'.

--code above--
local function a()end
for i=1,100 do a() end
--code below--

I think I got the general idea above. My main confusion lies when you toss the idea of a gameloop into this picture. I'm assuming there is no secret difference to how _update() and _draw() handle functions outside of the idea _draw() might skip frames, so Let's take the example below which seems to be how most games orient things. My understanding in pico8 being: everything runs top-to-bottom 1x at the start of a game(unless I'm doing function calls in the middle of the ocean, the stuff in the functions will not be run yet)....then everything inside _init() runs 1x...then everything inside _update() and then _draw() runs over and over xx times per second.

function _update()a()b()end
function a() end
function b() end

If we wanted to define the above functions as local, the next example below shows the change in order necessary to do so...and there seems to be no change in cost(ctrl+p testing values in pico8) between a local function a() or global function b()...since they seemingly have the same level of scope and are only defined 1x each (is my understanding as to why). [Q1] So that trope I hear from the love2d community and sometimes in pico8 to 'just redundantly define everything as local' is wrong....but doesn't inflict penalty.... so it's really just a habit builder to protect against mistakes where u otherwise would find benefit from limiting the scope...?

local function a(x) return x^4 end
function _update()for i=1,10000 do a(10)b(10)end end
function b(x) return x^4 end

Okay so we now have base cases for gameloop and nongameloop above. So Let's look below where the cases overlap. In these situations I'm left confused and often wondering if there is some kind of benefit to 'defining the function within a block within the gameloop'... or just to revert to the above where u toss the function outside everything with all the other global functions..aka where it only gets defined 1x at the start of the game and never again. Take this info() example:

function _draw()info()end
function info()
if time()==2 then print("<5")end
if time()==3 then print("<5")end
if time()>5 then print(">5")end

[Q2]Let's say I wanted to keep everything in this truly horrible format, but create a function for the redundant print("<5") blocks. If the function I want to use is: function p()print("<5")end
Which (A/B/C/D/?) position should I use to define function p()... and why?

function _draw() 
--D) local function p()print("<5")end

--C) local function p()print("<5")end --if [Q1] was correct then this position and A are the same thing

function info()
--B) do local function p()print("<5")end
if time()==2 then p()end
if time()==3 then p()end
--B) end
if time()>5 then print(">5")end

--A) function p()print("<5")end

I would think B would be the correct position....but then I consider the fact that B is a function being defined every single frame in a loop....and the code where we call p() is only actually running for two frames in the game. I would think any potential saved overhead those two frames might be undone every other frame by this fact, and that A) would be the appropriate answer. But what if info() only ran for specific frames and every time it did run the p() was called without exception? I would think then B is indeed the correct answer since it mimicks the nongameloop ex at the top of the page.... But that still assumes the cost per defining each frame is still less than the amount saved by calling a local function....wud that change based on how many times I need to call that local function.
What if info() was in a for-loop that ran a thousand times in one of those combinations....what if it was just p() itself?

function _draw() 
--D) local function p()print("<5")end; [Q3] is D now the best position?
 for i=1,1000 do p() end

[Q4]What if environments come into play...a local function defined in the current environment each frame of the gameloop vs a global function linked through a metatable from another environment that's defined just 1x outside the gameloop. Here's an earlier example I had: If the rest of the game is defined in the environment of _G = _ENV _G.__index = _G and if add_bullet(...) is called each time in _update when the player presses the fire button...and there are variable chances of the bullets fired actually being of the type (10%/50%/90%) that call the function trimg_xy() if at all... where should I place the function trimg_xy? in A. or B. or C. or other?

I guess all these questions comes back to: [Q5] how much does this all compare to the cost of defining a function 1 or more times every frame within the gameloop vs 1x outside of it? Cause that's effectively what this is...do we define a function 1x like A) outside of everything.....or define it xtimes every frame....and is there a different payout depending on which per each conceivable scenario.

P#121503 2022-11-28 03:29 ( Edited 2022-11-28 03:58)
View Older Posts
Follow Lexaloffle:          
Generated 2022-12-01 17:03:46 | 0.127s | Q:81