I'm using zombie plague's framework: https://forums.alliedmods.net/showthread.php?t=290657
When I import ZP's code about particle to my own, I found that here is an error occurs but several months ago it could work.
L 01/05/2020 - 00:53:11: [SM] Exception reported: Invalid Handle 0 (error 4)
L 01/05/2020 - 00:53:11: [SM] Call stack trace:
L 01/05/2020 - 00:53:11: [SM]  SDKCall
L 01/05/2020 - 00:53:11: [SM]  Line 170, modules/manager/visualeffects/part
L 01/05/2020 - 00:53:11: [SM]  Line 51, modules/manager/visualeffects/parti
The code is shown below:
// Validate that table is exist and it empty
Address pTable = ParticlesFindTable("ParticleEffectNames");
if(pTable != Address_Null && !ParticlesCount())
// Opens the file
File hFile = OpenFile("particles/particles_manifest.txt", "rt", true);
// If doesn't exist -> stop
if(hFile == null)
SetFailState("Error opening file: \"particles/particles_manifest.txt\"");
// Read lines in the file
static char sPath;
// Checks if string has correct quotes
int iQuotes = CountCharInString(sPath, '"');
if(iQuotes == 4)
// Trim string
// Copy value string
strcopy(sPath, sizeof(sPath), sPath[strlen("\"file\"")]);
// Trim string
// Strips a quote pair off a string
// Precache model
int i; if(sPath[i] == '!') i++;
ParticlesClearTable(pTable); /// HACK~HACK
/// Clear tables after each file because some of them contains
/// huge amount of particles and we work around the limit
Address ParticlesFindTable(char sTable)
return SDKCall(hSDKCallContainerFindTable, pNetworkStringTable, sTable);
I don't know why this error occurs....
UPDATE: This problem points to find signature eventually.
It seems that Valve has changed "CParticleSystemDictionary::~CParticleSystemD ictionary" address.
But overall, it solved, for me, at least.