Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Create Simulated Aeronautics Mod

ASecurity

Expertise in the Create Simulated Project — a NeoForge Minecraft mod suite adding physics-based contraptions including planes, airships, cars, and land vehicles built on the Create mod framework.

81 stars
0 votes
0 copies
0 views
Added 9/19/2026
developmentrustjavabashgitapiperformance

Works with

cliapi

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add reason-machines/trending-skills --skill create-simulated-aeronautics-mod --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create Simulated Aeronautics Mod?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Create Simulated Aeronautics Mod
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/reason-machines-create-simulated-aeronautics-mod/badge)](https://www.skillsdirectory.com/skills/reason-machines-create-simulated-aeronautics-mod)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: create-simulated-aeronautics-mod
description: Expertise in the Create Simulated Project — a NeoForge Minecraft mod suite adding physics-based contraptions including planes, airships, cars, and land vehicles built on the Create mod framework.
triggers:
  - add physics contraptions to my minecraft mod
  - create aeronautics neoforge mod
  - build a flying machine with create simulated
  - how to use create simulated project
  - physics based vehicles in minecraft java
  - assemble a plane or airship in create mod
  - create offroad land vehicle mod
  - propeller hot air balloon create aeronautics
---

# Create Simulated Project (Aeronautics)

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

## What Is This Project?

The Simulated Project is a suite of NeoForge Minecraft mods that extend the [Create](https://github.com/Creators-of-Create/Create) mod with real-time physics-based contraptions. It consists of three interconnected mods:

| Mod | Purpose |
|-----|---------|
| **Create Simulated** | Core assembly system, redstone components, physics interaction API |
| **Create Aeronautics** | Flying contraptions — propellers, hot air, levitation rocks |
| **Create Offroad** | Land vehicles — wheels, suspension, terrain traversal |

Physics simulation is powered by [Sable](https://github.com/ryanhcode/sable), a custom rigid-body physics engine built for Minecraft contraptions.

---

## Installation (Player/Server)

### Modrinth (Recommended)
1. Download from [modrinth.com/project/create-aeronautics](https://modrinth.com/modrinth/project/create-aeronautics)
2. Place the JAR(s) in your `mods/` folder alongside dependencies

### Required Dependencies
- **NeoForge** (matching the mod's target Minecraft version)
- **Create** mod (matching version)
- **Sable** physics library

### Recommended Launcher
Use [Modrinth App](https://modrinth.com/app) or [Prism Launcher](https://prismlauncher.org/) for dependency resolution.

---

## Developer Setup (Building from Source)

### Clone & Build
```bash
git clone https://github.com/Creators-of-Aeronautics/Simulated-Project.git
cd Simulated-Project
./gradlew build
```

### Run in Dev Environment
```bash
# Start a development client
./gradlew runClient

# Start a development server
./gradlew runServer

# Generate IDE run configurations (IntelliJ)
./gradlew genIntellijRuns
```

### Project Structure
```
Simulated-Project/
├── simulated/          # Core mod — assembly, physics API
├── aeronautics/        # Flying contraptions submod
├── offroad/            # Land vehicle submod
├── common/             # Shared utilities across submods
└── build.gradle        # Multi-project Gradle build
```

---

## Core Concepts

### 1. Simulated Contraptions
Unlike vanilla Create contraptions (which move block-by-block along tracks), Simulated contraptions are assembled into physics objects with:
- **Mass** derived from block composition
- **Moment of inertia** for rotation
- **Forces** applied by thrusters, propellers, wheels

### 2. Assembly
Players assemble a contraption using a designated assembly block (similar to Create's mechanical bearing). Once assembled, the structure becomes a rigid physics body managed by Sable.

### 3. Force Providers
Blocks that apply forces to assembled contraptions:
- `PropellerBlock` — directional thrust (Aeronautics)
- `HotAirBlock` — upward buoyancy (Aeronautics)
- `LevitationRockBlock` — magical lift (Aeronautics)
- `WheelBlock` — ground traction and propulsion (Offroad)

---

## Key API — Create Simulated Core

### Registering a Custom Force Provider

```java
import com.simulated.api.force.IForceProvider;
import com.simulated.api.contraption.SimulatedContraption;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;
import org.joml.Vector3f;

public class MyThrusterBlock extends Block implements IForceProvider {

    public MyThrusterBlock(Properties properties) {
        super(properties);
    }

    @Override
    public Vector3f getForce(SimulatedContraption contraption, BlockPos localPos, Level level) {
        // Return force vector in world space (Newtons equivalent)
        // Positive Y = upward lift, positive Z = forward thrust
        float thrustMagnitude = 500.0f;
        return new Vector3f(0, 0, thrustMagnitude);
    }

    @Override
    public Vector3f getTorque(SimulatedContraption contraption, BlockPos localPos, Level level) {
        // Torque applied around center of mass (optional)
        return new Vector3f(0, 0, 0);
    }
}
```

### Registering Your Block with NeoForge

```java
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.level.block.Block;
import net.neoforged.neoforge.registries.DeferredHolder;

public class MyModBlocks {

    public static final DeferredRegister<Block> BLOCKS =
        DeferredRegister.create(BuiltInRegistries.BLOCK, "mymod");

    public static final DeferredHolder<Block, MyThrusterBlock> MY_THRUSTER =
        BLOCKS.register("my_thruster", () -> new MyThrusterBlock(
            Block.Properties.of().strength(2.0f)
        ));

    public static void register(IEventBus eventBus) {
        BLOCKS.register(eventBus);
    }
}
```

### Accessing a SimulatedContraption at Runtime

```java
import com.simulated.api.contraption.SimulatedContraption;
import com.simulated.api.contraption.SimulatedContraptionHandler;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;

public class ContraptionUtils {

    /**
     * Get the simulated contraption an entity is riding, if any.
     */
    public static SimulatedContraption getRiddenContraption(Entity entity) {
        return SimulatedContraptionHandler.getContraptionForEntity(entity);
    }

    /**
     * Apply an impulse to a contraption's physics body directly.
     */
    public static void applyImpulse(SimulatedContraption contraption, Vec3 impulse) {
        contraption.getPhysicsBody().applyImpulse(
            new org.joml.Vector3f(
                (float) impulse.x,
                (float) impulse.y,
                (float) impulse.z
            )
        );
    }
}
```

### Listening to Contraption Assembly Events

```java
import com.simulated.api.event.ContraptionAssembleEvent;
import com.simulated.api.event.ContraptionDisassembleEvent;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;

@EventBusSubscriber(modid = "mymod")
public class ContraptionEventHandler {

    @SubscribeEvent
    public static void onAssemble(ContraptionAssembleEvent event) {
        SimulatedContraption contraption = event.getContraption();
        // e.g., calculate custom mass modifier
        float customMass = contraption.getMass() * 0.8f;
        contraption.setMassOverride(customMass);

        System.out.println("Contraption assembled with " +
            contraption.getBlocks().size() + " blocks.");
    }

    @SubscribeEvent
    public static void onDisassemble(ContraptionDisassembleEvent event) {
        // Cleanup any custom data attached to this contraption
        MyContraptionData.remove(event.getContraption().getId());
    }
}
```

---

## Aeronautics — Flight Mechanics

### Propeller Configuration (In-Game)
Propellers are directional. Place them facing the direction you want thrust:
- **Facing down** → upward lift
- **Facing back** → forward thrust
- Speed (RPM) fed by Create's rotational network controls thrust magnitude

### Hot Air Balloon
1. Place **Balloon Canvas** blocks in a dome shape above a heat source
2. Connect a **Blaze Burner** below the opening
3. Assemble — the trapped hot air provides buoyancy proportional to enclosed volume

### Levitation Rock
- Rare ore providing passive vertical lift
- Useful for lighter-than-air vessels needing no fuel

### Flight Control Pattern
```java
// Example: Redstone-controlled pitch adjustment via a custom block entity
public class FlightControllerBlockEntity extends BlockEntity {

    public FlightControllerBlockEntity(BlockPos pos, BlockState state) {
        super(MyModBlockEntities.FLIGHT_CONTROLLER.get(), pos, state);
    }

    public void applyPitchInput(SimulatedContraption contraption, float pitchDelta) {
        // Torque around the X-axis to pitch the vehicle
        org.joml.Vector3f torque = new org.joml.Vector3f(pitchDelta * 100f, 0, 0);
        contraption.getPhysicsBody().applyTorqueImpulse(torque);
    }
}
```

---

## Offroad — Land Vehicles

### Wheel Setup
1. Place **Wheel blocks** at the four corners of your vehicle chassis
2. Each wheel needs rotational input from Create's shaft network
3. Assemble the contraption — wheels automatically detect ground contact

### Suspension
Wheels simulate suspension travel. Stiffer suspensions use more rigid Create structural blocks near the wheel mounts.

### Steering
Connect Create's **Rotation Speed Controller** to front wheels to implement steering differentials.

---

## Configuration

Config files generate in `config/` on first run:

```toml
# simulated-common.toml

[physics]
  # Physics simulation tick rate (ticks per second, default 20)
  simulationRate = 20
  # Maximum contraption block count before performance warnings
  maxContraptionSize = 2048
  # Enable contraption–contraption collision
  contraptionCollision = true

[aeronautics]
  # Propeller force multiplier
  propellerForceScale = 1.0
  # Hot air buoyancy multiplier
  hotAirBuoyancyScale = 1.0

[offroad]
  # Wheel traction coefficient
  wheelTraction = 0.85
  # Maximum vehicle speed (blocks/second)
  maxVehicleSpeed = 40.0
```

---

## Localization / Translations

The project uses [Crowdin](https://crowdin.com/project/create-aeronautics) for community translations.

### Adding a New Language
1. Join the Crowdin project
2. Translate strings in the web UI
3. Translations are automatically pulled into the repo

### Adding Keys Programmatically
```java
// In your lang JSON: src/main/resources/assets/mymod/lang/en_us.json
{
  "block.mymod.my_thruster": "Hyperdrive Thruster",
  "block.mymod.my_thruster.tooltip": "Applies directional thrust to assembled contraptions.",
  "mymod.contraption.overloaded": "Contraption mass exceeds safe limits!"
}
```

---

## Common Patterns

### Pattern 1: Fuel-Gated Thrust
```java
@Override
public Vector3f getForce(SimulatedContraption contraption, BlockPos localPos, Level level) {
    // Only provide thrust if a fuel item is present in an adjacent chest
    BlockEntity adjacent = level.getBlockEntity(localPos.above());
    if (adjacent instanceof net.minecraft.world.level.block.entity.ChestBlockEntity chest) {
        boolean hasFuel = !chest.isEmpty(); // simplified check
        if (hasFuel) {
            return new Vector3f(0, 0, 800.0f);
        }
    }
    return new Vector3f(0, 0, 0);
}
```

### Pattern 2: Speed-Based Thrust Scaling
```java
@Override
public Vector3f getForce(SimulatedContraption contraption, BlockPos localPos, Level level) {
    // Scale thrust with Create rotational speed at this block's position
    float rpm = contraption.getRotationalSpeedAt(localPos);
    float thrust = rpm * 2.5f; // tune this constant for your use case
    return new Vector3f(0, 0, Math.min(thrust, 2000.0f)); // cap at max
}
```

### Pattern 3: Custom Physics Data per Contraption
```java
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class MyContraptionData {
    private static final Map<UUID, Float> fuelLevels = new HashMap<>();

    public static float getFuel(UUID contraptionId) {
        return fuelLevels.getOrDefault(contraptionId, 100.0f);
    }

    public static void consumeFuel(UUID contraptionId, float amount) {
        float current = getFuel(contraptionId);
        fuelLevels.put(contraptionId, Math.max(0, current - amount));
    }

    public static void remove(UUID contraptionId) {
        fuelLevels.remove(contraptionId);
    }
}
```

---

## Troubleshooting

| Symptom | Likely Cause | Fix |
|---------|-------------|-----|
| Contraption won't assemble | Missing dependency mod (Create, Sable) | Verify all deps in `mods/` |
| Vehicle sinks through floor | Wheel blocks not receiving rotation | Check shaft connections |
| Extreme jitter / vibration | Too many conflicting force providers | Balance thrust/lift forces; reduce `propellerForceScale` in config |
| Crash on assembly | Block count exceeds `maxContraptionSize` | Increase limit in config or reduce vehicle size |
| Translations not showing | Wrong lang file path | Ensure `assets/<modid>/lang/en_us.json` path is correct |
| Physics desync on multiplayer | High server TPS drop | Lower `simulationRate` or reduce contraption count |
| `ClassNotFoundException` on IForceProvider | API jar not in classpath | Add `simulated-api` to `build.gradle` dependencies |

### Dependency Setup in `build.gradle`
```groovy
dependencies {
    // NeoForge
    implementation "net.neoforged:neoforge:${neoforge_version}"

    // Create mod (via cursemaven or modrinth maven)
    implementation fg.deobf("com.simibubi.create:create-${minecraft_version}:${create_version}:slim") {
        transitive = false
    }

    // Create Simulated API (once published to maven)
    implementation "com.aeronautics:simulated-api:${simulated_version}"
}
```

---

## Community & Support

- **Discord**: [discord.gg/createaeronautics](https://discord.gg/createaeronautics)
- **Issue Tracker**: [GitHub Issues](https://github.com/Creators-of-Aeronautics/Simulated-Project/issues) (233 open)
- **Modrinth**: [modrinth.com/project/create-aeronautics](https://modrinth.com/project/create-aeronautics)
- **Crowdin Translations**: [crowdin.com/project/create-aeronautics](https://crowdin.com/project/create-aeronautics)

Attribution

reason-machinesreason-machines
View sourceMore from reason-machines →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →