I don’t understand your question? Your code seems OK, texture assignation should work. Here a tiny playground with diffuse with alpha + emissive, works like a charm https://www.babylonjs-playground.com/#5K9J89#10
I thought diffuseTexture only had an effect if I had lighting in my scene?
In terms of sampling I have an issue. If I scale the 32x32 image up to 320x320 and use bilinear sampling there is much less aliasing than nearest sampling at 32x32. Is there a way to obtain that effect or should I just let it be?
Secondly when I make a sprite sheet of 3 rows and change my uScale to 1/3 it looks really weird (I fixed it by making it an even amount but there should be a better way right? - it occours when i have 5 images too)
Yep, diffuse channel is influenced by dyn lighting, but also with ambientColor (which is itself influenced by scene ambientColor). Here, instead of black material where light doesn’t illuminate, you can get a grey diffuse using a grey ambientColor : https://www.babylonjs-playground.com/#5K9J89#14
About your texture, stay on bilinear, nearest was just an idea in the aire Just tweak your 32px² file on image editor to made it 256/512/…/px².
So if I want to make it 32x32 I should still upscale with nearest for less aliasing? I want to use 32x32 sprites.
Also whenever i scale my sprite sheets it becomes blurry
Blur could come from mipmaps, you can try disabling them (here my test). But when dealing with tiny texture size like here, there’s not magic trick to avoid this interpolation I think.