Welcome to the 7 Days to Die forums. All first time posts are moderated so if your post does not show up at first this is normal. Please allow some time for your post to be verified to determine that it is not spam. If your post has not shown up after 6 hours please send a personal message to one of the moderator staff.
Moderator Staff
Roland
SylenThunder
OzHawkeye
Malthis
XiiMaRcLeoN
Red Eagle LXIX

Bad Company Manager (ApiMod for Servers)

In the Mods/BCM/DefaultConfig folder is a Commands.xml file that allows you to change the command text, and in the sub folders are the help and description text files for each command that is displayed in game.

Any command that doesn't have a text file will display the class name of the command for the description, and an empty help file by default. I have plans for an auto help generator based on command aliases and allowable params, but that's down the list at this stage.

Current Commands
(See second post for an examples of the output)

bc-help - BCHelp, this command will return the full list of commands added by BCM, and some details on common /options

Plans
* Add localisation configuraton commands
* Chat hooks to allow for running all commands from chat instead of console
* Extensive plans for entity spawning systems and event management
* (partially implemented) A fully featured web interface that allows for viewing all of this data live, and eventually the ability to manipulate many parts of the game from a remote web browser (no telnet required).
* Full data tracking of inventory, position, quests, buffs, crafting, and other stats over time.

Buffs that were on the player when they join a server do not get listed in the live player data. This is an issue with the TFP code that I havn't been able to find a workaround for. (Hence the list of live buffs, and saved buffs)

Some stats, such as players bags only update when there is a loot change, or every 30 seconds. When you loot an item the player data is saved, but if you move an item from bag to worn (armor etc) then the equiped items updates immediately, but the bag list has to wait until the player is saved.

Some stats are not stored in the .ttp file, and need to be pushed to the persistant container so that they can be retrieved when a player is offline

Command playername and entityid lookups only work when that player is online. SteamId will work at all times.

Going to be renaming this to Bad Company Manager as it is quickly expanding out beyond just a few console commands.

I have created a command framework that I'm fairly happy with. It allows you to specify the console commands details via a text file without recompiling the dll, and both the description and help files are in text files, with a subfolder for different languages so it has localisation for the command help as an option. When its done you will be able to specify the default language for the server, but individual players will be able to specify their preference if they want.

I'll be uploading the source in the next few days once I get some more of the framework nailed down, then I can really start working on the new commands.

Great work. I wrote a command that has been EXTREMLY helpful for server admin work. Its just a simple "Who owns this" command for secure doors and chests So i can easily figure out who's chest i'm in. I took a look at coppies unlockall command to figure out the basics.

Great work. I wrote a command that has been EXTREMLY helpful for server admin work. Its just a simple "Who owns this" command for secure doors and chests So i can easily figure out who's chest i'm in. I took a look at coppies unlockall command to figure out the basics.

Yeah between Allocs, Coppis, and Server tools there are some nice examples of how to do a lot of things. Other bits took a fair bit of trail and error to see what worked.

Finding the right place for different stats etc was a mission, bit I have most of it sorted now. I'm in the process of breaking it down into seperate model files for each bit so its modular and I can grab the bits I need for each command without having to duplicate code.

The first useful command I'll be looking at after the purely infomational commands is a quest updated tracker (for Guppy). It will provide a list of quest changes over time, and can pop a log/console message out when changes are spotted.

I'm thinking of having a heartbeat ticker that runs in the background and triggers the checks periodically for events that are tied to it.

Mostly finished a new component (uploaded to source) that adds a timer that allows actions to be performed at set intervals.

The system has a Heartbeat object that has a pulse and configurable beats per minute (new System.xml file in config)
The system also has Synapses and Neurons. The Synapse defines 1 or more Neurons that will be fired at set intervals. Currently, the synapses can be adjusted in the config for enabled/disabled, and how many beats between each firing. I will be adjusting the code a bit so that which neurons are attached to a synapse is configurable as well.

The default heartbeat is 60 bpm, and the first synapse I'm working on is the quest monitor for GuppyCur that pops a message into the log when a players quest list changes.

The Neurons will require some c# coding, however, some of them will be able to make use of config files, such as the spawning ones.

This is the basis of the system I will be using to create the dynamic spawning system that allows the default spawning system to be entirely replaced.

Mostly have the quest monitor working, but something isnt quite right when used on a fresh presistent data container, so will need to keep working on it.

For a break I have made a command to return a list of all prefabs from the hub cell data in a single cell, or all cells, or filters by text. The version that searches the full list is very HDD intensive so takes about 15 seconds to run on my local machine, but since the data is static i will add a saved file that contains the data to reduce the subsequent lookups.

Lot of changes uploaded to source. I'll tidy up a few things and Finish the List Game Objects commands and add a param to filter results and do the 1.1.0 release with a dll tomorrow.

Managed get a memory efficient cache working for the hub cell data results, so only the first use after a server reboot will be slow, after that its less than 1 second even ruturning the entire 6000+ prefab list.

I've unified most of the commands and added /options for affecting the output such as /log /chat /csv /nl /color /worldpos /csvpos and a few command specific ones (like /current for the hub cell data command)