Create Project Overview

The Create Project tool scaffolds new SKSE plugin projects using the CommonLibSSE-NG template.

What It Does

This gives you a working starting point, but you'll still need to understand the project structure and modify the code to create your plugin.

Prerequisites

Project Fields

FieldDescriptionExample
Project NameName for your project (alphanumeric, underscores, dashes)DynamicChestLoot
LocationParent folder for the projectC:\Dev\Skyrim\projects
VersionInitial version number1.0.0
AuthorYour name or usernameYourName
DescriptionBrief description of the pluginAdds dynamic loot to chests
Init GitInitialize a Git repositoryChecked (recommended)

Project Name Rules

Location Default: The location defaults to your Projects folder (%DEVROOT%\projects).

Creation Process

Step-by-Step

  1. Clone Template - Downloads the CommonLibSSE-NG-VR-Template from GitHub
  2. Remove Template History - Deletes the template's .git folder
  3. Install ClibUtil - Clones ClibUtil utility library into the project
  4. Install xbyak - Clones xbyak JIT assembler library into the project
  5. Generate xmake.lua - Creates a customized build configuration
  6. Initialize Git - Creates a new repository with initial commit (if selected)

Header Actions

ButtonAction
CreateStart the project creation process
ClearClear all input fields

Template Details

CommonLibSSE-NG-VR-Template

The template used is CommonLibSSE-NG-VR-Template which provides:

Included Dependencies

DependencyPurpose
CommonLibSSE-NGSKSE plugin development framework
ClibUtilUtility functions for CommonLib
xbyakJIT assembler for runtime code generation

Project Structure

After creation, your project will have this structure:

MyProject/
├── src/                    # Source files
│   └── main.cpp            # Main plugin entry point
├── include/                # Header files
├── ClibUtil/               # ClibUtil dependency
├── xbyak/                  # xbyak dependency
├── extern/                 # External dependencies (CommonLibSSE)
├── xmake.lua               # Build configuration
├── .gitignore              # Git ignore rules
└── README.md               # Project readme

xmake Configuration

The generated xmake.lua contains your project settings:

set_project("MyProject")
set_version("1.0.0")

-- Build configuration
add_rules("mode.debug", "mode.release")
set_languages("cxx20")

-- SKSE runtime selection
option("skse_runtime")
    set_default("ae")
    set_values("se", "ae", "vr")
option_end()

target("MyProject")
    set_kind("shared")
    add_files("src/*.cpp")
    add_includedirs("include")
    -- CommonLibSSE and dependencies configured here

Common xmake Commands

# Configure for release build
xmake f -m release

# Configure for specific runtime
xmake f -m release --skse_runtime=ae

# Build the project
xmake

# Clean build artifacts
xmake c

# Run the built executable (if applicable)
xmake run

Troubleshooting

Git Clone Failed

Target Already Exists

Permission Denied

xmake.lua Generation Failed

Next Step: After creating a project, use Compile Project to build your plugin.