Developer Office Hours


There are a number of different art-related office hours posted to the Calendar, but there is nothing for programmers. Last year, James ((former JS HiFi dev)) graciously provided Javascript office hours on my domain.

I would like to request @realMissLiviRose provide office hours to the public so that we may ask questions regarding hiccups we experience along our programming journey.

Meeting with someone in a training atmosphere is beneficial because not everyone learns by reading a tutorial.

Example of questions that I have personally:

• Entities now have a ‘server script’ property. Why?
edit - through digging I found this from @Menithal >> Server side scripts were silently introduced that allow you to create scripts that are attached to an entity that only run on the server. Without having to create a separate assignment client script.

• Why are there two scripts per entity one for Client one for Server?
• What is a heartbeat and why is it needed?
• Is there a downside to hardcoding a message channel?
• Can a js utility library be created BY High Fidelity Inc. that abstracts many frequently needed game-relevant objects, like health bars, hit points, difficulty levels, and possibly even basic AI?

Lastly, if you’re reading this and share the same feelings of development struggles, please ‘like’ the post. I know I’m not alone here…

cc: @Anshuman


I think this is a great idea. I understand not all of our changes are well-documented and we’d love to be able to answer the questions you have. Let me talk to the right people to see if this can happen!


Cool idea I’m forever chatting to coders even experienced ones who can’t quite figure out how to get started coding for hifi. Or just get stuck


We’re looking at hiring someone who will be able to focus more on programming-related events in-world, since I’ve switched roles internally to focus on development. I think office hours are a great event type to surface up to the person who fills that role in the future. :slight_smile:

To answer your other questions:

  • Why there are two script types: You may want to trigger a script behavior on an entity for it’s entire existence (e.g. when the entity server spins it up) or when a user’s client becomes aware of it.

  • A heartbeat is a way of keeping track of the state between various entities in a system that work together, and can be used to test that the components aren’t in a state where they’re unresponsive. You can also use this to detect or correct for lag or delay in a system component.

  • If I’m interpreting the channel message question correctly, a concern that you’d face with hardcoding a channel name to subscribe to in a script is in interference between multiple instantiations of a game. From my understanding, it’s preferable to establish a common channel and use that to set comms, so you can make sure that channels are in place that wouldn’t be hitting a conflict.

  • This is an interesting idea and I’d love to hear more about how you might expect these components to look or function. Do you see them as being a part of a game builder tool kit, pre-built entities, modules for JS, etc.?


I want to move all my content from my shop domain to the far side of crompron moors domain .
I understand i can export all the content as a json with export entities

both domains are built out from the 0,0,0 origin point if i just load the json in i will be dropping one on top of the other

can somone code me a thingy to move all the imprted stuff say a mile north?


@Judas You could use my old edit.js script: when you import a JSON a grid should be shown and you click on it wherever you’d like to import the JSON.

Actually, are you sure that the JSON isn’t imported in front of you (wherever you’re standing) with the official edit.js?


it5s just that ill be brigning in 300 things at the same time if it goes even a bit wrong it will be bad, they definatly go to their original cooridnates not to the front of me


Why does the json not have functionality to say export with existing coordinates or without any ? That’s all @judas need.

Not suprissed that soemthing like that is missing.
There’s still no easy backup functionalit for users.
The build , uhmm placement tool from hifi is still hell.

Oh, i better stop typing.


I just noticed I missed last Tuesdays “Make a VR Game” meeting at University. It appears there is one coming up next Friday.

Is this Lecture 2 in a series? Can I obtain the notes if Lecture 1 was missed? Is there a video?