# How to set up a Steam LAN game with Steam OSS?

**URL:** <https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440>\
**Category:** Platform & Builds\
**Tags:** onlinesubsystem, Networking, Steam, lan, unreal-engine, CPP, question\
**Created:** [November 27, 2018, 10:24pm UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440 "2018-11-27T22:24:13Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![LDOGLONDON](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LDOGLONDON](https://forums.unrealengine.com/u/LDOGLONDON)\
**Post date:** [November 27, 2018, 10:24pm UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/1 "2018-11-27T22:24:13Z")

</div>

Hi all,

I’m trying to create my own online subsystem based off of the Steam online subsystem. I’ve copied and renamed all of the Steam OSS and ultimately I want to change a lot of its interfaces (sessions, voice, ect). But for now I’m just trying to test my copy of the Steam OSS. I can only test over a LAN right now, so I wanted to know how to start a Steam LAN game (or if its even possible). If I can get that up and running I can then try to emulate it with my custom OSS.

\*also I have gotten a basic non-steam LAN game running with the Null OSS. Another note is that my game uses a dedicated server, so a client can’t host a server.

Any help would be really appreciated!

---

<div class="post-metadata">

**Author:** ![Shadowriver](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Shadowriver](https://forums.unrealengine.com/u/Shadowriver)\
**Post date:** [November 28, 2018, 4:24am UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/2 "2018-11-28T04:24:54Z")

</div>

If specific online subsystem supports LAN listings you just need to mark Use LAN Boolean when you create session, your online subsystem needs to support that in order to work.

[https://docs.unrealengine.com/en-us/Engine/Blueprints/UserGuide/OnlineNodes](https://docs.unrealengine.com/en-us/Engine/Blueprints/UserGuide/OnlineNodes)

---

<div class="post-metadata">

**Author:** ![LDOGLONDON](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LDOGLONDON](https://forums.unrealengine.com/u/LDOGLONDON)\
**Post date:** [November 28, 2018, 6:27pm UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/3 "2018-11-28T18:27:19Z")

</div>

Thanks for the comment. I am doing all of this in c++ and in my game session class when I am setting up the session settings I am checking a command line argument “LAN”, which I set, to determine if bIsLANMatch is true (I believe that should correspond to the BP bool). My problem now is that client can’t find the server at all. Like it can’t see it when I’m using Steam OSS or my own OSS. I think I need to append ?bIsLANMatch to my map URL but I’m not sure if I have to do that on the server or the client, and I’m not sure where the to modify the map URL also.

---

<div class="post-metadata">

**Author:** ![Shadowriver](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Shadowriver](https://forums.unrealengine.com/u/Shadowriver)\
**Post date:** [November 28, 2018, 10:14pm UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/4 "2018-11-28T22:14:46Z")

</div>

You overrided something important or you not forwarding LAN bool properly look on original OnlineSubsystem code what it does on LAN. YOu can also look up null as all null does is do LAN lookup using multicast IPs like any LAN game does

---

<div class="post-metadata">

**Author:** ![LDOGLONDON](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LDOGLONDON](https://forums.unrealengine.com/u/LDOGLONDON)\
**Post date:** [January 30, 2019, 6:45pm UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/5 "2019-01-30T18:45:52Z")

</div>

I was not able to accomplish LAN play with the Steam OSS, but I was able to get my desired outcome by creating a custom OSS which basically combines the Steam OSS with the NULL OSS.

If you create your own OSS you shouldn’t have to append anything to your map URL for LAN matches. The only thing the OSS is looking at when settings up sessions are the session settings, or “FOnlineSessionSettings”, that should be set up within your Game Session class (for your game).

I basically just check command line arguments to modify things like the session settings and what interfaces my OSS will be using.

---

<div class="post-metadata">

**Author:** ![g0n](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/g0n/32/632978_2.png) [@g0n](https://forums.unrealengine.com/u/g0n)\
**Post date:** [March 24, 2019, 3:39am UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/6 "2019-03-24T03:39:38Z")

</div>

Would you mind to show me how you did your customized OSS to combine null and steam for giving the chance to use Steam or LAN? Thnx

---

<div class="post-metadata">

**Author:** ![LDOGLONDON](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LDOGLONDON](https://forums.unrealengine.com/u/LDOGLONDON)\
**Post date:** [March 25, 2019, 8:53pm UTC](https://forums.unrealengine.com/t/how-to-set-up-a-steam-lan-game-with-steam-oss/438440/7 "2019-03-25T20:53:16Z")

</div>

So you need to have UE4 built from source, then copy all of OnlineSubsystemSteam files (found under …\UE4\Plugins\Online\OnlineSubsystemSteam) and rename all the classes and files to your own (ex: OnlineSubsystemMyProject). Once you rename everything make sure it builds. Then, to get NULL stuff working, copy the OnlineIdentity and OnlinseSession interfaces for OnlineSubsytemNull and rename them. Then, what I do, is check for a command line parameter to switch between using the custom null interfaces and the correlating custom steam interfaces. So I’m able to have Steam features with LAN play, because I’m using the Null session interface.
