Jump to content
  • 0
Sign in to follow this  
Disturbed2015

BE Script Restriction #22?

Question

Ok having little trouble here. Got a server, everything's loading just fine but when I try to get into the server I'm getting "Battleeye Script Restriction #22", I've looked everywhere to find what's causing trouble in my PBO or mt BE files. Can someone help me figure this out please? If so just tell me what info you need...

Share this post


Link to post
Share on other sites

45 answers to this question

Recommended Posts

  • 0

Here's the script log

26.06.2015 18:03:58: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #22 "#line 1 "mpmissions\__CUR_MP.Altis\init.sqf"
[] execVM "addons\messages\init.sqf";
[] execVM "scripts\loadout.sqf";
[] execVM "t"
26.06.2015 21:28:48: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #22 " 1 "mpmissions\__CUR_MP.Altis\init.sqf"
 
if(hasInterface)then{execVM "semClient.sqf"};
[] execVM "wai\remote.sqf";
[] execVM "tr"
27.06.2015 00:38:42: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #22 "61198089657376','76561197976164651','76561197975775044'];
 
[] execVM "Logistics\init.sqf";
 
 
if(hasInterface)then{execVM "script"
27.06.2015 00:39:12: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #22 "61198089657376','76561197976164651','76561197975775044'];
 
[] execVM "Logistics\init.sqf";
 
 
if(hasInterface)then{execVM "script"
27.06.2015 00:55:37: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #22 "61198089657376','76561197976164651','76561197975775044'];
 
[] execVM "Logistics\init.sqf";
 
 
if(hasInterface)then{execVM "script"
27.06.2015 01:08:59: SYSTEM (67.177.221.8:2304) 1e15a7753a39157e1dcd6fbc0d85f208 - #22 "61198089657376','76561197976164651','76561197975775044'];
 
[] execVM "Logistics\init.sqf";
 
 
if(hasInterface)then{execVM "script"

Share this post


Link to post
Share on other sites
  • 0

Allways in the line which is displayed: line 22. battleye starts counting at zero so line 21 will be good

Actually it's the other way around, file starts with //new and 0. This requires to add 2 lines on top of error's count. So in this case line #24 is the culprit :)

Share this post


Link to post
Share on other sites
  • 0

Ok now it's Script Restriction #23

Log is

if(hasInterface)then{execVM "script"
27.06.2015 03:35:30: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #23 "
with uinamespace do {
disableserialization;
_display = _this select 0;
 
 
_alpha = if (_display == finddisplay 58) then {0.15} e"

Share this post


Link to post
Share on other sites
  • 0

No, I said line #24 is what causing this, it's not about adding new lines, it's about fixing the culprit :)

Could you post #24 before your edits when file was showing errors line in first post?

Share this post


Link to post
Share on other sites
  • 0

Back on #22 error.

With this now

27.06.2015 16:34:56: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #22 "61198089657376','76561197976164651','76561197975775044'];

[] execVM "Logistics\init.sqf";


if(hasInterface)then{execVM "script"

Share this post


Link to post
Share on other sites
  • 0

Hey ya, sorry for late response, but no, that's not the right line I am looking for. Are you using default BE filters that I can lookup? If custom, drop me a PM with:

1) scripts.txt filter

2) scripts.log logs

3) your init.sqf file

 

I've a feeling you just need to whitelist logistics script in your filters

Share this post


Link to post
Share on other sites
  • 0

Received your PM, here's solution + explanation:

 

Ok, I see it, asked you for wrong line, because normally filters has to start with //new, but yours didn't. So your lines starts from 0 only.

This means, if error is #22, then you are looking at line #23 (not #24 as I asked previously), because we start counting from 0 (included)

 

In filters on very left on each line:

1 - log

5 - kick

7 - log and kick

 

When it comes to scripts, then scripts.txt file checks each script that is being run and compares it to keywords in this file.

So in your case:

 

Line#23 says:

Kick and LOG everything that has exec keyword in script, except for: (add all exclusions).

 

Exclusions are done 2 ways:

!"case" //do not kick if script line matches these keywords
!="case" //do not kick if FULL line contains EXACTLY this

So if we look back, then issue we had was

[] execVM "Logistics\init.sqf";

Now we are facing 3 choices, out of which only one is best, second is good and third is bad:

1) Best choice is to whitelist only this one line, so we add this to end of Line#23:

!="[] execVM "Logistics\init.sqf";"

This means we will continue kicking everyone that tries to execVM, except if they are executing this exact line and only this line. And we know for the fact that that's our file so it's all safe.

2) Second choice is to whitelist part of this script, in case we are executing multiple scripts from same directory. To whitelist keyword we don't use equal sign like so:

!"[] execVM "Logistics\"

Now we are allowing to use execVM as long as folder Logistics is used, you can see how I cut off last part, INCLUDING one of quotation marks. This way we only need one whitelist if we intend to run multiple scripts from same location, for example:
 

[] execVM "Logistics\1.sqf"; //ok
[] execVM "Logistics\2.sqf"; //ok
[] execVM "herpderp\3.sqf"; //not ok, will kick because does not match keywords

3) Option 3 is to white list execVM keyword, this is a fucking bad idea... because now all kiddos can execVM anything they want from everywhere

!"execVM" //will work, but allow anyone to execute scripts

Hope this helps. If in doubt - 1) follow the pattern in current file, human beings are awesome at pattern recognition... 2) ask here

Share this post


Link to post
Share on other sites
  • 0

Cool explanation. Now i understand the difference between != and ! :)

So if i have a script in folder /addons/newsuperscript/ i can simply add

!"/addons/newsuperscript" and all scripts in there don't make problems ?

Thx

Share this post


Link to post
Share on other sites
  • 0

After adding that to the end of line 23.

I get error 21.

 

if(hasInterface)then{execVM "scripts\semClient.s"
29.06.2015 05:09:03: Mr.GoodTrust (67.253.1.49:2304) 0b607d3b79cf0c61cee717b59c1f3397 - #21 "SEM_AIsniperDamageDistance)then[{
if(!isPlayer _x)then{_x allowDamage false};
},{
if(!isPlayer _x)then{_x allowDamage true};
}];"

Share this post


Link to post
Share on other sites
  • 0

Cool explanation. Now i understand the difference between != and ! :)

So if i have a script in folder /addons/newsuperscript/ i can simply add

!"/addons/newsuperscript" and all scripts in there don't make problems ?

Thx

Well kinda... umm not exactly.

As mentioned previously - you need to execute a logic/keyword that will kick players first, this is most important part. Then You add exceptions to this rule to whitelist.

 

in case with Line#23, main keyword to kick was exec, this automatically includes anything that contains this combination of characters.

This means, if you do simple filter like this without any exclusions (literary this line alone):

5 exec

It will kick everything that has this keyword in exact combination. So, previous rule will kick if you use variables or commands like:

execute something; //kick
execVM "path\file.sqf"; //kick
execFSM "path\file.fsm"; //kick
_apples = "executive quality"; //kick
_execFunction = {}; //kick

_exeR = 0; //did not match word "exec", won't kick

Your example

!"/addons/newsuperscript" //not valid

Does not contain this "main keyword" I mentioned earlier, so it is not a legit exclusion. Line below is valid to exclude folder from execVM:

!"execVM "addons/newsuperscript" //valid

Share this post


Link to post
Share on other sites
  • 0

After adding that to the end of line 23.

I get error 21.

The very same issue again. Please try to read stuff I wrote again and simply adjust same logic to this error, too. You will be going trough many errors like this until all bad guys are whitelisted. This is normal every day part of any Arma server admin that installs additional functionality on heavily guarded mods :)

 

Error: Line #21 - allowDamage

Script.txt Line#21 + 1 = #22 - 7 allowDamage (kick all that has this as main keyword)

 

This is a very dangerous script you are about to whitelist and it's author should probably be slapped in face for such generic expressions or even utilizing it, but oh well..

 

Safest way to whitelist this one I'd assume would be adding one exception for both bool issues, but still keep it complex enough to hacker won't guess it:

!"_x)then{_x allowDamage"

Use your own intuition on these ones, I am not taking any responsibility since I strongly suggest staying away from such bad practices, sorry.

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Answer this question...

×   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.

Loading...
Sign in to follow this  

  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...