Roblox Devs, stop misusing :WaitForChild()!

Поділитися
Вставка
  • Опубліковано 9 лют 2025
  • WaitForChild() is misused all the time, and I'm guilty of it too. Hopefully, this video will shed some light on when and when NOT to use WaitForChild()!
    Have you ever wanted to learn Roblox Studio and Roblox Scripting? Check out my course: bit.ly/LuaScri...
    Use code CODE_LUAU for 33% off!
    My linktree:
    linktr.ee/crus...
    Have fun scripting!

КОМЕНТАРІ • 445

  • @crusherfire1
    @crusherfire1  Рік тому +136

    Do you know someone who is horribly mistreating and abusing WaitForChild()?!?
    Send em this video and let the WaitForChild abuse finally end!

    • @Czectly
      @Czectly Рік тому +7

      i spam findfirstchild() way to much lmao even when it already exists sometimes

    • @Czectly
      @Czectly Рік тому

      0:48 does anybody actually do that? i've never seen people on dev forum post anything like that

    • @Czectly
      @Czectly Рік тому +1

      7:00 never seen anybody make that mistake

    • @crusherfire1
      @crusherfire1  Рік тому +7

      @@Czectly
      "does anybody actually do that?"
      Oh 100%, especially any beginners who don't really know about WaitForChild. When I first learned scripting, the tutorials I watched had people doing that lol

    • @Czectly
      @Czectly Рік тому

      off topic but do you know what ConnectParallel() is any time i type function it has came up and their is like little to no info online about i tried messing around with and couldn't figure out what it did i have over 2 years of lua coding experience. every time i connect function it auto pops up and i want to know what it is badly even if it's useless engine feature @@crusherfire1

  • @mrstarfish
    @mrstarfish Рік тому +264

    The habit is so built in, anytime I don’t see WaitForChild at the start of my scripts I always get the feeling that a laggy client will end up erroring everything, my palms get sweaty, knees weak, arms get heavy.

    • @SilliousBillious
      @SilliousBillious Рік тому +43

      Mom’s spaghetti 🤑

    • @Raykiv
      @Raykiv Рік тому +3

      @@SilliousBillious The next lyric was about Vomit on a sweater >:C

    • @SilliousBillious
      @SilliousBillious Рік тому +8

      @@Raykiv ye ik it’s like there’s vomit on his sweater already I just said that cuz it’s a funny line lol

    • @thex2983
      @thex2983 6 місяців тому +12

      He's nervous, but on the surface he looks calm and ready, to write codes.
      But he keeps on forgetting what he wrote down
      The output goes so loud.
      He opens his script but the codes won't come out.
      He's burning out.
      All the code is broken now.
      The clock's run out.
      Time is up, over blow!

    • @notfakepixxel
      @notfakepixxel 6 місяців тому

      @@thex2983 To find it's finality, get script locality
      Breaking your habit, it's broke, WaitForChild() you spoke, just far too easily
      No, he won't have it he knows
      His whole back's to this code, it don't matter it's broke
      He knows that but he's stoked, he's so stagnant
      He knows, when he goes back to this broken code, that's when it's
      Back to the pad again, yo this old game series
      Better go capture this moment and hope it don't pass him...

  • @bongoz8160
    @bongoz8160 Рік тому +715

    waitforchild can sound really wrong if its not specified to be about programming 😭

    • @jso1
      @jso1 Рік тому +196

      "GetChildren" 😂😂

    • @ZylithDev
      @ZylithDev Рік тому +196

      ClearAllChildren()

    • @XaneMyers
      @XaneMyers Рік тому

      Instance.ChildRemoved:Wait()
      ​@@ZylithDev That reminds me of how censored Roblox's method's name is. In GZDoom (Doom source port), there's a DECORATE function named “A_KillChildren”.

    • @CrazyDoodEpicLeaves
      @CrazyDoodEpicLeaves Рік тому +98

      FindFirstChild

    • @boblox_studio_dev
      @boblox_studio_dev Рік тому +4

      @@SpinnySpiwal let me see

  • @wheatwhole_
    @wheatwhole_ 10 місяців тому +21

    your server replication explanation made multiplayer games very easy to understand

  • @bryaaaaaaaan
    @bryaaaaaaaan Рік тому +223

    Steven Hawking definitely used Waitforchild()

  • @cupdoesvideos5853
    @cupdoesvideos5853 Рік тому +126

    I know someone who has waitforchilditis. This video was very informative for helping me cure them

    • @crusherfire1
      @crusherfire1  Рік тому +38

      It's truly a terrible disease 😔

    • @TheDevelopmentHive
      @TheDevelopmentHive Рік тому +6

      ​@@crusherfire1 I had waitforchilditis. Thank you for this cure!

    • @Monkeymario.
      @Monkeymario. 6 місяців тому +1

      @@TheDevelopmentHivei had waitforchilditis but i recovered before i watched this video

  • @SpiralAPI
    @SpiralAPI Рік тому +82

    bro gave a better explanation of replication in a video about WaitForChild than most videos which entire purpose is explaining replication

    • @Noober_0
      @Noober_0 6 місяців тому

      I finally have a quick video to explain for me instead of explaining it myself and sounding like im yapping ❤️

    • @baconheadhair6938
      @baconheadhair6938 Місяць тому

      @@Noober_0maybe dont yap then

  • @ItsHunderr
    @ItsHunderr 10 місяців тому +12

    everytime i script, i think about this: we don't wait for child, we find the childs

    • @notmonotoli
      @notmonotoli 6 місяців тому

      so that means we FindFirstChildWhichIsA(Dumbass)

    • @thistaken5550
      @thistaken5550 2 місяці тому +4

      childs 💀

    • @ItsHunderr
      @ItsHunderr 2 місяці тому +1

      @thistaken5550 😭 relax, its the other meaning

    • @thistaken5550
      @thistaken5550 2 місяці тому

      @@ItsHunderrwhat... no i mean its "children"

  • @MatteoP04ita
    @MatteoP04ita 11 місяців тому +9

    Astonishing video. I'm going to remove all "WaitForChild" from my scripts right now

    • @fusion.studioX
      @fusion.studioX 2 місяці тому +1

      Client-Sided Scripts:
      "Part is not a valid member of Workspace"

  • @MarzFromMars
    @MarzFromMars 10 місяців тому +3

    thanks bro this is gonna cure my WaitForChilditis

  • @Monkeymario.
    @Monkeymario. 6 місяців тому +19

    3:07 fun fact on older versions of ROBLOX the client used to be able to replicate to the server but due to exploiters the client can now only replicate their avatar and nearby unanchored parts but nothing else

    • @paperguyRBLX
      @paperguyRBLX 5 місяців тому +1

      this was due to filtering disabled still existing allowing users to replicate the stuff from server to every client

  • @TheOVRD
    @TheOVRD Рік тому +21

    WaitForChild() sounds exactly like something an adult roblox player would use and abuse in their life.....

    • @Matute44523
      @Matute44523 4 місяці тому +2

      FindFirstChild() sounds more like that

    • @Bulderme
      @Bulderme 4 місяці тому +2

      GetChildren() seems more accurate

  • @JavonDevv9000
    @JavonDevv9000 Рік тому +19

    this is why when you get to the end of an obby game and use those fly paths no one else can see it

    • @MatchaFlavoredTea
      @MatchaFlavoredTea 10 місяців тому +20

      Fun fact, fly paths have been in ROBLOX for over a decade. A lot of the tools were coded before server-client filtering was put in place. Back then, clients could do nearly whatever they wanted which was a huge security issue, including spawning bricks replicated to other players.

    • @bruv4179
      @bruv4179 10 місяців тому +2

      @@MatchaFlavoredTea woah that's really interesting, thanks for the fact

    • @NewPuncher
      @NewPuncher 6 місяців тому +2

      me when I lie

    • @Jonskipvp
      @Jonskipvp 6 місяців тому +2

      ​@@NewPuncher fr

    • @yourmomscott
      @yourmomscott 3 місяці тому

      i dont think thats how that works

  • @Ghillis_Peyton
    @Ghillis_Peyton Рік тому +5

    now i gotta go back to all my scripts and fix this lol. Great video!

  • @Hyllested_
    @Hyllested_ Рік тому +9

    A great example of when you should use WaitForChild that you kind of missed is character loading.

    • @crusherfire1
      @crusherfire1  Рік тому +10

      That would fall into the category of instances created during runtime, so yes, use WaitForChild!

    • @XaneMyers
      @XaneMyers Рік тому +2

      ​@@crusherfire1Well, for this, either WaitForChild() or Player.CharacterAdded:Wait() works.

    • @crusherfire1
      @crusherfire1  Рік тому +3

      @@XaneMyers
      Yes, and also if you needed to access any descendants of the character, make sure to use WaitForChild!

    • @XaneMyers
      @XaneMyers Рік тому

      @@crusherfire1 Player characters are tricky to reference and access, so I use my own module to store all of my character instance references. (I do use WaitForChild() while getting them, though.)

    • @shinyindividual12
      @shinyindividual12 Рік тому +2

      local character = player.Character or player.CharactedAdded:Wait()

  • @Yuicloud
    @Yuicloud 10 місяців тому +3

    Pretty sure you can do
    Repeat wait() until game:isloaded(); as well instead of waitforchild

    • @crusherfire1
      @crusherfire1  10 місяців тому +8

      That would be unnecessary polling of a condition when you can listen to an event instead (game.Loaded)! Also, wait() is deprecated and task.wait() should be used for new work!

    • @Yuicloud
      @Yuicloud 10 місяців тому

      ​@@crusherfire1 Yeah, I forgot about task.wait(), you can use task event as well. But Repeat task.wait() until game:isloaded(), will still make the job done and it's minor computational resources even if it isn't the best practice it's still somewhat reliable.

    • @Yuicloud
      @Yuicloud Місяць тому +1

      @@crusherfire1 It was just an example, I know wait() is deprecated and not recommended to use. And the better thing to do is task.wait(), I am just lazy to type LOL

  • @squify7226
    @squify7226 Рік тому +19

    EXACTLY! I didn't use waitforchild unless it would break when I didn't use it because it wouldn't load, or when I needed to use it, I was always confused why people spam waitforchild like every line of code

    • @Im557
      @Im557 Рік тому

      wait why are you being confused over how someone else codes?

    • @squify7226
      @squify7226 Рік тому

      because waitforchild is not supposed to be used every time, only in certain instances, so i was confused why everyone just spammed it every line of code instead of writing code how its intended to be written and save time@@Im557

    • @FloxyCola
      @FloxyCola 7 місяців тому +4

      @@Im557 Confused over the unnecessary use of the :WaitForChild() function. And it isn't "how someone else codes", it's completely useless, and a waste of time to write.

    • @Im557
      @Im557 7 місяців тому

      @@FloxyCola this was 4 months ago

    • @FloxyCola
      @FloxyCola 7 місяців тому +3

      @@Im557 And I just found the video :)

  • @goodplayer7048
    @goodplayer7048 11 місяців тому +2

    Did you guys really spend 17 mins watching THIS?

  • @sowmyam6176
    @sowmyam6176 10 місяців тому +3

    This helped alot! Also i'm sure :WaitForChild() can also be used in hetting the player's character as unlike many who use *_player.Character or player.CharacterAdded:Wait()_*
    Some use *_Workspace:WaitForChild(player.Name)_* right?

    • @Secrethack_
      @Secrethack_ 8 місяців тому +2

      Not the best option as there might be another object in the workspace with the same name as the player.

    • @SaleMales
      @SaleMales 6 місяців тому

      @@Secrethack_ that's why character added exists tho
      You can also put players in folder (It requires character added too)

    • @Spelo1
      @Spelo1 6 місяців тому

      ​@@SaleMalesI don't think they were against characteradded tho

  • @3mperorexe
    @3mperorexe 7 місяців тому +1

    Hi just wanted to say thank you! Me and my friends are learning lua rn and this video will hopefully help us from making a bunch of mistakes!

  • @brawldude2656
    @brawldude2656 6 місяців тому

    This was the problem for me. It is hard to find in what order exactly these local and server sided stuff are loading in. Thank you for making this video

  • @RealDavidStuff
    @RealDavidStuff Рік тому +5

    This is a well-made video, explaining extremelly well the use of :WaitForChild(). This was definitely worth the 17 minutes. This particularly helped me to fix an error on my script that i did not know how to fix.
    Good job man, keep going!

  • @6t-11
    @6t-11 3 місяці тому

    Did not know this was how network ownership worked - thanks! 3:44

  • @lazypezt810
    @lazypezt810 Рік тому +3

    Unironically a banger explanation
    I will go home and fix some parts of my script now
    Also i genuinely learned much more about replication on this video than anything else lmao

  • @tact310
    @tact310 Рік тому +7

    This is one of many times where I'm actually ashamed of myself after watching a video 😅 I have been using waitforchild method in pretty much all of my variables in my local scripts, trying to access stuff that is already loaded in the client like you mentioned. I genuinely didnt like using waitforchild everytime whenever I want to access an instance but I felt it was necessary. After this video I'll definitely have to go on rehab and stop using waitforchild haha... Good video!

    • @crusherfire1
      @crusherfire1  Рік тому +5

      Your WaitForChilditis has been cured!

  • @y0y55
    @y0y55 5 місяців тому +1

    I like that at random moments you start to sound like squidward

  • @Bemmu
    @Bemmu 4 місяці тому

    Another topic I'd watch a video on would be when are things actually loaded into memory. For example, faraway part has a texture on it: is consuming memory? ReplicatedStorage part texture? Gui texture but .Visible = false. etc etc there are many cases where it's unclear what needs to be preloaded because it isn't loaded when you think it would be, or on the other hand cases where something is loaded that you wouldn't want to be and is just wasting memory.

  • @kirixltsver
    @kirixltsver Рік тому +1

    A "Child" is basically a object. For those who think its weird to call a Function in a Programming Language like that. But what about "Parent" which is a Folder...

  • @Kryst0v
    @Kryst0v Рік тому +3

    Roblox studio is basically the engine made for these who tired Unreal but got traumatized from the struggle to set up a simple dedicated server

  • @baconheadhair6938
    @baconheadhair6938 6 місяців тому +3

    0:47 Everytime i dont put waitforchilds in every line, my code works in studio but breaks in actual games

    • @SaleMales
      @SaleMales 6 місяців тому

      Don't know about server (Server don't need these)
      But in client it is probably loading smh faster or have things pre-loaded

  • @desicape
    @desicape 29 днів тому

    4:02 thats why hackers can manipulate unanchored objects in natural disaster, so if StickMasterLuke, do an loop on every part, and sets network ownership to nil, that problem will be fixed or isnt?

  • @vfisha
    @vfisha Рік тому +3

    that random model of parts looks cool you should leave it in the description

    • @crusherfire1
      @crusherfire1  Рік тому +4

      You can make it yourself via the command line! Just create 500-1000 parts, color them randomly, size them randomly, and then position them randomly.

  • @yllcoat
    @yllcoat 9 днів тому

    a ton of devs need to stop waiting for children, lets be real.

  • @Laqota
    @Laqota Рік тому +6

    Here's an easier way to explain it.
    Look at it as the Server and the client. The server has to send information to the client, our internet isn't godspeed, so it has to take time receiving this information. Which we call Ping. Milliseconds it took to receive the information.
    Same for the Server. If you're on the client waiting for a part being created by the server by sending you packets of data, you want to use WaitForChild to wait for that part to exist.

    • @FloxyCola
      @FloxyCola 7 місяців тому +2

      Did he not basically say that in the video?

    • @SaleMales
      @SaleMales 6 місяців тому +1

      Even better is (probably, not absolutely sure, kind same thing you said)
      Probably better cuz easier to understand sometimes
      Server have already loaded in, the reason you need to use WaitForChild at server-side only if you sure that this thing won't exist (meaning it will not be there from start of game) when that code is launched
      At client (player) you have to use WaitForChild since we don't have anything loaded in and have to load that in, and if this haven't loaded when some part of code is launched which using Instance, it will cause error, thats why you use WaitForChild
      But ofc at client you can pre-load things like GUI's by putting them in ReplicatedStorage and using game:IsLoaded() and game.Loaded:Wait() (As I remember), and then for that gui you don't have to use WaitForChild at it anymore (Probably, I don't use this anyway)

    • @canyouhelpmehuh411
      @canyouhelpmehuh411 5 місяців тому

      Nice

  • @Monkeymario.
    @Monkeymario. 6 місяців тому +2

    1:46 a better way to illustrate this would be to show a computer instead of their face

  • @SameForYouWasTaken
    @SameForYouWasTaken 4 дні тому

    ill keep on waiting for children.

  • @_k.
    @_k. Рік тому +3

    7:00 This part is wrong. (edit: no im wrong, at some point they changed things) Quote from the PlayerGui page in the roblox documentation:
    "When the player's Player.Character spawns for the first time all of the contents of StarterGui are automatically copied into the player's PlayerGui."
    And since its cloned by the server, you need to make sure it's replicated. A workaround is to not use startergui at all and clone stuff to playergui through a local script

    • @crusherfire1
      @crusherfire1  Рік тому +2

      Nope. Please go ahead and test it yourself, I already have.
      If you have a local script inside of the Gui in StarterGui, you do not need to wait for the replication of the descendants.
      If you have a local script outside of StarterGui trying to grab the GUI, you only need to wait for the GUI itself to be cloned into the PlayerGui folder. However, you do not need to wait for the descendants.
      I have dozens of local scripts for GUIs not even located in StarterGui and I only need to wait for the GUI itself, there is no need to use WaitForChild on any descendants of the GUI.
      This is probably specialized behavior only for the StarterGui container.

    • @_k.
      @_k. Рік тому

      @@crusherfire1 tried it, you're right. but this doesn't even make sense with what you're saying at 5:49, the gui is cloned by the server at runtime right? or is there just an exception for this cloning to work differently? i swear it wasn't always like this

    • @crusherfire1
      @crusherfire1  Рік тому +1

      @@_k.
      Yes, the GUI is cloned by the server. You can prove that by listening to the ChildAdded event on both the client and server for the PlayerGui folder, and you will see it is added on the server first and then the client.
      Now cloning is a synchronous operation, so it would make sense for all of the descendants to be made available (if cloning an object on local script to be accessed by another local script or server script to be accessed by another server script).
      But with the StarterGui service, the behavior is a little more interesting since it being cloned by the server yet we don't need to wait for the descendants of the GUI. There must be some kind of special behavior going on behind the scenes that isn't well documented. However, I guess this would make sense because in the past you would actually have to use WaitForChild when accessing the PlayerGui folder since it was created by the server, but Roblox did something internally where you don't have to use WaitForChild.
      Another developer did some tests and also confirmed that you don't need to use WaitForChild.
      devforum.roblox.com/t/local-script-under-s%D1%81reengui-runs-only-after-all-gui-descendants-are-fully-replicated-to-playergui/2510092

    • @_k.
      @_k. Рік тому

      @@crusherfire1 alright, thank you!

    • @_k.
      @_k. Рік тому

      they really made waitforchild unnecessary for gui at some point between july and august without telling anyone...

  • @Monkeymario.
    @Monkeymario. 6 місяців тому +1

    6:59 STOP DONT USE WAITFORCHILD

  • @myriadtechrepair1191
    @myriadtechrepair1191 9 місяців тому

    Wait so this is why the game freaks out when, say, multiple people are sitting on a moving physics object?

  • @noobiza
    @noobiza 6 місяців тому +1

    My Dad had in his programing :WaitForChild(Never).

  • @Monkeymario.
    @Monkeymario. 6 місяців тому +1

    3:35 and most importantly permission to move your ROBLOX avatar

  • @sleekpastry
    @sleekpastry 6 місяців тому +1

    You can't stop me

  • @amooingdog3297
    @amooingdog3297 6 місяців тому +1

    They can't WaitForChild to grow up

  • @DimoDimoo
    @DimoDimoo 10 місяців тому +1

    How about for GUIs? Like if you place your GUI scrips inside somewhere else like StarterPlayerScripts

    • @crusherfire1
      @crusherfire1  10 місяців тому +2

      You would need to use WaitForChild on GUIs being cloned to the player's PlayerGui folder in scripts that are outside of that particular GUI.
      Fortunately, however, you do not need to use WaitForChild on any of the GUIs descendants!

    • @DimoDimoo
      @DimoDimoo 10 місяців тому +1

      @@crusherfire1 So like, I just need to do a WaitForChild for each of the ScreenGUIs under PlayerGUI? Thank you, this video is incredibly helpful!

  • @Jaypiasco
    @Jaypiasco Рік тому +1

    ogod I feel called out sm, please hab mercy for i have sin of WaitForChild misuse

  • @TylerXPS12
    @TylerXPS12 Місяць тому

    Broo I am learning extra stuff which I needed . I now know how to use waitforchild without knowing How to use it

  • @shadowstorm202
    @shadowstorm202 Рік тому +1

    the poblem of FindFirstChild is when the instance load after the script of FindFirstChild and it don't find it

  • @FreyzS
    @FreyzS Рік тому +3

    are you using theme? how to make my roblox studio look like yours?

    • @crusherfire1
      @crusherfire1  Рік тому +3

      It's just modifications to some script editor settings in Studio. There is a plugin you can grab that has several presets available to choose from:
      create.roblox.com/store/asset/3617323299/

    • @FreyzS
      @FreyzS Рік тому

      @@crusherfire1 thank you

  • @exentric753
    @exentric753 11 місяців тому

    Missed opportunity to say "WaitFor Child Abuse"

  • @Bulderme
    @Bulderme 4 місяці тому

    I do admit that I have a WaitForChild() problem. I need to fix myself and recover some memory lol

  • @Azralik0_0
    @Azralik0_0 Рік тому +2

    i am yuri, i also wait for child outside playground so i can take them home.

  • @Real_Potato_Man
    @Real_Potato_Man 9 місяців тому

    Simple solution: just don't wait for the child

  • @justwave3407
    @justwave3407 Рік тому

    i never knew i had waitforchilditis, but after seeing this i got cured

  • @teaoplayinggames
    @teaoplayinggames 5 місяців тому

    we aint waiting for any child

  • @tomato.mp4
    @tomato.mp4 6 місяців тому

    lazy method: just never use waitforchild until it errors

  • @deoverseers
    @deoverseers Рік тому +6

    I use ".", but if an object is added, I use waitforchild, or I use findfirstchild when eoblox messes up and guves me a random error when the object CLEARLY IS A MEMBER

  • @selo_the_great
    @selo_the_great Рік тому

    Hey, i have a question. So i got a bit confused for the part about using WaitForChild for screen guis descendants (timestamp: 6:56) because even offical templates and other free resources made by roblox use WaitForChild to wait for ScreenGuis descendants which made me a bit confused. Are you completely certain that direct indexing like that for gui descendants is failproof and will never fail or is the people at roblox forgot that they don't need to do that?

    • @crusherfire1
      @crusherfire1  Рік тому +3

      "people at roblox forgot that they don't need to do that?"
      A lot of Roblox scripts are outdated. Many still use the legacy wait(), spawn(), and delay() functions.
      You can test it yourself, and as confirmed by another developer,
      devforum.roblox.com/t/local-script-under-s%D1%81reengui-runs-only-after-all-gui-descendants-are-fully-replicated-to-playergui/2510092
      you do not need to use WaitForChild() on GUI descendants that are copied over from the StarterPack.
      I have dozens of GUIs in my projects and I don't ever use WaitForChild() for any of the descendants. I don't get any errors, ever.

    • @selo_the_great
      @selo_the_great Рік тому

      @@crusherfire1 thanks for the clarification, i tested it and it works perfectly! although the new updated "Racing" template code which was released on the 23th of January (like 4 days ago) STILL uses waitforchild for descendants of the screen gui and they even put this comment above the code, this is the code snippet i am talking about:
      -- RaceGui gets automatically cloned from StarterGui and may not be fully replicated when this script runs.
      -- Use WaitForChild to wait for the necessary instances to replicate.
      local raceGui = playerGui:WaitForChild("RaceGui")
      local uiScale = raceGui:WaitForChild("UIScale")
      local countdownLabel = raceGui:WaitForChild("CountdownLabel")
      local finishFrame = raceGui:WaitForChild("FinishFrame")
      this is very recent so i guess they did forget they don't need to do this...

  • @tower9602
    @tower9602 4 місяці тому +1

    For adhd people:
    - No need to use on server except if we are waiting for child inside of cloned instance
    - No need to use it on ReplicatedStorage/Lighting instances unless the code is run from ReplicatedFirst

    • @Drezmoth
      @Drezmoth 4 місяці тому

      we need more people like you

  • @voxj.
    @voxj. 3 місяці тому

    i won't wait for child

  • @devandyEsp
    @devandyEsp 9 місяців тому +1

    It looks ugly if you use them unnecessarily

  • @someguystudios23
    @someguystudios23 Місяць тому

    I feel lucky that ive never felt the need to daisy-chain waitforchilds.

  • @Kagedaze
    @Kagedaze Рік тому +2

    as a man who likes waiting for children and the touched event, I found this video extremely helpful.

  • @usernamehere_
    @usernamehere_ 6 місяців тому

    I’m gonna guess before I even watch this is that WaitForChild shouldn’t be chained.

  • @YHK_YT
    @YHK_YT 10 місяців тому

    12:41 with the recent audio api update I’ve ram into issues wiring stuff since the script is running before everything loads, if I use a waitforchild on for example a parent of an object but that object has children it’ll still give me an error since the child didn’t load yet, I’m confused as to how yours isn’t the same since you mentioned the script only runs after everything loads?

    • @crusherfire1
      @crusherfire1  10 місяців тому

      Are your instances in the workspace? If you have streaming enabled + items in the workspace, you'll have to use WaitForChild, otherwise, you won't need to if streaming is disabled.

  • @goldencommenter
    @goldencommenter 6 місяців тому +3

    dads spam that in their code 😂😂😂

  • @aggelosag4982
    @aggelosag4982 4 дні тому

    Bro am I just the only one using the dot operator💀

  • @Mr.Smiler1
    @Mr.Smiler1 Рік тому

    when scripters need to wait for a child comes out from school:

  • @Wannabe-channeL
    @Wannabe-channeL Рік тому +1

    I only used it when that object can exist only one and never be deleted, mostly at the top of the script when I need a reference of something.

  • @ครูไชยวิทย์

    Why

  • @execute214
    @execute214 Рік тому +2

    the wait for child chain

  • @Edgeplayz-off
    @Edgeplayz-off 15 днів тому

    why was there a delay in movement of the player in the server

  • @Winter-Moons-was-taken
    @Winter-Moons-was-taken 4 місяці тому

    Very informative, thank you.

  • @Kart
    @Kart Рік тому

    thanks i have never not used wait for child ever and now i might not use it as much maybe

  • @tomato.mp4
    @tomato.mp4 6 місяців тому

    Video:WaitForChild("Tomato"):WaitForChild("Comment"):WaitForChild("TextLabel")

  • @aGuyWhoWantsToSudyIGuessEGYbtw
    @aGuyWhoWantsToSudyIGuessEGYbtw 11 місяців тому

    Amazing Tutorials Thx For The Help

  • @bmfnatedogg
    @bmfnatedogg Рік тому

    to be honest the only time i acctually used it was when a item you had to pick up would just kill the user getting it so i just made a script for the player that waits for the child to hold it then enabled its scripts

  • @埊
    @埊 Рік тому

    Me who uses the WaitForKing() variable instead as it is more powerful:

  • @m3s5_0f_numb3r5
    @m3s5_0f_numb3r5 Рік тому +3

    Learned a lot from this video,
    and none of it had to do with WaitForChild() 😂
    But no really lots of small stuff I didn’t know about. Good video. 👍

  • @Termoz
    @Termoz Рік тому +1

    literal child abuse...

  • @ballticker69420
    @ballticker69420 Рік тому +2

    great video, but im going to continue misusing it

  • @Monkeymario.
    @Monkeymario. 6 місяців тому +1

    oh also devs stop missusing GetService most of the time it's useless

  • @Zenrinity
    @Zenrinity 9 місяців тому

    stop calling me out bro i literally have 15k instances of code in my skill handler that use wait for child, i don’t think i can change it man

  • @Spooky.Studios
    @Spooky.Studios Рік тому +2

    in local scripts, i add this to the first line: (especially if it's replicated first, if not i just use it in scripts that runs right after replicatedfirst)
    if not game:IsLoaded() then game.Loaded:Wait() end
    it helps me alot and sometimes i don't even need to use :WaitForChild() at all

  • @Flairex
    @Flairex 8 місяців тому

    Let me just whip out my notebook

  • @ilovemywhiteshoes
    @ilovemywhiteshoes 6 місяців тому

    why did this show up in my recommended thing?????

  • @glexix1151
    @glexix1151 6 місяців тому

    Thank you! That was helpful

  • @f-149
    @f-149 Рік тому +2

    Yeah I've seen byteblox doing that. It completely irritated me.

  • @life-in-it
    @life-in-it Рік тому

    Guys, let's WaitForChild() !! (take it in a different context)

  • @linuskat6446
    @linuskat6446 Рік тому +2

    Don't use wait() use the task library instead which has task.wait()

    • @crusherfire1
      @crusherfire1  Рік тому +2

      Of course. The code that had the wait() in it was written before the task library was released.

    • @liqznaa
      @liqznaa Рік тому

      apparently it ruins something, i think performance? but thats what ive heard on devforum + im not a scripter@@wwa-du7jw

    • @a_username_lol
      @a_username_lol Рік тому

      @@wwa-du7jw wait has weird delays if u have low fps i think but im not sure

  • @skcarti
    @skcarti 6 місяців тому

    can you make a video about your script editor? whats the font ur using?

  • @bigboy8285
    @bigboy8285 Рік тому +2

    indeed, go get the milk instead.

  • @AmCheez
    @AmCheez 6 місяців тому

    Hey, I have the exact opposite problem where I don’t use it at all…
    Do you have a video that cures that?

  • @jasonsgone
    @jasonsgone 11 місяців тому

    im sad that this is all basic knowledge to me but i still suck at scripting

  • @WindyPivot
    @WindyPivot 11 місяців тому

    are you going to continue doing things like this? cuz u got a new sub fr

  • @BodenPflanze
    @BodenPflanze 6 місяців тому

    How did you do the split screen with both Client and server view. I usally switch between them (when im working on client scripts) which is kinda annoying

  • @yuuwa_rblx
    @yuuwa_rblx 6 місяців тому

    But... consistency!!!

  • @defenestratorr
    @defenestratorr Рік тому

    So do we even need to use it at all, ignoring streamingenabled?
    Time to rewrite 90% of my large scale game's code 😭

    • @crusherfire1
      @crusherfire1  Рік тому

      You only need to use it for instances created during runtime. If you do not have streaming enabled, then you don't even need to use WaitForChild on the static instances in the workspace. (Static meaning instances downloaded from the snapshot when a player joins the game).
      Any dynamic instances (instances created or destroyed during runtime) should be handled with more care.

  • @blingbongbong
    @blingbongbong 3 місяці тому

    what about getService? why don't we just index things from game?

  • @PellerN64
    @PellerN64 Рік тому

    i cant believe all these months ive been doing it wrong

  • @dhruv6489
    @dhruv6489 Рік тому +2

    but whats the problem even if you use waitforchild, i dont think there any implications to use it right

    • @crusherfire1
      @crusherfire1  Рік тому +6

      Well first off, chaining a whole bunch of WaitForChild function calls takes much longer to type than directly indexing.
      Secondly, it makes your code harder to read.
      Thirdly, WaitForChild shouldn't be used when you don't need to wait for a child, it's a gross misuse of the function.
      If you want to save time typing (which is a big deal when programming) and you know you don't need to use WaitForChild, then don't use it lol

    • @jso1
      @jso1 Рік тому

      so it doesnt affect performance? ​@@crusherfire1