Page MenuHomeFeedback Tracker

Allowed Usage for included Stringtables
Closed, ResolvedPublic

Description

I wanted to ask for clarification regarding how I am allowed to use the Stringtable data that is included with Arma 3 and its (C)DLC's.

I am the author of a vscode extension for Arma Mod-development, that has a feature to help with Stringtable Keys in the actual code.

It currently provides the english text, when hovering over a Stringtable key (ie: "STR_A3A_Something"). It also provides errors when it finds a Stringtable key in the code that is not defined in any Stringtable file.

This has led to too many false positives, because of Arma 3 included Stringtable keys, therefore I would like to bundle all of those with the extension, as an SQLite DB-file.


What I would like to be able to do:
include all stringtable-keys with:

  • the english translation
  • the container name
  • the package name
  • the theoretical path, where it is defined

example:

File -> Package -> Container -> Key -> english text

'Arma 3/Tank/Addons/languagemissions_f_tank/a3/languagemissions_f_tank/stringtable.xml' -> 'Languagemissions_Tank' -> '002_am_player_in_rhino '-> 'str_3den_attributes_date_month6_text'->'June';

reason: So I can provide hover-hints also for included Stringtable Keys

What is the minimum need the solve my problem:

The minimum to solve the problem with false positives in the extension would be, that I am allowed to at least bundle the Keys alone with my extension.
ie:

'str_3den_attributes_date_month6_text'

Just to be able to exclude them.


I would like to ask, if I am allowed to include the full data or at least all Keys of the Stringtables included with Arma 3 and its (C)DLC's?


Just as an extra:

While looking at the included Stringtable files, I noticed, quite a lot of Keys are defined multiple times, just under different Container-values. I think I have an idea why, but just wanted to mention it.

Details

Severity
None
Resolution
Open
Reproducibility
N/A
Operating System
Windows 10 x64
Category
Localization
Additional Information

Getting data dynamically?
Getting the data at runtime or when installing the extension, from the users Arma folder, is problematic as it not only relies on a few special external tools, but more so because it would make it impossible if people work on the mod with a laptop that maybe does not have arma installed.


links:

Event Timeline

Giddi created this task.Feb 2 2024, 1:33 AM
dedmen added a subscriber: dedmen.EditedFeb 3 2024, 3:25 PM

Storing stringtable keys, like "Is this defined" would be acceptable in this specific case. And also the package/container names would be okey in this specific case.
But this only applies to base game's stringtables from un-encrypted PBO's. For CDLCs I would say no.
I assume your mostly vanilla mission is unlikely to use CDLC stringtable keys anyway.

Full data including translations:
https://www.bohemia.net/community/licenses/arma3-end-user-license

3.B. You are entitled to use the Program for your own use, but you are not entitled to:
ii. Publish and/or distribute the computer Program or any of its parts.

Getting data dynamically by reading the PBO's is also what I had in mind. Its quite a bit of work. You could make that optional. If Arma is installed, you can display the translated text. If not, then just "jup this key exists, but I don't know what text is in there. You need to install the Game to find out".

Giddi added a comment.Feb 5 2024, 8:47 PM

Thank you that you took the time to answer my inquery.

I have looked at the actual uses of most builtin Stringtable keys again and because of how they are used, I will most likely just store a sha512 hash of the keys. The user will just see that this is a builtin arma key when they hover over it.

This way no actual arma data is packaged with the extension. The repo will be updated with the actuall implementation very soon, I can update my issue with the direct link to the code that and data that will be used, just to be transparent and make it easy to check that I really only package what is allowed.

Will probably not go with the optional dynamic route, as I don't want to force the user to rely on an external tool and I really don't want to reimplement the pbo unpacking logic :). Further trying to limit configuration bloat and the current logic would probably fail with the keys that are defined multiple times.

Big Danke again for answering my question!

dedmen closed this task as Resolved.Mar 15 2024, 1:08 PM
dedmen claimed this task.