Skip to content

Commit b26713f

Browse files
various docs updates, changelog update
added up to date locations in api.txt make sure all .vscode files are ignored repo template readme updated for new domain Update installation guide to be inline with 3.0 devlogs and bp macros pages update pages for 3.0 update changelog with docs changes and backport the stuff not added in before remove test comment
1 parent 78bd901 commit b26713f

14 files changed

+486
-34
lines changed

.gitignore

-4
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ _ReSharper*/
5656

5757
# VS Code files for those working on multiple tools
5858
.vscode/*
59-
!.vscode/settings.json
60-
!.vscode/tasks.json
61-
!.vscode/launch.json
62-
!.vscode/extensions.json
6359
*.code-workspace
6460

6561
# Local History for Visual Studio Code

assets/API.txt

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
FOR MOST UP TO DATE VERSION OF THIS DOCUMENTATION, PLEASE VISIT:
2+
- IF YOU ARE ON LATEST RELEASE: https://docs.ue4ss.com/lua-api/
3+
- IF YOU ARE ON LATEST EXPERIMENTAL; https://docs.ue4ss.com/dev/lua-api
4+
15
Table Definitions
26
- The definitions appear as: FieldName | FieldValueType
37
- Fields that only have numeric field names have '#' as their name in this definition for clarity

assets/Changelog.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ TBD
44
## New
55

66
### General
7+
Added new docs pages for devlogs, C++ examples, C++ BP macros - Buckminsterfullerene
78

89
### Live View
910

@@ -19,6 +20,7 @@ TBD
1920
## Changes
2021

2122
### General
23+
Update docs installation guide for 3.0.0 - Buckminsterfullerene
2224

2325
### Live View
2426

@@ -36,10 +38,12 @@ TBD
3638
### General
3739

3840
### Live View
41+
Fix gui crash when clicking close window button ([#337](https://github.com/UE4SS-RE/RE-UE4SS/pull/337)) - localcc
3942

4043
### UHT Dumper
4144

4245
### Lua API
46+
Fix FindObject and Mod:SetSharedVariable userdata type matching ([#342](https://github.com/UE4SS-RE/RE-UE4SS/pull/342)) - Lyrth
4347

4448
### C++ API
4549

docs-export/export.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def export_version(ref, name):
5555
readme_path = os.path.join(src_dir, 'README.md')
5656
with open(readme_path, 'r') as file:
5757
lines = file.readlines()
58-
lines.insert(2, '\n> WARNING: This is the dev version of the UE4SS docs. The API and features are subject to change at any time. If you are developing mods for UE4SS, you should reference the [latest release](../release) instead.\n')
58+
lines.insert(2, '\n> WARNING: This is the dev version of the UE4SS docs. The API and features are subject to change at any time. If you are developing mods for UE4SS, you should reference the [latest release](../release) instead.\n\n')
5959
with open(readme_path, 'w') as file:
6060
file.writelines(lines)
6161

docs-repo-template/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Wiki
22

3-
https://ue4ss-re.github.io/docs/
3+
https://docs.ue4ss.com/

docs/SUMMARY.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,10 @@
8585
- [RegisterConsoleCommandHandler](./lua-api/global-functions/registerconsolecommandhandler.md)
8686
- [RegisterConsoleCommandGlobalHandler](./lua-api/global-functions/registerconsolecommandglobalhandler.md)
8787
- [Examples](./lua-api/examples.md)
88+
- [Creating a Lua Mod](./guides/creating-a-lua-mod.md)
89+
- [Using Custom Lua Bindings](./guides/using-custom-lua-bindings.md)
8890
- [C++ API](./cpp-api.md)
91+
- [BP Macros](./cpp-api/bp-macros.md)
8992
- [C++ Examples](./cpp-api/cpp-examples.md)
9093
- [Creating a C++ Mod](./guides/creating-a-c++-mod.md)
9194
- [Installing a C++ Mod](./guides/installing-a-c++-mod.md)
@@ -97,4 +100,6 @@
97100
- [Installing a C++ Mod](./guides/installing-a-c++-mod.md)
98101
- [GUI tabs with a C++ Mod](./guides/creating-gui-tabs-with-c++-mod.md)
99102
- [Creating a Lua Mod](./guides/creating-a-lua-mod.md)
100-
- [Using Custom Lua Bindings](./guides/using-custom-lua-bindings.md)
103+
- [Using Custom Lua Bindings](./guides/using-custom-lua-bindings.md)
104+
- [Devlogs](./devlogs.md)
105+
- [DataTables in UE4SS](./devlogs/datatables-in-ue4ss.md)

docs/cpp-api.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
These are the C++ API functions available in UE4SS, on top of the standard libraries that C++ comes with by default and the reflected functions available in Unreal Engine.
44

5-
For version: **2.6**.
6-
7-
Current status: **incomplete**.
5+
You are expected to have a basic understanding of C++ and Unreal Engine's C++ API before using these functions.
86

7+
You may need to read code in the [UEPsuedo](https://github.com/Re-UE4SS/UEPseudo) repository (more specifically, the `include/Unreal` directory) to understand how to use these functions.
98

9+
For version: **3.0.0**.
1010

11+
Current status: **incomplete**.

docs/cpp-api/bp-macros.md

+159
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# Blueprint Macros
2+
3+
The following macros are used to manipulate blueprint functions from C++.
4+
5+
> **Note:** Param names for wrappers must be identical to the names used for the function in UE, and they should then be passed to macros with a `PropertyName` param as shown in `AActor.cpp`.
6+
7+
This does not apply to macros with the `_CUSTOM` suffix.
8+
9+
With those macros you have to supply both the UE property name as well as the name of your C++ param.
10+
11+
These `_CUSTOM` suffixed macros are useful when the UE property name contains spaces or other characters that aren't valid for a C++ variable.
12+
13+
## Regular macros:
14+
Intended for normal use by modders.
15+
16+
### `UE_BEGIN_SCRIPT_FUNCTION_BODY`:
17+
Finds non-native (meaning BP) UFunction by its full name without the type prefixed, throws if not found.
18+
19+
20+
### `UE_BEGIN_NATIVE_FUNCTION_BODY`:
21+
Same as above except for native, meaning non-BP UFunctions.
22+
23+
See: `AActor::K2_DestroyActor`
24+
25+
26+
### `UE_SET_STATIC_SELF`:
27+
Used for static functions, and should be the CDO to the class that the UFunction belongs to.
28+
29+
See: `UKismetNodeHelperLibrary::GetEnumeratorUserFriendlyName.`
30+
31+
32+
### `UE_COPY_PROPERTY`:
33+
Copies the property of the supplied name into the already allocated params struct.
34+
- Param 1: The name, without quotes, of a property that exists for this UFunction.
35+
- Param 2: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
36+
37+
38+
### `UE_COPY_PROPERTY_CUSTOM`:
39+
Copies the property of the supplied name into the already allocated params struct.
40+
- Param 1: The name, without quotes, of a property that exists for this UFunction.
41+
- Param 2: A C++ compatible variable name for the property.
42+
- Param 3: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
43+
44+
45+
### `UE_COPY_STRUCT_PROPERTY_BEGIN`:
46+
Begins the process of copying an entire struct.
47+
- Param 1: The name, without quotes, of an ``FStructProperty`` that exists for this UFunction.
48+
49+
50+
### `UE_COPY_STRUCT_PROPERTY_CUSTOM_BEGIN`:
51+
Begins the process of copying an entire struct.
52+
- Param 1: The name, without quotes, of an ``FStructProperty`` that exists for this UFunction.
53+
- Param 2: A C++ compatible variable name for the property.
54+
55+
56+
### `UE_COPY_STRUCT_INNER_PROPERTY`:
57+
Copies a property from within an `FStructProperty` into the already allocated params struct.
58+
- Param 1: The name, without quotes, of the `FStructProperty` supplied to `UE_COPY_STRUCT_PROPERTY_BEGIN`.
59+
- Param 2: The name, without quotes, of a property that exists in the supplied `FStructProperty`.
60+
- Param 3: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
61+
- Param 4: The name of the C++ variable that you're copying.
62+
63+
See: `AActor::K2_SetActorRotation`
64+
65+
66+
### `UE_COPY_STRUCT_INNER_PROPERTY_CUSTOM`:
67+
- Param 1: The name, without quotes, of the `FStructProperty` supplied to `UE_COPY_STRUCT_PROPERTY_BEGIN`.
68+
- Param 2: The name, without quotes, of a property that exists in the supplied `FStructProperty`.
69+
- Param 3: A C++ compatible variable name for the property.
70+
- Param 4: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
71+
- Param 5: The name of the C++ variable that you're copying.
72+
73+
74+
### `UE_COPY_OUT_PROPERTY`:
75+
Copies the out property of the supplied name from the params struct into the supplied C++ variable.
76+
77+
This means the wrapper param (which is named the same as the property supplied) must be a reference, meaning suffixed with a "&".
78+
- Param 1: The name, without quotes, of a property that exists for this UFunction.
79+
- Param 2: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
80+
81+
See: `UGameplayStatics::FindNearestActor`
82+
83+
84+
### `UE_COPY_OUT_PROPERTY_CUSTOM`:
85+
Copies the out property of the supplied name from the params struct into the supplied C++ variable.
86+
- Param 1: The name, without quotes, of a property that exists for this UFunction.
87+
- Param 2: A C++ compatible variable name for the property.
88+
- Param 3: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
89+
90+
This means the wrapper param (which is named the same as the property supplied) must be a reference, meaning suffixed with a "&".
91+
92+
93+
### `UE_COPY_VECTOR:`
94+
Helper for copying an FVector. Must use `UE_COPY_STRUCT_PROPERTY_BEGIN` first.
95+
- Param 1: The C++ name, without quotes, of the FVector to copy from.
96+
- Param 2: The name, without quotes, of the FVector, same as supplied to `UE_COPY_STRUCT_PROPERTY_BEGIN`.
97+
98+
99+
### `UE_COPY_STL_VECTOR_AS_TARRAY`:
100+
Helper for copying a TArray.
101+
- Param 1: The name, without quotes, of an `FArrayProperty` that exists for this UFunction.
102+
- Param 2: The C++ type, without quotes, that the TArray holds. For example, without quotes, "float", for `FFloatProperty`.
103+
- Param 3: The C++ that the contents of the TArray will be copied into.
104+
105+
106+
### `UE_CALL_FUNCTION`:
107+
Performs a non-static function call. All non-out params must be copied ahead of this.
108+
109+
110+
### `UE_CALL_STATIC_FUNCTION`:
111+
Performs a static function call, using the CDO provided by `UE_SET_STATIC_SELF` as the static instance. All non-out params must be copied ahead of this.
112+
113+
114+
### `UE_RETURN_PROPERTY`:
115+
Copies the underlying value that the UFunction returned and returns it.
116+
- Param 1: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
117+
118+
119+
### `UE_RETURN_PROPERTY_CUSTOM`:
120+
- Param 1: The type that you want the underlying value to be copied as. For example, without quotes, "float" for `FFloatProperty`.
121+
- Param 2: The name, without quotes, for the property of this function where the return value will be copied from.
122+
123+
124+
### `UE_RETURN_VECTOR`:
125+
Helper for returning an `FVector`.
126+
127+
128+
### `UE_RETURN_STRING`:
129+
Helper for returning an `FStrProperty`. Converts to `StringType`.
130+
131+
132+
### `UE_RETURN_STRING_CUSTOM`:
133+
Helper for returning an `FStrProperty`. Converts to `StringType`.
134+
- Param 1: The name, without quotes, for the `FStrProperty` of this function where the return value will be copied from.
135+
136+
137+
### `WITH_OUTER`:
138+
Used for templated C++ types passed to macros, like TArray or TMap.
139+
140+
For example, pass, without quotes, `WITH_OUTER(TMap, FName, int)` instead of `TMap<FName, int>` to all macros.
141+
142+
## Internal macros
143+
144+
These are only used by other macros, or by users of our C++ API if they properly understand the internals of the macros, and this requires preexisting knowledge around how UFunctions work, and you'll likely have to [BPMacros.hpp](https://github.com/Re-UE4SS/UEPseudo/blob/main/include/Unreal/BPMacros.hpp) to understand how to use them properly.
145+
146+
### `UE_BEGIN_FUNCTION_BODY_INTERNAL`:
147+
Throws if the UFunction doesn't exist, and allocates enough space (on the stack when possible, otherwise the heap) for the params and return value(s).
148+
149+
150+
### `UE_COPY_PROPERTY_INTERNAL`:
151+
Finds the property, and throws if not found.
152+
153+
154+
### `UE_COPY_PROPERTY_CUSTOM_INTERNAL`:
155+
Finds the property with the supplied name, and throws if not found.
156+
157+
158+
### `UE_RETURN_PROPERTY_INTERNAL`:
159+
Finds the property to be used for the return value, throws if not found.

docs/cpp-api/cpp-examples.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# C++ Examples
22

3+
## Template repository for making UE4SS C++ mods: [UE4SSCPPTemplate](https://github.com/UE4SS-RE/UE4SSCPPTemplate)
4+
5+
### Example repo 1: [kismet-debugger](https://github.com/trumank/kismet-debugger) - trumank

docs/devlogs.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Devlogs
2+
3+
This section will contain a list of development logs that have been written by contributors of UE4SS. These logs are intended to be a way for contributors to share their experiences and knowledge with the community, and to provide a way for the community to understand the development process of UE4SS.
4+
5+
### [DataTables in UE4SS](./devlogs/datatables-in-ue4ss.md) - bitonality (2024-02-07)

0 commit comments

Comments
 (0)