#multiplayer

1 messages ยท Page 349 of 1

late sundial
#

we are not testing it now atm with friend but something could be done anyway

#

tried yesterday everything, opening ports, 7777, 7778, 15000, 27015. both hosted server with own steam accounts, connecting with console command.. no success.

#

spacewar in steam worked fine, lobbies came instantly to list

#

info added also to gameengine.ini about steamsubsystem

drowsy badger
#

maybe try with another appid?

late sundial
#

hmm ill try that gotta write it up

tame adder
#

hey can anyone give me a hand im having an issue with players no syncing with the server meaning if i host a game and i then move somewhere and then my friend spawns my postition doesnt sync with his

#

anything would be amainz

#

amazing

jolly siren
#

are you using character movement component?

tame adder
#

yes there is animation and postions

#

like how do i updatre the hoster and client so they see where each other are no matter what

jolly siren
#

CharacterMovementComponent already does that. How are you moving the character?

tame adder
#

just with keyboard AWSD

#

im using the default thirdperson

#

and i just made 3 networkplayerstart pawns which people do spawn at yes but never sync with each other

tame adder
#

im just confused

jolly siren
#

the default thirdperson template isn't setup ootb to work with networking

tame adder
#

is there a link you could give me that will help me to find out how to update postiions

jolly siren
#
  1. open your character blueprint
  2. send me a screenshot of what your Replication section looks like
tame adder
jolly siren
#

okay, that looks fine.. Sec let me bring up the third person template

tame adder
#

so pretty much this is what ive noticed when i click host game on pc 1 it works all well i can move around but once i connect with pc2 it puts the default spots of pc2 but on pc1 the pc2 controller looks perfect its just pc2 not updating where pc 1 is

#

if that makes any sense :/

jolly siren
#

how are you testing this? In the editor?

tame adder
#

i package the project and send it to my other pc as well as my main one

#

and test it using steams spacewars servers thing

jolly siren
#

ahh okay I see. Is it working fine with testing multiple players in the editor? I assume you are using listen server instead of dedicated then.

tame adder
#

yea its fine testing that

#

well no it isnt

#

its still has the same issue

jolly siren
#

okay, well that makes testing a lot easier at least.

tame adder
#

its just pc2 cant get an update of where pc1 is at the begining

jolly siren
#

does it fix itself when pc1 moves after pc2 has joined?

tame adder
#

but once pc2 is in game with pc1 where ever they go it works just at the start pc2 cant find pc1

#

no

#

on pc2s screen it glitches out pc1

#

and it means that if pc1 is in a door way and pc2 too joins the player cant get through as it makes pc1 like a ghost

#

but the weird thing is if they both spawn together its fine

#

okay i fixed it ๐Ÿ˜†

#

im an idiot

jolly siren
#

it is working fine for me with the ootb 3rd person template

#

what was it?

tame adder
#

my hosting person was using the thridpersonchatar model

#

and not networkplayer

#

easy it works all good now ๐Ÿ˜ƒ Thanks @jolly siren for the support ๐Ÿ˜ƒ

jolly siren
#

awesome, glad you got it working

jolly siren
#

Does anyone know if there is a way to release a game on steam but make it private? Like a development mode where I can control the users who can see it? I'm working on a steam multiplayer game and would love to move off of spacewars but don't want to make it public yet.

dark kernel
#

I'm 99% sure there's a way, we've done it before. I just don't k now how ๐Ÿ˜ฆ

#

I can ask

jolly siren
#

yes please, that would be helpful

neon mango
#

Does anyone know how well Unreal replicates static mesh props?

#

I'm thinking of having like at least 30-50 props with physics and their position/rotation replicated

#

That going to be an issue?

sterile pebble
#

you will need to write custom solution

#

@neon mango you will run intro troubles with physic replication without using some custom code

#

because default solution just sync server position with client and if you applying big force to object it could lead to visual lag: like physic objcets will teleport from place to place on client and so son

neon mango
#

so you are saying to roll with my own for the sake of visuals but in terms of performance?

#

is 50 rep props going to bog the network down?

sterile pebble
#

no, you wont run into any troubles with performance, but visual side could give you sad feeling

#

you can just run small prototype - create tps blueprint project and add static mesh with cube, add physic support and check replicate + replicate movement thingy. Run with 2 player and you will how much it could lag

neon mango
#

ok I'll check ito ut

#

@sterile pebble know of any good guides to get me started on rolling my own?

sterile pebble
#

if you will apply small force to objects you can try default solution. Maybe it will work out for you. I mean, you still should try default solution with replicate movement checkbox, just because it's very easy to try and something to start

neon mango
#

ok I'll give that a shot first. I will end up having to throw them very fast though

#

@sterile pebble you think the projectile class used in the Shootergame will have some good insight on that?

#

They must sync the projectile somehow and that projectile goes pretty fast if I remember correctly

sterile pebble
#

it's not a physical object

jolly siren
#

@plain oriole ShooterGame is a very good example. Or are you looking for blueprint only?

plain oriole
#

@jolly siren yes

#

@jolly siren thank you

jolly siren
#

sorry, that wasn't bp only. Looking around, as I don't do bp only.

sterile pebble
#

@neon mango in case of projectile it just a simple collision that moves according to the received input and next position can be easily predicted on client and server and sync without noticable lags or something like that

plain oriole
#

@jolly siren ok no problem

jolly siren
#

There are a couple to check out.

sterile pebble
#

in case of physical object it's become more complicated. The problem is that physic simulation is not the same on client and server machine. It will defer and the difference can be big. This is how physx engine working. It's using random generators inside to simulate physic and some other stuff that will lead to deviation in simulation.

plain oriole
#

@jolly siren thank you

sterile pebble
#

@neon mango check this articles, they are very helpful. In case of non-physical object default unreal solution is pretty good and it's easy to add custom code and sync them (like with projectile)

jolly siren
#

gl ๐Ÿ‘

civic silo
#

Hello! I have a lot of questions about networking through blueprints for a third person shooter game.

#

Two big ones right off the bat:

  1. Server movement is being replicated to the client, but the mesh (or anything visible) is not. Cannot see server player.
  2. Client cannot move. No idea why.
#

I'm using local host servers and mostly Unreal's default stuff at this point. Please help.

ebon rapids
#

is your gamemode derived from GameModeBase or GameMode?

#

it has to be GameMode

brittle sinew
#

Uh...no?

#

GameMode does have some additional features when compared to GameModeBase, but it's not like you 'have' to use GameMode for simple movement replication

civic silo
#

Parent is GameMode

brittle sinew
#

Are you rolling your own custom pawn or is it a character?

civic silo
#

Extended from Character

brittle sinew
#

Okay, you'd probably have to show some screenshots of how you're doing the movement code at this point

#

Usually the CharacterMovementComponent takes care of pretty much all of the replication for you, but that's only if you use it

civic silo
#

Movement is replicating fine. Rendering is causing issues

neon mango
#

@sterile pebble goodpoint. The mecahnic I'm going for is actually a lot like a projectile now that I think about it. It will be a physics object as they play around with it but they can throw it as a projectile at higher velocity. Perhaps I should have my code on toss treat the prop as a projectile? Would that be a good way of going about it though?

brittle sinew
#

@civic silo "Client cannot move. No idea why."?

#

Sounds like movement issues, haha :p

civic silo
#

Well, there's that too

#

What on the CharacterMovementComponent should I be checking?

brittle sinew
#

If you could just show some screenshots of your setup, that'd probably be best. There's not really one thing to check per se, but you need to be using the built-in pawn input handling and not rolling your own custom movement logic or something of that nature

civic silo
#

Ok. I made some custom action mappings for input, but everything else should be fine.

thin stratus
#

@civic belfry Late response. Owner of level placed bps is the server. You have to set the owner by hand to perform server and client rpcs.

civic silo
#

So, forgive my unfamiliarity, but it appears that I should be using a PlayerController instead of just handling input in the Character itself. I think that is where some of my issue is coming from. I don't have a PlayerController listening for client input.

#

How do I set that up?

dark kernel
#

If I am using PIE and set clients to 2, does the world outliner show all the objects spawned on both clients? Or is it just showing the one that is in PIE?

gleaming vector
#

it shows the 1st client

dark kernel
#

I'm going to return to sitting and glaring at the editor. thanks lol

grand kestrel
#

Player controller for global input, character/pawn for input specific to that character/pawn is how I do it

dark kernel
#

If someone has the time, I'm slightly stumped. On begin play in my Game Mode, I am spawning an AChessboard Object. Inside the Chessboard object is a TArray of ATile objects (representing the 64 tiles of the board). For some inexplicable reason, When I run two clients, the size of the chessboard array is 128, i.e. double. The baffling part is that it's not doubling the number of pieces (AChessboard spawns them too), and the whole thing is behind an authority gate. I'm not entirely sure why the tiles are doubling, but the pieces are not.

#

when i use 1 client, no server, it spawns 64

gleaming vector
#

do you set the size of your array somewhere?

dark kernel
#

I don't

gleaming vector
#

like in the constructor?

dark kernel
#

Each time I spawn a tile, I do array.Add(Tile)

gleaming vector
#

on authority?

dark kernel
#

uhm...actually, no. huh.

gleaming vector
#

also, are your tiles set to replicate?

dark kernel
#

lemme check i think so.

gleaming vector
#

because what it sounds like is happening is you are spawning tiles on the client, and then the server replicates the array of null objects because the objects aren't set to replicate

#

thus the server is giving you 64nullptrs and the client is spawning 64 actual pieces

dark kernel
#

i think you're on to something, because I do have a crash referencing null tiles.

gleaming vector
#

hehe, I've made this exact mistake before ๐Ÿ˜›

dark kernel
#

I think it's the reverse though, because the crash happens on the (non) listening client

#

but yeah

#

I have this in my constructor:

#
{
     // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;

    bReplicates = true;

    pOccupiedBy = nullptr;

    ObjectMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Object Mesh"));
    RootComponent = ObjectMesh;
}```
gleaming vector
#

hm

#

well, that should work then

dark kernel
#

let me try something.

#

I have the chessboard set to replicate, and I have the TArray inside it set to replicate

#
    UPROPERTY(Replicated, EditAnywhere, Category = "Board")
    TArray<ATile*> Board;```
#

could that be causing a double replication or something?

gleaming vector
#

no, that should be right

dark kernel
#

trying to think of what else I am doing. heh. I am taking the chessboard object, and setting a reference to it in the Game State as well.

#

going to mull over thsi while I drive home :3 thanks!

jolly siren
#

@raven holly Is Xera actually on steam yet? How do you limit who can download/see it on steam? Is there a developer mode for when you don't want it to be publicly accessible yet?

raven holly
#

@jolly siren Yes beta keys

#

it's in the steam backend

#

It's not published yet, but people can still download it etc

jolly siren
#

through steam? can they get auto updates as well with that?

raven holly
#

yep

jolly siren
#

awesome, that is helpful. I guess I'll get more details on how to set that up when I spend my hundred

raven holly
#

๐Ÿ˜„

jolly siren
#

thank you!

raven holly
#

np!

tawny parcel
#

Anyone come accross your game mode not working when the project is packaged? Click play in editor works fine - I've confirmed game mode / server game mode and over ride game mode are all set in project settings.

#

I've setup a simple print string on "post log in" for my game mode, doesnt go off when packaged/dedicated server

stark dome
#

@tawny parcel how are you running the server

tawny parcel
#

@stark dome I package the game and I have made the server.exe through a 'development server' build

stark dome
#

And you can connect to it properly?

tawny parcel
#

yea

#

the players connect

#

i can see them running around

#

but nothing happens, no events in gamestate/mode trigger

stark dome
#

Do you have the proper map in game default map

#

I believe that's what the server uses by default

#

You can override it though

tawny parcel
#

Hrm, nope - I had it as entry apparently. I'll try that out!

#

but I had Server Default Map set properly

stark dome
#

Hmm you can try adding MyGame.exe /Game/Maps/MyMap

#

To specify the map

tawny parcel
#

I'll try shortly, re-running the package

tawny parcel
#

@stark dome Neither worked so far, oddly enough I get this error on clients that connect after the first. The first doesn't give any errors.

#

You can see something is atleast trying to happen at post login, like I was trying to do

stark dome
#

So looks like it's using the right game mode now

tawny parcel
#

Print string with print to log should show on the dedicated server prompt correct

#

Do you need to rebuild a server.exe every time you re-package your game?

stark dome
#

Packaging should create the exe

#

Do you mean cooking

tawny parcel
#

Well I package the project but that creates the playable .exe, you have to build the dedicated server .exe through VS 'development server'

#

I'm starting to think some references to the thirdperson player are wrong, I renamed it at one point

stark dome
#

That's not packaging the server though. You are only packaging the client

neon mango
#

Anyone know how to properly replicate grabbed objects? I believe I've done the standard stuff but my object keeps falling because of gravity and if I turn gravity off it will float away until it syncs back up client side.

#

Since the movement is replicated on the grabbed object, when the grabbed object moves it seems to sync up but if it isnt' moving that is when it succumb to physics client side.

stark dome
#

Do you disable physics

neon mango
#

if I do that physics handle doesn't work

stark dome
#

Oh you are using a physics handle

neon mango
#

should I be doing it another way?

stark dome
#

Depends what functionality you want

#

The way I handled replicating that was to replicate a struct containing the grabbed location / rotation and then in an onrep grabbing it on the client

#

But if basic attachment without a physics handle suits your need it's much simpler

neon mango
#

wait without physics handle?

#

So what I'm doing is the advanced way or the basic way?

#

I'm thinking if I make a NetMulticast RPC call when the server or client picks up the object then all instances of the server and client simulated dudes should do the same thing?

stark dome
#

You could do it that way as well. Only problem is if someone joins after you pick it up

#

That's why the onrep is a better solution

neon mango
#

hmmm good point

#

could check to toggle it on join but that seems silly

#

I don't understand your way though

#

why make a struct with grabbed location/rotation? You disable replicate via Unreal and do it yourself so you can spam the updates more often?

stark dome
#

It only replicated the location and rotation that the object was grabbed at. One time. That allows clients to reproduce the physics handle on their end so the simulation aligns with the server

neon mango
#

but nothing about your solution mentions a physics handle?

#

how do the clients know something is being grabbed?

stark dome
#

When the struct is replicated it means that it was grabbed. You could also add a bool indicating if it was grabbed or dropped and update the physics handle appropriately

#

Other option is to disable physics on the clients but movement will appear jittery

neon mango
#

Yea I don't get when you rep the struct and how that makes a handle?

#

the struct has a handle?

stark dome
#

No the actor that has the struct property is the one with the physics handle

#

You'll also need to add the object being grabbed to the struct

neon mango
#

I'm sorry I'm just not getting your method. I do get replicating the struct though as that alone would be better for me than depending on the rep on movement only unreal does when ticking rep movement.

#

but I may have to do both

#

as I do want the general prop to move but be really accurate when grabbed

#

unless the struct is enough for both?

#

I'll just start trying things maybe it will start to make sense

stark dome
#

Yeah it should work. Let me know if you have issues

#

When you grab something update the struct

#

Do you know what I mean by onrep

neon mango
#

does that mean the struct is on the object that we want to replicate not on the person grabbing?

#

on replication?

stark dome
#

In the UPROPERTY instead of using Replicated you use ReplicatedUsing=FUNCTION

#

And that function gets called whenever the value is replicated

neon mango
#

ohhh

#

so call grab, replicate struct?

stark dome
#

So inside that function you grab with the physics handle on the client

neon mango
#

how does the client have a physisc handle?

stark dome
#

It's just a component

#

Where do you add it

neon mango
#

I know what it is, but how do they have it? You just have all your clients with a physics handle?

stark dome
#

Well what actor has your physics handle

#

If that actor is replicated it'll exist on that actor per client

neon mango
#

so in my case its only one person ever that can have the handle

#

but the handle currently exists only on the server

#

client wants to make a grab? Server make the handle

#

server wants to make a grab? Server makes the handle

stark dome
#

Oh you are creating it at runtime?

neon mango
#

no it exists but the bind of the handle happens in game

stark dome
#

Right so it exists on the client as well. You just recreate that bind in the replication notify

#

As long as the actor that the physics handle is on is replicated

neon mango
#

so

#

Example

#

Server grabs object makes the bind with the handle

#

then starts updating the struct

#

client via rep notify sees the struct has updated and calls the function to make the handle as well?

#

Did I kind of sorta get it now?

stark dome
#

Yup that sounds correct to me

#

So that struct probably needs 3 vars

#

Grabbed location. Grabbed rotation. Pointer to thing grabbed

neon mango
#

is alll this happening on the characters, no code for the object correct?

stark dome
#

On rep if that pointer is null then you call release on the handle. Else you grab the component

neon mango
#

good point I see

stark dome
#

This code can live wherever the physics handle is

neon mango
#

ok

#

so one more point of clarity

#

Are you making the bind of the handle on tick?

#

Because I take it you want to update the struct on tick while its grabbed?

stark dome
#

No just on the rep notify

neon mango
#

which happens when the struct is updated right?

stark dome
#

You only update the struct on grab/release

neon mango
#

but then how do you know where its at when the person who grabs it moves it?

stark dome
#

Is the thing that's grabbing it being replicated

#

If it's position is replicated then the object being grabbed will be aligned with it

neon mango
#

Well that brings me right back to square one then (I think)

#

if you depend on Unreal's replicate movement for once its grabbed (which is what I'm doing now and having problems) how are you not having problems with physics?

stark dome
#

You aren't for that object. Only for the thing grabbing it

neon mango
#
If it's position is replicated then the object being grabbed will be aligned with it(edited)```
#

replicated as in Unreal's tick box replicated?

stark dome
#

Along with replicating movement

#

How are you setting the location of the physics handle

neon mango
#

Every tick

stark dome
#

Right but based on what

neon mango
#

    if (PhysicsHandleActive) 
    {
        //Once Grabbed we update this values every tick to keep the object grabbed in front of the hidden at all times.
        const FVector ForwardDir = FirstPersonCameraComponent->GetForwardVector();
        const FVector ProductOfGrabLocation = ForwardDir * DistanceObjectHangs;//ForwardDir * OtherItemLocation;
        const FVector FinalLocation = ProductOfGrabLocation + FirstPersonCameraComponent->GetComponentLocation();// GetActorLocation();
        const FVector HandleLocation = FinalLocation + FVector(0, 0, DistanceObjectHangs);
        FRotator FacePlayerRot = UKismetMathLibrary::FindLookAtRotation(this->GetActorLocation(), FinalLocation);
        PhysicsHandleComponent->SetTargetLocationAndRotation(FinalLocation, FacePlayerRot);//GetControlRotation()
    }
}```
#

Perhaps you meant something else?

stark dome
#

So just make sure that code runs on the client as well

#

Should work

neon mango
#

yea so that brings me back to having the clients make the handle

#

via netmulticast

stark dome
#

Why not in the rep notify like I just explained

neon mango
#

but that wouldn't happen every tick like I need it too?

#

unless its about setting a bool to have it do it on tick?

stark dome
#

You don't grab the object every tick

#

You will still be running that update code in tick

tawny parcel
#

@stark dome So if I package the game, use the server.exe to run a dedicated server, it still does not consider itself a server? Am I supposed to run it through frontend?

stark dome
#

On client and server

tawny parcel
#

@stark dome And thank you for the help btw

stark dome
#

@tawny parcel so you can't connect to that exe?

#

What do you mean it doesn't consider itself a server

tawny parcel
#

yes i can, the game mode wont fire tho, onpostlogin

stark dome
#

Hmm does it spit out which map it's loading

neon mango
#

well in any case I just made it so that the handle gets created client side as well and now the object teleports back and forth from where I intially grabbed it and where it should be

#

What must be happening is that the clilent is calculating that it should be where the handle is, and I guess the handle isn't replicated?

#

But the handle is part of the player

#

and the player moves

#

so the handle should move with it right?

#

but it doesn't seem like it is

#

Going to try and set it to replicate component

#

didn't help, well I'm pooped going to call it anight and try to figure this out tomorrow, thanks for the guidance @stark dome

stark dome
#

No problem sorry you couldn't get it working

late sundial
#

is here anyone online who knows about advanced sessions/steam? it works on lan but not over internet using steam. people say that it should work, do i need to get own appid from steam to make it work?

#

i dont want to get game on steam if it doesnt work

jolly siren
#

480 should work fine. have you setup port forwarding on router and firewall?

late sundial
#

yeah ports should be open

#

i tried to check openings from internetsite but those tell its not open

#

from these sites

jolly siren
#

yeah that site works for me. What ports did you open?

late sundial
#

7778,7777,15000,27015

#

ive tried long time ago these port forwarding stuff but these sites dont work, maybe theres something in my router blocking it

#

but good to hear that those sites work for someone else ๐Ÿ‘Œ

#

im gonna open the router and check more if i missed something

jolly siren
#

did you setup firewall rules as well?

late sundial
#

i dont think i did

#

firewall is on at router..

jolly siren
#

I'm talking about the os firewall

late sundial
#

ok i checked that, its enabled from there

#

this is what router looks

#

and same on "outbound"

#

just found this one

#

hmm 7777 allowed now with both tcp and udp still that website shows its closed =/

neon mango
#

Is there a reason why my object would fail to have its movement replicated if the Remote has its Simulate PHysics off and the server has its Set Simulate Physics on?

#

Does Replicate movement work both ways?

#

so client is telling server hey its not moving?

#

And if that is the case is there a way to have it so server controls that?

late sundial
#

even when all firewalls are off that site dont work, there must be something on the router now

jolly siren
#

who is your provider?

#

I have xfinity and they give you a built in router/modem thing and I had to do some extra things to get my real cisco router working properly because of that.

late sundial
#

telia, i live in finland

jolly siren
#

ahh okay

late sundial
#

theres not port forwarding quide for this exact box at all

#

only some older zyxel boxes

#

how can i find out if this is some shit router?

#

ok probably its these routers, my friend who did also the port forwarding he has same provider and box that they give when you get the connection..

#

thanks for info @jolly siren

jolly siren
#

no problem

neon mango
#

I'm trying to turn off physics for client objects and I'm getting different results. In my main project I lose replication in my sample project it does nothing aka object still have physics, I don't understand...

dark kernel
#

Does replication not pass on to inherited classes? So like, if class B inherits from A, and I set A to replicate in its constructor, do I need to implicitly tell B to replicate as well?

brittle sinew
#

I'm guessing you mean you're wondering if you need to explicitly tell it to replicate?

#

No.

#

If you have additional properties on the subclass you want to replicate though, you need to manually add those

dark kernel
#

er yes

#

wrong word

#

LOL

#

i havent had coffee yet

stark dome
#

@neon mango any luck

neon mango
#

@stark dome trying different things from simple to more complex but I can't understand the simple ๐Ÿ˜›

#

I can't tell if its the editor getting in the way or not?

#

Like if I test in editor, is the object getting its Has Authority vs Remote mixed up? As in its true for both?

stark dome
#

nope it should simulate it properly

neon mango
#

well I tell it for remote to disable physics in my Test Project and physics is still on for client

#

Basically made a test project to test this all out

#

seperate from my main

stark dome
#

how are you telling it to disable physics

neon mango
#

On the object itself I tell its static mesh on begin play to check if its remote or not

stark dome
#

are you sure that code is being run properly

neon mango
#

very simple test..

stark dome
#

you have dedicated server checked?

neon mango
#

no

stark dome
#

so you are the authority

#

there is only the one instance running

neon mango
#

I have two windows

#

I thought one is listen the other is client

stark dome
#

are you spawning that object at runtime or does it exist in the level

neon mango
#

exists in the level

#

I can send you the project if you like, very small

#

worst case scenario if your up to it but its actually like 2 GB still

stark dome
#

is that actor set to replicate

worthy wasp
#

Having an issue with C++ replication of turning on a ParticleBeam. I can do this in blueprints all day - when i enact the same client->Server->MCast RPC chain in code - i dont have the beam drawing on clients - where i can do this in blueprints same methodology no problem.

Anyone willing to take a look at this?

stark dome
#

sure why not

#

waiting on a windows update

worthy wasp
#

ty @stark dome - so i am starting in client of my Character

stark dome
#

@neon mango make sure breplicates is true and bnetloadonclient is true

worthy wasp
#

from there i am doing: ```
if (IsLocallyControlled())
TurnOnQBeam(StartPoint, ImpactPoint, true);
else
Srv_TurnOnQBeam(StartPoint, ImpactPoint, true);

mild zodiac
#

Is it possible to override replication of certain variables in child classes? for example to turn it off

worthy wasp
#

TurnOnQBeam is the local version

#

SRV is server

#

which calls to a multicast

#

the multicast runs th same client version code which does this:

        UpdateBeam(StartLoc, HitLocation);
#

now

#

StartLoc & HitLocation are both passed in

#

i dont understand why its not spawning on the networked clients ๐Ÿ˜ฆ

#

@mild zodiac - i'm going to assume no.... as any parent variable in editor is greyed out - i would assume the same for parent variable types in C++

#

i maybe wrong on that - i dont know C++ to its full extent

stark dome
#

@mild zodiac DOREPLIFETIME_ACTIVE_OVERRIDE( ACharacter, RepRootMotion, false );

#

thats an example for how they handle it in the character

worthy wasp
#

there you have it

stark dome
#

have you added logs/breakpoints to test if that activate code is called on clients

worthy wasp
#

let me throw in a debug string in ther e- to see if it is indeed MCasting truely

neon mango
#

@stark dome https://we.tl/TCXGzTo5f2 FYI it currently only is replicated from server to client, client grab isn't replicated

#

bnetloadonclient was't on but turning it on did not help

stark dome
#

so you have movement replicating from server to client?

neon mango
#

I'm focusing on the object right now

#

its movement is replicated

#

but the client seems to want to apply its own physics to the object

#

which is causing the object to ethier fall, or if there is no gravity float away

#

so I figuerd just diable physics client side for said object entirely

#

but on my main project replication fails at that point

#

and in my test project it still has physics even with set simulate physics off

mild zodiac
#

@stark dome thanks, I'll try DOREPLIFETIME_ACTIVE_OVERRIDE

stark dome
#

I'm not sure how authority works for objects that already exist in the level

#

It seems like they are both the authority

neon mango
#

YEA !

#

That is what it seems like right! ?

#

So how the heck do I do this then?

stark dome
#

My guess is that the client has authority over it during beginplay but possibly not after

#

Because the client is spawning it along with the map

#

Not sure how to handle it however

neon mango
#

well at least thanks for confirming my sanity

#

my other guess was this was an editor problem

stark dome
#

Could be yeah

#

I'd try to run it outside the editor

neon mango
#

Yea I was going to do that but put it on hold in case it was a mistake I was making

#

@stark dome actually our points are not relevant for the most part.

#

I just tested outside the editor

#

and client runs auth and remote

#

listen just runs auth

#

but the point here is that if it does run Remote

#

it means its executing my Set Simulate Physics false

#

and yet physics is still simulating for the object

#

so it makes sense that the client has auth and it is a remote

#

but it doesn't make sense that SetSimulate false isn't doing anything.

neon mango
#

@stark dome if I set SetSimulatePhysics off on tick it works

#

but that seems silly

#

is Unreal enabling it behind the scenes?

#

I think its a timing issue

tall grove
#

quick question . Whats is the best UE4 Version for multiplayer development? 4.14 maybe?

stark dome
#

@tall grove 4.18 ๐Ÿ˜ƒ

tall grove
#

i dont think so , all new release use to be plenty of bugs

jolly siren
#

4.15 felt most stable to me in a while. I'm still on 4.16

neon mango
#

@tall grove Guess it depends on what bugs you can live with

#

4.18 seems to have a lot of bug fixes.

pallid mesa
#

@jolly siren 4.15 is greeeeat!

#

still suffering some cyclical dep. bug

#

4.17 improves that a ton

#

i will wait for 4.19

#

it seems that it improves a ton networking

jolly siren
#

Yeah I really hope they get all the networking stuff done for 4.19 because it's going to be the best release for it in a while

#

They already fixed the steam voip bug so that is good

dark kernel
#

is it possible to run extra clients in an editor window so I have a World outliner for each one?

neon mango
#

@jolly siren what was the VoIP bug?

jolly siren
jade patrol
#

hi guys, quick question about subsystem steam, I can't find game sessions, me and the hosts are not in the same region . I found on Aller's blog saying " If you enable Steam and are unable to see your buddy's server that happens to be on the other side of Earth, it is not an issue with your configuration but how Epic handles Steam sessions" , but how can this be fixed ?

rough iron
#

@jolly siren wasn't that the one I gave you the fix for?

jolly siren
#

yeah, thank you for that ๐Ÿ˜ƒ I was just saying that the fix is coming in the engine in 4.19

rough iron
#

xD

#

No idea how they fixed it tough xD

jolly siren
#

oh really? I thought you took their commit

rough iron
#

nop

#

xD

#

I only got UDN access xD

#

no P4 user xD

unborn nimbus
#

Ok so I have an actor that is set to replicate but when I spawn it on the server, it's only showing up on the server. Why is this happening?

jolly siren
#

ahh okay I see

rough iron
#

I guess the fix is similar

#

@unborn nimbus something mis configured?

unborn nimbus
#

If an actor has bReplicates = true and it is spawned on the server, it is automatically spawned on the clients correct?

jolly siren
#

Anyone know if there is a place where PC is guaranteed to have both it's PlayerState and HUD on the client? Dealing with race conditions.

unborn nimbus
#
{
    bReplicates = true;
    bAlwaysRelevant = true;
}```
#
{
    ABuffObject * b = Cast<ABuffObject>(GetWorld()->SpawnActor(ABuffObject::StaticClass()));
}```
#

This doesn't work

#
{
     // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;
    bReplicates = true;
    bAlwaysRelevant = true;
}```
#
{
    PowerExtension = Cast<APowerExtension>(GetWorld()->SpawnActor(PowerInfo->PowerExtension));
}```
#

This does

pallid mesa
#

@jolly siren could you elaborate ๐Ÿค”

jolly siren
#

I am trying to call some code in my HUD that relies on PlayerState clientside. I could call it from PC::OnRep_PlayerState, except then I don't think that I'm guaranteed to have HUD created yet.

#

If I call it at HUD::BeginPlay then I'm not guaranteed to have my PlayerState yet

pallid mesa
#

Begin play wont work for midle joiners neither

#

Oh wait hahahaha yeah hud whatever

#

Well what you can do is a binding communication as soon as your PS gets created execute it on the hud

#

I've seen hacks where people while(PS==null) cast... blah blah

#

So literally waiting for the PlayerState to be valid in the hud

jolly siren
#

Yeah, I've seen that too. Wasn't sure if there was a better way

pallid mesa
#

I dont recommend that, if you can do a binding dispatcher

#

Its better

jolly siren
#

The problem is that PS can get created before hud or after

#

since PS is dependent on replication

pallid mesa
#

But still, what you need is PS, you wont call that function till PS isnt created ~

twin juniper
#

replicating character references is a bad idea?

pallid mesa
#

@jolly siren still dont liking "waiting" solution, you could try it out aswell

#

Since that will do what you need, right?

jolly siren
#

I don't like the waiting solution either

#

if there is an alternative

pallid mesa
#

Prolly a couple executions

#

All that comes to my mind is interface/binding action

#

But yeah you have that lil unconsistent problem

#

I think in ShooterGame they wait for it to be valid

#

Id have to check it again

#

So i guess its not as bad as we think

jolly siren
#

I've never seen that in shootergame, lmk if you find it

pallid mesa
#

It should be under HUD cpp

#

Iirc

#

They need to get PS info as you

#

Cannot check it right now cause im on mobile device but all i can say is, if it is

#

It should be on HUD cpp

jolly siren
#

okay yeah I'm looking through it

#

yeah I don't see anything like that

pallid mesa
#

Ill look a bit later on, if i find something ill let you know

unborn nimbus
#

Could anyone help? I'm spawning a replicated actor on the server but none of the clients can see it

fossil spoke
#

Are you 100% sure that its replicated?

wary willow
#

I always wish it was a requirement that screenshots be shared with these types of questions

hasty adder
#

@thin stratus you were rigt a free game on steam by default has user based hosting of sessions turned off after sending a ticket to steam a week later im they enabled it and users can now start sessions

grand kestrel
#

Someone is saying net relevancy is broken, can anyone shed any light on the matter

worn nymph
#

@jolly siren what about a looping timer with an Isvalid node . On valid call functionality and clear timer

thin stratus
#

@hasty adder it should actually happen way faster if you post into the private dev forum, but yeah

hasty adder
#

Yeah I didn't even know about that forum ha ๐Ÿ˜ƒ

twin juniper
#

should i rather be replicating player id or character reference?

#

if i want to get the character reference of remote client

#

*remote character

#

because if i'm not mistaken, it seems that character references are not the same on client and server

#

am i correct?

twin juniper
#

Guys, I need help...

#

I have a BACKAPCK blueprint class

#

the components look like this

#

When I pickup the backpack and equip it, It works perfectly. Everyone connected sees it properly attached.

#

This is the attach Function

#

On a cooked dedicated server it works as well

#

When I have 2 players connected and one equips backpack everyone sees it normally

#

the problem is

#

When a player equips backpack, he sees it normally, but when another player joins the server after the player 1 has attached the backpack, the player 2 sees the backpack on the ground behind the player1 and not attached

void canopy
#

@twin juniper you have network relevancy issue. You need to sync all the events to the new client when it connects to the game server. What is happening at your side is you have executed few functions at server and one of the client and after that another client is getting connected. So the new client which just got connected haven't executed all the functions which other clients already have.

#

Guys I've got a scenario. I want my player to login to a game server .

thin stratus
#

@twin juniper you use RepNotify variables for that. They execute a function when they are replicated. So you can call the equipped stuff in there and new joining players also execute it

#

@void canopy and?

twin juniper
#

@thin stratus the thing is, that I do... the function attachbackpack is being executed in repnotify variable

thin stratus
#

You need a database for that. Hash the pass on the client. Sent it via the connection options. Let the server check in the overridden login event (game mode) if the player is okay and accept or kick him if not

#

For checking you would let your server connect to a database

#

@twin juniper then you are using other variables in that which aren't replicated yet?

#

Make sure everything is valid. A struct containing all data being repnotify might help

neon mango
#

Does InitGameState get called once per player that joins?

#

I thought it would get called once for the entire match but my debug logs are firing twice on a match restart and I had two players

twin juniper
#

@thin stratus I am gonna send you pictures of how it works exactly

#

I am gonna try something first

#

@thin stratus Fixed... The problem was, that I was setting the RepNotify variable, which had the Attach function in the repnotify function, in the Inventory Class which was only relevant to the server and the owning client. Now when I set the variable in the character which is relevant to everyone, it seems to be woking.

abstract aspen
#

are there any good tutorials or post about getting mounts working in multy player im struggling to find much on this subject in google searches

thin stratus
#

@twin juniper awesome (:

#

@abstract aspen you basically swap the pawn with possess and put the old pawn either on the mount (physics off and attach) or remove it and turn on a fake model that sits on the mount

#

Might be easier to just use the old pawn

abstract aspen
#

@thin stratus yeh the issue im having is (and i dont know if i have missed something) i recently switched to using a player controller, and im unsure if i need to migrate the entore horse controls to the player controller

#

I did have mount working except the horse would not move

#

now unable to get it to mount

thin stratus
#

Can help later. Dinner.

abstract aspen
#

np ty

thin stratus
#

When having multiple pawns, your controls for each should remain inside the specific pawn

#

Playercontroller should only hold common controls, like open menu etc

#

@abstract aspen

#

Like the "Mount/Unmount" Button should be in the PlayerController

#

But movement should be in each of them (given they differ a lot)

abstract aspen
#

the accual movment is located in the mount bp untill thirdperson character possess it then controlls are switched from the mount to the thirdperson which are controled by the the player controller

thin stratus
#

That's not making sense

#

Your PC might consume the input

#

Resulting in the mount not getting any

#

Well, if the input events are the same

#

You def want to move input, movement etc of the character INTO the character

abstract aspen
#

i tried to take a short cut an bought the rpg inventory system and it's where my entire project took turn for the worse

thin stratus
#

Merging your project and a marketplace project takes time and a decent amount of experience

#

So be careful :P

neon mango
#

So I'm using Vinterp to try and smooth out the location of a prop from its last known client location to its new replicated location from server and its not smoothing it at all.
I think the trick is nailing down the Speed of the VInterp
I thought it should be set to the speed of the object moving but I dont' think so

timid pendant
#

Hi how would I log a Object Field. Here is the code FJsonValueObject GetID = JsonParsed->GetObjectField("_id");. I just need to log it to check what the deserialization is outputting

tawny parcel
#

What is the best way to approach a simple ready check before map change vote? How do you 'read' PlayerState through the server (gamemode)

fossil spoke
#

The GameState has all PlayerStates. You can freely access the GameState and therefore access all connected players PlayerStates

pallid mesa
#

PlayerArray <- take a look

vital steeple
#

whats best practice for spawning a replicated particle effect?

#

in this instance im just trying to spawn an effect at the location of a player that respawns

wary willow
#

@vital steeple Meh, simple multicast would be easy. You can do a local and then multicast, ignoring local.

#

If you want to be snazzy, you can just do local sims on all in the area that can view it

pallid mesa
#

just skipping the owner ~ (IsLocallyControlled()) #2 what victor said

vital steeple
#

yeah i was just wondering if theres a most efficient way of doing it

#

i want to learn to do it right now (through BP)

wary willow
#

Hmm. Depends on your definition

vital steeple
#

instead of get into bad habits

wary willow
#

What bad habits?

vital steeple
#

ive just looked back at old scripting and noticed ive done jenky stuff in the past. seems like often times i have to learn through trial and error, so my solutions can be weird

#

so i was just curious if there was a generally accepted best practice

wary willow
#

Hmm, TBH that's a hard question to answer

#

I know a few of the MP Gods on here..and they do things differently

pallid mesa
#

i'll give you a good one based on standars . . .

wary willow
#

But yeah, there are for sure ways you shouldn't do some things.

#

Those are probably the easiest to answer

pallid mesa
#

for example reliability, don't set particles as reliable

#

neither effects or irrelevant gameplay stuff

neon mango
#

Is it possible to change the net update frequency or priority of just one object in C++ at runtime?

tawny parcel
#

Thanks - just realised how obvious it was ( my macro was hiding a connector pin)

wary willow
#

@neon mango it's exposed

#

In BP

#

So I don't see why not

neon mango
#

I'm looking for it and can't find it

wary willow
#

Well shit

neon mango
#

Also their docs don't have it listed

wary willow
#

Maybe it's called something different

pallid mesa
#

i'll try to explain it then

wary willow
#

@neon mango iirc, you can only do that with actors anyway

#

So a component wouldn't have it

#

So actor/class

neon mango
#

I see, ok then

#

well actually

#

So I have to cast it then to my blueprint class I suppose?

#

StaticMesh ACtor thata has replication options

#

yet in C++ they are not there

wary willow
#

Actor...

neon mango
#

so cast ?

wary willow
#

You looked at component

#

Cast what?

neon mango
#

no they are there for static mesh actor

wary willow
#

Bro

#

Um

#

They are subclasses of AActor

#

So you might have to get default properties.

neon mango
#

Yea I can see them

wary willow
#

Or see if they are Private

neon mango
#

I'm good

wary willow
#

And only available for AActors

#

Oh. Got it. Good.

neon mango
#

yea lol

wary willow
#

Winner winner, chicken dinner.

pallid mesa
#

@vital steeple if you want to do it super cheesy, make a function that will spawn the particle in the desired location but instead calling the particle node straight away, place some networking checks in a branch before your node. That node will need to check if you are in the server (IsServer()) and the self actor has authority (hasAuthority())... i decided that writing was... bad xD

vital steeple
#

oh sweet

#

ok, saved those pictures to test with later, thank you ๐Ÿ˜ƒ

pallid mesa
#

that's the cheesiest way and sometimes not needed way

#

xD

#

๐Ÿ‘

vital steeple
#

interesting

timid pendant
#

Hello does anybody know why this "if statement" wouldnt run. It always switches back to the else statement

#

TSharedPtr<FJsonObject> JsonObject;
TSharedRef< TJsonReader<> > Reader = TJsonReaderFactory<>::Create(ResponseString);
if (FJsonSerializer::Deserialize(Reader, JsonObject))
{
FString GetID = JsonObject->GetStringField("ip");
UE_LOG(LogTemp, Warning, TEXT("%s"), *GetID);
}
else {
UE_LOG(LogTemp, Warning, TEXT("Didnt run if"));
}

neon mango
#

@timid pendant Seems like a question for Programming btw

#

so I set hitSMActor->SetReplicateMovement(false); but when I eject on the server to check the var its till on? Who do I trust?

grand kestrel
#

If I add to an array with RepNotify will RepNotify be called?

#

Or do I have to make a dummy array then set the Repped array to the dummy array for notify to call

#

I suppose I should just test for myself instead of asking

grand kestrel
#

(Yeah it does work with add)

neon mango
#

So my camera component wasn't replicating at all server to client but I enabled replicate this component on it and then it worked. But now client to server seems to still have the issue, any thoughts?

wary willow
#

@raven holly ^ Didn't you have the same issue earlier this week? Did we figure it out? It was the PCM right?

neon mango
#

Well this is a bit different, I can't recall my exact issue then, but this is a different type of player, on this player I actually have added a CameraComponent (as I wanted to add post process effects to the camera)

#

@wary willow Oh was that for Joshua or in regards to me?

#

So does replicate work both ways or only from server in general?

#

This also brings up a general confusion with how are animations even replicated in the shooter game?

#

I notice that their meshes are not set to be replicated

#

Yet the animations are working over the network

#

Post 17 here https://forums.unrealengine.com/development-discussion/c-gameplay-programming/25860-first-person-camera-movement-replication-problem/page2 says that replicated variables are sent from SERver to client (assuming that is true for components as well) that would explain why the camera reps to client from server but not the other way around. Is the normal way to use an RPC on tick to send the ptich of the camera? I"m not even sure how the yaw is getting set, I guess its just the rotataion of the capsule?

glossy wasp
#

If GameMode creates LAN session, I shouldn't need to use ?Listen on command line, right? I'm having issues where I can't connect to LAN host, IP is correct and if I cmd ping it all is kosher. I can't think of anything else

neon mango
#

@glossy wasp Just looked into the shooter game code to see how they do it

#
{    
    if (ensure(GameInstance.IsValid()) && GetPlayerOwner() != NULL)
    {
        FString const StartURL = FString::Printf(TEXT("/Game/Maps/%s?game=%s%s%s?%s=%d%s"), *GetMapName(), *GameType, GameInstance->GetIsOnline() ? TEXT("?listen") : TEXT(""), bIsLanMatch ? TEXT("?bIsLanMatch") : TEXT(""), *AShooterGameMode::GetBotsCountOptionName(), BotsCountOpt, bIsRecordingDemo ? TEXT("?DemoRec") : TEXT("") );
        UE_LOG(LogTemp, Warning, TEXT("Loading Map: %s"), *StartURL);
        // Game instance will handle success, failure and dialogs
        GameInstance->HostGame(GetPlayerOwner(), GameType, StartURL);
    }
}```
#

They seem to append ?listen if its lan

glossy wasp
#

How would I do that from command line though? Right now I'm trying:
WindowsNoEditor<Project>.exe <Mapname>?Listen -Game

#

But it won't even launch the map, it goes to the start up one defined by project

#

This is shipping build, which maybe disables this stuff I guess

neon mango
#

@glossy wasp Yea you can't do that with a shipping build

stark dome
#

@neon mango replication is only ever from server to client

neon mango
#

Yeaa..

#

Should I be concerned if I added a camera component to the shooter games player when its code was setup to work without one?

#

I'm suspecting that is why my pitch isn't replicating but not sure

#

@stark dome I believe I've gotten the grab replication quite well with your advice but I can't replicate pitch from client to server and that I believe is the last peice of the puzzle for this

stark dome
#

Hmm I'm not sure of the best way to handle that

neon mango
#

Yea most of what I read online speaks about how to get the rotation for AnimationOffsets, the ShooterGame has GetAimOffsets, but I'm not sure if that is what I need in this case?

#

Its just that I pick an object up, that I move up and down client side but that up and down movement isn't reflected.

grand kestrel
#

Ah was there a way to force repnotify to fire from c++ even if the value isn't changed

stark dome
#

You can just call it. When would you want it to be triggered

grand kestrel
#

Oh ๐Ÿ˜ Yeah..

neon mango
#

I'm just confused why Yaw is being replicated ok but not pitch?

raven holly
#

camera is not replicated fully

#

Yaw is, but you have to replicate pitch yourself

#

it does replicate, but it's not exposed to blueprints for some reason

neon mango
#

@raven holly Thank you for telling me this!

#

FYI i'm in C++

raven holly
#

oh you can expose it then

#

pawn or character ?

neon mango
#

Character

raven holly
#

ok character has it somewhere

#

let me find it

neon mango
#

GetBaseAimRotation ?

raven holly
#

could be yeah

grand kestrel
#

Pitch is

raven holly
#

is it exposed to bp

#

pitch is replicated, but isnt exposed to bp

grand kestrel
#

Yeah GetBaseAimRotation has it

raven holly
#

you have to expose it yourself

grand kestrel
#

It's in GetBaseAimRotation

#

The replicated pitch

raven holly
#

yeah so expose that ^^

neon mango
#

so what confuses me here is, is the fact its replicated enough? I mean replication is from server to client only right? How will client rep to server what its doing?

grand kestrel
#

No it's already exposed

raven holly
#

@grand kestrel i know for a fact it doesnt replicate correctly in bp

neon mango
#

Is this directed to me?

#

I'm not using BP?

#

Do I have to do this in BP?

raven holly
#

no

grand kestrel
#

I'm using it

raven holly
#

it should be available to you then @neon mango

#

GetBaseAimRotation

grand kestrel
#

It works for me in BP

neon mango
#

Ok I'm still not clear as to what I need to do here?

raven holly
#

@grand kestrel did they recently change it ?

grand kestrel
#

Don't think so

raven holly
#

it might be owner only

#

as i tried using it for my aim offset

grand kestrel
#

That's exactly where I use it

raven holly
#

show me?

neon mango
#

Its not clear to me exactly how the client will get to tell the server "hey I'm looking up and down!"

#

if I read POVRot.Pitch wouldn't it just be the pitch the server has?

raven holly
#

Ahh yes

#

it's owner only

neon mango
#

are we all having the same problem lol?

raven holly
#

@neon mango what are you trying to do again

neon mango
#

Client looks up and down with a grabbed object, and server doesn't reflect the looking up and down action

#

however server looking up and down does seem to reflect to client

#

Yaw is fine for both

grand kestrel
#

It's not owner only

raven holly
#

It should

#

@grand kestrel strange then

grand kestrel
#

You're doing something else wrong

#

I use it for the offset, both the owning client and every other client can see my character's head turning, up, down, left, right

#

From base aim rotation

raven holly
#

strange maybe they changed it

#

i know for years it didnt worry about pitch

grand kestrel
#

It's always worked

wary willow
#

Aliens

neon mango
#

Actually I'm wondering if its as simple as this lol PhysicsHandleComponent->SetTargetLocationAndRotation(HandleLocation, GetAimOffsets());

#

giving it a shot

raven holly
#

this is what base rotation does

#

lol

grand kestrel
#

For one thing

#

It's pointless to replicate Aim Rotator

#

For another, you don't need to set it on server

raven holly
#

you do for other players to see it

#

lol

grand kestrel
#

No

#

You don't

raven holly
#

yeah.. you do

grand kestrel
#

That's the entire point

raven holly
#

๐Ÿค”

grand kestrel
#

Replace AimRotator with GetBaseAimRotation in the anim graph

#

Or wherever you're using it

raven holly
#

yeah he will look sideways

#

lol

grand kestrel
#

Did you do it?

#

Coz it works for me

raven holly
#

you must have a weird aim offset

grand kestrel
#

๐Ÿ˜

#

You must have weird logic

#

๐Ÿ˜›

raven holly
#

no i know for a fact you have to do some things to replicate the aimoffset fully

grand kestrel
#

-___-

raven holly
#

how well have you tested yours?

grand kestrel
#

It's working, very clearly

#

I wonder why you choose to question mine when mine works and yours doesn't ๐Ÿ˜›

raven holly
#

ok ill try it for the sake of it

grand kestrel
#

Instead of questioning why it's not working for you

raven holly
#

like ive already researched all this months ago

#

lol

grand kestrel
#

@regal hazel Care to weigh in?

raven holly
#

So you're saying plugging this in will work 100%?

grand kestrel
#

Sure, unless you've done somethign else weird

raven holly
#

Doesnt work

#

up and down works fine

grand kestrel
#

It works

raven holly
#

but he is facing sideways

#

lol

neon mango
#

@raven holly Are you trying to get the aim offset to work in multiplayer?

grand kestrel
#

Yeah but that's your code

raven holly
#

no ive already done it all

#

my aim offset works flawlessly

grand kestrel
#

A suboptimal solution isn't flawless

#

Because you're replicating somethign that already is

raven holly
#

the yaw doesn't replicate correctly in baseaimrotation

#

it seems

grand kestrel
#

But the pitch does

raven holly
#

yeah

#

i knew it was one or the other

grand kestrel
#

You would use the character's rotation for the yaw

raven holly
#

not always

#

what about if the player looks sideways

grand kestrel
raven holly
#

my players can look side to side

grand kestrel
#

Same

#

And up and down

#

Nothing replicated that isn't already

raven holly
#

๐Ÿค”

grand kestrel
#

Well, I'm going back to my work this is sidetracking me

raven holly
#

sure lmao

#

Thanks for you input ๐Ÿ‘

grand kestrel
#

Uhhuh, hope you find the solution

raven holly
#

for what?

#

nothing is broken for me lol

grand kestrel
#

For a flawless solution then

raven holly
#

oh meh

#

not worried tbh

#

better things to worry about than cosmetic animations

#

only thing i should be worried about is the cost of replicating that rotator

#

I see you convert to 2D, do you notice much difference using that?

grand kestrel
#

Replicating rotators does cost a noteworthy amount especially if you aren't compressing them

#

That vector2d isn't replicated so no lol

raven holly
#

Oh true, I swear i seen it replicated ^_^ any reason you move it to vector2d?

grand kestrel
#

Don't need the third axis, doesn't really matter if you use a vector or vector2d though

raven holly
#

ok

neon mango
#

btw I did end up figuring out my problem

#

Using the GetAimOffsets I added the pitch value there to my to my final location vector's Z value

raven holly
#

Found it ๐Ÿ˜‰

#

Goodbye replicated rotator ๐Ÿ˜‰

grand kestrel
#

@raven holly Great ๐Ÿ˜ƒ

#

If you're gonna replicate rotators it can help if you round them btw

#

Same for vectors

#

That might fall under premature optimization for a lot of people though

raven holly
#

true

#

i am at the stage of net optimisations

#

Trying to get ping down

halcyon abyss
#

Hello guys,
I'm struggling with an issue here... I have a multiplayer game available on steam.
It uses Unreal 4.15 (binary) ... When transitioning between maps... I use seamless travel, I really wouldn't need it if it weren't for the fact that server travel does not work on steam without seamless enabled. Using seamless travel has been a nightmare... Crashes due to dynamic materials on pawns (horrible bug, I now destroy all pawns before traveling and seems to fix it). Anyway I still get some crashes here and there, and they are always on the client side. I would really like to debug them but to test the game I have to use the packaged game... I would like to read the stack trace upon crashes but I need to activate symbol debugger...But I read that is something that is going to be removed and it is unnecessary. How can I debug crashes then?

Another question: do you guys think it is just better to use open level instead of seamless travel... Have all the clients disconnect and reconnect and solve many of the issues related to seamless travel? Or is that just a horrible solution?

worn nymph
#

Sorry can't really advise I havnt used seamless travel. What is your game ?

halcyon abyss
#

the title?

#

Run Of Mydan

sterile pebble
#

is there any difference to how navmesh stored with dedicated server setup?

chrome bay
#

nope

#

same in all worlds

#

@halcyon abyss to debug clients on Steam you don't have to package and upload it to steam. Package the game on each machine in Debug mode (include debug files), then from visual studio launch in 'DebugGame' mode instead of DebugGame Editor.

#

However if you want Engine debug symbols, you need to compile the engine from source and use that

#

Launcher build doesn't package them even if you selcet 'include debug files'

#

(in my experience anyway)

halcyon abyss
#

hey jamsh thanks for replying :)
I started debugging on steam due to the fact that I had issues with server travel only on steam

#

What i was interested in was debugging the crash dumps... is that possible with the DebugGame Package?

chrome bay
#

If you launch in 'DebugGame' and Steam is running, it should launch with Steam support no different to how it would if you DL'd it through Steam

#

Yeah you cna so long as it's packaged with 'Include Debug Symbols'

#

You should get minidumps, but you'll only be able to debug them on the machine that actually did the build - otherwise PDB's may not match up etc.

halcyon abyss
#

Alright thank you! I'll give it a try ASAP

chrome bay
#

np's

halcyon abyss
#

I can't see the options under the menu in the launch editor

#

i see them for another engine versio

#

but not for the 4.15.3

chrome bay
#

File->Package->Packaging Settings

#

then under 'Project' there's a checkbox

halcyon abyss
#

oh ok, thought i had to do it from the launcher ๐Ÿ˜ƒ

chrome bay
#

Nah although it may also help to download Debug Symbols as well for that engine version

#

Also you could always launch a 'Standalone' version of the game and attach visual studio debugger to it

past bear
#

realised I should have asked this here:
strange question - but if my multiplayer games mode need to have two FText fields to describe them (i.e., their name, and description), where should I ideally be putting those fields?
I need to be able to display both on connected clients, but of course, the game mode does not exist on the client
I also do not want to replicate them
is the client at least aware of the game class?

past bear
dark kernel
#

if I enable bReplicateMovement to true in the constructor, should that be all I need for an actor to have its movement replicated or is there some other voodoo i need to do?

sterile pebble
#

you also need to enable bReplicates

dark kernel
#

Oh right.

#

Getting coffee before i miss any other obvious things >.>

past bear
#

how well it will be replicated is another question, however

dark kernel
#

Yeah it doesnt seem to be working, and I'm a little new to networking, so not sure how to debug replication problems

tawny parcel
#

Are event dispatches reliable?

#

Or is repnotify reliable? I dont think it is?

jolly siren
#

@tawny parcel they aren't related to multiplayer.

tawny parcel
#

Yea, so I have a call event in a rep notify

#

So that would be, is the repnotify reliable

jolly siren
#

reliable in what sense?

#

a repnotify will always be called if the replicated property is received

tawny parcel
#

Oh actually I think I might know the issue thanks

jolly siren
#

np

dark kernel
#

@jolly siren could/should I use a repnotify to see if a replicated property is actually being replicated? or is there a better way to debug replication?

#

right now I don't think things are being replicated right in my project, and trying to figure out why/wheer

jolly siren
#

yes that is a good way to debug it

dark kernel
#

awesome thanks

jolly siren
#

sure np

dark kernel
#

aaaand think i found the problem. Heh all my pieces on my client were set to ROLE_Authority instead of Simulated

slate iris
#

so I got a couple questions

#
  1. How should I start rebuilding my SP game to be MP (I have almost everything being done in the controllers for the two character types)
#
  1. How do I make it so that only one of those charcters uses a certain LUT
thin stratus
#

Ehm, you basically recode the game from scratch for MP. Obviously with most logic already done but you'll see yourself recoding it

#

That's why you start MP games with MP and not SP

#

Start with the base of the game.

slate iris
#

is it not built into the CMC anymore?

#

I thought the character movement component replicated automatically

thin stratus
#

Yeah, but only movement like forward etc and maybe jumping

#

Everything unique to your game has to use replication

slate iris
#

im pretty sure launch, jump, crouch, and movement are all replicated by default

#

firing a weapon is not though

thin stratus
#

Crouch idk, didn't know that's native in there

#

Jump is, launch alone probably too

#

But that's not really what makes up a game. :D

#

Well if you have a jump and run game maybe

#

But even that usually has special input, moves, interaction etc

slate iris
#

Right but that's about how far I am at this point. The only things I have left character wise (not including the art/animation) are projectile weapons with replication and hitscan weapons with replication

#

and pickups

thin stratus
#

Yeah well, enter 2 players, either with or without dedicated server checked and see if everything works

grand kestrel
#

CMC predicts the movement, jumping, crouching, and a bunch of other stuff that aids in the predicting of the aforementioned

#

You can derive from a lot of the prediction classes and add your own stuff but it's no walk in the park for someone who hasn't already been there

slate iris
#

I added a ball to the bottom and a ball to the camera that I moved to the top (of the capsule for my characters) and they seem to function just fine so far in MP

#

just need to do the weapon logic and figure out how to stop the physics fuckery

grand kestrel
#

Physics fuckery in MP will remain fuckery without a lot of work or poor result

slate iris
#

like when I jump on top of a physics enabled cube, it freaks the fuck out on one client but not the other

#

no cheaty way to fake it huh?

twin juniper
#

sounds like the physics object isn't being replicated

slate iris
#

should be. I have it set to replicate in details?

#

okay well now everything is replicating correctly, but the physics gets fucky if I jump onto a physics object

lament kettle
#

Anyone here have experience with GameSparks?

wary willow
#

@lament kettle Instead of asking it like that. Just ask your question so anyone who does can easily answer.

lament kettle
#

@wary willow my question is, has anyone been able to use GameSparks to create servers on the fly using AWS?

#

Or dedicated servers in general.

grand kestrel
#

My repnotify is no longer being called (even if I call it specifically from server) after I changed the variable type from a struct to an int32

#

This is in C++

#

NM the problem was PEBKAC as it usually is

#

I was suspecting maybe there was a generated header problem ๐Ÿ™„

gleaming vector
#

@lament kettle I was looking into that earlier this year, but never found a good solution

#

they dont have the AWS Sdk installed in their runtime

#

and AWS's web api doesn't give you control over things like GameLift

lament kettle
#

whats the point of game sparks if you cant machmake dedicated servers?

gleaming vector
#

you can, but I don't know how to spin them up dynamically

lament kettle
#

ah

#

im thinking a node js script

#

like that one dude

gleaming vector
#

if you manually bring up some servers and put your server exe

#

on them

#

you can matchmake with them

lament kettle
#

gamesparks --> callback to node js server --> aws create

gleaming vector
#

but that isn't scaleable

#

that's what I was thinking

lament kettle
#

but?

gleaming vector
#

it kinda defeats the purpose of using gamesparks though, as you now have your own back end stuff

lament kettle
#

true

#

you can always use your own server

#

as a master

gleaming vector
#

so at that point, why pay in full for a service you have to work around

lament kettle
#

and then aws as runtime

#

what do you mean?

gleaming vector
#

Gamesparks isn't cheap

#

once you get users

lament kettle
#

100k?

#

2 cents per user is expensive?

gleaming vector
#

if you are at the point where you need to dynamically spin up servers

#

then you have enough users for 2 cents per MAU to be a heafty amount of money

lament kettle
#

the severs will cost like $1 to spin up per day

#

wont they?

gleaming vector
#

but I mean user count

#

it's monthly active, not concurrent

lament kettle
#

yeah i guess it is expensive

gleaming vector
#

it's not that the service isn't great, I really like it

lament kettle
#

2 cents * 1mill = $20k

gleaming vector
#

but if you are working around it, why are you paying for it?

lament kettle
#

true...

gleaming vector
#

and not building out the specific features out yourself

#

GameLift is 'free' in that you only pay for the server time

#

and it handles pretty much all of the matchmaking

#

but you don't get a lot of the other backend services

lament kettle
#

So your telling me to use gamelift + my own backend for stats?

gleaming vector
#

maybe

#

like I said, I haven't come up with a solution here that I like

lament kettle
#

if i was a cheap

gleaming vector
#

I just ran into some issues

lament kettle
#

i could always

#

just do

#

master server list --> stats node js / dedicated servers

gleaming vector
#

lets not drop casual antisemitism here

lament kettle
#

i edited my message

#

immediately...

gleaming vector
#

consider that a warning ๐Ÿ˜ƒ

#

anyway

lament kettle
#

no one saw it

#

only you and me

#

anyways

gleaming vector
#

and I am a moderator lol

lament kettle
#

oh

#

lets pretend then

#

it never happened

gleaming vector
#

anyway

lament kettle
#

shhh

#

yeah

#

so

#

any ideas??

gleaming vector
#

well

#

what are your goals

#

are you looking just for server hosting and matchmaking?

lament kettle
#

Im trying to make a game where you login, and then get to play as a faction

gleaming vector
#

or do you need the stat tracking and friend stuff that gamesparks gives you?

#

ok

lament kettle
#

and each "season" the faction war ends

gleaming vector
#

so, you do need that back end stuff

lament kettle
#

and you get to pick a faction again

#

yeah i understand that

#

thats why i was thinking of using GameSparks

gleaming vector
#

so maybe your best solution is to just make a little js layer between gamesparks and your servers

#

take a look at amazon game lift

#

you can probably use it just to manage your servers

#

and then write a layer between gamesparks and gamelift

#

it's not fully ideal, but it'll work

lament kettle
#

I think ill do some network tests

#

to see if i can even do this

gleaming vector
#

yeah

lament kettle
#

i dont want to create the game

gleaming vector
#

that's a good idea

lament kettle
#

and then realize ic ant

#

yeah

#

if i figure it out

#

ill share it with you

#

probably make a yt tut

gleaming vector
#

cool, I'd appreciate it

#

I ended up dropping the idea of doing dynamic servers and instead do listen servers

lament kettle
#

so you created a master server list?

gleaming vector
#

nah