Skip to content
main
Switch branches/tags
Code

Latest commit

* Enhanced debug logging for json (de)serialization
* Expose most recent modfile download URL as part of a Modio::ModInfo
* Expose image URLs as part of Modio::ModInfo
* Refactored UE-specific platform includes in our wrappers around our
  dependencies
* Removed some duplicated/stale implementation files
cf66939

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
ext
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
mod.io

mod.io SDK2

License Discord

Welcome to the mod.io SDK repository, built using C++. It allows game developers to host and automatically install user-generated content in their games. It connects to the mod.io REST API.

Features

  • Permissive MIT/BSL-license

  • Async callback-based interface

  • Non-blocking IO with a 'bring your own thread' model

  • Automatic downloads and updates

  • Email / Steam / GoG authentication

  • Mod Browsing / Filtering

  • Header-only support with C++17 compiler or later

  • C++14 codebases can use a static library or direct compilation

  • Native Unreal Engine 4 integration available via our dedicated plugin

Platform Support

Platform

Support

Compiler

Windows

MSVC C++ 2019

Windows (GDK)

(Contact Us)

Vendor-provided

Nintendo Switch

(Contact Us)

Vendor-provided

XBox (GDK)

(Contact Us)

Vendor-provided

macOS

Q4 2021

Linux

Q4 2021

Compiler Support

Configuration

Version

Header-only

C++17

Static Library

C++14

Download repository

Pre-requisites to compile this SDK are listed in Getting Started documentation

It is possible to download the source code as a zip file from this webpage. However, a recursive clone downloads all dependencies. Therefore, the suggestion is to perform the following:

git clone --recurse-submodule https://github.com/modio/modio-sdk
cd modio-sdk

Installation

To use the mod.io SDK, you can proceed with the installation using one of the following perspectives:

Inside a CMake project

  1. Clone the repository, or add it as a submodule

  2. Confirm your_project uses CMake 3.15 or later

    cmake_minimum_required(VERSION 3.15)
  3. Specify the target platform

    set (MODIO_PLATFORM WIN)
  4. Add the SDK subdirectory to your project

    add_subdirectory(<modio-sdk folder> EXCLUDE_FROM_ALL)
  5. Link the library to your project

    • To use the header-only configuration:

      target_compile_features(your_project PUBLIC cxx_std_17)
      target_link_libraries(your_project PUBLIC modio)
    • Or to use the static library configuration:

      target_compile_features(your_project PUBLIC cxx_std_14)
      target_link_libraries(your_project PUBLIC modioStatic)

Standalone

To simplify the SDK compilation, the file CMakePresets.json includes the most common configurations as presets that employ Ninja by default. Therefore, confirm it is available on your PATH unless you want to override the CMake generator in use.

Platform

Preset

Target

Build System

Windows

win64

Release

Visual Studio 2019

Windows

win64-debug

Debug

Visual Studio 2019

Windows

win64-dbginfo

Pre-Release

Visual Studio 2019

Debug presets have the -debug suffix, and Release-with-debug-info is -dbginfo. If you want to build the SDK in debug configuration specify win64-debug as the preset name.

To build the SDK using the default build and install directories:

  1. cmake -S <modio-sdk folder> --preset=win64

    This will use the Ninja generator to create a Ninja build system in <modio-sdk folder>/out/build/win64. It installs the compiled libraries/headers to <modio-sdk folder>/out/install/win64.

  2. cmake --build <modio-sdk folder>/out/build/win64

    This step compiles the SDK as a static library.

  3. cmake --install <modio-sdk folder>/out/build/win64

    This produces a folder <modio-sdk folder>/out/install/win64 with the following:

    • header_only - directory with the header-only version of the SDK

    • source - directory containing the implementation files of the SDK for use in 'split compilation' mode

    • static - directory containing the static library binaries and necessary public include headers

Header-only mode

Simply add each of the subdirectories in header_only to your include directories. Then, in your_project source file add #include "modio/ModioSDK.h"

Separate compilation mode

If you prefer to compile the source code directly, add the cpp files in the source directory, along with the include from the header-only mode. You must add MODIO_SEPARATE_COMPILATION to your project’s compiler definitions. Then, in your_project source file add #include "modio/ModioSDK.h"

Static library mode

Add the inc directory inside static to your include and link against the static binary in the lib folder. You must add MODIO_SEPARATE_COMPILATION to your project’s compiler definitions. Then, in your_project source file add #include "modio/ModioSDK.h"

Other Build Systems

If you use a different build system or wish to generate project files for inclusion in an existing Visual Studio solution, you can override the default CMake generator. For example, it is possible to use an MSBuild-based Visual Studio Solution:

cmake -S <modio-sdk folder> --preset=win64 -G "Visual Studio 16 2019"
cmake --build <modio-sdk folder>/out/install/win64
cmake --install <modio-sdk folder>/out/install/win64

Usage

Please see the Getting Started documentation for a breakdown of the mod.io SDK’s concepts and usage, including:

Game studios and Publishers

A private, white-label option is available for license. If you want a fully-featured platform that you control and host in-house send us a message Contact us to discuss.

Contributions Welcome

Our SDK is public and open source. Game developers are welcome to utilize it directly, to add support for mods in their games, or fork it for their customized use. If you want to contribute to the SDK, submit a pull request with your recommended changes for review.

Other Repositories

About

SDK for easily integrating mod.io into your game - the UGC management service for game developers

Resources

License

Releases

No releases published