#multiplayer

1 messages ยท Page 314 of 1

bronze lava
#

@fierce birch I'll try it, thanks for the suggestion!

fierce birch
#

@bronze lava you can copy/paste even landscapes

#

have done that before once had to downgrade some test project

#

besides landscape data, you are technically just copy/pasting asset references and locations, so if you have the same uasset on other project, that solution works from one map/editor to other map/editor

#

I now mean the items in world outliner, not just copy/paste the map uasset

bronze lava
#

Alright so I'll import the new assets first in to my 4.14 project, and then copy&paste assets from the map?

fierce birch
#

they need to be the same assets, I dunno if importing will work, you could try though

#

all in all, map instanced assets need to exist on the project where you are pasting them on map

bronze lava
#

Hmm. Well, I'll try and report back if it works :)

bronze lava
#

@fierce birch It worked, kind of! I have some manual work to do, but thank you!

fierce birch
#

np, that's a handy thing to know

#

one thing that many don't know is that you can copy/paste landscape from map to another

bronze lava
#

I didn't for sure :)

golden crown
#

Hey, i just have finished setting up dedicated server on linux, working very well... but with a very big flaw, as i find out later. Everytime Restart Level happens, the used memory goes up by around 50mb without being freed.
I googled it and i stumbled across this: https://issues.unrealengine.com/issue/UE-34423

#

Seems there is a long time memory leak when using dedicated server in combination with runtime map changed. There are no memory leaks on the client, only on dedicated server

#

Is there any solution for this yet?

hazy siren
#

anyone gotten amazon gamelift working?

#

I've got everything building, I upload a build, create a fleet, but gamelift insists that I'm not calling InitSDK

#

my server is actually running, though, I can connect to it

bronze lava
#

Hey all, seems like the "jitter" issue actually wasn't on 4.15, it happens with 4.14 aswell. Sorry. Any advice on why CharacterMovementComponent is extremely jittery when connecting across the internet even with good ping?

#

Just tried with Net Pktlag=100, the movement is extremely jitterish. Is there no clientside smoothing on CharacterMovementComponent?

#

When sprinting, the jitter is much much less noticeable.

bronze lava
#

Just checked one of my earlier builds, and the movement is very smooth. I must've done something wrong.

golden crown
#

@bronze lava does this happen all the time, or only when interacting with physical actors?

bronze lava
#

@golden crown all the time :/

golden crown
#

okay, let me check something, there is something that might help you

bronze lava
#

Alright, thank you.

golden crown
#

but as far as i can say, we don't have character movement issues in 4.15 with jitter, only when interacting with physicall actors

bronze lava
#

Yeah, I just noticed that it happens with 4.14 aswell

#

Didn't happen before so there's definitely something I've accidentally changed

golden crown
#

alright, a very useful tool to track such jitter issues is the console command "p.NetShowCorrections"

#

just open the console in editor, call that command and always when this jitter happens, it will visualize it

#

i mean, if a server->client correction happens

#

use the output log to see whether NetShowCorrections is enabled or not (its a toggle command)

bronze lava
#

@golden crown Do I use it with net pktlag?

golden crown
#

just as you want

#

probably there are permanent corrections in your project, with high and low ping

#

but with low ping, they are too small to see them

bronze lava
#

Well I do see a lot of red & green, which I assume are the corrections?

golden crown
#

yes

#

red means client position (which is incorrect) and green means server position (the correct one, where the client will teleport to)

#

this, in my case, almost never happens (even with a very high ping)

#

but it starts to happen all the time when interacting with something dynamic in the world

#

like a moving platform, physic objects, such stuff, where its not possible to predict the movement in the real way

#

when you have this corrections all the time, if you are just moving on static objects, then there must be something in the blueprint/c++ code of your project causing this missmatches between server and client

surreal prism
#

Why dedicated server in shipping configuration don't have logs? :(
I'm must use Development configuration for logs?

bronze lava
#

Hmm so I checked, and there seems to be equally as many corrections on both my old & new builds. The old builds have smooth movement, though.

#

Actually this is interesting. There are only corrections when sprinting, when walking, there are none. This isn't the case with the new build, though.

golden crown
#

@bronze lava Ah maybe the server/client don't know anything about the sprinting/walking mode?

#

@surreal prism well, guess shipping is uh... shipping, meaning it will cut out stuff which is not needed to work. Makes sense in terms of performance etc. if you really need the logs, then you need to use the development configuration, yes.

bronze lava
#

Hmm, that could be possible. I just tested, and in the new build, there are no corrections at first when walking, but when sprinting, there are corrections, and when ending sprinting, there are corrections. Pretty confusing. @golden crown

golden crown
#

@bronze lava in common, corrections can happen. In your case, you should send an event to the server when starting to sprint but you should directly set the sprinting mode on the client (not on multicast), same for ending for sprint.

#

this may fix the issue

surreal prism
#

@golden crown thank you ๐Ÿ˜Š

bronze lava
#

@golden crown for now, I completely disabling sprinting and am soon going to check if that was the problem.

golden crown
#

@bronze lava Okay, and uhm, in terms of smoothing, i have tested out a pretty well solution as well (there are different levels of this solution)

bronze lava
#

@golden crown Even disabling sprinting didn't fix the problem. Mind telling a bit more about it? :)

#

It's strange how there were absolutely no network corrections in the old build, but now there are loads.

golden crown
#

okay, for smoothing, its very very important to implement a visual only smoothing

bronze lava
#

Hmm, I'm only using blueprints, though.

golden crown
#

you can implement a visual only smoothing by only use blueprint ๐Ÿ˜ƒ

#

just have the logical actor and hide it

#

and the visual actor which interpolates towards the logical actor

bronze lava
#

That is definiately something I should implement, but it's still important to fix the underlying issue first, I think.

golden crown
#

by this approach, you even can split up logic and visual a little bit

#

yes it is, i cannot tell you why you have so much corrections, for our project, its working so far

bronze lava
#

I'll just have to keep looking. Now if only I had a backup of my old project. :/

golden crown
#

but i hope these correction visualizations will help you a little bit, its a nice tool

bronze lava
#

I'm sure it will! Thank you :)

thin stratus
#

Okay so, just randomly to check if I should add that to my Compendium:

Who knows how to use the Ping variable of the PlayerState correctly?

uneven marlin
#

When is the correct moment to set the name tag of a player in a multiplayer game? I'm finding that if I do it right away, players that join my game don't see the name being set for the players that were already in the game. Note, this is for a simple POC using blueprint.

neon mango
#

So it seems as though a certain pawn of mine isn't able to do damage when they control it client side, but works Server side and another pawn works client side and sever side? Not sure why this pawn would not be able to do damage.

worthy wasp
#

hey all - just prepping ahead here - if i had a TEXT component on an actor (pickup item for example) and i wanted to rotate this text to be facing the player character (IN MULTIPLAYER) how would i pull this off so its only to OwnerSee and have the rotation set to YOU AS TEH PLAYER - and not to someone else who is also viewing this object?

surreal prism
#

someone uses AdvancedSessionsPlugin it's working well with steam? )

worthy wasp
#

I have it workign @surreal prism - whats your questions?

#

peer to peer that is - dedicated server is another ball of wax i'm not familiar with

#

@surreal prism ?

surreal prism
#

and p2p and dedicated ๐Ÿ˜‰

worthy wasp
#

i dont understand

surreal prism
#

default Epic SteamSubsistem have a problems, it's show ping 9999 for p2p sessions, also i can't get PlayersCount/PlayersMax for p2p sessions

worthy wasp
#

yes i see ping as 9999 as well - even connecting peer to peer

#

but your playercount/max should work fine

#

you're getting this from your SESSION right?

#

whenever you FIND SESSION - you'll be creating a widget i assume for each session. any way you do it, store the FindSession[] into a variable

#

so you can use the SESSION for the PlayerCount/Max like you say here

#

in my own projects work - i do a FindSession -> ForEachLoop -> CreateWidget()

#

each widget is a button with some variables in it - which takes session information and stores it in each widget

#

therefore you can pull stuf flike above

#

ServerName

#

Ping

#

Characters Max/Current

surreal prism
#

i'm use FindSessions, after it's success i'm iterating array of FOnlineSessionSearchResult
i'm can't find CurrentPlayers in FOnlineSessionSearchResult

#

it's has NumPublicConnections

#

it's MaxPlayers
but where is CurrentPlayers? ๐Ÿ˜ƒ

worthy wasp
#

ah ok you're using code not BP's

#

1 sec

#

Session is a variable of FOnlineSessionSearchResult

#

does it have exposed methods?

#

session.?

#

i cant find anything under SESSION - i would ASSUME its a struct type

#

but its not showing anything here

surreal prism
#

@worthy wasp how in blueprint you get CurrentPlayers? _

slim holly
#

from session GetCurrentPlayers and GetMaxPlayers

worthy wasp
#

^^

surreal prism
#

ok, thank you)

worthy wasp
#

each widget has a session variable stored to it

#

so you can get things l

#

this is in the child widget thats created for each ServerList (ROW)

#

SeachResult = type BlueprintSession

surreal prism
#
return Result.OnlineResult.Session.SessionSettings.NumPublicConnections - Result.OnlineResult.Session.NumOpenPublicConnections;

thx, found solution in source ๐Ÿ˜‰

#

why ping is 9999 for p2p? ;)
it's steam feature?

slim holly
#

unreal engine feature

#

Epic doesn't think it's a bug

#

dunno, maybe it's appid related

thin stratus
#

It's known to Epic though

#
#define MAX_QUERY_PING 9999
521    
522    /** Representation of a single search result from a FindSession() call */
523    class FOnlineSessionSearchResult
โ€ฆ    
527        FOnlineSession Session;
528        /** Ping to the search result, MAX_QUERY_PING is unreachable */
529        int32 PingInMs;
#

Constructor seems to fill it

FOnlineSessionSearchResult() : 
        PingInMs(MAX_QUERY_PING)
{}
#

I could be wrong, but as far as I can see, the Ping is never filled

#

Which would result in the MAX_QUERY_PING to be taken

#

They are always constructing it like this FOnlineSessionSearchResult* NewSearchResult = new (SearchSettings->SearchResults) FOnlineSessionSearchResult();

#

And then only passing the Session pointer of that SearchResult struct if (!FillSessionFromLobbyData(LobbyId, NewSearchResult->Session))

#

Only part where they actually fill in the Ping is in void FOnlineAsyncTaskSteamFindServerBase::ParseSearchResult(class gameserveritem_t* ServerDetails)

// Fill search result members
FOnlineSessionSearchResult* NewSearchResult = &NewPendingSearch->PendingSearchResult;
NewSearchResult->PingInMs = FMath::Clamp(ServerDetails->m_nPing, 0, MAX_QUERY_PING);

#

But no idea what the difference between the class OnlineSessionAsyncServerSteam and OnlineSessionAsyncLobbySteam is and when which of them is used and when not

#

@BorMor#5075 @slim holly

#

Why can't I tag him

#

-.-

slim holly
#

@surreal prism ?

#

yer borked

thin stratus
#

Discord. I hate you

#

Well yeah, but above is what is probably causing it

slim holly
#

blargh

#

my mega-logic gate is broken

surreal prism
#

Thanks, I understand ๐Ÿ˜ƒ

slim holly
#

Does NetQuantize have performance impact when ran into huge bunches?

thin stratus
#

I would just monitor it

#

Faster to answer than to wait for someone to know

hazy siren
#

I mean the answer to that question is always "yes, depending on your definition of impact and huge"

#

the intention is that the time taken to quantize the values is made up for in sending smaller / fewer packets so you'd have to profile to find out if that tradeoff isn't working for you

cloud ledge
#

You can probably make your own quantizer by just bitmasking and bitshifting your values

#

By cleverly considering what input data ranges there are and so on

#

That would cost you nothing

bronze lava
#

Hey all, I'm still struggling with an issue I have had for some time with my CharacterMovementComponent. When connecting from across the internet, the client experiences extremely jittery movement and the server constantly corrects the movement. It seems like the movements between the client & server aren't in sync. // This didn't happen before, so I must've accidentally changed something. Any advice is appreciated on what could cause this.

slim holly
#

commonly issue that client tries to set actor location while server is doing so too

#

therefor server constantly corrects it because it's lagging behind, while in reality it's up to date

bronze lava
#

@slim holly thanks, but I found out that it was happening because CapsuleComponent was set to replicate. Disabling this fixed it. :)

drowsy zodiac
#

I am interested in looking into making an in game purchasing system. Can anyone point me in a direction?

ivory parcel
#

Does anyone know if the engine resolves SRV records in DNS ?

regal hazel
#

@thin stratus off the back of your question yesterday, what is the correct way to use ping in playerstate?

#

From my understand you shouldn't use ping directly if you want to display it, should use ExactPing instead right?

thin stratus
#

The thing why I'm asking this is

#

That the Ping in PlayerState (not the one in SessionResults) is in byte

#

You need to multiply it by 4 to get the actual ping

regal hazel
#

Yep, makes sense ๐Ÿ˜ƒ

jolly siren
#

hmm I've had steam dedicated server working for forever. but when I upgrade to 4.15 it's not automatically copying over my steamclient.so file from D:\UnrealEngine-4.15\Engine\Binaries\ThirdParty\Steamworks\Steamv132\Linux to my built project. Trying to remember if I had to do anything to get that working. Anyone know?

#

(Linux)

#

ahh I see, I think it was the pull I was using that was copying that file over for me

#

thanks guys

neon mango
#

Any tips for replicating ragdoll physics ?

cloud ledge
#

Do you have to replicate ragdoll physics

neon mango
#

Well right now if cilent moves a dead body, no one else sees it move

#

It even seems like if the host moves a dead body, no one else sees it

vestal yew
#

Frustrating interface issue: under Play-advanced setting, options that are only exposed when you un-tick "Use single process", "play as client" and play as "listen server" are retained even when you tick use single client and they are no longer visible, steam will not work unless you un-tick use single process and reset the option to use "offline",

thin stratus
#

Since when is steam working in PIE anyway?

vestal yew
#

when you launch the stand alone from within UE editor the above settings effect the stand alone, they shouldn't but do.

vestal yew
#

Sorry should have mentioned was using Stand alone, and the multiplayer options in separate section below it over ride stand alone. Selecting and deselecting an option in multiplayer options hides sub options, the sub options are still active but hidden, so if you forget you changed something here you won't see which sub option is selected.

ocean dust
#

Hey all. How can I track down why my Steam multiplayer sessions are not found by other players?

#

I had this working a while back, but now it doesn't work and I don't understand why

twin juniper
#

Are you sure you set everything up right? @ocean dust

dusty sleet
#

@ocean dust i was just about to ask the same question.. it was working for me for the last month then yesterday.... not working. didnt change the code for that part and didnt modify the ini files at all. on build i get SteamAPI disabled!

ocean dust
#

@twin juniper No! That's kind of the point. How am I supposed to know if it's all set up right?

#

It's a tangled mess of plugins, .ini files, build scripts, and Steam magic

dusty sleet
#

Well mine is setup right.. it was working the day before yesterday and none of the bits for that part changed at all

#

which makes it hard to figure out why it just stopped working now

ocean dust
#

That makes me feel worse

#

Like it's out of my control. And I don't like that

dusty sleet
#

the engine is kinda buggy all around like that to be honest. one of my character classes reverted to defaults of some things randomly as well on a failed build.... its really frustrating

ocean dust
#

Is the Steam matchmaking service down, perchance?

#

Yeah

#

I have mixed feelings about Unreal for these reasons

#

It's obviously built to be a professional tool

#

But some of the random bugs are perplexing and, quite frankly, terrifying

dusty sleet
#

i doubt it... since yesterday.. seems unlikely it would still be down. the build failed because i did a LOT of work between builds and there was some orphaned variables being referencd. i cleaned it all up based on the logs. but since then my one char class was fubar'd... no explanation as to why... think i got that all fixed again but the matchmaking is also down

#

and i dont know if its related. but none of the code for that was touched and no reason to have edited the ini files. so I dont know what its problem is.

#

builds fine now. but. no matchmaking

ocean dust
#

Huh. Well, please let me know if you (or anyone else) has a reliable way of tracking down multiplayer session issues

dusty sleet
#

you said you had yours working at one point?

ocean dust
#

Some time ago

#

But SOO much has changed

#

I didn't expect it to work this time around, but I want to know why it doesn't work

dusty sleet
#

well not muhc has changed around the sessions handling really.. but i havent found a good way to test Steam match making in the editor if its even possible. I used to use my own tomcat server to handle the session listing.. started using the steam one a month ago.. its limited but it works (well it used to). Its pretty straight forward. So in terms of troubleshooting.. i donno. I upload the build to steam and then try it on two pc's. I know its passing through the create session stuff because its loading the map afterward. but the sessions aren't listing for others all of a sudden. not sure how to track that

ocean dust
#

"upload the build to Steam" <- what does that mean?

#

I've never done that

#

Also, are you using the Advanced Sessions plugin?

dusty sleet
#

Oh. I have my game on Steam as an app. I upload the build there and run it from the Steam interface

#

Ya I am

ocean dust
#

Ah gotcha

#

Haven't quite gotten that far yet. Still using the Spacewar ID (408)

dusty sleet
#

hmm.. i might have just "fixed" my issue. I'll see when the build completes. Was getting an error that it couldn't load defualt online system Steam. I just deleted my DefaultEngine.ini file and replaced it with one from like a month ago (since it hasn't changed at all) and tried building again.. didnt get the error in the log this time

ocean dust
#

wat

#

How is that a solution? How did you even think to try that?

dusty sleet
#

The log when packaging says Something like "cant load default onlinesubsystem STEAM using NULL

#

in the DefaultEngine.ini you specify the default system so i thought maybe for some random reason it decided today it didn't want to be able to read that file anymore

#

this was the error I had in the log. LogOnline:Warning: Unable to load default OnlineSubsystem module Steam, using NULL interface

#

do you have that in your log?

#

I guess the first question is do you have the Steam info set in your DefaultEngine.ini file to start with

ocean dust
#

Yes, I think so

#

as in: yes, I have changed my DefaultEngine.ini file

#

is it the right changes? I dunno.

#

Would be SUPER COOL if this was in an Editor interface somewhere

#

but that would be too easy

#

too many people would be able to easily make Steam games if they did that

#

I have this part:

#
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")```
#

Is that supposed to be under Engine.GameEngine or Engine.Engine? Or both?

dusty sleet
#

is that ALL you've added to the default file?

ocean dust
#

no

#
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
bVACEnabled=000000

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"```
#

Also tried SteamAppId=480 but that didn't seem to change anything

dusty sleet
#

for the first line i only have it under
[/Script/Engine.Engine]

ocean dust
#

and yours works?

dusty sleet
#

for the last month and a bit up until last night... yep

#

and maybe now too since still havent seen the error in the log

ocean dust
#

Hmm alright. Will have to try that later

dusty sleet
#

the rest looks fine to me. i have more stuff but i dont think its needed.

#

did you add this [/Script/Engine.GameEngine] ?

#

because I don't have a section called that at all in my file

ocean dust
#

Yes I did

#

So probably Engine.Engine is correct

twin juniper
#

@ocean dust a mess? it's relatively simple

#

try the advanced sessions plugin

ocean dust
#

I'm using it

twin juniper
#

pardon the mess, its test code

#

๐Ÿ˜›

#

also, is your online subsystemsteam plugin enabled?

ocean dust
#

In the plugins browser? Yes

#

Also, I've slaughtered at least two goats

#

and said some incantation

#

but I'm not sure if it was the right one

#

JK!

#

Is there a way to browse the sessions I have open?

twin juniper
#

Lol try one more

ocean dust
#

To make sure they are being opened correctly?

twin juniper
#

no i dont think so

#

also just making sure, you know to test steam sessions you have to run the game standalone right?

#

not Play in editor

ocean dust
#

I do a full deploy these days

#

to make 100% sure

twin juniper
#

and you're testing LAN right?

ocean dust
#

what? no, Steam

twin juniper
#

steam sessions dont work on the same network

ocean dust
#

Well that's annoying

#

but no, that shouldn't be a problem

#

my other test account is testing from half-way across the city

#

so should be good

twin juniper
#

hmmm

#

did you try the bp i sent a pic of?

#

because aside from bVACEnabled=000000 and your appid my settings and plugins are exactly the same

#

and it works

ocean dust
#

hmm

twin juniper
#

steam is installed correctly to the engine right?

#

like when you open standalone you get the little popup in the bottom corner

manic hare
#

Id suggest you start with the ini file before making any code changes since it was working in the past

ocean dust
#

Is it Engine.GameEngine or Engine.Engine?

manic hare
#

Engine.Engine

#

I actually have an entry in both

#

Sorry no. Just the one. Maybe GameEngine was from an older version? I dont know.

drowsy tundra
#

Hi. Hopefully someone can help me. I try to experiment a little bit with multiplayer. I want to call the server for a different actor which I get from OnComponentBeginOverlap, but I always get a log LogNet:Warning: UIpNetDriver::ProcesRemoteFunction: No owning connection for actor FirstPersonCharacter_C_1. Function ServerReduceHealth will not be processed.

slim holly
#

cast doesn't have input

#

@drowsy tundra

drowsy tundra
#

yeah see it... but anyway it doesnt work...

slim holly
#

also triggers should exist on server side

drowsy tundra
slim holly
#

I mean ServerReduceHealth shouldn't be replicated

#

depending on the trigger, either use auth switch, or spawn it just on server

drowsy tundra
#

trigger = item in my case an axe?

slim holly
#

oh so it's a melee weapon hitbox

drowsy tundra
#

yeah

#

the first blueprint is a weapn and I hit an other player with the weapon

slim holly
#

then auth switch is the way to go

wise depot
#

Guys, the online plugins, do they need to be engine side or project side now?

slim holly
#

you can even use the remote pin from the switch for visual like blood particles and stuff

wise depot
#

steam/utils/null etc etc

drowsy tundra
#

you mean the has authority?

slim holly
#

yea

drowsy tundra
#

ok

#

I will then read into this

slim holly
#

allthou, I would consider using traces for hit detection aswell

drowsy tundra
#

ok. This is currently a test

slim holly
#

you might run into problems when doing particles for hits if you're just using trigger box

drowsy tundra
#

for the multiplayer stuff

#

ok

slim holly
#

mkay

drowsy tundra
#

ty for your input

#

hopefully I get it done ๐Ÿ˜‰

drowsy tundra
#

@slim holly It works now ๐Ÿ˜‰ ty

twin juniper
#

steam mp down?

chrome bay
#

Anybody have much experience sending a UObject over the network via RPC?

#

I need to be able to send stored input data, but need to be able to cast structs etc and do templated stuff :/

granite jolt
#

UObject has it's own serialise function for that doesn't it?

jolly siren
#

has anyone had issues with RestartGame on 4.15?

#

it's kicking my clients out

rare cloud
#

if the UObject isn't replicated you will override the ReplicateSubobject function from the component

#

and explicity set this object has replicated by the component itself replicated by the ActorChannel

#

hmm but this is for a standard replication not for an RPC, well the code I sent will work I guess

rare cloud
#

Keep in mind the RPC replication use more resource than a normal replication

chrome bay
#

Yeah replication is fine, but for RPC's not so much. I'll have to keep working with structs for now

#

RPC is neccesary in this case

rare cloud
#

@chrome bay, Ok I will make some real test tomorrow, actually it's time to sleep ๐Ÿ˜›

chrome bay
#

np's, same here :p

rare cloud
#

Well good night !

vestal yew
#

Questoin regarding "Game Mode" in stand alone, or packed game does your game exist as server until it connects to a session run by another computer, and then your "Game mode" becomes unaccessable on clients? If so then functions/rules in game mode would work for individual computers during main menu set but fail once clients transition to Lobby level, am I understanding it correctly?

slim holly
#

iirc GameMode returns null on remote clients

#

clients server copy of controller can still talk to gamemode

vestal yew
#

thanks, I'll have another play see what breaks ๐Ÿ˜ƒ

twin juniper
#

i'm trying to get level loading setup in my map, but i have a question, if you have your main level and have a player that walks through an unload trigger when going to the next level. will level 1 despawn if other players are in it?
http://i.imgur.com/Or7FEPs.png

regal hazel
#

Would anyone know why player state variables are reset on server travel? (Not even talking custom data here)

#

or why ClientGameEnded would be called twice on the server?

fossil spoke
#

PlayerState is not an persistent class over level transitions

regal hazel
#

Yeah not persistent but data does get saved over to the new one via Copy Properties, right?

fossil spoke
#

Im pretty sure you have to invoke that manually, it doesnt happen unless told explicitly

#

Havent used it to be honest, i always figured it was something you had to manage yourself

regal hazel
#

Hmm interesting, seamless travel appears to call it for you. But when not using it, it doesn't

night jay
#

Yeah you can only preserve stuff during seamless or you'll have to manually save it

#

Using savegames and whatnot

#

Or just save it in the cloud somewhere and load it again once travelling is done

#

Dunno how well you can save instance references tho

#

You might have to save all your vars to a struct and save that

regal hazel
#

Hmm Seamless is working great, except for a weird bug I'm getting with UI on the server not appearing properly after the first time

#

I lie, it appears but construct isn't getting called on it for what ever reason

jolly berry
#

Just finished the huge multiplayer blueprint tutorial. I feel like a new man coming out of that one LMAO

rare cloud
#

@jolly berry And its just the beggining :p

jolly berry
#

woo! haha

#

Any good reads on replication that involves C++ code?

#

now I have to actually start replicating functions/variables that exist on my C++ framework

jolly berry
#

thanks!

wise depot
#

what's up with UE4's voice interface?

#

its terrible on steam

jolly siren
#

has anyone had issues with non-seamless travel in 4.15? I'm using RestartGame and it's dropping my clients now (steam)

jolly siren
#

or does anyone know of a way to debug client travelling?

#

๐Ÿ™

rare cloud
#

@chrome bay, Hey ! Well after some tests, we can't replicate UObject using RPC

chrome bay
#

Yeah I didn't think so... never mind, I'll stick with structs for now until I come up with a solution! Just means I can't make my movement stuff a plugin for the time being

jolly siren
#

is there anyway to play as a client with standalone game?

#

I'm talking about this

chrome bay
#

uncheck bUseSingleProcess in Advanced Settings, then run

jolly siren
#

thank you ๐Ÿ˜ƒ forgot about that

jolly siren
#

hmm so RestartGame is working fine in standalone. But it's not working in my packaged steam game

deep island
#

Yes.

jolly siren
#

I was using your pull in 4.12.5 and RestartGame was working fine. But then I upgraded to 4.15 and I wanted to try out steam dedicated server without your pull at first (I'm not really using steam auth yet). But now RestartGame isn't working correctly. My clients are getting disconnected.

deep island
#

Yes I fixed something about that.

jolly siren
#

I see some changes in your pull around travelling. But it looked like it was only needed if I was using steam auth

#

I am using a dedicated server with steam, but I'm not actually on steam yet so I'm using 480

deep island
#

Are you using the other PR?

jolly siren
#

no I'm not using any PR right now

#

I wanted to try 4.15 ootb

#

because your pull isn't upgraded to 4.15 yet, and it looks like epic isn't going to merge it anyways

deep island
#

Maybe they changed something in 4.15.

jolly siren
#

I can find and join sessions just fine. And my game is working with out of the box 4.15. This RestartGame this is the only issue I've found so far. My clients aren't travelling correctly with non-seamless.

deep island
#

Anyway I fixed a disconnect problem because was send an old ticket, but if you don't use my PR, it's useless.

jolly siren
#

okay, yeah I wasn't sure if that was necessary since I'm not really using steam authentication right now

deep island
#

With restart, the clients send old parameters.

jolly siren
#

hmm okay, I guess I will try and see if that part is needed for me

jolly siren
#

with seamless travel the travel works. but the docs say to use non-seamless for end of game

#

not many steam people around huh

jolly siren
#

ShooterGame uses seamless travel for restarting the game tho

#

so I'm not sure why they say to use non-seamless in the docs for that

#

are you guys using seamless or non-seamless for restarting the game?

#

non-seamless was working for me before in 4.12.5, with the #2135 pull at least

#

but now it isn't in 4.15, without the PR

#

@rough iron any ideas?

rough iron
#

Depends on your game actually

#

if you are doing party matchmaking a la gears of war then when you end a match you might just go back to your party

#

they do it for ranked games for example

#

you can of course just use a seamless travel if you are not using any type of party matchmaking, or just keep the players together

#

I did a mixed system for a PS3 game where I started using party matchmaking but for non-ranked games when a game ended we gave the option to maintain the teams

#

also using a non-seamless travel helps with any leak xD

#

you cleanup the mess xD

#

also it depends on what 'the end of session' is for you

jolly siren
#

I haven't implemented matchmaking yet. Currently I was just restarting the game and keeping the same players in the match. And non-seamless was working for that before.

rough iron
#

for example if you aim for consoles and you have to send some data to the leaderbpards (live for example)

#

you have to recreate/rejoin a new session

jolly siren
#

I am going to implement matchmaking, but haven't yet. Right now target is steam PC

rough iron
#

even on steam, stats are flushed at the end of a game

#

there is no hard written rule though

jolly siren
#

Hmm okay, well I do aim to support parties too. Non-seamless travelling seems broken ootb in 4.15 with steam tho

#

it's just dropping my clients and sending them back to the main menu

#

I'm just calling RestartGame() from the GameMode

#

the server travels fine tho

jolly siren
#

this is what I'm seeing clientside

#

when the travel happens

dawn glen
#

so im trying to work with a login system for my game. is it possible to be in my main menu level and have the editor run the mainmap as dedicated server? right now with dedicated server checked the dedi is running the mainmenu map so when i get a successful login it just connects me back to the main menu map lol

wise depot
#

have any of you guys had the network profiler working with steam p2p? crashes the game every time i run the command

jolly siren
#

@dawn glen you can set the default server map

dawn glen
#

i did

#

it still runs the map im in in the editor it seems

#

if i build out its fine

jolly siren
#

have you tried standalone?

dawn glen
#

yes

jolly siren
#

as a client?

dawn glen
#

the standalone dedi it starts says the map is main menu

jolly siren
#

did you run it as a client with use single process unchecked?

dawn glen
#

i have dedicated server checked with one client and sungle process

jolly siren
#

go to advanced settings

#

uncheck use single process

dawn glen
#

ok

jolly siren
#

change online mode to as a client

dawn glen
#

do i leave it this way if im quick testing in editor (not standalone)?

jolly siren
#

*multiplayer mode

#

no

#

idk if you can get two different maps loaded without standalone

dawn glen
#

thanks for the info

jolly siren
dawn glen
#

for some reasons its rebuilding my code lol

#

this might take a while

#

no difference. im in my main menu level with those settings and hit standalone and it ran the server in teh mainmenu map

#

[2017.03.07-16.39.14:357][ 0]LogWorld: Bringing World /Temp/Autosaves/Game/Maps/MainMenu/UEDPCMainMenu.MainMenu up for play (max tick rate 30) at 2017.03.07-09.39.14

jolly siren
#

hmm maybe you have to add the map as a parameter in "Server Game Options" in the advanced options

dawn glen
#

that seems to have done it. i get a nasty error when i try to load the map then it asks me to load default and works

jolly siren
#

sweet ๐Ÿ˜ƒ

#

nice to know, because I've never actually done that before

thin stratus
#

Hm, i think that's not possible. You'll need to start the server with cmd and the map as a commandparameter

#

Pie always starts the map you have open for all afaik

dawn glen
#

@thin stratus i got it working, i can use single process i just had to tell it to use a certain map in the server game options. Then it complains the map doesnt exist cause its running out of some temp directory and a pop up asks me if i wanna run default map, when i hit yes it loads the mainmap and the client loads the menu map

jolly siren
#

good work

#

now someone can answer my travelling question kappaross

dawn glen
#

your out of my range with that issue unfortunately ๐Ÿ˜ฆ

jolly siren
#

hehe darn

bronze lava
#

Hey all, any advice on why Players start "teleporting" instead of smoothly walking when they are too far away from another Player? (using CharacterMovement)

jolly siren
#

actor relevancy / prioritization

bronze lava
#

I do have "Always Relevant" on, if that's what you mean?

jolly siren
#

If 'AGameNetworkManager' is set to use distance based relevancy, the Actor is relevant if
it is closer than the net cull distance

#

how far apart of the players?

bronze lava
#

about 200m and they start teleporting. The teleporting only occurs every now and then, especially when changing direction, at other times it's smooth.

jolly siren
#

what are your network conditions?

bronze lava
#

Do you mean the CharacterMovement(Networking)? I'm using blueprints

jolly siren
#

no I mean how are you testing this? are you simulating lag or is this a real network or what?

bronze lava
#

Real accross the internet, when simulating lag teleporting does not happen

jolly siren
#

and you have reasonable pings?

#

it's interpolating the locations, so it's never going to be perfect

rough iron
#

@jolly siren odd that it just dropa

#

Drops*

bronze lava
#

The pings stay in the range of 60-100ms. What I 'd want is instead of just teleporting, it smoothly interpolates the positions

jolly siren
rough iron
#

Could it be that you stop listening for some reason?

#

Or you have to nat-neg again?

#

When making a non-seamless trav you can specify to not notify the clients

jolly siren
#

hmm I don't see why it would stop listening, all I'm doing is calling RestartGame

#
void AFPSGameMode::DefaultTimerTick()
{
    if (FPSGameState && FPSGameState->TimeRemaining > 0)
    {
        // Decrement time remaining by 1 second
        FPSGameState->TimeRemaining--;

        // No time remaining
        if (FPSGameState->TimeRemaining <= 0)
        {
            // Waiting to start match
            if (MatchState == MatchState::WaitingToStart)
            {
                StartMatch();
            }
            // The match is in progress
            else if (MatchState == MatchState::InProgress)
            {
                FinishMatch();
            }
            // The match has ended and is ready to be restarted
            else if (MatchState == MatchState::WaitingPostMatch)
            {
                RestartGame();
            }
        }
    }
}```
rough iron
#

That way you can search again for the session in case you need a new natneg handshake

#

Could you check if the restart goes through EndSession?

#

And CreateSession once the servee finished the travel

#

If yes you should research for the session

jolly siren
#

it looks like it goes RestartGame -> ServerTravel -> ProcessServerTravel -> ProcessClientTravel -> ClientTravel

rough iron
#

Yes but check if the session gets destroyed

jolly siren
#

okay, I'm checking the server logs too

rough iron
#

It could also be that the loading takes long on the sever

#

And results in timeouts

#

If thats the case the clienta should wait until they perform their travel

jolly siren
#

ahh I didn't think of that. this map has grown quite a bit

rough iron
#

Once you got more info we can debug it further ^^

jolly siren
#

okay cool, I'm bring up the server now

#

These are the server side logs

#

the only steam line I see is the following

#

[2017.03.07-17.33.49:435][890]LogOnline: STEAM: Removing P2P Session Id: UNKNOWN [0x110000104F771D1], IdleTime: 0.033

#

@rough iron is that the session getting destroyed?

rough iron
#

Yep, also your session does not a name

#

Could you create it with the name 'game'?

#

Try to set a breakpoint on that line

#

The callstack should tell you why its destroying it

#

Could be because the session is not the game one

jolly siren
#

how do i give the session a name? SETTING_SESSION_TEMPLATE_NAME ?

#

I used to set that property^ but they moved it somewhere that it wouldn't compile at so I commented it out

#

is that the correct way to set it?

rough iron
#

When calling create/join session you can give it an FName

#

Just use 'Game'

#

Or all in lowercase

#

FNames are incasesensitive

jolly siren
#

ah I see, hmm I'm already passing it GameSessionName which should default to Game

#

GameSession->HostSession(UserId, GameSessionName, "FFA", "UnderDark", false, true, 4);

#
bool AFPSGameSession::HostSession(TSharedPtr<const FUniqueNetId> UserId, FName SessionName, const FString& GameType, const FString& MapName, bool bIsLAN, bool bIsPresence, int32 MaxNumPlayers)
{
    // Get the Online Subsystem
    IOnlineSubsystem* const OnlineSub = IOnlineSubsystem::Get();

    if (OnlineSub)
    {
        // Get the Session Interface, so we can call the "CreateSession" function on it
        IOnlineSessionPtr Sessions = OnlineSub->GetSessionInterface();

        if (Sessions.IsValid() && UserId.IsValid())
        {
            SessionSettings = MakeShareable(new FOnlineSessionSettings());

            SessionSettings->bIsLANMatch = bIsLAN;
            SessionSettings->bUsesPresence = bIsPresence;
            SessionSettings->NumPublicConnections = MaxNumPlayers;
            SessionSettings->NumPrivateConnections = 0;
            SessionSettings->bAllowInvites = true;
            SessionSettings->bAllowJoinInProgress = true;
            SessionSettings->bShouldAdvertise = true;
            SessionSettings->bAllowJoinViaPresence = true;
            SessionSettings->bAllowJoinViaPresenceFriendsOnly = false;

            SessionSettings->Set(SETTING_MAPNAME, MapName, EOnlineDataAdvertisementType::ViaOnlineService);
            ///SessionSettings->Set(SETTING_MATCHING_TIMEOUT, 120.0f, EOnlineDataAdvertisementType::ViaOnlineService);
            ///SessionSettings->Set(SETTING_SESSION_TEMPLATE_NAME, FString("GameSession"), EOnlineDataAdvertisementType::DontAdvertise);

            // Set the delegate to the Handle of the SessionInterface
            OnCreateSessionCompleteDelegateHandle = Sessions->AddOnCreateSessionCompleteDelegate_Handle(OnCreateSessionCompleteDelegate);

            // Our delegate should get called when this is complete (doesn't need to be successful!)
            return Sessions->CreateSession(*UserId, SessionName, *SessionSettings);
        }
    }

    return false;
}```
#

GameSessionName is defined here

rough iron
#

Mhhh so set a breakpoint

jolly siren
#

But I'm not sure how I can debug this with breakpoints. I only get this issue in packaged game that is actually using steam.

#

Standalone PIE looks to not even really use steam and the travel is working

rough iron
#

There are no sessions in pie, it uses the OSSNull

jolly siren
#

right, so I'm not really sure how to debug a packaged game

rough iron
#

You can juat run the game in non package mode with -game

#

Then it wont open the editor

#

That should be enough

jolly siren
#

and then attach vs to the process?

rough iron
#

Or juat run with that argument within VS

jolly siren
#

oh I didn't realize that was possible

rough iron
#

^^

jolly siren
#

I'll try to figure out where to add that parameter

#

this guy?

ashen thicket
#

Hey guys, I'm having a really weird problem with steam session right now. I am able to create and join a normal session using the space wars steam id. But as soon as i swap out to use our own games steam id it fails to make any session. Any idea's what would be causing this?

jolly siren
#

Running from VS with the -game command worked and let me debug but I couldn't find any sessions. So I ran the packaged game instead and attached the debugger to the process

rough iron
#

ah cool ^^

#

if you install the VS unreal extension the argument list is directly in VSs main view

jolly siren
#

ahh okay I do have that installed, but I must have hidden that at some point

#

it hit my breakpoint in the p2premove

#

not much help there yet

#

it's not hitting my breakpoint in ProcessClientTravel clientside

#

ah nvm that would be server only

#

I'll try ClientTravel instead

jolly siren
#

so the host is disconnecting the clients, but that is expected with non-seamless

#

@rough iron any idea what to debug now? I've been stepping through this and it gets disconnected and then it loads the entry map. Non-seamless is suppossed to disconnect and then reconnect right?

rough iron
#

logs

jolly siren
#

oh ignore the LogHttp stuff, that is for stat tracking. I just don't have the stat tracking server on right now

sterile pebble
#

Has anyone stress test build-in character movement component? How much characters it can handle with 2 players network? I have encountered strange "lag" on client side with something around 40 npc characters around..

thin stratus
#

What is that stuff about @jolly siren ?

#

Steam + non-SeamlessTravel = Clients loosing connection?

jolly siren
#

@thin stratus yes

#

the clients are disconnecting and getting booted back to the main menu

thin stratus
#

Are you just trying to find out why?

#

When you use ServerTravel I assume?

jolly siren
#

I'm calling RestartGame but yeah it does a Server and Client travel under the covers

#

And I'm trying to figure out why it was working when I was on 4.12.5 but now it doesn't work (clients disconnect) on 4.15

thin stratus
#

Hm

#

Well if it works similar to ServerTravel

#

then this is how it is

#

ServerTravel needs seamless travel on steam

#

that's what I got told the past 10 times

#

If you have SeamlessTravel set to false the clients won't connect after the travel

jolly siren
#

I was using this pull on top of 4.12.5, and it has a little bit around travelling but not much. I'm not really using steam auth yet because it isn't public yet. So that's why I scrapped that PR (plus it isn't ready for 4.15 yet and epic isn't going to merge it anyways)

#

Yeah RestartGame is just a higher up function, it uses server and client travel underneath

#

I would accept that, however this was all working for me in 4.12.5

#

I looked the PR up and down and there isn't a ton around travelling that was changed

thin stratus
#

I can only tell you what I got told here. The PR shouldn't have anything to do with that

#

the PR was only for Auth stuff and Dedicated Servers

#

and I even got told that Dedicated Server + Steam should work without hte PR

jolly siren
#

yeah, I've been using RestartGame without seamless for a long long time now tho

thin stratus
#

The PR would just be for making sure a player is actually owning the game

jolly siren
#

Yes, it does. That is why I am not using the PR anymore, because I wanted to test dedicated + steam in 4.15

#

and it is all working fine

#

except for this restartgame bit

thin stratus
#

Did they change something about the RestartGame function maybe?

jolly siren
#

hmm I haven't checked that, I will look

thin stratus
#

Because that would be the first thing to check if that is doing something different now

#

All in all I still don't know if you can avoid Seamless Travel then

#

I mean Epic even says yo ushould use it as often as possible

#

ยฏ_(ใƒ„)_/ยฏ

jolly siren
#

yeah I know, I tested with seamless and it wasn't dropping them. So I will fall back to that if I have to. I see that shootergame uses seamless for restarting the game.

#

This bit of the docs should probably be updated tho

#

unless I'm misinterpreting what ending a multiplayer game is

thin stratus
#

Ending is probably completely stopping it

#

Back to main menu

warm pagoda
#

I assume that's singleplayer, however.

#

... and I was definitely scrolled up to some old conversation and am responding super late to it. -_-

#

Either way, "Days Gone" probably has some serious custom optimizations to pull off that densely packed zombie swarm AI and on top of that is likely single player and unconcerned with needing to replicate so many NPCs positions.

chrome bay
#

@sterile pebble About 10-16 is a good limit, but you can go higher (see Unreal Tournament). paragon uses much simpler NPC's for it's minions, they don't use the full character movement system I believe.

warm pagoda
#

In my UE3 experience with Smite, same thing - simpler behavior for NPCs if you're going to have a lot.

#

Even forgoing actual AI if it's dumb enough and settling for hard-coded, simplistic logic in an actor. But that's rather extreme.

jolly siren
#

@thin stratus yeah ServerTravel changed between the versions. And that makes sense with leaving the match all together

#

the PR also did change ClientTravel

#

I guess I will just change to using seamless and put some sort of transition map between restarting the match

thin stratus
#

I played a game yesterday, done in UE4

#

Which is Tiger Knight

#

Where you control a General on old Asian battlefields

#

And in one mode you lead 20-30 units that all fight on their own

#

And it's 6 vs 6

#

Which means at the start of the battle, it's like 360 units on the field

#

And it's not lagging for me

#

Another thing is, the Launcher solution they have feels weird

#

It just feels like UE4 is not made to be used as a launcher and the nlaunching a second version of the game to actually game

#

Transition is way too long. League of Legends for example nearly instantly boots into the loading screen

warm pagoda
#

Funny you say that - the Epic launcher is actually a UE4 application. ๐Ÿ˜ƒ

thin stratus
#

The Epic Launcher is Slate

severe widget
#

slate isn't the game tho

thin stratus
#

I meant a gameclient that is used to chat, skill etc, and search for games

#

and then boot int othe real game

warm pagoda
#

I'm not saying it's good or bad, just saying it's funny, because it is legitimately used for the Epic Games launcher.

#

Which, I think supports friends and chat too?

thin stratus
#

Well it does not support 3D rendered graphics

warm pagoda
#

Not sure. I don't recall to what extent it's slimmed down. I digress.

civic vessel
#

Hi guys can someone help me ? Im trying to implement spectator mode in my game

#

This code doesnt work as expected :

#
// Start Spectating
PlayerState->bIsSpectator = true;

ChangeState(NAME_Spectating);
ClientGotoState(NAME_Spectating);
                
SetViewTarget(PlayerToSpec);
#

When a client try to spectate someone else, he successfuly goes into spectating state but his viewport is updated to somewhere random and not the player he wants to spectate

#

However it works well when the host try to spectate a client

#

I tried to add ClientSetViewTarget(PlayerToSpec); but it doesnt change anything

rough iron
#

@jolly siren, @thin stratus I don't see why it shouldn't work for non-seamless travels, out of the box it might fail (it does on PS3/4). You just have to ensure to travel the server first, ensure the session is ok and then let the clients join. When you server travel you can flag it to not notify clienta, so they won't call their client travel directly. What I did (quite some time ago) was to use the beacons to handle all that extra logic. While you can just try to research and join again, juat make sure the server holds the playerids of all the clients to reject any new ones, you can even set a property in the data tbe server announces so you will find only that new session. Another issue might be tge size of the map which takes too long to load and then produces timeouts, to solve or atleast minimize that just use a very small persistent map and stream everything in non blocking fashion, that way you will re-listen in just a few seconds.

jolly siren
#

ahh okay I see, that makes sense. Yeah ootb it doesn't work anymore. I am switching to use seamless for now. Just figuring out how to clean some things up such as widgets that remain on screen after I travel

rough iron
#

Good networking is extremely hard and requires a lot of effort

#

I would love to be able to share code and full implementations but all those are property of the companies I worked (and work) for

jolly siren
#

Makes sense, yeah it is hard for sure. Idk why it's one of epics smallest teams tho ๐Ÿ˜›

rough iron
#

N8 for now ^^ just tag me if you need more help ^^

jolly siren
#

thanks moss! โค

raven viper
#

Hey Peeps! I hope someone can help me cuz I'm already going bald pulling my hair over this ๐Ÿ˜„

#

I'll explain what I want, and what's happening.

#

So I have a pawn, that players possess on playstart. Now there is a map on the level. I wanna delete from this map, as the pawn falls down onto it

#

I did like, made a BoxCollision in the pawn, and made a lookup/delete logic that deletes parts of the map in a given range.

#

So I've hooked up to this event in the map to the pawn like:

In Pawn:
On Component Hit -> Cast to Map -> Call Event

#

The map is spawned on begin play by the server, and is replicated

#

So what happens is, no matter how I set this custom event, it only deletes under the listen server's pawn, not under the client.

#

The map is being spawned on SwitchHasAuth but has no owning actor set up.

#

So if anyone has an idea, please don't hold yourself back. I've been trying for days now... ๐Ÿ˜ฆ

supple thicket
#

@raven viper The 'map' only exists on the server so any event ran there will ofc only be executed in the server. Set up a multicast and run the same code to all clients. Also fyi, the replicated option won't work in destroy as far as I know

jolly siren
#

Why does shootergame get the hud in gamemode? that doesn't make sense to me since hud only exists on client and gamemode only exists on server

#
void AShooterGameMode::RestartGame()
{
    // Hide the scoreboard too !
    for (FConstControllerIterator It = GetWorld()->GetControllerIterator(); It; ++It)
    {
        AShooterPlayerController* PlayerController = Cast<AShooterPlayerController>(*It);
        if (PlayerController != nullptr)
        {
            AShooterHUD* ShooterHUD = Cast<AShooterHUD>(PlayerController->GetHUD());
            if (ShooterHUD != nullptr)
            {
                // Passing true to bFocus here ensures that focus is returned to the game viewport.
                ShooterHUD->ShowScoreboard(false, true);
            }
        }
    }

    Super::RestartGame();
}```
chrome bay
#

Anybody had an experience where multiple players in PIE aren't in the same session when you have a custom session class?

#

If I uncheck single process, works fine

warm pagoda
#

@jolly siren Dunno, but that honestly seems like a bad design anyways, IMO.

chrome bay
#

Debating whether to rudely temporarily use the default game session class and see if that fixes it

warm pagoda
#

UI should read things from other things, not be written to by the things it represents.

chrome bay
#

Yeah Shooter Game UI is a bit shit like that

#

Event Driven UI is a nightmare

warm pagoda
#

Almost anything visual should follow such a pattern - read from the "model", not be written to by the "model"

jolly siren
#

Yeah I don't understand how that can work

chrome bay
#

Oh wait I know what it is

jolly siren
#

I'm trying to clear the on screen widgets before I travel because it looks like seamless travelling leaves them on screen

chrome bay
#

It's for multiple split-screen players

warm pagoda
#

Event driven isn't bad at all. It's extremely powerful. But that is not an example of event driven design.

jolly siren
#

hmm they must hide the scoreboard somewhere else for actual multiplayer then? because they have to hide it or it will still be on screen after you seamlessly travel

chrome bay
#

The problem is edge cases, I prefer to just tick UI's usually

warm pagoda
#

For a simple enough UI, no big deal.

#

That will murder other things.

#

And this is where I'm not sure how much I can actually say or who I would have to ask about what I can say.

#

And probably no one short of legal would be willing to risk their neck by telling me what I can or can't say. ๐Ÿ˜ƒ

jolly siren
#

ahh they are overloading PreClientTravel in playercontroller too

chrome bay
#

Well, for Sat Command I did a purely tick-driven UI. It was just a lot easier. (see http://store.steampowered.com/app/514670/)

#

Hovertank game UI is pretty much the same, but some stuff is event driven - e.g. end of game etc.

jolly siren
#

they should at least comment that bit in RestartGame

#

confusing without it

chrome bay
#

@jolly siren it's just my guess personally, but I think that's what it's for

#

IIRC, the player controller Client functions in ShooterGame hide/show scoreboard too

jolly siren
#

Yeah, they are hiding it in the pretravel for real multiplayer

chrome bay
#

Btw if you have VAX installed, there's a good shortcut to use (Shift + Alt + F)

#

Just put the cursor over ShowScoreboard and use the shortcut, all references to it come up

#

so you can figure out where it's being called from

jolly siren
#

ahh yeah I just use ctl + shift + f to search for things. I haven't paid for vax

warm pagoda
#

If it works and isn't a bottleneck for you, @chrome bay, then that's totally appropriate. I'm just defending the choice to do (properly) event-driven UI, as well as vaguely adhereing to a view/model approach, where stuff like UI and animation depend on the thing they represent, not the other way around.

jolly siren
#

Thanks tho that was helpful. I had tunnel vision at that section of code ๐Ÿ˜ƒ

chrome bay
#

Yeah it always comes down to what suits / is easier :p

#

I always forget that SG supports split-screen...

#

ermagerd PIE stop fucking with me...

jolly siren
#

yeah I always forget about split screen too

jolly siren
#

man seamless and non-seamless have a lot of differences. have to change a lot of code. postlogin doesn't get hit on restart, and tons of other things

jolly siren
#

it's going to take a bit to convert this to work with seamless

#

looks like others have ran into it too

hollow hatch
#

This is more of a generic architectural question, but in an RTS game how would a pawn figure out if another pawn is an enemy (or belongs to another player)
normally the pawns have a player controller, which is tied to a player
but in this case, each pawn has it's own aicontroller and thus no real connection to a player

ocean dust
#

Hello all

#

I'm getting the error dlopen failed: dlopen(/Users/Shared/UnrealEngine/4.14/Engine/Binaries/Mac/UE4Editor.app/Contents/MacOS/libsteam_api.dylib, 5): image not found

#

Where can I get that dylib?

warm pagoda
#

libsteam_api.dylib Wild guess, Valve.

rough iron
#

@jolly siren Seamless and non are two very different approaches, I do not see the need to behave similar. Just two different methods with tneir pros and cons. The guy in the thread talks about events when a map is loaded, those are already there in form of engine callbacks. Post login and PostSeamlessTravel already call a initialization method for each player on the server, so that would be the common point for your ini routines.

thin stratus
#

@hollow hatch You would need to save that by hand. Make a variable in the ai that saves a PlayerController or the rts pawn or playerstate of the player

#

Or use simple team ids

desert breach
#

What is the use of ProcessEvent

#

function ?

#

The project I'm working on have this

vocal ingot
#

How to replicate aimoffsets smoothly?

chrome bay
#

the character class already replicates control rotation, which you can use to drive aim offsets. It won't be that smooth though. Not much you cna do about that

tough gyro
#

can always interpolate towards the replicated target

hollow hatch
#

thanks @thin stratus , i figured there'd be some native support, guess not

jolly siren
#

@rough iron yeah, it's okay for them to behave differently. I'm just finding that I have to recode a bunch to get my game back to the way it was since I can't seem to use non-seamless anymore. When the game restarts now, i'm not sent to my character selection screen, hud elements are left over, etc. But I will check out PostSeamlessTravel and see if I can get it all converted.

desert breach
#

Hi guys, I want to connect my client to Dedicated Server. My lobby server has loaded the map on game server , but the client is still connected to lobby only. How to fix that. An pointers please ?

rough iron
#

@jolly siren ok ^^ let me know about your progress ^^

#

@desert breach you should be more specific about your approach, there are mutliple ways to implement a lot of stuff

slim holly
jolly siren
#

yeah running into a ton of issues :/ things are working completely different and a bunch of crashes. Wish I could just have everything restart like it was on non-seamless. All this left over stuff is breaking a lot of things.

rough iron
#

Yeah I know, net code is normally a thing to be very hard to put into later in development

jolly siren
#

well I had net code all working with non-seamless ๐Ÿ˜‰

#

having some crashes where non-null invalid pointers are left over after the travel

#

and after travel I get a whole bunch of this stuff

#

Warning: CreateSavedMove: Hit limit of 96 saved moves (timing out or very bad ping?)

#

and timeremaining stopped

#

and nothing is getting damaged

#

lol

rough iron
#

that happens when the moved are not getting through

jolly siren
#

does anyone know what isn't called with seamless travel that normally would be with non-seamless? besides postlogin stuff?

slim holly
#

begin play stuff?

#

I dunno, never done seamless

rough iron
#

not much, begin play is for object when they come in play in the maps, so it has nothing to be with travel itself

#

PostLogin is not called because there is no login process

#

neither is logout

jolly siren
#

objects that persist won't call beginplay again tho right?

#

like playercontrollers and gamemode?

#

I don't see why seamless would be good for RestartGame. I want to restart the game, everything from scratch

rough iron
#

no

#

if you hold a single persistent level and steam all others in

#

you can just make a seamless travel to the same level and unload/load all again

jolly siren
#

I'm only dealing with a single level right now. I'm just trying to restart the game on the same level

#

but RestartGame seems to suck at it with the way my game is coded to work with non-seamless, it expects things to just restart

#

how do you "unload/load all again" ?

#

when I call RestartGame with seamless it's automatically spawning a pawn the next time even tho I set DefaultPawnClass to null. My game sends you to a character selection screen and shouldn't spawn a pawn until after the player selects a character.

thin stratus
#

Are you destroying the Pawns before you restart?

#

It might be that the PlayerController keeps the Character alive

#

Might be worth to try to just clean up the game first

jolly siren
#

that's what I think is happening ๐Ÿ’ฉ

#

I will try and figure out how to clean all this up, sigh

#

hmm well when I select a character in the first game I spawn as that character. and then if I go back to the character selection screen and select a different character it switches DefaultPawnClass, but doesn't actually change the character (which is correct). And then on the next game restart it spawns the new character that I selected. So it doesn't seem like the character is being kept alive

#

i am nulling out DefaultPawnClass in AGameMode::InitGame, AGameMode::HandleMatchHasStarted, and the gamemode constructor

jolly siren
#

I'm starting to think that non-seamless doesn't work with steam because it's using a relative url instead of an absolute one

#

actually nvm the travel url with non-seamless looks okay, it has the correct steam bits in it

#

Browse: steam.90107305280225282//Game/Maps/UnderDark?game=/Game/Blueprints/Online/BP_FPSGameMode_TDM.BP_FPSGameMode_TDM_C?Restart

#

looks the same as the one for when the map is first loaded, so it's not the url

#

LogLoad: LoadMap: steam.90107305280225282//Game/Maps/UnderDark?game=/Game/Blueprints/Online/BP_FPSGameMode_TDM.BP_FPSGameMode_TDM_C

jolly siren
#

guess I should just take this opportunity and start planning out my actualy matchmaking/lobby system

jolly siren
#

has anyone setup matchmaking with steam?

#

*automated matchmaking

slim holly
#

pls dont

#

unless you have 5000% understanding what makes a good match

#

just go for random

jolly siren
#

pick a random session that has room?

twin juniper
#

@jolly siren Non-seamless is not possible with OnlineSubsystemSteam

jolly siren
#

That's what I'm hearing. Even though I have been using it for years all the way up until I upgraded from 4.12.5 to 4.15

#

It used to work, could have possible been the steam auth PR

twin juniper
#

I read about it and tested it in 4.14 I think

jolly siren
#

yeah, it used to work great when I called RestartGame with non-seamless it would just disconnect my clients, restart the game, and reconnect the clients

#

made restarting the game super simple

#

nothing to clean up

twin juniper
#

RestartGame might be different then travel

jolly siren
#

no it uses travel under the covers

twin juniper
#

That's good to know, I've never used it

#

I always load the next game mode manually and I clean everything up within it

jolly siren
#

to restart the same level/game?

twin juniper
#

No I don't have to reload to restart

#

I reset GamePlayState and Score etc and respawn pawns

jolly siren
#

that's a pain in the ass

#

quite a bit to clean up

twin juniper
#

You want to load as little as possible for VR

jolly siren
#

ahh

twin juniper
#

So better to do all of that than load the same level again

jolly siren
#

gotcha, yeah I'm not on VR

#

what about if I do Game -> Lobby -> Game with seamless? it's still going to remember things from the first Game?

rough iron
#

You should use beacons, that way you gain flexibility. Scourge: Outbreak (UE3 but the travel, beacon stuff is literally the same) does that, it also uses non-seamless for travels in the campaign when going from one checkpoint to another or from one map or mode to another in versus games.

#

Btw the netcode in that game is mine xD

#

N8 folks

jolly siren
#

sick

#

I'll check that out, thank you Moss

rough iron
#

I outlined the matchmaking system a bit in the wiki

#

It's pinned I think

#

Nope it's not xD ok n8 for real now haha

jolly siren
#

lol okay I'll try and find it

fossil spoke
#

Cya @rough iron UE4 god

#

๐Ÿ˜›

vestal yew
#

Quick question, Multiplayer servertravel lobby to first level type example, where to place logic for create sessions and join sessions? Game mode, game instance, playercontroller or game state? ... should be game mode right? my brain is melting after comparing conflicting information.

desert breach
#

@rough iron I have this doubt. I called up host game function from Client side 'player controller' file. And then it calls host game function from gamemode pointer references, which is executing from lobby server. Server is getting this function called and loading the level. But client doesn't load it. Should I call load level from client explicitly ? Epic Staff some light on this please

#

@queen holly , @chilly basin @leaden bluff please guide me for the query above.

rough iron
#

You should reading the docs about travels and level streaming

desert breach
#

@rough iron okay

rough iron
#

@fossil spoke ^^ Morning xD

fossil spoke
#

๐Ÿ˜ƒ ah oh

rough iron
#

@thin stratus Could you pin it?

fossil spoke
#

I read that a while back, nice write up, defs bookmarked it ๐Ÿ˜ƒ

rough iron
#

cool ^^ It needs some cleanup and bit more samples xD

fossil spoke
#

Yeah was about to say, code samples ploxx

#

๐Ÿ˜ƒ

#

I maybe in need to review it again soon

rough iron
#

^^

sterile pebble
#

or in case of listen server -> tick rate will be actually fps of server player?

#

/Script/OnlineSubsystemUtils.IpNetDriver] cant find such string in config file..

rough iron
#

yes on a listen server the rate is the same as the host

sterile pebble
#

and what actually happens if they differ? Like, host is running on 100 fps, but client only on 30?

#

I think I know answer..

wise bridge
#

Hey guys, is it possible to pass information to a server after the user has logged in? So for example my use case is when someone connects to the session, they have a variable that gets passed to the server so it can spawn an appropriate actor, for that connecting client ๐Ÿ˜ƒ

#

I've looked at using playerstate but I think im looking in all the wrong places ๐Ÿ˜›

rough iron
#

After GameMode::Login you just start calling your client/server RPCs for all your custom logic

wise bridge
#

I should probably point out this is for a blueprint project... sorry! ๐Ÿ˜„

#

@rough iron

#

I have a feeling this is not possible without some form of cpp wizardry lol

thin stratus
#

That's totally doable in BP

#

Otherwise my Lobby System would have a problem :P

wise bridge
#

haha ๐Ÿ˜›

thin stratus
#

Use OnPostLogin in the GameMode and call Client/Server RPCs on the passed PlayerController

wise bridge
#

Looks like im gunna be reading for the majority of this afternoon again! ๐Ÿ˜›

rough iron
#

@wise bridge as @thin stratus said, it's just RPCs

wise bridge
#

Indeed ๐Ÿ˜ƒ I know what I must do now, thanks guys! ๐Ÿ˜„

rough iron
#

^^

wise bridge
#

๐Ÿ˜„ Quick question, I've got the player controller setup with the variables I need, in the gamemode BP, ive dragged off the new player pin from the OnPostLogin event, I can see my variable but it is doing this...

#

Its saying its a firstpersoncontroller ref, should I try making my own playercontroller BP instead? ๐Ÿ˜ƒ

jolly siren
#

@rough iron thanks for the wiki link, I couldn't find it myself ๐Ÿ˜ƒ

rough iron
#

@wise bridge if you have to add methods to it then yes

#

@jolly siren np mate ^^

wise bridge
#

@rough iron Okay thank you ๐Ÿ˜ƒ

jolly siren
#

I did a bunch more debugging on the non-seamless travel in 4.15 and I couldn't figure out where it is supposed to reconnect after the disconnects. Couldn't figure out why it was working in 4.12.5 with the PR but not 4.15 either. So I guess it's back to converting to seamless.

wise bridge
#

@rough iron Is this the correct way to get the variable's passed to the game mode bp?

#

Or am I seriously missing a trick here ๐Ÿ˜„

wise bridge
wise bridge
#

So the check works but its using the servers check rather than the clients..... this is so frustrating lol

rough iron
#

No idea what you are doing xD but you might first check @thin stratus s compendium and get a clear view on where stuff gets executed

#

most of the time the errors are comming from the fact that net roles are not a thing to peeps ^^

wise bridge
#

Okay ๐Ÿ˜› I shall have a look! ๐Ÿ˜„

#

Think it might be time for lunch lol

rough iron
#

^^

#

@wise bridge it's basically all around the questions: Where am I? and Where should I run?

jolly siren
#

somehow seamless travel is causing imaginary player input and is causing a crash

#

๐Ÿ’ฃ

#

Never pressed the MenuRotatePreview button

rough iron
#

But it's listening, try to check why you have it in the stack

digital sail
#

hey devs. You know multiplayer in and out. I am looking for some suggestions for an overhead announcer for multi games

#

Can anybody think of commonly forgotten lines from announcers?

jolly siren
#

what type of game?

digital sail
#

well

#

my voice pack is going to be an "announcer pack"

jolly siren
#

also there is an audio channel

#

ahh it's a pack

digital sail
#

yeah but you guys develop multiplayer games

#

yes. voice pack

#

audio people would need to consult multiplayer experts anyways, so I would just end up here

#

I just want to get suggestions from you to make sure i'm not forgetting anything

jolly siren
#

really depends on the game type but..killstreaks, multikills, match time, intro, game over, etc.

digital sail
#

i want it to cover fps and moba

#

mainly deathmatch, team battle, king of the hill styles of gameplay

neon mango
#

Trying to replicate grabbing an object and it is only working server side.

thin stratus
#

@neon mango More info :P Code, what exactly are oyu grabbing? VR or what?

#

@digital sail Well, first thing would be checking out existing games

#

The Killstreaks, Match Time, Intro/Outro, "Teamkill", "Attack A/B/C" etc are quite common I guess

digital sail
#

cool. Thanks @thin stratus

#

do the overhead announcers say things like "attack a/b/c"

thin stratus
#

Differs. Overwatch has these to announce the next attack points

#

Games like CoD/Battlefield might have the mto announce that a point fell into enemy hands

neon mango
#

Figured it out

#

I needed to replicate few more variables and pass along the camera info from the clients

#

So I call basically ClientFunction which calls ReplicatedServerFunction

#

And that is for both Client And Server

neon mango
#

So I have a question regarding rag dolls, will rag dolls replicate ok if no player controls the body?

#

It seems after setting a body to go into rag doll replication no longer works? But it could just be my logic.

neon mango
#

Hmm looks like the mesh isn't replicating even though its parent capsule is

#

Its odd that GetMesh()-> has no replication bools

slim holly
#

I'm getting new notification

#

LogStats:Warning: MetaData mismatch. Did you assign a stat to two groups? New //STATGROUP_Threads//OnlineAsyncTaskThreadNull DefaultInstance///Thread_2b3c_0///####STATCAT_Advanced#### old //STATGROUP_Threads//OnlineAsyncTaskThreadNull DefaultInstance///Thread_9c8_0///####STATCAT_Advanced####

#

what is that?

#

something something async threading, but I've been doing widgets for past 2 days

fringe dove
#

what is the right way to tell on the client when you have started possessing/unpossessing a pawn? I see APawn::PossessedBy() and APawn::ReceivedPossessed(), but they only run on the server

modern fable
#

I used to have a call from the server on Possessed

fringe dove
#

manually adding an extra RPC?

#

ah, looks like it goes through the player controller

#

and calls APawn::Restart and/or APawn::ClientRestart

bronze lava
fringe dove
#

@bronze lava I think you need to call ServerSprint from the client instead of ServerSprint_Implementation

#

ServerSprint_Implementation is what runs on the server once it receives the RPC

bronze lava
#

@fringe dove I'll try it, thanks!

fringe dove
#

change line 14 to: ServerSprint(_Sprinting);

bronze lava
#

It worked! Thank you so much, what a silly mistake that was

fringe dove
#

look at shooter game's sprint/run code as well, you probably don't want to have to wait on the replicated variable to replicate back to you or it will feel sluggish

bronze lava
#

Will do, thanks :)

modern fable
#

yea a custom RPC @fringe dove

fringe dove
#

@modern fable I've done it that way in the past.. but there has to be a better way. The client knows when it begins possessing via an RPC already

#

But it is a very complicated chain of events from looking through the code

modern fable
#

I see

fringe dove
#

The other problem with adding an RPC is it can arrive before the pawn has been replicated over to the client if you are spawning at the same time as possess

true peak
#

Haveing alot of trouble storing data inbetween rounds. I have values like score/ round number that I am storing the game instance class. However I can't seem to replicaite them to the client so I can update the clients HUD with Previous Match Winner and Round Number

sudden niche
true peak
#

doesnt the gamestate values get reset after servertravel is called?

#

I need information that will carry over after one round is over

sudden niche
#

Yeah, I think the gamestate gets reset. Only thing that is persistent is game instance what I know of.

#

So save in game instance and sync it over to game state when needed? ๐Ÿ˜ƒ A bit messy but thats an easy solution.

vestal yew
#

from Exi's pinned compendium "The PlayerState has two functions dedicated to deal with reconnecting Players and also Players that traveled with the Server to a new Map.
With 4.13 released and my Pull Request accepted, these functions are now available in Blueprint Children of the PlayerState.
The PlayerState takes care of copying over the information, which it already holds, into a new PlayerState. This either gets created through the Level Change or because a Player is reconnecting. "

#

No mention of persistence for gamestate though...

neon mango
#

Any thoughts on why my setting a position on tick isn't working for anyone except the local players machine?

#

I set the location of a SkeltalMesh to a players position on tick

true peak
#

when is the gamestate class created?

fossil spoke
#

@minor anchor reckon you could pin that?

#

@true peak Gamestate is created once the gamemode has been initialised

minor anchor
#

done

fossil spoke
#

๐Ÿ˜ƒ cheers

twin juniper
#

I'm randomizing meshes during the construction script of some level geometry, the client runs the construction script as well and so there's a difference between server side/client side. What is the proper way to deal with this? Have each actor update to client on login seems like a hack

fringe dove
#

so if gamemode only exists on the server, is it impossible to preserve torn-off actor on a client through the seamlesstravelactorlist?

#

ah n/m I see there is one for player controllers too

near hull
#

Hey all, I'm getting some steam errors while trying to connect to a friend's session. Have already enabled steam in ue4 and added needed info to .ini file. Getting these errors LogOnline:Warning: STEAM: Removed incompatible build | LogOnline:Warning: STEAM: Unable to parse search result for lobby. Lots more errors like this after it. We are able to see each other's sessions

light gyro
#

So with 4.15 gameplay tags have all new features, but right now limited documentation. My question is in the Gamplay Tags advanced panel in the editor there is a fast replication option. If you hover over this option you will get a pop up message, at the end it states "For this to work, tags must be identical on client and server." What is an instance of how client and server wouldnt be using the same data table for tags AND how much should I really need to worry about using fast replication over standard use?

river prism
#

Hi guys, could really use some advice regarding character client smoothing, I'm using Move Component To for my vault system, it works great over multiplayer but the client is always a bit "flickery", i've made it much better by switching to custom movement mode and setting the max speed to 5000 but it still flickers a bit, anyone know a good way to get around this? https://gyazo.com/fd06be00d8dc184c82a3ff799976d1a4

#

its not overly bad now (used to flicker like mad) but would be great to have it as smooth as it is on the server

#

scratch that, it was the "ignore client correction" node i needed

vestal yew
#

Hi guys, setting up a little test multiplayer using blueprints and after much reading still a bit unsure of a couple of basics, during or after server travel do "player state" and "game state" reset their values and variables?

thin stratus
#

Yes

#

To maintain them you would need to use a SEAMLESS ServerTravel

#

And then handle copying the data with functions like APlayerState::CopyProperties(..)

vestal yew
#

ah cheers, that helps a lot, thanks, trying to put things in logical places for replication to avoid double handling ๐Ÿ˜ƒ

twin juniper
#

hey guys so, steam vs hosting player login information locally

#

which do you think is better lol

#

like using a sql db or just hosting it on steam using their system

#

with steam i can do an automatic login, but with sql i can have more control over my players data (if they lose something or something gets corrupted i can always do a rollback for that specific player)

thin stratus
#

You can do that for Steam too

#

The SteamID stays the same

twin juniper
#

hmm

#

wait steam serializes game data?

#

llol

#

@thin stratus

thin stratus
#

You were talking about hosting the data

#

Steam has a cloud per User and Game + SteamID

#

@twin juniper

twin juniper
#

ohh

#

@thin stratus so I could, in theory save my game data directly to their network? Okay, is it possible to just unpossess a pawn when the player logs out instead of destroying it (if i want people to loot corpses of players like in rust)

#

I know I could just call UnPossess() but if the client disconnects will that be enough to stop the server from destroying the player pawn?

#

ill just test it

#

lol

thin stratus
#

It technically should. There is no reason the Character should get cleaned up

twin juniper
#

You said that the oss for steam lets you use the players steam id right? So could I just store that steam id on the player pawn when they create their character and when they logout -> and login again I just loop through all unpossessed actors for the one with their steam id?

#

And possess that one

#

would that work do you think?

#

@thin stratus

thin stratus
#

Correct

twin juniper
#

by steam id you just mean their login right? lol like mine is : bdoom

#

or... is it something else? lol

#

because what happens if they change their steam url? you can change your url to a new one lol

#

wouldnt that technically just wipe their account data lol

thin stratus
#

How about you google steamid (:

#

It's a unique 64bit id or something like that. It's unique per account

sterile pebble
#

anyone knows which source files I should look to find replication source code? I want to look how this happens in code, internally.

dusty sleet
#

Hey, I could use a bit of fresh eyes/advice. I've wasted 4 full days now and can NOT get steam matchmaking to work after upgrading to 4.15. Was working perfectly fine on 4.14. I didnt change ANY of the matchmaking code, nor edit the DefaultEngine.ini file. I put the advanced sessions plugin for 4.15 in and enabled it. No errors around that in the logs. But when I package the game, create session always fails. The steam stuff works because I get the overlay up fine. I don't really know where to look anymore. It's been working for the last month without issue on previous engine version. I've been messing with the DefaultEngine.ini, the target.cs files just out of desperation because I'm stuck. I managed once to get create session to work, but then joining always fails. Right now creating a session fails. I didn't test this before making a ton of updates(since i didnt change this at all) on the new version, so restoring a 4.14 version that works STILL. Would be a lot of work too. Any ideas ?

thin stratus
#

@dusty sleet Enable VerboseLogging for the LogOnline (google), and then show us the log when trying to create a session

#

Also show us the code you use to create a session

twin juniper
#

is Steamworks updated for 4.15? @dusty sleet

dusty sleet
#

@thin stratus I tried enabling the logging but when its packaged, where are those logs saved?

#

@twin juniper hmm? just using the SDK that comes with unreal

twin juniper
#

@dusty sleet did it update?

#

logs are saved to the set user folder iirc

dusty sleet
#

it installs into its own folder 4_15 with its own thirdparty stuff. I'm assuming it ships with the version that works with it? I know the latest Steam SDK is like 139 or something, and unreal is still shipping with 132

thin stratus
#

@dusty sleet De build should still put them somewhere. Game or userfolder?

#

Dev*

dusty sleet
#

ah.. ive been building for shipping. I'll try a dev build now and see

twin juniper
#

most likely its going to place them on userfolder... Perhaps a commandline or flag is needed

thin stratus
#

Does it also fail in standalone mode? @dusty sleet

twin juniper
#

well, try the latest steamworks sdk maybe?

dusty sleet
#

its VR... cant run in standalone

thin stratus
#

Of course you can.

dusty sleet
#

oh?

thin stratus
#

Start via commandline

twin juniper
#

nothing is impossible ;)

dusty sleet
#

except a successful upgrade out of the box ๐Ÿ˜›

thin stratus
#

UE4Editor.exe location Uproject location -game -log

#

Maybe -vr to it

dusty sleet
#

hmm i cant try that now... lets see...

twin juniper
#

UE4Game directly isnt easier?

dusty sleet
#

can*

thin stratus
#

I have bat files. /shrug

dusty sleet
#

it takes about 30 mins to do a package

twin juniper
#

tip: you have to place /shrug first to have it appended last

thin stratus
#

I'm a mod here. You would think i know :P

twin juniper
#

well

#

meh

#

Some forget :)

#

nvm

thin stratus
#

@dusty sleet I can send you a bat file to start the game if you have a few min

#

Not on pc

#

And need a coffee

#

@twin juniper true, thanks anyway (:

dusty sleet
#

yeah ill be here all night trying to sort this

#

im jsut making food too so ill be in and out til its done

#

appreciate it

#

tried -game -log -vr

#

hm

thin stratus
#

Ehm, is that actually compiled for 4.15?

dusty sleet
#

this could be created since troubleshooting. ive tried loading it at the project level and at the engine level.. so

#

shows up in the editor and is "checkable" im using the installed version of the editor here

twin juniper
#

Probably a wrong version is sent with the packaging?

thin stratus
#

It might still need to be recompiled for new versions. At least i need to do that for my soundvis plugin

dusty sleet
#

can i open the sln and rebuild the solution to do that?

thin stratus
#

If you have a cpp project, yes

twin juniper
#

its not exactly that simple

thin stratus
#

You would need to delete the binaries that are inside the plugins folder and rebuild them

#

Oh it is, as long as it doesn't produce errors

twin juniper
#

using rebuild in vs deletes the output

thin stratus
#

Yeah, but also his own binaries

#

Depending on what he presses

dusty sleet
#

hm...

thin stratus
#

How about downloading the 4.15 version from the plugin creator

twin juniper
#

yea, double check your plugins are up to date

dusty sleet
#

on 4.14 i just got the plugin and added it to the plugins folder.. i did the same thing for 4.15.. (got the 4_15 version though)

#

you can download plugins from in the editor? i just dled it manually and pasted.. it is the later version