Jump to content

Recommended Posts

Posted (edited)

I'm starting to put together a bug release for Jaymod. The goal of this release is to fix the known issues with the current version, 2.2.0. Please add a comment below describing any issues you are aware of and the steps to reproduce or create a new issue on this github repo.

 

A few notes:

1. This is not for feature requests.

2. Game engine bugs in 2.60b or Legacy that affect Jaymod in some unique way are welcome.

3. Do not publicly post issues that will cause server crashes or other serious exploits. Send a private message to me here or on discord (cake#2051).

 

Here are the issues I am aware of already:

- spectator target leaks to other players

- bullet origin is wrong when crouched and aiming 30 degrees or more downward

- hitboxes lag behind moving players

- various issues caused by sv_fps other than 20

- team change and disconnect friendly fire exploit

- dead player spectating wrong team

- remove all disabled options from vote menu

- knife spinning sound and entity issues

- MG sighting is wrong

- compass broken on localhost

- restrict view angle commands

- limit hitbox manipulation by spamming crouch

- limit mount/unmount rate on movers

- remove FPS dependent recoil

- fix end of map awards with g_gametype 2

- panzerfaust XP

- proning near walls/objects

- cg_autorate causes lots of server console and log spam

- crosshairs are not centered at most resolutions

- covert ops satchel detonator weapon switch issue

- remove FPS dependency from turn spread

- reduce "insufficient fire support" voice spam

- limbo and team/class change with full teams moves player to spectator

- ignore command doesn't do anything

- covert ops in disguise with any weapon exploit

- shoves issued after a player has died (at the server) are still propagated

- extra delay when switching weapons while taking damage

- lagometer partially repeats itself at high resolution

- timenudge cvar range (-50 to 50) does not match actual internal state (-30 to 30)

Edited by the cake is a lie
shorter title
  • Like 2
  • Love 1
  • 100 1
Posted (edited)

Knife changes to binoculars when some other key pressed, Not sure what key(Binoculars won't change at all)

*I don't think HUD XP can be fixed, Just press Tab.

Edited by Buckwild
add
  • Thanks 2
  • Surprise 1
Posted

I need more information about these previously reported issue to be able to do anything about them:

 

user.db size limit

It looks like there used to be serious side effects like mass XP reset and lost levels caused by filling the user.db beyond capacity. Is this issue now resolved in the mod code or just with a separate maintenance process? I saw that you got jaybird to extend the size of the user.db but that there was still some other issue? @daredevil said in this 2019 post that: "XP Reset has nothing to do with server clogging up. Jaymod had old bug - where if we hit certain XX - it would reset everyone's XP - so we had put 90 days limited initially.  While Jaybird had extended his user.db limit on my request that bug was still an issue."

 

Is this issue now resolved in the mod or does it still require the use of a external tool like Levelizer 1.3 to manage the user.db?

Is there a separate bug "where if we hit certain XX" or is this all just the same issue?

Is a serverside command for user.db cleanup needed?

 

server crashes

This other post from 2012 mentions crashes caused by jaymod but doesn't provide any usable details for debugging.

 

false bans

This unban request concluded with a decision to unban based on a potential jaymod bug causing the ban but no additional details were provided. Is there any more information available on this bug?

 

missing MAC address

In this post from 2012 a player reported that jaymod could not detect their MAC address (presumably when checked via dumpuser or !finger). Does this issue still exist and any ideas as to what triggers it? I see a MAC address for my devices when testing on 2.60b/Legacy and Linux/Windows clients.

 

landmine spotting causes lag

Is anyone still having lag caused by teammates spotting landmines? I used to encounter this problem as well but at some point it went away, but I'm not sure what the fix was (hardware change, switching to ETL, server change, etc). If this problem still exists let me know what game client you are using and we can go from there.

  • Administrators
Posted
13 hours ago, the cake is a lie said:

It looks like there used to be serious side effects like mass XP reset and lost levels caused by filling the user.db beyond capacity. Is this issue now resolved in the mod code or just with a separate maintenance process? I saw that you got jaybird to extend the size of the user.db but that there was still some other issue? @daredevil said in this 2019 post that: "XP Reset has nothing to do with server clogging up. Jaymod had old bug - where if we hit certain XX - it would reset everyone's XP - so we had put 90 days limited initially.  While Jaybird had extended his user.db limit on my request that bug was still an issue."

 

 

This problem still exist... I think somewhere in jaymod, it's internal bug where user.db doens't get updated correctly during map restart or server shutdown and end result is some users loose their XP/level because their info gets wiped out. Try to spoof MAC ID's and play around that...Need to spend more time in finding root cause or reproducing the issue. 

 

13 hours ago, the cake is a lie said:

server crashes

This other post from 2012 mentions crashes caused by jaymod but doesn't provide any usable details for debugging.

 

Handled on AC side now. 

 

13 hours ago, the cake is a lie said:

false bans

This unban request concluded with a decision to unban based on a potential jaymod bug causing the ban but no additional details were provided. Is there any more information available on this bug?

 

I believe in reference to MAC address being null and randomly during connection time, mac address was not registered and bans being enforced.  I think that issue was resolved later by jaybird. 

 

13 hours ago, the cake is a lie said:

missing MAC address

In this post from 2012 a player reported that jaymod could not detect their MAC address (presumably when checked via dumpuser or !finger). Does this issue still exist and any ideas as to what triggers it? I see a MAC address for my devices when testing on 2.60b/Legacy and Linux/Windows clients.

 

 @RedBaird Please confirm. He is !finger expert. If not, I can check in user.db for past 5-8 years. 

 

13 hours ago, the cake is a lie said:

landmine spotting causes lag

Is anyone still having lag caused by teammates spotting landmines? I used to encounter this problem as well but at some point it went away, but I'm not sure what the fix was (hardware change, switching to ETL, server change, etc). If this problem still exists let me know what game client you are using and we can go from there.

 

I think it's related to server to client update. If I recall correctly, we handled in silent mod by providing notification changes .. It was bothering me, so we had added g_landmineNotifyType in silent mod. 

 

  • Thanks 1
  • Administrators
Posted
On 5/10/2022 at 10:10 AM, the cake is a lie said:

landmine spotting causes lag

Is anyone still having lag caused by teammates spotting landmines? I used to encounter this problem as well but at some point it went away, but I'm not sure what the fix was (hardware change, switching to ETL, server change, etc). If this problem still exists let me know what game client you are using and we can go from there.

 

Just to add to above - if you need to reproduce the lag - make the rate less then 25K or even around it... spot 30 landmines and if other activity is happening on 40 slot server, you will see yellow spikes in lagometer. 

 

Now their used to be sound based issue because on nvidia cards - that's something at client/driver level. 

 

---------------------------------------------------------------------------------------------------------------------

Besides bug fixes - introducing map voting, feature would help to provide better game play. We started with min/max player count based maps in Jaymod, which made through silent mod and also ETL mod has adapted same. 

 

I would prefer to let players decide from the pool of map based on player count vs forcing them what we like best. Best on map voting stats, we can rotate maps. 

 

 

  • Thanks 1
Posted

I've opened issues for:

- knife switches to binoculars unexpectedly

    @Buckwild Let me know if you figure out what key or key combo causes this issue. Are you using any binds that could cause this?

    I'm wondering if this is actually a keyboard issue (some keyboards lack enough diodes to properly poll several 'normal' keys at once)

- landmine spotting causes lag

    @daredevil Thanks for the guidance on reproducing this issue. I think I had the nvidia version of it previously.

- user.db data loss

    I'm going to try creating a dummy user.db and try to crash the test server while running commands that read or write to the user.db.

    Hopefully that will lead to a clear replication pattern. If not, I can just try to add some integrity checks when accessing the user.db file.

Posted

mod change

There are also various issues caused by connecting to a jaymod server after playing on another mod. I'm guessing this is caused jaymod not implementing all of the functions it needs to or not doing enough cleanup during mod load. These may be client issues that can't be fixed at the mod level but a comprehensive list of these kind of bugs that either sometimes or always happen when switching from another mod (like silent or legacy) to jaymod would be helpful.

 

The two bugs of this type I am am aware of affect:

    - some hit sounds missing

    - automatic pickup of items on the ground not working

 

Let me know if you've encountered other bugs like these when changing to jaymod from other mods.

 

 

custom pk3 changes persist joining different server on same mod

Sometimes connecting to servers that run the same mod cause carry-over visual effects and alter gameplay elements. For example, sometimes when connect to jay1 after playing on jay2 the custom med pack skin still shows up. Presumably this could happen with any custom ui altering pk3.

 

I don't know how to trigger this issue for reliable reproduction and testing though, so if you know a way to cause this bug, let me know.

 

Unlike with skin packs, this also happens every time with the custom code in the FA version of the jaymod client. For example, the FA client removes the +lookdown command to block anti-recoil scripts. This is good, of course, but those changes persist when a player connecting to another jaymod server not using the FA client. It seems like this could be exploited to run custom code (hopefully in a way that the AC could already detect) but it would be good to prevent this if possible so that other versions of jaymod don't alter gameplay in unexpected ways.

Posted
On 5/10/2022 at 3:04 AM, the cake is a lie said:

- fix end of map awards with g_gametype 2

 

Not sure if this is what is being referred to but could you fix the max headshots award so that it's tied to the map and not the entire session?

 

Also is it feasible to raise the MAX_VOICECHATS from 272 to something around 350? A vsay pack I was making some time ago went over by like 10 vsays but it would also be nice to add vsays as a donor incentive to help pay server bills. 

Maybe raise the other stuff around that area too like MAX_CHATSIZE? Not necessarily a bug but just a small request 😛 

 

/follow not accepting a partial name unlike in silEnT. Not a bug I guess just a lack of a feature. 

 

I'll keep an eye out for other bugs cause I'm just going from the top of my head and from stuff I haven't seen in the list you made. 

 

On 5/12/2022 at 11:17 PM, the cake is a lie said:

mod change

There are also various issues caused by connecting to a jaymod server after playing on another mod. I'm guessing this is caused jaymod not implementing all of the functions it needs to or not doing enough cleanup during mod load. These may be client issues that can't be fixed at the mod level but a comprehensive list of these kind of bugs that either sometimes or always happen when switching from another mod (like silent or legacy) to jaymod would be helpful.

 

The two bugs of this type I am am aware of affect:

    - some hit sounds missing

    - automatic pickup of items on the ground not working

The big one I encounter is just the no headshot sound when going from silEnT to Jaymod, at least I think it's that way around. It's been a while.

 

I think I still get the landmine spotting lag when a bunch of mines are spotted at the same time but it's just a few frame drops.

Posted

Thanks for adding the bugs you encounter @ElEl.

 

Yes, headshots is included in the bugged end of map award issue.

 

I don't know much about the sound system but it doesn't seem from a quick look like changing those limits would break compatibility. Since MAX_VOICECHATS and MAX_CHATSIZE initialize a multidimensional array more  memory would be used up on sounds. I'd have to make sure it's not coming from an allocation that is already stressed. I'm not a fan of extra sound packs in general since they require a com_SoundMegs change for best performance on weaker systems. (Also, the sound clips from songs and movies don't seem to fit any of the fair use exemptions so are likely copyright infringement anyway.)

 

Partial name matching should be fairly easy to do since it is already implemented in the !spec command code but isn't a critical issue. It won't work if a player has a name of 'allies', 'axis', or a plain number from 0 to 64  because of how the follow command is implemented but any other names should match without much issue. The follow command still needs to check for slot number first though so that name duplicating players can be spectated.

 

Apparently the engine code that loads mods isn't very well written and doesn't do very good cleanup (according to the ETL devs anyway). I have various mod and server changing bugs on my list but it may not be possible to fix those at the mod level. Usually you can fix the headshot sound issues by toggling the cg_hitsounds cvar off and on and then doing a snd_restart instead of restarting ET. This isn't a great fix though because snd_restarts eat about com_soundsMegs worth of RAM every time it is called.

 

A few questions about your experience with landmine sound lag:

Are you getting the landmine spotting lag on jay2 with few players?

Do you have a discrete sound card or any unusual s_ cvar settings?

What is your com_soundMegs value?

Can you check the bottom of the output \s_list for "free sound memory buffer" and "total used" the next time you notice landmine lag?

 

Posted

Found this when doing some cleanup of code causing compiler warnings. It could explain some of the crashes that cause the user.db to get wiped:

 

// Jaybird
// If this is campaign mode and it's a new campaign with the reset xp flag set,
// have the userDB wipe out all xp records if the client is connected or not.

if (g_gametype.integer == GT_WOLF_CAMPAIGN && level.newCampaign)
	if (g_xpSave.integer & XPSAVE_RESETCAMPAIGN)
		userDB.xpResetAll();

 

@daredevil As is currently happening lately on jay2, the gametype is switching from single objective map to campaign mode (possibly due to a bad rotation file?) and then the user.db gets wiped on the next G_InitGame.

  • Like 1
Posted

Plz add....

 

// bg_pmove.c -- both games player movement code
// takes a playerstate and a usercmd as input and returns a modifed playerstate

#ifdef CGAMEDLL
# include "../cgame/cg_local.h"
#else
# include "q_shared.h"
# include "bg_public.h"
#endif // CGAMEDLL

#include "bg_local.h"

pmove_t *pm;
pml_t   pml;

// movement parameters
float pm_stopspeed = 100;

//----(SA)	modified
float pm_waterSwimScale = 0.50f;
float pm_waterWadeScale = 0.70f;
float pm_slagSwimScale  = 0.30f;
float pm_slagWadeScale  = 0.70f;

float pm_proneSpeedScale = 0.21f;    // was: 0.18 (too slow) then: 0.24 (too fast)

float pm_accelerate      = 10;
float pm_airaccelerate   = 1;
float pm_wateraccelerate = 4;
float pm_slagaccelerate  = 2;
float pm_flyaccelerate   = 8;

float pm_friction          = 6;
float pm_waterfriction     = 1;
float pm_slagfriction      = 1;
float pm_flightfriction    = 3;
float pm_ladderfriction    = 14;
float pm_spectatorfriction = 5.0f;
//----(SA)	end

// Nico, from Racesow
const float pm_aircontrol        = 150.0f; // aircontrol multiplier (intertia velocity to forward velocity conversion), default: 150
const float pm_strafeaccelerate  = 100; // forward acceleration when strafe bunny hopping, default: 70
const float pm_wishspeed         = 30; // Nico, default value 30
const float pm_airstopaccelerate = 2.0f; // Nico, CPM value: 2.5f, Racesow value: 2.0f
const float pm_slickaccelerate   = 10.0f; // Nico, slick control accelerate
const float pm_accelerate_AP     = 15; // Nico, only used for AP

int c_pmove = 0;

#ifdef GAMEDLL

// In just the GAME DLL, we want to store the groundtrace surface stuff,
// so we don't have to keep tracing.
void ClientStoreSurfaceFlags(int clientNum, int surfaceFlags);

#endif


Handles both ground friction and water friction
==================
*/
static void PM_Friction(void) {
	vec3_t vec;
	float  *vel;
	float  speed, newspeed;
	float  drop;

	vel = pm->ps->velocity;

	VectorCopy(vel, vec);
	if (pml.walking) {
		vec[2] = 0; // ignore slope movement
	}

	speed = VectorLength(vec);
	// rain - #179 don't do this for PM_SPECTATOR/PM_NOCLIP, we always want them to stop
	if (speed < 1 && pm->ps->pm_type != PM_SPECTATOR && pm->ps->pm_type != PM_NOCLIP) {
		vel[0] = 0;
		vel[1] = 0;     // allow sinking underwater
		// FIXME: still have z friction underwater?
		return;
	}

	drop = 0;

	// apply end of dodge friction
	if (pm->cmd.serverTime < 350 &&
	    pm->cmd.serverTime > 250) {
		drop += speed * 20 * pml.frametime;
	}

	// apply ground friction
	if (pm->waterlevel <= 1 && pml.walking &&
	    !(pml.groundTrace.surfaceFlags & SURF_SLICK) &&
	    !(pm->ps->pm_flags & PMF_TIME_KNOCKBACK)) {
		float control = speed < pm_stopspeed ? pm_stopspeed : speed;

		drop += control * pm_friction * pml.frametime;
	}

	// apply water friction even if just wading
	if (pm->waterlevel) {
		if (pm->watertype == CONTENTS_SLIME) {   //----(SA)	slag
			drop += speed * pm_slagfriction * pm->waterlevel * pml.frametime;
		} else {
			drop += speed * pm_waterfriction * pm->waterlevel * pml.frametime;
		}
	}

	if (pm->ps->pm_type == PM_SPECTATOR) {
		drop += speed * pm_spectatorfriction * pml.frametime;
	}

	// apply ladder strafe friction
	if (pml.ladder) {
		drop += speed * pm_ladderfriction * pml.frametime;
	}

	// scale the velocity
	newspeed = speed - drop;
	if (newspeed < 0) {
		newspeed = 0;
	}
	newspeed /= speed;



  Handles user intended acceleration
==============
*/
static void PM_Accelerate(vec3_t wishdir, float wishspeed, float accel) {
	// q2 style
	int   i;
	float addspeed, accelspeed, currentspeed;

	currentspeed = DotProduct(pm->ps->velocity, wishdir);
	addspeed     = wishspeed - currentspeed;
	if (addspeed <= 0) {
		return;
	}
	accelspeed = accel * pml.frametime * wishspeed;
	if (accelspeed > addspeed) {
		accelspeed = addspeed;
	}

	// Ridah, variable friction for AI's
	if (pm->ps->groundEntityNum != ENTITYNUM_NONE) {
		accelspeed *= (1.0 / pm->ps->friction);
	}
	if (accelspeed > addspeed) {
		accelspeed = addspeed;
	}

	for (i = 0 ; i < 3 ; ++i) {
		pm->ps->velocity[i] += accelspeed * wishdir[i];
	}
}

/*
============
PM_CmdScale
Returns the scale factor to apply to cmd movements
This allows the clients to use axial -127 to 127 values for all directions
without getting a sqrt(2) distortion in speed.
============
*/
static float PM_CmdScale(usercmd_t *cmd, qboolean horizontalOnly) {
	int         max;
	float       total;
	float       scale;
	signed char upmove = 0;

	// Nico, ignore horizontalOnly flag if we use the original physics (from TJMod)
	if (!(pm->physics & PHYSICS_UPMOVE_BUG_FIX)) {
		horizontalOnly = qfalse;
	}

	if (horizontalOnly) {
		upmove      = cmd->upmove;
		cmd->upmove = 0;
	}

	max = abs(cmd->forwardmove);
	if (abs(cmd->rightmove) > max) {
		max = abs(cmd->rightmove);
	}
	if (abs(cmd->upmove) > max) {
		max = abs(cmd->upmove);
	}
	if (!max) {
		return 0;
	}

	total = sqrt(cmd->forwardmove * cmd->forwardmove
	             + cmd->rightmove * cmd->rightmove + cmd->upmove * cmd->upmove);
	scale = (float)pm->ps->speed * max / (127.0 * total);

	if (pm->cmd.buttons & BUTTON_SPRINT) {
		scale *= pm->ps->sprintSpeedScale;
	} else {
		scale *= pm->ps->runSpeedScale;
	}

	if (pm->ps->pm_type == PM_NOCLIP) {
		scale *= 3;
	}

 

Posted

A bug that I experienced a few times (yesterday via PM ingame):

If an engineer triggers an undetected mine to defuse it and it's spotted in the meantime it can't be defused further.

  • Thanks 1
  • Platinum VIP
Posted
43 minutes ago, nUllSkillZ said:

A bug that I experienced a few times (yesterday via PM ingame):

If an engineer triggers an undetected mine to defuse it and it's spotted in the meantime it can't be defused further.

 

Does this happen with specific types of landmines? Under normal circumstances defusing a mine would trigger the mine to be spotted and therefore cannot be spotted anymore with binocs. 

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.