Roblox Enemy NPC Tutorial - Part 1

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 พ.ย. 2024

ความคิดเห็น • 323

  • @SlothOfTheSea
    @SlothOfTheSea 2 ปีที่แล้ว +42

    I have spent many painstakingly long hours trying to learn Pathfinding and other things like this, but this was really easy to follow and somewhat easy to understand. Liked and subscribed!

  • @bonesReal
    @bonesReal 2 ปีที่แล้ว +10

    A moment of silence for this man, he didn't have coffee this morning 😢
    btw awesome tutorial my man

  • @skyflyser9463
    @skyflyser9463 ปีที่แล้ว +17

    MrModuleScript:"Now we have to deal with a nil value in our heartbeat" bro thats dark

  • @flamzy284
    @flamzy284 2 ปีที่แล้ว +8

    If it isn't moving make sure the torso or humanoidrootpart is unanchored

  • @coolcosmic4351
    @coolcosmic4351 ปีที่แล้ว +3

    Thank you, I created a enemy in roblox studio back in 2016 I believe that I wanted to make for a game, but got discouraged when I couldn't figure out how to get it to chase players. Now you've given me a basic idea on what I need to do in order to create enemies for my games.👍

    • @Zero9xi
      @Zero9xi 6 หลายเดือนก่อน

      Have u finished it yet ? what is ur user name

    • @coolcosmic4351
      @coolcosmic4351 6 หลายเดือนก่อน

      @@Zero9xi No. Also thanks to my own situatiion I don't think I will be able to finish it for quite some time.

    • @Zero9xi
      @Zero9xi 6 หลายเดือนก่อน

      @@coolcosmic4351 mk

  • @xb_desamaster8882
    @xb_desamaster8882 10 หลายเดือนก่อน +3

    This video is 1 year old but yet it helped me out so much 🥰. 3 days of looking for the perfect video was worth it, you earned a like and subscription from me.

    • @Crossans_
      @Crossans_ 10 หลายเดือนก่อน

      can you text me the script it doesnt work for me

  • @Charley1289
    @Charley1289 ปีที่แล้ว +1

    I thought it would not work, like some of the other tutorials I tried, but this guys a legend!!!

  • @rafaelbrustolin4687
    @rafaelbrustolin4687 ปีที่แล้ว +2

    Im just starting to script and your tutorial helped me more than I could ever imagine

  • @oldsci82
    @oldsci82 2 ปีที่แล้ว +6

    Awesome video!! After searching multiple different videos yours was the one that explained it all and made it easy. I liked the speed of the video, the explanation of the lines of code, and the tenor of your audio (no screaming or crazyness). Great job! I really appreciate it!

  • @alexanderhsl
    @alexanderhsl ปีที่แล้ว +4

    Thank you SO SO much. I'm making a survival game and I've been searching for a great tutorial like this! Glad I found this.

  • @ayobros7788
    @ayobros7788 ปีที่แล้ว +3

    Great Tutorial! So clear and works great. Keep it up

  • @ESTE_CHILLZ
    @ESTE_CHILLZ ปีที่แล้ว +1

    Sorry I am late, but this tutorial helped me a lot, but I didn't understand all of it, so I got the model that you put in, sorry. Great tutorial! Your voice was loud and clear, you said everything so understandable.

  • @lilfajita
    @lilfajita 2 ปีที่แล้ว +5

    Finally! I got it to work, I just had to un anchor the humanoid root part! Thanks so much for the great vid it helped me so much

  • @gointorealheaven-jj5od
    @gointorealheaven-jj5od 10 หลายเดือนก่อน

    Finally, a video that doesn't make me copy and paste the script

  • @mrmodulescript
    @mrmodulescript  2 ปีที่แล้ว +3

    Looks like the video was recorded in 720p... I'm so sorry. Woops! The next videos will be back to 1080p. Sorry if the video looks a little blurry!

  • @littlemowais3537
    @littlemowais3537 3 หลายเดือนก่อน +1

    thank u for ur helpful tutorial , u just saved me hours of learning

  • @Etohl
    @Etohl ปีที่แล้ว

    DUDE THANK YOU SO MUCH! I have been looking for hours for a script like this!

    • @Etohl
      @Etohl 10 หลายเดือนก่อน

      @@URANUS113 Yes

  • @BobSuper1
    @BobSuper1 ปีที่แล้ว +2

    Thank you so much! It took me forever to find a tutorial that i understand. You earned a like and a sub :)

  • @fhnine2698
    @fhnine2698 2 ปีที่แล้ว +1

    was desperated until I found my mistake is a syntax error in the script; now it works fine for me Thanks a lot, keep going

    • @mrmodulescript
      @mrmodulescript  2 ปีที่แล้ว +1

      Glad you got it working! Part 3 is on its way!

  • @Lakthul
    @Lakthul ปีที่แล้ว

    Thank you for this video, it helped out so much, and thanks for going slow with writing the code and explaining the important parts!

  • @tugjames4528
    @tugjames4528 2 ปีที่แล้ว +1

    I'm so happy this works with r6 as well

  • @Crippley
    @Crippley 2 ปีที่แล้ว +4

    This is so cool and I had fun following along!! I still struggle to understand the "why" for a lot of things in script as a newbie, but I'm sure it'll make sense the more I learn. thank you for this video. :^D

    • @MisterPogman
      @MisterPogman ปีที่แล้ว

      how's it going for you?

  • @Goobsterdude
    @Goobsterdude 2 หลายเดือนก่อน

    ty bro, me and my friend needed the best tutorial on this :)

  • @celestial_admiral
    @celestial_admiral ปีที่แล้ว +1

    Yoo thanks for the tutorial! it helped me a lot :D

  • @JohnnyBoi08
    @JohnnyBoi08 2 ปีที่แล้ว

    incredibly useful tutorial, cant count the number of hours ive been trying to learn how to do this. Liekd and subscribed.

  • @dababy3303
    @dababy3303 2 ปีที่แล้ว +2

    I guess I am just really dumb and did something wrong because I downloaded the script and it worked but mine did not lol. You have earned a sub man!

  • @spung0
    @spung0 2 ปีที่แล้ว +1

    Yo, i can tell this man is gonna be pretty big soon. I mean content is pretty good and he's pretty master. I just have 1 tip to get bigger. Make more tutorials that people are most likely going to search for. Like this video is a pretty good one. Keep it up!

    • @ReallyPieThings
      @ReallyPieThings 2 ปีที่แล้ว +1

      We just gotta hope he uploads more tutorials, the first 2 were helpful

  • @angelquefirestar
    @angelquefirestar 2 ปีที่แล้ว +1

    This is really helpful for making a Partygoer in my Backrooms game!

  • @FireFuzzball673
    @FireFuzzball673 2 ปีที่แล้ว +1

    thank you are the only one that i found that does not do copy and paste

  • @tateszabo9864
    @tateszabo9864 ปีที่แล้ว

    Epic video Didn't know a tutorial like this existed

  • @Thaierd
    @Thaierd ปีที่แล้ว

    This will really help with my friends game! Thanks alot!

  • @emiqus
    @emiqus ปีที่แล้ว +1

    thanks i watched this for a game with my friends :)

  • @pinhydroushere
    @pinhydroushere ปีที่แล้ว +1

    bro earned a sub faster than me looking for my dad

  • @joshcaskey9485
    @joshcaskey9485 4 หลายเดือนก่อน +1

    I can't figure out why my custom rig isn't working with the Script

  • @beanman2030
    @beanman2030 ปีที่แล้ว +2

    Workspace.Model.Humanoid.EnemyController:20: attempt to index nil with 'Position' So I created my own model and rigged it my self and tried to implement the code on it but it just pops up as Workspace.Model.Humanoid.EnemyController:20: attempt to index nil with 'Position'
    idk if its because its a four legged model instead of a r15 or r6 model but it still has the humanoid in it. I could really appreciate the help.

    • @storche211
      @storche211 ปีที่แล้ว

      I'm having the same issue,
      Workspace.Model.Humanoid.Script:24: attempt to index nil with 'Position'

    • @Spearit_S
      @Spearit_S ปีที่แล้ว

      just set the primary part of your model (usually HumanoidRootPart).

    • @storche211
      @storche211 ปีที่แล้ว

      @@Spearit_S Yep that was the problem, thank you.

  • @arnabdutta1984
    @arnabdutta1984 2 ปีที่แล้ว +4

    Just add the following line if r15 does not move
    root.Anchored = false

    • @jackforest8084
      @jackforest8084 2 ปีที่แล้ว

      Thank you so much! I knew i had an anchoring issue, i just did not know how to fix it.

  • @policeperson7589
    @policeperson7589 11 หลายเดือนก่อน

    sat here for 20 minutes (real) looking through the script for why it wouldnt work whatsoever, and i finally realized i forgot an end at line 31. coding is so fun i want to do it everyday

    • @urgentnotice
      @urgentnotice 3 หลายเดือนก่อน

      use script analysis and output

  • @Kjilness
    @Kjilness ปีที่แล้ว +1

    very epic and cool

  • @Charley1289
    @Charley1289 ปีที่แล้ว +1

    If I could subscribe twice, I would. No thumbs up, all my fingers up! (Which doesnt make sense but still...) I'm oof to part 2!!

  • @tikel5563
    @tikel5563 2 ปีที่แล้ว

    Thank you so much for a legit script that works very nicely!

  • @aarthisakthivel1028
    @aarthisakthivel1028 9 หลายเดือนก่อน

    this is the birth of the student enemy for me

  • @Gameking1326_YT
    @Gameking1326_YT 7 หลายเดือนก่อน +1

    I have an error saying "Unable to cast double to Vector3". My script is :
    local RunService = game:GetService("RunService")
    local Players = game:GetService("Players")
    local Humanoid = script.Parent
    local root = Humanoid.Parent.PrimaryPart
    local targetDistance = 20
    local stopDistance = 5
    function FindNearestPlayer()
    local playerList = Players:GetPlayers()
    local nearestPlayer = nil
    local distance = nil
    local direction = nil
    for _, player in pairs(playerList) do
    local character = player.Character
    if character then
    local distanceVector = (player.Character.HumanoidRootPart.Position - root.Position)
    if not nearestPlayer then
    nearestPlayer = player
    distance = distanceVector.Magnitude
    direction = distanceVector.Unit
    elseif distanceVector.Magnitude < distance then
    nearestPlayer = player
    distance = distanceVector.Magnitude
    direction = distanceVector.Unit
    end
    end
    end
    return nearestPlayer, distance, direction
    end
    RunService.Heartbeat:Connect(function()
    local nearestPlayer, distance, direction = FindNearestPlayer()
    if nearestPlayer then
    if distance = stopDistance then
    Humanoid:Move(distance)
    else
    Humanoid:Move(Vector3.new())
    end
    end
    end)
    Please someone help.

  • @wunqo1
    @wunqo1 ปีที่แล้ว +1

    yoo broo, really apprechiate that you made this vid, also do you know how i could make the dummy walk faster?

  • @byuulahn9331
    @byuulahn9331 2 ปีที่แล้ว +1

    after I downloaded the dummy it kept spawning in every of my baseplates. How can you make it stop?

  • @sebalby34
    @sebalby34 ปีที่แล้ว +1

    8:37 bro direction is an absolute UNIT
    hehehehehehehehehehehehehehehhehehehehehhehhhehhe E
    E
    e
    e


    .
    .
    spiderman
    on his way home

  • @LordPaijo
    @LordPaijo ปีที่แล้ว +1

    It doesn't work for me. I've tried lots of NPC tutorials, but nothing has happened. My dummy doesn't move a stud. Is my studio bugged??

    • @mrmodulescript
      @mrmodulescript  ปีที่แล้ว

      Make sure it isn't anchored. That seems to be the most common cause of this problem.

  • @deku972
    @deku972 ปีที่แล้ว

    You are a w man this will help me so much thank you🙂

  • @bryanrojas6391
    @bryanrojas6391 ปีที่แล้ว +1

    this helped me out so much

    • @SucukNinja_
      @SucukNinja_ ปีที่แล้ว

      HOW IS THIS 2 WEEKS AGO?!
      it did'nt work for me :( can you tell me what i mabye did wrong?

  • @Solo_Guy2
    @Solo_Guy2 ปีที่แล้ว

    everytime i try the npc in studio and click play, there are hundreds of dummys on top of me, please help!

  • @codrin6772
    @codrin6772 2 ปีที่แล้ว +1

    It gives me an error: "Workspace.StarterCharacter.EnemyController:20: attempt to index nil with 'Position' - Server"
    Can anyone help me?

  • @Charley1289
    @Charley1289 ปีที่แล้ว +1

    I Subscribed!

  • @tobiasleijdesdorff9960
    @tobiasleijdesdorff9960 2 ปีที่แล้ว +1

    Thanks For The Video!

  • @900GHXST
    @900GHXST 8 หลายเดือนก่อน

    when i use a kickback move it completely flys away

  • @SushiBeeReal
    @SushiBeeReal 2 ปีที่แล้ว +1

    I have a problem, my characters that I added aren't taking damage from anything, does anyone have a fix

  • @mykidneyhurts1372
    @mykidneyhurts1372 2 ปีที่แล้ว +2

    Btw can you paste script here im having hard time making a game so putting the script in the comments will really help me.
    Even if you dont thx for tutorial

  • @RipTai
    @RipTai ปีที่แล้ว +1

    do i have to put it to nil or some other name?

  • @blinggaming7707
    @blinggaming7707 ปีที่แล้ว +2

    Does anyone know how to fix the error where it says that move is not a valid member of part?

    • @mrmodulescript
      @mrmodulescript  ปีที่แล้ว +1

      Move should be only used on the humanoid, which I set as a variable. If the error says "not a valid member of part", then either the humanoid variable must be incorrectly set to a part (such as the humanoid root) rather than the humanoid, or you are trying use :move() on the wrong variable. Hope this helps!

    • @blinggaming7707
      @blinggaming7707 ปีที่แล้ว

      @@mrmodulescript ok thanks I’ll try it.

    • @blinggaming7707
      @blinggaming7707 ปีที่แล้ว +1

      @@mrmodulescript OMG IT WORKED BRO TYSM!

    • @blinggaming7707
      @blinggaming7707 ปีที่แล้ว

      @@mrmodulescript IM MAKING A HORROR GAME SO THIS WILL HELP A LOT

  • @macstorm2234
    @macstorm2234 2 ปีที่แล้ว +20

    Part 1 results : How to make a "peacefull" enemy npc

    • @C4nd4n
      @C4nd4n 2 ปีที่แล้ว

      Well you add a kill script, modify the damage and done
      That what I did with a npc

    • @macstorm2234
      @macstorm2234 2 ปีที่แล้ว

      @@C4nd4nThats the part 2

  • @calebetheredge9307
    @calebetheredge9307 ปีที่แล้ว +1

    can you make a tutorial so that we can make a mesh with a humanoid in it attack you instead of a dummy

  • @genVwithaswitch
    @genVwithaswitch ปีที่แล้ว +1

    there a way to make it only target you when you're on a certain team?

  • @B_duzzle
    @B_duzzle ปีที่แล้ว +2

    can I use r6 dummy?

  • @KingBooyey
    @KingBooyey 2 หลายเดือนก่อน

    How do u make the NPC Track you down trough obstacles

  • @bretabel1642
    @bretabel1642 ปีที่แล้ว

    Make sure to use character.HumanoidRootPart.CFrame.Position instead of character.HumanoidRootPart.Position to calculate the distanceVector if you're getting errors about that

  • @yeeter6185
    @yeeter6185 ปีที่แล้ว +2

    For anyone what for R6 Rig Type (because this script not work on r6 type only r15)
    Note: It all rewrite by ChatGPT
    local RunService = game:GetService("RunService")
    local Players = game:GetService("Players")
    local humanoid = script.Parent
    local root = humanoid.Parent.Head
    local targetDistance = 20
    local stopDistance = 5
    function findNearestPlayer()
    local playerList = Players:GetPlayers()
    local nearestPlayer = nil
    local distance = nil
    local direction = nil
    for _, player in pairs(playerList) do
    local character = player.Character
    if character then
    local distanceVector = (player.Character.Head.Position - root.Position)
    if not nearestPlayer then
    nearestPlayer = player
    distance = distanceVector.Magnitude
    direction = distanceVector.Unit
    elseif distanceVector.Magnitude < distance then
    nearestPlayer = player
    distance = distanceVector.Magnitude
    direction = distanceVector.Unit
    end
    end
    end
    return nearestPlayer, distance, direction
    end
    RunService.Heartbeat:Connect(function()
    local nearestPlayer, distance, direction = findNearestPlayer()
    if nearestPlayer then
    if distance = stopDistance then
    humanoid:Move(direction)
    else
    humanoid:Move(Vector3.new())
    end
    end
    end)

    • @FredButEvenWorse
      @FredButEvenWorse ปีที่แล้ว

      is it r6 or r15 bc i didn't understand what you said
      also it dosent work

  • @Cheese45542
    @Cheese45542 ปีที่แล้ว

    they dont do anything even though i get no errors i tried both r6 and r15 and it doesnt want to work

  • @ablaabl8315
    @ablaabl8315 2 ปีที่แล้ว

    (pls reply)
    (in the script) when pressing enter there are a couple of spaces and the text appears more to the right, right. Does it mater if the space is there? (same thing about the "end" does it mater if it is there?

  • @bzghosbz9038
    @bzghosbz9038 6 หลายเดือนก่อน

    is he able to like know that theres an object infront of him can go past stuff or just get stuck?

  • @paulwhidborne1982
    @paulwhidborne1982 3 หลายเดือนก่อน

    Trying to follow this using an enemy model I brought in from Blender. I got it to work for the R15 model but when I try and change the wording based on the model I am using I am getting a ton of errors so thinking I'm changing it wrong. Any tips on doing this for an injected model? This is the current error I am getting and it seems to not like Vector3.new: Move is not a valid member of MeshPart "Workspace.Enemies.Candy_Land.Hot_Choc_Mob_1.Plate". Thank you in advance

  • @MikaChristensen-j2e
    @MikaChristensen-j2e 4 หลายเดือนก่อน +1

    i cant do it its to hard for me :(

  • @funnydog7133
    @funnydog7133 ปีที่แล้ว

    When testing with multiple players the script seems confused about which player/where to target. It seems to be trying to target both players at the same time instead of focusing on the single closest player

  • @PolyVein
    @PolyVein 2 ปีที่แล้ว +1

    How would i add animations to this?

  • @SaltedDiego
    @SaltedDiego ปีที่แล้ว

    Hey, I have a Question can you make the dummy slower somehow?

  • @ImAPersonHehehehaw
    @ImAPersonHehehehaw 11 หลายเดือนก่อน

    I put everything correctly but the npc won’t move

  • @KingDevex
    @KingDevex ปีที่แล้ว

    Guys how do I make it so when you hit the NPC it starts chasing you?

  • @HopeChurchAdmin
    @HopeChurchAdmin 2 ปีที่แล้ว

    how do i make it only start chasing you once the player gets within a certain radius of the enemy

  • @theguywhosinred
    @theguywhosinred 7 หลายเดือนก่อน

    how do you give the npc health i watched all parts but like no hp!!!!

  • @calcumalations1235
    @calcumalations1235 2 ปีที่แล้ว

    Yo when I play it says “Character is. Not a valid member of Players “Players”

  • @pistolgames232
    @pistolgames232 2 ปีที่แล้ว +4

    Thank you, this video was very helpful for me, but i'm curious about how can i make npcs go back to their spawn or other places after they stopped chasing player?

    • @TheSparkySpitz
      @TheSparkySpitz 2 ปีที่แล้ว +1

      just set their root CFrame to the span location CFrame after the player is outside the distance.

    • @BushWithAGun
      @BushWithAGun 2 ปีที่แล้ว +1

      idk how to do that tho

  • @tiago_rxque6285
    @tiago_rxque6285 ปีที่แล้ว

    mine is not working,it says it dont identify the player

  • @Firedragon8544
    @Firedragon8544 ปีที่แล้ว

    nice work i love it but its easyer if we could copy and past

  • @Ace_L_real
    @Ace_L_real 6 หลายเดือนก่อน

    can you make it stop after being to far away like the chasing is a range?

  • @Kdbdkjsakkawqons
    @Kdbdkjsakkawqons 2 ปีที่แล้ว

    i wrote this exactly local distanceVector = (player.Character.HumanoidRootPart.Position - root.Position) but why does it gives an error. Workspace.Dummy.Humanoid.Script:20: attempt to index nil with 'Position' ..healp pls how?

  • @The_wanderer..
    @The_wanderer.. ปีที่แล้ว

    Can you/anyone tell me how to set the primary part it dosent show it

  • @koreyDoreyASG
    @koreyDoreyASG ปีที่แล้ว

    You deserve more subs

    • @mrmodulescript
      @mrmodulescript  ปีที่แล้ว

      AHHH IM SORRY HERE IT IS I JUST RELEASED IT

  • @energyslayr1723
    @energyslayr1723 2 ปีที่แล้ว +1

    Help me the
    Runservice.Heartbeat does not work

  • @th3tnt1
    @th3tnt1 2 ปีที่แล้ว

    Hey how to type the "is less than" thing on keyboard? Idk how

  • @FoxGaming1026
    @FoxGaming1026 ปีที่แล้ว

    For some reason when I added the script to my characters it doesn’t work, but the freemodel itself works, how do I fix this??
    Edit: for some reason it does work but when my npc is made higher like by less than a stud it won’t work. It needs to be on the same ground level. Do you know a possible fox for this?

  • @Devil_edits_op
    @Devil_edits_op 2 ปีที่แล้ว +1

    why does the end ()) has a wrong in it ?
    Runservice.Heartbeat:Connect(function()
    local nearestplayer, distance, direction = FindNearestPlayer()
    if nearestplayer then
    if distance = stopDistance then
    humainoid:Move(direction)
    else
    humainoid:Move(Vector3.new())
    end
    end)

  • @darealspiker
    @darealspiker ปีที่แล้ว

    Do not talk to me until I have my morning coffee

  • @wethebest-obamiumcore1457
    @wethebest-obamiumcore1457 2 ปีที่แล้ว +1

    thanks man it works, but do you have any way to make it that it avoids walls? it will chase me but it gets stuck in walls and other obstacles

  • @hunnydrawz8569
    @hunnydrawz8569 2 ปีที่แล้ว

    Hey! was rlly helpful, but for some reason my model came with humanoid but not humanoid root part? my model isnt r15 if that makes any difference. how do i get one?? it isnt in local

  • @boxmantherandom
    @boxmantherandom ปีที่แล้ว

    is there a way to make it so that the enemy not follow the player but instead a different part, I'm trying to do the basse thing from tbb

  • @KingVincardo
    @KingVincardo ปีที่แล้ว

    cant change Target distance and Stop distance

  • @ajibeji02
    @ajibeji02 8 หลายเดือนก่อน

    Can anyone help me? I tried this on my own model (a skeleton) which has a humanoid and is rigged properly and such. When I run this script, the skeleton just disappears for some reason. I tried pasting the script into a regular R15 rig and it works fine. Why doesn't it work on my skeleton?
    Great tutorial though

  • @mikarolls
    @mikarolls ปีที่แล้ว +1

    thank you! :D

  • @nathanrobloxsquad4529
    @nathanrobloxsquad4529 9 หลายเดือนก่อน

    when it takes dmg the npc stops

  • @wooega
    @wooega ปีที่แล้ว

    Could you also make dummy that helps you in a battle

  • @mr.nixan3017
    @mr.nixan3017 ปีที่แล้ว

    Is it a problem if my root part is the head? As im working with r6 as its easyer for animations.

  • @thechannel7988
    @thechannel7988 ปีที่แล้ว

    can you create a monster that randomly attacks the player like Charles from "Choo Choo Charles" I understand that this game was made on a different game creation engine, but if possible, please do a tutorial on this

  • @tiendrip-han6458
    @tiendrip-han6458 4 หลายเดือนก่อน

    W video bro.