Create Project Overview
The Create Project tool scaffolds new SKSE plugin projects using the CommonLibSSE-NG template.
What It Does
- Clones the CommonLibSSE-NG-VR-Template from GitHub
- Clones ClibUtil and xbyak dependencies into the project
- Generates a customized
xmake.luabuild configuration - Optionally initializes a Git repository with initial commit
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
- Development Root configured in Set Paths
- Git installed via Install Toolchain
- Internet connection for cloning templates
Project Fields
| Field | Description | Example |
|---|---|---|
| Project Name | Name for your project (alphanumeric, underscores, dashes) | DynamicChestLoot |
| Location | Parent folder for the project | C:\Dev\Skyrim\projects |
| Version | Initial version number | 1.0.0 |
| Author | Your name or username | YourName |
| Description | Brief description of the plugin | Adds dynamic loot to chests |
| Init Git | Initialize a Git repository | Checked (recommended) |
Project Name Rules
- Alphanumeric characters only (A-Z, a-z, 0-9)
- Underscores (_) and dashes (-) are allowed
- No spaces or special characters
- Names are automatically sanitized if needed
Location Default: The location defaults to your Projects folder (
%DEVROOT%\projects).
Creation Process
Step-by-Step
- Clone Template - Downloads the CommonLibSSE-NG-VR-Template from GitHub
- Remove Template History - Deletes the template's
.gitfolder - Install ClibUtil - Clones ClibUtil utility library into the project
- Install xbyak - Clones xbyak JIT assembler library into the project
- Generate xmake.lua - Creates a customized build configuration
- Initialize Git - Creates a new repository with initial commit (if selected)
Header Actions
| Button | Action |
|---|---|
| Create | Start the project creation process |
| Clear | Clear all input fields |
Template Details
CommonLibSSE-NG-VR-Template
The template used is CommonLibSSE-NG-VR-Template which provides:
- CommonLibSSE-NG support (Next-Gen version)
- Support for SE, AE, and VR builds
- Pre-configured xmake build system
- Modern C++20 project structure
Included Dependencies
| Dependency | Purpose |
|---|---|
| CommonLibSSE-NG | SKSE plugin development framework |
| ClibUtil | Utility functions for CommonLib |
| xbyak | JIT 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
- Check your internet connection
- Verify Git is installed (Install Toolchain)
- Ensure
XSE_GIT_ROOTis set correctly - Try cloning the template manually to test
Target Already Exists
- A project with that name already exists in the location
- Choose a different name or delete the existing folder
- The folder must be empty if it exists
Permission Denied
- Ensure you have write access to the projects folder
- Avoid using system-protected locations
- Try running ClibDT as administrator
xmake.lua Generation Failed
- Check the terminal output for specific errors
- Verify the template cloned successfully
- You can manually create
xmake.luaif needed
Next Step: After creating a project, use Compile Project to build your plugin.