Can I see the MOTD on the client side? #247

Closed
YuGiOhJCJ opened this Issue Dec 28, 2016 · 19 comments

Comments

Projects
None yet
5 participants
@YuGiOhJCJ

Hello,

The MOTD (Message Of The Day) can be set on the server side:
g_motd "Welcome to the YuGiOhJCJ's server!"
However, I don't see it on the client side.

In the source code, I can see that it should be displayed at the bottom, in the connection screen:
https://github.com/ioquake/ioq3/blob/master/code/q3_ui/ui_connect.c#L186

Can you help me to see the MOTD on the client?
(maybe a screenshot of the connection screen displaying a MOTD could help me)

Thank you.
Best regards.

@ensiform

This comment has been minimized.

Show comment
Hide comment
@ensiform

ensiform Dec 28, 2016

The line you pointed to is incorrect motd. And, I think github issues are less for questions just FWI.

https://github.com/ioquake/ioq3/blob/master/code/cgame/cg_info.c#L209

This is the line that displays it.

The line you pointed to is incorrect motd. And, I think github issues are less for questions just FWI.

https://github.com/ioquake/ioq3/blob/master/code/cgame/cg_info.c#L209

This is the line that displays it.

@YuGiOhJCJ

This comment has been minimized.

Show comment
Hide comment
@YuGiOhJCJ

YuGiOhJCJ Dec 28, 2016

Thanks for the line number.

I see something interesting here:
https://github.com/ioquake/ioq3/blob/master/code/cgame/cg_info.c#L190
"don't print server lines if playing a local game"

As I am accessing my server from my local area network, maybe the MOTD is not displayed for this reason.

Can you try to access my server from your external connection?
Address: ioquake3.1s.fr
Port: 27960 (UDP)

I still don't see the MOTD on the client side.
That would be easier for me if I see the location of the MOTD on a screenshot.
Do you have a screenshot of a MOTD please?

Here are mine:


YuGiOhJCJ commented Dec 28, 2016

Thanks for the line number.

I see something interesting here:
https://github.com/ioquake/ioq3/blob/master/code/cgame/cg_info.c#L190
"don't print server lines if playing a local game"

As I am accessing my server from my local area network, maybe the MOTD is not displayed for this reason.

Can you try to access my server from your external connection?
Address: ioquake3.1s.fr
Port: 27960 (UDP)

I still don't see the MOTD on the client side.
That would be easier for me if I see the location of the MOTD on a screenshot.
Do you have a screenshot of a MOTD please?

Here are mine:


@timangus

This comment has been minimized.

Show comment
Hide comment
@timangus

timangus Dec 28, 2016

Member

As far as I remember, I don't think MOTD is available in baseq3. It may be available in teamarena, however.

Member

timangus commented Dec 28, 2016

As far as I remember, I don't think MOTD is available in baseq3. It may be available in teamarena, however.

@ensiform

This comment has been minimized.

Show comment
Hide comment
@ensiform

ensiform Dec 29, 2016

Its definitely available in baseq3. CS_MOTD is set by the worldspawn on server to be the string of g_motd: https://github.com/ioquake/ioq3/blob/master/code/game/g_spawn.c#L583

Hmm it should be after the pure server line. But it seems like the client isn't picking it up. @timangus maybe some of the configstrings changes from years ago is affecting this? However considering CS_MESSAGE (the arena long name of the map "House of Pain") works fine there is probably no issue with that so scratch that idea.

@YuGiOhJCJ local server in this case literally means if you started a map via `(dev)map in the console or did start a server from the menu. A server on the local network won't have sv_running set (IE in the same quake3 program instance)

ensiform commented Dec 29, 2016

Its definitely available in baseq3. CS_MOTD is set by the worldspawn on server to be the string of g_motd: https://github.com/ioquake/ioq3/blob/master/code/game/g_spawn.c#L583

Hmm it should be after the pure server line. But it seems like the client isn't picking it up. @timangus maybe some of the configstrings changes from years ago is affecting this? However considering CS_MESSAGE (the arena long name of the map "House of Pain") works fine there is probably no issue with that so scratch that idea.

@YuGiOhJCJ local server in this case literally means if you started a map via `(dev)map in the console or did start a server from the menu. A server on the local network won't have sv_running set (IE in the same quake3 program instance)

@YuGiOhJCJ

This comment has been minimized.

Show comment
Hide comment
@YuGiOhJCJ

YuGiOhJCJ Dec 29, 2016

Maybe the content of my configuration file and the server log at startup will help.
Also I have not mentioned that I am using ioq3 version 148603c on the server (32-bit) and on the client (64-bit).

YuGiOhJCJ commented Dec 29, 2016

Maybe the content of my configuration file and the server log at startup will help.
Also I have not mentioned that I am using ioq3 version 148603c on the server (32-bit) and on the client (64-bit).

@robo9k

This comment has been minimized.

Show comment
Hide comment
@robo9k

robo9k Dec 29, 2016

Shouldn't /configstrings on the client print CS_MOTD (index 4 in bg_public.h)?

I just tried the following:

$ q3ded +seta g_motd MOTD +map q3dm6
$ quake3 +connect 127.0.0.1

And all I get is:

]\configstrings 
   0: \capturelimit\8\g_maxGameClients\0\sv_maxclients\8\timelimit\0\fraglimit\20\dmflags\0\sv_hostname\noname\sv_minRate\0\sv_maxRate\0\sv_dlRate\100\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\version\ioq3 1.36_GIT_2941096-2016-12-12 linux-x86_64 Dec 19 2016\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\mg_final pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\444872523 977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_serverid\632\timescale\1\sv_pure\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\UnnamedPlayer\t\0\model\sarge\hmodel\sarge\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

So it seems like CS_MOTD is not set on the client.

robo9k commented Dec 29, 2016

Shouldn't /configstrings on the client print CS_MOTD (index 4 in bg_public.h)?

I just tried the following:

$ q3ded +seta g_motd MOTD +map q3dm6
$ quake3 +connect 127.0.0.1

And all I get is:

]\configstrings 
   0: \capturelimit\8\g_maxGameClients\0\sv_maxclients\8\timelimit\0\fraglimit\20\dmflags\0\sv_hostname\noname\sv_minRate\0\sv_maxRate\0\sv_dlRate\100\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\version\ioq3 1.36_GIT_2941096-2016-12-12 linux-x86_64 Dec 19 2016\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\mg_final pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\444872523 977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_serverid\632\timescale\1\sv_pure\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\UnnamedPlayer\t\0\model\sarge\hmodel\sarge\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

So it seems like CS_MOTD is not set on the client.

@timangus

This comment has been minimized.

Show comment
Hide comment
@timangus

timangus Dec 29, 2016

Member

My vague memory is that it's always been like that.

Member

timangus commented Dec 29, 2016

My vague memory is that it's always been like that.

@ensiform

This comment has been minimized.

Show comment
Hide comment
@ensiform

ensiform Dec 30, 2016

Which qvm is being loaded on the client and server?

It works with the ioq3 qvms, so either it was not included in the q3 1.32 qvms for baseq3 somehow (which is weird since its not missionpack'd in the source release or sdk)

ensiform commented Dec 30, 2016

Which qvm is being loaded on the client and server?

It works with the ioq3 qvms, so either it was not included in the q3 1.32 qvms for baseq3 somehow (which is weird since its not missionpack'd in the source release or sdk)

@robo9k

This comment has been minimized.

Show comment
Hide comment
@robo9k

robo9k Dec 30, 2016

Ah, that was with vanilla id q3ded and quake3 v1.32 and its pk3s.

I tried again with ioq3ded and ioquake3 and git HEAD for baseq3/vm/qagame.qvm and got this:
shot0000

with "MOTD" being the g_motd I set before.

Note that color codes don't work on the loading screen, i.e. "^1MOTD" is displayed as "^1MOTD" instead of red "MOTD".

/configstrings now also has CS_MOTD set.

robo9k commented Dec 30, 2016

Ah, that was with vanilla id q3ded and quake3 v1.32 and its pk3s.

I tried again with ioq3ded and ioquake3 and git HEAD for baseq3/vm/qagame.qvm and got this:
shot0000

with "MOTD" being the g_motd I set before.

Note that color codes don't work on the loading screen, i.e. "^1MOTD" is displayed as "^1MOTD" instead of red "MOTD".

/configstrings now also has CS_MOTD set.

@ensiform

This comment has been minimized.

Show comment
Hide comment
@ensiform

ensiform Dec 30, 2016

Colors are not handled by UI_DrawProportionalString that's why you see it without color and only the raw text.

ensiform commented Dec 30, 2016

Colors are not handled by UI_DrawProportionalString that's why you see it without color and only the raw text.

@YuGiOhJCJ

This comment has been minimized.

Show comment
Hide comment
@YuGiOhJCJ

YuGiOhJCJ Dec 30, 2016

Wow! The MOTD is visible on your screenshot. How can I achieve that? I tried that:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &
But the MOTD is still not printed on the client connection screen.

In the server log, I can see:

Loading vm file vm/qagame.qvm...
File "vm/qagame.qvm" found in "/home/yugiohjcj/.q3a/baseq3/pak8.pk3"

So, I guess it is the qvm loaded by my server.

In the client log, I can see:

Loading vm file vm/ui.qvm...
File "vm/ui.qvm" found in "/home/yugiohjcj/.q3a/baseq3/pak8.pk3"

So, I guess it is the qvm loaded by my client.

Is it correct?

If my ioq3 server is lanched with the following command:
/usr/games/quake3/ioq3ded.x86 +exec yugiohjcj.config &
I get that on the ioq3 client console:

/configstrings
   0: \sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\sv_minRate\0\sv_maxRate\10000\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\dmflags\0\fraglimit\30\timelimit\30\sv_maxclients\8\g_maxGameClients\0\capturelimit\8\sv_dlRate\100\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm1\sv_privateClients\0\sv_allowDownload\1\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\840\timescale\1\fs_game\\sv_cheats\0
   2: music\sonic5.wav
   3: Arena Gate
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 010101101110100100110100000000000000
 289: sound/player/fry.wav
 290: sound/world/fire1.wav
 291: sound/world/ambient/x_ominous.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Courtyard
 [..]

If my ioq3 server is lanched with the following command:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &
I get that on the ioq3 client console:

/configstrings
   0: \sv_dlRate\100\capturelimit\8\g_maxGameClients\0\sv_maxclients\8\timelimit\30\fraglimit\30\dmflags\0\sv_floodProtect\1\sv_maxPing\0\sv_minPing\0\sv_maxRate\10000\sv_minRate\0\sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\596\timescale\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

YuGiOhJCJ commented Dec 30, 2016

Wow! The MOTD is visible on your screenshot. How can I achieve that? I tried that:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &
But the MOTD is still not printed on the client connection screen.

In the server log, I can see:

Loading vm file vm/qagame.qvm...
File "vm/qagame.qvm" found in "/home/yugiohjcj/.q3a/baseq3/pak8.pk3"

So, I guess it is the qvm loaded by my server.

In the client log, I can see:

Loading vm file vm/ui.qvm...
File "vm/ui.qvm" found in "/home/yugiohjcj/.q3a/baseq3/pak8.pk3"

So, I guess it is the qvm loaded by my client.

Is it correct?

If my ioq3 server is lanched with the following command:
/usr/games/quake3/ioq3ded.x86 +exec yugiohjcj.config &
I get that on the ioq3 client console:

/configstrings
   0: \sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\sv_minRate\0\sv_maxRate\10000\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\dmflags\0\fraglimit\30\timelimit\30\sv_maxclients\8\g_maxGameClients\0\capturelimit\8\sv_dlRate\100\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm1\sv_privateClients\0\sv_allowDownload\1\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\840\timescale\1\fs_game\\sv_cheats\0
   2: music\sonic5.wav
   3: Arena Gate
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 010101101110100100110100000000000000
 289: sound/player/fry.wav
 290: sound/world/fire1.wav
 291: sound/world/ambient/x_ominous.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Courtyard
 [..]

If my ioq3 server is lanched with the following command:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &
I get that on the ioq3 client console:

/configstrings
   0: \sv_dlRate\100\capturelimit\8\g_maxGameClients\0\sv_maxclients\8\timelimit\30\fraglimit\30\dmflags\0\sv_floodProtect\1\sv_maxPing\0\sv_minPing\0\sv_maxRate\10000\sv_minRate\0\sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\596\timescale\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]
@robo9k

This comment has been minimized.

Show comment
Hide comment
@robo9k

robo9k Dec 30, 2016

I didn't test all variations, for me it seemed enough to use a recent qagame.qvm on the server.
You should be able to just grab the test builds and copy the file to /home/yugiohjcj/.q3a/baseq3/vm/qagame.qvm.
Make sure that the line about "Loading vm file vm/qagame.qvm..." prints that new location.

If that doesn't help I can try to figure out more details about my success later 😄

robo9k commented Dec 30, 2016

I didn't test all variations, for me it seemed enough to use a recent qagame.qvm on the server.
You should be able to just grab the test builds and copy the file to /home/yugiohjcj/.q3a/baseq3/vm/qagame.qvm.
Make sure that the line about "Loading vm file vm/qagame.qvm..." prints that new location.

If that doesn't help I can try to figure out more details about my success later 😄

@ensiform

This comment has been minimized.

Show comment
Hide comment
@ensiform

ensiform Dec 31, 2016

You would have to pk3 up the vm folder to ensure the ioq3-based cgame/ui are loaded. ioq3 server will load qagame.qvm regardless of pure state from out of the pack files I think.

So it sounds like @timangus may have been correct. The original idq3 qvms didn't support g_motd on the load screen for vanilla but they likely did for Team Arena. And the full source dump for Q3 came from a TA-based end product mostly with #ifdef MISSIONPACK defines for TA specific code thus why the ioquake3 qvm sets it "properly".

ensiform commented Dec 31, 2016

You would have to pk3 up the vm folder to ensure the ioq3-based cgame/ui are loaded. ioq3 server will load qagame.qvm regardless of pure state from out of the pack files I think.

So it sounds like @timangus may have been correct. The original idq3 qvms didn't support g_motd on the load screen for vanilla but they likely did for Team Arena. And the full source dump for Q3 came from a TA-based end product mostly with #ifdef MISSIONPACK defines for TA specific code thus why the ioquake3 qvm sets it "properly".

@YuGiOhJCJ

This comment has been minimized.

Show comment
Hide comment
@YuGiOhJCJ

YuGiOhJCJ Dec 31, 2016

OK so I downloaded:
http://ioquake3.org/files/jenkins/latest/gcc/no_options/release-linux-x86_64.zip
(notice: my server is 32-bit and these binaries seems to be 64-bit)
Then I extracted it and I moved the baseq3/vm/qagame.qvm file to the /home/yugiohjcj/.q3a/baseq3/vm/qagame.qvm location on the server.
I restarted the server:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &
It seems that the new vm is loaded correctly on the server:

Loading vm file vm/qagame.qvm...
File "vm/qagame.qvm" found at "/home/yugiohjcj/.q3a/baseq3"
...which has vmMagic VM_MAGIC_VER2
Loading 894 jump table targets
VM file qagame compiled to 1371810 bytes of code
qagame loaded in 2703616 bytes on the hunk

And here is the result on the client:

/configstrings
   0: \sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\sv_minRate\0\sv_maxRate\10000\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\dmflags\0\fraglimit\30\timelimit\30\sv_maxclients\8\g_maxGameClients\0\capturelimit\8\sv_dlRate\100\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\1009\timescale\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

Unfortunately, I still don't see the MOTD on the client side.

OK so I downloaded:
http://ioquake3.org/files/jenkins/latest/gcc/no_options/release-linux-x86_64.zip
(notice: my server is 32-bit and these binaries seems to be 64-bit)
Then I extracted it and I moved the baseq3/vm/qagame.qvm file to the /home/yugiohjcj/.q3a/baseq3/vm/qagame.qvm location on the server.
I restarted the server:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &
It seems that the new vm is loaded correctly on the server:

Loading vm file vm/qagame.qvm...
File "vm/qagame.qvm" found at "/home/yugiohjcj/.q3a/baseq3"
...which has vmMagic VM_MAGIC_VER2
Loading 894 jump table targets
VM file qagame compiled to 1371810 bytes of code
qagame loaded in 2703616 bytes on the hunk

And here is the result on the client:

/configstrings
   0: \sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\sv_minRate\0\sv_maxRate\10000\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\dmflags\0\fraglimit\30\timelimit\30\sv_maxclients\8\g_maxGameClients\0\capturelimit\8\sv_dlRate\100\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/pak8 baseq3/pak4 baseq3/pak0\sv_referencedPaks\977125798 1197932710 1566731103 \sv_pakNames\pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\1009\timescale\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

Unfortunately, I still don't see the MOTD on the client side.

@robo9k

This comment has been minimized.

Show comment
Hide comment
@robo9k

robo9k Dec 31, 2016

Not at my Linux box right now. From the top of my head, the latest qagame.qvm was all I changed (I didn't create a pk3 with all the QVMs). Do note however that I'm using a somewhat recent version of ioquake3 and ioq3ded as can be seen in the /configstrings output above (ioq3 1.36_GIT_2941096-2016-12-12 linux-x86_64 Dec 19 2016). If you can, maybe try more recent binaries on both client and server.

I might be able to give you an exact rundown of all the moving parts and their versions later (or maybe next year 🎆 😁 ).

robo9k commented Dec 31, 2016

Not at my Linux box right now. From the top of my head, the latest qagame.qvm was all I changed (I didn't create a pk3 with all the QVMs). Do note however that I'm using a somewhat recent version of ioquake3 and ioq3ded as can be seen in the /configstrings output above (ioq3 1.36_GIT_2941096-2016-12-12 linux-x86_64 Dec 19 2016). If you can, maybe try more recent binaries on both client and server.

I might be able to give you an exact rundown of all the moving parts and their versions later (or maybe next year 🎆 😁 ).

@ensiform

This comment has been minimized.

Show comment
Hide comment
@ensiform

ensiform Dec 31, 2016

You need the client mod (cgame and ui) too like I said above @YuGiOhJCJ and those must be in a new pk3 file with the vm folder structure in-tact. Something like zzzzioq3pak.pk3 with the entire vm folder in it. Or turn sv_pure off on your server in the startup line.

ensiform commented Dec 31, 2016

You need the client mod (cgame and ui) too like I said above @YuGiOhJCJ and those must be in a new pk3 file with the vm folder structure in-tact. Something like zzzzioq3pak.pk3 with the entire vm folder in it. Or turn sv_pure off on your server in the startup line.

@TimeDoctor

This comment has been minimized.

Show comment
Hide comment
@TimeDoctor

TimeDoctor Dec 31, 2016

Member

This doesn't appear to be a problem with ioquake3, and it looks like we have adequately helped so I am closing this one out. Please feel free to ask any follow up questions on the forums at http://discourse.ioquake.org

Member

TimeDoctor commented Dec 31, 2016

This doesn't appear to be a problem with ioquake3, and it looks like we have adequately helped so I am closing this one out. Please feel free to ask any follow up questions on the forums at http://discourse.ioquake.org

@TimeDoctor TimeDoctor closed this Dec 31, 2016

@YuGiOhJCJ

This comment has been minimized.

Show comment
Hide comment
@YuGiOhJCJ

YuGiOhJCJ Jan 2, 2017

OK so I created the pk3 file:
zip -r zzzzioq3pak.pk3 vm

Here is its content:

$ unzip -l zzzzioq3pak.pk3 
Archive:  zzzzioq3pak.pk3
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  01-02-2017 07:18   vm/
   304584  01-02-2017 07:18   vm/ui.qvm
   342968  01-02-2017 07:18   vm/cgame.qvm
   487320  01-02-2017 07:18   vm/qagame.qvm
---------                     -------
  1134872                     4 files

I give you the MD5SUM of these files too to be sure that I am using the good ones:

$ md5sum *
499946eb63b2113191411e0d026bca27  cgame.qvm
9ef27fcee430270269fa2c767a222510  qagame.qvm
615f6482a76560b4e043793ab7dfbfcc  ui.qvm

Then I copied this pk3 file to the client and to the server.
After that, I restarted the server:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &

On the server side, the new qvm seems to be loaded correctly:

Loading vm file vm/qagame.qvm...
File "vm/qagame.qvm" found in "/home/yugiohjcj/.q3a/baseq3/zzzzioq3pak.pk3"
...which has vmMagic VM_MAGIC_VER2
Loading 894 jump table targets
VM file qagame compiled to 1371810 bytes of code
qagame loaded in 2703616 bytes on the hunk

Then I launched the client:
/usr/games/quake3/ioquake3.x86_64

On the client side, the new qvm seems to be loaded correctly:

Loading vm file vm/ui.qvm...
File "vm/ui.qvm" found in "/home/yugiohjcj/.q3a/baseq3/zzzzioq3pak.pk3"
...which has vmMagic VM_MAGIC_VER2
Loading 1154 jump table targets
VM file ui compiled to 690577 bytes of code
ui loaded in 1744320 bytes on the hunk
35 arenas parsed
32 bots parsed
Loading vm file vm/cgame.qvm...
File "vm/cgame.qvm" found in "/home/yugiohjcj/.q3a/baseq3/zzzzioq3pak.pk3"
...which has vmMagic VM_MAGIC_VER2
Loading 810 jump table targets
VM file cgame compiled to 918222 bytes of code
cgame loaded in 2939424 bytes on the hunk

But here are the configstrings:

/configstrings
   0: \sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\sv_minRate\0\sv_maxRate\10000\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\dmflags\0\fraglimit\30\timelimit\30\sv_maxclients\8\g_maxGameClients\0\capturelimit\8\sv_dlRate\100\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/zzzzioq3pak baseq3/pak4 baseq3/pak0\sv_referencedPaks\-1190769708 1197932710 1566731103 \sv_pakNames\zzzzioq3pak pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\-1190769708 977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\1320\timescale\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

As you can see, the MOTD is still missing.

OK so I created the pk3 file:
zip -r zzzzioq3pak.pk3 vm

Here is its content:

$ unzip -l zzzzioq3pak.pk3 
Archive:  zzzzioq3pak.pk3
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  01-02-2017 07:18   vm/
   304584  01-02-2017 07:18   vm/ui.qvm
   342968  01-02-2017 07:18   vm/cgame.qvm
   487320  01-02-2017 07:18   vm/qagame.qvm
---------                     -------
  1134872                     4 files

I give you the MD5SUM of these files too to be sure that I am using the good ones:

$ md5sum *
499946eb63b2113191411e0d026bca27  cgame.qvm
9ef27fcee430270269fa2c767a222510  qagame.qvm
615f6482a76560b4e043793ab7dfbfcc  ui.qvm

Then I copied this pk3 file to the client and to the server.
After that, I restarted the server:
/usr/games/quake3/ioq3ded.x86 +seta g_motd "^1MOTD" +map q3dm6 &

On the server side, the new qvm seems to be loaded correctly:

Loading vm file vm/qagame.qvm...
File "vm/qagame.qvm" found in "/home/yugiohjcj/.q3a/baseq3/zzzzioq3pak.pk3"
...which has vmMagic VM_MAGIC_VER2
Loading 894 jump table targets
VM file qagame compiled to 1371810 bytes of code
qagame loaded in 2703616 bytes on the hunk

Then I launched the client:
/usr/games/quake3/ioquake3.x86_64

On the client side, the new qvm seems to be loaded correctly:

Loading vm file vm/ui.qvm...
File "vm/ui.qvm" found in "/home/yugiohjcj/.q3a/baseq3/zzzzioq3pak.pk3"
...which has vmMagic VM_MAGIC_VER2
Loading 1154 jump table targets
VM file ui compiled to 690577 bytes of code
ui loaded in 1744320 bytes on the hunk
35 arenas parsed
32 bots parsed
Loading vm file vm/cgame.qvm...
File "vm/cgame.qvm" found in "/home/yugiohjcj/.q3a/baseq3/zzzzioq3pak.pk3"
...which has vmMagic VM_MAGIC_VER2
Loading 810 jump table targets
VM file cgame compiled to 918222 bytes of code
cgame loaded in 2939424 bytes on the hunk

But here are the configstrings:

/configstrings
   0: \sv_hostname\YuGiOhJCJ's server - http://yugiohjcj.1s.fr/\sv_minRate\0\sv_maxRate\10000\sv_minPing\0\sv_maxPing\0\sv_floodProtect\1\dmflags\0\fraglimit\30\timelimit\30\sv_maxclients\8\g_maxGameClients\0\capturelimit\8\sv_dlRate\100\version\ioq3 1.36 linux-x86 Mar  1 2015\com_gamename\Quake3Arena\com_protocol\71\g_gametype\0\mapname\q3dm6\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0
   1: \pmove_msec\8\pmove_fixed\0\g_synchronousClients\0\sv_referencedPakNames\baseq3/zzzzioq3pak baseq3/pak4 baseq3/pak0\sv_referencedPaks\-1190769708 1197932710 1566731103 \sv_pakNames\zzzzioq3pak pak8 pak7 pak6 pak5 pak4 pak3 pak2 pak1 pak0\sv_paks\-1190769708 977125798 908855077 -585902437 -207895723 1197932710 -1303471980 412165236 298122907 1566731103 \sv_voip\1\sv_pure\1\sv_serverid\1320\timescale\1\fs_game\\sv_cheats\0
   2: music/fla22k_02.wav
   3: The Campgrounds
   6: 0
   7: -9999
  20: baseq3-1
  21: 0
  27: 001111111110101100110101101010000000
 289: sound/player/fry.wav
 290: sound/items/poweruprespawn.wav
 291: sound/world/jumppad.wav
 544: n\YuGiOhJCJ\t\0\model\visor/default\hmodel\visor/default\g_redteam\\g_blueteam\\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0
 608: unknown
 609: Upper Floor
[..]

As you can see, the MOTD is still missing.

@TimeDoctor

This comment has been minimized.

Show comment
Hide comment
@TimeDoctor

TimeDoctor Jan 2, 2017

Member

Please continue this discussion on the forums.

Member

TimeDoctor commented Jan 2, 2017

Please continue this discussion on the forums.

@ioquake ioquake locked and limited conversation to collaborators Jan 2, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.