Jump to content

Bad Company Manager (ApiMod for Servers)


StompyNZ

Recommended Posts

Thanks a lot for this.

I had been searching for some time for a way to fix an error on the map where the voxel mesh was open due to a POI not being loaded fully causing an annoying NRE everytime we got near it.

Your bc-wblocks fill allowed me to repair the hole in the world!

 

Is it possible for a mod to be made with just this functionality that can be used on SP too?

 

One very minor thing I noticed, using BCM.htm?console v2 on Chrome 64 and BCM 2.2.3

When I enter bc-help it gives me a one single line of all the help with a really long horizontal scroll bar (no line breaks).

Other commands like help bc-wblocks give proper line breaks.

Link to comment
Share on other sites

I think I forgot to include the pp option by default in that version. It should be fixed in 2.4 (available via repo, not as a release yet)

 

you can manually add /pp to the command to force print pretty mode.

 

Single Player options:

https://github.com/7D2DSDX/Mods/tree/master/ConsoleCmd

https://github.com/7D2DSDX/Mods/tree/master/ConsoleCmdLibrary

 

You need sdx to run these. So far the loc, block, import, export commands have been ported to sdx

 

https://7d2dsdx.github.io/Tutorials/ - great tuts for learning how to use sdx.

Link to comment
Share on other sites

It's a result of the way I changed things a bit. I use a data cache but that wont be getting set while a player is connecting so i'll need to check the cache is set first.

 

I need to revisit the player data as i'm not entirely happy with the way it works now.

 

Will have a bit of a look over it later this week

 

Did you ever find a solution to this? I have a player having the same problem and is unable to get logged in. Unfortunately, he's also the most active player. I need to find a solution quick.

 

Thanks!

Ian

Link to comment
Share on other sites

Did you ever find a solution to this? I have a player having the same problem and is unable to get logged in. Unfortunately, he's also the most active player. I need to find a solution quick.

 

Thanks!

Ian

 

It should be fixed in the 2.4.0 version that's in the repo atm (not as a release).

 

You can get the required files for the mods folder from here:

 

https://github.com/7days2mod/BadCompanySM/tree/master/BCManager/Mods/BCManager

 

The system.xml in the defaults has several things turned on, so you might want to check those and disable the ones you don't want

 

I've been busy working on the medieval mod so haven't had much time for bcm recently. I'll try and get a tidied up release done in the next week or so, just a few bits in the events that needed sorting.

Link to comment
Share on other sites

It should be fixed in the 2.4.0 version that's in the repo atm (not as a release).

 

You can get the required files for the mods folder from here:

 

https://github.com/7days2mod/BadCompanySM/tree/master/BCManager/Mods/BCManager

 

I installed them but, unfortunately, that didn't help. He still gets the same error. Is there anything I need to do to repair the missing data? Here's another post I'd made before finding this thread that has the full log info around the error. Perhaps that helps.

 

https://7daystodie.com/forums/showthread.php?81209-Help!-User-can-t-login&p=788863#post788863

 

Thanks!

Ian

Link to comment
Share on other sites

Ok looking at that error I think the player file may have been corrupted.

 

2018-02-13 19:05:43 1167.432 WRN Spawned entity with wrong pos: [type=EntityPlayer, name=dalthin001, id=108988] id=108988 pos=(0.0, 0.0, 0.0)

 

That part is saying it is trying to spawn at 0,0,0 so the player position isnt being read properly from the file. The error from bcm is likely due to the same problem, so while bcm is throwing an error I dont think its a result of the bcm code that he cant join.

 

Probably the best bet is to delete his player files and then once he can join give him items and skills to bring him back to near where he was.

 

A possibility is that his data in the bcm data file has been corupted too, so you might need to remove that file and let it regenerate. You will lose the record of past player names etc until they join again, but otherwise it shouldn't make much difference.

 

File is in save game folder/BCMData/Players.bin

 

- - - Updated - - -

 

If you wanted you could send me the playerfile (.ttp) as I can run it in debug mode and see exactly what is up with it, and worst case might be able to scrap some data from it to help you rebuild a new file.

 

 

You could also try disabling bcm (move the folder out of Mods) and see if he can join then as well to confirm or rule out bcm as the source of the problem.

 

If you make a backup of your own player files and rename his ones to use your steam id it will let you test it yourself too rather than getting them to keep trying

Link to comment
Share on other sites

If you wanted you could send me the playerfile (.ttp) as I can run it in debug mode and see exactly what is up with it, and worst case might be able to scrap some data from it to help you rebuild a new file.

 

I've come to the same conclusion that the BCM error was due to a corruption. Just wasn't sure if BCM could have had anything to do with causing that. We have tried removing BCM and the error still exists. If you can examine and maybe fix his file that would be awesome. Otherwise, we'll probably move forward with the wipe & rebuff plan. You can download his .ttp file here.

 

Also, while sharing his .ttp file I noticed that apparently either the game or 7D2D RAT is making backups of these files :) I've restored the .ttp.bak file and hopefully that will solve all the worlds problems. Gotta get to work but I'll try it tonight. Thanks for all the tips!

Link to comment
Share on other sites

Also, while sharing his .ttp file I noticed that apparently either the game or 7D2D RAT is making backups of these files :) I've restored the .ttp.bak file and hopefully that will solve all the worlds problems.

 

W00t! This backup file was good and he's back in business. He's just behind on a few skills and missing some items in his inventory but I can take care of that. Thanks!

Link to comment
Share on other sites

How does bc-visitregion work can I use it to uncover the map for my servers live map?

 

yep thats exactly what it does

 

visit x z

 

x z is the region you want to have it generate/explore

 

 

do 'help visit' for more details in game

 

THe next version will have a 3 and 4 param option, with the 3 params the last one is radius, and 4 version will be for exploring multiple regions at once.

Link to comment
Share on other sites

yep thats exactly what it does

 

visit x z

 

x z is the region you want to have it generate/explore

 

 

do 'help visit' for more details in game

 

THe next version will have a 3 and 4 param option, with the 3 params the last one is radius, and 4 version will be for exploring multiple regions at once.

 

So if i wanted to render the full map id do "bc-visitregion 20000 20000" ?

Link to comment
Share on other sites

the bcm visit command has a bit more to it than the vanilla one :)

 

the region x z is the same as you see on the file names and on allocs webmap.

 

Current version does 1 region at a time (512x512 blocks), the next version will have multi region.

 

-19 to 20 is the region range for a standard rwg sized map, but scanning the entire map will take a while... maybe half a day depending on your server spec.

 

in the next release 'visit 0 0 20' would do the full map

or 'visit -19 -19 20 20'

 

While it is in progress using bc-task will show detials on the progress, and in the next version calling visit again while it is running will report the % completion of the running visit

 

I've got a bit to tidy up with the events system configs so probably next week for the next version, it has quite a bit in it since the 2.2.3 version.

 

 

For the block command, I ran into issues with doing SetBlocksRpc over a large region (probably a netpackage size issue) so have added the rpc version as a seperate command to the chunk reload version

 

rpc version is mostly for bots to use for building complex structures 1 block at a time without the chunk reload flicker.

 

rpc also has the multidim removal SI issue so making it a single block is probably for the best.

 

Also for visit, I'm considering an explore mode, where it will just start exploring the map when the server is idle or under low load.

Link to comment
Share on other sites

the bcm visit command has a bit more to it than the vanilla one :)

 

the region x z is the same as you see on the file names and on allocs webmap.

 

Current version does 1 region at a time (512x512 blocks), the next version will have multi region.

 

-19 to 20 is the region range for a standard rwg sized map, but scanning the entire map will take a while... maybe half a day depending on your server spec.

 

in the next release 'visit 0 0 20' would do the full map

or 'visit -19 -19 20 20'

 

While it is in progress using bc-task will show detials on the progress, and in the next version calling visit again while it is running will report the % completion of the running visit

 

I've got a bit to tidy up with the events system configs so probably next week for the next version, it has quite a bit in it since the 2.2.3 version.

 

 

For the block command, I ran into issues with doing SetBlocksRpc over a large region (probably a netpackage size issue) so have added the rpc version as a seperate command to the chunk reload version

 

rpc version is mostly for bots to use for building complex structures 1 block at a time without the chunk reload flicker.

 

rpc also has the multidim removal SI issue so making it a single block is probably for the best.

 

Also for visit, I'm considering an explore mode, where it will just start exploring the map when the server is idle or under low load.

 

Thats why i was saying i use the vanilla command for generating "the whole map" :)

 

Cheers

Link to comment
Share on other sites

the bcm visit command has a bit more to it than the vanilla one :)

 

the region x z is the same as you see on the file names and on allocs webmap.

 

Current version does 1 region at a time (512x512 blocks), the next version will have multi region.

 

-19 to 20 is the region range for a standard rwg sized map, but scanning the entire map will take a while... maybe half a day depending on your server spec.

 

in the next release 'visit 0 0 20' would do the full map

or 'visit -19 -19 20 20'

 

While it is in progress using bc-task will show detials on the progress, and in the next version calling visit again while it is running will report the % completion of the running visit

 

I've got a bit to tidy up with the events system configs so probably next week for the next version, it has quite a bit in it since the 2.2.3 version.

 

 

For the block command, I ran into issues with doing SetBlocksRpc over a large region (probably a netpackage size issue) so have added the rpc version as a seperate command to the chunk reload version

 

rpc version is mostly for bots to use for building complex structures 1 block at a time without the chunk reload flicker.

 

rpc also has the multidim removal SI issue so making it a single block is probably for the best.

 

Also for visit, I'm considering an explore mode, where it will just start exploring the map when the server is idle or under low load.

 

Hey thanks for the explanation i now understand more :)

Link to comment
Share on other sites

2.5.0 beta1 is available in the repo for anyone interested.

 

Some major revamps and lots of untested changes, so don't just throw in on a busy production server and expect no issues :)

 

https://github.com/7days2mod/BadCompanySM/tree/master/BCManager/Mods/BCManager

 

I'll do an official release version once I've had time to test the changes a bit better.

 

Of note:

blockrpc is a new command (see help for details)

It is similar to block, but only accepts a single x y z. It uses RPC calls instead of chunk reloading to update clients. (as per Smegzor's request)

blockrpc scan x y z will give more details than the regular block command since it is a single block:

e.g.

{

"Name" : "steelBlock",

"Type" : "414",

"Density" : "0",

"Rotation" : "0",

"Damage" : "0",

"Paint" : "15,14,14,14,14,14",

"Meta" : "0",

"Meta2" : "0",

"Meta3" : "0"

}

 

Also has the updated visit command that can do multiple regions at once (as discussed above)

 

bc-prefab command for editing prefabs on the server

 

Events system:

Setup via the System.xml and the bc-events command. Once you make changes they will be stored in the EventsConfig.bin and will ignore System.xml for most things after that.

 

help bc-events for more details

 

'bc-events off' to turn the whole events system off if it causing issues

Link to comment
Share on other sites

managed to do some testing today and have made a few alterations to some of the commands to tidy a few loose ends up.

 

blockrpc is almost done, the only issue was doing paint wasnt updating without a chunk reload, so once I get that done I'll make a release version.

 

rotating blocks in place looks pretty cool and could have some interesting applications :)

Link to comment
Share on other sites

New in 2.5.0

(since version 2.2.3)

 

Improved param validation and command feedback

SetSkills - Added ability to edit skills while offline. Added unlock for locked skills to fix issues with mods changing skills

Added BCPrefabs - Command to access the info and editing of prefabs in the server's prefab folder

Added BCEvents - Command for controlling the events system and viewing data about the current state

Altered BCRemove - Added a /minibike filter that is required to remove minibikes even when using 'bc-remove /all'

Added BlockRpc - Command for single block rpc block changes, all without chunk reloading required.

Changed Visit Region - Command now accepts multi-region params and reports percentage complete if calling visit while one is in progress

Altered Chunk Observer - removed the y co-ord as it was irrelevant for chunk observers

Added RemoveBuffFromEnemy - Remove a buff from any living entity

Added meta1 / meta2 / meta3 sub command to both block commands. This allows for opening doors(e.g. blockrpc meta1 x y z /meta=1 or 0), or turning lights on / off (e.g. block meta1 x y z x2 y2 z2 /meta=2 or 0) with a command

 

Added Events system

DeadIsDead - Player file backup, restore, and trigger deadisdead boot and remove profile options

LogCache - Can be used to display the data from the log entries to console

PingKicker - Use threshhold and count settings to define when someone will be kicked for high ping

PositionTracker - Record player movements over time

 

Defined reactive vs heartbeat events. Reactive is set up to wait for an action to happen, heartbeat occurs on the designated ticks.

Fixed up the code for many commands which will alter some of the params and options available. Help docs should be updated to reflect new usage

 

 

Feedback on usability and custom requirements are welcome.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

New feature or possible already now ...?

 

Hey StompyNZ..

 

I've been chatting a bit with Trekkan and he pointed me in your direction for what I want to do saying it might be possibly already now.

 

 

Our server is constantly running out on cars (its on day 3100) and I'm getting a bit tired of teleporting around placing cars in the regions.

Is there a way to spawn in a set number of cars randomly using telnet commands?

I been looking at SE and SME but it seems to be only working for zombies and not cars (for example ID 1453 (cntCar03SedanDamage0).

I tried already with sme 2970 52 -4422 1 @ 1453

But it's giving me the middle finger :(

 

Does it have to be combined with your new feature that "visits" the regions perhaps?

 

 

Thanks for BCM!

Link to comment
Share on other sites

Hey StompyNZ..

 

I've been chatting a bit with Trekkan and he pointed me in your direction for what I want to do saying it might be possibly already now.

 

 

Our server is constantly running out on cars (its on day 3100) and I'm getting a bit tired of teleporting around placing cars in the regions.

Is there a way to spawn in a set number of cars randomly using telnet commands?

I been looking at SE and SME but it seems to be only working for zombies and not cars (for example ID 1453 (cntCar03SedanDamage0).

I tried already with sme 2970 52 -4422 1 @ 1453

But it's giving me the middle finger :(

 

Does it have to be combined with your new feature that "visits" the regions perhaps?

 

 

Thanks for BCM!

 

Cars are a block so just use the blockrpc command :)

 

not sure what sme is, I assume coppis?

 

blockrpc fill 2970 52 -4422 1453

blockrpc rotate 2970 52 -4422 /rot=1 (I must get around to adding the /rot flag to fill as well)

 

If the area isnt loaded then spawn in a chunk observer, then move it around as needed

 

bc-co spawn 2970 -4422 1 (x z radius)

bc-co move <id> x z (<id> is the id number the spawn command returns, bc-co list to see all co's)

 

the radius is how many chunk around the location to load, so since it's a single block you only need to set it to 1

 

you can also use:

bc-getspawn x z /ph to get the y value (/ph means point height) for the highest non air block at x z which could be used to give the correct y pos for the car (y+1)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...