Get desktop application:
View/edit binary Protocol Buffers messages
A thing which can be opened in an editor, scoped to a particular game and/or mod project. Using this generally requires knowing which editor you're talking with, as different editors will load different things simultaneously. A game object can be available in multiple different resources at once. For instance, there may be a live view of an opened file, but also a passive index of the same data, which could be different (potentially overlapping) resources. Err on the side of having a bunch of these.
Used in:
, , , , , ,The type of resource.
A game enum, checked by the client for basic compatibility Most other objects don't specify a game, so they're largely context-dependent.
Unique identifier for the resource, if there is more than one of a given type. For params in DSMS, this can be left blank, as all params are opened together. For FMGs, this could be the language. For a map in DSMS, this could be a name like "m10_00_00_00", or it can be left blank to mean all open maps. In editors which are not project-based, this could be the entire file or directory path.
Optional, a project.json file, in the root directory of the mod folder. The definition should be moved into a common library if this is used in multiple editors. https://github.com/soulsmods/DSMapStudio/blob/master/StudioCore/Editor/ProjectSettings.cs
Optional, some other kind of filesystem path representing the resource. This is mainly for editors which don't care about game hierarchy and edit individual files.
Used in:
By convention, the default 0 field of all enums should be an "unset" value. This should never be set on purpose.
Extend this in the future. Possible future ideas: - Alias resource, for statically loaded names for maps, models, etc. - Model resource, for a model editor - Metadata resource, for passively indexed metadata
Enum for supported games. This can be extended based on what editors support.
Used in:
Namespaces for different types of game data. These do not uniquely identify every type of game object (like objects vs enemies), and is meant for cases when the main ids can overlap for two objects in the same file. Use object properties for specific subtype data.
Used in:
An MSB event. Identical names are disambiguated using {2} etc suffixes
An MSB region. Identical names are disambiguated using {2} etc suffixes
An MSB part. Identical names are disambiguated using {2} etc suffixes
The standard FromSoft comparison operators, and also regex ~ and !~
Used in:
Used for get/search operations to determine which properties to retrieve.
Used in:
, ,Like GameProperty, this is a simple string key for the moment.
Whether to include this property only when it is >0 or non-null. This is largely to avoid a ton of useless EntityID/EntityGroupIDs values.
Used in:
Used as request type in: Internal.Soapstone.GetServerInfo
(message has no fields)
Used as response type in: Internal.Soapstone.GetServerInfo
Client id like "DSMapStudio"
Version like "1.0.0"
File name of the server exe
All open resources