All right. Welcome to office hours with prime.
I'm gonna answer questions about Resona If you don't know why you're here,
Uh, drop the questions in the, uh, office hours text thread for questions.
I'm just gonna ping office hours again so people know that we're starting, and, uh,
then we'll go ahead and get started.
We're starting.
Uh, like I said before I started recording today, I do have to be out Very prompt.
Here. I've got a haircut at, like, 5. 15, and it's currently four. So 4. 30
then I've basically got a like run.
Oh, there we go. Uh, let's go ahead and take a look of questions. Uh, Alpha Ian
asks with the release of the trailer this week. Will there be more sponsored videos I
advertising for Resonate soon?
Um, sponsored videos? Yes. Advertising?
No, Um,
we're still unsure about advertising right now and and our kind of strategy from it,
um,
I generically hate advertisements, but, hey, they do work,
so maybe work with them in the future.
Our
demographic is kind of odd as well.
Like most of the time, when you, like, advertise stuff,
you need to sort of have a demographic in mind,
and I don't know if advertising platforms
can target the demographic that we're after.
It'll be like, Yes, Here's this, uh, you know,
uh, Boomer Facebook lady who received an advert to red night
like that's wasted money.
Um, XO,
uh, why does look at user prevent it from being grabbed? Yeah.
Anything that is grabbable needs what's called like a It's not officially called.
It's just the term I use,
um, a clean grab.
Now, a clean grab allows the device to be, well, the object to be parented to
your hand, your grabber,
Um, and for its, uh, position rotation and in some cases,
scale to be driven or modified.
Look at user drives the rotation so you can't grab it.
If you'd like to grab something that is, look at user
parent. The look at user slot to another slot. That's grabbable.
Make the look at user slot, not grabbable. You'll be able to drag it around.
It'll be fine.
Josh,
what's the
dog?
Um,
he was
up
in the sun.
He's
over back to I've got, like, an old, um,
like an old blanket I used, um
when uh, relatives were visiting I needed to sleep on the couch,
and I've just left it on the couch.
And he loves it. He just sleeps in all the time.
Um, but he was also sitting in the sun earlier and sunbathing, which is nice
going on a vacation at the end of this week.
And little dog is going to be staying at chroma.
So redirect dog questions to chroma till I get back.
Uh,
a says what are the options for the
notation Sounds? Uh 00, no.
What section of settings or notification sounds. And
it looks like we don't have sound, uh, settings for, um,
uh, like changing them. But
they're there.
I don't really understand the question.
Uh, Haley, uh, hello. I am new. Welcome. Um, I was messing around
products for a few days. I wanted to spawn in item, but realise it isn't supported.
Yes, correct. Um,
spawning in an item isn't natively supported.
There are a bunch of people who do it in a bunch of different ways,
using hacking methods that we don't quite, um, recommend because they will break
or may break in. Some cases have already broken.
Um, but yes, we will have um, a way to do that later.
Um,
it's called Cloud Spawning is like the the the term that we usually have for it.
Um, things to avoid resonate with you. I think it's got a link to the github about it.
Um,
when it comes to spawning stuff in though,
uh, a lot of people just need the duplicates, the duplicate slot node. Right.
So let's say you have a coin like you're making a Mario game or whatever,
and you've got a coin, and you want people to pick up the coin to get points,
make a single coin, hide it somewhere under the map, and then you can run some pros
that uses the duplicate slot node to dip
and position the coin around the world, and people can pick it up and still get a, um,
a score.
Yeah, we we plan to have what we call cloud spawning in the future.
Um, but most cases like
you should probably have the asset already in the world.
Um, if it's like a game or something, you should have the asset in the world, um,
moving forwards to fin
there any plans for in house modelling tools Yes. Um,
yes.
We had this whole, uh, DLL that was shipped for a while.
That was meant to have that code in it, but had no code whatsoever.
Uh, it looked like someone had just pushed, like,
file new project compiled it and included the DLL in the build, uh,
decoy asks with data feeds and such in place is only
for search within U.
I such as, uh, red Xs fuzzy searching for sitting components, flux nodes
that
there will be development for stuff like that in the future.
Um,
you've already seen little bits of it with
the user data feed supporting a search parameter.
Um, there's also, like,
stuff already working in your inventory.
That sort of figures out how to search it and and stuff like that. Um,
if you look at the API like the Jason stuff, you'll see that, um, worlds have tags,
you know, like, yo, this is a game, et cetera.
Your items in your inventory also have tags,
and that's what we'll be using to search them once that's all hooked up.
Uh, we have to be careful with that one.
Cos searching Doing it incorrectly can lead to expensive or slow U I expensive cos
searching is expensive and slow because searching can
be slow unless you do it correctly.
Uh, frix is is following up with a a bunch of other issues, which is fantastic.
Sorry.
Uh, Lucas was amazing.
Questions where I have to put the code base and just go like, yay.
Uh, so let me just read this. I gotta, like, get the types that lined up.
Uh, Lucas says aren't sync, ref.
T also an
ifield T. I tried using object field hook, but it needs
ifield T of the object. Is it even possible to get an
IFIELD slot or an
ifield user?
Uh,
let me double check what a sync ref is.
Uh,
yeah. So, uh, sync ref is like a a quite a large, um, hierarchy away from
ifield.
But do you remember that
ifield is just an interface? Um,
I I'm I'm not certain some of the elder rich people might be able to help you out there,
like here's here. I'm at
sync,
ref. Um,
which inherits from sync,
ref. World element
sync R word element inherits from sync field
and sync field inherits from
ifield
or, uh, the interface. So there's there's lots, like on top of each other there.
Uh,
have you ever opened a code project after a long time and just gone? What the fuck?
Yes, Many, many, many, many times.
It's actually a common thing for developers to do that with their own code as well.
Um, so
you know, you spend so long working on it,
um that sometimes you can become disillusioned to what it is or
how it works or why it works or why it exists.
Um and then maybe you you don't focus on it for a bit or you submit it,
and then you look at back at it later, months later
and because it's left your working memory
because you've kind of forgotten about it.
You look at it from a different light, and you're just like, What the hell was I doing?
Um,
that is happens a lot. Um, best way to handle it is to just roll with it, right?
It's gonna happen. No matter what you do,
you can also see, like, various examples of that throughout our codebase. Um,
like older components are written in a way where you're like, what,
and the newer components are written, and it's like that was very simple.
And now even newer stuff written with data feeds it's just like,
this is incredibly simple.
This this is all very, very simple.
For example, I wasn't, um, aware of how complicated the teleport code was. Right. So
there is
a a humongous algorithm, um,
that decides where to put you when using teleport locomotion.
And I need you to just come in there and be like,
ah
oh,
to add the teleport block compo
component. I was just, like, gentle touch, just like gently touch this part of it.
Uh, Svein
says in another recent thread you mentioned res
reso
tries to direct before falling back to punch and then relay.
However, in testing way, myself and others can get to join,
um via directors to use the proto
ox
nose.
Yeah, so
I can't.
I can't reuse sort methods.
So if anyone knows programming, I just I don't understand them.
I I've like, this is how we sort the URL S for an L and L connection,
and I just can never remember if negative one means,
like go first or or go and then like,
but that's how we sort them. Right?
So it'll try the first one that results from that list,
but for
was talking about how maybe LNL Nat is prioritised over LNL the other day.
Let me just double check how we get back from from where that's called.
Anyone there that knows the sort method. Please help.
Well, let's take a look at that. Um,
uh,
ozie says I'm thinking about making it up issue, uh,
about adding the sync conflict commands to the settings.
But I'm curious. Do you think that's too dangerous for data loss reasons?
I wouldn't do that currently,
um, so,
uh, yeah, I wouldn't do that. Currently.
What we kind of need to do for for sync conflicts is,
um either, like, fix the underlying problem to make them go away if we can.
And we did fix some of those, um, in, like, recent updates.
Um, but
we can improve a lot of stuff there so that they don't happen. But if they do happen,
uh, I want, like, I want a four U i to do it a bit like the ST
Sync mod that that stifle made,
um where it's like. Here's exactly what's going on? Right?
You can you can take a look at it. There's, uh, options for each each each there.
I was gonna move that way there, Um, by having the sync, um, facet if you click it,
it was gonna open up a dialogue, and I was gonna start by just putting in some, um
uh, some text, right? So we can find out what type of sync failure it is
for the code.
And then we could display a text message in that dialogue.
And that text message might be like, uh oh. Looks like a sync error.
Here's a link to the wiki to resolve it, et cetera.
And people go, Well, that doesn't really fix the problem.
And I'm like, Yes, but it's like a step.
It's like a step towards the the correct problem, right?
It's like, once that U I is there, then we can start putting more content into it.
Uh, and then before you know it, we've got something better.
But I wanted to just start by by pointing to people One of the things that,
like frustrates me the most in, um, user experience areas is,
uh, loading bars or errors that don't explain themselves.
So a good example would be, uh, you know how,
like blue screen of death messages now have a QR code so you can, like,
pull out your phone and frustration and scan them,
and it takes you to a Microsoft Web page nine out of 10 times.
That webpage it takes you to is blank or 404.
And I'm just like you have such a cool system, right?
A low level part of your operating system will generate a QR
code for the error message that caused the computer to crash.
And you couldn't be bothered to write the Web page for that QR code.
I don't understand it.
So it's like, Tell me what to do next.
Like I hate errors I see on user experience or user interfaces where it's just like
an error occurred. Please try later. It's like OK,
like what? Should I contact support?
Should I not contact support? Is this transitory? Is this not transitory?
So you'll see that in the the login dialogue
with all the the errors in the descriptions there,
it's like we suggest you contact support,
and usually we put contact support in the area
If it's a like a really obscure ones.
There are some, um,
log in areas, for example, that like
I don't know how they would ever happen
but because, um, programming languages as a,
um I don't wanna use terminology that'll get wrong here,
but because programming languages have branches that you need to cater for,
um, sometimes you have an error message and, like,
I don't know when this would show up, but I'll put it there.
And usually those sorts of error message have, um,
have, like, you know,
open a support ticket cos like there's nothing that someone could do.
Uh, negative one goes higher and one goes lower.
Um,
OK, that helped fruits.
But then I can't remember, like, does a go high or does B go higher?
Uh, I had this long, uh, I don't know.
I'm rambling here, but I had this long argument with,
um members of the the mixer engineering team back in the day.
And I I saved a meme about it, but I've got to find it.
Old mixer stuff. Here it is.
We,
uh we decided at mixer on like a a
standard way of reporting errors that looked approximately,
like that bottom pane in that comic,
um,
it had an error message field and everyone used
the same C# like class for the error message.
But no one filled in the error message.
And so I had to go meet with, like everyone who made an API on mixer and be like,
Why is error message blank?
And they're like, Oh, we don't think we should give away the secrets about why our,
like, API failed.
I'm like you should tell the user what to do.
It shouldn't be an error message that says,
like this specific part of the infrastructure failed.
It should be
user. Here's what you can do about it,
particularly if it's like a 401 like if you like.
If you have a 400 response on your API S
and
you don't
tell people what's wrong, like don't use 400 like it's like 400 bad requests.
OK, what did I do? That was bad.
It got to the point where, um, I don't know if that's an actual error code,
but I had to search that number through the code base of like the entire mixer stack
and find out where it was and I couldn't find it.
And so I asked the engineer that was responsible for the service.
Hey, what does this error code mean?
And they were like, I don't know.
And I was just like, I don't understand how this has happened.
Like, where does that number come from?
Eventually, I, uh, tracked it down to the fact that
in my testing, I was forgetting to set the accept HTTP header to be Jason.
And so I was basically saying, like,
I don't know what format I'll accept in response in,
and the server was set up to not provide a default, which is Jason,
which is a good default.
Instead, it would just crash.
And so if I didn't say I want Jason or I want HTML or I want XML,
um, it would just crash.
And I said, like Hey, the the like the process shouldn't crash.
If someone doesn't tell us what we want,
we should like default to Jason, maybe, and, um, after several meetings of that,
I just kind of gave up.
Anyway, I don't think we have any additional questions.
We do have additional questions. We have, uh, one from Ozy are custom session.
I DS have this changed, or is there form or they could just booked right now.
They do work.
Um, I do have a get an issue open to double check that they work,
but I have seen them work.
And the reason why I know they work is I used custom session.
I DS for the M MC 2024 voting world. So I know that they work.
I think I just need to update the documentation on that.
Uh, it looks like echo. You've got your recent essentials folder back.
That's great. Uh, Shadow's asking about upgrades to the virtual keyboard system.
Um,
yeah, we wanna do like, a full input binding thing.
So a good example might be say, you don't want to use WASD.
I know some people use other items. IJKL is is common for certain,
um, left handed people, apparently or something. I don't know.
Um but, uh,
would be able to sort of re edit that. And at that point, it would be a lot easier to do.
Sort of sort of keyboard stuff. Thank you for clarifying again. FIA.
But what I what I I don't understand. Is is after the operation.
It's
like negative one means move. Oh, it's a S. It's Oh, OK, so zero is Don't move it.
Negative one is, but is negative one. Move B before a or a before B. Or like,
uh,
maybe I should make a poster like stick it to my wall.
I once, uh, wrote on a post it note the, um, mixed operation, um, rules, Right?
If you do like, um, like two plus minus,
um, five. Right then, like plus minus is a minus,
et cetera. I had I had those rules written a post it note.
Oh, it will float up. Yeah, I. I get the waiting et cetera.
I just I don't understand which one moves a moves we're testing for, like moving a
Sorry I zoned out for a second.
Um, I'm I'm still not getting it, but I,
I don't think I'm explaining my my issue with it effectively because I'm getting
like, similar answers back.
It's no problem for I'll just write some code in, like, a test project and
figure it out.
Uh,
and then I'll document it in a way that
my brain understands Cos my brain's not understanding that,
and like I get that, that's like a full explanation of what's going on there.
But my brain is just making monkey noises. When I read it,
I'll I'll see what I can do.
But anyway, um,
that thing there is meant to decide which URL is picked first to try and connect.
Uh, looking through, I don't see Archie, and I do have no, we did that.
One Shadow's questions answered
like,
um,
I
compare her. No,
I compare her. There we go.
I
want W three schools right now. Like look at it. So,
um,
Logan says,
do you think there would ever be an
official front end for a headless management created?
Yeah, maybe.
Um, what we wanna do, uh, remember is we wanna always have the, like,
the headless software for you guys to run your own.
Um,
but we also wanna set up something sort of akin to
Minecraft realms where we just take care of it for you.
Right. So
you send us a little bit of money, we make a he
list for you, and then we can We can handle it via that.
And at that point that would need a management panel.
Um,
and it would be probably similar to a management
panel you might see for other game servers.
Um, you know, if you just like I don't know,
Google CS go server and go make one like that sort of panel.
Um, And if we have that sort of panel for realms
or whatever we're gonna call it, um, then it makes sense to, like,
maybe make that available to to other headless people.
Uh, shadow says I don't have I haven't understood the question,
so I'll go ahead and read it again.
Uh,
yeah, that's not the virtual keyboard. Um,
pragmatically move the cursor select stuff. Yeah, that's not the keyboard.
Yeah, I. I don't know about that one. Unfortunately, where are we? W three schools.
Sort
of.
That doesn't help because it's got, um
I'll just look that up later. I don't have time for it right now.
Thank you for trying for ex, uh,
loins
talks about, uh, our realms. I'm just gonna use that term as like, an air quotes,
uh,
would make it more a little bit more affordable than you.
Just going to server providers on our own,
uh, but that would take a bit of planning to understand the logistics.
Um,
yeah.
We'd have to do,
like mathematics to figure out like what our price point would be on those.
Um,
but once we hand out a price point and we get it all automated,
the clear part there being automated,
um, it would be quite easy.
We'd probably need, like,
a dedicated engineer to work on that sort of set up for a while.
And then we might even need, like, some sort of support help, uh, going forwards,
particularly if we get, like, a large number of of realm users.
You know? Say we had I don't know. Say we had, like, five realms going right.
We don't need dedicated staff for that, but if we had, like, 1000 realms going,
we would need, like
I dedicated person to look after that.
OK, next question.
Uh, exorcist, Can I use my, uh,
patreon to host a head list for another user as a paid service?
Similar to how M MC hosting companies work? Uh, yeah, sure.
If you do that, you gotta make sure, um, like that your pricing model is good. Like
otherwise, they'll just buy the patreon level that allows it to be hosted.
I know some people do it already, Um, for, like, friends and stuff.
They're like, Yeah, I'll give you a hep
I'll set it up blah, blah, blah, blah.
Um,
yeah,
well, thanks to, uh, thanks to
Svein. Um, shout out to
sin in the in the chat.
They're actually in there cos they forgot their headphones or something.
Uh, if I push the correct buttons, which, of course, I'm not doing because
that's difficult
and I scroll down. Um,
it was cold outside. It's OK. Uh,
Svein
sent me two Dell OptiPlex, uh, from his pile of E waste.
And I've I've I've set them up there, and there's a picture of dog for scar.
Uh, they are very small. They also have cool names.
None of these photos are in complete focus because, uh,
the dog won't stay still when he's wet.
But, uh, I
promise this is context.
Um, when um when his nose gets wet, it gets all spotty and and freckly,
and it's cute. It was raining yesterday.
Oh, that's that horrible photo I took today.
He pistol over his leg and I took a photo for some reason.
Anyway, there we go.
I
don't think we've got any additional questions.
Um, and like I said, I've got, like, a a tight deadline here.
So I'm gonna go ahead and start closing things off here.
Um and
yeah, I think that's that's That's it.
Where am I looking for now? Yes. Here's where I'm looking for.
So quick reminder. My dog has her own instagram. There it is.
Um and, uh, see you later. Bye
bye.