MCPcopy Index your code
hub / github.com/MovingBlocks/Terasology

github.com/MovingBlocks/Terasology @v5.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.3.0 ↗ · + Follow
15,746 symbols 50,661 edges 2,310 files 3,458 documented · 22%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

</>

<a href="https://github.com/MovingBlocks/Terasology/releases/latest">
    <img src="https://img.shields.io/github/release/MovingBlocks/Terasology.svg" alt="Release" />
</a>
<a href="http://www.apache.org/licenses/LICENSE-2.0">
    <img src="https://img.shields.io/badge/license(code)-Apache%202.0-blue.svg" alt="License (Code)" />
</a>
<a href="http://creativecommons.org/licenses/by/4.0/">
    <img src="https://img.shields.io/badge/license(art)-CC%20BY%204.0-blue.svg" alt="License (Art)" />
</a>
<a href="https://lgtm.com/projects/g/MovingBlocks/Terasology/alerts/">
    <img src="https://img.shields.io/lgtm/alerts/g/MovingBlocks/Terasology.svg?logo=lgtm&logoWidth=18" alt="LGTM Alerts" />
</a>
<a href="https://lgtm.com/projects/g/MovingBlocks/Terasology/context:java">
    <img src="https://img.shields.io/lgtm/grade/java/g/MovingBlocks/Terasology.svg?logo=lgtm&logoWidth=18" alt="Java Grade" />
</a>

Community | Installation | Development | License

The Terasology project was born from a Minecraft-inspired tech demo and is becoming a stable platform for various types of gameplay settings in a voxel world. The creators and maintainers are a diverse mix of software developers, designers, game testers, graphic artists, and musicians. We encourage others to join! We encourage contributions from anybody and try to keep a warm and friendly community and maintain a code of conduct.

Community

If you want to get in contact with the Terasology community and the whole MovingBlocks team, you can easily connect with us, share your ideas, report and solve problems. We are present in nearly the complete round-up of social networks. Follow/friend us wherever you want, chat with us and tell the world.

 

<a title="Discord" href="https://discord.gg/terasology">
    <img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/discord.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Twitter" href="https://twitter.com/Terasology">
<img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/twitter.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Facebook" href="https://www.facebook.com/Terasology">
    <img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/facebook.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Reddit" href="http://www.reddit.com/r/Terasology">
    <img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/reddit.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Youtube" href="https://www.youtube.com/user/blockmaniaTV">
    <img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/youtube.png" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Patreon" href="https://www.patreon.com/Terasology">
    <img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/patreon.jpg" width="48px"/>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a title="Terasology Forum" href="https://forum.terasology.org">
    <img src="https://github.com/MovingBlocks/Terasology/raw/v5.3.0/docs/images/forum.png" width="48px"/>
</a>

Installation

Minimum Requirements
System (OS) Windows, MacOS, Linux (64 bit)
Processor (CPU) dual-core CPU
Memory (RAM) 4 GB
Graphics* (GPU) Intel HD Graphics (Gen 7) GeForce 8xxx series (or higher) or Radeon HD 2000 series (or higher) with OpenGL 3.3
Storage (HDD) 1 GB

* Please note, that if you have both integrated (chip) and dedicated (card) graphics, you should make sure that you're actually using your dedicated graphics when running Terasology.

Internet connectivity is required for downloading Terasology via the Launcher, afterwards playing offline is possible.

For easy game setup (recommended) you can use our launcher - download it here.

For more information about playing, like hot keys or server hosting, see the dedicated page or check out the modules.

Alternative Installation Methods

If you already have a Java Development Kit (JDK) installed, you may use a direct download release as an alternative to using the launcher. Java version 11 is required.

Direct download stable builds are uploaded to our release section here on GitHub while the cutting-edge develop version can be downloaded direct here from our Jenkins.

Development

Development is possible on all common platforms (Windows, Linux, MacOS) as long as the JDK is properly set up.

Requirements

Technical Requirements: - Java SE Development Kit (JDK) 11. The CI will verify against this baseline version.

Using newer Java versions may cause issues (see #3976). - Git to clone the repo and commit changes.

Non-Technical Requirements: - familiarity with Git. Have a look at https://learngitbranching.js.org/ if you're not familiar with Git yet. - familiarity with GitHub, especially forks. Have a look at GitHub's "Working with Forks" Guide if you don't know how to work with forks yet.

Workspace Setup

To be able to run Terasology from source, you'll need to setup your workspace. Follow the Contributor Quick Start Guide. This guide is designed for IntelliJ IDEA (you can use the free community edition), but alternative setups are possible.

:warning: Note, that a Terasology workspace is a multi-repo workspace.

While your workspace itself is a clone of MovingBlocks/Terasology, every subdirectory in your workspace directory ./modules/ is a clone of a Terasology module repo.

Accordingly, if you want to contribute to modules, you'll need to navigate into the respective subdirectory and work with Git from in there. Any Git commands executed in your workspace root will target MovingBlocks/Terasology.

For more information, see our wiki entry on Understanding Terasology's Git Setup.

Contributing

Detailed information on how to contribute can be found in CONTRIBUTING.md. Remember, that all submissions must be licensed under Apache License, Version 2.0.

Terasology has a rather steep learning curve in the beginning. To help you with the learning process, our Adventure Site helps you find the resources you need according to the field of contribution you're interested in.

Additional learning resources can be found in our wiki and our tutorial modules.

If you find errors or issues in any of our resources, please report them using GitHub issues and help fix them.

For developers that have not worked with complex software systems or dealt with the intricacies of Java yet, we recommend to start with Good First Issues in Module Land.

Developers with previous experience in rendering, physics and other less trivial aspects of game development are welcome to give the Good First Issues in Engine a go.

License

Terasology is fully open source and licensed Apache License, Version 2.0 for code and Creative Commons Attribution License, Version 4.0 for artwork (unless indicated otherwise - see credits for minor exceptions).

Extension points exported contracts — how you extend this code

CollectionCopyConstructor (Interface)
Provides the ability to construct a collection with the given items. @param The type of Collection to const [23 implementers]
subsystems/TypeHandlerLibrary/src/main/java/org/terasology/reflection/reflect/CollectionCopyConstructor.java
Observer (Interface)
A general interface for observers @param the target object type [89 implementers]
engine/src/main/java/org/terasology/engine/core/Observer.java
PropertyProvider (Interface)
(no doc) [10 implementers]
facades/TeraEd/src/main/java/org/terasology/editor/properties/PropertyProvider.java
ModuleTestingEnvironment (Interface)
The public methods that were available via ModuleTestingHelper v0.3.2. [2 implementers]
engine-tests/src/main/java/org/terasology/engine/integrationenvironment/ModuleTestingEnvironment.java
PersistedDataReader (Interface)
Read PersistedData from files, stream, buffer, etc. [11 implementers]
subsystems/TypeHandlerLibrary/src/main/java/org/terasology/persistence/serializers/PersistedDataReader.java
Uri (Interface)
Uris are used to identify resources, like assets and systems introduced by mods. Uris can then be serialized/deserialize [6 …
engine/src/main/java/org/terasology/engine/core/Uri.java
Property (Interface)
(no doc) [1 implementers]
facades/TeraEd/src/main/java/org/terasology/editor/properties/Property.java
ExampleInterface (Interface)
(no doc) [1 implementers]
engine-tests/src/main/java/org/terasology/unittest/ExampleInterface.java

Core symbols most depended-on inside this repo

put
called by 1413
engine/src/main/java/org/terasology/engine/context/Context.java
get
called by 1247
engine/src/main/java/org/terasology/engine/context/Context.java
add
called by 1018
engine/src/main/java/org/terasology/engine/i18n/TranslationProject.java
get
called by 622
engine/src/main/java/org/terasology/engine/rendering/opengl/BaseFboManager.java
getComponent
called by 556
engine/src/main/java/org/terasology/engine/entitySystem/ComponentContainer.java
toString
called by 498
engine/src/main/java/org/terasology/engine/world/block/BlockAreac.java
set
called by 477
engine/src/main/java/org/terasology/engine/config/flexible/Setting.java
equals
called by 412
engine/src/main/java/org/terasology/engine/world/block/BlockAreac.java

Shape

Method 13,209
Class 2,162
Interface 278
Enum 91
Function 6

Languages

Java100%
Kotlin1%

Modules by API surface

engine/src/main/java/org/terasology/engine/config/RenderingConfig.java108 symbols
engine/src/main/java/org/terasology/engine/world/block/Block.java92 symbols
engine/src/main/java/org/terasology/engine/monitoring/gui/ChunkMonitorDisplay.java86 symbols
engine/src/main/java/org/terasology/engine/entitySystem/entity/internal/PojoEntityManager.java74 symbols
engine/src/main/java/org/terasology/engine/physics/bullet/BulletPhysics.java63 symbols
engine/src/main/java/org/terasology/engine/world/block/loader/SectionDefinitionData.java62 symbols
engine-tests/src/test/java/org/terasology/engine/rendering/dag/RenderTaskListGeneratorTest.java61 symbols
engine/src/main/java/org/terasology/engine/network/internal/NetworkSystemImpl.java55 symbols
engine/src/main/java/org/terasology/engine/utilities/ReflectionUtil.java53 symbols
engine/src/main/java/org/terasology/engine/rendering/dag/AbstractNode.java52 symbols
engine/src/main/java/org/terasology/engine/recording/EventSystemReplayImpl.java51 symbols
engine-tests/src/test/java/org/terasology/engine/world/block/BlockRegionTest.java49 symbols

For agents

$ claude mcp add Terasology \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact