#UserK thread

1 messages ยท Page 2 of 1

hasty solstice
#

why is recursive false here, what sets it to false?

#

like, its not like the entire file is rerun when the function calls itself, no?

gray haven
#

it called spawn_fn

hasty solstice
#

oh

#

you shouldnt use spawn_fn to do it???

gray haven
#

why not?

#

why cant a spawn fn spawn something from a list

hasty solstice
#

why are you using spawn_fn to recursively call??? yeah if you bypass the recursion you bypass the recursion

gray haven
#

that seems a useful thing to do

hasty solstice
#

yeah you can but you should probably set recursion yourself, maybe i should add it to global so you can manually control that stuff

gray haven
#

this is a useful thing to do and also the design is just bad even ignoring the issue

gray haven
#

and have seeded and unseeded variants

hasty solstice
#

load_entity_from_list is what you're intended to use

gray haven
#

what if i want more than 1?

#

and complex behaviour to decide how many

hasty solstice
#

then you would presumably want to make your own function for this????

gray haven
#

say i want to load 3 things from small_enemies and 1 from big enemies

gray haven
hasty solstice
#

why are you spawning enemies on item pedestals now????

gray haven
#

ok small_reward and big reward

hasty solstice
#

this is why i was hesitant to ask you for help on this ๐Ÿ˜”

gray haven
#

global mutable state like this just isnt a good idea

#

i dont know why you wont just do things the obviously better way

hasty solstice
#

i was gonna change it cuz you made a good point about wanting to not have it seeded potentially but honestly i think im done im just gonna leave the script as-is

#

its functional and thats all i care about fn

gray haven
#

i mean it doesnt work right but whatever

hasty solstice
#

it works right for 99% of standard cases, to my knowledge that 1% doesnt exist yet, so i dont care enough to put up conversing further about it to resolve a currently nonexistent scenario

gray haven
#

doing it correctly is easier than the way you currently are

#

and publishing a library with known easy to fix bugs is just silly

#

people dont want to debug the library not working

hasty solstice
#

hence why im deciding to not release it, at least rn

#

im just gonna use it for my own internal CC purposes

#

also i imagine by the time someone actually encounters that issue, they would be able to explain it normally

gray haven
#

?

#

likely they wont notice

#

because it just silently does the wrong thing with rng

#

so you end up with a vanilla chest situation or w/e where a lot of outcomes just arent possible / have altered probabilities

dawn parcel
#

dont forget to make it all 1 line

hasty solstice
#

to fix you just gotta remove the space after the comma, so something like "quality of life,cheats"

(you can tell if a tag is invalid btw bc invalid tags will say "Tags: " before they're listed)```
#

geh cant pin msgs in my own thread, wretched

pallid magnet
#

just add it to moddev bot or smth

hasty solstice
#

i dont think i have faq perms lmao

gray haven
#

??

#

@novel plinth resolve this at once

hasty solstice
#

and i wanted to keep it pinned so i could post it in workshop comments- though FaQ would be convenient

gray haven
#

.workshoptags

dusky mistBOT
#
**FAQ: workshop_tags (Creator: nathansnail)**

tags in the workshop.xml file should not have a space after the comma, this makes the workshop fail to recognise those tags as it will read them as having a space before the tag, you can see this in how this steam page displays the first tag separately from the invalid ones, just a heads up o/

to fix you just gotta remove the space after the comma, so something like "quality of life,cheats"

(you can tell if a tag is invalid btw bc invalid tags will say "Tags: " before they're listed)

hasty solstice
#

neato

novel plinth
#

tell discord to add a permission to let people pin things in their threads

hasty solstice
#

ill just do that whenever i need to grab it to paste in some mod desc

hasty solstice
pallid magnet
#

just mod the modders

hasty solstice
#

oh

#

hang on

hasty solstice
#

lmao

gray haven
#

?

#

ah i see

hasty solstice
#

did i really never catch that one? im sure i wouldve checked graham's things among other top mods

gray haven
#

"Grahams Perks" isnt tagged as adding perks

#

how can this be

hasty solstice
#

no

#

every other tag is invalid

#

perks is the only valid tag

gray haven
#

oh?

hasty solstice
#

yeah steam is weird its the other way around

gray haven
#

yeah thats really strange

hasty solstice
#

โœ…

gray haven
#

id think that perks would be borked and the others are fine

#

steam bug?

hasty solstice
#

as the faq says, the incorrect ones are the ones listed under Tags:

#

idk all invalid tags seem to go under there- i assume its intended, just somewhat unintuitive

gray haven
#

.workshop apoth

dusky mistBOT
# gray haven .workshop apoth
Apotheosis

Apotheosis is a massive content mod which expands upon EVERYTHING.
134 new enemies!
6 new bosses!
84 new spells!
7+ new biomes!
18+ new materials!
New Endings!
Perks, Items, structures, Secrets, Music, and more!

View on Steam

Tags

creatures, perks, spells, gameplay, audio, biomes, bosses, graphics, items, funny, alchemy, total conversions

Author

Conga Lyne

Subscriptions

68901

hasty solstice
#

like Tags: refers to custom community tags, and then the actual tags are not listed as anything cuz they are maybe moreso designations? idk steam weird

#

apotheosis is correct

gray haven
#

.workshop graham

dusky mistBOT
# gray haven .workshop graham
Graham's Enemy Dialogue

This is an entirely cosmetic mod that allows (nearly) every enemy in the game to speak by displaying text above their head!
All enemies have their own unique lines of dialogue, and they'll react to what's going on around them.
There are tons of unique interactions to be found and explored!

...

View on Steam

Tags

quality of life, graphics, Funny

Author

GrahamBurger

Subscriptions

11938

gray haven
#

.workshop graham things

novel plinth
#

Funny

dusky mistBOT
gray haven
#

noitabotti knows

pallid magnet
#

but you can see the spaces before tags

#

amusing

gray haven
#

if you click the borked tags it searches correctly but that mod doesnt show up

hasty solstice
#

lmao i did inform him before

pallid magnet
#

because it can't stringmatch

hasty solstice
#

he just forgor

gray haven
pallid magnet
#

not sure frankly

hasty solstice
pallid magnet
#

feels like it shouldn't even accept incorrect tags

#

maybe nolla

hasty solstice
#

i tag CC with X translation for the langs we support

pallid magnet
#

which you can't search?

hasty solstice
#

p sure you can

pallid magnet
#

try it, idk

hasty solstice
#

you can search community tags

#

this is portuguese brazillian translation

pallid magnet
#

hm

#

so search strips spaces, but upload doesn't

#

yeah, looks like steam issue

hasty solstice
#

on one hand this should probs be fixed in the nolla workshop uploader

gray haven
#

report it or something

hasty solstice
#

on the other hand this is really funny

jaunty eagle
#

lmao the double snail tag

hasty solstice
#

yup

#

i saw fairmod had incorrect tags earlier this year so i added correct ones :D

hasty solstice
pallid magnet
#

no dlc tag?

jaunty eagle
#

Oh that makes sense

hasty solstice
#

truee

jaunty eagle
#

Apoth already has the workshop page translated into different languages so it would make sense to throw the relevent tags up too

hasty solstice
jaunty eagle
#

kaay

pallid magnet
#

i still lol at the fact that apo confused cat and dog in jp translation

jaunty eagle
#

Remember to include English

pallid magnet
#

or smth like that

jaunty eagle
#

Wait really?

#

lmao

hasty solstice
#

on the topic lmao

pallid magnet
#

i don't remember if i fixed it or left as meme

jaunty eagle
#

ah yeah, that

#

I'm pretty sure that's since been fixed

hasty solstice
#

i hate my country sometimes

jaunty eagle
#

Oh right

hasty solstice
#

genuinely not allowed to view any image in workshop descriptions lmao

pallid magnet
#

just move to ireland brub

jaunty eagle
#

I think I made a PR uploading the workshop pics to github

#

And I'm pretty sure steam supports that

#

Let me check

hasty solstice
#

if it does im 100% stealing your method for CC

jaunty eagle
#

kaay

novel plinth
#

box too small :(

hasty solstice
jaunty eagle
#

Hell yeah

#

I'll redirect all the image links to github then

hasty solstice
#

genuinely baffling how our government did this and then refused to even consider backing out after we got over half a million signatures asking to repeal it

pallid magnet
#

wasn't gitgub blocked in some country

#

gitgub

hasty solstice
#

is it?

pallid magnet
#

i vaguely remember hearing about it

hasty solstice
#

hold on

#

The software development platform GitHub has been the target of censorship from governments using methods ranging from local Internet service provider blocks, intermediary blocking using methods such as DNS hijacking and man-in-the-middle attacks, and denial-of-service attacks on its servers from countries including China, India, Iraq, Russia, a...

pallid magnet
#

open source bad

hasty solstice
#

thats true

jaunty eagle
#

huh

pallid magnet
#

well, you can still use direct steam url

hasty solstice
#

this is 2019

jaunty eagle
pallid magnet
#

upload to steam

hasty solstice
#

In all of these cases, GitHub has been eventually unblocked after backlash from users and technology businesses or compliance from GitHub.

jaunty eagle
#

I think I remember trying that at one point but I remember it not working

pallid magnet
#

but it will clutter the screenshots

hasty solstice
#

i suppose you could make the change and then see if anyone brings up issues with the images?

pallid magnet
#

some govs are stoopid, what can you do

jaunty eagle
#

Oh, it works, I'd just need to upload to the artwork tab prooobably

pallid magnet
#

idk if you can use your own screenshots

hasty solstice
#

it would be convenient

pallid magnet
#

am not guru in steam

jaunty eagle
#

It looks like I can use any random steam screenshot/artwork

hasty solstice
#

i think github should work and would probs be easier to manage, but if it works it works

#

ill probs switch CC to use github until i hear about it causing issues

jaunty eagle
#

I think github might be the most reliable image host available, apparently the version of steam the rest of the world uses isn't accessible and only a special version of steam is in china; and I imagine no country would want to block github for long

jaunty eagle
#

huh

hasty solstice
#

did i make a mistake?

jaunty eagle
#

I think it'd be easiest to understand for native speakers if the translations were written down as they would be in their native language

hasty solstice
#

mmm thats fair

jaunty eagle
#

I think the message can be gotten across without adding translation onto each language too, but that's more just me

hasty solstice
#

thats a good point, ill probs ask CC translators for tag names later

#

mmm i just felt X translation better clarified

#

if its considered too wordy it can be removed

#

though do lmk

jaunty eagle
#

I could see it going either way honestly

hasty solstice
#

geh

#

graham's things doesnt document its github anywhere

#

not on steam desc, wiki, or #1020421214176551033 post

pallid magnet
#

wasn't it private til recently

jaunty eagle
#

huh.. I don't know if graham uses github

pallid magnet
#

or he forgor again

jaunty eagle
#

I'm having trouble finding him on any other noita projects, I would've thought he'd make at least one PR to something like fairmod

pallid magnet
#

ah, im confusing with advanced inv

jaunty eagle
#

Found it

hasty solstice
#

W thx

jaunty eagle
hasty solstice
#

lovely lmao

jaunty eagle
#

pft

hasty solstice
#

ah wait i already had it grabbed whoops lmao

jaunty eagle
#

Oh yeah, how are the bubbles going btw?

#

oh lmao

hasty solstice
#

oh yeah i was gonna look over how they spawn today

#

im planning on making a list of biomes and the bubbles that spawn for each, but then got sidetracked by all this lmao

jaunty eagle
#

huh

hasty solstice
#

ill finish this up, then finish up bubbles and then work on the thing i wanted to add to CC

jaunty eagle
#

Alright

#

I'll look over the github pr in the morning since it's half past midnight; there's no issues with it but it's an excuse to let you mess with things if you end up changing your mind about stuff while I'm in bed

hasty solstice
#

sure ๐Ÿ‘

#

after i add the feature im gonna ping the translators so they can translate the untranslated stuff in CC and ill ask them for translation tag names when i do that

hasty solstice
#

fuck i have a question about the bubbles but i think conga's already gone

#

im just gonna collapse the bubble spawns into one type rather than big vs small enemies i think, ill make bubbles big probably

jaunty eagle
hasty solstice
#

interesting, probs doesnt affect much for what im doing tho

jaunty eagle
#

Hey @hasty solstice, while you're doing apoth compat on CC's end, you can gsub in light oil & heavy oil from CC into these two files to have those materials work with oily material hex

hasty solstice
#

what is this doing?

#

if its providing heavy/light oil there probs isnt much of a point

#

if its for detecting them tho it makes more sense

jaunty eagle
#

Ah right sorry, this is a status effect which causes the victim to take damage from oil & oil-like substances

#

yeah

#

It's for detecting the liquids

hasty solstice
#

oooooooooo got it yeah ill go ahead and do that

jaunty eagle
wheat zenith
#

you can thank me userk for not letting conga incidentally make this a lil harder to append to ๐Ÿ‘

#

I remembyered the one mod that adds an oil variant to the game

hasty solstice
#

hell yeah lmao

#

first apoth compat lmao

wheat zenith
#

maybe now the industrial hex spell will finally see some use!
-# ...probably not lol

hasty solstice
#

would "Grease" make sense here perhaps?

jaunty eagle
#

Probably

wheat zenith
#

yeah probably

hasty solstice
#

got it, thats a mat that would show up significantly more often than oil lmao

#

mmm, mildly wretched appending, may take a look at apoth code tomorrow to see if i can make it slightly more coherent to append to while making it still work well on its own

#

oh apparently i forgor to make a pr for my minor utils improvements

#

i got sidetracked by someone playing fairmod for a good chunk of today so ill do the bubble stuff and whatnot hopefully tomorrow

wheat zenith
#

I wonder who that was..

hasty solstice
#

i wonder lmao

#

now leave me as i go and post completely unrelated mamumimi fairmod clips in #1293148865943310388

hasty solstice
gray haven
#

i think that function didnt work right with children?

jaunty eagle
#

Likely what Nathan said, I don't remember why I chose my method but remember using it for a reason

gray haven
#

it only checks direct children of the entity

#

not all children

#

so if you hold kiuaskivi or whatever it wont detect that if you call it on player

#

CRITICAL_HIT_BOOST in projectile shooting function seems to be the only engine code that uses the same approach

#

Lua::GameGetGameEffect does it correctly

hasty solstice
#

Goot it

gray haven
#

maybe document that?

hasty solstice
#

You can

#

On phone rn

hasty solstice
#

i came up with new Parallel Parity feature creep so maybe this time i can actually finish the mod

#

after i finish bubbles stuff for apoth

#

writing it down so i dont forget, 1: see if i can say which PW we're in on the "Entered West/East XXX" like "Entered East/West [biomename] [distance from MW in PWs]"

#

2: spawn return rift on entering a portal back to Main World from a PW

wise anchor
hasty solstice
#

hm? wdym?

#

or do you just mean the concept lmao

hasty solstice
pallid magnet
#

well, it's not called from lua side

hasty solstice
#

yeah thats what i meant

pallid magnet
#

have to go unsafe for it

hasty solstice
#

GamePrintImporant is just an easy way to refer to godprints

#

then i remembered godprint

wise anchor
hasty solstice
#

thats a shame, wouldve been nice to mess with

hasty solstice
pallid magnet
#

yeah

#

#mod-development message

gray haven
hasty solstice
#

!!!!!!!!!!!!

#

what would this entail actually?

#

i probs wont cuz i think itd break compatibility with mods that rely on it

#

but if not for that i totally would

gray haven
#

for child = each child in biomes all edit file child name = "NONE"

#

and then in the biome entered script you just print

hasty solstice
#

yeah the latter part i guessed, mmm yeah it sounds like itd break things

gray haven
#

doubtful

#

what would it break

#

better idea: change the Entered: translation to be blank

pallid magnet
#

it will break scripts that tracks biome names

#

e.g. healthy explorer

#

for blank translation it probably still will show the window or just throw errors

hasty solstice
#

and also mods might get biome names for stuff by, yknow, grabbing the biome names?

pallid magnet
#

just use my mod to track pos ๐Ÿ‘

wise anchor
#

the results might be amusing though

hasty solstice
#

true, but breaking any sort of compatibility is something i really wanna avoid with Parallel Parity lmao

dawn parcel
#

rare instance of nathers ignoring any sort of mod compat :o

hasty solstice
#

ill probs leave the PW number logging on biome enter in the todo under "Technical Limitations" in case a way to circumvent this is discovered/implemented in the future, or if i choose to get into unsafe modding proper

#

uh oh, wheres my feature creep list for parallel parity

#

its either not pushed to github yet or i failed to properly write it down

#

ill check my local build when im on my computer just to make sure

gray haven
hasty solstice
#

this should be p much my entire todo list of unimplemented features

gray haven
#

shadow kolmi โ€ฝ

#

what will you do about farming sampo

dawn parcel
#

the kolmi from deep end

#

bosses in deep end are goofy, if you dont kill some other boss before some stronger boss, its literally impossible to kill the stronger boss

gray haven
#

how literal is this literal?

hasty solstice
dawn parcel
#

its not super important cause you could end up duping sampos anyway

hasty solstice
#

yeah, but also shadow bosses arent gonna grant any rewards, in order to be in-line with vanilla

#

though i might add a mod setting to toggle quest rewards from a few so that you can like, recover the key if its destroyed or smth like that

gray haven
#

alchemist is already in pw

hasty solstice
#

specifically thinking about how easily people destroy the key

gray haven
#

the issue is the machines cant be used multiplle times correctly

hasty solstice
#

yeah, this is based off of Alchemists and Wand Connoisseurs- or do you mean regular alchemists spawn in PWs?

#

if thats the case ill need to think about what to do about that

hasty solstice
hasty solstice
#

@jaunty eagle back to working on bubbles, do they always have this as their progression icon? if so, might be better to instead have a white bubble since we intend to use potioncomp to recolour them based on material rather than having forced preset sprites (will throw in an option for custom sprites btw in case any need it)

wheat zenith
#

then that means the default material is milk

jaunty eagle
hasty solstice
#

hmmm fair enough, ill leave it then- i actually was expecting acid and was concerned changing the icon would be unavoidable but it seems it doesnt derive this from the SpriteComponent so i should be able to change this without changing the progression icon

jaunty eagle
#

๐Ÿ‘

hasty solstice
#

ill make a white ver of acid bubble rq assuming there are no plans to make new sprites

jaunty eagle
#

None

hasty solstice
#

well even if there were it wouldnt matter now that i think about it lmao

wheat zenith
#

.......which I don't particuarly...

#

one of the sprites I shall hold off on due to its age in the mod...

hasty solstice
#

back to working on bubbles, oooo potion comp seems to read from material inventory by default, that makes sense and is very handy! dont need to actually do any data setting at all

#

mmmm colouring looks good on this fn imo, feel free to tweak

#

@jaunty eagle the only difference between acid bubble and acid bubble GC is this script marked as DEBUG/GC_Test.lua, should these be included in the bubble pool? if i get everything else out the way first before you're around ill add them and just wait to hear if i should remove them

jaunty eagle
hasty solstice
#

noted

hasty solstice
#

geh, distractions, the eternal enemy, will surely get back to bubbles tomorrow (tomorrow being today, it is currently 6:34am im sleeping first)

hasty solstice
hasty solstice
#

geh okau

#

test

#

hmm, idk if these are going through, device is struggling to load discord stuff, its being very slow on loading lmao

#

geh

#

loaded now

#

everything sent after it loaded, thank you discord, how helpful

#

anyway okay i think im gonna put in an effort to release Parallel Parity this week

#

ive been sitting on it for some 8 months now, basic functionality was written and working within a week, i had the mod useable withing just 2 or 3, since then i have rewritten it to be much better but the gaps between me working on it grew exponentially greater with each commit, im gonna try to wrap up this long-overdue release

hasty solstice
#

i might give up doing a clean version of summon portal compat and be less reserved about the parts i rewrite

#

idk ill take another look at it, the main thing that absolutely needs to work for release is mod settings, i couldnt find a clean way to do mod settings in the lovely modular way i liked so ill just half-ass it fn and i can clean it up some other time

#

then mod support should be simple? i just need to move around some stuff into specific function calls, need to find the last point in init _pixel_scenes.xml can be modified, likely whatever is directly before WorldAndMagicNUmbersInitialised

#

ill run some prints in every known init call and then try putting my script at diff points to test where it does or doesnt work

#

then i just need to support appends letting people import pixel scenes, portals, settings and world-scenes identities

#

i believe you can GetFIleLuaAppends, i wanna see if i can append another mod's init.lua mid-init and then get them through ModGetFileLuaAppends or whatever and iterate over them to get return table[] data from them

#

if so that would be a very clean way to get file appends without needing globals here or needing to extend into multiple other files

#

geh i do have some CC stuff to handle first later tho

#

as per usual, game breaking bugs are causing issues, need to fix toxic mists causing nullium floods, probs modify toxic mist mat to not inherit reactions, then rework material projectile caps and add some more caps to materials that lack them, and fix the setting tooltip too

#

those should be quick fixes tho

#

geh okay ill do the CC stuff when i get home, then ill boot up Par and refresh myself on it and where i last was

hasty solstice
#

how does this even happen... (highlight bits are 4 spaces while non-highlighted are proper tabs)

#

working on par now!!!

pallid magnet
#

copy paste

#

or why formatter is important

hasty solstice
#

it doesnt really affect me enough to care lmao
im just surprised at the spottiness of the tabs and one of them has space tabs sandwiched between

gray haven
hasty solstice
#

theres only one person working on this project entity_hamis

#

or if you're theorising ways this happened

#

i did the copy paste but it was nabbed from elsewhere, but im not sure if thatd really cause this? if it could id need elaboration lmao

#

like all i wouldve nabbed was the nxml.new_element(...) part

gray haven
#

regardless this would never happen if you used a formatter

hasty solstice
#

this will not affect my decision to use an autoformatter

hasty solstice
#

man i love college computers, i got firefox installer on my global desktop so i can install firefox on whichever one im using, the other students here already installed steam and they're game design computers so VSC and GitHub Desktop are already installed, instant 5-minute modding environment setup

#

modding environment mostly set up, but time is up so ill go home, perhaps ill finish up and make use of it next time i have time to kill here

hasty solstice
#

noitabotti should ping me every time chemical curiosities is mentioned ๐Ÿ˜”

wheat zenith
#

noitabotti should ping me every time worse enemies or Spoop or spoopy the word is mentioned

hasty solstice
#

true!

hasty solstice
#

summon portal stuff is done now

#

next is... mod. settings.

#

Mod settings are for tomorrow me

#

Eating crepes and going to sleep is for today me

hasty solstice
#

Whatever, itโ€™s enough to tie me over until morning

#

lamia sent it and it has a nice minimalistic thumbnail therefore i should watch it later

#

later.

gray haven
#

motivates early returns and continues

#

things i suggest might actually have a purpose ๐Ÿคฏ

novel plinth
#

I am better at building pyramids than the ancient egyptians

hasty solstice
#

Peak lmao

#

Same indentation level! Yeah honestly I was always reminded of your code whenever I saw how indented Par is lmao

hasty solstice
#

geh okay need to write my thoughts out rq

#

so rewriting Cloning effect from CC

#

i need to check how many clones the owner has spawned

#

then based on who the owner is, dont spawn more based on the owner's cap

#

should check this by every time i spawn a clone for an enemy, i add the clone's entity id to a string list on the aa_clone_origin_data varcomp

#

then to parse the data i separate at commas and run EntityGetIsAlive(eid) for each one, tally up the total number of clones, and then recompile the data back into the value_string on the varcomp

#

okay yeah then i can cancel at whatever part of the code i desire if the cap is reached, and then throw into the CreateClone function a bit that adds the new entity to the aa_clone_origin_data varcomp

#

this looks good enough

gray haven
#

--[[@as entity_id]]

#

tose this is very sus

#

entity ids in strings is almost certainly a bug

pallid magnet
#

eids in csv or smth

hasty solstice
gray haven
#

why not make the function take a table

#

it looks like you are kinda trying to use a state monad

#

so this is just a table but awful

#

write a filter functrion

#

its the correct abstraction here

#
local alive = functional.filter(entities, EntityGetIsAlive)

is what you could write

hasty solstice
#

?

#

i need to store the entities on a value_string if thats what you're talking about

gray haven
#

eid vsc

#

and even if it wasnt a bug the correct way to do this is turn it into a table immediately

hasty solstice
#

"this is a bug" what is? i dont quite see what the issue is

#

this stores up to 14 entity IDs but if one of them is dead, it doesnt bother counting it

#

it seemed to work just fine

gray haven
#

the entity ids will stay

#

but what they point to will change

hasty solstice
#

oooooo

gray haven
#

so now you have 14 random entity ids

#

hence why using entity ids in this way is a bug

hasty solstice
#

well then the clones will probs just disappear in a few seconds on restart so i dont think this is really that concerning

gray haven
#

?

hasty solstice
#

well, not a few seconds, but less than a minute

gray haven
#

the issue is that its random entity ids

#

it could end up being anything

#

its a pretty big issue

hasty solstice
#

hmmm is it? we dont do anything with the eids we just check if they're alive

gray haven
#

why do you check they are alive?

hasty solstice
#

to set a spawn cap, it sounds like all this could potentially do is decrease the individual spawn cap of a single entity

#

cloning solution tries to spawn a clone of its target entity every 9 seconds unless it already has 14 clones

#

theres also a separate check to make sure theres not too many enemies nearby in general just so things dont get out of hand

gray haven
#

you could store the frame you set the thing on

hasty solstice
#

what would that do for me?

gray haven
#

and also store the last frame restart in a global

#

and if its bad then you invalidate the list

#

because your data is completely invalid

hasty solstice
#

it sounds like if the game restarts, the eids are likely to be invalid, and if theres a chance they are valid (likely connecting to the wrong entity), worst case scenario is the cap on clones is lowered for the clone origin as long as the incorrect eid entities live

#

i can fix if its not too convoluted but i feel it isnt as urgent as you seem to be making it out to be

hasty solstice
#

order of init funcs (and the obviously the latter 5 are not part of this)

#

btw OnPausedChanged() doesnt seem to be able to trigger more than once? or at least i cant find its condition, it triggered once when opening the pause menu, it doesnt trigger again for me when going to other menus, resuming and repausing the game, going to the gif recorder or opening the inventory

#

idk what its supposed to be other than a "The game has been paused before" check

pallid magnet
#

it runs when you press escape basically

hasty solstice
#

wait no it works now

#

idk maybe i was blind the first time i tested

hasty solstice
#
local init_func_names = {
    "OnModPreInit",
    "OnModInit",
    "OnModPostInit",
    "OnMagicNumbersAndWorldSeedInitialized",
    "OnBiomeConfigLoaded",
    "OnWorldPreUpdate",
    "OnWorldPostUpdate",
    "OnWorldInitialized",
    "OnPlayerSpawned",


    "OnPlayerDied",
    "OnPausedChanged",
    "OnModSettingsChanged",
    "OnPausePreUpdate",
    "OnCountSecrets",
}

Count = {}
for _, func in ipairs(init_func_names) do
    _G[func] = function()
        Count[func] = Count[func] or 0
        if Count[func] >= 9 then return end
        Count[func] = Count[func] + 1
        print(("||||||||||||||||||||||||||||||||||||||||||||||||||||||||| "):gsub("|", Count[func]) .. func)
    end
end```
pallid magnet
#

tf

hasty solstice
#

just posting code in case i need to verify smth or smth like that in the future

#

i think ill want to use OnWorldPostUpdate or OnWorldPostUpdate depending on when pixel scenes are defined

#

wait no am stupid

#

probs OnBiomeConfigLoaded or just before it

#

OnMagicNumbersAndWorldSeedInitialized it is then, that seems to work and is likely the very last point in the code

#

i could do some hax to ensure par is the last mod to do OnMagicNumbersAndWorldSeedInitialized but i dont think thats worth it

#

ig ill say in case i need to use this for smth similar in future- hax would be go over ModGetActiveModIDs, get last mod in the list and append its init.lua, since its the last mod in the list their init hasnt been run yet so its probs not yet cached meaning i could theoretically append it and ensure my instance of OnMagicNumbersAndWorldSeedInitialized runs last, but thats def overkill here

#

geh ive been dancing around it for too long, but mod settings are immenently awaiting me

hasty solstice
#

okay im going to completely redo my settings from the ground up

#

ill keep the 2 tables of mod settings since thats just data i can edit whenever i want, im going to completely delete the settings renderer and decide if i need to delete the cacher

hasty solstice
hasty solstice
#

finally actually working on it

#

ended up not redoing the entire thing

#

it was mostly functional just needed to patch a few things up

hasty solstice
#

geh why is the string down there??

#

i think the mod is p much done as soon as i get this DrawTooltip option working

#

this isnt good, the offset is relative to position on-screen

#

@pallid magnet lamierrr do you know why gui funky? :(

#

i cant tell why this isnt working (values in GuiText were an attempt to resolve the offset issue but the offset isnt static so rip)

#

mmmm i feel like i ping nather too often, lamia's offline- perhaps they got a funky timezone and are sleeping, and idk anyone else who does GUI stuff

#

@wise anchor gram do you know any gui wizardry?

wise anchor
#

Define wizardry...
all of my GUI is made with hopes and dreams

hasty solstice
#

gui is offsetting the text by a weird amount

#

mmmm its weird that it happens regardless of the 9piece

#

oh?? i think i might have it

#

i might be very stupid sorry for ping

#

okay i see, this is weird

#

i got it now i think, GuiText needs its coordinates to be absolute static, around 0 ideally, cuz its position is already relative, but for 9piece i need to provide the relative position because it is absolute

#

still weird tho

wise anchor
#

Oh yea that is weird

#

sorry, I can't comprehend code well enough at work to figure things out

hasty solstice
#

yeah im trynna do smth else now

#

issue now is the tooltip pushes stuff down, i dont want it to interfere with the other stuff as it should be rendered on top

#

but using GuiOptionsAddForNextWidget(gui, GUI_OPTION.Layout_NextSameLine) causes the newlines in the text to break (which btw im p sure is a bug?)

#

this is so close to working

#

id rather not have to manually linebreak but i might have to

#

lamia if you see this pls ping if you know a fix

#

okay this works, but now i cant get this to be outside the mod settings window

#

GuiTooltip can go outside it but idk how or why

wise anchor
#

You can just set the z really low, right?

hasty solstice
#

thought itd be IgnoreContainer but that didnt seem to do it

hasty solstice
#

lemme give it a go, but its behind the bg which is surely really positive

wise anchor
#

Or put it outside the GUI layout, though that probably causes different issues

hasty solstice
#

i wouldnt know how to do that nor know how to resolve ths issues itd cause

#

z of -20k doesnt do it so i dont think any value will

wise anchor
#

GuiLayoutBeginLayer and GuiLayoutEndLayer

hasty solstice
#

oh?

#

but i think this will work

wise anchor
hasty solstice
#

nah i got it

wise anchor
hasty solstice
#

i just switched to using relative position

#

was inputting absolute position before cuz GuiText was naturally applying the relative in post, but it doesnt now that its on a new layer so i just need to put in the same position i use for the 9piece

wise anchor
#

Ah, makes sense

hasty solstice
#

anyway fuck yeahhh (shit works)

#

Parallel Parity is now officially feature complete

#

just need to make a workshop page and whatnot rq

#

oh right, mod support

#

thats p important lmao

wise anchor
#

Very good

hasty solstice
#

i think settings creep is done, im gonna go implement Return Rifts now and then work on workshop page

hasty solstice
#

ah, spot the typo

wise anchor
#

file oops

gray haven
#

it would fix this

#

also require is a winner

#

i think defining it is a great idea

hasty solstice
#

im not dofiling here for global stuff or anything im dofiling here to just run a diff file cuz main init is getting messy and i wanna have return rift stuff in its own thing

hasty solstice
gray haven
#

require is just dofile except your lsp oesnt hate it

#

or do you mean run it every time?

hasty solstice
#

But also it literally doesnโ€™t affect me here

gray haven
#

also why would you ever use globals?

hasty solstice
#

Since no values are being passed between the files here

hasty solstice
gray haven
#

idk if globals are ever a good idea

hasty solstice
#

Is there any issue with global besides potential name collisions?

pallid magnet
#

global what, lua?

hasty solstice
#

Yeah

pallid magnet
#

only global pollution, yeah

#

and spaghettification

#

It is also slightly less performant iirc but negligible

hasty solstice
#

Yeah then Iโ€™m not gonna stress too much over globals

pallid magnet
#

i mean, the whole ML is global

hasty solstice
#

Thatโ€™s funny lmao

#

I just have all the data in my mod under ParallelParity global so mods can mess with it

hasty solstice
#

guess ill yap here while im unable to mod, just gonna get thoughts out

#

i got detection from PW to Main World detection working (was about as simple as i thought), creating a return rift should be trivial from there
the main important thing i need to do is create the boundry for it, when its created i want there to be a circle at a medium-far radius that slowly shrinks, if the player leaves the circle or if the circle reaches the centre then the Rift disappears

#

i should also remember to delete the Rift when the player goes through it

#

mmm i think thats all, idk how to do the circle thing tho ill need to look into how other things in vanilla handle that

hasty solstice
#

on apoth's end ill probably write up some compat that makes their blob cave work with the mod but i wont go beyond that since idk what does or doesnt need the localisation option, but it will work for me testing how well the compat works, and if the apoth folks are interested they can use it as a base to integrate all their other pixel scenes too

wheat zenith
#

for wha?

hasty solstice
#

the blob cave, the pixel scene biome you have full of blob enemies

#

with the blob boss at the end?

#

on right of main path, i think branching off of jungle or vault?

#

its perfect for compat with my mod imo cuz the lack of the cave is jarring in a similar way the lava lake's blocky absence is imo, and i can also add localisation since last time i mentioned doing this, conga i believe expressed that the boss at the end should not spawn in PWs

hasty solstice
#

though actually it does look like you guys fixed how bizarre it looked in PWs

wheat zenith
#

mm yeah I knew you were talking about that place, I was just wondering what you meant by the other stuff

hasty solstice
#

well, i imagine yall add more than one pixel scene to the game

wheat zenith
#

at least 2 yeah

hasty solstice
#

oh if you mean the localisation stuff

#

i recognise that some stuff existing vs not existing in PWs can greatly affect balance, so stuff like Lava Lake orb and whatnot by default do not spawn in parallel worlds even if the pixel scene they are a part of does

#

the localisation options basically just target a designated piece of code and put it inside of a main-world check so what ever it does/spawns only works in main world

#

and also mod settings are appendable but i imagine that doesnt need explaining

wheat zenith
#

I mean we do already have checks for stuff like that

hasty solstice
#

do you have checks like that for stuff that dont normally spawn in PWs?

#

id be surprised by your thoroughness if so lmao

wheat zenith
#

like a certain uh super important quest item is set to not appear in parallel worlds through the biome script

#

I'm not sure what you mean by that

hasty solstice
#

yeah that makes sense, but i imagine its not part of a pixel scene?

#

to clarify, my mod makes it so Pixel Scenes in _pixel_scenes.xml spawn in Parallel Worlds

wheat zenith
#

mhmm

hasty solstice
#

so, for example, if this were to be just applied to your blob cave, it would break in parallel worlds because conga said the boss needs to be main world only, that or balance reasons idr, so localisation options exist on my end to deal with scenarios like that

#

since this is an issue with blob cave as well as some vanilla pixel scenes, its possible it might also be something to take into consideration for other pixel scenes in your mod

wheat zenith
#

there is some biome init handled pixelscenes that don't appear in parallel worlds but yeah makes sense

hasty solstice
#

there might be a big scary boss pixel scene that doesnt spawn in PWs for apoth, and you might not want the boss to spawn in PWs for jank or balance related issues, im just saying its best to leave that nuance up to you guys if you're interested, plus i wanna minimise spoilers for apoth somewhat since i havent beaten it yet lmao

hasty solstice
#

i should ping emi once return rifts are finished

hasty solstice
#

trynna optimise mod settings is certainly amusing

hasty solstice
#

GuiText is funky it for some reason was making all newlines go on the same line so i need to manually like split the description shit

#

ig ill post in case someone knows the solution but i dont think this is smth i can get around lmao

pallid magnet
#

just don't use layers

hasty solstice
#

need to in order to get the tooltip to go outside the bounding area

#

if i dont then the tooltip doesnt render past the scrollbar on the right

hasty solstice
#

@raw linden @lyric plinth if you two are still interested in TLing Chemical Curiosities in the future, we have a channel in the CC server with the other 2 translators
mostly pinging rn cuz i had a question about how i should structure translations in mod settings (this is for Parallel Parity atm, but the system i use here i will eventually use for Chemical Curiosities when i rewrite the settings for that)

also emi you said youd be down to tl Parallel Parity, if you're still interested, the mod should be released p soon so i can let you know when it is if so o/

#

choosing between 3 systems here, first system is this

#

an alternative system would be a flat system like this, this is closer to how regular .csvs work

#

3rd option is just storing the translations on the setting itself like this

#

the benefit of the second one is its very readible and easy to navigate, but you get less of the context on the setting itself and the general structure
the first is sorta a hybrid in that you can see the general structure but dont get much context on the mod settings
and then the third allows you to fully see the context of the setting and how its used/the structure, but probably comes across as less readible

#

lmk which one of these seem more convenient or if you have suggestions for a better translation structure (yall will be the ones using it after all)

raw linden
hasty solstice
#

system 1 is what it currently is and what i was planning on doing, but soon realised it would be inconvenient for modders adding settings to this mod unless i revamp the system, so if im revamping the system i might as well check in with translators to find out whats most convenient for them- since this is a system id ideally like to use for all my mods from now on

hasty solstice
#

system 3 is what im leaning towards personally since its convenient from a programming perspective, but if translators would find alternative method easier then thatll work

#

regardless of what we go for, i imagine it will be more parseable that the devious wall of text in apoth's settings.lua

#

the translators who use that impress me

gray haven
#

and add a build script

hasty solstice
#

Would need to set that up, not worth imo

#

Most convenient form of that would be python and I donโ€™t like python

gray haven
#

maximum convenience for translators

raw linden
gray haven
#

its just as a general purpose programming language lua isnt very good

#

severely lacking standard library'

#

zig or rust could very easily do it

raw linden
#

python is actually pretty cool

#

(i used it once)

gray haven
#

python is the easiest language to write bad code in

raw linden
#

LMAO yea

pallid magnet
#

import * from bullshitlib

#

bullshitlib.sum(a,b)

gray haven
#

real python code

hasty solstice
#

if translators say theyd find that more convenient id be entirely down, but i feel using regular csv format really is not much better than that the proposed systems

#

sure its familiar, but its also just a massive wall of text with no context for what the thing you're looking at is

#

for regular translation stuff it makes sense, but for smth where you have a standard thing you're applying TLs to- like setting descs and names, we can easily provide the context of what the text is for in an easily parsible manner

gray haven
#

but it is popular

#

imo 1 or 2 are best

#

3 is harder to find what needs doing

#

and the translations are scattered everywhere

#

its also not capable of representing more complex settings where the key needs to be accessed by more than 1 thing

hasty solstice
#

translations arent that scattered bc they're on every setting, but yeah thats the main reason i didnt originally go with it

gray haven
#

well not well anyway

#

if you want something advanced like a reset settings button (which you do) then that cant do it

hasty solstice
#

its also not capable of representing more complex settings where the key needs to be accessed by more than 1 thing
can you give an example of a key needing to be used twice?

#

i cant think of a time this would be a need

gray haven
#

same hover for multiple things

#

mainly where the vanilla settings code isnt used due to it sucking

#

so like

local settings = {
    {
        id = "reset",
        render_fn = function(...)
            CallSomeGuiFuncs()
        end
    }
}
pallid magnet
#

instead of specifying default for every setting

hasty solstice
#

mmmm i already specify defaults for individual settings lmao

#

i find it more convenient

gray haven
#

its a button so it needs translations

#

and you surely need a reset all button

hasty solstice
#

yeah seeing that made me realise i should have one, why would i need a custom render func tho?

gray haven
#

because its a button

#

you need to run custom code

hasty solstice
#

why would i do that any differently?

gray haven
#

?

hasty solstice
#

i already have a system for custom code

gray haven
#

are you not using the vanilla mod settings system?

hasty solstice
#

i hate nolla's basic gui funcs so i already have a custom bool setting function

#

no i hate it, i wanted a custom tooltip and also hate the cooldown on clicking buttons

gray haven
#

๐Ÿ”ฅ

#

ok then its fine

#

i do think the scattering is suboptimal

#

and it does kinda break the logic up

hasty solstice
#

yeah ill hear opinions from the translators first

#

what i might go with is 1 and then just let mods appending their own settings package in the translations like 3

#

since its more convenient for other mods if they only need to pass stuff into one table rather than two

hasty solstice
#

reason it took so long was i was procrastinating rewriting my gui code

lyric plinth
#

as to which option I prefer, I myself don't really notice any major difference between those 3 from a translator's perspective and I can do localization with any of the given format

hasty solstice
#

hm, hang on, is the mod done?

#

i just sorta wrapped up mod settings, sat here trynna figure out what to do next and i think its done?

#

here ig ill test compat with it rq

hasty solstice
#

geh apoth scary, still 257 calls of _pixel_scenes.xml

#

guh?? are the enemy spawns in blob cave not part of the pixel scene?

pallid magnet
#

why would they be

hasty solstice
#

im making a PR to make blob cave sane
@jaunty eagle would it be fine to make blob cave its own biome? or how do you wanna handle that? cuz i think itd be ideal if the stuff in it spawned via biome functions

#

currently half of it is just this data/biome/solid_wall_hidden_cavern.xml

#

mmmm wondering if itd just be worth getting some other pixel scene to use as an example and test for parallel parity compat at this point

#

thought blob cave would be simple but the way its made makes it not very clean to hook up to par, ill see if there are more sane spliced pixel scenes to go for

jaunty eagle
hasty solstice
#

yeah, i can make it so blob boss doesnt spawn in PWs

jaunty eagle
#

It would be very low priority for me personally, so if you want to then go ahead; but make sure to check the blob death script supports PW deaths if you do

#

Or that

hasty solstice
#

yeah no im doing this to test and create an example for compatibility with Parallel Parity, im testing pixel scenes, spliced pixel scenes, localisations, portals and settings

hasty solstice
#

evil how my list of things to finish in my mod keeps expanding despite me not adding any new feature creep\

#

okay maybe one feature creep in the form of reset button for settings but the main thing is realising some portals are already PW local

#

i knew about fast travel portals and remembered i need to remove those, but apparently like cube/buried eye portals are the same, maybe secret shop?

#

cuz they check last position, so it can be either PW local or not, depending on where you last used it

#

ill probs relegate those to "Puzzle Portals" and explain the nuance in the mod setting

#

then i need to figure out making Apoth compatible with par

#

then i need to make return rifts work (i think i know what the issue is so thatll be a very quick fix)
and finally implement functionality for reset button (again, should be a quick patch)

#

these last 4 things and then i need to work on a workshop thumbnail

hasty solstice
#

conga spotted

jaunty eagle
#

o/

hasty solstice
#

anyway new evil feature creep idea (actually old but i wanna do it even more now at some point)
modulate pixel scenes in sky/hell loops

#

watching goragle hell noita video, their talk of noita above and below made me wanna make that into a proper thing lmao

hasty solstice
#

@left pumice do you know any way i could have this shader end texture work but stop particles from breaking the rendering?

left pumice
#

What do you consider to be breaking the rendering?

#

As in the purple particles that are on top of the dark area?

hasty solstice
#

the particles appear on top of the dark area and cancel out the greenscreen effect

#

i dont mind if the solution is a fix or alternative to the green screen rendering method

#

just lmk if you have any ideas on how i can do this

left pumice
#

Particles are difficult to deal with as they render over the top of everything. Some ideas:

  1. Upload a mask texture and screen position to the shader, then do the effect that way. This will allow it to render over the top of everything, but it will then render on top of the player, materials, etc.
  2. Supersample around the area to check for single pixels surrounded by greenscreen. Not perfect, but it should help
  3. If you can control the direction particles move, send them outwards away from the center. Might need to micromanage particle emitters for that to work
  4. If you're able to make the greenscreen area a physical material in the world, you can use a unique glow color to get an unobstructed mask of it and read it out of tex_glow_unfiltered
hasty solstice
#

geh forgot to check back here

#

If you can control the direction particles move, send them outwards away from the center. Might need to micromanage particle emitters for that to work
not entirely doable here as its a particle area, particles would still be able to spawn on the rift itself

left pumice
#

I was thinking of multiple directional particle emitters, carefully placed at specific offsets and directions

#

if that's possible

hasty solstice
#

hmmm, but the shape of the rift is very irregular

#

and i think in most cases either thered be too few emitters that it looks strange that certain particles are going in specific directions, or too many particle emitters

#

should mention the point of the particle emitter, i have a temporary rift and want it to disappear after n number of seconds
i have a region covered by the particle emitter that shrinks in accordance with this, and use 2 particle emitters for it, one inside to show the region and one on the rim to show the exact boundry

#

it seems like i may have to forego the inner emitter as its the one that is spawning particles on the rift

#

oh maybe i could replace it with another particle emitter on the rim which spawns particles moving inwards similar to what you said, if i tune the values just right i can make it so they move inwards but never manage to reach the actual rift in the centre

hasty solstice
#

okay i think i like how this looks

hasty solstice
#

like have a particle emitter that emits particles in the area of the shader material

novel plinth
#

it just turns entirely purple iirc

hasty solstice
#

oh fr? thats wild

novel plinth
#

no clue why

#

could never figure it out

hasty solstice
#

something something rendering mode changes and the stuff we do is skipped or smth? idk

gray haven
#

no

#

itll be low res rendering borking the fg texture colours somehow

hasty solstice
#

rifts are functional now, im satisfied with them

#

next ill probs get the [reset] button working, should be very trivial

#

then ill look into the nuances of PW portals, and finally do some minor compat with apoth to make sure it works and to provide an example for modders who are interested

hasty solstice
#

geh modifying the core structure of my mod is scary cuz its so dense that i cant tell if the thing broken rn is from a small change i made that i didnt fully understand or an already existing issue

#

having a fascinating issue with apoth compat where spliced pixel scenes- or at least the tree is being loaded twice in PWs, and i wont even be able to ask anyone for help if i need it cuz im the only one who understands this monstrous code and thats only barely at best

hasty solstice
#

oh yeah i forgot to properly debug why pixel scenes spawn twice in PW with apoth compat

#

eh its probs cuz i messed up smth with the code that iterates pixel scene applications to multiple biome maps- shouldnt be data from original biome map interfering as that wouldnt result in- oh maybe it would, okay wait lemme go check uhhh lake island maybe? hold on

#

@jaunty eagle are there any vanilla pixel scenes that you relocate? like _pixel_scenes.xml pixel scenes?

jaunty eagle
hasty solstice
#

i assumed map changes would do that but it seems you extend the map and avoid moving stuff too much- at least the several pixel scenes i check are

hasty solstice
jaunty eagle
#

Yeah, technically a pixelscene though

#

uhhh

#

I don't think i touch any pixelscenes in the pixelscene file

hasty solstice
#

yeah im talking about _pixel_scenes.xml pixel scenes

jaunty eagle
#

Yeah no

#

I can't think of anything

#

Oh

hasty solstice
#

goooot it okay that makes the issue easier to figure out then i think

#

oh? if you know one that would help me narrow this down

jaunty eagle
#

I guess I move the PW music machine spawns to match the new world length

hasty solstice
#

fuck, nvm lmao

gray haven
#

nolla doesn't do that

jaunty eagle
#

Essence Eaters are moved too to use a biome file

hasty solstice
#

pixel scenes outside of main world that i apply to PWs are culled

#

oh really? i should disable the Essence Eaters setting from showing then if Apoth is enabled

gray haven
hasty solstice
gray haven
#

whar

#

surely opt out is best

hasty solstice
#

you append to my file which pixel scenes you wand duplicated in PWs

#

opt in is better imo cuz some pixel scenes mods wont want in PWs for balance reasons

#

i have considered adding a nuclear "PW everything" option with a blacklist table mods can append to, but thats feature creep

#

i have more fun post-release feature creep to get to before then

#

actually im dumb it doesnt really matter here what pixel scenes are moved as it would be applied to both maps- hmmm size diff should be relevant tho, i have theories ill look over my code tomorrow

hasty solstice
#

geh i keep getting distracted

#

i have so many diff things i wanna be working on at once

#

lemme look at Parallel Parity rq

#

does the compiler not differentiate between map-scene index i wonder

#

OH

#

wait no nvm

#

it takes like a solid 20-30 seconds to generate all the table data scraped and arranged before i pass it to the compiler lmao

#

lmao??? never seen this before

#

@gray haven i have a question i thought id never be forced to ask before...

#

how do i run a lua formatter ๐Ÿ˜”

#

geh wait i mightve just crashed VSC

#

ah, i need to run the dump again

#

it didnt put quotes on the strings

hasty solstice
#

i hurt it

#

anyway time to do it again

#

hmmmm i think vsc is sad again, i dont think it wants to format 350kb of nested table stuff, i can probs decrease the load by turning off a bunch of unrelated settings hold on

#

good lord

#

okay some kind of recursion is going on here- or my settings are being enabled wait what-

#

ah, note to self, settings hover works even if outside of settings container, fix later

hasty solstice
#

okay so yeah, its adding twice to the apotheosis map-index id, so why

#

so this means scraper is adding twice, why

#

yeah apoth pixel scenes file looks sane too

#

my guess since the beginning has been somehow scraper double inputs the second mapindex thats run so im gonna assume its smth like that

#

{ [1] = "data/biome_impl/biome_map.png",[2] = "mods/Apotheosis/files/biome_impl/biome_map.png",[3] = "mods/Apotheosis/files/biome_impl/biome_map.png",} ah, thatd do it

#

my compiler works fine, im doing smth wrong to add apoth to it twice

#

oh

#

thats scary

#

return at end of file doesnt inhibit appends maybe? hold on

hasty solstice
#

i see, this revelation has made my mod load-order dependent, which means appends from mods before Par are run twice

#

(this is all conjecture ill test in a min)

#

(but i cant think of anything else going on here)

#

apo append is indeed running twice.

#

also got a cool gradient on image preview, neat

gray haven
#

if your file is gigantic you'll want stylua because its the fastest

#

just run it from the command line with stylua filename

#

do cargo install stylua to get it

hasty solstice
#

ill keep that in mind, i made do with the in-editor formatter but it was kinda ass, ill try stylua next time ๐Ÿ‘

gray haven
#

stylua also has a better style imo

#

luals formatter isnt specific enough and has ugly defaults

hasty solstice
#

i can now proceed with some fun apotheosis compat and also maybe throw in some type defs if i feel like it

gray haven
#

how do you think appends work?

#

string manipulate on the do_appends call?

#

it just executes your file then calls do_appends

hasty solstice
hasty solstice
#

and setting appends to nil seems unideal since subsequent calls would no longer have the appends unless i make a separate listing of appended files somewhere

#

so i just went with a proxy file which mods append to instead

gray haven
hasty solstice
#

i assumed nolla just literally stitched do_appends onto the end of the cached file or smth idk

gray haven
#

it could only be implemented as

function dofile(path)
    local ret = {loadfile(getcontent(path))}
    do_mod_appends(path)
    return unpack(ret)
end

(technically they could do something with the returns of the mod appends, but they don't)

hasty solstice
#

i dont know how the lua scripts are run so the idea of the mod appends being run not inside the script itself doesnt sound any more plausible

gray haven
#

they are run using whatever api lua provides

#

and there is only really one sensible one

hasty solstice
#

could they not just stitch the function call into the file when they cache it?

gray haven
#

not really

#

editing the ast sounds hard and unsupported

#

and doing string manipulation is a terrible idea

hasty solstice
#

got it, yeah thats way above what i really know about how C, the engine and the API all work lmao

hasty solstice
#

hmm. mod maybe done now? no collapsible folders tho, might rq implement that

hasty solstice
#

@acoustic spruce i wish for you to know i put your guidance to good use

#

({func()})[index] format my beloved

gray haven
#

yuck

acoustic spruce
#

Winner alert

gray haven
#

completely unreadable

acoustic spruce
#

Highly readable

gray haven
#

also use the mouse enums

#

and at the very least replace the magical 3 with a constant for whatever thing that is

acoustic spruce
#

No constant needed if you add a comment probably

#

Should be fine as-is

gray haven
acoustic spruce
#

Thank fuck I don't need to write comments then

#

๐Ÿ”ฅ

#

(Since I dont)

gray haven
#

if you write code that sucks (see above) you do entity_hamis

#

if you want to do something like the above where its just one line why not do

---@class GuiWrapper
local M = {}

function M.GuiGetPreviousWidgetInfo(...)
    local what, ever, values, are, returned = GuiGetPreviousWidgetInfo(...)
    return {
        what = what,
        ever = ever,
        values = values,
        are = are,
        returned = returned
    }
end

return M
#

you could even autogenerate that really easily

acoustic spruce
#

Silly Nathan this is way more than adding 5 characters

gray haven
#

you do this once then you can easily write readable stuff everywhere

acoustic spruce
#

Person-who-only-uses-it-once-man:

#

True though

hasty solstice
#

i need to like lock you two in an escape room

#

i feel like this would be really amusing to watch

gray haven
#

only i would escape

hasty solstice
#

on a related note, i got collapsible folders now (dont like how down-weight the icon feels on uncollapsed folders but i can resolve that with dependent offset another time if i so desire)

gray haven
#

nice

#

add a (*) next to the folder?

hasty solstice
#

and if i set this up correctly, they should have default collapsed states

gray haven
#

iff. its all *, iff. its all ( ) then do ( ) else (-)

hasty solstice
gray haven
#

(*) your folder of guis

hasty solstice
gray haven
#

to toggle whole cats

hasty solstice
#

yeah but like, thats just not necessary

#

people shouldnt need to edit settings often and there arent enough settings to warrant that as a feature with this in mind

acoustic spruce
hasty solstice
#

find a computer in the room (real or fake) and he'll explain why it is of poor quality

gray haven
#

copi does a suboptimal solution, copi gets murdered, taken to jail (outside of room)

#

easy win

hasty solstice
#

put copi in the room and he'll write insane gibberish that flatlines the entire puzzle system

#

fuck i cant think of anything else i need to add to the mod pre-release

gray haven
#

why is apotheosis empty

hasty solstice
#

i think i just need to finish testing compat via apotheosis, ig ill do that tomorrow

#

?

gray haven
#

โš ๏ธ

hasty solstice
#

oh, cuz i havent finished writing up the basic compatibility

#

i was doing that but got sidetracked by adding collapsible folders

#

i just need to add those on apoth's side tomorrow

#

but i confirmed the settings system appears to work!

gray haven
#

warning!

#

fix your warns

hasty solstice
#

"Warning! You're code is too fire and is overheating our AI slop generators, please fix!!!!!" is what the warning says

#

rip microsoft ig

#

oh right i should look into the thing alex mentioned

#

ill do that tomorrow (in 5 hours cuz its 7am and i need to sleep soon lmao)

#

wanted to sleep about an hour ago but then decided to do a "little bit" of work on collapsible folders and then i finished them and the linear passage of time is my mortal enemy

hasty solstice
#

"You're code" thats what they said

#

shit happens when you replace your staff with AI idk man

hasty solstice
#

@jaunty eagle do you happen to have translations of the mod name anywhere? translation.csv doesnt seem to contain the mod name as standalone

acoustic spruce
#

I don't think the mod name is translated?

#

I'm fairly sure it's a case of it being a proper noun in spite of it also being a word

#

i.e. there are translations but you'd use those when referring to the act of apotheosis and not the mod itself

hasty solstice
#

transliterations exist tho, like if a proper-noun were translated from japanese or smth i wouldnt want it to be written in hirigana yknow?

acoustic spruce
#

I mean I've seen just like the plain ass english text in the middle of japanese

acoustic spruce
#

though I am sure this is not always what is done

hasty solstice
#

mmm fair but it feels like relying on the reader having a baseline understanding of english pronunciation which normally transliteration is meant to resolve in the case they dont

hasty solstice
# pallid magnet skill issue

fair but there are a lot of non-germanic languages that i wouldnt know how to pronounce the name of shit in, hell there are lots of germanic ones too

pallid magnet
#

just learn english or smth

#

the games translation for non-english is shit anyway

acoustic spruce
#

I will admit though bad transliterations are really fucking funny

hasty solstice
#

but i do kinda see your point

acoustic spruce
#

peak shit

hasty solstice
#

very amusing

#

is COPI BLAST transliterated into katakana in fairmod?

acoustic spruce
#

no its literally just the noita glyphs

hasty solstice
#

oooo got it

acoustic spruce
#

I think it's like KOPI BLAST or some shit I forgot what but one of the characters didn't have a glyph iirc

hasty solstice
#

? which glyph format were you using?

#

surely not this one?

acoustic spruce
hasty solstice
#

oh, is that the finnish glyphs..?

acoustic spruce
#

iirc yes>?

hasty solstice
#

okay that i could probably see, id barely know anything about those other than they're in finnish so rip me trynna understand them lmao

pallid magnet
hasty solstice
#

oh do they not add it properly?

pallid magnet
#

it adds a virtual column for csv

hasty solstice
#

?

pallid magnet
#

so appended translations won't work

#

and everything will be in english except for those that the translation mod adds

hasty solstice
#

oh it breaks chinese translations from other mods and untranslated vanilla stuff?

pallid magnet
#

yeah

hasty solstice
#

hmm, i wonder if the author could be contacted and this could be resolved

pallid magnet
#

no

hasty solstice
#

has anyone tried to reach out?

#

oh rip

pallid magnet
#

well

#

they can include translation string from other mods

#

but it's stupid

hasty solstice
#

nolla system is stupid?

pallid magnet
#

yeah

#

you can kinda support it

#

e.g. if the game has custom translation you can edit your csv to use that language instead of english

hasty solstice
#

i actually dont think i fully understand the issue, surely the mod can just overwrite all the relevant strings in their csv? why do they need a new column?

pallid magnet
#

ML has that, but it doesn't work for runtime language change

pallid magnet
#

it's handled on the engine side

hasty solstice
pallid magnet
#

oh, is it? that's nice

hasty solstice
#

it adds a couple minor alchemy things iirc

#

or at least so ive heard

pallid magnet
#

i think one of the russian translation mods have two versions also

#

translation one and correct one

hasty solstice
#

hmmm i suppose tho an issue with changing how Better Chinese works is itd break mods with existing compatibility...

#

times like these i wish i had a time machine to fix something before it became too rooted in its ways to reasonably be able to change at this point lmao

hasty solstice
#

damn you apotheosis and your surprisingly good pixel scene management!!
struggling to find a good pixel scene to use as an example for my mod for testing and demonstration purposes

#

AHA, YOU DO NOT EXIST IN PWS!

#

oh maybe i should add cauldron to my mod, maybe eyes too later down the line, anyway spotted this and found it funny apoth cuts so close to the cauldron room lmao

hasty solstice
#

back to this, hmmm, that doesnt seem right...

#

guh???? im somehow creating a self-recursive table hold on

#

something is setting the setting's colour table to be itself lmaoo

#

thats amusing, should be simple to find and fix

#

ah, line of code i was in the middle of writing before i got distracted lmaooooo

#

thats very funny, fixed probs

gray haven
#

no types?

hasty solstice
#

โœ๏ธ

#

stay back

#

this was also amusing to write as a solution to infinite recursion

gray haven
#

this is terible

#

and doesnt even work well

#

i like doing something like

---@param value any
---@param seen table<table, integer>?
---@param count integer[]?
---@return string
local function dump(value, seen, count)
    seen = seen or {}
    count = count or { 0 }
    if type(value) ~= "table" then
        return type(value) == "string" and ('"%s"'):format(value:gsub('"', "'"):gsub("\n", "; ")) or
            tostring(value)
    end
    if seen[value] then return "r" .. seen[value] end
    seen[value] = count[1]
    local s = "r" .. count[1] .. " {"
    count[1] = count[1] + 1
    for k, v in pairs(value) do
        s = s .. "[" .. dump(k, seen, count) .. "] = " .. dump(v, seen, count) .. ", "
        ::continue::
    end
    s = s .. "}"
    return s
end
#

so that way you can easily see the recursive structure and all references to a given node

#

doing bfs instead of dfs for the printing could make it a bit prettier

#

maybe not though

#

you just run stylua on the output to get something nice looking

hasty solstice
#

Blame Nolla.

hasty solstice
hasty solstice
gray haven
hasty solstice
#

this was like 3 copy pastes and then messing with variable names

gray haven
#

if you cant be bothered to handle recursive tables just pass a seen map and if its seen then return "..."

#
local function dump(v, seen)
    seen = seen or {}
    if type(v) ~= "table" then return tostring(v) end
    if seen[v] then return "..." end
    seen[v] = true
    local s = "{"
    for k, v in pairs(v) do s = s .. dump(k, seen) .. "=" .. dump(v, seen) .. "," end
    return s .. "}"
end

is pretty easy idk'

#

it works well enough for basic use cases

hasty solstice
#

giving your func a whirl rq

hasty solstice
gray haven
#

doesnt have issues with depth and more clearly denotes where the recursion happen

#

i often also have a banned list of keys passed in

hasty solstice
#

but i knew recursion would be happening withing 3 layers, there was no need to do more

#

for a quick simple check my solution worked fine

gray haven
hasty solstice
#

how stylua? i think ive added it before so where would i find it?

hasty solstice
#

i do very little baking for colours so i knew it was unlikely to be an extensive issue

#

c should not have any data in it other than r g and b, so just seeing what data was in the first/second layer would be enough to point me in the right direction

#

i chose my method because i know my code

gray haven
hasty solstice
#

perhaps, but that can come later

gray haven
#

if your data has the wrong type the solution is to add more types

hasty solstice
gray haven
hasty solstice
#

i change my code a lot but i rarely get it mixed up, but i do agree, the reason i dont use types isnt because i think they're bad but im simply not used to them, as with most of my current coding habits i imagine its something ill utilise more over time and get used to in my own time

#

types are something i use more and more over time already, i added types to a bunch of funcs last week in squirreltilities.lua

hasty solstice
#

.workshoptags

dusky mistBOT
#
**FAQ: workshop_tags (Creator: nathansnail)**

tags in the workshop.xml file should not have a space after the comma, this makes the workshop fail to recognise those tags as it will read them as having a space before the tag, you can see this in how this steam page displays the first tag separately from the invalid ones, just a heads up o/

to fix you just gotta remove the space after the comma, so something like "quality of life,cheats"

(you can tell if a tag is invalid btw bc invalid tags will say "Tags: " before they're listed)

hasty solstice
#

ah nvm, i saw a bunch of new mods and thought one at least surely had to mess up their tags

hasty solstice
#

right, i need to do stuff about the fast travel portals

hasty solstice
#

geh, evil error, hmmmm

#

is noita angry that im running settings.lua during init

#

yes, it is

#

okay so running ModSettingsUpdate is crashing noita, which part

#

mk so it crashes here

#

hmmmm probably these being evil

#

the condition for crash is weird tho

#

yeah if i open settings and then do it on init the game crashes, but if i just go straight into the game no crash

#

fascinating, well fixed now

#
local x,y = 200,1702
x = (x + (GetParallelWorldPosition(x, y) * BiomeMapGetSize() * 512))
LoadPixelScene( "data/biome_impl/excavationsite/meditation_cube.png", "data/biome_impl/excavationsite/meditation_cube_visual.png", x-20, y-29, "", true )
EntityLoad("data/entities/buildings/teleport_meditation_cube.xml", x, y-70)
#

wretched-ass script

#

should work but no work

#

oh, stupid

#

fixed

#

return portal here certainly does store pos when you enter, so you return to the same place

#

geh i dont wanna have to think about this rn

#

ill look into this proper tomorrow and decide how to handle quantum-locality (that sounds fancier than i meant it to i just meant conditional state of whether or not it sends back to a PW or not)

#

im sleeping its 4am

hasty solstice
#

.moddev

dusky mistBOT
#
**FAQ: moddev (Creator: nathansnail)**

Introduction to mod development

Various tools for mod development

Mods for mod development

Various libraries which are often useful

hasty solstice
#

@acoustic spruce question for reimplementing shrinkium, i kinda wanna make it so spells and whatnot fired by the player while they're shrunk are also physically smaller, would this be feasible to do?

acoustic spruce
# hasty solstice <@294650788897095680> question for reimplementing shrinkium, i kinda wanna make ...

I've been working on some generally applicable code for scaling projectiles
but basically the gist of it is that,

  • projectiles are a single point that hits in a ray between its last and current position, and thus cannot be smaller
  • gameareaeffectcomponents can cause some projectiles to hit in a circle around their current position, though mainly only field spells in vanilla do this, some modded spells use this. Nominal way of increasing "size" and usable for shrinking existing larger shots
  • sprites can be shrunk via special scale
  • b2d cannot be easily shrunk
  • you can also edit stuff like plasma and shit, but some stuff may be harder like pattern particle emitters
hasty solstice