#blueprint

1 messages ยท Page 12 of 1

torpid juniper
#

Yeah, fair

#

Atm my recipe contains a product which has a data asset item and a quantity and then multiple of those for the ingredients. so item and quantity for each ingredient

#

So you are using uobject instead of where i am using the item data asset class?

gentle urchin
#

Only the base is a dataasset

#

rest is uobjects

#

i really like the in-line editing options of them

torpid juniper
#

oh uobjects rather than data assets?

gentle urchin
#

yeah

#

these uobjects are managed by the owning data asset, so they're also considered singletons

#

so the same rules applies

torpid juniper
#

But you just can edit them while in the other data asset?

gentle urchin
#

this avoids me having to make all these task classes in the editor, and can just make 'templates'

gentle urchin
#

(you can, but dont :d)

torpid juniper
#

Was more meaning whats the difference between doing it the other way?

#

Like if i do by ref to data assets? vs ref to uobject

gentle urchin
#

you'd need to create the new data assets

#

in content browser

#

and set them up

#

so for 50 quests, with 10 tasks, you'd end up with 500 DA_QuestTasks

#

while I keep my related tasks directly inside the DataAsset

#

not sure if that explains it well but

torpid juniper
#

So for you, you have 50 quests each with 10 tasks. And each of the 10 tasks are only in their own quest?

#

Idk. i feel like i don't understand as i am thinking about it from an item point of view where all items need to exist anyway

#

Will probs look back on it when doing quest stuff

gentle urchin
#

So when i need to edit a part of a quest

torpid juniper
#

So does that mean you can't reuse tasks?

gentle urchin
#

I dont need to find the correct task in the content browser, open and edit it, and verify or whatever

gentle urchin
#

So its just a task subclass with a different set of default values

torpid juniper
#

Ah, ok

#

So basically you can either input values from scratch or you can edit them based on a "template" of default values

#

and when you use a template it just copies the values in rather than references the template?

gentle urchin
#

Yepp

#

It creates its own instance of the template

#

Much like a struct do

#

And yes, by using this method in regular bps they can easily replace structs on many levels^^

#

With extra functionality

#

You can have custom functions in them etc

torpid juniper
#

so how do i do that? ๐Ÿ˜…

#

So it has a reference to a uobject which can be like instanced inside the editor?

#

and so acting as like a "template"?

gentle urchin
#

Kinda. Yepp

torpid juniper
#

do i have to do stuff in c++ or can i do that stuff in bp?

gentle urchin
#

C++

#

The uobject class must be marked editinlineNew

#

And uprop must be instanced

torpid juniper
#

Ah, rip. Currently just trying to understand how stuff relates in unreal and using bp for faster and not having to relearn c++ yet

#

Sweet, thanks. Will keep that in mind and have a look once i work out if the current way of thinking and my game idea is actually possible without lots of problems

gentle urchin
#

Just doing this part is possible with close to 0 c++ knowledge

torpid juniper
#

Yeah, sick

#

i have knowledge but its hidden away ๐Ÿ˜‚

#

i need to relook at some code to remember

#

thanks, you've been really helpful

pulsar pulsar
#

so Iยจ'm having an issue with a inventory I'm trying to do. In my head it should work but I can't figure out why it isn't lol.

gentle urchin
#

Not rows

pulsar pulsar
gentle urchin
#

You dont need rows if you specify inventory size

pulsar pulsar
#

ohhhh

gentle urchin
#

Rows = slots / columns

#

๐Ÿ’ก

pulsar pulsar
#

still not working ๐Ÿค”

gentle urchin
#

Did it change at all?

pulsar pulsar
#

negative

#

I wonder if it's because of what I'm doing in my Inventory component

gentle urchin
#

Possibly

pulsar pulsar
#

where I do Columns * Rows to get the max inventory slots and also set the size of the array with the result

gentle urchin
#

Ehh

#

So you cant remove rows

#

But then you dont need size

torpid juniper
#

Can you not spawn actors from functions in data assets?

gentle urchin
#

No world context

torpid juniper
#

Huh, thats awkward

gentle urchin
#

Yepp๐Ÿ˜…

torpid juniper
#

Maybe i can spawn an actor and pass it to the data asset to configure

pulsar pulsar
#

Here's what I do, I did it this way so i could (in the future) change inventory space based on the gear the player wears

#

In a way I felt made sense to me

gentle urchin
#

Then youd want size and not rows

#

So adding slots is just adding to size

pulsar pulsar
#

But MaxSlots is zero by default and then gets set to whatever Columns * Rows equals to. Or do you mean in the widget?

gentle urchin
#

Just set max slots to a default value ๐Ÿ™‚

pulsar pulsar
#

and then divide by maxslots and modulo by slots aswell? ๐Ÿค”

#

divide/modulo slot index by MaxSlots

#

nah i'm confused ๐Ÿ˜‚ that doesn't make sense

gentle urchin
#

Maxslots is unrelated to the grid placement ๐Ÿ˜„

pulsar pulsar
#

yea so basically what I had, except the rows division

gentle urchin
#

Yepp

#

And if itd mot working

versed sun
#

I like Division (Whole and Remainder)

gentle urchin
#

A few extra conversions

#

Compared to modulo and division there

pulsar pulsar
#

those lines ๐Ÿ”ฅ how'd you do that? ๐Ÿ˜‚

gentle urchin
#

The same but with modulo looks better ๐Ÿ˜†

versed sun
#

Electric Nodes Plugin

gentle urchin
#

Electric nodes?

pulsar pulsar
#

ahh neat!

versed sun
#

and tidy

pulsar pulsar
gentle urchin
#

Also show screenshot ๐Ÿ™‚

pulsar pulsar
gentle urchin
#

Print the row value

#

(Result from division)

pulsar pulsar
#

last index getting set to 35, as it should. Outgoing Index is zero as it's the first iteration. Gonna check print now

#

yea idk, i'm confused af because In my head this makes sense lol

frosty heron
gentle urchin
#

Wrong container? Weird slot rules?

gentle urchin
frosty heron
#

my old project was a total mess

#

It's like one page long lol for something soo simple

pulsar pulsar
#

well I added a read little outline as you can see and it does seem to work, it's just weirdly created

gentle urchin
#

There we go

#

Slot padding

#

Fix it

#

Or...

pulsar pulsar
#

Now ot figure out why tf it's climbing out of its slot box and into another

gentle urchin
#

Oversized container

#

You need to match up the slots and the sizebox size

#

Did i guess correctly?

#

Or perhaps you set it to a fixed size in a canvas

pulsar pulsar
#

I'm still looking for it ๐Ÿ˜‚ But my guess is you're right, I'm still learnign to find my way around everything haha

gentle urchin
#

(Slotsize (inc padding) * columns) + padding is the total size

pulsar pulsar
#

is this what you mean by slotsize?

#

in the ui grid panel

gentle urchin
#

No,

#

The size of the slotwidget your adding to the grid

#

"Inventory slot widget"

pulsar pulsar
#

yeaa, its 100x100

gentle urchin
#

Weird size but ok

#

So 100 x columns

#

600

pulsar pulsar
#

plus padding from the slot widget?

gentle urchin
#

The ugp should be 600 wide

#
  • any padding / borders there is
wild crater
#

Yea I just meant in the cases where you'd store static game data in a struct.

About not changing it. I actually use it to modify debug settings in the editor because it exists at edit time.

gentle urchin
pulsar pulsar
#

padding is 4 on the slot widget in total. 2 on the border and 2 on the size box, so 604?

gentle urchin
#

624

pulsar pulsar
#

uhm

gentle urchin
#

Each slot has 104 right?

fiery swallow
#

@gentle urchin the late night hero

pulsar pulsar
gentle urchin
#

So 104 x colums (6?)

#

= 624

pulsar pulsar
#

i fixed the overlapping by setting the border (with the Inventory text) to Size: Auto. Although the slots are still weird

pulsar pulsar
pulsar pulsar
gentle urchin
#

Well

#

The grid panel must be atleast this size

#

Is it wrapped in a size box?

pulsar pulsar
gentle urchin
#

So sizebox should have its width set to 624 for ugp + the padding and border of the scrollbox

#

Whats it currently at?

pulsar pulsar
#

Well its on Fill Screen, if thats the size we are talking about

gentle urchin
#

Not that one

#

Where it says inventory

#

Seems to be fixed size ?

#

Probably the vertical box tbh

#

Id do this a bit differently

pulsar pulsar
#

ah yes the vertical box

gentle urchin
#

Width of vert box?

pulsar pulsar
#

424,75 and 78,04 (X, Y)

#

by differently I guess you'd create the inventory widget inside a "main" widget that hold sthis wiget and creates it?

#

kinda like the slots are created inside the inventory widget

gentle urchin
#

Offsets?

#

Yepp

#

Let the inventory handle itself all the way

#

Main just has a ref to inventory

pulsar pulsar
gentle urchin
#

Its a result of mismatching sizes or padding as far as i can guess

#

So id play with those

#

Id also try to make sure textures are sizes of ^2

torpid juniper
#

Is there a way i can add "onActorOverlap" functionality to a newly spawned actor on creation?

versed sun
#

Are you hard coding the Size or calculating it after populating your grid ?

torpid juniper
#

Like i wanna spawn an object, give it some components and then make it print something everytime i walk over that object (give it code to run everytime it has an actor overlap it)

gentle urchin
#

Actor component could have that code

versed sun
#

Bottom part auto sizes the grid's Sizebox

torpid juniper
#

As it won't have the component it will need to reference on the actor

gentle urchin
#

Wha

torpid juniper
#

as i wanna create/add the component on the newly spawned actor then do functionality based on that component

gentle urchin
#

Not sure i see the issue

pulsar pulsar
torpid juniper
gentle urchin
torpid juniper
#

Idk how to add it

gentle urchin
#

The actor would have collision

#

The actor component just get parent -> and subscribe to collision events

#

And has code related to the collisions

torpid juniper
#

Yeah, so my actor currently has a static mesh

#

So i spawn it, i change its static mesh. i add the inventory component and set it up. then i want to call a function using that inventory component from the newly spawned actor each time it has an actor overlap but i can't see how to add that. i try make connection in bp from the actor but when i tried to do do bind to on actor overlap, it just had errors that i couldn't seem to fix

#

either errors or nothing happens

gentle urchin
#

The inventorycomp can be setup to react to owner overlaps

#

If that makes any sense

pulsar pulsar
#

lmao, my brain is having a field day

torpid juniper
#

So add that onactoroverlap code to the inventory comp after spawning? Or in editor beforehand?

#

As i don't want all inventory comps to do it

#

I want to pass the inventory comp as a param in the on actor overlap from the newly spawned object

pulsar pulsar
#

i'm stupid

#

I created the new main widget a little bit ago.. or so i thought.. apparently I decided to click the inventory widget again ๐Ÿ˜‚

gentle urchin
torpid juniper
#

and have a new component based off it?

gentle urchin
#

Yepp

torpid juniper
#

Ok, yeah. i don't want to do that

gentle urchin
#

If this is a common thing

torpid juniper
#

So i'll find a better way of donig it

gentle urchin
#

Aight

torpid juniper
#

it was mainly for testing purposes and seeing what i can do

#

i think i got it working

#

my static mesh was setup to ignore not overlap

gentle urchin
#

๐Ÿ˜…

pulsar pulsar
#

ok i got it back to almost "normal" lol. Trying to figure out why the tint is so weird now ๐Ÿคฃ

gentle urchin
pulsar pulsar
#

Can not see any such option in the designer, unless its graph

gentle urchin
#

In designer.

#

Below paddings

#

Allignment is it?

pulsar pulsar
#

so just center align? that fucks it up quite abit hehe

gentle urchin
#

Should remove the gaps?

pulsar pulsar
#

Ahh yea, content alignment

#

getting there

#

they are 64x64 now.

gentle urchin
#

Also

#

Id add these slots in editor

#

With the pre construct ->

#

So you can see it live in the main widget etc

#

Helps you size it up etc

#

Also

#

Rows is a rule of the widget, not usually the inventory comp

pulsar pulsar
#

i did it on pre-construct but not sure how it's supposed to work

#

i'm just trying to make the slots bigger in the ugp

gentle urchin
#

Branch on the bool and add the slots if true

#

This code only runs in editor

#

You need a var that exist in the widget

#

For amount and columns

#

You can make two new ints

#

PreviewSlots PreviewsColumns

#

Mark them instance editable

pulsar pulsar
#

got it ๐Ÿ˜„

#

i just dont understand why they're so small lol

gentle urchin
#

probably scaled ?

#

to fit?

trim matrix
#

anyone know where the file is located for the BP macros that UE has ?

#

need to yeet the file to fix something thats happening

pulsar pulsar
gentle urchin
#

more like... they're forced smaller by owning widget containers

#

if you add the preview

#

you can see this far more easily

pulsar pulsar
#

i do have the preview

#

i'm just confused what widget is causing me issues lol

gentle urchin
#

well

#

in editor you can try different things to see if it makes them bigger etc

versed sun
pulsar pulsar
#

like even if i increase min desired slot width/height, all it doesis just stretch the slot widgets apart (more like pads them apart)

torpid juniper
# gentle urchin Aight

Thanks to your help i was able to make a quick test where i can press a key and it spawns a chest with random number of items and each chest has its own unique inventory ๐Ÿ™‚

pulsar pulsar
versed sun
#

You can control the Size of each Button/Icon with "Icon Size"
The total size of the grid will be calculated after you add things to it

#

the Size of the Icon in inside its own widget

pulsar pulsar
#

but thats a custom variable?

versed sun
#

Vector 2d

#

just this inside the Icon

gentle urchin
#

Nice

versed sun
#

Not sure why it x4 at the bottom, I thought it should be 2 but it was streached like you were getting

pulsar pulsar
#

oh wow

#

that

#

worked

#

oh ffs, it was right there

#

same thing without the nodes

gentle urchin
#

๐Ÿ˜†

#

Well yeha

pulsar pulsar
#

my brain

#

i love learning, but i dont love suffering

#

๐Ÿ˜‚

#

thanks to both of you for all the help โค๏ธ

versed sun
#

got it ?

pulsar pulsar
#

Yes siiiiirrrrrrr

gentle urchin
#

Noise

pulsar pulsar
#

so now, would any of you know why I suddenly got this tint on the widget after adding it to a "main" widget?

versed sun
#

Nice, now... what if you only want 32 slots? and have a 6x6 grid

#

you bumped a Borders Tint?

pulsar pulsar
#

hmmmm

pulsar pulsar
versed sun
#

you can spot changed values more easily if you check this on the Gear

#

If your looking for the color tint thing

pulsar pulsar
versed sun
gentle urchin
pulsar pulsar
#

ahhh

#

yea that is not good looking is it

gentle urchin
#

You could fill out the remainders with clearly unavaliable slots

#

Disabled ones

random pulsar
#

hello guys can someone help with a predict projectile path system? how can i control the speed during the game by clicking 1 and 2 is strange,also it is for mobile so i need somehow ti control it by joystick

#

i would appreciate any help

pulsar pulsar
gentle urchin
#

Youd still have to deal with it

#

Theres numbers thats not cleanly divisible

#

7

#

13

versed sun
gentle urchin
#

Id say thats acceptable

pulsar pulsar
#

definetely

#

got rid of the red atleast

versed sun
#

You can also auto-scale the Rows/Columns
1-9 items = 3x3
10-36 items = 6x6
36+ items = 10x(%10 +1) or something

#

so different containers have different views

pulsar pulsar
#

i suppose yea

gentle urchin
#

Get the root of a size to find the closest fit ?

#

Not sure it matters at that point

#

If it dont fit, it doesnt matter how mich

versed sun
#

Small pouch, 3x3 grid
Chest 6x6
Bank 10x10

gentle urchin
#

Plus root isnt perfect

versed sun
#

have preset sizes

gentle urchin
#

Sounds good

versed sun
#

Then its 1 Widget, and can scale to whatever is needed

pulsar pulsar
#

you guys thinking further ahead than I'am ๐Ÿ˜‚

gentle urchin
#

We know where this is headed lol

pulsar pulsar
#

that is fair enough, i'll get there someday myself I suppose ๐Ÿ˜‚ one day..

#

the only thing in ym head rn is opacity... alpha... opacity... ๐Ÿ˜‚

versed sun
#

didnt find it yet?

pulsar pulsar
#

nopeeee

#

been playing with all colors i could find to see whats causing it

#

it wasnt like this until I moved the Inventory widget out of the main widget

#

the only other thing I have is background blur but i removed it to test wihtout and that wasn't it either

versed sun
#

If its fine in your Inventory widget, maybe its under something in the Main Widget that you added it to

#

Its not Disabled , is it ? that tints it out

pulsar pulsar
#

what is disabled?

versed sun
#

Is Enabled?

gentle urchin
#

(Not)

pulsar pulsar
#

of course they all are Enabled, what do you think i'am

versed sun
#

It isn't not disabled

pulsar pulsar
#

yes there was one that was not enabled ๐Ÿ˜‚

#

that fixed it, cheers again guys

#

i can finally relax

#

for abit

gentle urchin
#

Hahahahaha

#

Glorious

#

Well happens to all of us

versed sun
#

^ 0/36

gentle urchin
#

Derping from time to time

pulsar pulsar
#

0/0 is going to be weight ๐Ÿ˜

gentle urchin
#

Bug spotted

#

Ah

pulsar pulsar
#

haven't implemented yet

gentle urchin
#

Weight

#

The artificial slot limiter

pulsar pulsar
#

i was going for a spatial inventory (Reid Tutorial) but I felt it was going to be too much for my limited knowledge. I do still have a working example of it incase I ever want to use that

gentle urchin
#

Spatial -> jigsaw?

versed sun
#

Diablo?

pulsar pulsar
#

so I thought instead of slot by icon size limits, i'd do weight

#

like DayZ or EFT

#

i cant think of any other game that uses it, that i've also played

gentle urchin
#

Both arbitrary inventory constraints

pulsar pulsar
#

i just twisted my tounge reading arbitrary

#

i'm not english native btw lol

#

Spatial

gentle urchin
#

Yepp

#

Jigsaw

#

Different items occupy different slot spaces

pulsar pulsar
#

ahhh, I assumed there was a tons of words for it because I had no idea what to search for when I was looking for this kinda inventory

surreal juniper
#

Hey, due to a bug I had to remake the 3d character blueprint. How do I make it so that the capsule/mesh's rotation is independent from the camera's movement?

versed sun
#

ummm, toggle control rotation ?

#

looks for these

#

not sure what you want checked

surreal juniper
#

Turn on or off?

#

I'll check it out

#

Doesn't work. Checked or unchecked, either I can't move the camera or the model still rotates with the camera

lunar sleet
#

Where are you making the changes, on the char?

surreal juniper
#

What do you mean?

#

The "use controller rotation" checks are attached to self

#

Not any of the components

lunar sleet
#

Ok

#

Open a 3rd person template and cross-check your settings

surreal juniper
#

Well I have a revelation. I was able to disconnect the camera's movement from the camera by unchecking the yaw. Now, though, the model doesn't turn at all

#

It did before when i moved

#

The code is the exact same as it was before so maybe it isn't in the code? I can open a new template if you think I still should

#

found it! thank you both for the help

lunar sleet
# surreal juniper

Ah I would have suggested that but I didnโ€™t realize you meant while moving mb

rich compass
#

It does not work

night trench
#

If I have multiple ongoing input nodes running into the same function, does that function fire 4 times more frequently than one or does it get filtered down into one ongoing input?

#

And if not, is there a way to make it just one continuous input? ๐Ÿค”

lunar sleet
lunar sleet
lunar sleet
# night trench These ones.

Ok, what is it youโ€™re actually trying to achieve, why would you have 4 different keys trigger the same thing

night trench
stuck sentinel
#

helpppppppppp

#

last guy said i didnt set the var to the widget but i did look top right

versed sun
#

That's just Declaring that it exists, you need to set WHAT its talking about
the WHAT is the Return Value from Create WB Chest Widget
Drag your ChestWidget in the graph and Set it between Create Widget and Add to viewport

#

and , either Set visibility , or remove it

pulsar pulsar
#

Allright I'm back guys, with a brand new brain twister ๐Ÿ˜‚ Why on earth would I be getting "Blueprint Runtime Error: "Accessed None trying to read property InventoryComponent". Node: Branch Graph: ForLoop Function: Update Inventory UI Blueprint: WBP_InventoryNew" on the for loop ? ๐Ÿค”

#

screenshots are in order, top left to right

versed sun
frigid swallow
#

Does anyone know why my character is doing this after I changed some animations and blendpsaces?

pulsar pulsar
versed sun
gentle urchin
pulsar pulsar
versed sun
#

If not valid , print

pulsar pulsar
#

its valid

#

I did breakpoints aswell and it's all going through

versed sun
#

and this one is valid ?

pulsar pulsar
#

it is not... hmm

gentle urchin
#

Forgot plugging it ?

#

๐Ÿ˜„

pulsar pulsar
#

No it's there ๐Ÿค”

versed sun
#

are you getting the Function's Input Variable ?

pulsar pulsar
#

Her'es the first one, happens inside the main widget.

versed sun
#

ok, might got it...

pulsar pulsar
#

oh ballsack

#

i got it now lmao

versed sun
#

Inside a function with Inputs, all the inputs get there own Getter, at the bottom of context

#

But , you can also have a 'real' variable with same name

pulsar pulsar
#

I still had these bad boys in the event graph of the inventory widget

versed sun
#

New Param bool are 2 different variables

pulsar pulsar
#

they were connected tho before i took the screenie

versed sun
#

ahh

#

hah, this prints true and false

gentle urchin
#

๐Ÿ˜‚

#

Dafuq

#

Ahhh

#

Right , they're different

#

Shadowing

versed sun
#

1 of the New Param is the getter from the function, but it can be named the same thing

#

makes like harderer

gentle urchin
#

Yeah

#

Regular IDE complains about it

versed sun
#

eveywhere else dosnt let you name things the same

frosty heron
#

easy way is to add prefix for local variable

#

L_MyVariable

#

thats what I observe other people do ๐Ÿ‘‰ ๐Ÿ‘ˆ

#

can you even name it the same

#

I think editor will scream at us

versed sun
#

same :), but its the generated Input from the Func

frosty heron
#

ohhh right

#

seen someone set the incoming input to local variable

#

then work with it

#

but probably redundant I dunnoe

gentle urchin
#

In the old days

#

The inputs werent already local vars you could get

#

So local vars was the only option

frigid swallow
#

Does anyone know why my character is doing this after I changed some animations and blendpsaces?

lofty rapids
#

looks like your animations aren't solid, they are moving

#

i mean they are not in the same position, but move outward

frosty heron
#

your skeleton move forward but root motion doesn't exist

#

so when it's completed u get rubber banded

#

with root motion however, the root motion will translate your capsule component

lofty rapids
#

so if you set root motion, it won't move out like that ?

frosty heron
#

so u don't get rubber banded

#

it won't get rubber banded if you have root motion applied though for movement u probably don't want that

lofty rapids
#

I did from mixamo have an issue where some of the animations wouldn't stay in place, so now i can use them ig, nice

frosty heron
#

your animation should stay in place

#

To visually check, open console and type Show Collision
You will see that the character went ahead of the capsule component

#

there should be option to force root lock or something like that in the animation detail tab

lunar sleet
#

With what?

sage jasper
#

Is there a way I can check which type of AA method is being used in blueprints? I'm working on a menu where the user can change the Anti Alising method being used. I found a console command to actually excute the change. However, I need a way to check what method is being used so I can change some UI things.

tight pollen
lunar sleet
tight pollen
lunar sleet
tight pollen
#

sorry

#

Map Type Variable

#

๐Ÿ˜„

lunar sleet
#

Have you tried to save one?

grizzled beacon
#

Guys it's clear that I can't get game instance from a data asset, but what if I pass the game instance reference to the data asset event through a variable instead?

grizzled beacon
#

The stupid limitation of unreal

supple dome
#

why do you have logic inside a data asset

grizzled beacon
#

because how can i do items?

#

I need to have everything organized

supple dome
#

have logic somewhere else

grizzled beacon
#

where?

supple dome
#

anywhere thats not a data asset

#

data assets arent meant for logic, they are meant for data

grizzled beacon
#

I cant put the logic for 5k different items in a game mode, game instance or player controller

#

that's foolness

supple dome
#

i agree

grizzled beacon
#

and this shit of engine

#

don't have persistent data

#

in exception of basic stuff like strings, integer, or structs

#

the only persistent thing could be a class pointer

#

which makes me able to access data as "class defaults" which already is something useful

#

instead it likes to have objects of everything, which got reset when you change level

#

I don't know how many LSD Trips got the developers when they thought this way of working o.O

supple dome
queen heron
#

for some reason, it fails to cast

#

I'm tryna add a horizontal box from a different widget into a vertical box from this widget

#

Add Child node works fine

#

but the momment I try to cast either a verticalBoxSlot or horizonta, it fails

frosty heron
faint pasture
queen heron
lunar sleet
queen heron
#

made of a horizontal box and two text components

faint pasture
faint pasture
#

it isn't a horizontal box, it HAS a horizontal box

#

casting is a "is a" question

#

casting X to A is asking "is X an instance of A?"

queen heron
#

oh pffff, I'm short minded

faint pasture
#

You probably want to get the slot's child widget

grizzled beacon
faint pasture
#

which will be whatever you just shoved in there

gentle urchin
#

the itembase could get its data from a DA

queen heron
#

really need to get used to using the print string more often....

lunar sleet
grizzled beacon
gentle urchin
#

So then you dont need any logic in the DT

#

DT holds static information

#

or DA

#

same thing different wrapping

#

They can have very simple logic (DA's) for Getting stuff from it in a more ... user friendly way

#

but their data is considered static for all intents and purposes

grizzled beacon
#

Yeah, that's why I put the logic in the classes

gentle urchin
#

Perfect

grizzled beacon
#

I was just asking if could work passing the game instance as variable..

lunar sleet
gentle urchin
#

It would work, but it's a weird thing to do

lunar sleet
#

So you canโ€™t reference something that hasnโ€™t been created first

gentle urchin
#

no reason the static data should hold a reference to GI

gentle urchin
lunar sleet
grizzled beacon
#

Yeah, the GI fires the event from the data asset class

gentle urchin
gentle urchin
#

What event is this?

#

Why is the GI involved at all

grizzled beacon
#

Ok, I'll try to explain the whole logic

gentle urchin
#

thanks

grizzled beacon
#

Game istance has a map: Character Class | Character Struct. The character is used to store the character reference, the struct contains data (HP, MP, ETC)

#

I used ad interface attached to the data asset class

#

The Game instance pass itself to the interface as variable, and the DA Class will heal characters in it or do other stuff

#

I was wondering if that could work

#

Since I access to the GI from an interface through it's referenced variable and not the DA itself

gentle urchin
#

So you ARE putting logic in the DA

grizzled beacon
#

Yes

#

But just in the main class, not in all the child classes

gentle urchin
#

you can hack your way around regular DA limits to make it manipulate other stuff

#

but it's a very very uncommon approach

grizzled beacon
#

this way the main class works as a controller, and all the DA works as containers for data to be retrieved

frosty heron
gentle urchin
#

potentially

grizzled beacon
#

How you guys would manage an "item effect" having the character data stored in the game instance then?

gentle urchin
#

the usable_base class has a onUse event

#

Which does what it needs to do .. .grabs the data from the referenced DA , grabs the game instance, and calls an event to manipulate..

frosty heron
#

I don't favour going to game instance for my char stats

gentle urchin
#

^

#

I agree.

grizzled beacon
gentle urchin
#

but lets pretend we do

gentle urchin
#

thats actually what i do

grizzled beacon
#

Actor baseclass are meant to be spawnable stuff in levels...

#

Isn't that a "hacky way" too? lol

gentle urchin
#

It is spawnable

#

It must be

#

now it may sound overkill for something like a health pot

#

but it's not for a one-time-use firework with niagara effects

#

and it's handy being able to spawn or set a mesh, attach it to the players hand etc etc etc

#

and if you dont need that, AActor is pretty cheap to spawn anyways

grizzled beacon
#

ok, so the engine doesn't have a real way to do that kind of stuff. LOL

gentle urchin
#

if you say so

grizzled beacon
#

every way is a "workaround" to achieve that

gentle urchin
#

what is real

#

and what is not

#

we're talking about unreal here

grizzled beacon
#

yeah

#

the super engine which isn't able to asyncly wait for a level to load with Open Level. LMFAO

#

"no, better manage 12930812903812 levels in an empty container. makes much more sense"

gentle urchin
#

We're just saying you're trying to hack a made-to-be static class to do dynamic shit, instead of using the dynamic actor that exist for the purpose of what you wanna do

grizzled beacon
#

that's why when I see things like FF VII Remake the devs need a statue to achieve stuff like that

grizzled beacon
gentle urchin
#

you can load a level async

grizzled beacon
#

"Get stuck -> Levels Load -> wait bro, I have to load shaders and stuff"

grizzled beacon
#

which means having an empty map, and losing a life unloading and loading stuff -> The most dev\user friendly thing ever

gentle urchin
#

If you're only here to rant, im sure there's better channels.

#

nobody's forcing you to use it

grizzled beacon
#

no mate, you tell me about "hacky ways" and I answer

gentle urchin
#

go for your hacky way then

grizzled beacon
#

nothing seems to be made to work as it should, so the only way deep in order to achieve something nice are hacky ways

gentle urchin
#

"as it should"

grizzled beacon
#

as you see with proprietary engine made games

gentle urchin
#

they use data assets to do dynamic stuff?

grizzled beacon
#

data assets is a class derived from Object, so...

gentle urchin
#

yes, instantiated by the engine

#

as singleton

#

definetly not ment for your purposes

grizzled beacon
#

as far as I know, if I construct an object and make the game mode as owner, it will go to the garbage collection

#

but the whole point was at the beginning "will it work?", wasn't able to have an answer, so gotta test it the hard way

gentle urchin
#

I answered

#

you just missed it

grizzled beacon
#

nope, you just said "DA aren't made for this" , which is not a yes and a no neither :|

gentle urchin
#

You are able to , at runtime, pass in a valid gameinstance to a DA, which you then can use elsewhere

lunar sleet
#

remember to keep it constructive #rules

grizzled beacon
#

Thank you :)

gentle urchin
#

Yes.

#

But you're fighting the engine architecture, so do at your own risks ๐Ÿ™‚

grizzled beacon
#

Cool

ebon olive
#

hi why this doesnt work when i press a button? but it rotates when it is on tick event

frosty heron
gentle urchin
frosty heron
#

try to look at videos at how to setup enhanced input if that's the case

loud bridge
#

is there any easy way to flip all the spline points? that is to say, the last spline point should be the first and vice verse - not sure how it got that way but i must've done something weird

ebon olive
#

but it wont rotate

#

when i press a button

edgy ingot
versed sun
versed sun
oak fable
#

any clue why is that error ?

versed sun
#

Did you compile BP Alexios ?

oak fable
#

XD

#

thanks

civic garden
#

Hello, I have different blueprints and I added an actor component to each blueprint. I want the component to work separately for each blueprint. Is there any way to do this?

lofty rapids
#

get owner, cast for each one ?

civic garden
#

I think I'm doing that

edgy ingot
#

Get owner would return the owner of the component

civic garden
edgy ingot
#

You generally want to do that as the comp should work accross different bps

civic garden
#

It just spawning one of them

oak fable
#

how can i use the tags instead of the class ?

edgy ingot
#

Video dont load in my potato phone

lunar sleet
#

Itโ€™s a weird extension I wouldnโ€™t event try opening it tbh

edgy ingot
#

Oof

oak fable
lunar sleet
#

Has tag

edgy ingot
#

I would consider using interface

oak fable
edgy ingot
#

Actorimplementinterface

oak fable
#

still learning

lunar sleet
#

Does implement ๐Ÿ™‚

tight pollen
#

how can i optimize widgets?

edgy ingot
lunar sleet
tight pollen
#

if i have 400 widgets in one place then my FPS drops

lunar sleet
#

Do they all have canvas panels?

tight pollen
#

yes

zealous moth
lunar sleet
#

Afaik canvas panels are expensive and itโ€™s better to use other components

#

But Iโ€™m no #umg expert

zealous moth
#

sigh........

versed sun
#

There's special widgets for handling many widgets, you doing a grid ?

zealous moth
#

well doesn't seem to matter

#

i got a few canvases but nothing kills performance

gentle urchin
#

a few sure, but 400?

#

There's no reason for 400 widgets to exist and have their own canvas

#

If this is something like damagenumbers, and it makes sense to throw 400 widgets in the players face (not like it's gonna do much good), then there's smarter ways to handle it

zealous moth
#

so they can be expensive if you nest em

gentle urchin
#

This seems old

zealous moth
#

??

#

5.0

gentle urchin
#

It's not updated with the new field bindings

#

This is still true,

#

but they've added some new stuff that is far more efficient

#

Guess it's still event driven tho

#

since you gotta manually call them whenever they change ๐Ÿ˜›

lofty rapids
civic garden
civic garden
lofty rapids
civic garden
#

I'm getting the Owner -> actor transform. Getting the scale values x, y for the grid size.

civic garden
lofty rapids
frosty heron
# civic garden

You are getting all actor of class.... and destroying them

lofty rapids
civic garden
#

Yes

frosty heron
#

this will end up leaving only one actor in the world with those grid cells

lofty rapids
#

you can do that ?

civic garden
#

Sorry ๐Ÿ˜„

lofty rapids
#

just destroy actor on an array ?

#

nice

civic garden
#

I didn't see that. I did that because for debug

frosty heron
#

You should contain the GirdCells in the relevant component and only destroy the grid cells related to the component

civic garden
#

I want to find the correct offset value. I forgot to delete it

tight pollen
#

I removed CanvasPanel in widgets, but I still have the same FPS as before

civic garden
#

Thank you so much.

frigid swallow
#

Does anyone know why my character won't change it's animation? I have it set like this: Bottom is idle, middle is walk, and top is run. Then, left side is turn-left, and right side is turn-right.
Then I have this piece of code in the animation blueprint to control the two variables. Hoever, the player character doesn't change animations no matter what.

lofty rapids
#

so your actually using them somewhere ?

#

inputting them into the blendspace

frigid swallow
#

like this?

frigid swallow
#

it's failing

#

how do I resolve this?

lofty rapids
#

instead of the try pawn owner

frigid swallow
#

How do I tell which player index to use?

lofty rapids
#

are you doing single player ?

frigid swallow
#

single player

lofty rapids
#

i mean just use the default, it will get your character

frigid swallow
#

well, this still causes the cast to fail

lofty rapids
#

so your using bp thirdpersoncharacter ?

frigid swallow
#

yes

lofty rapids
#

hmm, i wonder why it would fail i'm still new to unreal

#

so i know only a little bit

#

look in your world settings in your override, and your sure that character is in there ?

#

or maybe you possess something else ?

frosty heron
#

Get player pawn? Wth

lofty rapids
#

get player character

#

that might be better

frosty heron
#

That's wrong too lol

#

Not in anim instance

#

It should try to get the owner

dawn gazelle
#

Yea anim instance you want pawn owner.

frosty heron
#

Regardless of the player

lofty rapids
#

ya that's what they had

dawn gazelle
#

If it's failing that means the mesh that is running the anim instance isn't a BP_ThirdPersonCharacter OR they are looking at the "Preview" instance.

lofty rapids
frigid swallow
#

alr, thanks anyways

frosty heron
dawn gazelle
frigid swallow
dawn gazelle
#

Hit Play > Select the instance you want to preview. The cast should be succeeding on a valid owner.

frigid swallow
lofty rapids
#

so the cast is not failing ?

frosty heron
#

Debug with print string. Print your speed, direction

lofty rapids
#

pain in the ass you got to select an instance whats that all about ?

#

i mean i'm guessing you don't need to do that in a standalone ?

frank sundial
#

Hey if im not doing animations do I just leave this out?

ionic palm
#

Hi guys I had my ship setup to be possesed by a linecast but wanted to change it to an actual wheel location now I am done testing and without keyboard events using my interact keybind.

I have a box on my boat around the wheel and I know my player is triggering the overlap event as the "Press E" widget appears when I am in it.

However it does not seem to be changing the boolean of "AtShipsWheel" to true as when I press my interact key nothing happens.

This seems odd as this is how I have my other interactable items set up and the only part of the BP I have changed is how the logic is initiated for getting on the boat so it should posses properly with the right input.

frigid swallow
versed sun
#

full diaper

dawn gazelle
# lofty rapids i mean i'm guessing you don't need to do that in a standalone ?

The thing is that when you're looking at the anim blueprint window, it allows you to see all running copies of the anim instance. The mesh displayed in the anim blueprint window itself is its own instance. Here's what it looks like when you have the game running on multiplayer even.... There's multiple copies because clients each have their own copy running for each character.

#

This happens with other blueprints as well as you can see how the blueprint is executing at run time but there can be multiple copies of that blueprint running, so you have to select the appropriate instance you want to view.

lofty rapids
#

makes sense

dawn gazelle
#

Like here.. This is the actor blueprint at runtime, allowing me to select any of the spawned versions that exist.

lofty rapids
#

i would leave it there and just keep it unplugged test it out make sure everything works

#

then get rid of it

frigid swallow
#

Does anyone know how I can make layered blend per bone only affect certain animations? I want it to blend the top and bottom when swinging a sword, but don't blend when dodging or rolling.

native ferry
#

you could use blend poses per enum

#

or just have a bool

frosty heron
#

Eg upper body, full body

#

Sword swing will use upper body slot

#

While montage such as opening chest uses full body slot

#

Gonna go to bed, gl

frigid swallow
#

k thanks

quick field
#

Does anyone know how to get hit detection in amount of seconds? Like if I'm moving and I collide with the wall, but I keep pushing toward the wall, after 2 seconds I want to do something

frigid swallow
#

Just test for hit, then give it a delay of 2 seconds, and if it's still overlapping, do something

quick field
#

thanks

frigid swallow
#

no problem, glad to help

surreal bridge
#

I am working on changing the games resolution and I have it working, but it doesn't change the window size and nothing looks different.

I am getting the resolution and printing it so I can see what it is when it changes and when it does change, it is the right resolution

lofty rapids
#

are you applying the settings ?

#

apply resolution settings

tight pollen
#

Some tips for optimize 1000 widgets in canvas panel?

gentle urchin
#

reduce widgets

tight pollen
#

But i can't

zealous moth
#

here's the #1 tip: whatever you don't use: collapse it

lofty rapids
#

well you can try to optimize how you handle them

#

different maths/updates ig

dark drum
native ferry
thin panther
#

There isn't a single game on the planet that needs 1000 widgets rendering at once

tough atlas
#

Used d=โˆš((x_2-x_1)ยฒ+(y_2-y_1)ยฒ) to stop prop surfing ๐Ÿ™‚

tight pollen
#

If I scale it I see 1000 widgets

tough atlas
#

@wild crater

tight pollen
#

And fps drops

#

It is something like big skill tree

#

@thin panther

dark drum
thin panther
#

A skill tree with 1000 skills sounds painful to manage

#

why not split it into smaller trees

#

or perhaps have predefined layers to scroll up

tough atlas
#

Scroll boxes?

dark drum
tight pollen
#

Big project ๐Ÿ˜…

thin panther
#

There's big, and there's unmanagable

#

you should definitely be approaching this and splitting it into more manageable chunks

#

think of it from your average consumer's POV

#

any player would get overwhelmed at scrolling out and seeing that.

#

the bonus for you is you get to handle it in a more manageable way for not only your player but their systems

dark drum
tight pollen
#

I have a contract, I can't show

#

Trying to achieve 1000 visible widgets ๐Ÿ˜€

thin panther
#

then we can't really help you

dark drum
thin panther
#

yeah this is a design issue

#

no game handles this many widgets at once

tight pollen
#

Is it possible, for example, to render the entire contents of the canvas panel and display it as one image?

thin panther
#

same here

#

and nothing that would let you keep your interaction either

#

my honest advice if you do need behemoth skill tree, is split it into layers you can scroll between, like a scrollbox.
So rather than zooming out, you just pan around

dark drum
#

Tabs for categories can be another good one as well. I prefer as long as the number of tabs doesn't get too big.

thin panther
#

But yeah, you'll definitely want to approach this as a design reorder.like instead of a behemoth tree, you could even have subtrees

#

although no matter where you go for something like this, outside of the tabs idea, you're gonna be breaking good ui design principles.

tight pollen
#

There is seriously no solution to what I want? For me it's just 1000 widgets ๐Ÿ˜…

thin panther
#

you're asking something insane.
1000 widgets is an unfathomably large amount to have drawing at once

#

you need to cull those numbers down

#

having some way to reduce the number you're drawing at any given time is the way to go here.

grim saddle
#

yo, what blueprint can i use for making multiple features on 1 key?

tight pollen
#

I can handle it, nothing is impossible

edgy axle
#

bro is really tryina make the next Path of Exile with 1000 skills

tight pollen
#

1000 widgets is nothing ๐Ÿ˜€

edgy axle
#

path of exile has the largest skill tree, and it's 1325 skills

thin panther
#

๐Ÿคฆ

edgy axle
#

is that what you want yours to look like?

thin panther
#

not confusing whatsoever

edgy axle
#

oh yeah they've also got a second skill tree

#

so fun

#

highly doubt you're gonna be able to get 1000 skills

#

but yk

versed sun
tight pollen
#

Something like it

thin panther
#

the only suggestion i could begin to give would be down in c++.
I don't think there is any possible way UMG can handle this without stripping out some stuff

#

you are in expert level territory here

#

industry-veteran-with-a-source-build-and-a-vengeance

edgy axle
#

hope this guy isn't tryina do this solo

thin panther
#

yep, as expected, PoE is built on a proprietary engine. So they definitely have custom things written to manage exactly these kinds of insane systems

#

i retract my previous statment. 1 game on this planet needs this level of widgets

#

although very loose meaning on "need" there ๐Ÿ˜†

tight pollen
#

The same as in PoE is not a problem

thin panther
#

what do you mean

tight pollen
#

In this game what I do, this widgets are much bigger and has more functions ๐Ÿ˜…

thin panther
#

yeah this isn't going to be possible unless you are gonna have a completely custom build of the engine or do the easier thing and just not render all 1000 at once

#

it really isn't a big deal to just not do that

tight pollen
#

Ok, I see that I can't do without C++

dark drum
# edgy axle

This could easily be redesigned to have groupings that you click on to zoom in. Zoomed out it would just show a single icon until you zoom in and just show the things inside.

Plus it would be much more user friendly.

sharp steppe
#

Is there a way to check when camera finish blending?

thin panther
#

if like 12 websites exist to help your users use your skilltree, you overcomplicated your skilltree

#

:P

#

but yeah i definitely like the idea of in-tree groupings

#

cleaner than tabs, and easier than panning around

#

you could even make hotkeys to focus a specific group for your more advanced users to quickly look at things

#

and you still lie cleanly in the ui design principles

#

win-win-win

ionic palm
formal narwhal
#

Anyone know how I can implement collide and slide on an actor with add world offset? I'm making a 2d game locked to XZ and want to implement custom gravity/collision response. Not using pawn or character.
If a tutorial exists I'd like to see it.

stark patio
#

I have made an enemy that flys after the player. It does this by applying a force on event tick, does anyone know if there is a better more optimized way to do this?

formal narwhal
#

is your enemy a pawn?

stark patio
stark patio
formal narwhal
#

You can also use a heading vector * velocity vector to move your component with add world offset.
target vector would just be the difference of your enemy and target. Then you could interpolate rotation of your heading with your target vector

tough atlas
#

Throws the camera around too much

stark patio
noble ledge
#

Question, how do I create this GET variable with the valid pins?

stark patio
versed sun
#

brain farted on me...

noble ledge
#

ah cool thank you!

gritty plover
#

Hey, anybody know if this starts at 0 or 1? So would Jan 1st be 0 or 1?

native ferry
#

just type in what you just wrote and it will do the math for you

native ferry
#

but i doubt it starts at 0 lol

gritty plover
#

It does start at 1

#

The more you know

oak fable
#

is there is a way to any get the objects or pawn with specific tag in sphere trace

#

oh nvm i found a way to do it

tough atlas
#

D = โˆš ((X2-x1)ยฒ + (Y2-Y1)ยฒ)
Anyone know how to put this into the math expression node?

native ferry
#

use sqrt

#

not the sign

#

use text instead of signs

#

idk about power tho

tough atlas
#

sqrt(power(X2-X1)+power(Y2-Y1))

#

makes this

#

not sure how to increase the powers though

#

to a factor of 2

oak fable
#

in actor to ignore
how can i call the other actors like other friendly Ai and so on

thin panther
tough atlas
#

sqrt(power((X2-X1),2)+power((Y2-Y1),2))

#

You would be correct

#

thanks

thin panther
#

np

limber citrus
#

is there anything except these that is global scope and doesnt depend on world?
I want to save some variables there and read them from multiple editor tools that only run during editor time

frosty heron
#

Maybe you want to look up editor sub system. I haven't done any editor utility stuff but it may require some cpp

ebon olive
#

Hi sorry. I added two inputs under the same Input Action. How do I make them correspond to true and false for A and D, respectively?

jade lintel
#

And set the one you want to return false to have a negate modifier in the mapping context

ebon olive
jade lintel
#

There is a pin on the action event node

jade lintel
#

And add a modifier to the "D" event on the action mapping (first image)

#

"Negate"

ebon olive
oak fable
#

hey there
is there is a way to set a delay after the first started event on the input action so i wont be able to spam the button

frosty heron
#

Make a PURE function, call it 'can roll'

#

In that function you want to add all the condition you need, eg bOnCooldown, etc

#

You can then use timer to control the cool down. Start a timer right after you roll, and set the bOnCooldown to true. Then when the timer expires set rhe OnCooldowm back to false

jade lintel
edgy axle
#

it should be like this

#

and use triggered, not started

#

ah well actually doesnt really matter

pulsar pulsar
#

Why am I not able to add child actors of a base class to a array of the base class? ๐Ÿค”

gentle urchin
#

Huh

#

You are, ofcourse

pulsar pulsar
#

My array is created inside my inventory component, maybe a stronger ref is needed.

#

more than just the variable of array type ItemBase ๐Ÿค” feel like i shouldn't have to though

frosty heron
#

Wth is a stronger ref

#

For the variable type you generally want to pick the base class

#

Like for dogs cats, mice, puppey. The base class you want is animal

pulsar pulsar
#

oh dont mind me, my brain is working on 10% ๐Ÿ˜‚ i barely slept, damn cat woke me up at 7am

frosty heron
#

Since the animals mention above are children of animal

pulsar pulsar
#

yea because, when i breakpoint to check if it's been added there is none inside, even if i check using contains base class or if i check the way i did in the screenshot

#

always getting the false print btw

frosty heron
#

Then you probably never add those actor to the array in your inventory component

pulsar pulsar
#

but the actor gets destroyed when the added bool checks true, which it does

#

however, i never check if it's actually valid tho

#

wait, should i do Array Add or Set Array Element

#

because the array size is already determined on beginplay

frosty heron
#

Get ref of the object you want to add. Get ref of the inventory. From the inventory array, drag and type asd

#

Add*

#

Then connect the object u want to add to the add node

frosty heron
#

It will just resize it self if you use the add operation

#

Maybe I'm wrong since I never test it but I believe it's dynamic array

pulsar pulsar
#

yea but i need a predetermined size because of it being a inventory, hence the resize, but i tried with adding it to the inventory anyway and it increased the array with Unknown Class ๐Ÿค”

frosty heron
#

What you should do is do a check when you want to add item to inventory

#

Let's say add item to inventory functiin

pulsar pulsar
#

resize function sizes the array to whatever number you want it be

frosty heron
#

This will check the current size of the inventory, if it exceed the limit then don't add and inform the player the inventory is full

frosty heron
#

Different with cpp array where you can have fixed size array

#

You are doing needless work anyway. Apart that it does nothing

#

All you have to do is a check when you want to add an item.

pulsar pulsar
#

This is inside my inventoryComponent. I'm not sure we are on the same page or maybe i'm just misunderstanding what you mean

#

Then I have the Add Item function inside my interact interface of my ItemBase class

frosty heron
#

That is soo wrong

pulsar pulsar
#

i'm just having the branch on true for now

frosty heron
#

Just do add instead of set element

#

U are setting all your item to one specific incoming item anyway

#

It will overwrite from beginning till the end

pulsar pulsar
#

yeaaa, but if i use Array Add, it will put the item into a index one higher than the actual array size, it won't add it if i do a condition for it. The Added item still returns a Unknown Class if i use Array Add

frosty heron
#

You should just loop with break

#

If that's how u want to do it

#

Loop through the inventory, check if the element is valid

#

The first element it found is not valid, means we can add in that slot

#

Then just break afterward

#

Eg. Check if 0 is valid? If valid go to the next one
Check if 1 is valid? No? Then we can set to index 1

gentle urchin
#

Id make a function simply for finding an empty slot

#

Its handy to have

#

With early return with the found index

#

If you're using object refs theres a "find" node integrated

#

That can find the first nullptr

#

Returns the index it found

pulsar pulsar
#

did I understand you correctly here?

frosty heron
#

@gentle urchin my lord I need your help ๐Ÿ™‡โ€โ™‚๏ธ

https://m.youtube.com/watch?si=OwpYvZzLWZaIUMUf&v=jhpFX6E-R84&feature=youtu.be

6:28 sry can't paste time in mobile. I saw you smoothly more around the widget from element to element like that. How's that actually done? Any general guidance I can follow.

Granblue Fantasy Relink Gameplay New Demo PS5

Granblue Fantasy takes place in the Sky Realm, a world where myriad islands float in a great blue expanse. Take your role as captain of a skyfaring crew, joined by a scrappy little dragon named Vyrn and a young girl with mysterious powers named Lyria. Together you sail with a colorful cast of crewma...

โ–ถ Play video
frosty heron
#

I will do what squize says tho, make a function to find a valid slot index

gentle urchin
frosty heron
#

Just trying to figure out how to centre the selected element to my screen smoothly

gentle urchin
#

Lerping

pulsar pulsar
frosty heron
#

Got that bit, but i don't have much clue with cache geometry and absolute coordinate etc. I suppose they are involved?

I'm confused at how to calculate the camera panning