When executed on the server, getObjectDLC and getAssetDLCInfo return null and [false,false,false,false,"",""] respectively for any object, even if it is actually a DLC object. This makes the commands harder to use in multiplayer.
Description
Details
- Severity
- Minor
- Resolution
- Open
- Reproducibility
- Always
- Operating System
- Linux x64
- Category
- Scripting
Create a mission with a DLC object with a variable name and put it on a dedicated server. In the mission, use the debug console to server exec
getObjectDLC myObject and getAssetDLCInfo myObject and observe the returned value.
(noted OS is for server, clients are Windows)
Event Timeline
No repro?!
getObjectDLC executed on server on a Apex "Dagor" works just fine.
It only works when the server has connection to steam, maybe yours doesn't?
I can double-check (this may take a bit), but since we use Steam for updates and such it would be pretty wild if there was no connection.
Okay, I spoke to one of our server wizards and this is what I got:
The server definitely seems like its connecting to Steam fine
There is this message in the log (this is the one i was referring to before) but this post from dedman suggests it can be ignored
https://forums.bohemia.net/forums/topic/218392-help-with-linux-server/?do=findComment&comment=3306203
SteamAPI initialization failed. Steam features won't be accessible!
Other Steam messages in the log show no errors
19:58:00 Initializing Steam Manager
19:58:00 Steam Manager initialized.
19:58:08 Host identity created.
19:58:09 Connected to Steam servers
And the server is registering with Steam without issue as seen by the fact it shows up in the server browser and this API call
https://api.steampowered.com/ISteamApps/GetServersAtAddress/v1/?addr=138.201.193.48
I've checked and other SQF commands that (presumably) require Steam connection like getPlayerUID work fine with server exec, it's get the DLC ones that don't work.
Also confirmed that this impacts Apex, Contact, etc. assets so not just limited to CDLC.
One things that might be a difference is that we don't have BattleEye enabled
Personally it seems bizarre that getObjectDLC requires Steam, since it should just be checking the DLC ID config entry for the object in question, and that requirement doesn't seem to be documented.