XP Tutorials

XP Development

If you are into software development, writing your own XP’s are the most powerful way you can extend CC3+. An XP is basically a .dll file with your own custom commands for CC3+. It is way more powerful than writing macros for CC3+, since XP’s gives you access to the internals, allowing you to do things that won’t be possible in macros.

The articles listed below takes you through the basics of developing such XP’s. Check out the first article for descriptions and download links to the tools you’ll need, while the other articles explain various features and concepts. This series is ongoing, so expect new articles to appear regularly.

Be warned that this is about software development. To take advantage of these articles, you should already be familiar with the concepts of writing your own software, you should know what compiling and linking is all about, you should know the basics of C++, and it is an advantage to already be familiar with Visual Studio and the Windows SDK. You don’t need to be an experienced software developer, but some familiarity is strongly recommended.


Here are the basic tools you will use for XP development. See part 1 below for setup instructions

  • Visual Studio 2022: All the tutorials are written for Visual Studio 2022, although earlier versions will work fine too. You can use whatever edition of Visual Studio you prefer, but the Community edition contains everything you need for building XP’s, and is the only edition that is free.
  • XP Toolkit: The XP toolkit provides access to the API’s you’ll need to use when writing XP’s. It also contains some documentation. For all my tutorials, I assume you have this installed under C:\FCWXP, see part 1 for details.
  • Visual Studio XP Template: This is a custom XP project template for Visual Studio, making it easier to start a new XP project in VS without having to set all those project properties. Note that the settings in this template assumes that your XP toolkit is installed under C:\FCWXP and that you have a copy of CC3+ for development purposes in C:\CC3Plus. If you don’t, you’ll have to change the paths in the project properties every time you make a new project. You don’t have to use this custom template however, the instructions for setting up from scratch is found in part 1 below.

Part 1: Getting Started

This first article takes you trough the basics of installing the tools you need, setting up the environment, and making your first basic add-on.

Part 2: Entity Basics

The second article in the series tackles entities and drawing lists. Here you will learn how to create, find, modify and delete entities, as well as some information about memory management.

Part 3: Communicating with the User

The third article in this series focuses on how we can communicate with the users, such as providing information through dialogs and other means, as well as how to collect data from the user, for example strings, entities, coordinates and so on.

Part 4: Interfacing with CC3+

This fourth article describes how to interact with CC3+ itself, by setting and getting macro variable, and calling regular CC3+ commands.

Part 5: Dynamic Dungeons 1

The fifth article starts a new project, the Dynamic Dungeon project. Here we explore how we can make drawing of our dungeons more dynamic than the current procedure.

Part 6: Dynamic Dungeons 2

We continue with our dynamic dungeon project. This time we generate the walls around the floor, as well as look into how to play a bit more nicely with other tools and CC3+ in general.

Part 7: Dynamic Dungeons 3

In this installment we talk about making custom entities, a graphical dialog for settings, as well as how to make our tools snap to the map border.