Raised This Month: $19 Target: $400
 4% 

Solved MetaMod:Source not loading (Linux listenserver only) dod:s, CSS, HL2:DM, TF2.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
INsane_dod
Member
Join Date: Mar 2008
Old 05-05-2024 , 21:46   MetaMod:Source not loading (Linux listenserver only) dod:s, CSS, HL2:DM, TF2.
Reply With Quote #1

EDIT 21 April 2025 - Please see post # 4 below for a updated fix. That will allow you to use MetaMod and SourceMod on a Linux listenserver after the 19th Feb 2025 update to dod:s, CSS, HL2:DM and TF2.



EDIT 12 April 2025: Updated (see post #3) after 19th Feb 2025 update to Day of Defeat:Source the workaround found in Post #2 below no longer works to make MetaMod:Source work on a Linux listen server.

I will leave it as "Solved" as that does still works on a "previous build" beta.


This issue is..
1. Only Linux - multipule distro's, with multipule hardware configs
2. Only a Listen server runnng Linux native
3. dod:s, CSS, HL2:DM and TF2.
4. CS2 is not affected, it’s Linux native listenserver allows MetaMod:source to load.
5. Also left for dead 2, it does load but has errors with "meta" commands printouts in the console.

My main concern here is Day of Defeat Source and HL2:DM as the only bot system available is RCBot2 (third party MetaMod:source plugin)

The issue is that MetaMod:source does not load and has this error in the console...
Code:
Failed to load plugin "addons/metamod/bin/server"
 failed to dlopen /home/kim/.local/share/Steam/steamapps/common/Day of Defeat Source/dod/addons/metamod/bin/linux64/server.so error=/home/kim/.local/share/Steam/steamapps/common/Day of Defeat Source/dod/addons/metamod/bin/linux64/server.so: wrong ELF class: ELFCLASS64
Unable to load plugin "addons/metamod/bin/linux64/server"
Further, in the addons/metamod/bin folder the file “metamod-fatal.log” returns this line on every startup…

Code:
L 05/01/2024 - 22:00:08: Detected engine 14 but could not load: libvstdlib_srv.so: cannot open shared object file: No such file or directory
So I looked for that file, it isn't in dod:s, TF2, CSS or HL2:DM.

However I did find it in the HL2 mod "Synergy" here...
home/<user>/.steam/steam/steamapps/common/Synergy/bin is the location on a typical Linux install and libvstdlib_srv.so is there.

There is a lot of other files with a "<filename>_srv.so" as well that are in Synergey and Left for Dead 2 and not in the other "game title/bin" folder e.g. for DoD:S ...
Code:
"/home/<user>/.steam/steam/steamapps/common/Day of Defeat Source/bin"
I noted that placing 2 files from Synergy/bin to Day of Defeat Source/bin allowed MetaModSouce to start and load RCBot2.

libvstdlib_srv.so (the file missing) and another not referenced by MetaMod “libtier0_srv.so"
Those two files allowed RCBot2 to function correctly.

But… when you place in “Meta” you can see the console has the version in the auto-complete area of the console input, but it doesn’t print out in console.

So… placing in two files and metamod loads and loads the plugin RCBot2.
No errors in the console or the gameplay for RCBot2, plays OK.

What is happening here?

Is this a MetaMod:Source issue or a Valve issue?

I got the bot plugin to work, metamod has some obvious errors, I have not installed SourceMod just yet. That would be another can of worms I would say.

Remember, this is only Linux listenservers and only affects dod:s, CSS, TF2, HL2:DM that I know of.
It also doesn’t seem to be tied to a particular Linux distro or 32bit dependencies like a lot of similar errors.
The MetaMod:Source plugin 'RCBot2" on a Linux dedicated server...works as it does on a Windows Listenserver and dedicated server. https://github.com/APGRoboCop/rcbot2...tag/v1.7-beta2

It may not seem important but the players of dods and HL2:DM don’t have a BOT system, RCBot2 is the only bot, it would be nice if Linux users can have what Windows users have, especially since those two run great on native Linux.
So, running MetaMod:Source on a Linux listen server for dod:s and HL2:DM is a big deal.


To reproduce this (dod:s)...
1. Place a stable or dev MetaMod:Source in the mod folder normally (make sure "-insecure" is in the launch options)
2. Start a listen server
3. On game start up note the error at the top of the dev' console
4. Type "meta" it returns a unknown command... even after starting a map.
5. Open the file “metamod-fatal.log” and view thye error.

A "fix" of sorts...
1. Add the two files "libvstdlib_srv.so" and "libtier0_srv.so" from the Synergy/bin folder to Day of Defeat Source/bin folder.
2. Start dod:s and open the dev' console, type in "meta version"

Note1: As you type the auto-complete (box below the input line) is showing the MetaMod:source version.

Note2: When pressing submit it will not print that version in the console and does not return "unknown command"

Note 3: Also if the RCBot2 plugin is installed correctly... the plugin runs normally.
Note "normally" means that you have to edit "config.ini" in "...\Day of Defeat Source\dod\addons\rcbot2\config" to start bots...
Code:
#
rcbot config min_bots -1
rcbot config max_bots 16
#
The plugin ships with a default command of "rcbotd" (dedicated server command) and "rcbot" is used for loading bots on listen servers.


Any help of what to do next or some insight is appreciated!

Last edited by INsane_dod; 04-20-2025 at 22:34. Reason: edit...disable smiles and fix let for dead 2 info' and RCBot2 bot config.ini
INsane_dod is offline
INsane_dod
Member
Join Date: Mar 2008
Old 05-15-2024 , 23:04   Re: MetaMod:Source not loading (Linux listenserver only) dod:s, CSS, HL2:DM, TF2.
Reply With Quote #2

To those that also have this issue on a Linux Listenserver, it isn't a MetaMod:Source issue.
It's because you are missing two files in your Day of Defeat Source/bin folder.

The issue has been reported... https://github.com/ValveSoftware/Sou...es/issues/6005

Once you obtain the two missing files and run MetaMod:Source, plugins like RCBot2 and Sourcemod now operate normally as they do on a Listen server in windows.

They are libtier0_srv.so and libvstdlib_srv.so.
The files can be obtained from a steamcmd dods install “steamcmd/Your_game_folder/bin/” folder.

Place them in the “Day of Defeat Source/bin” folder.

Test...
  1. Use Linux only not windows.
  2. Install MetaMod:Source (Linux any version stable or development) to the Day of Defeat Source/dod/addons folder as normal.
  3. Run the game with the “-insecure” launch option.
  4. Run a map.
  5. Type in console “meta version” and do include the double quotations, as this command has a space.

You should now see metamod load...
Quote:
] "meta version"
Metamod:Source version 2.0.0-dev+1289
Metamod:Source Version Information
Plugin interface version: 16:14
Loaded As: Valve Server Plugin
SourceHook version: 5:5
Compiled on: Apr 6 2024 098:22
Built from: https://github.com/alliedmodders/met...commit/b4aa055
Build ID: 1289:b4aa055
http://www.metamodsource.net/
I'll mark the first post as solved.

Reason: It's not a metamod issue, its a Valve issue.
INsane_dod is offline
INsane_dod
Member
Join Date: Mar 2008
Old 04-11-2025 , 16:24   Re: MetaMod:Source not loading (Linux listenserver only) dod:s, CSS, HL2:DM, TF2.
Reply With Quote #3

An Update on this after the 19th Feb 2025 Day of Defeat:Source update.

The above work around placing libtier0_srv.so and libvstdlib_srv.so in “steamcmd/Your_game_folder/bin/” folder.

This work around no longer works on the new files.

There is now no way I know of to have a Linux listenserver ruining MetaMod:Source.

The only way for Linux is to install Proton and use the windows files, then MetaMod:Source will load.
INsane_dod is offline
blz
Junior Member
Join Date: Dec 2007
Old 04-17-2025 , 01:39   Re: MetaMod:Source not loading (Linux listenserver only) dod:s, CSS, HL2:DM, TF2.
Reply With Quote #4

I have discovered a better method that works really well (though tested on TF2 as I don't have DoD:S, but from what I can tell, it should work with any Source based game client that MetaMod:Source otherwise supports.)

I simply could not get MetaMod:Source to load using libvstdlib_srv.so and libtier0_srv.so copied from a dedicated server install, the meta command would just do nothing at all, no error, just blank.

With some experimenting, I found that creating symlinks with those names pointing to the existing variants lacking the _srv suffix instead, worked perfectly.

It seems that there is a difference between those two files from the dedicated server versus what comes with the game client and it seems they need to match the main binary. MetaMod:Source simply expects those two files names to contain _srv so the symlink satisfies that and allows it to load using the files that came with the client (which also means not worrying about them becoming out of date.)


In summary:

Go to steamapps/common/Team Fortress 2/bin/linux64 and make two symlinks.
  • libvstdlib_srv.so pointing to the existing libvstdlib.so
  • libtier0_srv.so pointing to the existing libtier0.so

For example:
Code:
cd '/path/to/steamapps/common/Team Fortress 2/bin/linux64'
ln -svn libvstdlib{,_srv}.so
ln -svn libtier0{,_srv}.so
(Replace /path/to with the actual path.)
(If you happen to be using a 32-bit system or version of the game, then replace linux64 with linux32 instead.)

Last edited by blz; 04-17-2025 at 01:41.
blz is offline
INsane_dod
Member
Join Date: Mar 2008
Old 04-20-2025 , 22:29   Re: MetaMod:Source not loading (Linux listenserver only) dod:s, CSS, HL2:DM, TF2.
Reply With Quote #5

Quote:
Originally Posted by blz View Post
In summary:

Go to steamapps/common/Team Fortress 2/bin/linux64 and make two symlinks.
  • libvstdlib_srv.so pointing to the existing libvstdlib.so
  • libtier0_srv.so pointing to the existing libtier0.so

For example:
Code:
cd '/path/to/steamapps/common/Team Fortress 2/bin/linux64'
ln -svn libvstdlib{,_srv}.so
ln -svn libtier0{,_srv}.so
(Replace /path/to with the actual path.)
(If you happen to be using a 32-bit system or version of the game, then replace linux64 with linux32 instead.)
Thanks confirms that works in Day of Defeat: Source too. I'll edit my first post to look at your post now.

However, even though I got Linux MetaMod:Source and SourceMod to load on my Linux Listenserver, my main aim was to get the MetaMod:source plugin RCBot2 working.

That failed to load, the version that works on a Linux Dedicated server .... rcbot2-ver-2-alpha-5 doesn't work on the linux listen server.

Back to using Proton I guess as the main aim was to have RCBot2 work.

Thanks for that anyway, it certainly worked for MetaMod and SourceMod !
INsane_dod is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 23:31.


Powered by vBulletin®
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Theme made by Freecode