@uepm/example-plugin 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,24 @@
1
+ {
2
+ "FileVersion": 3,
3
+ "Version": 1,
4
+ "VersionName": "1.0.0",
5
+ "FriendlyName": "Example Plugin",
6
+ "Description": "An example Unreal Engine plugin demonstrating NPM distribution pattern",
7
+ "Category": "Other",
8
+ "CreatedBy": "UEPM",
9
+ "CreatedByURL": "https://github.com/uepm/uepm",
10
+ "DocsURL": "",
11
+ "MarketplaceURL": "",
12
+ "SupportURL": "",
13
+ "CanContainContent": true,
14
+ "IsBetaVersion": false,
15
+ "IsExperimentalVersion": false,
16
+ "Installed": false,
17
+ "Modules": [
18
+ {
19
+ "Name": "ExamplePlugin",
20
+ "Type": "Runtime",
21
+ "LoadingPhase": "Default"
22
+ }
23
+ ]
24
+ }
package/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # @uepm/example-plugin
2
+
3
+ Example Unreal Engine plugin distributed via NPM, demonstrating the UEPM (Unreal Engine Package Manager) workflow.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @uepm/example-plugin
9
+ ```
10
+
11
+ ## Prerequisites
12
+
13
+ Your Unreal Engine project must be initialized for UEPM:
14
+
15
+ ```bash
16
+ npx @uepm/init
17
+ ```
18
+
19
+ ## What's Included
20
+
21
+ This plugin demonstrates:
22
+
23
+ - **Basic plugin structure** - Standard Unreal Engine plugin layout
24
+ - **NPM distribution** - Plugin distributed via NPM registry
25
+ - **Engine compatibility** - Semver-based engine version requirements
26
+ - **C++ module** - Simple module with logging functionality
27
+ - **Plugin descriptor** - Proper .uplugin file configuration
28
+
29
+ ## Plugin Structure
30
+
31
+ ```
32
+ @uepm/example-plugin/
33
+ ├── ExamplePlugin.uplugin # Plugin descriptor
34
+ ├── package.json # NPM package configuration
35
+ ├── Source/ # C++ source code
36
+ │ └── ExamplePlugin/
37
+ │ ├── Private/
38
+ │ │ ├── ExamplePlugin.cpp
39
+ │ │ └── ExamplePluginModule.cpp
40
+ │ ├── Public/
41
+ │ │ ├── ExamplePlugin.h
42
+ │ │ └── ExamplePluginModule.h
43
+ │ └── ExamplePlugin.Build.cs
44
+ ├── Resources/ # Plugin resources
45
+ │ └── Icon128.png
46
+ └── README.md
47
+ ```
48
+
49
+ ## Engine Compatibility
50
+
51
+ - **Unreal Engine**: 5.0.0 or later (< 6.0.0)
52
+ - **Platforms**: All platforms supported by Unreal Engine
53
+
54
+ ## Usage in Unreal Engine
55
+
56
+ 1. Install the plugin via NPM
57
+ 2. Open your project in Unreal Engine
58
+ 3. Go to **Edit > Plugins**
59
+ 4. Find "Example Plugin" in the list
60
+ 5. Enable the plugin
61
+ 6. Restart the editor when prompted
62
+
63
+ The plugin will log a message when loaded:
64
+
65
+ ```
66
+ LogExamplePlugin: Example Plugin has been loaded!
67
+ ```
68
+
69
+ ## Development
70
+
71
+ This plugin serves as a template for creating your own NPM-distributed Unreal Engine plugins. Key features:
72
+
73
+ - **Proper package.json** with `unreal.engineVersion` field
74
+ - **Standard plugin structure** following Unreal Engine conventions
75
+ - **Build configuration** with proper module dependencies
76
+ - **NPM publishing** ready with correct file inclusions
77
+
78
+ ## Creating Your Own Plugin
79
+
80
+ Use this plugin as a starting point:
81
+
82
+ 1. Copy the plugin structure
83
+ 2. Rename files and classes
84
+ 3. Update package.json with your plugin details
85
+ 4. Implement your plugin functionality
86
+ 5. Publish to NPM
87
+
88
+ ## License
89
+
90
+ MIT
@@ -0,0 +1,3 @@
1
+ # This is a placeholder for the plugin icon
2
+ # In a real plugin, this would be a 128x128 PNG image file
3
+ # For this example, we're using a text placeholder to demonstrate the file structure
@@ -0,0 +1,42 @@
1
+ using UnrealBuildTool;
2
+
3
+ public class ExamplePlugin : ModuleRules
4
+ {
5
+ public ExamplePlugin(ReadOnlyTargetRules Target) : base(Target)
6
+ {
7
+ PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
8
+
9
+ PublicIncludePaths.AddRange(
10
+ new string[] {
11
+ }
12
+ );
13
+
14
+ PrivateIncludePaths.AddRange(
15
+ new string[] {
16
+ }
17
+ );
18
+
19
+ PublicDependencyModuleNames.AddRange(
20
+ new string[]
21
+ {
22
+ "Core",
23
+ }
24
+ );
25
+
26
+ PrivateDependencyModuleNames.AddRange(
27
+ new string[]
28
+ {
29
+ "CoreUObject",
30
+ "Engine",
31
+ "Slate",
32
+ "SlateCore",
33
+ }
34
+ );
35
+
36
+ DynamicallyLoadedModuleNames.AddRange(
37
+ new string[]
38
+ {
39
+ }
40
+ );
41
+ }
42
+ }
@@ -0,0 +1,20 @@
1
+ #include "ExamplePlugin.h"
2
+
3
+ #define LOCTEXT_NAMESPACE "FExamplePluginModule"
4
+
5
+ void FExamplePluginModule::StartupModule()
6
+ {
7
+ // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module
8
+ UE_LOG(LogTemp, Warning, TEXT("ExamplePlugin module has been loaded"));
9
+ }
10
+
11
+ void FExamplePluginModule::ShutdownModule()
12
+ {
13
+ // This function may be called during shutdown to clean up your module. For modules that support dynamic reloading,
14
+ // we call this function before unloading the module.
15
+ UE_LOG(LogTemp, Warning, TEXT("ExamplePlugin module has been unloaded"));
16
+ }
17
+
18
+ #undef LOCTEXT_NAMESPACE
19
+
20
+ IMPLEMENT_MODULE(FExamplePluginModule, ExamplePlugin)
@@ -0,0 +1,13 @@
1
+ #pragma once
2
+
3
+ #include "CoreMinimal.h"
4
+ #include "Modules/ModuleManager.h"
5
+
6
+ class FExamplePluginModule : public IModuleInterface
7
+ {
8
+ public:
9
+
10
+ /** IModuleInterface implementation */
11
+ virtual void StartupModule() override;
12
+ virtual void ShutdownModule() override;
13
+ };
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@uepm/example-plugin",
3
+ "version": "1.0.1",
4
+ "description": "Example Unreal Engine plugin distributed via NPM",
5
+ "main": "ExamplePlugin.uplugin",
6
+ "scripts": {
7
+ "test": "vitest --run",
8
+ "test:watch": "vitest"
9
+ },
10
+ "unreal": {
11
+ "engineVersion": ">=5.0.0 <6.0.0",
12
+ "pluginName": "ExamplePlugin"
13
+ },
14
+ "files": [
15
+ "ExamplePlugin.uplugin",
16
+ "Source/**/*",
17
+ "Resources/**/*",
18
+ "Content/**/*"
19
+ ],
20
+ "keywords": [
21
+ "unreal",
22
+ "unreal-engine",
23
+ "plugin",
24
+ "uepm"
25
+ ],
26
+ "author": "",
27
+ "license": "MIT",
28
+ "engines": {
29
+ "node": ">=18.0.0"
30
+ }
31
+ }