#blueprint

1 messages ยท Page 99 of 1

slate fable
#

Triggers!

dawn gazelle
#

Lerp transitions between the values defined in A and B based on the Alpha. As you're not changing the alpha (which is supposed to be a value between 0-1) and always have it at 0.1, you'll always have a value close to the A value.

ornate trail
#

this is on tick behind a boolean, the alpha in this case just controls the speed of the transition with .1 being fairly smooth. It works correctly when I use it for camera movement, the issue seems to be with the rotators

#

something like this for example works as intended

gentle urchin
dawn gazelle
ornate trail
#

anyway this fixed it, with a lerp rotator and shortest path. Not which ever way the player has the pitch to start with it will always even out for the ability

ornate trail
dawn gazelle
ornate trail
#

yeah sure, I might change it later. The transitions are looking buttery smooth right now not going to mess with it. Seen plenty of people online do it this way. You are technically correct tho

#

actually pretty sure I got this way of doing it from code like me

slate fable
#

Anyone got any ideas on the best way to connect these via nodes?

turbid pecan
#

Anyone know if it is possible to make it so that blocking volume blocks visibility trace but not mouse over/click?

frosty heron
#

What is "these"?

ornate trail
noble ledge
#

Can anyone explain how this node works? What is the Notify Name?

turbid pecan
#

The collision stuff with blocking is necessary because you can only move X units in any direction, so that you end up getting close to the boxes but if you try to go over - the trace blocks that

frosty heron
noble ledge
frosty heron
#

Open the anim notify and override the func for notify name

#

Then name it w.e make sense

noble ledge
#

How do I open the anim notify?

frosty heron
#

By opening the anim notify class you created

#

Somewhere in your content browser

ornate trail
noble ledge
#

I see no anim notify in the content browser

frosty heron
#

Well where do the equip one is from?

#

Are u using plugin or something. If you do check their folders

noble ledge
#

no

#

I don't even see anim notify as something I can create if I right click in content browser

frosty heron
#

You can

#

Keep trying ๐Ÿˆ

#

You can create both anim notify and anim notify state. That's what you used in montages

turbid pecan
#

You gave me this idea by pointing that node out

mild ibex
#

is there a way to programmatically create a macro that takes an incoming class, gets all the actors of said class and loops over them as if they were wildcards? The reason for this is that I want to be able to get different properites of different objects without having to code in cast nodes for every single item that could possibly be requested. If there isnt a way that's perfectly fine im just curious more or less

ornate trail
#

the incoming class could be absolutely anything or would it have some constraints or would it be like a base class? You could use something like gameplay tags to differentiate but the more you can narrow down the requirements seems the easier it would be

mild ibex
#

Im really just trying to avoid the cast node, but somehow return an object that I can use as a target for anything if that makes sense. theoretically the reference would be resolved and then passed into other things

thin panther
#

the cast node is a good node

mild ibex
#

well casting is fine, thats not an issue, but specifically casting to things is what id like to avoid

#

making it flexible

thin panther
#

interface then

#

that's your solution for class agnostic behaviour

mild ibex
#

can you add interfaces to any actor?

thin panther
#

yes

mild ibex
#

thought that only works for blueprints

thin panther
#

you implement it whereever you want

thin panther
#

even actors

#

unless you're in #cpp land

mild ibex
#

Thats not true, if you use an actor from the Place Actors panel you cant just add an interface

simple spade
#

I have a question. So I want the character movement to be a permanent mode. I don't ever want it to change. Like let's say swimming. Is there a way to do this?

#

I'm having an issue where I set the movement mode, but another component is changing it.

thin panther
#

you can add any class from the place actors panel

mild ibex
#

true, but for something like a niagara actor for example

thin panther
#

you also aren't making those actors in the default categories either, so casting to do custom functionality wouldn't work either.

#

If you're looking for bona fide dynamic typing, a la Python, or Javascript, it doesn't exist

flat coral
#

What's the most graceful way to programmatically enable and disable collision on a pawn in BP?

flat coral
#

Oh that's a function! Nice!

lofty rapids
#

Why would you need to do this ? i found this in a doc for version 4

dry sleet
#

pretty sure that is redundant

versed sun
#

and doing the same thing

flat coral
dry sleet
#

I've always assumed that's an error.

thin panther
#

you pass none into a cast and it will "Cast Failed"

#

Most of the time

dry sleet
#

Ah well!

#

most of the time?

thin panther
#

Yeah, I've definitely seen invalid references get through it before magically

#

no clue how

#

Saw one in an AnimBP the other day

ornate trail
#

is valid makes sure it's not about to go boom too

dry sleet
#

yes I suppose the Pending Delete test of IsValid might be worth that extra node

flat coral
#

How do I change the signature of the event referenced in CreateEvent?

#

Or, failing that, how do I set a timer for SOMETHING that has parameters I can set

flat coral
#

But I kinda have to

thin panther
#

the timer delegate expects 0 params, and that's what it gets

flat coral
#

Or at least, the alternatives are gross hacks

thin panther
flat coral
#

yeah, like that

thin panther
#

counting time in a tick event isn't a gross hack

flat coral
#

It is for this.

thin panther
#

if anything what a timer does to account for low fps is a gross hack

#

but I digress

#

you don't have an option

#

possibly something in UE5Coro

#

or a delay

crude tartan
flat coral
#

I'd also call that a gross hack tbh

slate fable
#

how do you make collision boxes that interact with the floor? or a table in this case? I've got #1-20 set up with boxes. Looking to roll the dice and leave a 2 second delay before calculating the final result so that the physics has time for it to not be moving before giving a result. Maybe I've been staring at it too long because im at a loss as of the moment.

crude tartan
slate fable
twin perch
#

Yo i need the unreal equivlent of an empty in unity.

flat coral
thin panther
twin perch
crude tartan
thin panther
#

alternatively, a scene component

#

if you mean on the mesh itself, you want a socket

crude tartan
twin perch
#

so in unity when you wanted something done at a custom location you created an empty game object.

if i just use the mesh location i am not able to control easily (or i dont think) where the "bullet" will stat its path to the target .

an empty game object wouldnt have any extra stuff attached to it so you could just add a script and bam you can spawn stuff from that location.

#

that scene component seems like what i need though thanks.

#

appreciate the help btw

formal dome
#

@twin perch you also can use something called Socket, its like a bone but you can create it inside the engine, just go to the skeleton and you can add it from there

you can attach actors to it, and you can also use GetSocketLocation to get that socket location

twin perch
formal dome
#

Its always better to do it the unreal way, it makes stuff a lot easier and faster

twin perch
turbid pecan
#

Another question - I have a Master game instance which has some global variables. Am I understanding this correctly when I think that this instance is loaded when the game starts, so casting to it as many times as I want from anywhere in the game any time won't be impactful in terms of memory? It will only be loaded once and then referenced in memory?

#

Or does it make some weird multiple mem copies on each cast which are unique

lunar sleet
turbid pecan
#

Okay, so in this case GI is persistent for the entire life of the game until the exe is closed as far as I understand.. So it should be fine to cast to it from multiple sources then

lunar sleet
#

So if itโ€™s frequent enough you prly wonโ€™t have to load it too often. And the GI might actually stay loaded the whole time, not sure

turbid pecan
#

Cool beans. Thanks for this

twin shale
#

Does anyone know why this Editor Function won't force the assets to need saving? The function runs fine, everything in the same channel updates as expected, but none of the actors are marked as unsaved even though their properties have changed. I have to go to each and every light and manually move it up and down or otherwise change the actor to force a save.

#

It's also not limited to just this function, I have the same behavior on loads of editor functions like this

twin shale
tawny patrol
#

Hello! I'm trying to make a UI functionality that would allow me to move widgets (cards) with drag and drop within the container and change their order.
For example: move the yellow card to the top (image), and make the green ones "fall down" so they are still next to each other.
Do you have any idea how to even start with it? ๐Ÿ˜„

wraith loom
#

Anyways, I have a question. I have a for loop, and I want each iteration to perform on a different frame. So basically I want to split up a for loop into multiple frames. How would I do that?

undone bluff
#

you'd not use a for loop

#

you can wait a frame with a 0 second delay node

#

but that's really bad practice

#

with blueprints you're really limited on that front, what you probably need is to perform tasks async and pooling

undone bluff
#

this should be a good reference

#

you can still do this while keeping the widget in its container and just focusing on rearranging the elements in it

acoustic creek
#

Hello, I have a quick question, I'm trying to make some checkpoints for a small racing game I'm creating, but whenever I spawn back at a checkpoint the car is just rotated to the checkpoint's default rotation from when I first place it in the world. I was wondering how to get the rotation of the checkpoint after I have rotated it. I tried "get actor rotation" and "get world rotation" and they didn't work.

tight bronze
#

Hi, Anyone know how to Collide an Object with Camera Viewport Edge ?
I was playing TMNT and saw that enemy actually Collide with Camera Edge... I just wonder how to do it?
Please help me with the process and figuring out the answer

lunar sleet
#

Eh, itโ€™s not as easy as it may seem, it involves some math. Thereโ€™s some tutorials out there for side scrolling you can use to apply the logic

acoustic creek
undone bluff
versed sun
lunar sleet
tight bronze
undone bluff
#

ah, that should be even easier then

tight bronze
tight bronze
undone bluff
#

someone did your work for you

#

I know it's cpp and this is the blueprint channel but all you need to do is copy and paste

#

or copy it to blueprints, it's fairly simple

acoustic creek
tight bronze
devout tendon
#

I am prototyping my flippers for a pinball game and I have it set up as:

#

How do I smooth out the roatation? Thank you in advance.

undone bluff
#

you'll need to that every frame for the duration of the rotation to make it smooth though

devout tendon
undone bluff
#

luckily input events trigger every frame

#

the ones from the enhanced input system, that is

#

so that's a nice and clean way to go about it

devout tendon
#

I haven't had any luck working an interpolate node in. How do I incorporate it?

undone bluff
#

ah but then you'll probably have to still rely on the timeline to put the flipper back into its original position

#

blueprints are quite limiting when it comes to doing something every frame

undone bluff
#

use one of the rinterp nodes if you use tick and deltatime

carmine palm
#

wtf is this for vectors

undone bluff
#

for timeline use lerp of type rotator maybe

#

though I'd probably just use a regular lerp float for the axis you need

undone bluff
carmine palm
#

really? wtf lol

undone bluff
#

the return value has been changed to float

#

you can do that by right clicking

carmine palm
#

Looks weird to be sub

undone bluff
#

I mean you can just hover over it

carmine palm
#

I trust you obvs

#

๐Ÿ˜›

#

ah this is online screenie

#

Trying to check if player is rotating. Trying to figure out how to add turning animation

undone bluff
#

different engine version and uh I have some design changes going on but this is quite certainly it

carmine palm
#

ty

undone bluff
#

actually

#

I was trying to figure out what unreal does in this case

#

it refuses to compile

#

should've expected that

#

but nothing else is light green?

#

lo @carmine palm nevermind I know what it is

#

dot product

carmine palm
#

thats what I thought

undone bluff
#

I'm just baffled by the design choice lol

#

I can't even remember it looking like that

#

it was my first instinct too

#

but I was like "there's no way the dot product node would just be a line"

#

it's literally a process of multiplication and addition

slate fable
undone bluff
slate fable
#

they already have numbers on them lol I attached collision boxes to the static mesh of the dice on each face and am trying to assign the number opposing it. I've got a bool to decide whether or not its rolling followed by a delay for 1 second before trying to print it on the screen but i'm not having any luck with getting the boxes to detect the surface it falls onto

#

^ followed by plans to set up a clickable button to roll the dice. transform it to a new location to drop down a dice tower

undone bluff
#

so you are

#

that is a really bad approach

#

you can do something similarly janky but still miles better by having a scene component on each face and just checking if one of them is facing up

#

you can can iterate through an array, get the scene components forward vector and compare it to 0 0 1 with an error margin of your choosing

slate fable
slate fable
# undone bluff that is a really bad approach

fair enough. Still learning lol. Whats this with a scene component? what would the array look like? how do we get a forward vector of a specific object? I'm sorry im like brand new to trying to get these kinda things to work

undone bluff
#

a scene component is just a bare minimum component that practically has nothing except a transform

#

which is all we need it for

#

the array would just contain them all

#

also there's definitely some elegant mathematical solution to this

#

I can only think of one for a six sided die though

#

might be super complicated but now I'm curious

slate fable
#

the thing about doing it this way was the fact i can see visibly that it rolls fine. What is bad about using collision boxes?

frail onyx
#

Anyone know why this isnt checking which item if an Instance of the physics cube is already slotted and if so it cant slot another one?

slate fable
undone bluff
#

all of these are running overlap checks every frame (and sphere collisions are cheaper)

#

additionally I just feel it's more prone to bugs

slate fable
#

yea, set to an event tick i guess it would have to check every frame. i'll replace with spheres.. the thing is the fact that it isnt even spitting out a number behind the scenes

undone bluff
#

it's checking every frame either way, on physics tick, not on event tick

slate fable
#

oh

#

im so determined to figure something out i've been scouring tutorials all day

undone bluff
#

presumably you are just missing some simple parameter

#

like making sure the table generates overlap events

#

actually hit events

slate fable
#

i thought that would be it but i've been playing with that for the last 2 hours ish

undone bluff
#

since that's what you are using

slate fable
#

it wont let me connect the variable

undone bluff
#

which variable

slate fable
#

box collision to the event hit

#

^ the numbers represent; left - number on the face. right - the number on the opposite side. they are Box collision cubes

undone bluff
#

ah no this is an event called by the actor

#

you want the hit or overlap event from the components

#

you can easily get them by right clicking on the component > add event

slate fable
undone bluff
#

yes

#

an event is something you subscribe to to receive an exec and payload when its called

#

there's no input or two way communication

slate fable
#

so how does it know which face to call on when it comes to it touching stuff? since theres 20 faces

#

(stuff being the surface of the table)

undone bluff
#

I hate to even suggest this because this is another expensive operation and we need to perform it on all of the colliders

#

first of all, as long as you have any component per face you need to have them in an array, working with all of them as seperate references is a pain

#

best if you sort them in so the index matches the face value -1

devout tendon
#

Tried this and it does spin it and spin it back, although it doesn't always land where it started. Hmmm...

slate fable
#

๐Ÿค”

undone bluff
#

the only way you can do this with collisions

devout tendon
#

Lerp (Rotator) maybe?

undone bluff
#

is if you either have an event for every single collision (really bad)

#

or if you run a for loop on an array of them and get overlapping actors to check for the table

#

(still really bad but at least not spaghetti)

#

this entire approach is cursed though

slate fable
#

theres gotta be a better method ๐Ÿ˜จ to this madness!

undone bluff
#

also probably not from start

devout tendon
#

The reverse playhead?

undone bluff
#

it's got an exec input pin for that yes

#

pressed > play
release > reverse

devout tendon
#

OK, but the update and finished outputs can't go to both set world actors. That's why I was using 2 timelines.

undone bluff
#

I don't get why you'd want them to

#

or what you need the finished output for

#

as is you are playing both timelines at once trying to rotate the same actor if you release too fast

topaz fable
#

Hi guys
it sounds simple, I can't figure this out.
I have a texture object variable to set my texture, then a second variable for the normal. Since they share the same name + '_n' at the end I thought I could just append it but I can't convert a string into a texture object of course. Any ideas? ๐Ÿ™๐Ÿผ

gentle urchin
#

Well

#

20 comps transform updates but

#

Beside that its meh

undone bluff
#

the transform updates are irrelevant

devout tendon
undone bluff
#

they are just attached and inherit their transform

gentle urchin
#

So wheres the expense in your estimation?

undone bluff
#

running a for loop to get overlapping actors from 20 box collisions

gentle urchin
#

It wont even show on the profiler

#

Its likely one of the only things happening in this game of dice

undone bluff
#

if it's the sole and only thing in your game yes you can probably get away with this, but it will be a decently measurable framedrop

slate fable
#

https://sketchfab.com/3d-models/d20-dice-w20-wurfel-3d-model-free-3b44541db43e4e979efec290ec706cbc <- This is the Dice Asset if you guys wanna try it yourself xD I've been korfuffled for the last 7-9 hrs

gentle urchin
#

I wont believe it untill some profiling shows me it

#

Theres no way (uneless you're alreadh running on a toaster) that this hurts fps in any noticeable way imo

round grotto
#

Hey guys i made a blueprint interface with a function called GetHeroPawn, implemented in the player pawn and it just returns a reference to self. Then i made a function library with a function called GetHeroPawn (again) that calls the interface function on the player pawn. Seems i can get the player pawn class from anywhere now without casting, is this reliable? is this cursed? is this overengineering?

undone bluff
#

no it probably won't in a dice game, it's just extremely inefficient and expensive code

gentle urchin
#

We wont agree on this

frosty heron
round grotto
frosty heron
#

Because u use interface to interact between different types

round grotto
#

look how cute it looks

frosty heron
#

If u just getting the player pawn then cast away

undone bluff
# gentle urchin We wont agree on this

there's no way you can justify running one of the most expensive blueprint nodes 20 times and having 20 movable collisions just to check the face value of a single dice

#

I mean getting it working is the most important thing

#

but we can acknowledge this sucks

frosty heron
#

@round grotto interface is not replacement for cast
Avoid tutorial that say otherwise

round grotto
gentle urchin
#

But yes, there would be faster methods

formal dome
round grotto
undone bluff
#

you could so much with that millisecond ๐Ÿ˜”

formal dome
gentle urchin
#

But its harder

undone bluff
#

I'm just joking around now, I would love to profile

frosty heron
slate fable
#

think it would be better to try to run a cast to the table from the center of the dice? is there a way to mark each face so it'll calculate which face is on top and labeling it the number it needs to be?

undone bluff
#

but man it's 5am

gentle urchin
#

Indeed

#

Kids woke me up

#

For mth time

round grotto
formal dome
undone bluff
formal dome
round grotto
formal dome
#

Lets say you created a pickup system

#

And you have pickable objects

#

For example Ammo And Health that can be found on ground and player picks them up

undone bluff
#

interfaces are there to make things class agnostic

round grotto
#

I know how interfaces work on the surfaces, why are they worse than casting tho?

undone bluff
#

casting to a simple base class is pretty safe

#

small memory footprint

#

things that are loaded in anyways

formal dome
#

Probably you would check if that actor is ammo or health by casting it, if cast failed that means its not ammo, or health, or maybe checking the Actor tag to see if its ammo or health and then cast it and call the method

#

Instead you can use interfaces
Pickable actors will implement that interface and the interface will have Pickup() method
Just check the tag on that Pickable Actor, is the tag "Pickable"? if its then call the interface method Pickup()

round grotto
#

But are you saying i shouldn't use interfaces to transmit references around?

formal dome
#

Because this is not the usage of interfaces

#

Show me how are you calling that interface

frosty heron
undone bluff
#

well, there's times that it makes sense to do it

formal dome
#

You created an interface just to return the self actor, and created a function library that calls the interface

Like why..

formal dome
#

dude

round grotto
frosty heron
#

The interface is unnecessary

formal dome
#

what are you doing?

frosty heron
#

You can do a function library that's fine

formal dome
#

Get player pawn already returns the pawn, why are you calling get hero pawn interface that returns the pawn on the pawn itself, when you already have reference to the pawn you want

round grotto
#

Keep in mind this is my objective, i want a single pure node that returns my specific player pawn

slate hound
#

to cast to the type? lol shrug

round grotto
frosty heron
#

Cast away

formal dome
frosty heron
#

Ur player is always loaded anyway

frosty heron
formal dome
#

Interfaces can be called everywhere ..

#

no need for function library shrug

round grotto
frosty heron
#

The end goal is to have a pure node

#

Like get player character

#

But his own instead generic one

round grotto
#

exactly

slate hound
#

the interface is unnecessary really, might as well just cast to the class since it's already getting loaded by the return

round grotto
slate hound
#

by making it an output you're loading the class into memory if it wasn't already

formal dome
#

they mean its returned by GetPlayerPawn you can cast it

gentle urchin
#

Makes little sense with interface in this scenario

round grotto
gentle urchin
#

If you want it avaliable anywhere, stuff it in a bpfl

#

Yes

frosty heron
#

Bp limitation

round grotto
#

Had no idea, makes sense then

frosty heron
#

Casting to a cpp class of your character would of been next to free. Won't get it loaded to the memory

gentle urchin
#

Im sure theres more stuff to stuff in the bpfl anyways

frosty heron
#

But in your case your character is always loaded anyway so doesn't matter.

slate hound
#

ya it's a good thing to know, also having dependencies everywhere is bad, but in a library it's fine I guess

gentle urchin
#

For sure

#

Youd want your code to be untangled

round grotto
undone bluff
#

you just don't want to have stuff loaded into memory when you don't need to

#

classes that will always be around are cool

frosty heron
#

Cast to base class when possible

slate hound
#

and make base class CPP

#

oops wrong channel

undone bluff
#

stuff with a small footprint like actor components, interfaces, simple base classes without expensive texture and mesh dependencies

frosty heron
#

8 years of bp only proj

undone bluff
#

same, same

slate hound
#

I have some TERRIBLE old projects laying around

frosty heron
#

Better late than never

gentle urchin
#

I think most of us do

#

Terrible old projects ๐Ÿ˜…

slate hound
#

there was a time I didn't understand child classes xD

gentle urchin
#

Ouf ๐Ÿ˜‚

#

Thats an important aspect

#

master classes, overrides, hieriarchy

round grotto
#

I'm actually happy i'm working on a bp project so i get to chill

frosty heron
#

I'm chilling with some cpp scripts. They saved my project

#

Automating renaming thousands of material allowed me to move on

#

Also now I have a decent loading screen

#

My bp only project took 1.5 mins to load.

A spaghetti monster and hard ref everywhere

undone bluff
#

I still have like 50 BP enums and structs

frosty heron
#

New proj load in instant

frosty heron
undone bluff
#

life at the limit

frosty heron
#

I'm Done with bp structs they made me redo hours of works

#

No prob with enum soo far but they said it's cursed

gentle urchin
undone bluff
#

somehow, still nothing happened so far, and I'd just trust version control to get shit back in order

#

but I'm working on converting them

frosty heron
#

They are silent killer tho. Everything seems fine till I want to package

undone bluff
#

ah that's the worst

frosty heron
#

Gave up on converting them

#

There are like hundreds of bp I have to edit

undone bluff
#

when I had my last gamejam I packaged every hour out of paranoia

frosty heron
#

I just live with it and use 0 bp struct in new proj

undone bluff
#

always looking to clean up and improve something

frosty heron
#

I like to hide my spaghetti under the rug ๐Ÿคฃ

#

So the bp look somewhat clean

undone bluff
#

it's a longterm passion project so I have always the fact I'll still be working with this in 5 years on my mind

frosty heron
#

Share progress when you like

undone bluff
#

it's getting there ๐Ÿ˜Œ

#

hopefully in the coming months I have a bit of a vertical slice

gentle urchin
#

5 years

#

Dedication

#

Or maybe the lack off? ๐Ÿ˜‚

undone bluff
#

doing it all myself even including sfx and music, literally just working on this game all day every day haha

gentle urchin
#

Tremendous amount of work

undone bluff
#

I enjoy it so much, it never gets old

#

doing everything gives you the variety needed to not burnout

gentle urchin
#

Yeah that makes sense

faint pasture
faint pasture
crude tartan
lunar sleet
#

Sugar daddy

undone bluff
#

well, I'll only be able to keep going like this for another 1,5 years, I need to get some funding before that or I'll be forced to dedicate a serious portion of my time to freelancing

undone bluff
crude tartan
#

Great you are able to follow your passion though.

undone bluff
#

yea, nothing makes me happier

#

I'm off to bed, see ya

long hawk
frosty heron
frozen cairn
#

When my character capsule collides enemy capsule it bounces or shakes a little. how to fix that? I've tried to change collision preset but it didn't helped.

frozen cairn
frigid summit
#

hi i want little help with this i want a thing like 4 enimes of the same blueprint placed in a level waiting and two attacking if the first two died the others can attack can someone plz help me

gentle urchin
#

Youd want some manager triggering this

#

Event /npc / enemy manager

sick sky
#

since when visual scripting in UE existes ? Since creation ?

winged totem
#

Hi guys, how can i do this im UE4? i'm trying with physical animation nodes, but once i move the enemy head , then doesn't back to animation position.

lofty rapids
sick sky
#

ty

atomic saddle
#

how can i use the set control rotation node without rotating the camera just the mesh ??

lofty rapids
# sick sky ty

based on some stuff i found on the web it looks like the base for it has been working for awhile

sick sky
#

mh

#

the oldest video that i found of UE thats uses BP seems to be 2015

#

prob not the oldest

hollow bane
#

hey people

#

any idea why linetrace would break my viewport?

dim agate
hollow bane
frigid summit
thin panther
short ivy
#

I have a object class reference that I want to turn into a skeletal mesh object reference. How could I do that?

trail echo
#

Hoping someone can help me with something. I'm trying to rotate a billboard sprite according to a 3d vector projected onto a 2d plane (camera forward as normal). It seems to work OK if you look directly at the position of the vector until the camera points away from where the vector is, at which point the rotation of the vector isn't consistent. When the camera moves past the vector and looks away from it, the issue becomes more apparent as it starts rotating in the wrong direction with the same inconsistency.

I'm probably not being particularly clear, but here's the blueprint and some clips of the issue.

faint pasture
#

@trail echo what result do you want?

#

I'd say delete all that trig and do it with vector and rotation nodes without breaking them apart

#

If the goal is that the dude always faces camera and just spins in a circle I'd do it by combining the camera-dude rotation with a rotation that rolls over time, assuming that behaves. First make sure just adding roll forever behaves well.

trail echo
#

I should probably clarify, the intention is to put all the trig into a material later because there are going to be a lot of these things later on attached to bone sockets. As such I can't really use the rotation functions to figure this out, needs to be math.

Ideally, if we were to project the X vector of the green cuboid onto the screen and then figure out it's angle, that's the angle I want the android logo to be at. As it stands, it only works that way if you look directly towards it.

faint pasture
#

Tick:
Roll += RollSpeed x DeltaTime
RollRot = MakeRot(Roll, 0, 0)
LookRot= FindLookAtRotation
Zero out all but yaw if you want
DudeRot = CombineRotators(LookRot, RollRot)

#

What's the final end result supposed to look like?

turbid pecan
#

@dense mica idk if you care enough, but I moved the convo out of AI.. I have basically made the dialogue system using a single component bp, a single interface, and some clever thinking, and not only does it work as before, it's not as complex as I thought it will end up, and it also can have cycles!

trail echo
faint pasture
#

Are sprite and debug both wrong?

trail echo
#

Yes, the debug is for the sprite.

faint pasture
#

What should the end visual result be, just a sprite orbiting a 3d point?

trail echo
#

I want the orientation of the sprite to match that of the object its attached to, in this case the cuboid. I use a material parameter to rotate the billboard.

faint pasture
#

Can you already make the dudes attack?

kind willow
#

I'm trying to apply an impulse to an object when shot, but I can't find a way to get the hit direction from the line trace. Any tips?

#

please ignore the node mess

lofty rapids
#

probably the impact normal ?

#

honestly i'm guessing, but i would guess that has the direction you need

kind willow
steady night
#

Hey, Need help with Scroll Box the thumbnail covers the whoel slider :/?

light garnet
#

I spawn 30 Ai players but they get stuck with each other and don't move...

#

Any solution. I spawn every ai without colliding and stuck in each other

kind willow
# short ivy Anyone?

Wouldn't you have to cast to the object and then extract the skeletal mesh as a component?

kind willow
light garnet
#

Dynamic obstacles ? How

#

They are character blueprint

kind willow
short ivy
pastel skiff
#

i got a relly wierd problem, the input wont work at all, when i press it it shuld play a soaund but it doesnt, it works fine when i do event begin play, if try to use any other input it also does not work (the custom input i have there works in other actors too), i have this actor in my character, anyone knows what is going on here?

kind willow
pastel skiff
kind willow
short ivy
kind willow
short ivy
#

it still needs to become a skeletal mesh object reference

pastel skiff
light garnet
#

Thanks

kind willow
kind willow
#

if it's a pawn, the player has to posses it first, if just an actor, then you need to enable inout in it using "enable input" node

pastel skiff
#

cus if so ye i got it

kind willow
#

Not sure what kind of actor you are using and for what purpose, so it's kinda hard to tell what the best solution would be

light garnet
#

Yes he is right

pastel skiff
kind willow
#

Not sure how to help you with that

light garnet
#

You should use posses node too

kind willow
#

Doesn't posses only work on pawns?

carmine moat
#

Hi everyone! I want to borrow some brain power... I also asked in Material too but here might be the better place.
My procedure follows:

  1. I have a building object that consists of multiple static meshes with different Materials that does not share master material.
  2. Let's say I made a function called "MF_AddRust" to just blend 2 materials in there.
  3. I add the material function at the end of the material of a mesh.
  4. I repeat 3 to the all the object in the scene (Imagine the scene is a lot bigger than this)

Question:
How can I avoid adding material function over and over again for each meshes?
Do I have to write python or Blueprint Editor Utility?
I appreciate any of your help!

pastel skiff
frigid summit
kind willow
kind willow
pastel skiff
#

got it there was something called consume input and i chnged it and t works now, thnaks for the help

wraith loom
vague shadow
#

is anyone able to help me with getting the resolution text to change to the resolution that the game is on?

dawn gazelle
vague shadow
undone bluff
vague shadow
trail echo
undone bluff
#

while you're at it maybe use it to populate a combo box so people can choose resolution from a drop down menu

gentle urchin
golden kite
# wraith loom Anyways, I have a question. I have a for loop, and I want each iteration to perf...

Wouldn't you then use Event.Tick instead of a for-loop? You should be able to achieve a similar result, but the benefit would be that it's asynchronous (non-blocking) and will happen every tick (you can control the tick duration in the BP class defaults I believe). The downise (if you can call it that) is that you have to manage indices yourself (like incrementing the index and checking the limit condition), and maybe some variable scope nuances, but those are minor IMO

gentle urchin
#

Or custom forloop macro

#

I prefer custom as it can be re-used

#

You can also easily define how many elements to process per frame

wraith loom
undone bluff
#

damn what reason is there to for loop on event tick

#

aside from pooling

gentle urchin
#

Few

#

Some

#

But few

#

Tick aggregation

undone bluff
#

yea I meant that by pooling

#

valid use

golden kite
wraith loom
#

I'm not really looping on every tick, I'm performing a check on every tick, and if the check is true then I loop

golden kite
undone bluff
golden kite
wraith loom
#

Everythings good you guys can stop worrying about me

golden kite
undone bluff
#

are you sure this needs to be done every single frame though? if you are considering distributing the task over several frames that sounds like you should be using a timer

frosty heron
#

I heard 0.01 timer is soo bad that tick is prefered

gentle urchin
#

๐Ÿ˜…

frosty heron
#

There is overhead with timer that if u need something done in 0.01 u might as well use tick

gentle urchin
#

It can have unintended consequences

undone bluff
#

well yea timer will execute multiple times per tick if its rate exceeds your framerate

gentle urchin
#

^

frosty heron
#

๐Ÿ‘

golden kite
#

Point of clarification: is 'tick" really always your framerate? I thought they were two differnt things unless you're in an AnimBP

undone bluff
#

I don't worry about 30 times per second or less timers though

frosty heron
#

Tick runs every frame and it comes with delta time. Basically the time between current frame and last frame

golden kite
#

"Actors and components are ticked once per frame, unless a minimum ticking interval is specified" - I think there's a nuance. I mean, you have to make an effort to over-ride it, but you can...

undone bluff
frosty heron
#

Ye pretty sure tick can be override

#

Also in behaviour tree

frigid summit
slate fable
#

Back to trying to figure out the dice roll. I'm all ears if anyone has any suggestions

lofty rapids
#

have the first two attacking when it's zero

#

and the second attack when it's 2

frigid summit
golden kite
wraith loom
undone bluff
gentle urchin
#

You could also on rest do a trace from straight uo to straight down

golden kite
#

If that's the case, my obvious question would be - have you considered the reverse? Predetermining the RNG result and then simulating the roll to achieve that result? Meh as I type this that's probably MOAR work, but just a thought

gentle urchin
#

Hit face index

slate fable
undone bluff
lofty rapids
golden kite
frosty heron
#

Maybe each side can have forward vector. Then do a dot product with the up vector. See which one is closest

gentle urchin
#

Trace would work tho

#

And easy to implement

frosty heron
#

Just check for blocking?

slate fable
gentle urchin
#

Yep

undone bluff
frosty heron
frigid summit
gentle urchin
#

Ill make it in <15 min at pc

golden kite
frosty heron
#

But I suppose it could work

gentle urchin
frosty heron
#

Many ways ๐Ÿฆฆ

slate fable
#

I used collider boxes In hopes that with a collider for each face with a delay before it calculates after it stops rolling. But I'm genuinely lost on what the blueprints would look like hooked up

frosty heron
#

Delay is almost never a solution

gentle urchin
#

^

undone bluff
gentle urchin
#

Yyy

undone bluff
#

but that seems tricky

gentle urchin
#

Win win

#

Nah

#

Easy

frosty heron
#

You can probably launch the dice, then start a timer which get deactivate when velocity is 0

gentle urchin
#

Isnt there a handle

#

Foe when physics put it to rest

frosty heron
#

U can then do your trace thingy or collision upon timer end

#

Oh I don't know never touch physich stuff

#

That would be neat

gentle urchin
#

And its sensitivity is adjustable

#

So it can be pretty fast

undone bluff
#

the issue is the multiple triangles per face and assigning each to the value

slate fable
undone bluff
#

oh wait

#

lol

#

I just realized the shape of the die

gentle urchin
#

You dont hit the triangle

frosty heron
#

Just loop thru the dice and assign event

gentle urchin
#

You hit the face

frosty heron
#

Don't do unnecessary work

#

Imagine 20 of that bind

#

When u can sort it in a few node

gentle urchin
#

I mean... even doing 20 - OnOverlap

slate fable
gentle urchin
#

Is a tiny amount of work

#

To have it working

#

Barely worth the loop

slate fable
gentle urchin
#

And additional asaignment of indexes

#

The last on overlap is the face down side

#

Then its just mapping rhe correct index/value to each overlap

slate fable
#

Indexes like a data table?

#

Enumerators?

gentle urchin
#

No need for a data table

#

You just gotta figure out whicj face is down, and which face is opposit

#

Id just do the trace but this would also work

frosty heron
#

U wouldn't need enum for this

frigid summit
slate fable
#

It would have to trace just the Z axis right? How do you calibrate it to be at the center of the dice doing a trace straight down and straight up?

frosty heron
gentle urchin
#

Juat z

#

Just z

lofty rapids
gentle urchin
#

Start = Get actor location + 0,0,100
End = start - 0,0,100

frigid summit
slate fable
lofty rapids
#

i wouldn't be surprised if theres a die event, or death of some sort

frosty heron
#

Shouldn't it be as simple as getting the highest z to pick the active dice?

lofty rapids
#

and without access to start attack, i mean all you need to do is run it

frigid summit
slate fable
lofty rapids
gentle urchin
#

Sorry maybe i mixed now

lofty rapids
lofty rapids
#

and maybe some sort of boolean so you don't keep doing it

frigid summit
gentle urchin
#

Manager subscribes to enemies OnDestroyed during some 'begin event'

pastel garnet
#

Hello, I am trying to make a skill tree system and would like to create a connection lines from parent to child. I would like to draw a line from the the middle edge of the node to the child. how would i go about achieveing this. please suggest alternative ways of making this is there is. thank you ๐Ÿ˜Š

gentle urchin
#

You could predraw them on the bg texture

#

Not as dynamic but would work just fine

#

You could dynamically draw them on the bg texture/material

#

This would allow for some cool effects aswell

pastel garnet
gentle urchin
#

I ment a background for the entire container of talents / skills

frigid summit
arctic cloud
#

Hey y'all! Currently, I'm trying to make a camera actor turn around using RInterp To and an Input Action so whenever I press the key, the camera actor should turn around, and when I release it, to go back to the original position.

Turning around works, but whenever I release the key, so it goes back to the original position, all it does it jitters half way (values printed on the side) and it stays that way.

Here's the code I'm using: https://blueprintue.com/blueprint/4u0xvy3x/

lofty rapids
arctic cloud
gentle urchin
pastel garnet
gentle urchin
#

Oh right

#

This sounds like something youd wanna have dynamic

#

To avoid creating one texture for every enemy, and a new one for every added creature in the feature

#

Unless you know you can get away with 2-3 templates, ofc.

#

The HUD draw feels rather limited so id rather investigate how to get it done through a ui material

#

If you still wanna use the draw method, the position and offsets depends on the allignment of the canvas slot

#

Easiest is prob to just allign them center (0.5- 0.5)

gentle urchin
#

So all offsets is just half size

#

Assuming uniform grid...

undone bluff
#

there's a function specifically for drawing lines in UMG

gentle urchin
#

Recently exposed ?

pastel garnet
pastel garnet
pastel garnet
gentle urchin
#

this is just center to center tho

#

nodes overlap drawn lines

pastel garnet
#

are these preplaced or dynamic?

gentle urchin
#

placed by code

#

so dynamic

pastel garnet
#

damn, that is great. are you using a canvas and then dynamically adding in each node groups?

gentle urchin
#

yeah

#

Tried to do something similar to the shield hero anime

pastel garnet
#

so here all the generated nodes are in a grid, but you then generate the lines after the grid to each of the node position

gentle urchin
#

Sorta yes

pastel garnet
gentle urchin
#

First iteration was grid

#

^That one was free placed

#

By coordinates

#

So node 1: x150 y0
Node 2: x250 y50

pastel garnet
#

Incrementing each subsequent nodes by 100 on the X and 50 on the Y?

gentle urchin
#

Grid was mostly to get the offsets right ๐Ÿ™‚ see my textboxes up in the corner

gentle urchin
#

I typed the coords manually

#

Node 3 could suddenly be x-375 y-20

#

The only limiting factor is the nodes size/overlap

gentle urchin
#

Either is an issue in my mind

#

I want to avoid both cases

pastel garnet
gentle urchin
#

Its just a matter of lining them up

#

Nothing in code checks for it

#

So usin pre construct helps with that

#

The visual verification

#

you cant draw on pre construct but

royal python
#

Does anybody know how to itterate through an array with a delay. I want to toggle the light intensity on a few lights, that should get activated one after another...

gentle urchin
#

Custom foreachloopwait

#

Copy a default foreachloop
Then remove the sequence, and get the alternative execution from a secondary input

royal python
#

thx i`ll take a look ๐Ÿ™‚

gentle urchin
#

Yes

#

Create a new input

#

Execution input

#

Name it "Next" or something

#

And connect it to the "Increment loop counter"

pastel garnet
#

this is what I have been able to d, although its straight right now. Generated in a vertical box. ๐Ÿฅฒ

gentle urchin
#

Use a canvas instead ๐Ÿ˜„

#

So its not straight

#

Or atleast not forced straight

royal python
gentle urchin
#

Add an input pin

royal python
#

you mean just add to the squence?

gentle urchin
#

Remive the sequence

#

Connect the branch true to loop body

royal python
#

i did

gentle urchin
#

Erh.. the assign...

#

Sorry. On phone

royal python
#

i did

gentle urchin
#

Then adding a new input, you connect the new input to the "increment loop counter" part

#

Which loops back to the branch etc

#

This is what mine looks like

#

I removed the secondary internal int

pastel garnet
gentle urchin
#

It can still depend on parent, you just gottq point it to its parent

#

I had a node index i used to point to 'parents'

slate fable
#

Collision boxes work now but only when the player touches the box. What would I have to do to keep that same thing with the table instead of my character?

gentle urchin
#

So draw line was between "node" and "node parent"

gentle urchin
slate fable
#

Collision channel?

#

watching more youtube now ty

royal python
#

i does not want my array ๐Ÿ˜„

gentle urchin
#

The new input should be the same type as the first input

#

Execution or smthn

#

Oh nvm, it is

#

Second input should be a wildcard array

royal python
#

aarrrgh

#

got it

gentle urchin
#

Now you manually trigger "next" for it to move on

foggy sundial
#

Is there a shortcut for replacing a dead node with one that has identical parameters?

gentle urchin
#

Loop body -> do thing -> count?/delay/whatever-> Next

undone bluff
foggy sundial
gentle urchin
#

Dont think they got replace for nodes ๐Ÿ˜ฆ

#

They barely got it for variables

undone bluff
#

I just tried it and refreshing it works

gentle urchin
#

Not if the function doesnt exist

foggy sundial
#

refreshing a function that doesn't exist makes it exist?

#

disappointing if there is no shortcut. one of those things that's 100x faster in text lol

gentle urchin
#

Yepp

#

Same with variables

undone bluff
#

ah you want to replace it with an entirely different node, not a new function with the same name

gentle urchin
#

And even replacing a variable with a function

foggy sundial
#

right. same parameters same output same name

#

different object

gentle urchin
#

Which i sometimes want...

foggy sundial
#

using the first output of a function?

gentle urchin
#

Im the cases i want to, its usually with the returnvalue of the function

foggy sundial
#

multi return tho

gentle urchin
#

So maybe i started with a bCanRun

#

But now moved it to a function CanRun()

flat coral
#

Is there a keyboard shortcut that jumps to the end of the list here? Like, obviously I'm looking to get a ref to the input var named "target" but that name also matches a LOT of things so the list is super long, and for some reason it puts local vars at the very end.

gentle urchin
#

(It helps to star thenones you frequently use)

#

Not what you asked but helps

flat coral
#

But for something like this, it would only favorite THAT one

flat coral
#

I wish I could star "Variables" as a category

gentle urchin
#

It works surprisingly well for me

lunar sleet
#

As for searching in context, using no spaces tends to work more effectively

#

I.e. getTarget

sand slate
#

Hello, I have an (easy question). Im making an landmine and it should do damage to nearby players when it explodes.

I made this an other time with a volume looking for overlap, but i see other people using (line) traces or just getting the distance to all player actors, and no doubt there are even more ways. They probably all do work, but is there a way that's best and is most often used for these kind of things?

flat coral
royal python
lofty rapids
#

well it looks like your array element is an array ?

flat coral
foggy sundial
lunar sleet
royal python
flat coral
lofty rapids
#

ya i actually read that the other day, had to change a bunch of code

lunar sleet
#

Overlap volume is fine

gentle urchin
flat coral
lunar sleet
#

Easy to find out

royal python
gentle urchin
#

Calling set light several times?

flat coral
# royal python

Also wait I meant the other macro, are you 100% sure that this list of lights is actually containing what you expect it to contain?

lofty rapids
flat coral
magic vault
#

Hey guys! So I am creating a climbing mechanic for my game (I used a tutorial and i'm like TOTALLY new to programming) so I was wondering how could I make it so that when you reach the edge of the top of the platform you climb up and over to the top of it?

frigid summit
royal python
royal python
royal python
#

sorry guys - i am a total BP Rookie ๐Ÿฅฒ

lofty rapids
gentle urchin
#

also looks cleaner with increment int instead of assign

royal python
gentle urchin
lofty rapids
magic vault
flat coral
gentle urchin
#

the ForEachLoopWait works on my end

gentle urchin
royal python
#

but with the delaynode i wont

gentle urchin
#

only thing i can imagine is SetLight being called multiple times

gentle urchin
magic vault
# magic vault

Help would be much appreciated by the way, probably should've said that already prayge

foggy sundial
#

I always knew macros were evil

#

broken nodes apparently don't cause compilation failure while in a macro

undone bluff
#

is the macro used?

#

functions are compiled as a unit, macros are just a bunch of nodes getting pasted in

celest acorn
#

hey guys, how would i make my player start with 80% health instead of spawning with the max health?

undone bluff
#

set the health parameter to 80% lol

#

give us more details

golden kite
celest acorn
royal python
celest acorn
#

having one of those days

flat coral
# magic vault

This isn't really answering your question (I actually know almost nothing about the character movement component) but how does your trace system know the difference between reaching the top of a flat platform, and reaching the top of a thin wall?

golden kite
# celest acorn

Instead of setting Health to Heatlh, set it to a number like an int or a float.

#

Remove that first "health" node, and you'll be left with a place to type a number i the Set node

#

(that is, if you want to hard-code it)

celest acorn
golden kite
#

Or you can set it to 80% of the max health. That might be more flexible

gentle urchin
celest acorn
golden kite
# celest acorn

I'm guessing the problem here isn't so much that you're not setting health - I'm guessing that the other important parts of your code aren't reading that health value.

celest acorn
undone bluff
celest acorn
slate fable
#

tried messing with all the collision settings and no no avail it only works when it touches the player character. I need to make it spit out the number upon impact of the table

golden kite
#

I don't think your code above is actually doing anything. it's setting heatlh to itself. Kinda a noop.

golden kite
#

(Tht's no-op, not noob)

celest acorn
#

it seems to work

#

sets it to 80 instead of max

undone bluff
#

you are setting the health to 80, and then you take your health, which is at 80, and set its value to the value of health, which is still 80

golden kite
#

I mean, I think it would work regardless even if you got rid of that onBeginPlay bit of code. Because you're hard-coding the default

slate fable
golden kite
#

But go back and test your other levels to make sure you're not setting the health for ALL the levels to 80

slate fable
#

@gentle urchin

flat coral
slate fable
#

๐Ÿ˜ญ @flat coral

golden kite
# slate fable

I look at that and my brain goess IMMEDIATELY to "REFACTOR REFACTOR"

Can you not loop / iterate through those?

celest acorn
royal python
celest acorn
gentle urchin
slate fable
#

@golden kite I dont know

gentle urchin
#

Lets avoid making it a loop after the work has been done xD

#

dl'ing the asset now

#

was gonna setup up the trace method

#

instead

undone bluff
slate fable
#

this is just the beginning to the nightmare i'll be getting into after getting the dice to work ๐Ÿคฃ

flat coral
# slate fable

Wait, why colliders? Presumably the sphere is an actor, why not just check which way is up and do some vector math?

undone bluff
#

the default value is 80

#

anytime an instance of the character spawns

#

it will do so with health at 80

slate fable
#

@flat coral I have no idea how to do it and am using tutorials from the Tube to figure it all out plus the help of you wonderful folks โค๏ธ

dire frost
flat coral
foggy sundial
#

but I love my beautiful c++ macros for cheat commands lol

#

no evil runtime errors there

slate fable
#

the faces aren't different components the dice is one static mesh and I've added colliders to try to make it work

foggy sundial
flat coral
# magic vault What do you mean by this?

I've been messing with wayfinding via traces a LOT lately, so I'm just thinking, tracing straight forward can tell you when the vertical surface has ended, but it does NOT tell you about the presence of a horizontal surface.

foggy sundial
#

so macros it is

#

and blueprint is basically powered 95% by macros on the c++ end

dire frost
magic vault
slate fable
#

@magic vault I FEEEEEL THAT minus the college

foggy sundial
#

it could be worse

#

you could have 5 years of experience and still feel like a noob sometimes

lyric rapids
#

why is the 2nd timeline not calling

magic vault
slate fable
#

Booleons are just a true false statement to my knowledge Bools and branches are friends

flat coral
magic vault
#

but I need to find out how to make the character continue their velocity over the top of the wall atleast + also rn its really floaty and i don't want that either

gentle urchin
#

or face ID

#

unless i messed up the import

#

Hmm

#

this dice doesnt make to much sense to me

#

what do you do if it's a split ?

#

these are both equally up ..

flat coral
gentle urchin
#

oh lol

#

didnt realiz

#

its the dice fucking up ๐Ÿ˜„

flat coral
#

(Fun fact, the unwritten rule in tabletop games is if you can balance another die on top of it and have it stay, the roll is valid)

undone bluff
slate fable
#

I remapped the collision on the dice

gentle urchin
#

but the trace method works

#

for all intents and purposes

slate fable
#

how did you do that? O.o

gentle urchin
#

well

#

most intents lol

flat coral
#

Also just be aware, if you're actually rolling the dice with physics it's very possible that you accidentally create a biased die. Most games that do this are actually just doing RandomInt(1-20) and then faking the dice animation so it lands on the already-selected number.

gentle urchin
gentle urchin
slate fable
#

I have a roll tower but idk what would be needed to simulate that

gentle urchin
flat coral
gentle urchin
slate fable
#

adjusting the gravity and mass etc would change the way it rolls no?

gentle urchin
#

you can make a simulation

#

and test it a million times

#

to see if there's any bias to worry about

#

unessesary with 1000 tracelength lol

#

this is with 100

slate fable
#

how does the line trace translate into calculating it as a variable that can be used on the back end?/displaying on the screen

gentle urchin
#

well

#

it gives you the face id

#

which you just map once

slate fable
#

you're a wizard! lol Now i just need to reverse engineer that and apply it to the dice โค๏ธ

gentle urchin
#

a map, int to int

#

face index to value

lyric rapids
slate fable
#

@gentle urchin would you be cool like streaming that and walking me thru how you set that up? I'd like to learn and be able to pass the info along to others trying to do the same. because theoretically it could be applied to dice of all types rather than just a d20?

gentle urchin
#

if your trace hits those, its just out of the waters

flat coral
# gentle urchin

If you wanted to be even fancier, you could make a new component type that subclasses static mesh component but includes a single new variable, the roll result. So then you trace for a component ref, cast it to your custom component, and just grab the number from the var

flat coral
gentle urchin
#

hm

#

that prob works?

#

hm na

#

face id is 0

#

another problem is the letters are rotated differently

#

so its not straight up doing + X in any diraction

slate fable
#

I could try findind a different dice mesh if needed

gentle urchin
#

Personally i'd probably just have plane faced dice,

#

with numbers set by some material or smth

slate fable
#

the int to int is how you set up what face its on?

sage lagoon
#

I'm not sure where the right place is to post this kind of question, but does anyone know of any tutorials in creating BPs for, say, turn-based RPG battles if I were to make each on widgets?

#

For the time being, anyway.

lyric rapids