So basically, I tried making a multiplayer game and followed this tutorial by plug world
https://www.youtube.com/watch?v=fE6GNBkeey8&ab_channel=PlugWorld
Followed it exactly but when I create the server, I could move the character and see players physically spawn but when I join a server. It would spawn the player but no other players can be seen even though on the server side, They would appear right next to each other. What's worse was it doesn't update either so its just static and I cant move said client player either so I ruled out the possibility of it spawning far from the other player. So the client is not only blind and cant see the other player except themselves but are also unable to move. What could the problem be here?
Player code:
var speed = 18000
onready var tween = $Tween
puppet var puppetpos = Vector2(0,0) setget puppetpositionset
puppet var vel = Vector2()
var NAME
func _ready():
pass
func _process(delta: float) -> void:
if isnetworkmaster():
var move = Vector2(Input.getactionstrength("uiright") - Input.getactionstrength("uileft"),Input.getactionstrength("uiup") - Input.getactionstrength("uidown"))
moveandslide((move*speed) * delta)
else:
if not tween.isactive():
moveandslide(vel * speed)
func puppetpositionset(newvalue) -> void:
puppetpos = newvalue
tween.interpolateproperty(self,"globalposition",globalposition, puppetpos, 0.1)
tween.start()
func _onNetworktickratetimeout():
if isnetworkmaster():
rsetunreliable("puppetposition", globalposition)
Server related code:
var ClientIP = IP.resolvehostname(str(OS.getenvironment("COMPUTERNAME")),1)
onready var c = $IPADRESS
const Player = preload("res://Player.tscn")
var a = Player.instance()
func _ready():
gettree().connect("networkpeerconnected",self,"connec")
c.text = ClientIP
func instanceplayer(id) -> void:
var playerinstance = Global.instancenodeatlocation(Player ,Players, Vector2(randrange(0,100), randrange(0,700)))
playerinstance.name = str(id)
playerinstance.setnetworkmaster(id)
print(id)
func onJOINpressed():
if $LineEdit.text != "":
Server.ClientIp = $LineEdit.text
Server.JoinServer()
func _onCREATEpressed():
Server.CreateServer()
instanceplayer(gettree().getnetworkuniqueid())
func connec(id) -> void:
print("CONNECTION SUCESSFUL!" + str(id))
instanceplayer(id)